From: Brian Candler on
Are there are any tools for building FreeBSD packages in a chroot cleanroom
environment? This is so that I can be sure that all dependencies are
properly declared, and so that I can be sure that the built binaries don't
accidentally link to libraries which happen to be available on my build
system but won't be available on the target system (oh, the joy of autoconf)

I found the documentation for pointyhat:
http://www.freebsd.org/doc/en/articles/portbuild/article.html
but I'd rather not go as far as building a whole pointyhat cluster :-)

What I'm thinking of is a utility which will:
- create a chroot environment (easy, just untar distribution)
- build a chosen port, pulling in dependencies as packages where possible,
otherwise building dependencies as packages too
- keep the built packages and distfiles locally, to speed up future builds
- reset the chroot environment back to its pristine state
- if possible run as non-root

I use this for Linux/RPM: http://thomas.apestaart.org/projects/mach/
but was wondering if there is something similar for the FreeBSD ports world.

My requirement is to be able to build safe binaries on a central box for
distribution out to FreeBSD cluster nodes, so they don't have to be compiled
separately on each node.

Thanks,

Brian.
_______________________________________________
freebsd-ports(a)freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-ports
To unsubscribe, send any mail to "freebsd-ports-unsubscribe(a)freebsd.org"

From: Kenyon Ralph on
On 2010-03-13T10:42:40+0000, Brian Candler <B.Candler(a)pobox.com> wrote:
> Are there are any tools for building FreeBSD packages in a chroot
> cleanroom environment? This is so that I can be sure that all
> dependencies are properly declared, and so that I can be sure that
> the built binaries don't accidentally link to libraries which happen
> to be available on my build system but won't be available on the
> target system (oh, the joy of autoconf)

Sounds like you want Tinderbox:
http://www.freshports.org/search.php?query=tinderbox

--
Kenyon Ralph
From: Dirk Meyer on
Brian Candler schrieb:,

> What I'm thinking of is a utility which will:
> - create a chroot environment (easy, just untar distribution)
> - build a chosen port, pulling in dependencies as packages where possible,
> otherwise building dependencies as packages too
> - keep the built packages and distfiles locally, to speed up future builds
> - reset the chroot environment back to its pristine state

This is very similar to the project I have done.

You might find it usefull to read the papers:
http://www.dinoex.de/schulungen/package-en.html
http://www.dinoex.de/schulungen/package2-en.html

The current version of the Tool can be fetched:
http://people.freebsd.org/~dinoex/batch/README
http://people.freebsd.org/~dinoex/batch/pkg_update
http://people.freebsd.org/~dinoex/batch/pkg_jail

> - if possible run as non-root

This is not supported by pkg_update.

but you can look into this oiptions for non root builds and installs.
http://people.freebsd.org/~dinoex/howto/README

> My requirement is to be able to build safe binaries on a central box for
> distribution out to FreeBSD cluster nodes, so they don't have to be compiled
> separately on each node.

Exactly.
I use a shared /usr/ports via NFS:

you sould consider adding to /etc/make.conf:
PACKAGES=${PORTSDIR}/packages/${OSVERSION}-${ARCH}/
USE_PACKAGE_DEPENDS=yes
DEPENDS_TARGET=package


kind regards Dirk

- Dirk Meyer, Im Grund 4, 34317 Habichtswald, Germany
- [dirk.meyer(a)dinoex.sub.org],[dirk.meyer(a)guug.de],[dinoex(a)FreeBSD.org]
http://people.freebsd.org/~dinoex/errorlogs/
_______________________________________________
freebsd-ports(a)freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-ports
To unsubscribe, send any mail to "freebsd-ports-unsubscribe(a)freebsd.org"

From: Ion-Mihai Tetcu on
On Sat, 13 Mar 2010 10:42:40 +0000
Brian Candler <B.Candler(a)pobox.com> wrote:

> Are there are any tools for building FreeBSD packages in a chroot
> cleanroom environment? This is so that I can be sure that all
> dependencies are properly declared, and so that I can be sure that
> the built binaries don't accidentally link to libraries which happen
> to be available on my build system but won't be available on the
> target system (oh, the joy of autoconf)
>
> I found the documentation for pointyhat:
> http://www.freebsd.org/doc/en/articles/portbuild/article.html
> but I'd rather not go as far as building a whole pointyhat cluster :-)
>
> What I'm thinking of is a utility which will:
> - create a chroot environment (easy, just untar distribution)
> - build a chosen port, pulling in dependencies as packages where
> possible, otherwise building dependencies as packages too
> - keep the built packages and distfiles locally, to speed up future
> builds
> - reset the chroot environment back to its pristine state
> - if possible run as non-root
>
> I use this for Linux/RPM: http://thomas.apestaart.org/projects/mach/
> but was wondering if there is something similar for the FreeBSD ports
> world.
>
> My requirement is to be able to build safe binaries on a central box
> for distribution out to FreeBSD cluster nodes, so they don't have to
> be compiled separately on each node.


All that you want, and more, you can do with ports-mngmt/tinerbox.


--
IOnut - Un^d^dregistered ;) FreeBSD "user"
"Intellectual Property" is nowhere near as valuable as "Intellect"
FreeBSD committer -> itetcu(a)FreeBSD.org, PGP Key ID 057E9F8B493A297B
From: Brian Candler on
> All that you want, and more, you can do with ports-mngmt/tinerbox.

Thank you - tinderbox seems to be just what I was looking for.

Regards,

Brian.
_______________________________________________
freebsd-ports(a)freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-ports
To unsubscribe, send any mail to "freebsd-ports-unsubscribe(a)freebsd.org"