linux-f10-nss_ldap: my first port - be gentle :)

Da Rock freebsd-ports at herveybayaustralia.com.au
Fri Jan 6 14:37:02 UTC 2012


On 01/05/12 21:18, Gary Jennejohn wrote:
> On Thu, 05 Jan 2012 09:52:40 +1000
> Da Rock<freebsd-ports at herveybayaustralia.com.au>  wrote:
>
>> On 01/04/12 23:27, Gary Jennejohn wrote:
>>> On Wed, 04 Jan 2012 22:31:51 +1000
>>> Da Rock<freebsd-ports at herveybayaustralia.com.au>   wrote:
>>>
>>>> I've been advised I should attempt to port this for general use to
>>>> FreeBSD. I've been operating it manually very successfully now in a
>>>> number of operations. This is, however, my first attempt at a port and I
>>>> would like some guidance to see if I've done this right.
>>>>
>>>> I was advised to copy the essential parts from a similar port, so I've
>>>> used archivers/linux-f10-ucl. This is my Makefile:
>>>>
>>>> # New ports collection makefile for:    archivers/linux-f10-nss_ldap
>>>> # Date created:                2012-01-04
>>>> # Whom:                    rskinner
>>>> #
>>>> # $FreeBSD$
>>>> #
>>>>
>>>> PORTNAME=        nss_ldap
>>>> PORTVERSION=        1.03
>>>> CATEGORIES=        security linux
>>>> MASTER_SITES=        CRITICAL/rpm/${LINUX_RPM_ARCH}/fedora/${LINUX_DIST_VER}
>>>> PKGNAMEPREFIX=        linux-f10-
>>>> DISTNAME=        ${PORTNAME}-${PORTVERSION}-${RPMVERSION}
>>>>
>>>> MAINTAINER=        emulation at FreeBSD.org
>>>> COMMENT=        nss_ldap library (Linux Fedora 10)
>>>>
>>>> CONFLICTS=
>>>>
>>>> USE_LINUX_RPM=        yes
>>>> LINUX_DIST_VER=        10
>>>> RPMVERSION=        8.fc9
>>>> USE_LDCONFIG=        yes
>>>>
>>>> PLIST_FILES=        usr/lib/libnss_ldap.so.2 usr/lib/libnss_ldap.so
>>>> usr/lib/libnss_ldap-264.so
>>>> DOCSDIR=        ${PREFIX}/usr/share/doc/${PORTNAME}-${PORTVERSION}
>>>> PORTDOCS=        COPYING NEWS README THANKS TODO
>>>> DESCR=            ${.CURDIR}/../${PORTNAME}/pkg-descr
>>>>
>>>> .include<bsd.port.mk>
>>>>
>>>> And I have a pkg-descr file.
>>>>
>>>> Am I on the right track? I'm following the porters handbook as well.
>>>>
>>> Doesn't pass portlint.
>>>
>>> Can't fetch the RPM file.
>>>
>>> Otherwise, a pretty good start.
>> Ok, thats good so far then. Thanks for the assessment.
>>
>> Now, what's portlint?
>>
> /usr/ports/ports-mgmt/portlint.  It does syntax checking on the Makefile
> and checks things like correct checksums in distfile.  You run it in the
> port's directory.
>
>> And I have a question or two about the rpm. Do I need to script
>> something to just extract the files needed, or is it already in the mk
>> files already somewhere?
>>
> I suspect that setting USE_LINUX_RPM= yes in Makefile should be all
> you need, but I've never done a RPM port.  Some seem to use only
> LINUX_RPM_ARCH= i386, which is the only option at the moment since
> we don't have a AMD64 Linux base port.

>> And how do I work out the url for fetching the rpm? This particular one
>> is a moving target as the distro is already eol. Is it stored on the
>> FreeBSD servers? Or what do I do here?
>>
> That could be a problem.  Maybe a committer could host it for you.  I'm
> hosting flwm-1.00.tgz, although I don't think it's used anymore.
>
>> In the porters handbook it mentions checksums and "make makesum" - does
>> that mean I have to put it in the ports tree to try it?
>>
> I just update Makefile, fetch the tarball and then run "make makesum"
> before generating diffs or making a tarball of the port.
>
>> And is pkg-message scripted or do I just create it?
>>
> See the comment in /usr/ports/Mk/bsd.port.mk.  There are lots of very
> informative comments in that file.
I've read that before too, but I seem to be missing something 
fundamental about ports here. I need to get a handle on all this before 
I can proceed. I'm pulling it apart now, anyway.

There are native ports, and there are the linux base ports. For the 
native ports the maintainer hosts? But these linux ports are they hosted 
on the linux rpm sites? Or are they hosted by the maintainer? So I 
believe I cannot sort a few things out until I know exactly what is 
going on here. As I mentioned its eol, but if the rest come from the 
linux sites...

All I want is 3 files from the usr/lib in the rpm (I think). What I 
couldn't quite ascertain is what is done here in the bsd.linux-rpm.mk: 
is it extracted and the files copied by make? Or is the rpm installed as 
in linux?

If I have to find a host for it I can host it, but what opportunities 
for a backup site exist in case of failure? Do I have to arrange that as 
the maintainer, or is it mirrored by FreeBSD automatically? Ideally I 
suppose both those scenarios would be in order.

And Chris, the license to most linux core stuff is GPL - I also checked 
the COPYING file for nss_ldap (as that is the only one we're concerned 
with here) and its GPLv2.

I've been spending the past few days trying to work out a tinderbox but 
my resources are stretched. I'm hoping to rectify this in the near 
future, but so far nada...

The checksums are all tied up with the hosting and so I'm still stuck 
there until I work it out, Paul. So I have to untangle these threads so 
I have a clearer picture on what I'm doing. from what I understand in 
what you're telling me it means I have to create the checksums to make 
available from the site, and makesum downloads it. If thats right, what 
do I have to do to create them? The handbook says differently (I think? 
Maybe I'm reading it wrong...)

Either that or maybe I'm just too tired rather than confused... :/ I'll 
have a look at another linux port tomorrow and pull it apart- and I'll 
try one closer to the core this time.

Thanks guys.


More information about the freebsd-ports mailing list