#, fuzzy msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "POT-Creation-Date: 2018-12-08 14:45-0200\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #. Put one translator per line, in the form NAME , YEAR1, YEAR2 msgctxt "_" msgid "translator-credits" msgstr "" #. (itstool) path: info/title #: article.translate.xml:8 msgid "Build Your Own FreeBSD Update Server" msgstr "" #. (itstool) path: affiliation/address #: article.translate.xml:16 #, no-wrap msgid "Jason Helfman jgh@FreeBSD.org" msgstr "" #. (itstool) path: info/author #: article.translate.xml:10 msgid "" " Jason Helfman <_:address-1/> " msgstr "" #. (itstool) path: info/copyright #: article.translate.xml:20 msgid "" "2009 2010 2011 2013 " "Jason Helfman" msgstr "" #. (itstool) path: legalnotice/para #: article.translate.xml:29 msgid "FreeBSD is a registered trademark of the FreeBSD Foundation." msgstr "" #. (itstool) path: legalnotice/para #: article.translate.xml:31 msgid "" "Many of the designations used by manufacturers and sellers to distinguish " "their products are claimed as trademarks. Where those designations appear in " "this document, and the FreeBSD Project was aware of the trademark claim, the " "designations have been followed by the or the ® symbol." msgstr "" #. (itstool) path: legalnotice/para #: article.translate.xml:37 msgid "" "Intel, Celeron, Centrino, Core, EtherExpress, i386, i486, Itanium, Pentium, " "and Xeon are trademarks or registered trademarks of Intel Corporation or its " "subsidiaries in the United States and other countries." msgstr "" #. (itstool) path: legalnotice/para #: article.translate.xml:41 msgid "" "AMD, AMD Athlon, AMD Opteron, AMD Phenom, AMD Sempron, AMD Turion, Athlon, " "Élan, Opteron, and PCnet are trademarks of Advanced Micro Devices, Inc." msgstr "" #. (itstool) path: info/pubdate #. (itstool) path: info/releaseinfo #: article.translate.xml:46 article.translate.xml:48 msgid "" "$FreeBSD: head/en_US.ISO8859-1/articles/freebsd-update-server/article.xml " "51862 2018-06-17 16:40:13Z bcr $" msgstr "" #. (itstool) path: abstract/para #: article.translate.xml:51 msgid "" "This article describes building an internal FreeBSD Update " "Server. The freebsd-update-server is " "written by Colin Percival cperciva@FreeBSD.org, Security " "Officer Emeritus of FreeBSD. For users that think it is convenient to update " "their systems against an official update server, building their own " "FreeBSD Update Server may help to extend its " "functionality by supporting manually-tweaked FreeBSD releases or by " "providing a local mirror that will allow faster updates for a number of " "machines." msgstr "" #. (itstool) path: sect1/title #: article.translate.xml:66 msgid "Acknowledgments" msgstr "" #. (itstool) path: sect1/para #: article.translate.xml:68 msgid "" "This article was subsequently printed at BSD Magazine." msgstr "" #. (itstool) path: sect1/title #: article.translate.xml:73 msgid "Introduction" msgstr "" #. (itstool) path: sect1/para #: article.translate.xml:75 msgid "" "Experienced users or administrators are often responsible for several " "machines or environments. They understand the difficult demands and " "challenges of maintaining such an infrastructure. Running a " "FreeBSD Update Server makes it easier to deploy " "security and software patches to selected test machines before rolling them " "out to production. It also means a number of systems can be updated from the " "local network rather than a potentially slower Internet connection. This " "article outlines the steps involved in creating an internal " "FreeBSD Update Server." msgstr "" #. (itstool) path: sect1/title #: article.translate.xml:90 msgid "Prerequisites" msgstr "" #. (itstool) path: sect1/para #: article.translate.xml:92 msgid "" "To build an internal FreeBSD Update Server some " "requirements should be met." msgstr "" #. (itstool) path: listitem/para #: article.translate.xml:98 msgid "A running FreeBSD system." msgstr "" #. (itstool) path: note/para #: article.translate.xml:101 msgid "" "At a minimum, updates require building on a FreeBSD release greater than or " "equal to the target release version for distribution." msgstr "" #. (itstool) path: listitem/para #: article.translate.xml:108 msgid "" "A user account with at least 4 GB of available space. This will allow the " "creation of updates for 7.1 and 7.2, but the exact space requirements may " "change from version to version." msgstr "" #. (itstool) path: listitem/para #: article.translate.xml:115 msgid "" "An ssh1 account on a remote machine to upload distributed updates." msgstr "" #. (itstool) path: listitem/para #: article.translate.xml:120 msgid "" "A web server, like Apache, with over half of the " "space required for the build. For instance, test builds for 7.1 and 7.2 " "consume a total amount of 4 GB, and the webserver space needed to distribute " "these updates is 2.6 GB." msgstr "" #. (itstool) path: listitem/para #: article.translate.xml:129 msgid "" "Basic knowledge of shell scripting with Bourne shell, " "sh1." msgstr "" #. (itstool) path: sect1/title #: article.translate.xml:136 msgid "Configuration: Installation & Setup" msgstr "" #. (itstool) path: sect1/para #: article.translate.xml:138 msgid "" "Download the freebsd-update-server software by " "installing devel/subversion and security/" "ca_root_nss, and execute:" msgstr "" #. (itstool) path: sect1/screen #: article.translate.xml:143 #, no-wrap msgid "" "% svn co https://svn.freebsd.org/base/user/" "cperciva/freebsd-update-build freebsd-update-server" msgstr "" #. (itstool) path: sect1/para #: article.translate.xml:145 msgid "" "Update scripts/build.conf appropriately. It is sourced " "during all build operations." msgstr "" #. (itstool) path: sect1/para #: article.translate.xml:149 msgid "" "Here is the default build.conf, which should be " "modified to suit your environment." msgstr "" #. (itstool) path: informalexample/programlisting #: article.translate.xml:153 #, no-wrap msgid "" "# Main configuration file for FreeBSD Update builds. The\n" "# release-specific configuration data is lower down in\n" "# the scripts tree.\n" "\n" "# Location from which to fetch releases\n" "export FTP=ftp://ftp2.freebsd.org/pub/FreeBSD/releases\n" "\n" "# Host platform\n" "export HOSTPLATFORM=`uname -m`\n" "\n" "# Host name to use inside jails\n" "export BUILDHOSTNAME=${HOSTPLATFORM}-builder.daemonology.net\n" "\n" "# Location of SSH key\n" "export SSHKEY=/root/.ssh/id_dsa\n" "\n" "# SSH account into which files are uploaded\n" "MASTERACCT=builder@wadham.daemonology.net\n" "\n" "# Directory into which files are uploaded\n" "MASTERDIR=update-master.freebsd.org" msgstr "" #. (itstool) path: sect1/para #: article.translate.xml:176 msgid "Parameters for consideration would be:" msgstr "" #. (itstool) path: callout/para #: article.translate.xml:180 msgid "" "This is the location where ISO images are downloaded from (by the " "fetchiso() subroutine of scripts/build.subr). The location configured is not limited to FTP URIs. Any URI " "scheme supported by standard fetch1 utility should work " "fine." msgstr "" #. (itstool) path: callout/para #: article.translate.xml:187 msgid "" "Customizations to the fetchiso() code can be installed " "by copying the default build.subr script to the release " "and architecture-specific area at scripts/RELEASE/ARCHITECTURE/" "build.subr and applying local changes." msgstr "" #. (itstool) path: callout/para #: article.translate.xml:196 msgid "" "The name of the build host. This information will be displayed on updated " "systems when issuing:" msgstr "" #. (itstool) path: callout/screen #: article.translate.xml:199 #, no-wrap msgid "% uname -v" msgstr "" #. (itstool) path: callout/para #: article.translate.xml:203 msgid "" "The SSH key for uploading files to the update " "server. A key pair can be created by typing ssh-keygen -t dsa. This parameter is optional; standard password authentication will " "be used as a fallback authentication method when SSHKEY " "is not defined." msgstr "" #. (itstool) path: callout/para #: article.translate.xml:210 msgid "" "The ssh-keygen1 manual page has more detailed information about " "SSH and the appropriate steps for creating and " "using one." msgstr "" #. (itstool) path: callout/para #: article.translate.xml:216 msgid "Account for uploading files to the update server." msgstr "" #. (itstool) path: callout/para #: article.translate.xml:220 msgid "Directory on the update server where files are uploaded to." msgstr "" #. (itstool) path: sect1/para #: article.translate.xml:225 msgid "" "The default build.conf shipped with the " "freebsd-update-server sources is suitable for " "building i386 releases of FreeBSD. As an example of building an update " "server for other architectures, the following steps outline the " "configuration changes needed for amd64:" msgstr "" #. (itstool) path: step/para #: article.translate.xml:234 msgid "Create a build environment for amd64:" msgstr "" #. (itstool) path: informalexample/screen #: article.translate.xml:237 #, no-wrap msgid "" "% mkdir -p /usr/local/freebsd-update-server/" "scripts/7.2-RELEASE/amd64" msgstr "" #. (itstool) path: step/para #: article.translate.xml:242 msgid "" "Install a build.conf in the newly created build " "directory. The build configuration options for FreeBSD 7.2-RELEASE on amd64 " "should be similar to:" msgstr "" #. (itstool) path: informalexample/programlisting #: article.translate.xml:248 #, no-wrap msgid "" "# SHA256 hash of RELEASE disc1.iso image.\n" "export RELH=" "1ea1f6f652d7c5f5eab7ef9f8edbed50cb664b08ed761850f95f48e86cc71ef5\n" "\n" "# Components of the world, source, and kernels\n" "export WORLDPARTS=\"base catpages dict doc games info manpages proflibs " "lib32\"\n" "export SOURCEPARTS=\"base bin contrib crypto etc games gnu include krb5 \\\n" " lib libexec release rescue sbin secure share sys tools \\\n" " ubin usbin cddl\"\n" "export KERNELPARTS=\"generic\"\n" "\n" "# EOL date\n" "export EOL=1275289200" msgstr "" #. (itstool) path: callout/para #: article.translate.xml:264 msgid "" "The sha2561 hash key for the desired release, is published " "within the respective release announcement." msgstr "" #. (itstool) path: callout/para #: article.translate.xml:270 msgid "" "To generate the \"End of Life\" number for build.conf, " "refer to the \"Estimated EOL\" posted on the FreeBSD Security Website." " The value of EOL can be derived from the date listed on " "the web site, using the date1 utility, for example:" msgstr "" #. (itstool) path: callout/screen #: article.translate.xml:278 #, no-wrap msgid "" "% date -j -f '%Y%m%d-%H%M%S' '20090401-000000' " "'+%s'" msgstr "" #. (itstool) path: sect1/title #: article.translate.xml:286 msgid "Building Update Code" msgstr "" #. (itstool) path: sect1/para #: article.translate.xml:288 msgid "" "The first step is to run scripts/make.sh. This will " "build some binaries, create directories, and generate an RSA signing key " "used for approving builds. In this step, a passphrase will have to be " "supplied for the final creation of the signing key." msgstr "" #. (itstool) path: sect1/screen #: article.translate.xml:294 #, no-wrap msgid "" "# sh scripts/make.sh\n" "cc -O2 -fno-strict-aliasing -pipe findstamps.c -o findstamps\n" "findstamps.c: In function 'usage':\n" "findstamps.c:45: warning: incompatible implicit declaration of built-in " "function 'exit'\n" "cc -O2 -fno-strict-aliasing -pipe unstamp.c -o unstamp\n" "install findstamps ../bin\n" "install unstamp ../bin\n" "rm -f findstamps unstamp\n" "Generating RSA private key, 4096 bit long modulus\n" "............................................................................." "...++\n" "...................++\n" "e is 65537 (0x10001)\n" "\n" "Public key fingerprint:\n" "27ef53e48dc869eea6c3136091cc6ab8589f967559824779e855d58a2294de9e\n" "\n" "Encrypting signing key for root\n" "enter aes-256-cbc encryption password:\n" "Verifying - enter aes-256-cbc encryption password:" msgstr "" #. (itstool) path: note/para #: article.translate.xml:315 msgid "" "Keep a note of the generated key fingerprint. This value is required in " "/etc/freebsd-update.conf for binary updates." msgstr "" #. (itstool) path: sect1/para #: article.translate.xml:320 msgid "At this point, we are ready to stage a build." msgstr "" #. (itstool) path: informalexample/screen #: article.translate.xml:323 #, no-wrap msgid "" "# cd /usr/local/freebsd-update-server\n" "# sh scripts/init.sh amd64 7.2-" "RELEASE" msgstr "" #. (itstool) path: sect1/para #: article.translate.xml:327 msgid "What follows is a sample of an initial build run." msgstr "" #. (itstool) path: sect1/screen #: article.translate.xml:330 #, no-wrap msgid "" "# sh scripts/init.sh amd64 7.2-RELEASE\n" "Mon Aug 24 16:04:36 PDT 2009 Starting fetch for FreeBSD/amd64 7.2-RELEASE\n" "/usr/local/freebsd-update-server/work/7.2-RELE100% of 588 MB 359 kBps " "00m00s\n" "Mon Aug 24 16:32:38 PDT 2009 Verifying disc1 hash for FreeBSD/amd64 7.2-" "RELEASE\n" "Mon Aug 24 16:32:44 PDT 2009 Extracting components for FreeBSD/amd64 7.2-" "RELEASE\n" "Mon Aug 24 16:34:05 PDT 2009 Constructing world+src image for FreeBSD/amd64 " "7.2-RELEASE\n" "Mon Aug 24 16:35:57 PDT 2009 Extracting world+src for FreeBSD/amd64 7.2-" "RELEASE\n" "Mon Aug 24 23:36:24 UTC 2009 Building world for FreeBSD/amd64 7.2-RELEASE\n" "Tue Aug 25 00:31:29 UTC 2009 Distributing world for FreeBSD/amd64 7.2-" "RELEASE\n" "Tue Aug 25 00:32:36 UTC 2009 Building and distributing kernels for FreeBSD/" "amd64 7.2-RELEASE\n" "Tue Aug 25 00:44:44 UTC 2009 Constructing world components for FreeBSD/amd64 " "7.2-RELEASE\n" "Tue Aug 25 00:44:56 UTC 2009 Distributing source for FreeBSD/amd64 7.2-" "RELEASE\n" "Mon Aug 24 17:46:18 PDT 2009 Moving components into staging area for FreeBSD/" "amd64 7.2-RELEASE\n" "Mon Aug 24 17:46:33 PDT 2009 Identifying extra documentation for FreeBSD/" "amd64 7.2-RELEASE\n" "Mon Aug 24 17:47:13 PDT 2009 Extracting extra docs for FreeBSD/amd64 7.2-" "RELEASE\n" "Mon Aug 24 17:47:18 PDT 2009 Indexing release for FreeBSD/amd64 7.2-RELEASE\n" "Mon Aug 24 17:50:44 PDT 2009 Indexing world0 for FreeBSD/amd64 7.2-RELEASE\n" "\n" "Files built but not released:\n" "Files released but not built:\n" "Files which differ by more than contents:\n" "Files which differ between release and build:\n" "kernel|generic|/GENERIC/hptrr.ko\n" "kernel|generic|/GENERIC/kernel\n" "src|sys|/sys/conf/newvers.sh\n" "world|base|/boot/loader\n" "world|base|/boot/pxeboot\n" "world|base|/etc/mail/freebsd.cf\n" "world|base|/etc/mail/freebsd.submit.cf\n" "world|base|/etc/mail/sendmail.cf\n" "world|base|/etc/mail/submit.cf\n" "world|base|/lib/libcrypto.so.5\n" "world|base|/usr/bin/ntpq\n" "world|base|/usr/lib/libalias.a\n" "world|base|/usr/lib/libalias_cuseeme.a\n" "world|base|/usr/lib/libalias_dummy.a\n" "world|base|/usr/lib/libalias_ftp.a\n" "..." msgstr "" #. (itstool) path: sect1/para #: article.translate.xml:369 msgid "" "Then the build of the world is performed again, with world patches. A more " "detailed explanation may be found in scripts/build.subr." "" msgstr "" #. (itstool) path: warning/para #: article.translate.xml:374 msgid "" "During this second build cycle, the network time protocol daemon, " "ntpd8, is turned off. Per Colin Percival cperciva@FreeBSD." "org, Security Officer Emeritus of FreeBSD, \"the freebsd-update-server build code needs to identify timestamps " "which are stored in files so that they can be ignored when comparing builds " "to determine which files need to be updated. This timestamp-finding works by " "doing two builds 400 days apart and comparing the results.\"" msgstr "" #. (itstool) path: sect1/screen #: article.translate.xml:384 #, no-wrap msgid "" "Mon Aug 24 17:54:07 PDT 2009 Extracting world+src for FreeBSD/amd64 7.2-" "RELEASE\n" "Wed Sep 29 00:54:34 UTC 2010 Building world for FreeBSD/amd64 7.2-RELEASE\n" "Wed Sep 29 01:49:42 UTC 2010 Distributing world for FreeBSD/amd64 7.2-" "RELEASE\n" "Wed Sep 29 01:50:50 UTC 2010 Building and distributing kernels for FreeBSD/" "amd64 7.2-RELEASE\n" "Wed Sep 29 02:02:56 UTC 2010 Constructing world components for FreeBSD/amd64 " "7.2-RELEASE\n" "Wed Sep 29 02:03:08 UTC 2010 Distributing source for FreeBSD/amd64 7.2-" "RELEASE\n" "Tue Sep 28 19:04:31 PDT 2010 Moving components into staging area for FreeBSD/" "amd64 7.2-RELEASE\n" "Mon Aug 24 19:04:46 PDT 2009 Extracting extra docs for FreeBSD/amd64 7.2-" "RELEASE\n" "Mon Aug 24 19:04:51 PDT 2009 Indexing world1 for FreeBSD/amd64 7.2-RELEASE\n" "Mon Aug 24 19:08:04 PDT 2009 Locating build stamps for FreeBSD/amd64 7.2-" "RELEASE\n" "Mon Aug 24 19:10:19 PDT 2009 Cleaning staging area for FreeBSD/amd64 7.2-" "RELEASE\n" "Mon Aug 24 19:10:19 PDT 2009 Preparing to copy files into staging area for " "FreeBSD/amd64 7.2-RELEASE\n" "Mon Aug 24 19:10:20 PDT 2009 Copying data files into staging area for " "FreeBSD/amd64 7.2-RELEASE\n" "Mon Aug 24 12:16:57 PDT 2009 Copying metadata files into staging area for " "FreeBSD/amd64 7.2-RELEASE\n" "Mon Aug 24 12:16:59 PDT 2009 Constructing metadata index and tag for FreeBSD/" "amd64 7.2-RELEASE\n" "\n" "Files found which include build stamps:\n" "kernel|generic|/GENERIC/hptrr.ko\n" "kernel|generic|/GENERIC/kernel\n" "world|base|/boot/loader\n" "world|base|/boot/pxeboot\n" "world|base|/etc/mail/freebsd.cf\n" "world|base|/etc/mail/freebsd.submit.cf\n" "world|base|/etc/mail/sendmail.cf\n" "world|base|/etc/mail/submit.cf\n" "world|base|/lib/libcrypto.so.5\n" "world|base|/usr/bin/ntpq\n" "world|base|/usr/include/osreldate.h\n" "world|base|/usr/lib/libalias.a\n" "world|base|/usr/lib/libalias_cuseeme.a\n" "world|base|/usr/lib/libalias_dummy.a\n" "world|base|/usr/lib/libalias_ftp.a\n" "..." msgstr "" #. (itstool) path: sect1/para #: article.translate.xml:418 msgid "Finally, the build completes." msgstr "" #. (itstool) path: sect1/screen #: article.translate.xml:420 #, no-wrap msgid "" "Values of build stamps, excluding library archive headers:\n" "v1.2 (Aug 25 2009 00:40:36)\n" "v1.2 (Aug 25 2009 00:38:22)\n" "@(#)FreeBSD 7.2-RELEASE #0: Tue Aug 25 00:38:29 UTC 2009\n" "FreeBSD 7.2-RELEASE #0: Tue Aug 25 00:38:29 UTC 2009\n" " root@server.myhost.com:/usr/obj/usr/src/sys/GENERIC\n" "7.2-RELEASE\n" "Mon Aug 24 23:55:25 UTC 2009\n" "Mon Aug 24 23:55:25 UTC 2009\n" "##### built by root@server.myhost.com on Tue Aug 25 00:16:15 UTC 2009\n" "##### built by root@server.myhost.com on Tue Aug 25 00:16:15 UTC 2009\n" "##### built by root@server.myhost.com on Tue Aug 25 00:16:15 UTC 2009\n" "##### built by root@server.myhost.com on Tue Aug 25 00:16:15 UTC 2009\n" "Mon Aug 24 23:46:47 UTC 2009\n" "ntpq 4.2.4p5-a Mon Aug 24 23:55:53 UTC 2009 (1)\n" " * Copyright (c) 1992-2009 The FreeBSD Project.\n" "Mon Aug 24 23:46:47 UTC 2009\n" "Mon Aug 24 23:55:40 UTC 2009\n" "Aug 25 2009\n" "ntpd 4.2.4p5-a Mon Aug 24 23:55:52 UTC 2009 (1)\n" "ntpdate 4.2.4p5-a Mon Aug 24 23:55:53 UTC 2009 (1)\n" "ntpdc 4.2.4p5-a Mon Aug 24 23:55:53 UTC 2009 (1)\n" "Tue Aug 25 00:21:21 UTC 2009\n" "Tue Aug 25 00:21:21 UTC 2009\n" "Tue Aug 25 00:21:21 UTC 2009\n" "Mon Aug 24 23:46:47 UTC 2009\n" "\n" "FreeBSD/amd64 7.2-RELEASE initialization build complete. Please\n" "review the list of build stamps printed above to confirm that\n" "they look sensible, then run\n" "# sh -e approve.sh amd64 7.2-RELEASE\n" "to sign the release." msgstr "" #. (itstool) path: sect1/para #: article.translate.xml:453 msgid "" "Approve the build if everything is correct. More information on determining " "this can be found in the distributed source file named USAGE. Execute scripts/approve.sh, as directed. " "This will sign the release, and move components into a staging area suitable " "for uploading." msgstr "" #. (itstool) path: informalexample/screen #: article.translate.xml:461 #, no-wrap msgid "" "# cd /usr/local/freebsd-update-server\n" "# sh scripts/mountkey.sh" msgstr "" #. (itstool) path: sect1/screen #: article.translate.xml:465 #, no-wrap msgid "" "# sh -e scripts/approve.sh amd64 7.2-RELEASE\n" "Wed Aug 26 12:50:06 PDT 2009 Signing build for FreeBSD/amd64 7.2-RELEASE\n" "Wed Aug 26 12:50:06 PDT 2009 Copying files to patch source directories for " "FreeBSD/amd64 7.2-RELEASE\n" "Wed Aug 26 12:50:06 PDT 2009 Copying files to upload staging area for " "FreeBSD/amd64 7.2-RELEASE\n" "Wed Aug 26 12:50:07 PDT 2009 Updating databases for FreeBSD/amd64 7.2-" "RELEASE\n" "Wed Aug 26 12:50:07 PDT 2009 Cleaning staging area for FreeBSD/amd64 7.2-" "RELEASE" msgstr "" #. (itstool) path: sect1/para #: article.translate.xml:472 msgid "" "After the approval process is complete, the upload procedure may be started." msgstr "" #. (itstool) path: informalexample/screen #: article.translate.xml:476 #, no-wrap msgid "" "# cd /usr/local/freebsd-update-server\n" "# sh scripts/upload.sh amd64 7.2-" "RELEASE" msgstr "" #. (itstool) path: note/para #: article.translate.xml:481 msgid "" "In the event update code needs to be re-uploaded, this may be done by " "changing to the public distributions directory for the target release and " "updating attributes of the uploaded file." msgstr "" #. (itstool) path: informalexample/screen #: article.translate.xml:487 #, no-wrap msgid "" "# cd /usr/local/freebsd-update-server/pub/" "7.2-RELEASE/amd64\n" "# touch -t 200801010101.01 uploaded" msgstr "" #. (itstool) path: sect1/para #: article.translate.xml:496 msgid "" "The uploaded files will need to be in the document root of the webserver in " "order for updates to be distributed. The exact configuration will vary " "depending on the web server used. For the Apache " "web server, please refer to the Configuration of Apache " "servers section in the Handbook." msgstr "" #. (itstool) path: sect1/para #: article.translate.xml:523 msgid "" "Update client's KeyPrint and ServerName in /etc/freebsd-update.conf, and perform " "updates as instructed in the FreeBSD " "Update section of the Handbook." msgstr "" #. (itstool) path: important/para #: article.translate.xml:539 msgid "" "In order for FreeBSD Update Server to work " "properly, updates for both the current release and the " "release one wants to upgrade to need to be built. This " "is necessary for determining the differences of files between releases. For " "example, when upgrading a FreeBSD system from 7.1-RELEASE to 7.2-RELEASE, " "updates will need to be built and uploaded to your distribution server for " "both versions." msgstr "" #. (itstool) path: sect1/para #: article.translate.xml:550 msgid "" "For reference, the entire run of init.sh is attached." msgstr "" #. (itstool) path: sect1/title #: article.translate.xml:555 msgid "Building a Patch" msgstr "" #. (itstool) path: sect1/para #: article.translate.xml:557 msgid "" "Every time a security advisory or security notice is announced, a patch update " "can be built." msgstr "" #. (itstool) path: sect1/para #: article.translate.xml:562 msgid "For this example, 7.1-RELEASE will be used." msgstr "" #. (itstool) path: sect1/para #: article.translate.xml:564 msgid "A couple of assumptions are made for a different release build:" msgstr "" #. (itstool) path: listitem/para #: article.translate.xml:569 msgid "Setup the correct directory structure for the initial build." msgstr "" #. (itstool) path: listitem/para #: article.translate.xml:574 msgid "Perform an initial build for 7.1-RELEASE." msgstr "" #. (itstool) path: sect1/para #: article.translate.xml:578 msgid "" "Create the patch directory of the respective release under /usr/" "local/freebsd-update-server/patches/." msgstr "" #. (itstool) path: informalexample/screen #: article.translate.xml:582 #, no-wrap msgid "" "% mkdir -p /usr/local/freebsd-update-server/" "patches/7.1-RELEASE/\n" "% cd /usr/local/freebsd-update-server/patches/7." "1-RELEASE" msgstr "" #. (itstool) path: sect1/para #: article.translate.xml:586 msgid "" "As an example, take the patch for named8. Read the advisory, " "and grab the necessary file from FreeBSD Security Advisories. More " "information on interpreting the advisory, can be found in the FreeBSD Handbook." msgstr "" #. (itstool) path: sect1/para #: article.translate.xml:592 msgid "" "In the security brief, this advisory is called SA-" "09:12.bind. After downloading the file, it is required to rename " "the file to an appropriate patch level. It is suggested to keep this " "consistent with official FreeBSD patch levels, but its name may be freely " "chosen. For this build, let us follow the currently established practice of " "FreeBSD and call this p7. Rename the file:" msgstr "" #. (itstool) path: informalexample/screen #: article.translate.xml:602 #, no-wrap msgid "" "% cd /usr/local/freebsd-update-server/patches/7." "1-RELEASE/; mv bind.patch 7-SA-09:12.bind " msgstr "" #. (itstool) path: note/para #: article.translate.xml:606 msgid "" "When running a patch level build, it is assumed that previous patches are in " "place. When a patch build is run, it will run all patches contained in the " "patch directory." msgstr "" #. (itstool) path: note/para #: article.translate.xml:610 msgid "" "There can be custom patches added to any build. Use the number zero, or any " "other number." msgstr "" #. (itstool) path: warning/para #: article.translate.xml:615 msgid "" "It is up to the administrator of the FreeBSD Update Server to take appropriate measures to verify the authenticity of " "every patch." msgstr "" #. (itstool) path: sect1/para #: article.translate.xml:621 msgid "" "At this point, a diff is ready to be built. The " "software checks first to see if a scripts/init.sh has " "been run on the respective release prior to running the diff build." msgstr "" #. (itstool) path: informalexample/screen #: article.translate.xml:627 #, no-wrap msgid "" "# cd /usr/local/freebsd-update-server\n" "# sh scripts/diff.sh amd64 7.1-" "RELEASE 7" msgstr "" #. (itstool) path: sect1/para #: article.translate.xml:631 msgid "" "What follows is a sample of a differential build run." msgstr "" #. (itstool) path: sect1/screen #: article.translate.xml:634 #, no-wrap msgid "" "# sh -e scripts/diff.sh amd64 7.1-RELEASE 7\n" "Wed Aug 26 10:09:59 PDT 2009 Extracting world+src for FreeBSD/amd64 7.1-" "RELEASE-p7\n" "Wed Aug 26 17:10:25 UTC 2009 Building world for FreeBSD/amd64 7.1-RELEASE-p7\n" "Wed Aug 26 18:05:11 UTC 2009 Distributing world for FreeBSD/amd64 7.1-" "RELEASE-p7\n" "Wed Aug 26 18:06:16 UTC 2009 Building and distributing kernels for FreeBSD/" "amd64 7.1-RELEASE-p7\n" "Wed Aug 26 18:17:50 UTC 2009 Constructing world components for FreeBSD/amd64 " "7.1-RELEASE-p7\n" "Wed Aug 26 18:18:02 UTC 2009 Distributing source for FreeBSD/amd64 7.1-" "RELEASE-p7\n" "Wed Aug 26 11:19:23 PDT 2009 Moving components into staging area for FreeBSD/" "amd64 7.1-RELEASE-p7\n" "Wed Aug 26 11:19:37 PDT 2009 Extracting extra docs for FreeBSD/amd64 7.1-" "RELEASE-p7\n" "Wed Aug 26 11:19:42 PDT 2009 Indexing world0 for FreeBSD/amd64 7.1-RELEASE-" "p7\n" "Wed Aug 26 11:23:02 PDT 2009 Extracting world+src for FreeBSD/amd64 7.1-" "RELEASE-p7\n" "Thu Sep 30 18:23:29 UTC 2010 Building world for FreeBSD/amd64 7.1-RELEASE-p7\n" "Thu Sep 30 19:18:15 UTC 2010 Distributing world for FreeBSD/amd64 7.1-" "RELEASE-p7\n" "Thu Sep 30 19:19:18 UTC 2010 Building and distributing kernels for FreeBSD/" "amd64 7.1-RELEASE-p7\n" "Thu Sep 30 19:30:52 UTC 2010 Constructing world components for FreeBSD/amd64 " "7.1-RELEASE-p7\n" "Thu Sep 30 19:31:03 UTC 2010 Distributing source for FreeBSD/amd64 7.1-" "RELEASE-p7\n" "Thu Sep 30 12:32:25 PDT 2010 Moving components into staging area for FreeBSD/" "amd64 7.1-RELEASE-p7\n" "Wed Aug 26 12:32:39 PDT 2009 Extracting extra docs for FreeBSD/amd64 7.1-" "RELEASE-p7\n" "Wed Aug 26 12:32:43 PDT 2009 Indexing world1 for FreeBSD/amd64 7.1-RELEASE-" "p7\n" "Wed Aug 26 12:35:54 PDT 2009 Locating build stamps for FreeBSD/amd64 7.1-" "RELEASE-p7\n" "Wed Aug 26 12:36:58 PDT 2009 Reverting changes due to build stamps for " "FreeBSD/amd64 7.1-RELEASE-p7\n" "Wed Aug 26 12:37:14 PDT 2009 Cleaning staging area for FreeBSD/amd64 7.1-" "RELEASE-p7\n" "Wed Aug 26 12:37:14 PDT 2009 Preparing to copy files into staging area for " "FreeBSD/amd64 7.1-RELEASE-p7\n" "Wed Aug 26 12:37:15 PDT 2009 Copying data files into staging area for " "FreeBSD/amd64 7.1-RELEASE-p7\n" "Wed Aug 26 12:43:23 PDT 2009 Copying metadata files into staging area for " "FreeBSD/amd64 7.1-RELEASE-p7\n" "Wed Aug 26 12:43:25 PDT 2009 Constructing metadata index and tag for FreeBSD/" "amd64 7.1-RELEASE-p7\n" "...\n" "Files found which include build stamps:\n" "kernel|generic|/GENERIC/hptrr.ko\n" "kernel|generic|/GENERIC/kernel\n" "world|base|/boot/loader\n" "world|base|/boot/pxeboot\n" "world|base|/etc/mail/freebsd.cf\n" "world|base|/etc/mail/freebsd.submit.cf\n" "world|base|/etc/mail/sendmail.cf\n" "world|base|/etc/mail/submit.cf\n" "world|base|/lib/libcrypto.so.5\n" "world|base|/usr/bin/ntpq\n" "world|base|/usr/include/osreldate.h\n" "world|base|/usr/lib/libalias.a\n" "world|base|/usr/lib/libalias_cuseeme.a\n" "world|base|/usr/lib/libalias_dummy.a\n" "world|base|/usr/lib/libalias_ftp.a\n" "...\n" "Values of build stamps, excluding library archive headers:\n" "v1.2 (Aug 26 2009 18:13:46)\n" "v1.2 (Aug 26 2009 18:11:44)\n" "@(#)FreeBSD 7.1-RELEASE-p7 #0: Wed Aug 26 18:11:50 UTC 2009\n" "FreeBSD 7.1-RELEASE-p7 #0: Wed Aug 26 18:11:50 UTC 2009\n" " root@server.myhost.com:/usr/obj/usr/src/sys/GENERIC\n" "7.1-RELEASE-p7\n" "Wed Aug 26 17:29:15 UTC 2009\n" "Wed Aug 26 17:29:15 UTC 2009\n" "##### built by root@server.myhost.com on Wed Aug 26 17:49:58 UTC 2009\n" "##### built by root@server.myhost.com on Wed Aug 26 17:49:58 UTC 2009\n" "##### built by root@server.myhost.com on Wed Aug 26 17:49:58 UTC 2009\n" "##### built by root@server.myhost.com on Wed Aug 26 17:49:58 UTC 2009\n" "Wed Aug 26 17:20:39 UTC 2009\n" "ntpq 4.2.4p5-a Wed Aug 26 17:29:42 UTC 2009 (1)\n" " * Copyright (c) 1992-2009 The FreeBSD Project.\n" "Wed Aug 26 17:20:39 UTC 2009\n" "Wed Aug 26 17:29:30 UTC 2009\n" "Aug 26 2009\n" "ntpd 4.2.4p5-a Wed Aug 26 17:29:41 UTC 2009 (1)\n" "ntpdate 4.2.4p5-a Wed Aug 26 17:29:42 UTC 2009 (1)\n" "ntpdc 4.2.4p5-a Wed Aug 26 17:29:42 UTC 2009 (1)\n" "Wed Aug 26 17:55:02 UTC 2009\n" "Wed Aug 26 17:55:02 UTC 2009\n" "Wed Aug 26 17:55:02 UTC 2009\n" "Wed Aug 26 17:20:39 UTC 2009\n" "..." msgstr "" #. (itstool) path: sect1/para #: article.translate.xml:706 msgid "Updates are printed, and approval is requested." msgstr "" #. (itstool) path: sect1/screen #: article.translate.xml:708 #, no-wrap msgid "" "New updates:\n" "kernel|generic|/GENERIC/kernel." "symbols|f|0|0|0555|0|7c8dc176763f96ced0a57fc04e7c1b8d793f27e006dd13e0b499e1474ac47e10|\n" "kernel|generic|/GENERIC/" "kernel|f|0|0|0555|0|33197e8cf15bbbac263d17f39c153c9d489348c2c534f7ca1120a1183dec67b1|\n" "kernel|generic|/|d|0|0|0755|0||\n" "src|base|/|d|0|0|0755|0||\n" "src|bin|/|d|0|0|0755|0||\n" "src|cddl|/|d|0|0|0755|0||\n" "src|contrib|/contrib/bind9/bin/named/update." "c|f|0|10000|0644|0|4d434abf0983df9bc47435670d307fa882ef4b348ed8ca90928d250f42ea0757|\n" "src|contrib|/contrib/bind9/lib/dns/openssldsa_link." "c|f|0|10000|0644|0|c6805c39f3da2a06dd3f163f26c314a4692d4cd9a2d929c0acc88d736324f550|\n" "src|contrib|/contrib/bind9/lib/dns/opensslrsa_link." "c|f|0|10000|0644|0|fa0f7417ee9da42cc8d0fd96ad24e7a34125e05b5ae075bd6e3238f1c022a712|\n" "...\n" "FreeBSD/amd64 7.1-RELEASE update build complete. Please review\n" "the list of build stamps printed above and the list of updated\n" "files to confirm that they look sensible, then run\n" "# sh -e approve.sh amd64 7.1-RELEASE\n" "to sign the build." msgstr "" #. (itstool) path: sect1/para #: article.translate.xml:725 msgid "Follow the same process as noted before for approving a build:" msgstr "" #. (itstool) path: sect1/screen #: article.translate.xml:728 #, no-wrap msgid "" "# sh -e scripts/approve.sh amd64 7.1-RELEASE\n" "Wed Aug 26 12:50:06 PDT 2009 Signing build for FreeBSD/amd64 7.1-RELEASE\n" "Wed Aug 26 12:50:06 PDT 2009 Copying files to patch source directories for " "FreeBSD/amd64 7.1-RELEASE\n" "Wed Aug 26 12:50:06 PDT 2009 Copying files to upload staging area for " "FreeBSD/amd64 7.1-RELEASE\n" "Wed Aug 26 12:50:07 PDT 2009 Updating databases for FreeBSD/amd64 7.1-" "RELEASE\n" "Wed Aug 26 12:50:07 PDT 2009 Cleaning staging area for FreeBSD/amd64 7.1-" "RELEASE\n" "\n" "The FreeBSD/amd64 7.1-RELEASE update build has been signed and is\n" "ready to be uploaded. Remember to run\n" "# sh -e umountkey.sh\n" "to unmount the decrypted key once you have finished signing all\n" "the new builds." msgstr "" #. (itstool) path: sect1/para #: article.translate.xml:741 msgid "After approving the build, upload the software:" msgstr "" #. (itstool) path: informalexample/screen #: article.translate.xml:744 #, no-wrap msgid "" "# cd /usr/local/freebsd-update-server\n" "# sh scripts/upload.sh amd64 7.1-" "RELEASE" msgstr "" #. (itstool) path: sect1/para #: article.translate.xml:748 msgid "" "For reference, the entire run of diff.sh is attached." msgstr "" #. (itstool) path: sect1/title #: article.translate.xml:753 msgid "Tips" msgstr "" #. (itstool) path: listitem/para #: article.translate.xml:774 msgid "" "If a custom release is built using the native make release procedure, freebsd-update-" "server code will work from your release. As an example, a " "release without ports or documentation can be built by clearing " "functionality pertaining to documentation subroutines " "findextradocs (), addextradocs () and " "altering the download location in fetchiso (), " "respectively, in scripts/build.subr. As a last step, " "change the sha2561 hash in build.conf under your " "respective release and architecture and you are ready to build off your " "custom release." msgstr "" #. (itstool) path: listitem/programlisting #: article.translate.xml:789 #, no-wrap msgid "" "# Compare ${WORKDIR}/release and ${WORKDIR}/$1, identify which parts\n" "# of the world|doc subcomponent are missing from the latter, and\n" "# build a tarball out of them.\n" "findextradocs () {\n" "}\n" "\n" "# Add extra docs to ${WORKDIR}/$1\n" "addextradocs () { \n" "}" msgstr "" #. (itstool) path: para/buildtarget #: article.translate.xml:802 msgid "buildworld" msgstr "" #. (itstool) path: para/buildtarget #: article.translate.xml:803 msgid "obj" msgstr "" #. (itstool) path: listitem/para #: article.translate.xml:800 msgid "" "Adding flags to <_:" "buildtarget-1/> and <_:buildtarget-2/> targets in the scripts/" "build.subr script may speed up processing depending on the " "hardware used, however it is not necessary. Using these flags in other " "targets is not recommended, as it may cause the build to become unreliable." msgstr "" #. (itstool) path: listitem/programlisting #: article.translate.xml:810 #, no-wrap msgid "" " # Build the world\n" " log \"Building world\"\n" " cd /usr/src &&\n" " make -j 2 ${COMPATFLAGS} buildworld 2>&1\n" "\n" " # Distribute the world\n" " log \"Distributing world\"\n" " cd /usr/src/release &&\n" " make -j 2 obj &&\n" " make ${COMPATFLAGS} release.1 release.2 2>&1" msgstr "" #. (itstool) path: listitem/para #: article.translate.xml:823 msgid "" "Create an appropriate DNS SRV record for the update " "server, and put others behind it with variable weights. Using this facility " "will provide update mirrors, however this tip is not necessary unless you " "wish to provide a redundant service." msgstr "" #. (itstool) path: listitem/programlisting #: article.translate.xml:829 #, no-wrap msgid "" "_http._tcp.update.myserver.com. IN SRV 0 2 80 host1.myserver.com.\n" " IN SRV 0 1 80 host2.myserver.com.\n" " IN SRV 0 0 80 host3.myserver.com." msgstr ""