Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 01 Aug 2009 18:33:43 +0100
From:      Matthew Seaman <m.seaman@infracaninophile.co.uk>
To:        Dirk Meyer <dirk.meyer@dinoex.sub.org>
Cc:        freebsd-ports@freebsd.org
Subject:   Re: ports/*/jpeg "Thanks a lot guys"
Message-ID:  <4A747C77.1040800@infracaninophile.co.uk>
In-Reply-To: <c/bsZ0e9iU@dmeyer.dinoex.sub.org>
References:  <20090731173636.GA76357@owl.midgard.homeip.net>	<20090731121249.538ea7e7.jasonh@DataIX.net>	<20090731173636.GA76357@owl.midgard.homeip.net>	<4A740679.1020608@infracaninophile.co.uk> <c/bsZ0e9iU@dmeyer.dinoex.sub.org>

next in thread | previous in thread | raw e-mail | index | archive | help
This is an OpenPGP/MIME signed message (RFC 2440 and 3156)
--------------enigC8EAB2C9A96EAF4D077532E6
Content-Type: multipart/mixed; boundary="------------090403000206040402040901"

This is a multi-part message in MIME format.
--------------090403000206040402040901
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: quoted-printable

Dirk Meyer wrote:
> Hallo Matthew Seaman,
>=20
>> The OP does have a valid point though.  I just got an e-mail from Fres=
hpo=3D
>> rts
>> saying that a bunch of ports I maintain had had PORTREVISION bumps bec=
aus=3D
>> e of
>> the jpeg update.  Which is all fine and dandy, except that these were =
the=3D
>> =3D20
>> www/p5-RT-* extension modules for RT.  First of all, they are pure per=
l: =3D
>> there's
>> no object linkage with the jpeg shlibs at all.  Secondly, they have no=
thi=3D
>> ng
>> to do with manipulating jpeg data in any way, shape or form.  One of t=
hei=3D
>> r
>> dependencies links against libjpeg: that's it.
>=20
> This may be, but the port has "libjpeg" as dependency listed.
>=20
> ports/www/p5-RT-Authen-ExternalAuth$ make all-depends-list | grep jpeg
> /usr/ports/graphics/jpeg
>=20
> ports/www/p5-RT-Extension-SLA$ make all-depends-list | grep jpeg
> /usr/ports/graphics/jpeg

Yeah.  That's because p5-RT-* {run-,build-} depend on www/rt38, and www/r=
t38
depends on graphics/p5-GD, which depends on graphics/gd, which depends on=
=20
graphics/jpeg.

Of that whole dependency chain only graphics/gd and graphics/p5-GD need
a PORTREVISION bump due to the libjpeg update.

> Sorry I had no way to detect if this dependecy is not needed.
> I build the index with "EXPLICIT_PACKAGE_DEPENDS=3Dyes",
> which reduced the number of ports affected alot.
>=20
> Sadly further work on this general problem has been suspended.
>=20
> I hoped the current package tools where up to the task,
> making this bump obsolete, but I have been prooven wrong.
>

Absolutely.  I don't what to come over as if I'm complaining about ports
I maintain in particular -- it's the general problem of finding ports tha=
t
are affected by a shlib bump which I think needs a better solution.

It seems to me that the necessary data to construct an appropriate invers=
e
dependency graph is simply not extracted anywhere, so port management too=
ls
just don't have the wherewithal they need to solve this problem.

You could, for instance, run ldd(1) against each of the files a port inst=
alls
and then record in /var/db/pkg/portname-1.2.3/+SHLIBS or equivalently in =
the
=2Etbz package tarball a sorted and uniq'd list of all the shared librari=
es
linked against.  Or you could resolve the shlib filenames back to the por=
ts
that supply them, and create a 'SHLIB_PORTS_NEEDED' variable in the port
Makefiles.  Hmmm....  The attached script is a bit slow, and it doesn't=20
cope with linux executables but it shows the general idea.  eg:

% ./shlib-ports-needed.sh php5-gd-5.2.10=20
print/freetype2
graphics/jpeg
x11/libX11
x11/libXau
x11/libXdmcp
x11/libXpm
x11/libxcb
graphics/png
devel/t1lib

	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

--------------090403000206040402040901
Content-Type: text/plain;
 name="shlib-ports-needed.sh"
Content-Transfer-Encoding: base64
Content-Disposition: inline;
 filename="shlib-ports-needed.sh"

IyEvYmluL3NoCgojIEAoIykgJElkJAojCiMgR2l2ZW4gYSBwa2duYW1lIHNjYW4gYWxsIG9m
IHRoZSBmaWxlcyBpbnN0YWxsZWQgYnkgdGhlIHBhY2thZ2UsCiMgYW5kIGNyZWF0ZSBhIGxp
c3Qgb2YgYWxsIG9mIHRoZSBzaGxpYnMgbGlua2VkIHRvIGJ5IGFueSBleGVjdXRhYmxlcwoj
IG9yIHNobGlicyBmcm9tIHRoYXQgcGFja2FnZS4KIwoKUEFUSD0vdXNyL2JpbjovYmluOi91
c3Ivc2Jpbjovc2JpbiA7IGV4cG9ydCBQQVRICklGUz0nIAkKJyA7IGV4cG9ydCBJRlMKdW1h
c2sgMDIyCgpwa2duYW1lPSR7MT8nUGxlYXNlIHN1cHBseSB0aGUgbmFtZSBvZiBhbiBpbnN0
YWxsZWQgcGFja2FnZSd9CmxkZGNtZD0iIgoKVE1QPSQoIG1rdGVtcCAtdCAiJCggYmFzZW5h
bWUgJDAgKS5YWFhYWFgiICkKaWYgWyAkPyAtbmUgMCBdOyB0aGVuCiAgICBlY2hvICIkMDog
RkFUQUwgQ2FuJ3QgY3JlYXRlIHRlcG9yYXJ5IGZpbGUiCiAgICBleGl0IDEKZmkKdHJhcCAi
cm0gJFRNUCAmJiBleGl0IiBFWElUIElOVCBLSUxMCgpmb3IgZiBpbiAkKCBwa2dfaW5mbyAt
cUx4ICRwa2duYW1lICkgOyBkbwogICAgbGRkIC1mICIlcFxuIiAkZiAyPi9kZXYvbnVsbCA+
PiAkVE1QCmRvbmUKCnBrZ2xpc3Q9JCggZm9yIGYgaW4gJCggc29ydCAtdSAkVE1QICkgOyBk
byBwa2dfaW5mbyAtcVcgJGYgOyBkb25lIHwgc29ydCAtdSApCgpmb3IgZiBpbiAkcGtnbGlz
dCA7IGRvCiAgICBwa2dfaW5mbyAtcW8gJGYKZG9uZQoKIwojIFRoYXQncyBBbGwgRm9sa3Mh
CiMK
--------------090403000206040402040901--

--------------enigC8EAB2C9A96EAF4D077532E6
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.12 (FreeBSD)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iEUEAREIAAYFAkp0fH0ACgkQ8Mjk52CukIwaTACXWV2KbKiVnPoZZALx71If9hDS
AQCeII16DmxmQCRD+Qco9a5PS0z4P4Q=
=kPeg
-----END PGP SIGNATURE-----

--------------enigC8EAB2C9A96EAF4D077532E6--



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