Google SoC 2008

Randall Wood randall.h.wood at alexandriasoftware.com
Mon Mar 3 02:12:35 PST 2008


On 3/2/08, Jordan K. Hubbard <jkh at apple.com> wrote:
>
>  On Mar 2, 2008, at 4:58 PM, Randall Wood wrote:
>
>  > I would like to see MacPorts use RPM for its installation database
>  > instead of whatever we have now.
>
>
> We don't have anything now.  We've also tried to use rpm at various
>  times in the past, but the impedance matching requirements have always
>  proved problematic (rpm expects its packages to be built via srpms and
>  dependencies to be handled in a very specific way, just to name two of
>  many).
>
>  My personal opinion is that we should start building xar files.
>
>  For the first cut, they can be essentially dumb and we can focus on
>  extracting enough dependency information from them to do package
>  dependency tracking.  That's pretty straight-forward and quite
>  achievable with existing technology.
>
>  For the second cut, we can embed a minimal macports runtime (in the
>  form of a universal dylib and some collection of tcl files) in each
>  xarball, allowing us to run the same install/post-install/activate/
>  post-activate routines at install time.  A properly formed package
>  represents, after all, little more than everything up to and including
>  the destroot phase, archived up.  It's what to do with the specialized
>  actions (add user foo, present message bar to the user, etc - just
>  grep through dports looking for post-install to get a good feel for
>  how varied the landscape currently is) and how to provide the same
>  activate/deactivate metaphor for packages that has always held us up
>
>  Once we get to that stage, we can behead the current installation
>  procedures for macports and turn that into pkg install actions.   Then
>  macports just needs to carry the load up to the destroot / package
>  stage and then hand things off to the package system for the install/
>  activate heavy lifting.  But, we also need to crawl before we try to
>  run, which is why I think simple archives (which work for all the
>  "simple" ports) is the right place to start.  Excellent SoC project!

Whichever the student feels like then...I don't really care except
that I am becoming more and more familiar with RPM as I now work in a
shop[1] that uses Red Hat Enterprise Linux 5 as the basis for all its
products.

As far as the complexity of RPM goes, I think that a lot of the
dp-light work is still hanging around and may be reusable, but it may
simply be a good idea for port to do a Portfile to .spec file
transform (and maybe build the SRPM) and then hand everything off to
an RPM-based configure/build/distribute/install process. I know that a
lot of the GTK/GNOME ports already build the .spec files for creating
the [S]RPMs anyway.

[1] Trusted Computer Solutions (http://www.trustedcs.com)

-- 
Randall Wood
randall.h.wood at alexandriasoftware.com

"The rules are simple: The ball is round. The game lasts 90 minutes.
All the rest is just philosophy."


More information about the macports-dev mailing list