Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 01 Dec 2011 21:14:37 +0000
From:      Matthew Seaman <m.seaman@infracaninophile.co.uk>
To:        Muhammad Moinur Rahman <5u623l20@gmail.com>
Cc:        freebsd-ports@freebsd.org
Subject:   Re: Porting application with RUN_DEPENDS and extra knobs
Message-ID:  <4ED7EE3D.8050703@infracaninophile.co.uk>
In-Reply-To: <CA%2BnPUkzOrJZLCheTve5FK1%2BooJLMKmKRejHWhb_pKgca%2By4cCA@mail.gmail.com>
References:  <CA%2BnPUkzOrJZLCheTve5FK1%2BooJLMKmKRejHWhb_pKgca%2By4cCA@mail.gmail.com>

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

On 01/12/2011 19:25, Muhammad Moinur Rahman wrote:
> I am trying to port one of our Home Brew application for FreeBSD as we =
are
> moving towards BSD from Linux. Now while creating the Makefile for crea=
ting
> a port I am in a trouble. I want to automate the full script. My
> application has RUN_DEPENDS for perl. And perl should be built with
> PERL_64BITINT, THREADS and USE_PERL knobs for my application to work. I=
s
> there any way I can force from my Makefile to build and install perl wi=
th
> the above mentioned knobs.
>=20
> I have thought of creating a patch file and changing the knobs
> in /var/db/ports/<PKG NAME>/options. But is there any official way to
> handle this?

The standard way of doing this is to create a slave port where you can
tweak the options settings and enforce whatever you require.  Compare,
for example, editors/emacs and editors/emacs-nox11.  Add a 'CONFLICTS'
variable to prevent both the original perl port and your slave copy
being installed simultaneously.

You don't need to submit this new slave port to be included in the
standard ports tree in order to use it with locally created ports.  You
can locally add a port /usr/ports/foo/bar by adding:

   /usr/ports/foo/Makefile.local

with contents:

   SUBDIR +=3D bar

and then refer to it in port dependencies in the usual way.  If you have
a bunch of local ports, you can add in a whole new category directory in
a similar way by adding a /usr/ports/Makefile.local

However, if you do this, be careful about how you manage synching
updates to your ports tree.  This sort of change (adding files) will
persist across csup(1) runs, whereas editing files already part of the
ports would not[*].   I think it also works with 'portsnap update' but
you'll have to test to make sure.

If you wanted to submit your home brew app to the ports, then it might
be better to use eg. a PKGREQ script or a small snippet of perl in the
Makefile to verify that perl was installed WITH_THREADED =3D yes and so
forth, rather than adding a slave port.

	Cheers,

	Matthew

[*] If you need to keep locally edited ports

--=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


--------------enig47DAA2997DAF28746CA01062
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/

iEYEARECAAYFAk7X7j0ACgkQ8Mjk52CukIyo3wCeO3ckwaQ9hPZzT8QP+aZuLxSn
ukEAn0TIIyEaLLC/V0/yl8C8NqVIzX9/
=mfn/
-----END PGP SIGNATURE-----

--------------enig47DAA2997DAF28746CA01062--



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