On Sun, 23 Nov 2008 19:10:52 +0100
Bartlomiej Palmowski <wszystkie.fajne.loginy.zajete@gmail.com> wrote:
Hi
Due to "deconcentration" (I'm not sure if this is proper word or even
an english word ;]) of ports collections in crux I thought about
creating set of tools for managing "heterogeneous port trees", allow
me to explain by showing you an example:
Lets say all port collections in your ports tree are
core/opt/xorg/contrib, now you want to install xarchiver which is not
available in any of these collections. Usually you would just httpup
or rsync xarchiver port build and install it, and then probably
forgot about that xarchiver is not maintained in ports tree. So you
end up with "orphaned" port being installed on your system, its not
going to be updated nor tracked by ports. You can create local
collection and put xarchiver port there but still its not going to be
updated by ports.
Here is how you do it with hpct (heterogeneous ports collection
tools , i know name is ugly but i couldnt think of better one)
you want to install xarchiver from lxde collection (which is not in
your ports tree)
# hpcm httpup sync http://maxiq.ovh.org/CRUX/lxde#xarchiver xarchiver
adds xarchiver to /usr/ports/hpc collection
now you can install xarchiver w/ prt-get if you have prtdir
/usr/ports/hpc in prt-get.conf added.
# prt-get depinst xarchiver
you can update it via ports as well
# ports -u hpc
updates all ports added by hpcm
so it works as usual httpup or rsync collection except this one
consists of ports from different collections, so you can create and
manage your custom collection that consists of ports maintained by
others.
hpct consists of 3 files:
hpcd - driver for heterogeneous ports collection
hpcm - heterogeneous ports collection manager
hpc.hpcd - config file for hpcd and hpcm
I've been thinking of adding a driver like this to work with pdb (a
command line portdb tool).
It has a feature called pull which collects the
complete dependency chain of a port and stores them in a single
location. The problem is that there is no way to update them once they
have been pulled.
The advantage of using 'pdb pull' rather than the traditional 'download
sync file, sync the repo' method is that you only have one ports
directory and you only have the ports you use rather than having entire
repos pushed to you.
I might add the .meta file when ports are pulled so they will work with
your ports driver.