Radish alpha
H
rad:z3QDZAW2FAfuLvihrhiyDC9fAD8G9
HardenedBSD Package Manager
Radicle
Git
Initial ugly pkg_add implementation + workaround on a pkg_install bug on plist
Baptiste Daroussin committed 15 years ago
commit a99589045c2e1b1aca8b62dea1747c1d192d6935
parent 8e34338
6 files changed +11 -5
modified libpkg/Makefile
@@ -6,11 +6,11 @@ WARNS= 6
SHLIBDIR?=	/usr/lib
SHLIB_MAJOR=	0

-
SRCS=	pkgdb.c pkgdb_cache.c pkg_compat.c util.c
+
SRCS=	pkg.c pkgdb.c pkgdb_cache.c pkg_compat.c util.c

CFLAGS+=  -std=c99
CFLAGS+=  -I${.CURDIR} -I${.CURDIR}/../external/tinycdb -I${.CURDIR}/../external/cjson/
-
LDADD+=   -L${.CURDIR}/../external/tinycdb -L${.CURDIR}/../external/cjson -lcdb -lcjson -lm
+
LDADD+=   -L/usr/local/lib -L${.CURDIR}/../external/tinycdb -L${.CURDIR}/../external/cjson -lcdb -lcjson -lm -larchive -lz -lbz2 -llzma

DEBUG_FLAGS+=  -g
.if defined(PROFILE_BUILD)
modified libpkg/pkg.h
@@ -2,6 +2,7 @@
#define _PKG_H

#include <cdb.h>
+
#include <stdio.h> /* for size_t */
#include <sys/queue.h>

struct pkg {
@@ -20,4 +21,6 @@ struct pkgdb {
	struct cdb db;
};

+
typedef enum pkg_formats { TAR, TGZ, TBZ, TXZ } pkg_formats;
+
int pkg_create(char *, pkg_formats, char *, char *);
#endif
modified libpkg/pkg_compat.c
@@ -142,6 +142,8 @@ pkg_compat_read_plist(cJSON *pkg, char *plist_str)
				break;

			case PLIST_CWD:
+
				if (cp == NULL) /* workaround a bug having @cwd with no arguments */
+
					break;
				prefix = cp;
				break;

modified libpkg/pkgdb.c
@@ -5,8 +5,6 @@
#include "pkgdb.h"
#include "pkgdb_cache.h"

-

-

void
pkgdb_init(struct pkgdb *db, const char *pattern) {
	/* first check if the cache has to be rebuild */
modified pkg/Makefile
@@ -1,6 +1,7 @@
PROG=	pkg
SRCS=	main.c \
-
		info.c
+
		info.c \
+
		create.c

CFLAGS+=	-I${.CURDIR}/../libpkg -I${.CURDIR}/../external/tinycdb/
LDADD+=	-L${.CURDIR}/../external -L../libpkg -lpkg
modified pkg/main.c
@@ -4,6 +4,7 @@
#include <sysexits.h>
#include <err.h>

+
#include "create.h"
#include "info.h"

static void usage(void);
@@ -13,6 +14,7 @@ static struct commands {
	int (*exec_cmd)(int argc, char **argv);
} cmd[] = { 
	{ "add", NULL },
+
	{ "create", cmd_create},
	{ "delete", NULL},
	{ "info", cmd_info},
	{ "install", NULL},