Date: Sat, 10 Apr 2010 14:30:43 -0700 From: Garrett Cooper <yanefbsd@gmail.com> To: Dominic Fandrey <kamikaze@bsdforen.de> Cc: freebsd-ports@freebsd.org Subject: Re: Trivial PR, fix package-noinstall Message-ID: <p2w7d6fde3d1004101430ubd4866c2r4c171b405eca05ba@mail.gmail.com> In-Reply-To: <4BC0607D.9060402@bsdforen.de> References: <4BC04503.4000808@bsdforen.de> <t2p7d6fde3d1004100318k8b0b622fpaa38c5d942d8d60a@mail.gmail.com> <4BC0568E.6000008@bsdforen.de> <u2m7d6fde3d1004100349r3c769f7atb87d06c2dd748e62@mail.gmail.com> <4BC0607D.9060402@bsdforen.de>
next in thread | previous in thread | raw e-mail | index | archive | help
On Sat, Apr 10, 2010 at 4:26 AM, Dominic Fandrey <kamikaze@bsdforen.de> wro= te: > On 10/04/2010 12:49, Garrett Cooper wrote: >> On Sat, Apr 10, 2010 at 3:44 AM, Dominic Fandrey <kamikaze@bsdforen.de> = wrote: >>> On 10/04/2010 12:18, Garrett Cooper wrote: >>>> On Sat, Apr 10, 2010 at 2:29 AM, Dominic Fandrey <kamikaze@bsdforen.de= > wrote: >>>>> This morning I took a look at my outstanding PRs. There are >>>>> is a ports PR I consider old and trivial: >>>>> >>>>> This one fixes a bug in the package-noinstall target. wxs told >>>>> me that he prefers my proposed fix over his own: >>>>> http://www.freebsd.org/cgi/query-pr.cgi?pr=3Dports/144164 >>>> >>>> This suggested fix completely breaks pkg_creates operation because it >>>> does a chdir(2) prior to package creation (from >>>> .../usr.sbin/pkg_install/create/perform.c:555): >>>> >>>> =A0 =A0 if (chdir(log_dir) =3D=3D FAIL) { >>>> =A0 =A0 =A0 =A0 warnx("can't change directory to '%s'!", log_dir); >>>> =A0 =A0 =A0 =A0 return FALSE; >>>> =A0 =A0 } >>> >>> I don't see what appears to be the problem. The fix is tested, >>> there is no chdiring and pkg_create is not modified in any way. >>> >>> All it does is change the parameters pkg_create is called with. >> >> =A0 =A0 Have you tested in the following cases: >> >> 1. With the pkg_install scripts. >> 2. Without the pkg_install scripts. >> >> =A0 =A0 If not, then you need to do that before asking for someone to >> commit your code :). > > The do-package code is used by the package and the package-noinstall > targets. > > package-noinstall is called by package-recursive on ALL-DEPENDS. > I.e. it is only used on completely installed packages, just what > "pkg_create -b" was made for. > > The regular package target is always run after install (search for > "Main logic" in bsd.port.mk). So do-package is only called after > install has completed, hence the code can, in every case, rely on > logdir containing all required data. Ok, interesting. If you look at another spot in bsd.port.mk, there's another area where +INSTALL and friends are installed: fake-pkg: # ... if [ -f ${PKGINSTALL} ]; then \ ${CP} ${PKGINSTALL} ${PKG_DBDIR}/${PKGNAME}/+INSTALL; \ fi; \ if [ -f ${PKGDEINSTALL} ]; then \ ${CP} ${PKGDEINSTALL} ${PKG_DBDIR}/${PKGNAME}/+DEINSTALL; \ fi; \ if [ -f ${PKGREQ} ]; then \ ${CP} ${PKGREQ} ${PKG_DBDIR}/${PKGNAME}/+REQUIRE; \ if [ -f ${PKGMESSAGE} ]; then \ ${CP} ${PKGMESSAGE} ${PKG_DBDIR}/${PKGNAME}/+DISPLAY; \ fi; \ # ... So if I don't define NO_PKG_REGISTER and I define FORCE_PKG_REGISTER, then this logic will be executed. This change does need to be tested for the make package-noinstall case with pkg-install, pkg-deinstall, etc being present and not being present [in their .in files form and non-.in files form]. Otherwise this is going to potentially introduce a regression into bsd.port.mk. Thanks, -Garrett
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?p2w7d6fde3d1004101430ubd4866c2r4c171b405eca05ba>