Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 16 Dec 2016 08:54:22 +0100
From:      Dave Cottlehuber <dch@skunkwerks.at>
To:        freebsd-ports@freebsd.org
Subject:   Re: The ports collection has some serious issues
Message-ID:  <1481874862.2026028.820904953.14AFC6AA@webmail.messagingengine.com>
In-Reply-To: <a7665a3e-77f6-0a43-cb1c-c4dab9a7bfa5@freebsd.org>
References:  <c5bc24cc-5293-252b-ddbc-1e94a17ca3a8@openmailbox.org> <20161208122802.5d6dy7hjkkusms7h@ivaldir.etoilebsd.net> <a7665a3e-77f6-0a43-cb1c-c4dab9a7bfa5@freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On Mon, 12 Dec 2016, at 17:20, Julian Elischer wrote:
> > Have you considered using things like poudriere that would allow you to build
> > your own repository with your own set of packages and options.
> >
> > You will benefit:
> > - ability to use pkg for your upgrades
> > - ability to use customize your packages
> > - safe rebuild process (in case of broken ABI)
> >
> > Best regards,
> > Bapt
> I'm actually slowly moving to this if I can work out how to specify my 
> own chroot image, and a few other things I need to tweak. (my own sets 
> of patches to add).

Hi Julian,

I've been doing this with poudriere + pkg + git for a couple of years
now very happily, using a lagging ports checkout (similar to the
quarterly branch but taken at our convenience), and git rebasing our
custom patches so they "float" up to the top. We're using it at
iwantmyname.com now as well.

The guts of it is:

- use poudriere as usual but with a git-backed /usr/ports
- store custom patches in /usr/ports and push to
https://github.com/ideegeo/ports/ until they get committed in FreeBSD
ports tree
- git rebase periodically to pull in shiny bits from
git://github.com/freebsd/freebsd-ports master branch
- ansible pkg triggers a poudriere run whenever we add a new package to
the list
- these are made available via our pkg repo to our servers
- in practice, ansible is used to set up the whole stuff from scratch
including letsencrypt certs for the https://pkg.example.org/ but these
are the pre-automation steps I started with.

Here are the raw notes from our wiki and that should be sufficient for
you to try this out on a test VM somewhere.  I assume I've forgotten
stuff or made errors but promise to blog it over Christmas with a longer
explanation.

https://gist.github.com/dch/ec2693c051c66dcd2f17b30fc575a910

BTW I'm not exactly sure what you mean about a custom chroot image, but
I imagine you can fiddle with the poudriere base in
zroot/poudriere/jails/11_amd64 to your heart's content and it will be
used during the build.

A+
Dave



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