Radish alpha
H
rad:z3QDZAW2FAfuLvihrhiyDC9fAD8G9
HardenedBSD Package Manager
Radicle
Git
Disabled use of jails if /usr/include/jail.h isn't present
John Marino committed 13 years ago
commit e848b9719be2ad208f31d56fafc9efc25523139e
parent f093b5f
2 files changed +26 -3
modified pkg/Makefile
@@ -49,10 +49,15 @@ CFLAGS+= -I${.CURDIR}/../libpkg
LDADD+=		-L${.OBJDIR}/../libpkg \
		-lpkg \
		-lutil \
-
		-ljail \
		-lpthread \
		${LDADD_STATIC}

+
.if !exists(/usr/include/jail.h)
+
CFLAGS+=	-DNO_LIBJAIL
+
.else
+
LDADD+=		-ljail
+
.endif
+

WARNS?=		6
MAN=	pkg.8 \
	pkg-add.8 \
modified pkg/main.c
@@ -40,7 +40,9 @@
#include <string.h>
#include <sysexits.h>
#include <unistd.h>
+
#ifndef NO_LIBJAIL
#include <jail.h>
+
#endif

#include <pkg.h>

@@ -122,11 +124,17 @@ usage(void)
{
	struct plugcmd *c;
	bool plugins_enabled = false;
-
	
-
	fprintf(stderr, "usage: pkg [-v] [-d] [-j <jail name or id>|-c <chroot path>] [-l] <command> [<args>]\n\n");
+

+
#ifndef NO_LIBJAIL
+
 	fprintf(stderr, "usage: pkg [-v] [-d] [-j <jail name or id>|-c <chroot path>] <command> [<args>]\n\n");
+
#else
+
	fprintf(stderr, "usage: pkg [-v] [-d] [-c <chroot path>] <command> [<args>]\n\n");
+
#endif
	fprintf(stderr, "Global options supported:\n");
	fprintf(stderr, "\t%-15s%s\n", "-d", "Increment debug level");
+
#ifndef NO_LIBJAIL
	fprintf(stderr, "\t%-15s%s\n", "-j", "Execute pkg(1) inside a jail(8)");
+
#endif
	fprintf(stderr, "\t%-15s%s\n", "-c", "Execute pkg(1) inside a chroot(8)");
	fprintf(stderr, "\t%-15s%s\n\n", "-v", "Display pkg(1) version");
	fprintf(stderr, "Commands supported:\n");
@@ -208,7 +216,9 @@ main(int argc, char **argv)
	struct commands *command = NULL;
	unsigned int ambiguous = 0;
	const char *chroot_path = NULL;
+
#ifndef NO_LIBJAIL
	int jid;
+
#endif
	const char *jail_str = NULL;
	size_t len;
	signed char ch;
@@ -232,7 +242,11 @@ main(int argc, char **argv)
	if (argc < 2)
		usage();

+
#ifndef NO_LIBJAIL
	while ((ch = getopt(argc, argv, "dj:c:lvq")) != -1) {
+
#else
+
	while ((ch = getopt(argc, argv, "d:c:lvq")) != -1) {
+
#endif
		switch (ch) {
		case 'd':
			debug++;
@@ -240,9 +254,11 @@ main(int argc, char **argv)
		case 'c':
			chroot_path = optarg;
			break;
+
#ifndef NO_LIBJAIL
		case 'j':
			jail_str = optarg;
			break;
+
#endif
		case 'l':
			show_commands = true;
			break;
@@ -283,6 +299,7 @@ main(int argc, char **argv)
		if (chroot(chroot_path) == -1)
			errx(EX_SOFTWARE, "chroot failed!");

+
#ifndef NO_LIBJAIL
	if (jail_str != NULL) {
		jid = jail_getid(jail_str);
		if (jid < 0)
@@ -295,6 +312,7 @@ main(int argc, char **argv)
	if (jail_str != NULL || chroot_path != NULL)
		if (chdir("/") == -1)
			errx(EX_SOFTWARE, "chdir() failed");
+
#endif

	if (pkg_init(NULL) != EPKG_OK)
		errx(EX_SOFTWARE, "Cannot parse configuration file!");