summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorflz <flz@FreeBSD.org>2011-05-17 19:11:47 +0000
committerflz <flz@FreeBSD.org>2011-05-17 19:11:47 +0000
commita67c814c56ba88655fb9dc06c639c3ce44a41d3d (patch)
tree09d73e61361d4bd08e4cbf43041da192c242cc1c
parent7fd3026923990d3b14f6b6440502163be85b611b (diff)
downloadFreeBSD-src-a67c814c56ba88655fb9dc06c639c3ce44a41d3d.zip
FreeBSD-src-a67c814c56ba88655fb9dc06c639c3ce44a41d3d.tar.gz
Backout libinstall.a -> libpkg commit.
Discussed with: erwin, brooks, bapt
-rw-r--r--Makefile.inc15
-rw-r--r--lib/Makefile5
-rw-r--r--lib/libpkg/Makefile47
-rw-r--r--lib/libpkg/pkgwrap.c90
-rw-r--r--share/mk/bsd.libnames.mk1
-rw-r--r--usr.sbin/pkg_install/Makefile4
-rw-r--r--usr.sbin/pkg_install/Makefile.inc13
-rw-r--r--usr.sbin/pkg_install/add/Makefile7
-rw-r--r--usr.sbin/pkg_install/add/extract.c2
-rw-r--r--usr.sbin/pkg_install/add/futil.c2
-rw-r--r--usr.sbin/pkg_install/add/main.c4
-rw-r--r--usr.sbin/pkg_install/add/perform.c2
-rw-r--r--usr.sbin/pkg_install/create/Makefile6
-rw-r--r--usr.sbin/pkg_install/create/main.c4
-rw-r--r--usr.sbin/pkg_install/create/perform.c2
-rw-r--r--usr.sbin/pkg_install/create/pl.c2
-rw-r--r--usr.sbin/pkg_install/delete/Makefile5
-rw-r--r--usr.sbin/pkg_install/delete/main.c4
-rw-r--r--usr.sbin/pkg_install/delete/perform.c2
-rw-r--r--usr.sbin/pkg_install/info/Makefile6
-rw-r--r--usr.sbin/pkg_install/info/info.h39
-rw-r--r--usr.sbin/pkg_install/info/main.c14
-rw-r--r--usr.sbin/pkg_install/info/perform.c2
-rw-r--r--usr.sbin/pkg_install/info/show.c2
-rw-r--r--usr.sbin/pkg_install/lib/Makefile11
-rw-r--r--usr.sbin/pkg_install/lib/deps.c (renamed from lib/libpkg/deps.c)2
-rw-r--r--usr.sbin/pkg_install/lib/exec.c (renamed from lib/libpkg/exec.c)2
-rw-r--r--usr.sbin/pkg_install/lib/file.c (renamed from lib/libpkg/file.c)2
-rw-r--r--usr.sbin/pkg_install/lib/global.c (renamed from lib/libpkg/global.c)2
-rw-r--r--usr.sbin/pkg_install/lib/lib.h (renamed from lib/libpkg/pkg.h)12
-rw-r--r--usr.sbin/pkg_install/lib/match.c (renamed from lib/libpkg/match.c)4
-rw-r--r--usr.sbin/pkg_install/lib/msg.c (renamed from lib/libpkg/msg.c)9
-rw-r--r--usr.sbin/pkg_install/lib/pen.c (renamed from lib/libpkg/pen.c)17
-rw-r--r--usr.sbin/pkg_install/lib/pkgwrap.c89
-rw-r--r--usr.sbin/pkg_install/lib/plist.c (renamed from lib/libpkg/plist.c)2
-rw-r--r--usr.sbin/pkg_install/lib/str.c (renamed from lib/libpkg/str.c)2
-rw-r--r--usr.sbin/pkg_install/lib/url.c (renamed from lib/libpkg/url.c)4
-rw-r--r--usr.sbin/pkg_install/lib/version.c (renamed from lib/libpkg/version.c)14
-rw-r--r--usr.sbin/pkg_install/updating/Makefile5
-rw-r--r--usr.sbin/pkg_install/updating/main.c4
-rw-r--r--usr.sbin/pkg_install/version/Makefile5
-rw-r--r--usr.sbin/pkg_install/version/main.c4
-rw-r--r--usr.sbin/pkg_install/version/perform.c2
43 files changed, 211 insertions, 251 deletions
diff --git a/Makefile.inc1 b/Makefile.inc1
index 907cdce..4aa53da 100644
--- a/Makefile.inc1
+++ b/Makefile.inc1
@@ -1205,7 +1205,7 @@ _prebuild_libs= ${_kerberos5_lib_libasn1} ${_kerberos5_lib_libheimntlm} \
${_kerberos5_lib_libhx509} ${_kerberos5_lib_libkrb5} \
${_kerberos5_lib_libroken} \
lib/libbz2 lib/libcom_err lib/libcrypt \
- lib/libexpat lib/libfetch \
+ lib/libexpat \
${_lib_libgssapi} ${_lib_libipx} \
lib/libkiconv lib/libkvm lib/liblzma lib/libmd \
lib/ncurses/ncurses lib/ncurses/ncursesw \
@@ -1238,7 +1238,6 @@ _cddl_lib= cddl/lib
_secure_lib_libcrypto= secure/lib/libcrypto
_secure_lib_libssl= secure/lib/libssl
lib/libradius__L secure/lib/libssl__L: secure/lib/libcrypto__L
-lib/libfetch__L: secure/lib/libcrypto__L secure/lib/libssl__L lib/libmd__L
.if ${MK_OPENSSH} != "no"
_secure_lib_libssh= secure/lib/libssh
secure/lib/libssh__L: lib/libz__L secure/lib/libcrypto__L lib/libcrypt__L
@@ -1274,7 +1273,7 @@ _lib_libypclnt= lib/libypclnt
.endif
.if ${MK_OPENSSL} == "no"
-lib/libfetch__L lib/libradius__L: lib/libmd__L
+lib/libradius__L: lib/libmd__L
.endif
.for _lib in ${_prereq_libs}
diff --git a/lib/Makefile b/lib/Makefile
index 7be186f..eef2048 100644
--- a/lib/Makefile
+++ b/lib/Makefile
@@ -89,7 +89,6 @@ SUBDIR= ${SUBDIR_ORDERED} \
libopie \
libpam \
libpcap \
- ${_libpkg} \
${_libpmc} \
${_libproc} \
libprocstat \
@@ -215,10 +214,6 @@ _libmp= libmp
_libpmc= libpmc
.endif
-.if ${MK_PKGTOOLS} != "no"
-_libpkg= libpkg
-.endif
-
.if ${MK_SENDMAIL} != "no"
_libmilter= libmilter
_libsm= libsm
diff --git a/lib/libpkg/Makefile b/lib/libpkg/Makefile
deleted file mode 100644
index 8f2b325..0000000
--- a/lib/libpkg/Makefile
+++ /dev/null
@@ -1,47 +0,0 @@
-# $FreeBSD$
-
-.include <bsd.own.mk>
-
-LIB= pkg
-
-SHLIBDIR?= /usr/lib
-SHLIB_MAJOR= 0
-
-SRCS= deps.c \
- exec.c \
- file.c \
- global.c \
- match.c \
- msg.c \
- pen.c \
- pkgwrap.c \
- plist.c \
- str.c \
- url.c \
- version.c
-INCS= pkg.h
-
-CFLAGS+= -DYES_I_KNOW_THE_API_IS_RUBBISH_AND_IS_DOOMED_TO_CHANGE
-
-DPADD= ${LIBFETCH} ${LIBMD} ${LIBUTIL}
-LDADD= -lfetch -lmd -lutil
-
-.if ${MK_OPENSSL} != "no"
-DPADD+= ${LIBSSL} ${LIBCRYPTO}
-LDADD+= -lssl -lcrypto
-.endif
-
-WARNS?= 3
-
-DATE!= grep LIBPKG_VERSION ${.CURDIR}/pkg.h | sed 's|.*[ ]||'
-
-distfile: clean
- @(cd ${.CURDIR}/..; \
- cp -r libpkg libpkg-${DATE}; \
- tar -czf libpkg/libpkg-${DATE}.tar.gz \
- --exclude .#* --exclude *~ --exclude CVS \
- --exclude .svn --exclude libpkg-*.tar.gz \
- libpkg-${DATE}; \
- rm -rf libpkg-${DATE})
-
-.include <bsd.lib.mk>
diff --git a/lib/libpkg/pkgwrap.c b/lib/libpkg/pkgwrap.c
deleted file mode 100644
index 9c8c0c3..0000000
--- a/lib/libpkg/pkgwrap.c
+++ /dev/null
@@ -1,90 +0,0 @@
-/*
- * FreeBSD install - a package for the installation and maintenance
- * of non-core utilities.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * Maxim Sobolev
- * 8 September 2002
- *
- */
-
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
-#include "pkg.h"
-#include <ctype.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
-
-extern char **environ;
-
-void
-pkg_wrap(long curver, char **argv)
-{
- FILE* f;
- char ver[9]; /* Format is: 'YYYYMMDD\0' */
- char buffer[FILENAME_MAX+10]; /* Format is: 'YYYYMMDD <path>' */
- char cmd[FILENAME_MAX+5]; /* Format is: '<path> -PPq' */
- char *path, *cp;
- long ptver, lpver;
-
- if (getenv("PKG_NOWRAP") != NULL)
- goto nowrap;
-
- setenv("PKG_NOWRAP", "1", 1);
-
- /* Get alternative location for package tools. */
- if ((f = fopen(PKG_WRAPCONF_FNAME, "r")) == NULL) {
- goto nowrap;
- } else {
- if (get_string(buffer, FILENAME_MAX+9, f) == NULL) {
- goto nowrap;
- } else {
- if ((path = strrchr(buffer, ' ')) == NULL) {
- goto nowrap;
- } else {
- *path++ = '\0';
- }
- }
- }
-
- if ((cp = strrchr(argv[0], '/')) == NULL) {
- cp = argv[0];
- } else {
- cp++;
- }
-
- /* Get version of the other pkg_install and libpkg */
- snprintf(cmd, FILENAME_MAX+10, "%s/%s -PPq", path, cp);
- if ((f = popen(cmd, "r")) == NULL) {
- perror("popen()");
- goto nowrap;
- } else {
- if (get_string(ver, 9, f) == NULL)
- goto nowrap;
- else
- ptver = strtol(ver, NULL, 10);
- if (get_string(ver, 9, f) == NULL)
- goto nowrap;
- else
- lpver = strtol(ver, NULL, 10);
- pclose(f);
- }
-
- if ((lpver >= LIBPKG_VERSION) && (ptver > curver)) {
- snprintf(cmd, FILENAME_MAX, "%s/%s", path, cp);
- execve(cmd, argv, environ);
- }
-
-nowrap:
- unsetenv("PKG_NOWRAP");
-}
diff --git a/share/mk/bsd.libnames.mk b/share/mk/bsd.libnames.mk
index 9a948ff..d3fb51a 100644
--- a/share/mk/bsd.libnames.mk
+++ b/share/mk/bsd.libnames.mk
@@ -129,7 +129,6 @@ MINUSLPAM+= -lypclnt
LIBPANEL?= ${DESTDIR}${LIBDIR}/libpanel.a
LIBPCAP?= ${DESTDIR}${LIBDIR}/libpcap.a
-LIBPKG?= ${DESTDIR}${LIBDIR}/libpkg.a
LIBPMC?= ${DESTDIR}${LIBDIR}/libpmc.a
LIBPROC?= ${DESTDIR}${LIBDIR}/libproc.a
LIBPTHREAD?= ${DESTDIR}${LIBDIR}/libpthread.a
diff --git a/usr.sbin/pkg_install/Makefile b/usr.sbin/pkg_install/Makefile
index 0aa1941..bf1a213 100644
--- a/usr.sbin/pkg_install/Makefile
+++ b/usr.sbin/pkg_install/Makefile
@@ -2,11 +2,11 @@
.include <bsd.own.mk>
-SUBDIR= add create delete info updating version
+SUBDIR= lib add create delete info updating version
.include <bsd.subdir.mk>
-DATE!= grep PKG_INSTALL_VERSION ${.CURDIR}/Makefile.inc | sed 's|.*=||'
+DATE!= grep PKG_INSTALL_VERSION ${.CURDIR}/lib/lib.h | sed 's|.*[ ]||'
distfile: clean
@(cd ${.CURDIR}/..; \
diff --git a/usr.sbin/pkg_install/Makefile.inc b/usr.sbin/pkg_install/Makefile.inc
index d929f24..2fa20aa 100644
--- a/usr.sbin/pkg_install/Makefile.inc
+++ b/usr.sbin/pkg_install/Makefile.inc
@@ -2,11 +2,16 @@
.include <bsd.own.mk>
-CFLAGS+= -DPKG_INSTALL_VERSION=20101012
-CFLAGS+= -DYES_I_KNOW_THE_API_IS_RUBBISH_AND_IS_DOOMED_TO_CHANGE
+LIBINSTALL= ${.OBJDIR}/../lib/libinstall.a
-DPADD+= ${LIBPKG}
-LDADD+= -lpkg
+DPADD+= ${LIBUTIL}
+LDADD+= -lutil
+
+.if ${MK_OPENSSL} != "no" && \
+ defined(LDADD) && ${LDADD:M-lfetch} != ""
+DPADD+= ${LIBSSL} ${LIBCRYPTO}
+LDADD+= -lssl -lcrypto
+.endif
# Inherit BINDIR from one level up.
.include "../Makefile.inc"
diff --git a/usr.sbin/pkg_install/add/Makefile b/usr.sbin/pkg_install/add/Makefile
index 03a43f0..89988e7 100644
--- a/usr.sbin/pkg_install/add/Makefile
+++ b/usr.sbin/pkg_install/add/Makefile
@@ -1,11 +1,14 @@
# $FreeBSD$
-.include <bsd.own.mk>
-
PROG= pkg_add
SRCS= main.c perform.c futil.c extract.c
+CFLAGS+= -I${.CURDIR}/../lib
+
WARNS?= 3
WFORMAT?= 1
+DPADD= ${LIBINSTALL} ${LIBFETCH} ${LIBMD}
+LDADD= ${LIBINSTALL} -lfetch -lmd
+
.include <bsd.prog.mk>
diff --git a/usr.sbin/pkg_install/add/extract.c b/usr.sbin/pkg_install/add/extract.c
index 6c2c4fc..732a13f 100644
--- a/usr.sbin/pkg_install/add/extract.c
+++ b/usr.sbin/pkg_install/add/extract.c
@@ -23,7 +23,7 @@ __FBSDID("$FreeBSD$");
#include <ctype.h>
#include <err.h>
-#include <pkg.h>
+#include "lib.h"
#include "add.h"
diff --git a/usr.sbin/pkg_install/add/futil.c b/usr.sbin/pkg_install/add/futil.c
index c525320..ca095ea 100644
--- a/usr.sbin/pkg_install/add/futil.c
+++ b/usr.sbin/pkg_install/add/futil.c
@@ -22,7 +22,7 @@
__FBSDID("$FreeBSD$");
#include <err.h>
-#include <pkg.h>
+#include "lib.h"
#include "add.h"
/*
diff --git a/usr.sbin/pkg_install/add/main.c b/usr.sbin/pkg_install/add/main.c
index b8b9b54..f73312a 100644
--- a/usr.sbin/pkg_install/add/main.c
+++ b/usr.sbin/pkg_install/add/main.c
@@ -26,7 +26,7 @@ __FBSDID("$FreeBSD$");
#include <err.h>
#include <getopt.h>
-#include <pkg.h>
+#include "lib.h"
#include "add.h"
char *Prefix = NULL;
@@ -132,8 +132,6 @@ main(int argc, char **argv)
static char temppackageroot[MAXPATHLEN];
static char pkgaddpath[MAXPATHLEN];
- pkg_wrap(PKG_INSTALL_VERSION, argv);
-
if (*argv[0] != '/' && strchr(argv[0], '/') != NULL)
PkgAddCmd = realpath(argv[0], pkgaddpath);
else
diff --git a/usr.sbin/pkg_install/add/perform.c b/usr.sbin/pkg_install/add/perform.c
index 653a1d6..b23cd52 100644
--- a/usr.sbin/pkg_install/add/perform.c
+++ b/usr.sbin/pkg_install/add/perform.c
@@ -23,7 +23,7 @@ __FBSDID("$FreeBSD$");
#include <err.h>
#include <paths.h>
-#include <pkg.h>
+#include "lib.h"
#include "add.h"
#include <libgen.h>
diff --git a/usr.sbin/pkg_install/create/Makefile b/usr.sbin/pkg_install/create/Makefile
index 3334037..42718c6 100644
--- a/usr.sbin/pkg_install/create/Makefile
+++ b/usr.sbin/pkg_install/create/Makefile
@@ -3,10 +3,12 @@
PROG= pkg_create
SRCS= main.c perform.c pl.c
+CFLAGS+= -I${.CURDIR}/../lib
+
WARNS?= 3
WFORMAT?= 1
-DPADD= ${LIBMD}
-LDADD= -lmd
+DPADD= ${LIBINSTALL} ${LIBMD}
+LDADD= ${LIBINSTALL} -lmd
.include <bsd.prog.mk>
diff --git a/usr.sbin/pkg_install/create/main.c b/usr.sbin/pkg_install/create/main.c
index 5e999da..e4af621 100644
--- a/usr.sbin/pkg_install/create/main.c
+++ b/usr.sbin/pkg_install/create/main.c
@@ -15,7 +15,7 @@ __FBSDID("$FreeBSD$");
#include <getopt.h>
#include <err.h>
-#include <pkg.h>
+#include "lib.h"
#include "create.h"
match_t MatchType = MATCH_GLOB;
@@ -72,8 +72,6 @@ main(int argc, char **argv)
int ch;
char **pkgs, **start, *tmp;
- pkg_wrap(PKG_INSTALL_VERSION, argv);
-
pkgs = start = argv;
while ((ch = getopt_long(argc, argv, opts, longopts, NULL)) != -1)
switch(ch) {
diff --git a/usr.sbin/pkg_install/create/perform.c b/usr.sbin/pkg_install/create/perform.c
index 149bcbd..45786b6 100644
--- a/usr.sbin/pkg_install/create/perform.c
+++ b/usr.sbin/pkg_install/create/perform.c
@@ -21,7 +21,7 @@
#include <sys/cdefs.h>
__FBSDID("$FreeBSD$");
-#include <pkg.h>
+#include "lib.h"
#include "create.h"
#include <err.h>
diff --git a/usr.sbin/pkg_install/create/pl.c b/usr.sbin/pkg_install/create/pl.c
index fe62d42..18bbaf2 100644
--- a/usr.sbin/pkg_install/create/pl.c
+++ b/usr.sbin/pkg_install/create/pl.c
@@ -21,7 +21,7 @@
#include <sys/cdefs.h>
__FBSDID("$FreeBSD$");
-#include <pkg.h>
+#include "lib.h"
#include "create.h"
#include <errno.h>
#include <err.h>
diff --git a/usr.sbin/pkg_install/delete/Makefile b/usr.sbin/pkg_install/delete/Makefile
index 4f3b390..c9a0fde 100644
--- a/usr.sbin/pkg_install/delete/Makefile
+++ b/usr.sbin/pkg_install/delete/Makefile
@@ -3,6 +3,11 @@
PROG= pkg_delete
SRCS= main.c perform.c
+CFLAGS+= -I${.CURDIR}/../lib
+
WFORMAT?= 1
+DPADD= ${LIBINSTALL} ${LIBMD}
+LDADD= ${LIBINSTALL} -lmd
+
.include <bsd.prog.mk>
diff --git a/usr.sbin/pkg_install/delete/main.c b/usr.sbin/pkg_install/delete/main.c
index 7677fe9..f09a432 100644
--- a/usr.sbin/pkg_install/delete/main.c
+++ b/usr.sbin/pkg_install/delete/main.c
@@ -27,7 +27,7 @@ __FBSDID("$FreeBSD$");
#include <getopt.h>
#include <err.h>
-#include <pkg.h>
+#include "lib.h"
#include "delete.h"
char *Prefix = NULL;
@@ -67,8 +67,6 @@ main(int argc, char **argv)
const char *tmp;
struct stat stat_s;
- pkg_wrap(PKG_INSTALL_VERSION, argv);
-
pkgs = start = argv;
while ((ch = getopt_long(argc, argv, opts, longopts, NULL)) != -1)
switch(ch) {
diff --git a/usr.sbin/pkg_install/delete/perform.c b/usr.sbin/pkg_install/delete/perform.c
index 02f9717..2557dbc 100644
--- a/usr.sbin/pkg_install/delete/perform.c
+++ b/usr.sbin/pkg_install/delete/perform.c
@@ -22,7 +22,7 @@
__FBSDID("$FreeBSD$");
#include <err.h>
-#include <pkg.h>
+#include "lib.h"
#include "delete.h"
static int pkg_do(char *);
diff --git a/usr.sbin/pkg_install/info/Makefile b/usr.sbin/pkg_install/info/Makefile
index ba3909d..485cb22 100644
--- a/usr.sbin/pkg_install/info/Makefile
+++ b/usr.sbin/pkg_install/info/Makefile
@@ -3,9 +3,11 @@
PROG= pkg_info
SRCS= main.c perform.c show.c
+CFLAGS+= -I${.CURDIR}/../lib
+
WFORMAT?= 1
-DPADD= ${LIBMD}
-LDADD= -lmd
+DPADD= ${LIBINSTALL} ${LIBFETCH} ${LIBMD}
+LDADD= ${LIBINSTALL} -lfetch -lmd
.include <bsd.prog.mk>
diff --git a/usr.sbin/pkg_install/info/info.h b/usr.sbin/pkg_install/info/info.h
index 68ec710..46e29b1 100644
--- a/usr.sbin/pkg_install/info/info.h
+++ b/usr.sbin/pkg_install/info/info.h
@@ -33,26 +33,25 @@
#define MAXNAMESIZE 20
#endif
-#define SHOW_COMMENT 0x000001
-#define SHOW_DESC 0x000002
-#define SHOW_PLIST 0x000004
-#define SHOW_INSTALL 0x000008
-#define SHOW_DEINSTALL 0x000010
-#define SHOW_REQUIRE 0x000020
-#define SHOW_PREFIX 0x000040
-#define SHOW_INDEX 0x000080
-#define SHOW_FILES 0x000100
-#define SHOW_DISPLAY 0x000200
-#define SHOW_REQBY 0x000400
-#define SHOW_MTREE 0x000800
-#define SHOW_SIZE 0x001000
-#define SHOW_ORIGIN 0x002000
-#define SHOW_CKSUM 0x004000
-#define SHOW_FMTREV 0x008000
-#define SHOW_PTREV 0x010000
-#define SHOW_DEPEND 0x020000
-#define SHOW_PKGNAME 0x040000
-#define SHOW_LPREV 0x100000
+#define SHOW_COMMENT 0x00001
+#define SHOW_DESC 0x00002
+#define SHOW_PLIST 0x00004
+#define SHOW_INSTALL 0x00008
+#define SHOW_DEINSTALL 0x00010
+#define SHOW_REQUIRE 0x00020
+#define SHOW_PREFIX 0x00040
+#define SHOW_INDEX 0x00080
+#define SHOW_FILES 0x00100
+#define SHOW_DISPLAY 0x00200
+#define SHOW_REQBY 0x00400
+#define SHOW_MTREE 0x00800
+#define SHOW_SIZE 0x01000
+#define SHOW_ORIGIN 0x02000
+#define SHOW_CKSUM 0x04000
+#define SHOW_FMTREV 0x08000
+#define SHOW_PTREV 0x10000
+#define SHOW_DEPEND 0x20000
+#define SHOW_PKGNAME 0x40000
struct which_entry {
TAILQ_ENTRY(which_entry) next;
diff --git a/usr.sbin/pkg_install/info/main.c b/usr.sbin/pkg_install/info/main.c
index ca4e477..2de638e 100644
--- a/usr.sbin/pkg_install/info/main.c
+++ b/usr.sbin/pkg_install/info/main.c
@@ -25,7 +25,7 @@ __FBSDID("$FreeBSD$");
#include <getopt.h>
#include <err.h>
-#include <pkg.h>
+#include "lib.h"
#include "info.h"
int Flags = 0;
@@ -68,8 +68,6 @@ main(int argc, char **argv)
char **pkgs, **start;
char *pkgs_split;
- pkg_wrap(PKG_INSTALL_VERSION, argv);
-
whead = malloc(sizeof(struct which_head));
if (whead == NULL)
err(2, NULL);
@@ -227,10 +225,7 @@ main(int argc, char **argv)
}
case 'P':
- if (Flags & SHOW_PTREV)
- Flags |= SHOW_LPREV;
- else
- Flags = SHOW_PTREV;
+ Flags = SHOW_PTREV;
break;
case 'h':
@@ -247,11 +242,6 @@ main(int argc, char **argv)
if (!Quiet)
printf("Package tools revision: ");
printf("%d\n", PKG_INSTALL_VERSION);
- if (Flags & SHOW_LPREV) {
- if (!Quiet)
- printf("Libpkg revision: ");
- printf("%d\n", libpkg_version());
- }
exit(0);
}
diff --git a/usr.sbin/pkg_install/info/perform.c b/usr.sbin/pkg_install/info/perform.c
index d295612..09cad78 100644
--- a/usr.sbin/pkg_install/info/perform.c
+++ b/usr.sbin/pkg_install/info/perform.c
@@ -21,7 +21,7 @@
#include <sys/cdefs.h>
__FBSDID("$FreeBSD$");
-#include <pkg.h>
+#include "lib.h"
#include "info.h"
#include <err.h>
#include <signal.h>
diff --git a/usr.sbin/pkg_install/info/show.c b/usr.sbin/pkg_install/info/show.c
index 0d3b4ad..c65c312 100644
--- a/usr.sbin/pkg_install/info/show.c
+++ b/usr.sbin/pkg_install/info/show.c
@@ -21,7 +21,7 @@
#include <sys/cdefs.h>
__FBSDID("$FreeBSD$");
-#include <pkg.h>
+#include "lib.h"
#include "info.h"
#include <err.h>
#include <stdlib.h>
diff --git a/usr.sbin/pkg_install/lib/Makefile b/usr.sbin/pkg_install/lib/Makefile
new file mode 100644
index 0000000..84a41b8
--- /dev/null
+++ b/usr.sbin/pkg_install/lib/Makefile
@@ -0,0 +1,11 @@
+# $FreeBSD$
+
+LIB= install
+INTERNALLIB=
+SRCS= file.c msg.c plist.c str.c exec.c global.c pen.c match.c \
+ deps.c version.c pkgwrap.c url.c
+
+WARNS?= 3
+WFORMAT?= 1
+
+.include <bsd.lib.mk>
diff --git a/lib/libpkg/deps.c b/usr.sbin/pkg_install/lib/deps.c
index 101d046..66f44a9 100644
--- a/lib/libpkg/deps.c
+++ b/usr.sbin/pkg_install/lib/deps.c
@@ -22,7 +22,7 @@
#include <sys/cdefs.h>
__FBSDID("$FreeBSD$");
-#include "pkg.h"
+#include "lib.h"
#include <err.h>
#include <stdio.h>
diff --git a/lib/libpkg/exec.c b/usr.sbin/pkg_install/lib/exec.c
index 04891d3..fc8220c 100644
--- a/lib/libpkg/exec.c
+++ b/usr.sbin/pkg_install/lib/exec.c
@@ -21,7 +21,7 @@
#include <sys/cdefs.h>
__FBSDID("$FreeBSD$");
-#include "pkg.h"
+#include "lib.h"
#include <err.h>
/*
diff --git a/lib/libpkg/file.c b/usr.sbin/pkg_install/lib/file.c
index 7c95f99..c7ab9d6 100644
--- a/lib/libpkg/file.c
+++ b/usr.sbin/pkg_install/lib/file.c
@@ -21,7 +21,7 @@
#include <sys/cdefs.h>
__FBSDID("$FreeBSD$");
-#include "pkg.h"
+#include "lib.h"
#include <err.h>
#include <pwd.h>
#include <time.h>
diff --git a/lib/libpkg/global.c b/usr.sbin/pkg_install/lib/global.c
index 8103126..e136ec8 100644
--- a/lib/libpkg/global.c
+++ b/usr.sbin/pkg_install/lib/global.c
@@ -22,7 +22,7 @@
#include <sys/cdefs.h>
__FBSDID("$FreeBSD$");
-#include "pkg.h"
+#include "lib.h"
/* These are global for all utils */
Boolean Quiet = FALSE;
diff --git a/lib/libpkg/pkg.h b/usr.sbin/pkg_install/lib/lib.h
index 12e3562..089bfa3 100644
--- a/lib/libpkg/pkg.h
+++ b/usr.sbin/pkg_install/lib/lib.h
@@ -23,10 +23,6 @@
#ifndef _INST_LIB_LIB_H_
#define _INST_LIB_LIB_H_
-#ifndef YES_I_KNOW_THE_API_IS_RUBBISH_AND_IS_DOOMED_TO_CHANGE
-#error "You obviously have no idea what you're doing."
-#endif
-
/* Includes */
#include <sys/param.h>
#include <sys/file.h>
@@ -100,12 +96,13 @@
#define PKG_PREFIX_VNAME "PKG_PREFIX"
/*
- * Version of the package library - increase whenever you make a change
+ * Version of the package tools - increase whenever you make a change
* in the code that is not cosmetic only.
*/
-#define LIBPKG_VERSION 20100423
+#define PKG_INSTALL_VERSION 20100403
#define PKG_WRAPCONF_FNAME "/var/db/pkg_install.conf"
+#define main(argc, argv) real_main(argc, argv)
/* Version numbers to assist with changes in package file format */
#define PLIST_FMT_VER_MAJOR 1
@@ -217,7 +214,7 @@ Boolean make_preserve_name(char *, int, const char *, const char *);
/* For all */
int pkg_perform(char **);
-void pkg_wrap(long, char **);
+int real_main(int, char **);
/* Query installed packages */
char **matchinstalled(match_t, char **, int *);
@@ -232,7 +229,6 @@ int chkifdepends(const char *, const char *);
int requiredby(const char *, struct reqr_by_head **, Boolean, Boolean);
/* Version */
-int libpkg_version(void);
int verscmp(Package *, int, int);
int version_cmp(const char *, const char *);
diff --git a/lib/libpkg/match.c b/usr.sbin/pkg_install/lib/match.c
index ba65442..6c1b2bf 100644
--- a/lib/libpkg/match.c
+++ b/usr.sbin/pkg_install/lib/match.c
@@ -21,7 +21,7 @@
#include <sys/cdefs.h>
__FBSDID("$FreeBSD$");
-#include "pkg.h"
+#include "lib.h"
#include <err.h>
#include <fnmatch.h>
#include <fts.h>
@@ -292,7 +292,7 @@ matchallbyorigin(const char **origins, int *retval)
break;
}
}
- if (cmd != PLIST_ORIGIN && 0 != strncmp("bsdpan-", installed[i], 7))
+ if (cmd != PLIST_ORIGIN && ( Verbose || 0 != strncmp("bsdpan-", installed[i], 7 ) ) )
warnx("package %s has no origin recorded", installed[i]);
fclose(fp);
}
diff --git a/lib/libpkg/msg.c b/usr.sbin/pkg_install/lib/msg.c
index 0d25ad1..5b17624 100644
--- a/lib/libpkg/msg.c
+++ b/usr.sbin/pkg_install/lib/msg.c
@@ -21,7 +21,7 @@
#include <sys/cdefs.h>
__FBSDID("$FreeBSD$");
-#include "pkg.h"
+#include "lib.h"
#include <err.h>
#include <paths.h>
@@ -61,7 +61,12 @@ y_or_n(Boolean def, const char *msg, ...)
else
fprintf(stderr, " [no]? ");
fflush(stderr);
- ch = toupper(fgetc(tty));
+ if (AutoAnswer) {
+ ch = (AutoAnswer == YES) ? 'Y' : 'N';
+ fprintf(stderr, "%c\n", ch);
+ }
+ else
+ ch = toupper(fgetc(tty));
if (ch == '\n')
ch = (def) ? 'Y' : 'N';
}
diff --git a/lib/libpkg/pen.c b/usr.sbin/pkg_install/lib/pen.c
index 6e30445..2b405a3 100644
--- a/lib/libpkg/pen.c
+++ b/usr.sbin/pkg_install/lib/pen.c
@@ -21,7 +21,7 @@
#include <sys/cdefs.h>
__FBSDID("$FreeBSD$");
-#include "pkg.h"
+#include "lib.h"
#include <err.h>
#include <libutil.h>
#include <libgen.h>
@@ -103,7 +103,7 @@ popPen(char *pen)
const char *
make_playpen(char *pen, off_t sz)
{
- char humbuf[6];
+ char humbuf1[6], humbuf2[6];
char cwd[FILENAME_MAX];
if (!find_play_pen(pen, sz))
@@ -114,15 +114,22 @@ make_playpen(char *pen, off_t sz)
errx(2, "%s: can't mktemp '%s'", __func__, pen);
}
- humanize_number(humbuf, sizeof humbuf, sz, "", HN_AUTOSCALE, HN_NOSPACE);
+ if (Verbose) {
+ if (sz) {
+ humanize_number(humbuf1, sizeof humbuf1, sz, "", HN_AUTOSCALE,
+ HN_NOSPACE);
+ humanize_number(humbuf2, sizeof humbuf2, min_free(pen),
+ "", HN_AUTOSCALE, HN_NOSPACE);
+ fprintf(stderr, "Requested space: %s bytes, free space: %s bytes in %s\n", humbuf1, humbuf2, pen);
+ }
+ }
if (min_free(pen) < sz) {
rmdir(pen);
cleanup(0);
errx(2, "%s: not enough free space to create '%s'.\n"
"Please set your PKG_TMPDIR environment variable to a location\n"
- "with at least %s and try the command again",
- __func__, humbuf, pen);
+ "with more space and\ntry the command again", __func__, pen);
}
if (!getcwd(cwd, FILENAME_MAX)) {
diff --git a/usr.sbin/pkg_install/lib/pkgwrap.c b/usr.sbin/pkg_install/lib/pkgwrap.c
new file mode 100644
index 0000000..cbd15cd
--- /dev/null
+++ b/usr.sbin/pkg_install/lib/pkgwrap.c
@@ -0,0 +1,89 @@
+/*
+ * FreeBSD install - a package for the installation and maintenance
+ * of non-core utilities.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * Maxim Sobolev
+ * 8 September 2002
+ *
+ */
+
+#include <sys/cdefs.h>
+__FBSDID("$FreeBSD$");
+
+#include "lib.h"
+#include <ctype.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <unistd.h>
+
+#undef main
+
+#define SEPARATORS " \t"
+
+extern char **environ;
+
+int
+main(int argc, char **argv)
+{
+ FILE *f;
+ char buffer[FILENAME_MAX], *cp, *verstr;
+ int len;
+
+ if (getenv("PKG_NOWRAP") != NULL)
+ goto nowrap;
+ f = fopen(PKG_WRAPCONF_FNAME, "r");
+ if (f == NULL)
+ goto nowrap;
+ cp = fgets(buffer, 256, f);
+ fclose(f);
+ if (cp == NULL)
+ goto nowrap;
+ len = strlen(cp);
+ if (cp[len - 1] == '\n')
+ cp[len - 1] = '\0';
+ while (strchr(SEPARATORS, *cp) != NULL)
+ cp++;
+ verstr = cp;
+ cp = strpbrk(cp, SEPARATORS);
+ if (cp == NULL)
+ goto nowrap;
+ *cp = '\0';
+ for (cp = verstr; *cp != '\0'; cp++)
+ if (isdigit(*cp) == 0)
+ goto nowrap;
+ if (atoi(verstr) < PKG_INSTALL_VERSION)
+ goto nowrap;
+ cp++;
+ while (*cp != '\0' && strchr(SEPARATORS, *cp) != NULL)
+ cp++;
+ if (*cp == '\0')
+ goto nowrap;
+ bcopy(cp, buffer, strlen(cp) + 1);
+ cp = strpbrk(buffer, SEPARATORS);
+ if (cp != NULL)
+ *cp = '\0';
+ if (!isdir(buffer))
+ goto nowrap;
+ cp = strrchr(argv[0], '/');
+ if (cp == NULL)
+ cp = argv[0];
+ else
+ cp++;
+ strlcat(buffer, "/", sizeof(buffer));
+ strlcat(buffer, cp, sizeof(buffer));
+ setenv("PKG_NOWRAP", "1", 1);
+ execve(buffer, argv, environ);
+
+nowrap:
+ unsetenv("PKG_NOWRAP");
+ return(real_main(argc, argv));
+}
diff --git a/lib/libpkg/plist.c b/usr.sbin/pkg_install/lib/plist.c
index b14ac20..545b541 100644
--- a/lib/libpkg/plist.c
+++ b/usr.sbin/pkg_install/lib/plist.c
@@ -21,7 +21,7 @@
#include <sys/cdefs.h>
__FBSDID("$FreeBSD$");
-#include "pkg.h"
+#include "lib.h"
#include <err.h>
#include <md5.h>
diff --git a/lib/libpkg/str.c b/usr.sbin/pkg_install/lib/str.c
index c26e6cc..0d9e288 100644
--- a/lib/libpkg/str.c
+++ b/usr.sbin/pkg_install/lib/str.c
@@ -21,7 +21,7 @@
#include <sys/cdefs.h>
__FBSDID("$FreeBSD$");
-#include "pkg.h"
+#include "lib.h"
char *
strconcat(const char *s1, const char *s2)
diff --git a/lib/libpkg/url.c b/usr.sbin/pkg_install/lib/url.c
index 4c10849..8c55347 100644
--- a/lib/libpkg/url.c
+++ b/usr.sbin/pkg_install/lib/url.c
@@ -21,7 +21,7 @@
#include <sys/cdefs.h>
__FBSDID("$FreeBSD$");
-#include "pkg.h"
+#include "lib.h"
#include <err.h>
#include <fetch.h>
#include <libgen.h>
@@ -109,7 +109,7 @@ fileGetURL(const char *base, const char *spec, int keep_package)
printf("Error: Unable to get %s: %s\n",
fname, fetchLastErrString);
/* If the fetch fails, yank the package. */
- if (keep_package && unlink(pkg) < 0) {
+ if (keep_package && unlink(pkg) < 0 && Verbose) {
warnx("failed to remove partially fetched package: %s", pkg);
}
return NULL;
diff --git a/lib/libpkg/version.c b/usr.sbin/pkg_install/lib/version.c
index 123fd5d2..d9c4fe7 100644
--- a/lib/libpkg/version.c
+++ b/usr.sbin/pkg_install/lib/version.c
@@ -19,20 +19,10 @@
#include <sys/cdefs.h>
__FBSDID("$FreeBSD$");
-#include "pkg.h"
+#include "lib.h"
#include <err.h>
/*
- * This routine could easily go somewhere else.
- *
- */
-int
-libpkg_version(void)
-{
- return LIBPKG_VERSION;
-}
-
-/*
* Routines to assist with PLIST_FMT_VER numbers in the packing
* lists.
*
@@ -76,7 +66,7 @@ split_version(const char *pkgname, const char **endname, unsigned long *epoch, u
if (pkgname == NULL)
errx(2, "%s: Passed NULL pkgname.", __func__);
- /* Look for the last '-' the pkgname */
+ /* Look for the last '-' the the pkgname */
ch = strrchr(pkgname, '-');
/* Cheat if we are just passed a version, not a valid package name */
versionstr = ch ? ch + 1 : pkgname;
diff --git a/usr.sbin/pkg_install/updating/Makefile b/usr.sbin/pkg_install/updating/Makefile
index f5b7525..b0d3689 100644
--- a/usr.sbin/pkg_install/updating/Makefile
+++ b/usr.sbin/pkg_install/updating/Makefile
@@ -3,6 +3,11 @@
PROG= pkg_updating
SRCS= main.c
+CFLAGS+= -I${.CURDIR}/../lib
+
WFORMAT?= 1
+DPADD= ${LIBINSTALL} ${LIBFETCH} ${LIBMD}
+LDADD= ${LIBINSTALL} -lfetch -lmd
+
.include <bsd.prog.mk>
diff --git a/usr.sbin/pkg_install/updating/main.c b/usr.sbin/pkg_install/updating/main.c
index 993ccd5..0ab2ec0 100644
--- a/usr.sbin/pkg_install/updating/main.c
+++ b/usr.sbin/pkg_install/updating/main.c
@@ -19,7 +19,7 @@ __FBSDID("$FreeBSD$");
#include <sysexits.h>
#include <getopt.h>
-#include <pkg.h>
+#include "lib.h"
#include "pathnames.h"
typedef struct installedport {
@@ -87,8 +87,6 @@ main(int argc, char *argv[])
DIR *dir;
FILE *fd;
- pkg_wrap(PKG_INSTALL_VERSION, argv);
-
while ((ch = getopt_long(argc, argv, opts, longopts, NULL)) != -1) {
switch (ch) {
case 'd':
diff --git a/usr.sbin/pkg_install/version/Makefile b/usr.sbin/pkg_install/version/Makefile
index fb079e3..3e1d7a5 100644
--- a/usr.sbin/pkg_install/version/Makefile
+++ b/usr.sbin/pkg_install/version/Makefile
@@ -3,8 +3,13 @@
PROG= pkg_version
SRCS= main.c perform.c
+CFLAGS+= -I${.CURDIR}/../lib
+
WFORMAT?= 1
+DPADD= ${LIBINSTALL} ${LIBFETCH} ${LIBMD}
+LDADD= ${LIBINSTALL} -lfetch -lmd
+
test:
sh ${.CURDIR}/test-pkg_version.sh
diff --git a/usr.sbin/pkg_install/version/main.c b/usr.sbin/pkg_install/version/main.c
index 4238497..cad8583 100644
--- a/usr.sbin/pkg_install/version/main.c
+++ b/usr.sbin/pkg_install/version/main.c
@@ -25,7 +25,7 @@ __FBSDID("$FreeBSD$");
#include <getopt.h>
#include <err.h>
-#include <pkg.h>
+#include "lib.h"
#include "version.h"
char *LimitChars = NULL;
@@ -58,8 +58,6 @@ main(int argc, char **argv)
{
int ch, cmp = 0;
- pkg_wrap(PKG_INSTALL_VERSION, argv);
-
if (argc == 4 && !strcmp(argv[1], "-t")) {
cmp = version_cmp(argv[2], argv[3]);
printf(cmp > 0 ? ">\n" : (cmp < 0 ? "<\n" : "=\n"));
diff --git a/usr.sbin/pkg_install/version/perform.c b/usr.sbin/pkg_install/version/perform.c
index 79575a3..dc85696 100644
--- a/usr.sbin/pkg_install/version/perform.c
+++ b/usr.sbin/pkg_install/version/perform.c
@@ -21,7 +21,7 @@
#include <sys/cdefs.h>
__FBSDID("$FreeBSD$");
-#include <pkg.h>
+#include "lib.h"
#include "version.h"
#include <err.h>
#include <fetch.h>
OpenPOWER on IntegriCloud