01799e1e18
changes to allow better linking flags in future packages through pkg-config. Removed the PKGFS_TEMPLATESDIR, PKGFS_DEPSDIR and others that weren't too useful. Instead use a single PKGFS_DISTRIBUTIONDIR on which all those directories/files can be found. Added a template helper for pkg-config, that changes a pkg-config file after it's installed to produce correct linker paths. More helpers could be added in the future. --HG-- extra : convert_revision : a42fd2e72915a4219714de92579011bca2b0f4a6 |
||
---|---|---|
dependencies | ||
helper-templates | ||
templates | ||
pkgfs.conf | ||
pkgfs.sh | ||
README |
pkgfs - Build packages from s(cratch|ource) It is a simple package system manager that uses Xstow to allow packages to be available at a master directory. Multiple versions of a package can be installed, because they can be enabled or disabled at the master directory anytime, to e.g allow testing different versions of the same package by "stowning" or "unstowning" them. ------------------------------------------------------------------------------ HOW TO USE IT ------------------------------------------------------------------------------ Once you download it, you should edit the configuration file located at the pkgfs directory. By default it uses the pkgfs directory in your $HOME. If PKGFS_CONFIG_FILE is not set or specified from the command line with the -c flag, it will use the location "/usr/local/etc/pkgfs.conf". Once that you read the "pkgfs.conf" file and configured it, you can start installing packages by using the command: $ pkgfs.sh -c pkgfs.conf install glib-2.18.1 Please note that it's assumed that PKGFS_TEMPLATESDIR is properly defined and actually contains valid template files. While installing your first package, if pkgfs couldn't find the Xstow program specified at the configuration file with PKGFS_XSTOW_CMD, the Xstow package will be installed and "stowned". If the package is properly installed, it will be "stowned" automatically. ``stowned´´ means that this package is available in the master directory, on which ``Xstow´´ has created links from DESTDIR/<pkgname>. To remove a currently installed (and stowned) package, you can use: $ pkgfs.sh -c pkgfs.conf remove glib-2.18.1 Please note that when you remove it, the package will also be removed from PKGFS_DESTDIR and previously "unstowned". pkgfs uses some db(1) btree files, to record what packages are currently "stowned". Once you install successfully or stown a package, the package will be registered in PKGFS_DESTDIR/.pkgfs-registered-pkg.db. While "unstowning" a package, it won't be available anymore in the master directory and therefore it probably won't work if used from PKGFS_DESTDIR/<pkgname>. Summary, to stow an already installed package (into PKGFS_DESTDIR/<pkgname>): $ pkgfs.sh -c pkgs.conf stow glib-2.18.1 and to unstow an already installed (stowned) package: $ pkgfs.sh -c pkgfs.conf unstow glib-2.18.1 You can also print some stuff about any template, e.g: $ pkgfs.sh info glib-2.18.1 To list installed (stowned) packages, use this: $ pkgfs.sh -c pkgfs.conf list That's all for now folks. I hope you find it useful, as I do. ------------------------------------------------------------------------------ PERFORMANCE ------------------------------------------------------------------------------ pkgfs is really fast, trust me. That was one of my reasons to make my own pkgsrc/ports alike system. If you want benchmarks, here is one; building libX11 (all deps installed) with pkgfs: 217.00s real 103.23s user 29.96s system versus pkgsrc (make install clean): 229.22s real 112.75s user 54.79s system The difference in this package might not be too big as I might think... but anyway, 12 seconds faster is not that bad. ------------------------------------------------------------------------------ Juan Romero Pardines <xtraeme@gmail.com>