Summary: | make package-noinstall does not include rc.d scripts | ||||||
---|---|---|---|---|---|---|---|
Product: | Ports & Packages | Reporter: | kamikaze | ||||
Component: | Individual Port(s) | Assignee: | Pav Lucistnik <pav> | ||||
Status: | Closed FIXED | ||||||
Severity: | Affects Only Me | ||||||
Priority: | Normal | ||||||
Version: | Latest | ||||||
Hardware: | Any | ||||||
OS: | Any | ||||||
Attachments: |
|
Description
kamikaze
2010-02-21 10:40:02 UTC
Responsible Changed From-To: freebsd-ports-bugs->miwi I'll take it. Responsible Changed From-To: miwi->portmgr over to portmgr. I have a nice tinderbox with a quad-core and 8-GB of RAM at home, now. What should I build (with and without the patch) to demonstrate you that this does not introduce regressions? Regards Responsible Changed From-To: portmgr->pav Take for exp-run State Changed From-To: open->feedback This breaks certain metaports .. http://pointyhat.freebsd.org/errorlogs/amd64-errorlogs/a.8-exp.20101111125232/cups-1.4.4.log ===> Building package for cups-1.4.4 ===> Generating temporary packing list pkg_create: can't find package 'cups-1.4.4' installed! *** Error code 1 I looked into this. The error is my assumption that `make install` always results in an entry in PKG_DBDIR. As it turns out, this is wrong. print/cups has NO_INSTALL set and installing it from the ports does not result in an a PKG_DBDIR entry. This is results in some oddities, like you can install print/cups for an infinite amount of times, because it will never actually be installed. And of course pkg_info does not list cups, right after installing it: # cd /usr/ports/print/cups # make clean ===> Cleaning for cups-1.4.5 # make install ===> License check disabled, port has not defined LICENSE ===> Extracting for cups-1.4.5 ===> Patching for cups-1.4.5 ===> cups-1.4.5 depends on executable: espgs - found ===> cups-1.4.5 depends on executable: cupsd - found ===> Configuring for cups-1.4.5 # pkg_info -Ex cups cups-base-1.4.5 cups-client-1.4.5 cups-image-1.4.5 cups-pstoraster-8.15.4_6 So the only way to install a meta-port that defines NO_INSTALL is to install the package. My suggestion is to change the behaviour of NO_INSTALL to something I consider more consistent. My tinderbox is still running, two builds have already completed cups-1.4.5 with the updated patch: diff -u bsd.port.mk.orig bsd.port.mk --- bsd.port.mk.orig 2010-11-16 12:59:45.000000000 +0100 +++ bsd.port.mk 2010-11-16 12:57:51.000000000 +0100 @@ -3411,9 +3411,9 @@ .endif # Disable install -.if defined(NO_INSTALL) && !target(install) -install: build - @${TOUCH} ${TOUCH_FLAGS} ${INSTALL_COOKIE} +.if defined(NO_INSTALL) && !target(do-install) +do-install: + @${DO_NADA} .endif # Disable package @@ -3883,20 +3883,7 @@ fi; \ fi @__softMAKEFLAGS='${__softMAKEFLAGS:S/'/'\''/g}'; \ - _LATE_PKG_ARGS=""; \ - if [ -f ${PKGINSTALL} ]; then \ - _LATE_PKG_ARGS="$${_LATE_PKG_ARGS} -i ${PKGINSTALL}"; \ - fi; \ - if [ -f ${PKGDEINSTALL} ]; then \ - _LATE_PKG_ARGS="$${_LATE_PKG_ARGS} -k ${PKGDEINSTALL}"; \ - fi; \ - if [ -f ${PKGREQ} ]; then \ - _LATE_PKG_ARGS="$${_LATE_PKG_ARGS} -r ${PKGREQ}"; \ - fi; \ - if [ -f ${PKGMESSAGE} ]; then \ - _LATE_PKG_ARGS="$${_LATE_PKG_ARGS} -D ${PKGMESSAGE}"; \ - fi; \ - if ${PKG_CMD} ${PKG_ARGS} ${PKGFILE}; then \ + if ${PKG_CMD} -b ${PKGNAME} ${PKGFILE}; then \ if [ -d ${PACKAGES} ]; then \ cd ${.CURDIR} && eval ${MAKE} $${__softMAKEFLAGS} package-links; \ fi; \ State Changed From-To: feedback->open New patch received Tinderbuild logs: http://www.home.hs-karlsruhe.de/~fado0001/logs/7-i386-ports-patched/cups-1.4.5.log http://www.home.hs-karlsruhe.de/~fado0001/logs/7-amd64-ports-patched/cups-1.4.5.log http://www.home.hs-karlsruhe.de/~fado0001/logs/8-i386-ports-patched/cups-1.4.5.log http://www.home.hs-karlsruhe.de/~fado0001/logs/8-amd64-ports-patched/cups-1.4.5.log Regards State Changed From-To: open->closed Committed, thanks! pav 2010-11-24 23:04:02 UTC FreeBSD ports repository Modified files: Mk bsd.port.mk Log: - Fix NO_INSTALL ports to register an entry in /var/db/pkg (ie. print/cups) - Change package-noinstall target to create package with pkg_create -b instead of specifying all the arguments PR: ports/144164 Submitted by: Dominic Fandrey <kamikaze@bsdforen.de> Revision Changes Path 1.656 +5 -18 ports/Mk/bsd.port.mk _______________________________________________ cvs-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/cvs-all To unsubscribe, send any mail to "cvs-all-unsubscribe@freebsd.org" This patch has one dark side. The pkg-message will no longer displayed if you install from package, (has me driven crazy until I recognized the issue with this patch). You can test this easily by installing a package which displays a pkg-message and was build with and without this patch. I opened PR 152626 about this behavior, hopefully the issue will be resolved before ports freeze. |