Skip to content

Lukc/pkgxx.old

Repository files navigation

pkg++

Description

pkg++ is a tool to build packages on any distribution and with any package manager. It wants to be a simple tool to build anything, anywhere, at anytime.

Why pkg++?

Many experienced Linux users wanted to build packages for their distribution, or at least packages compliant with their package manager, but the tools given by their distribution were too much complicated. pkg++ offers a way to build easily packages for anyone.

You can use it to package the last application you found on the net, the software you are developing and want to redistribute, a tool you patched and want to be recognised as dependency by your package manager, or simply to contribute to a collaborative repository, may it be for a single distribution or for users on multiple distributions.

Dependencies

To get pkg++ working, you just need zsh. To build it, however, you also need gcc and make. Any other preprocessor might work, but none has been tested and work would very probably have to be done. As for make, the Makefile is generic and any implementation should be able to use it without any kind of problem.

Installation

Now, you are convinced pkg++ is the best tool to build packages, whatever you distribution might be, and you want to install it.

Just run the following commands:

./configure
make
make install

If you want to update, replace make install by make update. This will avoid the Makefile to erase your already existing configuration (/etc/pkg++.conf).

If you want to install pkg++ in a prefix other than /usr, you can re-run configure this way:

./configure \
	--prefix=/usr/local \
	--sysconfdir=/usr/local/etc

The file Makefile.new you may have noticed is a non-working work-in-progress of Makefile for bmake. This Makefile should ideally be independent of any external script. However, no-one is seriously maintaining it right now and it is really outdated, so please, if you are not already a pkg++ user and a bmake expert, do not use it. :)

Configuration

pkg++ tries to be working out of the box. As such, any post-installation configuration would be optional and you can run it right now.

However, you may want to set the directories in which you will download your sources or store your packages, or even the features you want to enable or disable in the recipes you are going to use.

To change you sources and packages directories, edit the following variables. You can put the absolute link of any directory you want, but do not forget it will have to be created before you try to build a recipe, or pkg++ will fail.

PKGMK_SOURCE_DIR="/srv/sources"
PKGMK_PACKAGE_DIR="/srv/local"

You should also set the logs directory. Some recipes use it, and you will be happy to have data to give to the ports maintainers to help them solving your problem faster.

PKGMK_LOGS_DIR="/var/log/pkg++/"

For “useflags”, just edit the ${USE[]} array. If you do not know much about useflags, you should read the useflags help.

If you already know what it is, just declare…

USE=(my -flags)

The other variables of the file should be intuitive and commented enough for you to guess their effect. :)

Bugs

pkg++ is buggy. Very buggy. But, keep hope, the bugs will very likely not be a problem for you. Main ones are listed here.

  • Noarch packages might not be built as noarch.
  • Documentation is quite rare. More than water in a desert. This tends to be a little less true everyday, but there is still much work to be done.
  • Packages using VCS repositories tend to say the packages are up to date when they are not.

There may of course be more bugs that we may be unaware of. If you find a such a bug, please send me a message by mail or Jabber/XMPP at lukc@upyum.com for both protocols.

Contribute!

pkg++ is always looking for potential new developers. If you are interested in helping, you should join us on our XMPP channel (see Bugs).

About

Universal packages builder.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published