ports/122860: databases/phpMyAdmin installs in the wrong dir
Matthew Seaman
m.seaman at infracaninophile.co.uk
Thu Apr 17 19:50:05 UTC 2008
The following reply was made to PR ports/122860; it has been noted by GNATS.
From: Matthew Seaman <m.seaman at infracaninophile.co.uk>
To: Ruud Althuizen <ruud at il.fontys.nl>
Cc: freebsd-gnats-submit at freebsd.org
Subject: Re: ports/122860: databases/phpMyAdmin installs in the wrong dir
Date: Thu, 17 Apr 2008 20:48:53 +0100
This is an OpenPGP/MIME signed message (RFC 2440 and 3156)
--------------enig15374BDB6FB9BAE1CF8AE49E
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: quoted-printable
Ruud Althuizen wrote:
>> Description:
> When you have WWWDIR set in /etc/make.conf phpMyAdmin will install all =
its files directly into that dir instead of creating its own subdir.
>=20
> It will also be unable to uninstall according to this line and others l=
ike it:
> pkg_delete: file '/usr/local//beast/web/www/translators.html' doesn't e=
xist
> (WWWDIR=3D"/beast/web/www")
>> How-To-Repeat:
> Install and/or deinstall phpMyAdmin
I can confirm this behaviour, but this is not a problem specific to
the phpmyadmin port. You'll see this effect with any port using $(WWWDIR=
)
or $(ETCDIR) if you attempt to override the automatically chosen values
with any path that isn't a subdirectory of $(PREFIX).
Compare the following:
happy-idiot-talk:...ports/databases/phpmyadmin:% make WWWDIR=3D/tmp/phpMy=
Admin -V PREFIX -V WWWDIR -V WWWDIR_REL
/usr/local
/tmp/phpMyAdmin
/tmp/phpMyAdmin
happy-idiot-talk:...ports/databases/phpmyadmin:% make WWWDIR=3D/usr/local=
/ptooey -V PREFIX -V WWWDIR -V WWWDIR_REL
/usr/local
/usr/local/ptooey
ptooey
It's the value of WWWDIR_REL which is used to substitute the %%WWWDIR%%
token in pkg-plist as the plist is /always/ relative to the $(PREFIX).=20
Hence the 1st example would give the effects seen by Mr Althuizen while
the 2nd example would work flawlessly. Exactly the same thing applies
to $(ETCDIR) and $(ETCDIR_REL) and similarly the other variables added
to PLIST_SUB around line 2973 of bsd.port.mk.=20
A fairly simple workaround is to redefine PREFIX in parallel with WWWDIR
-- something like this in /etc/make.conf should work:
=2Eif ${.CURDIR:M*/databases/phpmyadmin}
WWWDIR=3D /beast/web/www
PREFIX=3D /beast/web
=2Eendif
The code that results in this behaviour is in bsd.port.mk, so this is
definitely portmgr@ territory. I'd vote for putting in some tests like
this:
happy-idiot-talk:/usr/ports/Mk:% diff -u bsd.port.mk{.orig,}
--- bsd.port.mk.orig 2008-04-17 20:34:40.000000000 +0100
+++ bsd.port.mk 2008-04-17 20:44:24.000000000 +0100
@@ -2965,10 +2965,29 @@
.endif
=20
DOCSDIR_REL?=3D ${DOCSDIR:S,^${PREFIX}/,,}
+.if ${DOCSDIR_REL} =3D=3D ${DOCSDIR}
+BROKEN=3D DOCSDIR is not beneath PREFIX
+.endif
+
EXAMPLESDIR_REL?=3D ${EXAMPLESDIR:S,^${PREFIX}/,,}
+.if ${EXAMPLESDIR_REL} =3D=3D ${EXAMPLESDIR}
+BROKEN=3D EXAMPLESDIR is not beneath PREFIX
+.endif
+
DATADIR_REL?=3D ${DATADIR:S,^${PREFIX}/,,}
+.if ${DATADIR_REL} =3D=3D ${DATADIR}
+BROKEN=3D DATADIR is not beneath PREFIX
+.endif
+
WWWDIR_REL?=3D ${WWWDIR:S,^${PREFIX}/,,}
+.if ${WWWDIR_REL} =3D=3D ${WWWDIR}
+BROKEN=3D WWWDIR is not beneath PREFIX
+.endif
+
ETCDIR_REL?=3D ${ETCDIR:S,^${PREFIX}/,,}
+.if ${ETCDIR_REL} =3D=3D ${ETCDIR}
+BROKEN=3D ETCDIR is not beneath PREFIX
+.endif
=20
PLIST_SUB+=3D DOCSDIR=3D"${DOCSDIR_REL}" \
EXAMPLESDIR=3D"${EXAMPLESDIR_REL}" \
Cheers,
Matthew
--=20
Dr Matthew J Seaman MA, D.Phil. 7 Priory Courtyard
Flat 3
PGP: http://www.infracaninophile.co.uk/pgpkey Ramsgate
Kent, CT11 9PW
--------------enig15374BDB6FB9BAE1CF8AE49E
Content-Type: application/pgp-signature; name="signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="signature.asc"
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.8 (FreeBSD)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org
iEYEAREIAAYFAkgHqasACgkQ8Mjk52CukIxLWwCfexrCWSc18yauQNIWBk/fzWX8
ns4AmwZWkEUnpUx1KS21Gyxa1YHen9LY
=AYLe
-----END PGP SIGNATURE-----
--------------enig15374BDB6FB9BAE1CF8AE49E--
More information about the freebsd-ports-bugs
mailing list