Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 24 Sep 2013 17:35:38 +0400 (MSK)
From:      Dmitry Marakasov <amdmi3@FreeBSD.org>
To:        FreeBSD-gnats-submit@freebsd.org
Subject:   ports/182347: install target does nothing for pkgng + staging + NO_PKG_REGISTER case
Message-ID:  <20130924133538.B9C73303@hades.panopticon>
Resent-Message-ID: <201309241340.r8ODe0bp042772@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help

>Number:         182347
>Category:       ports
>Synopsis:       install target does nothing for pkgng + staging + NO_PKG_REGISTER case
>Confidential:   no
>Severity:       serious
>Priority:       low
>Responsible:    freebsd-ports-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Tue Sep 24 13:40:00 UTC 2013
>Closed-Date:
>Last-Modified:
>Originator:     Dmitry Marakasov
>Release:        FreeBSD 9.1-RELEASE-p4 amd64
>Organization:
>Environment:
System: FreeBSD hades.panopticon 9.1-RELEASE-p4 FreeBSD 9.1-RELEASE-p4 #0 r251956: Tue Jun 18 21:41:37 MSK 2013 root@hades.panopticon:/usr/obj/usr/src/sys/HADES amd64


>Description:
When pkgng is used and the port supports staging, `make install` with NO_PKG_REGISTER set does nothing - no files are installed to the system.

This seeminlgy happens because the package installation and pkgdb registration are now done in the same time with pkg, and whole fake-pkg target which runs this pkg is wrapped in .if !defined(NO_PKG_REGISTER):

---
fake-pkg: create-manifest
.if !defined(NO_PKG_REGISTER)
.if defined(INSTALLS_DEPENDS)
    @${ECHO_MSG} "===>   Registering installation for ${PKGNAME} as automatic"
.else
    @${ECHO_MSG} "===>   Registering installation for ${PKGNAME}"
.endif
.if defined(INSTALLS_DEPENDS)
    @${SETENV} FORCE_POST="${_FORCE_POST_PATTERNS}" ${PKG_CMD} -d ${STAGE_ARGS} -m ${METADIR} -f ${TMPPLIST}
.else
    @${SETENV} FORCE_POST="${_FORCE_POST_PATTERNS}" ${PKG_CMD} ${STAGE_ARGS} -m ${METADIR} -f ${TMPPLIST}
.endif
    @${RM} -rf ${METADIR}
.else
    @${DO_NADA}
.endif
.endif
---

>How-To-Repeat:
Try `make install` any port with NO_PKG_REGISTER.

>Fix:
Likely a mode needs to be added to pkg which does installation but not registration, and it should be used in pkgng.mk

Also, this probably may be achieved with using -l argument of `pkg register` and fake PKG_DBDIR, but I haven't tested.
>Release-Note:
>Audit-Trail:
>Unformatted:



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20130924133538.B9C73303>