Part of Slepp's ProjectsPastebinTURLImagebinFilebin
Feedback -- English French German Japanese
Create Upload Newest Tools Donate
Sign In | Create Account

Mine
Tuesday, August 14th, 2007 at 3:21:52am UTC 

  1. Date: Wed, 17 Aug 2005 15:45:03 -0700
  2. From: Keith M Wesolowski <[email protected]>
  3. Subject: Re: Joint Proposal from Steve and Dennis
  4. To: Eric Boutilier <[email protected]>
  5. Cc: [email protected], Jim Grisanzio <[email protected]>,
  6.         [email protected]
  7.  
  8. On Wed, Aug 17, 2005 at 03:31:54PM -0500, Eric Boutilier wrote:
  9.  
  10. > I'd like to suggest that we evaluate the JDS team's build process for
  11. > the Companion CD gate. The following, copied from a post the Glynn
  12. > Foster (a JDS engineer) posted on opensolaris-discuss, provides a summary:
  13. >
  14. >     The way we build the Solaris packages using pkgbuild is to
  15. >     basically take the existing Linux spec file, create a Solaris spec
  16. >     file which imports the Linux version, and specifies the various
  17. >     requirements, any additional patches or sources and defines how the
  18. >     package is split up.
  19. >
  20. > So take Python for instance. When it migrated from the CCD to JDS, it
  21. > also migrated from the ON build process to a community-friendly build
  22. > process; one that is is derived from modern opensource build
  23. > methodolgies (such as capturing porting knowledge in defacto standard
  24. > spec-files that are re-usable and machine-readable).
  25.  
  26. I agree that we should evaluate it.  Here is my evaluation, as it
  27. applies to the CCD mission of porting arbitrary software to
  28. {Open,}Solaris and packaging it in a correct and consistent manner.
  29. It is not intended to apply to GNOME/JDS, which may or may not have
  30. valid specialised reasons for operating in the manner described.  Note
  31. that in most cases the cost of porting is much greater than the cost
  32. of incorporating build and packaging information, and that pkgbuild
  33. offers no help in porting.
  34.  
  35. The pros (benefits):
  36.  
  37. 1. All Solaris-specific build and packaging knowledge is encapsulated
  38. into a single specfile instead of one or more makefiles and pkgdefs.
  39.  
  40. 2. Red Hat developers have a low barrier to entry.
  41.  
  42. 3. Moving packages from the CCD into JDS will be easier, assuming JDS
  43. retains pkgbuild indefinitely.
  44.  
  45. The cons (costs and obstacles):
  46.  
  47. 1. Not all software has specfiles.  In fact, most doesn't, especially
  48. if it hasn't been ported to an RPM-based GNU/Linux distribution; if it
  49. has, it will have different specfiles for each such distribution.  Any
  50. specfiles we do find might be wrong or useless.  GNOME is
  51. well-supported by Red Hat and therefore is likely to have usable
  52. specfiles, but arbitrary third-party applications and libraries could
  53. easily have useless specfiles, and the time spent fixing them is time
  54. that could have been spent porting the software to Solaris or doing
  55. other work.
  56.  
  57. 2. Transition costs.  The existing build infrastructure for the CCD
  58. does not use specfiles, and the knowledge is instead encapsulated in
  59. makefiles.  If pkgbuild were the chosen standard, all package builds
  60. would have to be converted en masse before any new useful work could
  61. be done.  That's discouraging to new developers and delays meaningful
  62. contributions.  This is not by itself a reason to reject pkgbuild, but
  63. a cost that must be measured against the benefits.
  64.  
  65. 3. pkgbuild is undocumented (and almost entirely uncommented - there
  66. are fewer than 44 comment lines out of 4447 total).  Looking through
  67. the maze of undocumented, uncommented perl and comparing it with
  68. Makefile.master, I can estimate it would cost at least 10 times more
  69. to maintain pkgbuild than freeware-gate's Makefile.master.
  70.  
  71. 4. The broader developer community, including our most likely source
  72. of contributors - Solaris's user base - isn't especially familiar with
  73. specfiles or RPM.
  74.  
  75. 5. Moving packages from the CCD to any other consolidation, or to JDS
  76. if it abandons pkgbuild, will require all the work that would have
  77. been needed to implement the package's build in an SFW-like system.
  78.  
  79. 6. pkgbuild doesn't use environment variables, so there's no way to
  80. override paths, tools, or other commonly-customised configuration at
  81. build time.
  82.  
  83. 7. pkgbuild's handling of build-time dependencies assumes that the
  84. package in question is installed (as a package) on the build machine.
  85. This is badly broken for intra-consolidation dependencies, which are
  86. expected to be satisfied by the contents of the proto area and the
  87. build ordering constraints.
  88.  
  89. 8. pkgbuild and even its libraries have a large number of hard-coded
  90. pathnames and filenames.  In some cases it's clear that these are just
  91. defaults, but others seem to have no way to override.
  92.  
  93. Even if some of these costs turn out to be the product of my
  94. incomplete understanding of the code - which is itself indicative of a
  95. problem since the SFW and CCD build systems are transparently simple -
  96. the benefits don't seem to justify any investment in this area, and
  97. even the less detailed arguments against pkgbuild seem compelling.
  98.  
  99. > P.S. We need to let go of the notion that the CCD consolidation process
  100. >      and the SFW consolidation process should be closely coupled. On
  101. >      the surface this coupling seems to make sense (to ON people that
  102. >      is), but I challenge anyone to justify why, in an opensolaris.org
  103. >      world, the SFW process should be derived from the CCD process.
  104.  
  105. I can't tell whether you're referring to the development process or
  106. the build infrastructure.
  107.  
  108. --
  109. Keith M Wesolowski              "Sir, we're surrounded!"
  110. Solaris Kernel Team             "Excellent; we can attack in any direction!"

Update the Post

Either update this post and resubmit it with changes, or make a new post.

You may also comment on this post.

update paste below
details of the post (optional)

Note: Only the paste content is required, though the following information can be useful to others.

Save name / title?

(space separated, optional)



Please note that information posted here will expire by default in one month. If you do not want it to expire, please set the expiry time above. If it is set to expire, web search engines will not be allowed to index it prior to it expiring. Items that are not marked to expire will be indexable by search engines. Be careful with your passwords. All illegal activities will be reported and any information will be handed over to the authorities, so be good.

comments powered by Disqus
worth-right
worth-right