This will silence warnings from pkg about files already removed by "ocamlfind remove" during "pkg remove".
Note: I am not convinced that running "ocamlfind remove" during uninstall is necessary as all files are tracked.
If that fails, copy it. This fixes packaging as non-root when not able to
write to the PACKAGES dir which causes the following warning:
pkg-static: archive_write_open_filename(/usr/ports/packages/All/myport-1.2.3.txz): Bad file descriptor
We do the same thing for pkg_install already.
With hat: portmgr
pkg has a naive solver but good enough to properly order the dependencies
and not get into a missed dependency
pkg register is also able to figure out by itself lib_depends magically
added during the compilation.
post-install process instead of pre-install. in case pkgng is in
use.
Replace it by a new mecanism that allows to append scripts into
what will become pre-install, post-install, pre-deinstall or
post-deinstall
Change the user-group creation to use that mecanism in case the
ports tree is using pkgng.
Reported by: mandree
Reviewed by: bdrewery
The ports tree is now staged by default. With pkgng the sequence hasn't
changed, the main difference is that creating package is now independent
from installing it. With pkg_install, the package is now created first
and make install, do install the package.
New macros:
- STAGEDIR: PATH to the directory where the port will be staged.
- NO_STAGE: Keep the old behaviour of the ports tree (aka no staging area)
Unsupported macro if NO_STAGE is not set:
- MAN* with staging man page compression and handling of hardlinks and
symlinks is automatically done in the stage. the manpages becomes then a
"normal" plist files and should be tracked in pkg-plist.
- MANCOMPRESSED the compress-man target is able to only compress when it
needed.
New target:
- stage: this installs everything into the stage directory
- makeplist: this will create a pkg-plist and print it to stdout. This is
a sample plist and it should always be _reviewed_ not directly used.
NOTE: with staging only what is in the plist will be installed, nothing more,
meaning a port staged cannot have leftovers exect directories left. It is
really important to double check the pkg-plist to make sure all the files
the maintainer want to package are in! make makeplist can help in that area.
The goal is to handle as quickly as possible a full removal of the NO_STAGE
support.
More features can be added once the full ports tree is converted to using the
staging area
Conversion notes:
- Remove NO_STAGE
- in {pre,do,post}-install
* Before any usage of ${PREFIX}, ${ETCDIR}, ${PORTSDIR}, ${PORTEXAMPLES}
prepend ${STAGEDIR}
* Remove any thing that is done by @exec or +INSTALL script it will be
done automatically when syncing packages
* Remove any code to show PKG-MESSAGE it will be done automatically when
syncing packages
* Directory creation should remain in post-install (in particular because
pkgng doesn't work like pkg_install in that area and pkgng ignores the
@exec mkdir but directly pack the directory even if empty)
- PORTDOCS/PORTEXAMPELS
To support PORTDOCS, PORTEXAMPLES most of the time there is no more need
for hacks. just add the right %%PORTDOCS%% or %%PORTEXAMPLES%% in your
plist then the given files from the stagedir will or will not sync
according to NOPORTDOCS and NOPORTEXAMPLES.
With hat: portmgr
Reviewed by: bdrewery
Pkg-1.1.4 will define UID=0 when sourcing bsd.pkgng.mk directly.
This extra defined(UID) can eventually be removed, but is needed
for backwards compatibility for now.
Reported by: uqs
Reviewed by: bapt
With hat: portmgr
with pkg
- Consistently use full path when running gtk-query-immodules as the path
is embedded in output (we prefer reproducible output)
This fixes leftovers reported by poudriere
====>> Files or directories modified:
etc/gtk-2.0/gtk.immodules
PR: ports/179230
Approved by: portmgr (bapt)
pkg.
Here is the list of new features that happened in pkg 1.1:
- new simpler and more reliable solver
- shared libraries are now always tracked
- ssh:// is supported as a protocol to distribute packages (needs pkg 1.1+ on
the server hosting the packages)
- multirepository is no longer considered experimental and works by default.
- incremental update of the catalog (only if the repository was created by pkg
1.1+)
- simplification of the public API
- stabilisation of the public API (we will now try to keep it stable and if
change are needed there will be deprecation time before removal of some old
functions)
- new experimental pkg convert (can convert from and to legacy pkg database)
pkg2ng now uses pkg convert (still recommanded to use pkg2ng)
- new pkg lock/unlock to prevent any manipulation of a given package (no
upgrade,delete,etc)
- improved UI (now you can see the progress of an upgrade what is left to be
done)
- new pkg annotation to allow one to add annotations (free form key/value) to a
package)
- pkg audit is now able to directly parse the vuxml native format and not only
the compact version
- pkg -vv now shows all available options and their current settings
- pkg -vvv now shows a description of all the available options
- pkg info now automatically considers the query as globbing if * is in the
requested pattern
- new hook plugin interface (allows users to create hooks that get called at
anytime during and upgrade/installation/deletion of a package)
- new cmd plugin interface (allows users to create new sub command available for
pkg)
- pkg register can now register a port installation in the legacy database
format
- repository can be defined in simple yaml files
Internal:
- massive usage of hash tables (uthash), which simplifies a lot of the code,
and improves performances
- lots of optimisation in plist and manifest parsing
- lots of optimisation in loading packages (mmap used when possible)
- lots of cleanup in memory usage
- regression test framework is now ready (using atf) regression test are slowly
being added and populated.
To use this new version:
Ports users (or in building factories: poudriere/tinderbox):
Add WITH_PKGNG=devel to your make.conf
pkg set -o ports-mgmt/pkg:ports-mgmt/pkg-devel
Binary package users, if the remote repository is providing pkg 1.1:
pkg set -o ports-mgmt/pkg:ports-mgmt/pkg-devel
pkg upgrade
Note that pkg 1.1 can use a repository created for pkg 1.0 and vis versa.
Huge thanks to all the people that have contributed to the pkg developement:
- may that be by code
- documentation
- bug report
- feedback
- ideas
List of people who contributed code:
Baptiste Daroussin, Matthew Seaman, Bryan Drewery, Vsevolod Stakhov,
Marin Atanasov Nikolov, Alexandre Perrin, Romain Tartière, Julien Laffaye,
Glen Barber, John Marino, Alex Kozlov, Roman Naumann, Sofian Brabez,
Alberto Villa, Will Andrews, Eitan Adler, Dan McGregor, namor, niamtokik,
Arthur Gautier, Garrett Cooper, Andrew Turner, Jeremy Chadwick,
Hajimu UMEMOTO, Mark Lokowich, Eygene Ryabinkin, Pietro Cerutti,
Rolf Grossmann, Ed Schouten, Dimitry Andric, David Forsythe, Stefan Grundmann,
Craig Rodrigues, Antoine Brodin, Andrey Zonov, Joel Dahl
Stats between 1.0 and 1.1:
287 files changed, 63418 insertions(+), 18763 deletions(-)
1198 commits
This was a pkg-1.0.9 regression. The impact of this is
that some ld cache files would show as leftovers.
PR: ports/178837
Submitted by: Antoine Brodin <antoine@FreeBSD.org>
Tested by: miwi, bdrewery
With hat: portmgr
that if found in a @(un)exec pkgng will force to push them in post_deinstallation script.
This allows not to hardcode anymore those in the pkgng binary.
output to not properly be piped. This was due to || :
causing its output to be piped to the while loop
instead of the pkg-query output.
With hat: portmgr
Reviewed by: bapt
- Don't call 'pre-config' twice in the 'config-conditional' target [2]
- Clean up pkgng metadir so that the 'clean' target can be executed without
root permissions if the build was done with a non-root user. [3]
- Make 'do-package' atomic while creating the pkg file [4]
PR: ports/171161 [2], ports/171329 [3], ports/171672 [4]
Submitted by: bapt [1], A.J. Kehoe IV (Nanoman) <m7k60pkr@nanoman.ca> [2],
Submitted by: bdrewery [3, 4]
Reported by: Kimmo Paasiala <kpaasial@gmail.com> [3]
Tested by: Exp-run on pointyhat, bapt (pkgng changes)