summaryrefslogtreecommitdiff
path: root/ports-mgmt
diff options
context:
space:
mode:
authorBaptiste Daroussin <bapt@FreeBSD.org>2013-05-30 15:17:29 +0000
committerBaptiste Daroussin <bapt@FreeBSD.org>2013-05-30 15:17:29 +0000
commit0eb6b89d2482b838138bf9463584bd190ed908f6 (patch)
treee1333dff2cc3f8324e6015890594904bfbc4aa94 /ports-mgmt
parent- Use pkg-static as PKG_BIN which is safer during upgrades if (diff)
The pkg developement team is proud to announce the new 1.1.0 beta1 release of
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
Notes
Notes: svn path=/head/; revision=319432
Diffstat (limited to 'ports-mgmt')
-rw-r--r--ports-mgmt/Makefile1
-rw-r--r--ports-mgmt/pkg-devel/Makefile143
-rw-r--r--ports-mgmt/pkg-devel/distinfo2
-rw-r--r--ports-mgmt/pkg-devel/pkg-descr3
-rw-r--r--ports-mgmt/pkg-devel/pkg-message3
-rw-r--r--ports-mgmt/pkg-devel/pkg-plist22
-rw-r--r--ports-mgmt/pkg/Makefile3
7 files changed, 177 insertions, 0 deletions
diff --git a/ports-mgmt/Makefile b/ports-mgmt/Makefile
index 7f1f7a076481..7a75dc4073bf 100644
--- a/ports-mgmt/Makefile
+++ b/ports-mgmt/Makefile
@@ -32,6 +32,7 @@
SUBDIR += pchecker
SUBDIR += pib
SUBDIR += pkg
+ SUBDIR += pkg-devel
SUBDIR += pkg-orphan
SUBDIR += pkg-plist
SUBDIR += pkg-rmleaf
diff --git a/ports-mgmt/pkg-devel/Makefile b/ports-mgmt/pkg-devel/Makefile
new file mode 100644
index 000000000000..33fa2190871d
--- /dev/null
+++ b/ports-mgmt/pkg-devel/Makefile
@@ -0,0 +1,143 @@
+# $FreeBSD$
+
+PORTNAME= pkg
+DISTVERSION= 1.1.0.b1
+CATEGORIES= ports-mgmt
+MASTER_SITES= http://files.etoilebsd.net/pkg/ \
+ http://mirror.shatow.net/freebsd/${PORTNAME}/ \
+ LOCAL/portmgr
+
+MAINTAINER= portmgr@FreeBSD.org
+COMMENT= New generation package manager
+
+LICENSE= BSD
+
+USE_XZ= yes
+
+MAKE_JOBS_SAFE= yes
+# Disable CCACHE support because of the chicken/egg problem pkg should always
+# With no dependency at all
+NO_CCACHE= yes
+USE_LDCONFIG= yes
+MANCOMPRESSED= yes
+
+MAKE_ENV+= WITHOUT_PROFILE=yes __MAKE_CONF=/dev/null SRCCONF=/dev/null \
+ PORTREVISION=${PORTREVISION}
+USE_STAGE= yes
+# Use a submake as 'deinstall install' needs to reevaluate PKG_CMD
+# so that pkg-static is used from the wrkdir
+USE_SUBMAKE= yes
+
+MAN8= pkg.8 \
+ pkg-add.8 \
+ pkg-annotate.8 \
+ pkg-autoremove.8 \
+ pkg-audit.8 \
+ pkg-backup.8 \
+ pkg-check.8 \
+ pkg-clean.8 \
+ pkg-convert.8 \
+ pkg-create.8 \
+ pkg-delete.8 \
+ pkg-fetch.8 \
+ pkg-info.8 \
+ pkg-install.8 \
+ pkg-lock.8 \
+ pkg-query.8 \
+ pkg-register.8 \
+ pkg-repo.8 \
+ pkg-rquery.8 \
+ pkg-search.8 \
+ pkg-set.8 \
+ pkg-shell.8 \
+ pkg-shlib.8 \
+ pkg-stats.8 \
+ pkg-update.8 \
+ pkg-updating.8 \
+ pkg-upgrade.8 \
+ pkg-version.8 \
+ pkg-which.8
+MAN5= pkg.conf.5
+MAN3= pkg_printf.3
+MLINKS= pkg-delete.8 pkg-remove.8 \
+ pkg-lock.8 pkg-unlock.8 \
+ pkg.8 pkg-static.8
+
+.include <bsd.port.pre.mk>
+
+.if defined(WITH_PKGNG)
+.if ${WITH_PKGNG} != devel
+IGNORE= WITH_PKGNG is not defined to 'devel', this version is the devel one
+.endif
+.if exists(${LOCALBASE}/sbin/pkg_info) || exists(/usr/sbin/pkg_info)
+NB_OLDPKGS!= pkg_info 2>/dev/null | wc -l
+.if exists(${PKG_BIN})
+NB_NEWPKGS!= ${PKG_INFO} -aq | wc -l
+.else
+NB_NEWPKGS= 0
+.endif
+# Only show the pre-everything notice if they have not already
+# converted any packages
+.if ${NB_OLDPKGS} > 0 && ${NB_NEWPKGS} == 0
+
+pre-everything::
+ @${ECHO_CMD} "You are about to convert your system to pkgng while you have ports/packages"; \
+ ${ECHO_CMD} "installed with the old pkg_install tools."; \
+ ${ECHO_CMD} ""; \
+ ${ECHO_CMD} "You can choose to: "; \
+ ${ECHO_CMD} "- keep pkg_install as the package management system by adding this line to /etc/make.conf:"; \
+ ${ECHO_CMD} ""; \
+ ${ECHO_CMD} " WITHOUT_PKGNG=yes" ; \
+ ${ECHO_CMD} ""; \
+ ${ECHO_CMD} "- switch to pkgng:"; \
+ ${ECHO_CMD} " 1) Add WITHOUT_PKGNG to /etc/make.conf"; \
+ ${ECHO_CMD} " 2) Install ports-mgmt/pkg"; \
+ ${ECHO_CMD} " 3) Convert your package database by running pkg2ng"; \
+ ${ECHO_CMD} " 4) Remove WITHOUT_PKGNG from /etc/make.conf"; \
+ ${ECHO_CMD} ""; \
+ exit 1
+
+.endif
+.endif
+.endif
+
+#define PKG_DEPENDS to nothing to avoid infinite loop looking for pkg :)
+.if defined(WITH_PKGNG)
+PKG_DEPENDS=
+.undef INSTALLS_DEPENDS
+.if !exists(${LOCALBASE}/sbin/pkg)
+PKG_BIN= ${WRKSRC}/pkg-static/pkg-static
+.endif
+.endif
+
+.if ${OSVERSION} < 800505
+IGNORE= not supported on 7.x or early 8.0
+.endif
+
+PERIODIC_DAILY= 400.status-pkg 411.pkg-backup 490.status-pkg-changes
+PERIODIC_SECURITY= 410.pkg-audit 460.pkg-checksum
+PERIODIC_ALL= ${PERIODIC_DAILY} ${PERIODIC_SECURITY}
+
+post-install:
+.for periodic in ${PERIODIC_ALL}
+ @${REINPLACE_CMD} -e 's|/usr/local|${PREFIX}|g' ${WRKSRC}/scripts/periodic/${periodic}
+.endfor
+ @${MKDIR} ${PREFIX}/etc/periodic/security
+ @${MKDIR} ${PREFIX}/etc/periodic/daily
+.for periodic in ${PERIODIC_DAILY}
+ @${INSTALL_SCRIPT} ${WRKSRC}/scripts/periodic/${periodic} ${PREFIX}/etc/periodic/daily
+.endfor
+.for periodic in ${PERIODIC_SECURITY}
+ @${INSTALL_SCRIPT} ${WRKSRC}/scripts/periodic/${periodic} ${PREFIX}/etc/periodic/security
+.endfor
+ @${INSTALL_SCRIPT} ${WRKSRC}/ports/pkg2ng ${PREFIX}/sbin
+ @${INSTALL_SCRIPT} ${WRKSRC}/ports/pkg2ng ${PREFIX}/sbin
+ @${INSTALL_DATA} ${WRKSRC}/pkg/pkg.conf.sample ${PREFIX}/etc
+ @${INSTALL_DATA} ${WRKSRC}/libpkg/pkg.pc ${PREFIX}/libdata/pkgconfig/
+ @${MKDIR} ${PREFIX}/share/zsh/site-functions
+ @${INSTALL_DATA} ${WRKSRC}/scripts/zsh/_pkg ${PREFIX}/share/zsh/site-functions/
+ @${MKDIR} ${PREFIX}/etc/bash_completion.d
+ @${INSTALL_DATA} ${WRKSRC}/scripts/bash/_pkg.bash ${PREFIX}/etc/bash_completion.d/
+ @${CAT} ${PKGMESSAGE}
+
+.include <bsd.port.post.mk>
diff --git a/ports-mgmt/pkg-devel/distinfo b/ports-mgmt/pkg-devel/distinfo
new file mode 100644
index 000000000000..16fc7bab8060
--- /dev/null
+++ b/ports-mgmt/pkg-devel/distinfo
@@ -0,0 +1,2 @@
+SHA256 (pkg-1.1.0.b1.tar.xz) = bb851be8bb778b21f8e91271b15834c7dc0089e9973c8afe1dd62ae04a81f2f6
+SIZE (pkg-1.1.0.b1.tar.xz) = 1549412
diff --git a/ports-mgmt/pkg-devel/pkg-descr b/ports-mgmt/pkg-devel/pkg-descr
new file mode 100644
index 000000000000..e888837d15a3
--- /dev/null
+++ b/ports-mgmt/pkg-devel/pkg-descr
@@ -0,0 +1,3 @@
+New Generation package management tool for FreeBSD
+
+WWW: http://wiki.freebsd.org/pkgng
diff --git a/ports-mgmt/pkg-devel/pkg-message b/ports-mgmt/pkg-devel/pkg-message
new file mode 100644
index 000000000000..26542252dfaa
--- /dev/null
+++ b/ports-mgmt/pkg-devel/pkg-message
@@ -0,0 +1,3 @@
+If you are upgrading from the old package format, first run:
+
+ # pkg2ng
diff --git a/ports-mgmt/pkg-devel/pkg-plist b/ports-mgmt/pkg-devel/pkg-plist
new file mode 100644
index 000000000000..b1260d5b5c3e
--- /dev/null
+++ b/ports-mgmt/pkg-devel/pkg-plist
@@ -0,0 +1,22 @@
+etc/pkg.conf.sample
+sbin/pkg
+sbin/pkg-static
+sbin/pkg2ng
+include/pkg.h
+lib/libpkg.so.1
+lib/libpkg.so
+lib/libpkg.a
+etc/periodic/daily/400.status-pkg
+etc/periodic/daily/411.pkg-backup
+etc/periodic/daily/490.status-pkg-changes
+etc/periodic/security/410.pkg-audit
+etc/periodic/security/460.pkg-checksum
+libdata/pkgconfig/pkg.pc
+share/zsh/site-functions/_pkg
+etc/bash_completion.d/_pkg.bash
+@dirrmtry etc/bash_completion.d
+@dirrmtry etc/periodic/daily
+@dirrmtry etc/periodic/security
+@dirrmtry etc/periodic
+@dirrmtry share/zsh/site-functions
+@dirrmtry share/zsh
diff --git a/ports-mgmt/pkg/Makefile b/ports-mgmt/pkg/Makefile
index 69a3416cb5e8..b6993e11307c 100644
--- a/ports-mgmt/pkg/Makefile
+++ b/ports-mgmt/pkg/Makefile
@@ -62,6 +62,9 @@ MLINKS= pkg-delete.8 pkg-remove.8 \
.include <bsd.port.pre.mk>
.if defined(WITH_PKGNG)
+.if ${WITH_PKGNG} == devel
+IGNORE= WITH_PKGNG is defined to 'devel', this version is the stable one
+.endif
.if exists(${LOCALBASE}/sbin/pkg_info) || exists(/usr/sbin/pkg_info)
NB_OLDPKGS!= pkg_info 2>/dev/null | wc -l
.if exists(${PKG_BIN})