After almost a year of development pkg 1.1 has reached the ports tree, actually
pkg 1.1.1 has 1.1 was too buggy :(
What happened in 1 year of development (I'll focus on use visible features)
The multi-repository support was experimental in pkg 1.0 and to be honest it
was not really usable. With pkg 1.1 the support has been greatly improved and it
is now the default behaviour (you can't deactivate).
To define repository you just have to create a simple configuration file in
Meaning you can provide a package to autosetup a repository creating a package
containing like this one:
$ tar tf myrepo-1.0.txz
Host this file somewhere and say to the use to do the following
$ pkg add http://yourhost/myrepo-1.0.txz
Now you can see that the repository is configured properly pkg -vv should show
you in the last lines:
The user can also choose to make sure a given package will always be updated
$ pkg install -r myrepo mypackage
$ pkg annotate -A mypackage reposiroty myrepo
Now the package 'mypackage' will only be updated from 'myrepo'
If a use want to prevent a package from being updated anyway he can just lock
$ pkg lock mypackage
To unlock it just update use the following command:
$ pkg unlock mypackage
If your server has pkg 1.1+ installed then you do not need so set up a HTTP
server or a FTP server, pkg can now use ssh to share the packages
Or in the repository configuration:
Do not forget to restrict on the server the directory where files can be
retrieved by adding the following line on the server pkg.conf:
This allows to add any key/value annotation to a given package once installed,
if you recreate the package after that, the annotation will be added to the
manifest and then a new reinstallation will keep the annotation.
pkg now supports 2 kind of plugins: commands (to add new subcommand to pkg) and
hooks (which will be executed in the middle of any process of pkg).
I'll write another post dedicated to plugins later.
As pkg is able to determine that a package needs to be reinstalled because the
remote one has been compiled with new options or the required shared libraries
for the package has changed, pkg now explains why a package will be reinstalled.
We have stabilized the public API, so now bindings, and program using libpkg are
more than welcome :)
Lots of cleanup has occurred in the code, and lots of code optimisation.
New pkg_printf(3) function to help printing a preparing strings with pkg
We are more and more adding some regressions test using the ATF framework.
The catalog has changed and is now a simple yaml files which gives us more
flexibility and allow simples incremental update.
pkg audit can now directly read the vuxml native format.
Way more things but I'll let you discover :)
Thanks to all people that has been involved in the new release (coders, testers,
doc writers, etc.)