With the PKG_PORTSDIR make argument set, Release 1.2.2 will properly build
pkg when PORTSDIR doesn't equal the default /usr/ports, as is the standard
case with DragonFly.
Additionally, pkg(8) and pkg-static(8) man pages are conditionally edited
to remove references to the -j option when libjail isn't found on the
system. This extra-patch should never be used on FreeBSD.
Changes:
- Fix pkg rquery always printing index like lines
- Fix pkg -vv suggestion so it print something actually usable
- Fix shlib's -P and -R options were swapped round.
- Replace broken pkg_repos_count() by pkg_repos_total_count() and pkg_repos_activated_count()
- Fix parsing of options (in manifest)
- pkg add http:// now fetch to a temporary location and cleanup after itself
- Fix generation of the manifest digest
- Properly calculate how many packages where removed
- Fix support for dependencies with the same name (grrrr Fix you port if they have package name collision !!!!)
- Fix pkg info -R in case multiple dependencies has the same name
- changes since 1.2.0 rc1:
* Couple of style fixes
* Fix loading yaml keywords
* Fix building on Dragonfly
* Autodetect if libelf should be used bundled
* Fix a bug if pkg audit -F got interrupted
* Allow 'enabled' entry from repo configuration to be a string and raise a warning about it
- Changes:
* Fix loading of fingerprints
* Fix ssh transport by refactoring
* Skip self upgrade with -F is passed
* Fix pkg info -[q]O
* Fix pkg info -q (with no other options)
* Make fingerprints signature checking actually working
- Update bundled libucl code (which fixes bugs)
- Fix double escaped \n for script and messages
- Fix rquery with -e not properly working [1]
- rquery can now take a -I argument to output index like lines (needed for bsdconfig)
- Fix local database creation (initial)
- With build with older bsd.prog.mk
- Improved documentation for pkg query
Reported by: mat [1]
Changes:
- Bug fixes in zsh completion
- Lots of bug fixes discovered by Coverity Scan
- New debug level traces
- Auto upgrade of pkg(8) now restart the upgrade process automatically
- Dependencies on library is now automatic via pkg register and pkg
create
- YAML is replaced by UCL format:
Both formats are really simular. pkg(8) will falls back on parsing YAML
when the UCL parser fail. And will emit a warning to the
user showing a syntax that is compatible with both YAML and UCL.
More informations on UCL: https://github.com/vstakhov/libucl
- Do not generate catalogs in pkg 1.0 format anymore.
- Working ssh protocol supported for repositories
- New PKG_SSH_ARGS to allow passing custom arguments to ssh command
used for the ssh:// protocol
- Allow using '?' operator in pkg query expressions
- New git like aliases to allow creating custom commands
- REPO_DIR is now a list instead of a simple string
- packagesite in pkg.conf is deprecated in favour using dedicated
repository configuration files
- New 'fingerprint' kind of signature:
if a repository is declared using the fingerprint type of
signature, a fingerprint directory should also be provided.
Inside that fingerprint directory should be 2 directories:
trusted and revoked. Those directories will contains files (in
yaml/ucl format) containing the fingerprint of the trusted
certificated and the revoked ones:
--- begins --
function: sha256
fingerprint: an_hex_representation_of_the_fingerprint
--- ends ---
All unknown attribute will be silently ignored to allow extending
in the future.
It also support multiple signatures inside the catalog. the
catalog should provide the signature in the following form:
name.sig
name.cert
- pkg add is now able to read the packages from a pipe or a non-regular
file '-' is an alias for stdin, this also works from pipes, fifos,
unix domain sockets etc.
- Support for pkg+foo url scheme where foo can be (http, https, ftp).
- pkg info now default on glob matching
- Print a pkg name only once - even if multiple vulns were found -
when using -q
- Accept empty/comment only configuration files
- vuxml is now the default source for pkg audir
- expat is now bundled (for vuxml)
- pkg info -q is now equivalent of pkg info -qa
- in case pkg info is querying a file or is a single direct match
query then default on -f
- pkg repo can now take new arguments:
pkg repo [path] [rsa_key|'signing_command: <command>']
This allow calling external command to perform the signing and
pass the checksum to be signed in the command stdin.
- options can now have a description
- new pkg config subcommand to allow direct query of options
- ABI is now checked again using globs:
a 'noarch' package should just specify: ARCH: 'freebsd:*'
a package working on both i386 and amd64: ARCH: 'freebsd:9:x86:*'
- Broken incremental pkg repo support was removed.
- Lots of spelling/grammar fixes
- Properly support srv priority/weigh when ordering mirrors
- Use port specified in the SRV entries to connect to a given mirror
- New pkg bootstrap subcommand that is the counter part of the
pkg(7) bootstrap subcommand
- Allow ARCH to be printed by pkg info
- Allow to hook plugins, before closing the local db if it was
opened in RW mode
- Improved build system
Changes:
- Fix @exec/post-install script execution with pkg register -i
- Fix MTREE not properly being extracted with pkg register -i
- Fix staging of meta ports that have no files, such as
mail/squirrelmail-plugins
With hat: portmgr
Changes:
* Fix crash when opening repository in some cases
* Fix build with -Werror
* Fix 'pkg install [-f] pkg' not finding results
* Fix 'pkg upgrade -f' always wanting to upgrade pkg first
* Fix 'pkg install -R' always wanting to install pkg first
* Fix backwards compatibility for 1.0-built packages for
tracking shlibs. This may cause some packages to be
reinstalled after the repository is updated.
* Fix pkg (upgrade|fetch|install) -r <repo> crash
* Fix crash when specifying invalid repo with -r
Changes:
- Fix repository signing verification with new format during update
- Disable terminal title setting
- Fix %a/%k returning true/false instead of 0/1
- Various memory/fd leaks have been fixed
- Fixed pkg self-upgrade detection
- ZSH completion fixes
- Several crashes fixed
With hat: portmgr
Changes:
- Fix install|upgrade -f not executing post-install scripts [1]
- Fix bad size calculation on i386 for pkg delete (always say 4G will be freed)
- Fix pkg query '%sh' now properly converting to human number on i386
- Fix zsh completion missing ']' [2]
- Fix pkg stats in case no remote repositories are configured [3]
Reported by: ohauer [1], Kimmo Paasiala via github issue #520 [2], rene [3]
Changes:
- Fix packing of +UPGRADE scripts
- Fix pkg update always thinking the repo is up to date if the remote server sends no mtime header
- Various updates on the manpage
- New pkg-repository(5) man page
Changes:
- Fix pkg install -R [1]
- pkg install -R does not downgrade anymore except if -f is passed.
- Fix package validation [2]
- Do not try to search on repositories if no repositories are configured
- Fix pkg query '%M' printing '(null)' [3]
Reported by: Nikolai Lifanov <lifanov@mail.lifanov.com> [1],
Waitman Gobble (github issue #514), and many others [2],
flo [3]
Changes:
- A package can now be marked to only be upgraded from a given repository via annotations
- install and upgrade will now show from which repository packages are taken (if at least 2 repositories are setup)
- old/unused 'informations' field has been removed in favor of using annotations
- important cleanup using pkg_printf(3)
- add seat belt so pkg-devel can only be removed with -f
- signing key is only asked once now in pkg repo
- only look withing the note version of elf files
- fix pkg delete -a
- pkg repo has been changed to produce repo.txz in 1.0 only format
- catalog is now only take from digest in 1.1
- fix pkg update to that is is really incremental.
- fix pkg convert (thus fix pkg2ng)
- Add a DISABLE_MTREE option, which just disables processing +MTREE data
- Rename ENV to PKG_ENV to not conflict with sh(1)'s ENV
- Refactor 'pkg [-v|-vv|-vvv]' handling
- Fix the solver endlessly proposing to reinstall some packages [1]
- Fix a typo in repository configuration parser
- Explain why a package is being reinstalled
Reported and tested by: Nikolai Lifanov <lifanov@mail.lifanov.com> [1]
- Fix pkg audit -F [1]
- Fix the new solver trying to downgrade some packages when it shouldn't
- Properly show how much space is going to be free/required when deinstalling [2]
Reported by: Nikolai Lifanov <lifanov@mail.lifanov.com> [1], gerald [2]
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