How to check out ports

Paul Schmehl pschmehl_lists at tx.rr.com
Wed Oct 3 17:41:32 UTC 2012


--On October 3, 2012 1:21:47 PM +0200 Michael Gmelin <freebsd at grem.de> 
wrote:

>
> The file name is the result of the command "git describe" and is
> therefore stable. It consists of three parts:
>
> tag - number of commits - commit hash
>
> This project uses tags for versioning (which makes sense), so this file
> name tells you that you're dealing with version v2-1.10, there have
> been no commits to the tree since this version (it's unaltered) and the
> commit id is g2f5d496 (which is a short but unique version of the
> original sha1). You can use this commit id to get exactly this version
> from a git repository (git clone ...; git checkout g2f5d496). If
> somebody commited to the repository, the number in the middle would
> increase and the hash change - but this will not happen in this
> scenario, since github creates the tarball by checking out the tag (git
> clone ...; git checkout v2-1.10), so as long as the project owner
> doesn't change the meaning of the tag (which he usually won't since he
> would redefine what vesion v2-1.10 means) this file name is stable.
>
> That said, when you're fetching using the fetch command (this is
> what ports uses) things look different anyway. Let's assume you're
> fetching a tag (= a version) and not master (which is not a version, but
> basically the current stable environment) and you're using the fetch
> program to get it, then the resulting file name is NOT
> firnsy-barnyard2-v2-1.10-0-g2f5d496.tar.gz but "v2-1.10".
>
> [dev at bsd64 /tmp]$ fetch
> https://github.com/firnsy/barnyard2/tarball/v2-1.10
> v2-1.10                                       100% of  409 kB  414 kBps
> ...
>
> Like Eitan pointed out, fortunately there are github supporting options
> in bsd.ports.mk. So if you use the following settings you should be fine
> (just tested this here and ended up creating an almost complete port
> skeleton - I turned v2-1.10 into 2.1.10 in the process, since v2-1.10
> would not be supported by the ports system - so this installs as
> barnyard2-2.1.10, which should be ok for future updates).
>
> Makefile:
># Whom:		pschmehl_lists at tx.rr.com
># $FreeBSD:$
>#
>
> PORTNAME=	barnyard2
> PORTVERSION=	2.1.10
> CATEGORIES=	security
> GH_ACCOUNT=	firnsy
> GH_PROJECT=	barnyard2
> GH_TAGNAME=	v2-1.10
> GH_COMMIT=	2f5d496
> USE_GITHUB=     YES
> GNU_CONFIGURE=	yes
> MAKE_JOBS_UNSAFE=YES
>
> MAINTAINER=	pschmehl_lists at tx.rr.com
> COMMENT=	Barnyard2 is a dedicated spooler\
> 		for Snorts unified2 binary output format.
>
> pre-configure:
> 	cd ${WRKSRC}; ${SH} autogen.sh
>
> .include <bsd.port.mk>
>
> distinfo:
> SHA256 (barnyard2-2.1.10.tar.gz) =
> 31d4e3745606489658bd411f74ffeb8a27573fdc08d0b51a6a71e1bf4dece8a2 SIZE
> (barnyard2-2.1.10.tar.gz) = 419781
>
> pkg-descr:
> Barnyard2 is a dedicated spooler for Snort's
> unified2 binary output format.
>
> https://github.com/firnsy/barnyard2/
>
> pkg-plist:
> bin/barnyard2
> etc/barnyard2.conf
>
> I attached the full port skeleton in a tarball, it might need some
> checking, I just did the usual (make install, make reinstall,
> pkg_create, pkg_delete).
>
> Maybe somebody could use this information to create a page about using
> github in the porter's handbook (it won't be me :D)?
>

Thanks, Michael.  You've been a huge help.  I had earlier searched 
/usr/ports/Mk for any sign of github and found none.  Your email made me 
realize my ports were out of date, a problem I need to fix.

With your help I now have a distinfo file and am working on figuring out 
why it won't make.

-- 
Paul Schmehl, Senior Infosec Analyst
As if it wasn't already obvious, my opinions
are my own and not those of my employer.
*******************************************
"It is as useless to argue with those who have
renounced the use of reason as to administer
medication to the dead." Thomas Jefferson
"There are some ideas so wrong that only a very
intelligent person could believe in them." George Orwell



More information about the freebsd-ports mailing list