why does pkgmk exports PKG and SRC?
Hi, everyone, I've just encountered a weird bug when I'm making a port, the configure script works fine if I run it by hand, but always fail if it was invoked inside pkgmk. After digging for a while, I found out that the configure script uses the shell variable PKG internally. Checked pkgmk, I see that pkgmk exports PKG and SRC before calling build(). Relevant code in pkgmk: build_package() { ... make_work_dir # here export PKG and SRC ... (set -e -x ; build) I think it's better to change that to: build_package() { ... make_work_dir # do not export ... (set -e -x; PKG=$PKG SRC=$SRC build) I don't know if this change would affect other things. Without making any change in pkgmk, my port currently looks like: build() { local pkg=$PKG unset PKG ... # build using $pkg export PKG=$pkg }
Hi, I don't understand, how the build function should work if PKG and SRC are not exported. On the other hand I can't find a difference in exporting PKG and SRC and calling build afterwards versus calling "PKG=$PKG SRC=$SRC build" - maybe I'm missing something here ... If I look at pkgmk, it should not be required to "export PKG=$pkg" in your build function at the end. You could simply use another shell for building: (unset PKG; build_which_modifies_PKG_internally) or even simpler (build_which_modifies_PKG_internally) if the build still works if $PKG is set already. Cheers, Erich On 25.01.2017 12:16, phi wrote:
Hi, everyone, I've just encountered a weird bug when I'm making a port, the configure script works fine if I run it by hand, but always fail if it was invoked inside pkgmk. After digging for a while, I found out that the configure script uses the shell variable PKG internally. Checked pkgmk, I see that pkgmk exports PKG and SRC before calling build(). Relevant code in pkgmk:
build_package() { ... make_work_dir # here export PKG and SRC ... (set -e -x ; build)
I think it's better to change that to:
build_package() { ... make_work_dir # do not export ... (set -e -x; PKG=$PKG SRC=$SRC build)
I don't know if this change would affect other things. Without making any change in pkgmk, my port currently looks like:
build() { local pkg=$PKG unset PKG ... # build using $pkg export PKG=$pkg }
_______________________________________________ CRUX mailing list CRUX@lists.crux.nu https://lists.crux.nu/mailman/listinfo/crux
participants (2)
-
Erich Eckner
-
phi