[prev in list] [next in list] [prev in thread] [next in thread] 

List:       crux
Subject:    ANN: Pkgsync 0.5
From:       Jay Dolan <jasonthomasdolan () yahoo ! com>
Date:       2004-09-24 18:36:57
Message-ID: 20040924183657.15165.qmail () web41523 ! mail ! yahoo ! com
[Download RAW message or body]

Hi,

Some of you may have been following this on the IRC
channel, but nevertheless, Pkgsync 0.5 is here.

A couple interesting new features in this release:

-pre/post install script support
-dependency resolution
-several bug fixes

Pre and post install scripts work as follows:  When
committing a package to the repository, pre-install or
post-install scripts living in that package's
directory are also copied to the repository and named
$pkgfile-{pre,post}-install.  Thus, they are
maintained alongside their appropriate version.  When
a client node syncs with the repository, those scripts
that are present will be executed.

Dependencies work like so:  When committing a package,
`prt-get quickdep` will be dumped to
$pkgdir/.$package.deps.  When a node syncs with the
repository, dependencies for each package will be
parsed and installed in order.

Note that because we're dealing with binary packages,
dependency resolution was really only necessary for
install scripts that might call a program provided by
a dependency (i.e., epiphany's post-install calls
gconf).  An unfortunate but unavoidable situation.

I've tried to implement this as cleanly and
efficiently as possible.  Current users should be able
to upgrade with little to absolutely no hastle.  Some
ports which claim uneccessary dependencies may fail to
sync up if your clients do not have these "fake"
dependencies installed.  For example,
firefox-java-plugin says it requires j2re - however
you could have j2sdk installed instead.  Syncing
firefox-java-plugin in this situation will fail.  The
solution is to 1) ask the maintainer to remove bogus
dependencies or 2) simply remove
$pkgdir/.$package.deps after committing a new version.

If you wish to use dependency resolution, prt-get must
be present on the master node.  Client nodes will also
use prt-get, if available, for performance reasons. 
If prt-get is not available clients will fall back on
pkgutils.  While slower, this allows a stock CRUX
machine to sync up with a repository for the first
time. 

**THE GOOD NEWS**

With these new features, pkgsync should become your
best friend for a few reasons:

1)  Keep all of your machines up to date.  This was
the entire point originally.  Sync as many machines as
you like against your master host.

2)  Never recompile after a reinstall again.  Simply
backup your pkgsync repository to have everything you
need to rebuild your system.

3)  Distribute your repository to others.  Spent 2
days building Gnome?  A friend wants to install CRUX? 
Burn your repository, or mirror it with httpup, and
let them save time.

4)  It takes all of 30 seconds to install and setup. 
Append 'addcommand pkgdeploy' to /etc/prt-get.conf and
you're done.  prt-get's actions will be mirrored in
your repository.

Pkgsync is available in my httpup repository.  Bug
reports and feedback most welcome!

http://jaydolan.com/pkgsync.html
http://jaydolan.com/etc.html

=====
Jay Dolan
Software Engineer, Systems Analyst
Windmill Cycles, Inc.
508.999.4000


		
__________________________________
Do you Yahoo!?
Yahoo! Mail is new and improved - Check it out!
http://promotions.yahoo.com/new_mail
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic