Radish alpha
H
rad:z3QDZAW2FAfuLvihrhiyDC9fAD8G9
HardenedBSD Package Manager
Radicle
Git
/!\ pkg register UI change /!\
Baptiste Daroussin committed 14 years ago
commit d19c8738291f6c99ecf431629bade42c1bdbd723
parent 153b3c8
6 files changed +180 -183
modified libpkg/pkg.c
@@ -526,23 +526,32 @@ pkg_addscript(struct pkg *pkg, const char *path)
	filename[0] = '\0';
	filename++;

-
	if (strcmp(filename, "pkg-pre-install") == 0) {
+
	if (strcmp(filename, "pkg-pre-install") == 0 || 
+
			strcmp(filename, "+PRE_INSTALL") == 0) {
		script->type = PKG_SCRIPT_PRE_INSTALL;
-
	} else if (strcmp(filename, "pkg-post-install") == 0) {
+
	} else if (strcmp(filename, "pkg-post-install") == 0 ||
+
			strcmp(filename, "+POST_INSTALL") == 0) {
		script->type = PKG_SCRIPT_POST_INSTALL;
-
	} else if (strcmp(filename, "pkg-install") == 0) {
+
	} else if (strcmp(filename, "pkg-install") == 0 ||
+
			strcmp(filename, "+INSTALL") == 0) {
		script->type = PKG_SCRIPT_INSTALL;
-
	} else if (strcmp(filename, "pkg-pre-deinstall") == 0) {
+
	} else if (strcmp(filename, "pkg-pre-deinstall") == 0 ||
+
			strcmp(filename, "+PRE_DEINSTALL") == 0) {
		script->type = PKG_SCRIPT_PRE_DEINSTALL;
-
	} else if (strcmp(filename, "pkg-post-deinstall") == 0) {
+
	} else if (strcmp(filename, "pkg-post-deinstall") == 0 ||
+
			strcmp(filename, "+POST_DEINSTALL") == 0) {
		script->type = PKG_SCRIPT_POST_DEINSTALL;
-
	} else if (strcmp(filename, "pkg-deinstall") == 0) {
+
	} else if (strcmp(filename, "pkg-deinstall") == 0 ||
+
			strcmp(filename, "+DEINSTALL") == 0) {
		script->type = PKG_SCRIPT_DEINSTALL;
-
	} else if (strcmp(filename, "pkg-pre-upgrade") == 0) {
+
	} else if (strcmp(filename, "pkg-pre-upgrade") == 0 ||
+
			strcmp(filename, "+PRE_UPGRADE") == 0) {
		script->type = PKG_SCRIPT_PRE_UPGRADE;
-
	} else if (strcmp(filename, "pkg-post-upgrade") == 0) {
+
	} else if (strcmp(filename, "pkg-post-upgrade") == 0 ||
+
			strcmp(filename, "+POST_UPGRADE") == 0) {
		script->type = PKG_SCRIPT_POST_UPGRADE;
-
	} else if (strcmp(filename, "pkg-upgrade") == 0) {
+
	} else if (strcmp(filename, "pkg-upgrade") == 0 ||
+
			strcmp(filename, "+UPGRADE") == 0) {
		script->type = PKG_SCRIPT_UPGRADE;
	} else {
		return (pkg_error_set(EPKG_FATAL, "unknown script"));
modified libpkg/pkg.h
@@ -319,6 +319,7 @@ int pkg_addoption(struct pkg *pkg, const char *name, const char *value);
 * @return An error code.
 */
int pkg_parse_manifest(struct pkg *pkg, char *buf);
+
int pkg_load_manifest_file(struct pkg *pkg, const char *fpath);

/**
 * Emit a manifest according to the attributes of pkg.
modified libpkg/pkg_manifest.c
@@ -231,6 +231,23 @@ m_parse_file(struct pkg *pkg, char *buf)
}

int
+
pkg_load_manifest_file(struct pkg *pkg, const char *fpath)
+
{
+
	char *manifest = NULL;
+
	off_t sz;
+
	int ret = EPKG_OK;
+

+
	if ((ret = file_to_buffer(fpath, &manifest, &sz)) != EPKG_OK)
+
		return (ret);
+

+
	ret = pkg_parse_manifest(pkg, manifest);
+
	if (ret != EPKG_OK && manifest != NULL)
+
			free(manifest);
+

+
	return (ret);
+
}
+

+
int
pkg_parse_manifest(struct pkg *pkg, char *buf)
{
	int nbel;
modified pkg/register.c
@@ -15,28 +15,10 @@

#include "register.h"

-
static struct {
-
	const pkg_attr attr;
-
	const char * const flag;
-
} required_flags[] = {
-
	{ PKG_ORIGIN, "-o"},
-
	{ PKG_NAME, "-n"},
-
	{ PKG_VERSION, "-n"},
-
	{ PKG_COMMENT, "-c"},
-
	{ PKG_DESC, "-d"},
-
	{ PKG_PREFIX, "-p"},
-
	{ PKG_MAINTAINER, "-r"},
-
	{ 0, NULL}
-
};
-

void
usage_register(void)
{
-
	fprintf(stderr, "usage: pkg register -c comment -d desc -f plist_file -p prefix\n");
-
	fprintf(stderr, "                    -m mtree_file -n pkgname -o origin -r maintainer\n");
-
	fprintf(stderr, "                    [-P depends] [-C conflicts] [-M message_file] [-s scripts]\n");
-
	fprintf(stderr, "                    [-a arch] [-w www] [-O options] [-H] [-i input_dir]\n");
-
	fprintf(stderr, "                    [-l]\n\n");
+
	fprintf(stderr, "usage: pkg register [-l] -m <metadatadir> -f <plist_file>\n\n");
	fprintf(stderr, "For more information see 'pkg help register'.\n");
}

@@ -54,8 +36,10 @@ exec_register(int argc, char **argv)
	char *plist = NULL;
	char *v = NULL;
	char *arch = NULL;
+
	char *mdir = NULL;
	char *www = NULL;
	char *input_path = NULL;
+
	char fpath[MAXPATHLEN];

	const char *desc = NULL;
	size_t size;
@@ -72,70 +56,18 @@ exec_register(int argc, char **argv)
	}

	pkg_new(&pkg);
-
	while ((ch = getopt(argc, argv, "vHc:d:f:p:P:m:o:C:n:M:s:a:r:w:O:i:l")) != -1) {
+
	while ((ch = getopt(argc, argv, "a:f:m:i:l")) != -1) {
		switch (ch) {
-
			case 'v':
-
				/* IGNORE */
-
				break;
-
			case 'c':
-
				ret += pkg_set(pkg, PKG_COMMENT, optarg[0] == '-' ? optarg + 1 : optarg);
-
				break;
-
			case 'd':
-
				ret += pkg_set_from_file(pkg, PKG_DESC, optarg);
-
				break;
			case 'f':
-
				if ((plist = strdup(optarg)) == NULL) 
+
				if ((plist = strdup(optarg)) == NULL)
					errx(1, "cannot allocate memory");

				break;
-
			case 'p':
-
				pkg_set(pkg, PKG_PREFIX, optarg);
-
				break;
-
			case 'P':
-
				ret += ports_parse_depends(pkg, optarg);
-
				break;
			case 'm':
-
				ret += pkg_set_from_file(pkg, PKG_MTREE, optarg);
-
				break;
-
			case 'n':
-
				if ((v = strrchr(optarg, '-')) == NULL)
-
					errx(EX_DATAERR, "bad pkgname format");
-

-
				v[0] = '\0';
-
				v++;
-
				ret += pkg_set(pkg, PKG_NAME, optarg);
-
				ret += pkg_set(pkg, PKG_VERSION, v);
-
				break;
-
			case 'o':
-
				ret += pkg_set(pkg, PKG_ORIGIN, optarg);
-
				break;
-
			case 'C':
-
				ret += ports_parse_conflicts(pkg, optarg);
-
				break;
-
			case 'M':
-
				ret += pkg_set_from_file(pkg, PKG_MESSAGE, optarg);
-
				break;
-
			case 's':
-
				ret += ports_parse_scripts(pkg, optarg);
+
				mdir = strdup(optarg);
				break;
			case 'a':
-
				if ((arch = strdup(optarg)) == NULL)
-
					errx(1, "cannot allocate memory");
-

-
				break;
-
			case 'r': /* responsible */
-
				ret += pkg_set(pkg, PKG_MAINTAINER, optarg);
-
				break;
-
			case 'w':
-
				if ((www = strdup(optarg)) == NULL)
-
					errx(1, "cannot allocate memory");
-

-
				break;
-
			case 'O':
-
				ret += ports_parse_options(pkg, optarg);
-
				break;
-
			case 'H':
-
				heuristic = true;
+
				arch = strdup(optarg);
				break;
			case 'i':
				if ((input_path = strdup(optarg)) == NULL)
@@ -159,10 +91,6 @@ exec_register(int argc, char **argv)
	if (plist == NULL)
		errx(EX_USAGE, "missing -f flag");

-
	for (unsigned int i = 0; required_flags[i].flag != NULL; i++)
-
		if (pkg_get(pkg, required_flags[i].attr) == NULL)
-
			errx(EX_USAGE, "missing %s flag", required_flags[i].flag);
-

	uname(&u);
	if (arch == NULL) {
		pkg_set(pkg, PKG_ARCH, u.machine);
@@ -171,6 +99,75 @@ exec_register(int argc, char **argv)
		free(arch);
	}

+
	if (mdir == NULL)
+
		errx(EX_USAGE, "missing -m flag");
+

+
	snprintf(fpath, MAXPATHLEN, "%s/+MANIFEST", mdir);
+
	if ((ret = pkg_load_manifest_file(pkg, fpath)) != EPKG_OK) {
+
		pkg_error_warn("can not parse manifest %s", fpath);
+
		return (EX_SOFTWARE);
+
	}
+

+
	snprintf(fpath, MAXPATHLEN, "%s/+DESC", mdir);
+
	pkg_set_from_file(pkg, PKG_DESC, fpath);
+

+
	snprintf(fpath, MAXPATHLEN, "%s/+DISPLAY", mdir);
+
	pkg_set_from_file(pkg, PKG_MESSAGE, fpath);
+

+
	snprintf(fpath, MAXPATHLEN, "%s/+MTREE_DIR", mdir);
+
	pkg_set_from_file(pkg, PKG_MTREE, mdir);
+

+
	snprintf(fpath, MAXPATHLEN, "%s/+INSTALL", mdir);
+
	pkg_addscript(pkg, fpath);
+

+
	snprintf(fpath, MAXPATHLEN, "%s/+PRE_INSTALL", mdir);
+
	pkg_addscript(pkg, fpath);
+

+
	snprintf(fpath, MAXPATHLEN, "%s/+POST_INSTALL", mdir);
+
	pkg_addscript(pkg, fpath);
+

+
	snprintf(fpath, MAXPATHLEN, "%s/+DEINSTALL", mdir);
+
	pkg_addscript(pkg, fpath);
+

+
	snprintf(fpath, MAXPATHLEN, "%s/+PRE_DEINSTALL", mdir);
+
	pkg_addscript(pkg, fpath);
+

+
	snprintf(fpath, MAXPATHLEN, "%s/+POST_DEINSTALL", mdir);
+
	pkg_addscript(pkg, fpath);
+

+
	snprintf(fpath, MAXPATHLEN, "%s/+UPGRADE", mdir);
+
	pkg_addscript(pkg, fpath);
+

+
	snprintf(fpath, MAXPATHLEN, "%s/+PRE_UPGRADE", mdir);
+
	pkg_addscript(pkg, fpath);
+

+
	snprintf(fpath, MAXPATHLEN, "%s/+POST_UPGRADE", mdir);
+
	pkg_addscript(pkg, fpath);
+

+
	snprintf(fpath, MAXPATHLEN, "%s/pkg-install", mdir);
+
	pkg_addscript(pkg, fpath);
+

+
	snprintf(fpath, MAXPATHLEN, "%s/pkg-pre-install", mdir);
+
	pkg_addscript(pkg, fpath);
+

+
	snprintf(fpath, MAXPATHLEN, "%s/pkg-post-install", mdir);
+
	pkg_addscript(pkg, fpath);
+

+
	snprintf(fpath, MAXPATHLEN, "%s/pkg-pre-deinstall", mdir);
+
	pkg_addscript(pkg, fpath);
+

+
	snprintf(fpath, MAXPATHLEN, "%s/pkg-post-deinstall", mdir);
+
	pkg_addscript(pkg, fpath);
+

+
	snprintf(fpath, MAXPATHLEN, "%s/pkg-upgrade", mdir);
+
	pkg_addscript(pkg, fpath);
+

+
	snprintf(fpath, MAXPATHLEN, "%s/pkg-pre-deupgrade", mdir);
+
	pkg_addscript(pkg, fpath);
+

+
	snprintf(fpath, MAXPATHLEN, "%s/pkg-post-deupgrade", mdir);
+
	pkg_addscript(pkg, fpath);
+

	/* if www is not given then try to determine it from description */
	if (www == NULL) {
		desc = pkg_get(pkg, PKG_DESC);
modified ports/bsd.pkgng.mk
@@ -3,6 +3,9 @@ PKG_DELETE= /usr/sbin/pkg delete
PKG_INFO=		/usr/sbin/pkg info
PKG_VERSION=		/usr/sbin/pkg version

+
METADIR=		${WRKDIR}/.metadir
+
MANIFESTF=		${METADIR}/+MANIFEST
+

PKGPREINSTALL?=		${PKGDIR}/pkg-pre-install
PKGPOSTINSTALL?=	${PKGDIR}/pkg-post-install
PKGPREDEINSTALL?=	${PKGDIR}/pkg-pre-deinstall
@@ -15,73 +18,73 @@ ACTUAL-PACKAGE-DEPENDS?= \
	if [ "${_LIB_RUN_DEPENDS}" != "  " ]; then \
		for dir in ${_LIB_RUN_DEPENDS:C,[^:]*:([^:]*):?.*,\1,}; do \
			pkgname=$$(${PKG_INFO} -q $${dir\#\#${PORTSDIR}/}); \
-
			${ECHO_CMD} $$pkgname:$${dir\#\#${PORTSDIR}/}; \
+
			${ECHO_CMD} @dep $${pkgname%-*} $${dir\#\#${PORTSDIR}/} $${pkgname\#\#*-}; \
			for pkg in $$(${PKG_INFO} -qd $${dir\#\#${PORTSDIR}/}); do\
				origin=$$(${PKG_INFO} -qo $${pkg%-*}); \
-
				${ECHO_CMD} $$pkg:$$origin; \
+
				${ECHO_CMD} $${pkg%-*} $$origin $${pkg\#\#*}; \
			done; \
		done; \
	fi

-
.if !defined(PKG_ARGS)
-
PKG_ARGS=		-l -v -c -${COMMENT:Q} -d ${DESCR} -f ${TMPPLIST} -p ${PREFIX} -P "`cd ${.CURDIR} && ${MAKE} actual-package-depends | ${GREP} -v -E ${PKG_IGNORE_DEPENDS} | ${SORT} -u -t : -k 2`" ${EXTRA_PKG_ARGS} $${_LATE_PKG_ARGS}
-
.if !defined(NO_MTREE)
-
PKG_ARGS+=		-m ${MTREE_FILE}
-
.endif
-
.if defined(CONFLICTS) && !defined(DISABLE_CONFLICTS)
-
PKG_ARGS+=		-C "${CONFLICTS}"
-
.endif
-
.if defined(CONFLICTS_INSTALL) && !defined(DISABLE_CONFLICTS)
-
PKG_ARGS+=		-C "${CONFLICTS_INSTALL}"
-
.endif
-
PKG_ARGS+= -n ${PKGNAME}
-
PKG_ARGS+= -o ${PKGORIGIN}
-
.if defined(MAINTAINER)
-
PKG_ARGS+= -r ${MAINTAINER}
-
.endif
+
.if !target(fake-pkg)
+
fake-pkg:
+
.if !defined(NO_PKG_REGISTER)
+
	@${ECHO_MSG} "===>   Registering installation for ${PKGNAME}"
+
	@${MKDIR} ${METADIR}
+
	@${ECHO_CMD} "@pkg_format_version 0.9" >> ${MANIFESTF}
+
	@${ECHO_CMD} "@name ${PKGNAMEPREFIX}${PORTNAME}${PKGNAMESUFFIX}" >> ${MANIFESTF}
+
	@${ECHO_CMD} "@version ${PKGVERSION}" >> ${MANIFESTF}
+
	@${ECHO_CMD} "@origin ${PKGORIGIN}" >> ${MANIFESTF}
+
	@${ECHO_CMD} "@comment ${COMMENT}" >> ${MANIFESTF}
+
	@${ECHO_CMD} "@maintainer ${MAINTAINER}" >> ${MANIFESTF}
+
	@${ECHO_CMD} "@prefix ${PREFIX}" >> ${MANIFESTF}
.if defined(WWW)
-
PKG_ARGS+= -w ${WWW}
+
	@${ECHO_CMD} "@www ${WWW}" >> ${MANIFESTF}
.endif
-
.if exists(${PKGMESSAGE})
-
PKG_ARGS+= -M ${PKGMESSAGE}
+
	@${MAKE} -C ${.CURDIR} actual-package-depends | ${GREP} -v -E ${PKG_IGNORE_DEPENDS} | ${SORT} -u -t : -k 2 >> ${MANIFESTF}
+
.if !defined(DISABLE_CONFLICTS)
+
.for conflicts in ${CONFLICTS}
+
	@${ECHO_CMD} "@conflict ${conflicts}" >> ${MANIFESTF}
+
.endfor
+
.for conflicts in ${CONFLICTS_INSTALL}
+
	@${ECHO_CMD} "@conflict ${conflicts}" >> ${MANIFESTF}
+
.endfor
.endif
.if exists(${PKGINSTALL})
-
PKGSCRIPTS+=	${PKGINSTALL}
+
	@${CP} ${PKGINSTALL} ${METADIR}/+INSTALL
.endif
.if exists(${PKGPREINSTALL})
-
PKGSCRIPTS+=	${PKGPREINSTALL}
+
	@${CP} ${PKGPREINSTALL} ${METADIR}/+PRE_INSTALL
.endif
.if exists(${PKGPOSTINSTALL})
-
PKGSCRIPTS+=	${PKGPOSTINSTALL}
+
	@${CP} ${PKGPOSTINSTALL} ${METADIR}/+POST_INSTALL
.endif
.if exists(${PKGDEINSTALL})
-
PKGSCRIPTS+=	${PKGDEINSTALL}
+
	@${CP} ${PKGDEINSTALL} ${METADIR}/+DEINSTALL
.endif
.if exists(${PKGPREDEINSTALL})
-
PKGSCRIPTS+=	${PKGPREDEINSTALL}
+
	@${CP} ${PKGPREDEINSTALL} ${METADIR}/+PRE_DEINSTALL
.endif
.if exists(${PKGPOSTDEINSTALL})
-
PKGSCRIPTS+=	${PKGPOSTDEINSTALL}
+
	@${CP} ${PKGPOSTDEINSTALL} ${METADIR}/+POST_DEINSTALL
.endif
.if exists(${PKGUPGRADE})
-
PKGSCRIPTS+=	${PKGUPGRADE}
+
	@${CP} ${PKGUPGRADE} ${METADIR}/+UPGRADE
.endif
.if exists(${PKGPREUPGRADE})
-
PKGSCRIPTS+=	${PKGPREUPGRADE}
+
	@${CP} ${PKGPREUPGRADE} ${METADIR}/+PRE_UPGRADE
.endif
.if exists(${PKGPOSTUPGRADE})
-
PKGSCRIPTS+=	${PKGPOSTUPGRADE}
+
	@${CP} ${PKGPOSTUPGRADE} ${METADIR}/+POST_UPGRADE
.endif
-
.if defined(PKGSCRIPTS)
-
PKG_ARGS+=	-s "${PKGSCRIPTS}"
+
	@${CP} ${DESCR} ${METADIR}/+DESC
+
.if exists(${PKGMESSAGE})
+
	@${CP} ${PKGMESSAGE} ${METADIR}/+DISPLAY
.endif
+
.if !defined(NO_MTREE)
+
	@${CP} ${MTREE_FILE} ${METADIR}/+MTREE_DIRS
.endif
-

-
.if !target(fake-pkg)
-
fake-pkg:
-
.if !defined(NO_PKG_REGISTER)
-
	@${ECHO_MSG} "===>   Registering installation for ${PKGNAME}"
-
	@${PKG_CMD} ${PKG_ARGS}
+
	@${PKG_CMD} -l -m ${METADIR} -f ${TMPPLIST}
.else
	@${DO_NADA}
.endif
modified ports/pkg2ng
@@ -16,72 +16,42 @@ do
	COMMENT=$( cat ${DB}/+COMMENT )
	DESC="${DB}/+DESC"

+
	ORIGIN=$(pkg_info -qo ${PKG})
+
	MAINTAINER=$( make -C /usr/ports/${ORIGIN} -V MAINTAINER )
	# +CONTENTS
-
	PLIST=$( mktemp /tmp/pkg2ng.plist.XXXXXX )
-
	DEPENDS=$( mktemp /tmp/pkg2ng.depends.XXXXXX )
-
	eval $( awk -v pfile=${PLIST} -v dfile=${DEPENDS} '
-
	BEGIN{
-
		origin=""
-
		depends=""
-
		conflicts=""
-
	}
-
	{
-
		if ( $0 ~ /^@pkgdep/ ) {
-
			dep = $2
-
			getline
-
			orig=$2
-
			sub(/DEPORIGIN/,"",orig)
-
			print dep""orig >> dfile
-
		} else if ( $0 ~ /^@comment ORIGIN/ ) {
-
			origin=$2
-
			sub(/ORIGIN:/,"",origin)
-
		} else if ( $0 ~ /^[^@]/ ) {
-
			print $0 >> pfile
-
		} else if ( $0 ~ /^@exec/) {
-
			print $0 >> pfile
-
		} else if ( $0 ~ /^@unexec/) {
-
			print $0 >> pfile
-
		} else if ( $0 ~ /^@dirrm/) {
-
			print $0 >> pfile
-
		} else if ( $0 ~ /^@dirrmtry/) {
-
			print $0 >> pfile
-
		} else if ( $0 ~ /^@conflict/) {
-
			conflict=conflict" "$2
-
		} else if ( $0 ~ /^@cwd/) {
-
			print $0 >> pfile
-
		} else if ( $0 ~ /^@ignore/) {
-
			getline
-
		}
-
	}
-
	END{
-
		print "export ORIGIN=\""origin"\""
-
		print "export CONFLICTS=\""conflict"\""
-
	}
-
	' ${DB}/+CONTENTS )
+
	MDIR=$(mktemp -d /tmp/pkg2ngXXXXX)
+
	test -f ${DB}/+DISPLAY && cp -f ${DB}/+DISPLAY ${MDIR}
+
	test -f ${DB}/+MTREE_DIRS && cp -f ${DB}/+MTREE_DIRS ${MDIR}
+
	test -f ${DB}/+DESC && cp -f ${DB}/+DESC ${MDIR}
+
	MANIFEST=${MDIR}/+MANIFEST
+
	PLIST=${MDIR}/plist
+
	cp -f ${DB}/+INSTALL ${MDIR} 2>/dev/null
+
	echo "@pkg_format_version 0.9" >> ${MANIFEST}
+
	echo "@name ${PKG%-*}" >> ${MANIFEST}
+
	echo "@version ${PKG##*-}" >> ${MANIFEST}
+
	echo "@origin ${ORIGIN}" >> ${MANIFEST}
+
	echo "@comment ${COMMENT}" >> ${MANIFEST}
+
	echo "@maintainer ${MAINTAINER}" >> ${MANIFEST}
+
	echo "@prefix /usr/local" >> ${MANIFEST}
+
	pkg_info -qr ${PKG} | while read ignore dep; do
+
		deporigin=$(pkg_info -qo ${dep})
+
		echo "@dep ${dep%-*} ${deporigin} ${dep##*-}" >> ${MANIFEST}
+
	done
+
	egrep -v "^@[pkgdep|ignore|conflicts]" ${DB}/+CONTENTS >> ${PLIST}
+
	awk '/^@conflicts/ { print "@conflict $2" }' ${DB}/+CONTENTS >> ${MANIFEST}

	OPTIONS=""
-
	SCRIPTS=$( ls ${DB}/+*INSTALL 2>/dev/null )
-

-
	MAINTAINER=$( make -C /usr/ports/${ORIGIN} -V MAINTAINER )

-
	CMD_ARGS="-l"
-
	test -f ${DB}/+MTREE_DIRS && CMD_ARGS="${CMD_ARGS} -m ${DB}/+MTREE_DIRS"
-
	test -f ${DB}/+DISPLAY && CMD_ARGS="${CMD_ARGS} -M ${DB}/+DISPLAY"
-
	test -n "${CONFLICTS}" && CMD_ARGS="${CMD_ARGS} -C ${CONFLICTS}"
-
	test -n "${SCRIPTS}" && CMD_ARGS="${CMD_ARGS} -s ${SCRIPTS}"
-
	test -n "${OPTIONS}" && CMD_ARGS="${CMD_ARGS} -O ${OPTIONS}"
-
		
	# register a package only if it's not registered already
	if pkg info -e ${ORIGIN}; then
		echo "package is already registered."
	else
-
		pkg register -c "${COMMENT}" -d ${DESC} -p /usr/local -n ${PKG} \
-
		-P "$( cat ${DEPENDS} )" \
-
		-o ${ORIGIN} -a ${ARCH} -r ${MAINTAINER} -f ${PLIST} ${CMD_ARGS}
-

-
		test $? -ne 0 && echo "failed." || echo "done."
+
		pkg register -l -m ${MDIR} -f ${PLIST} ${CMD_ARGS}
+
		test $? -ne 0 && echo "failed." || {
+
		echo "done." ; rm -rf ${MANIFEST}
+
		}
	fi

-
	rm ${PLIST} ${DEPENDS}
+
	rm ${PLIST}
done