From owner-svn-doc-head@FreeBSD.ORG Fri Feb 21 17:19:20 2014 Return-Path: Delivered-To: svn-doc-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id BA4A6513; Fri, 21 Feb 2014 17:19:20 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 9930A16B7; Fri, 21 Feb 2014 17:19:20 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.8/8.14.8) with ESMTP id s1LHJKF3065984; Fri, 21 Feb 2014 17:19:20 GMT (envelope-from wblock@svn.freebsd.org) Received: (from wblock@localhost) by svn.freebsd.org (8.14.8/8.14.8/Submit) id s1LHJKmc065983; Fri, 21 Feb 2014 17:19:20 GMT (envelope-from wblock@svn.freebsd.org) Message-Id: <201402211719.s1LHJKmc065983@svn.freebsd.org> From: Warren Block Date: Fri, 21 Feb 2014 17:19:20 +0000 (UTC) To: doc-committers@freebsd.org, svn-doc-all@freebsd.org, svn-doc-head@freebsd.org Subject: svn commit: r44016 - head/en_US.ISO8859-1/books/handbook/ports X-SVN-Group: doc-head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-doc-head@freebsd.org X-Mailman-Version: 2.1.17 Precedence: list List-Id: SVN commit messages for the doc tree for head List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 Feb 2014 17:19:20 -0000 Author: wblock Date: Fri Feb 21 17:19:20 2014 New Revision: 44016 URL: http://svnweb.freebsd.org/changeset/doc/44016 Log: Introduction to using Poudriere supplied by Christopher J. Ruwe . Edited version of supplied file. Reviewed by: bapt Modified: head/en_US.ISO8859-1/books/handbook/ports/chapter.xml Modified: head/en_US.ISO8859-1/books/handbook/ports/chapter.xml ============================================================================== --- head/en_US.ISO8859-1/books/handbook/ports/chapter.xml Fri Feb 21 15:27:03 2014 (r44015) +++ head/en_US.ISO8859-1/books/handbook/ports/chapter.xml Fri Feb 21 17:19:20 2014 (r44016) @@ -1541,6 +1541,163 @@ The deinstallation will free 229 kB + + Building Packages with + <application>Poudriere</application> + + Poudriere uses &os; jails to set + up isolated compilation environments. Inside, ports are + compiled and packaged using standard &man.make.1; targets and + &man.pkg.8;. + + + Installation and Configuration + + Install Poudriere from the + Ports Collection + (ports-mgmt/poudriere). + + Configuration files are + /usr/local/etc/poudriere.conf and + /usr/local/etc/poudriere.d/. Example + settings are shown in + /usr/local/etc/poudriere.conf.sample. + + Using ZFS is not required, + but beneficial. When ZFS is used, the + ZPOOL for + Poudriere's datasets must be + specified. Set FREEBSD_HOST to a nearby + mirror. Defaults for the other values are adequate. Defining + CCACHE_DIR enables the use of + devel/ccache to cache + compilation. This will reduce build times for + frequently-compiled code. It is convenient to put + Poudriere datasets in an isolated + tree mounted at + /poudriere. That is + not a functional modification, but a matter of taste. + + The number of processor cores detected is used to define + how many builds should run in parallel. Supply enough virtual + memory, either with RAM or swap space. If + virtual memory runs out, compiling jails will stop and be torn + down, resulting in weird error messages. + + + + Initialize Jails and Port Trees + + Initially, it is sufficient to install a &os; tree and a + ports tree. Creating a simple setup only requires supplying a + name with and a version with + . On systems running &os;/&arch.amd64;, + the architecture can be set with to + either i386 or amd64. + The default is the architecture shown by + uname. + + &prompt.root; poudriere jail -c -j 10amd64 -v 10.0-RELEASE +====>> Creating 10amd64 fs... done +====>> Fetching base.txz for FreeBSD 10.0-RELEASE amd64 +/poudriere/jails/10amd64/fromftp/base.txz 100% of 59 MB 1470 kBps 00m42s +====>> Extracting base.txz... done +====>> Fetching src.txz for FreeBSD 10.0-RELEASE amd64 +/poudriere/jails/10amd64/fromftp/src.txz 100% of 107 MB 1476 kBps 01m14s +====>> Extracting src.txz... done +====>> Fetching games.txz for FreeBSD 10.0-RELEASE amd64 +/poudriere/jails/10amd64/fromftp/games.txz 100% of 865 kB 734 kBps 00m01s +====>> Extracting games.txz... done +====>> Fetching lib32.txz for FreeBSD 10.0-RELEASE amd64 +/poudriere/jails/10amd64/fromftp/lib32.txz 100% of 14 MB 1316 kBps 00m12s +====>> Extracting lib32.txz... done +====>> Cleaning up... done +====>> Jail 10amd64 10.0-RELEASE amd64 is ready to be used + + &prompt.root; poudriere ports -c -p local +====>> Creating local fs... done +====>> Extracting portstree "local"... +Looking up portsnap.FreeBSD.org mirrors... 7 mirrors found. +Fetching public key from ec2-eu-west-1.portsnap.freebsd.org... done. +Fetching snapshot tag from ec2-eu-west-1.portsnap.freebsd.org... done. +Fetching snapshot metadata... done. +Fetching snapshot generated at Tue Feb 11 01:07:15 CET 2014: +94a3431f0ce567f6452ffde4fd3d7d3c6e1da143efec76100% of 69 MB 1246 kBps 00m57s +Extracting snapshot... done. +Verifying snapshot integrity... done. +Fetching snapshot tag from ec2-eu-west-1.portsnap.freebsd.org... done. +Fetching snapshot metadata... done. +Updating from Tue Feb 11 01:07:15 CET 2014 to Tue Feb 11 16:05:20 CET 2014. +Fetching 4 metadata patches... done. +Applying metadata patches... done. +Fetching 0 metadata files... done. +Fetching 48 patches. +(48/48) 100.00% done. +done. +Applying patches... +done. +Fetching 1 new ports or files... done. +/poudriere/ports/tester/CHANGES +/poudriere/ports/tester/COPYRIGHT + +[...] + +Building new INDEX files... done. + + On a single computer, Poudriere + can build ports with multiple configurations, in multiple + jails, and from different port trees. Custom configurations + for these combinations are called sets. + See the CUSTOMIZATION section of &man.poudriere.8; for + detail. + + The basic configuration shown here puts a single jail-, + port-, and set-specific make.conf in + /usr/local/etc/poudriere.d. + The filename in this example is created by combining the jail + name, port name, and set name: + 10amd64-local-workstation-make.conf. + The system make.conf and this new file + are combined at build time to create the + make.conf used by the build jail. + + Packages to be built are entered in + 10amd64-local-workstation-pkglist: + + editors/emacs +devel/git +ports-mgmt/pkg +... + + Options and dependencies for the specified ports are + configured: + + &prompt.root; poudriere options -j 10amd64 -p local -z workstation -f workstation-pkglist + + Finally, packages are built and a &man.pkg.8; repository + is created: + + &prompt.root; poudriere bulk -j 10amd64 -p local -z workstation -f workstation-pkglist + + Ctrlt + displays the current state. + Poudriere also builds files in + /poudriere/logs/bulk/jailname + that can be used with a web server to display build + information. + + Packages are now available for installation from the + Poudriere repository. + + For more information on + Poudriere, see &man.poudriere.8; + and the main web site, . + + + Post-Installation Considerations