diff options
author | eadler <eadler@FreeBSD.org> | 2012-02-09 20:51:03 +0000 |
---|---|---|
committer | eadler <eadler@FreeBSD.org> | 2012-02-09 20:51:03 +0000 |
commit | 3ae19b58df1490a92cd6b1eff3aee1765ac18806 (patch) | |
tree | d123027f81a0dececb25d7541797e1b1ef3e2cd2 /usr.sbin/pkg_install | |
parent | 142a56c477c42800741ac2d5fab9b09558f09bbb (diff) | |
download | FreeBSD-src-3ae19b58df1490a92cd6b1eff3aee1765ac18806.zip FreeBSD-src-3ae19b58df1490a92cd6b1eff3aee1765ac18806.tar.gz |
Permit the use of relative paths for the prefix argument.
Remove an unnecessary cwd from created plists when -p is specified
PR: bin/145000
Submitted by: gcooper
Approved by: portmgr (flo)
MFC after: 1 month
Diffstat (limited to 'usr.sbin/pkg_install')
-rw-r--r-- | usr.sbin/pkg_install/create/perform.c | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/usr.sbin/pkg_install/create/perform.c b/usr.sbin/pkg_install/create/perform.c index 0834ecd..bfe4ac4 100644 --- a/usr.sbin/pkg_install/create/perform.c +++ b/usr.sbin/pkg_install/create/perform.c @@ -214,8 +214,12 @@ pkg_perform(char **pkgs) read_plist(&plist, pkg_in); /* Prefix should add an @cwd to the packing list */ - if (Prefix) - add_plist_top(&plist, PLIST_CWD, Prefix); + if (Prefix) { + char resolved_prefix[PATH_MAX]; + if (realpath(Prefix, resolved_prefix) != 0) + err(EXIT_FAILURE, "couldn't resolve path for prefix: %s", Prefix); + add_plist_top(&plist, PLIST_CWD, resolved_prefix); + } /* Add the origin if asked, at the top */ if (Origin) @@ -260,7 +264,9 @@ pkg_perform(char **pkgs) /* mark_plist(&plist); */ /* Now put the release specific items in */ - add_plist(&plist, PLIST_CWD, "."); + if (!Prefix) { + add_plist(&plist, PLIST_CWD, "."); + } write_file(COMMENT_FNAME, Comment); add_plist(&plist, PLIST_IGNORE, NULL); add_plist(&plist, PLIST_FILE, COMMENT_FNAME); |