From owner-svn-doc-all@FreeBSD.ORG Sun Nov 18 15:11:39 2012 Return-Path: Delivered-To: svn-doc-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 03C44DEE; Sun, 18 Nov 2012 15:11:39 +0000 (UTC) (envelope-from linimon@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id D31758FC08; Sun, 18 Nov 2012 15:11:38 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.5/8.14.5) with ESMTP id qAIFBcH2050830; Sun, 18 Nov 2012 15:11:38 GMT (envelope-from linimon@svn.freebsd.org) Received: (from linimon@localhost) by svn.freebsd.org (8.14.5/8.14.5/Submit) id qAIFBcOl050829; Sun, 18 Nov 2012 15:11:38 GMT (envelope-from linimon@svn.freebsd.org) Message-Id: <201211181511.qAIFBcOl050829@svn.freebsd.org> From: Mark Linimon Date: Sun, 18 Nov 2012 15:11:38 +0000 (UTC) To: doc-committers@freebsd.org, svn-doc-all@freebsd.org, svn-doc-head@freebsd.org Subject: svn commit: r40068 - head/en_US.ISO8859-1/articles/portbuild X-SVN-Group: doc-head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-doc-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire doc trees \(except for " user" , " projects" , and " translations" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 18 Nov 2012 15:11:39 -0000 Author: linimon Date: Sun Nov 18 15:11:38 2012 New Revision: 40068 URL: http://svnweb.freebsd.org/changeset/doc/40068 Log: Completely overhaul the "new head node" section, based on an install from scratch done here in Austin. I am aware that there are various sins in the markup and whitespace. These will be fixed with subsequent commits. Modified: head/en_US.ISO8859-1/articles/portbuild/article.xml Modified: head/en_US.ISO8859-1/articles/portbuild/article.xml ============================================================================== --- head/en_US.ISO8859-1/articles/portbuild/article.xml Sun Nov 18 15:09:04 2012 (r40067) +++ head/en_US.ISO8859-1/articles/portbuild/article.xml Sun Nov 18 15:11:38 2012 (r40068) @@ -2771,39 +2771,72 @@ ln -s ../arch - For each supported arch, add a - ports-${arch} - user and group. Add them to the wheel - group. They should have the '*' password. - Also, similarly, create the ports and - portmgr users. + Create a user to own the portbuild + repository, such as portmgr, and add it + to the wheel group. It should have the + '*' password. - For each supported arch, create - /home/ports-${arch}/.ssh/ - and populate authorized_keys. + Add the following to /boot/loader.conf: +console="vidconsole,comconsole" + - - Create the appropriate files in - /etc/.ssh/. + Create the appropriate + etc/rc.conf. + + Required entries: +hostname="${hostname}" +sshd_enable="YES" + + + Recommended entries: +background_fsck="NO" +clear_tmp_enable="YES" +dumpdev="AUTO" +fsck_y_enable="YES" + +apache22_enable="YES" +apache_flags="" +apache_pidfile="/var/run/httpd.pid" +gmetad_enable="YES" +gmond_enable="YES" +inetd_enable="YES" +# XXX MCL these don't work! +#inetd_flags="-R 10000 -lw" +mountd_enable="YES" +nfs_server_enable="YES" +nfs_server_flags="-u -t -n 12" +nfs_remote_port_only="YES" +ntpd_enable="YES" +ntpdate_enable="YES" +ntpdate_flags="north-america.pool.ntp.org" +rpcbind_enable="YES" +rpc_lockd_enable="NO" +rpc_statd_enable="YES" +sendmail_enable="NONE" +smartd_enable="YES" + + - Add the following to /boot/loader.conf: -console="vidconsole,comconsole" - + Create etc/resolv.conf, if + necessary. + + + + Create the appropriate files in + /etc/ssh/. @@ -2820,9 +2853,6 @@ ttyu0 "/usr/libexec/getty std.9600" - - TBA - @@ -2835,22 +2865,33 @@ ttyu0 "/usr/libexec/getty std.9600" Create a zfs volume named a and mount it on - /a: -# zpool create a mirror da1 da2 mirror da3 da4 mirror da5 da6 mirror da7 da8 + /a. An example: +&prompt.root; zpool create a mirror da1 da2 mirror da3 da4 mirror da5 da6 mirror da7 da8 - Set up the base portbuild directory: -# mkdir -p /a/portbuild -# cd /a/portbuild -# chown portmgr:portmgr . -# chmod 775 . + Create the portbuild directory: +&prompt.root; mkdir -p /a/portbuild + - TBA + Create and mount a new zfs + filesystem on it: + zfs create -o mountpoint=/a/portbuild a/portbuild + + + + + Set up the portbuild directory: +&prompt.root; cd /a/portbuild +&prompt.root; chown portmgr:portmgr . +&prompt.root; chmod 775 . +&prompt.root; ln -sf /a/portbuild /var/portbuild + + @@ -2876,8 +2917,8 @@ ttyu0 "/usr/libexec/getty std.9600" The following ports (or their latest successors) are required: -databases/py-pysqlite23 -databases/py-sqlalchemy +databases/py-sqlite3 +databases/py-sqlalchemy (only SQLITE is needed) devel/git (WITH_SVN) devel/py-configobj devel/py-setuptools @@ -2886,13 +2927,13 @@ net/nc net/rsync sysutils/ganglia-monitor-core (with GMETAD off) sysutils/ganglia-webfrontend (WITHOUT_X11) -www/apache22 (with EXT_FILTER and THREADS) +www/apache22 (with EXT_FILTER) - Expect those to bring in: + Expect those to bring in, among others: databases/sqlite3 -lang/perl-5.12 -lang/python27 +lang/perl-5.14 (or successor) +lang/python27 (or sucessor) The following ports (or their latest successors) are strongly suggested: @@ -2900,7 +2941,7 @@ benchmarks/bonnie++ devel/ccache mail/postfix net/isc-dhcp41-server -ports-mgmt/pkg_cutleaves +ports-mgmt/pkg ports-mgmt/pkg_tree ports-mgmt/portaudit ports-mgmt/portmaster @@ -2913,26 +2954,242 @@ sysutils/smartmontools - Configure mail by doing the following: TBA. + If not already created, add the following users: +squid:*:100:100::0:0:User &:/usr/local/squid:/bin/sh +ganglia:*:102:102::0:0:User &:/usr/local/ganglia:/bin/sh + + Add them to /etc/group as well. + + + Configure mail by doing the following: + + TBA. + + - - Other + + Setting up and configuring the portbuild repository - TBA + Set up an account with subversion config files + installed. Again, we generally use + portmgr. + + + + As that user, set up the repository: +&prompt.user; svn checkout svn://svn.freebsd.org/base/projects/portbuild /a/portbuild + + + + + + Configure how build slaves will talk to your server + by making the following changes to + /var/portbuild/conf/client.conf: + + + + + Set CLIENT_NFS_MASTER to wherever + your build slaves will PXE boot from. (Possibly, the + hostname of your server.) + + + + Set CLIENT_BACKUP_FTP_SITE + to a backup site for FTP fetches; again, possibly + the hostname of your server. + + + + Set CLIENT_UPLOAD_HOST to + where completed packages will be uploaded. + + + + + Most of the other default values should be fine. + + + + Most of the default values in + /var/portbuild/conf/common.conf + should be fine. This file holds definitions used by + both the server and all its clients. + + + + /var/portbuild/conf/make.conf + is most likely obsolete. + + + + Configure the server by making the following changes to + /var/portbuild/conf/server.conf: + + + + + Set SUPPORTED_ARCHS to the + list of architectures you wish to build packages for. + + + + For each source branch you will be building for, set + SRC_BRANCHES and + SRC_BRANCH_branch_TAG + as detailed in . + You should not need to change + SRC_BRANCHES_PATTERN. + + + + Set UPLOAD_DIRECTORY, + UPLOAD_TARGET, and + UPLOAD_USER as approprite + for your site. + + + + Set MASTER_URL to the http + URL of your server. This will be stamped into the + package build logs and the indices thereof. + + + + + Most of the other default values should be fine. + + + + + + + + pre-<application>qmanager</application> + + + + + For each architecture, follow the steps in + . + + + + + + + + <application>qmanager</application> + + + + + Copy the following files from + /var/portbuild/conf/etc/rc.d to + /usr/local/etc/rc.d: +buildproxy.sh +pollmachine.sh +qmanager.sh + + + As root, start each one of them. You may find it handy + to start each under screen for + debugging purposes. + + + + Initialize the qmanager + database's acl list: +&prompt.root; python /var/portbuild/qmanager/qclient add_acl name=deny_all uidlist= gidlist= sense=0 + + + + + + + + + Creating src and ports repositories + + + + + Run the following commands manually to create the + src and ports + repositories, respectively: +&prompt.user; sudo /var/portbuild/scripts/updatesnap.ports +&prompt.user; sudo /var/portbuild/scripts/updatesnap + + + These will be periodically run from the root + crontab, which you will + install below. + + Other services + + + + + Configure + /usr/local/etc/apache22/httpd.conf + as appropriate for your site. + + + + Copy /var/portbuild/conf/apache.conf + to the appropriate Includes subdirectory, e.g., + /usr/local/etc/apache22/Includes/apache.conf. + Configure it as appropriate for your site. + + + + Set up /var/portbuild/crontab/root as + the root crontab via crontab -e. If you do + not support all the archs listed there, make sure to comment out + the appropriate dologs entries. + + + + If your build slaves will be pxebooted, make sure to + enable the tftp entries in + /etc/inetd.conf. + + + + + + + + Finishing up + + + + + For each architecture, follow the steps in + . + + + + + You should now be ready to build packages. + + +