Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 24 Feb 2012 13:33:06 +0000
From:      Matthew Seaman <m.seaman@infracaninophile.co.uk>
To:        freebsd-ports@freebsd.org
Subject:   Re: nevermind.Re: how do you specify a minimum lib version?
Message-ID:  <4F479192.8040605@infracaninophile.co.uk>
In-Reply-To: <4F478892.10708@FreeBSD.org>
References:  <4F477B33.5020506@FreeBSD.org> <4F478892.10708@FreeBSD.org>

next in thread | previous in thread | raw e-mail | index | archive | help
This is an OpenPGP/MIME signed message (RFC 2440 and 3156)
--------------enig39523EAB0231FD4BAF805E2B
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable

On 24/02/2012 12:54, Michael Scheidell wrote:
>=20
>=20
> On 2/24/12 6:57 AM, Michael Scheidell wrote:
>> in LIB_DEPENDS
>> it won't take anything like:
>>
>> =3D boost_serialization>=3D.4
>>
> I googled.
> all other _DEPENDS uses >=3D
> LIB_DEPENDS uses .[4-9]
> (i assume .(1[0-9]|[4-9]))

Saying 'all other _DEPENDS' is slightly misleading.  LIB_DEPENDS is
itself conceptually different to all the other
{FETCH,EXTRACT,PATCH,BUILD,RUN,TEST,PKG}_DEPENDS in that it doesn't list
dependencies that are required at a specific stage of building a port
(LIB_DEPENDS is added to both BUILD_DEPENDS and RUN_DEPENDS), and it
also implies a different way of testing that a dependency is fulfilled.

So, there are four different styles for dependency lines:

1)   ${LOCALBASE}/bin/foo:${PORTSDIR}/bar/baz

Says 'unless the file ${LOCALBASE}/bin/foo exists, install the bar/baz
port'  (All dependency variables except LIB_DEPENDS)

2)  foo:${PORTSDIR}/bar/baz

Says 'unless there is an executable program foo on $PATH, install the
bar/baz port' *for anything except LIB_DEPENDS* where it means 'unless
there is a shared library -lfoo listed in the output of 'ldconfig -r',
install the bar/baz port'

3)  foo>=3D1.0:${PORTSDIR}/bar/baz

Says 'unless a package foo-1.0 (or any higher version) is installed,
install the bar/baz port' (All dependency variables except LIB_DEPENDS)

4) foo.[1-3]:${PORTSDIR}/bar/baz

Says 'unless foo.[1-3] is matched in the output of 'ldconfig -r',
install the bar/baz port' (Only for LIB_DEPENDS)

ie. do: ldconfig -r | grep '-lfoo.[1-3]'

This somewhat irritates my inner pedant, who would prefer it if _DEPENDS
variables referred strictly to the different phases of building and
installing ports, and there was some other syntax to indicate what test
should be done to decide if a dependency had been fulfilled.  Maybe
something like:

   @exists(${LOCALBASE}/bin/foo)
   @package(foo>=3D1.0)
   @shlib(foo) or @shlib(foo>=3D1)

which implies the possibility of adding other sorts of tests, say:

   @perlmod(Foo-Bar>1.0)

equivalent to testing that

   perl -M'Foo::Bar 1.0' -e ''

exits successfully.  (Meaning you could install modules from CPAN and
have them fulfil versioned dependencies in the ports.)

	Cheers,

	Matthew

--=20
Dr Matthew J Seaman MA, D.Phil.                   7 Priory Courtyard
                                                  Flat 3
PGP: http://www.infracaninophile.co.uk/pgpkey     Ramsgate
JID: matthew@infracaninophile.co.uk               Kent, CT11 9PW


--------------enig39523EAB0231FD4BAF805E2B
Content-Type: application/pgp-signature; name="signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="signature.asc"

-----BEGIN PGP SIGNATURE-----
Version: GnuPG/MacGPG2 v2.0.16 (Darwin)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/

iEYEARECAAYFAk9HkZkACgkQ8Mjk52CukIzGJwCfcSfKJzuMPAMNh+Ok1+XArkxZ
kFoAnAk49fZRm+DEAGEjla6LpO6vyeaY
=9hu4
-----END PGP SIGNATURE-----

--------------enig39523EAB0231FD4BAF805E2B--



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