# $FreeBSD$
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"POT-Creation-Date: 2020-07-26 09:01-0300\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"Language: en_US\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 <EMAIL>, 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 <email>jgh@FreeBSD.org</email>"
msgstr ""

#. (itstool) path: info/author
#: article.translate.xml:10
msgid ""
"<personname> <firstname>Jason</firstname> <surname>Helfman</surname> </"
"personname> <affiliation> <_:address-1/> </affiliation>"
msgstr ""

#. (itstool) path: info/copyright
#: article.translate.xml:20
msgid ""
"<year>2009</year> <year>2010</year> <year>2011</year> <year>2013</year> "
"<holder role=\"mailto:jgh@FreeBSD.org\">Jason Helfman</holder>"
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 <quote>™</quote> or the <quote>®</"
"quote> 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 "
"54301 2020-06-28 07:16:58Z carlavilla $"
msgstr ""

#. (itstool) path: abstract/para
#: article.translate.xml:51
msgid ""
"This article describes building an internal <application>FreeBSD Update "
"Server</application>. The <link xlink:href=\"https://svnweb.freebsd.org/base/"
"user/cperciva/freebsd-update-build/\">freebsd-update-server</link> is "
"written by Colin Percival <email>cperciva@FreeBSD.org</email>, Security "
"Officer Emeritus of FreeBSD. For users that think it is convenient to update "
"their systems against an official update server, building their own "
"<application>FreeBSD Update Server</application> 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 <link xlink:href=\"https://people."
"freebsd.org/~jgh/files/fus/BSD_03_2010_EN.pdf\">BSD Magazine</link>."
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 "
"<application>FreeBSD Update Server</application> 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 "
"<application>FreeBSD Update Server</application>."
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 <application>FreeBSD Update Server</application> 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 <citerefentry><refentrytitle>ssh</refentrytitle><manvolnum>1</manvolnum></"
"citerefentry> account on a remote machine to upload distributed updates."
msgstr ""

#. (itstool) path: listitem/para
#: article.translate.xml:120
msgid ""
"A web server, like <link xlink:href=\"@@URL_RELPREFIX@@/doc/en_US.ISO8859-1/"
"books/handbook/network-apache.html\">Apache</link>, 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, "
"<citerefentry><refentrytitle>sh</refentrytitle><manvolnum>1</manvolnum></"
"citerefentry>."
msgstr ""

#. (itstool) path: sect1/title
#: article.translate.xml:136
msgid "Configuration: Installation &amp; Setup"
msgstr ""

#. (itstool) path: sect1/para
#: article.translate.xml:138
msgid ""
"Download the <link xlink:href=\"https://svnweb.freebsd.org/base/user/"
"cperciva/freebsd-update-build/\"> freebsd-update-server</link> software by "
"installing <package>devel/subversion</package> and <package>security/"
"ca_root_nss</package>, and execute:"
msgstr ""

#. (itstool) path: sect1/screen
#: article.translate.xml:143
#, no-wrap
msgid "<prompt>%</prompt> <userinput>svn co https://svn.freebsd.org/base/user/cperciva/freebsd-update-build freebsd-update-server</userinput>"
msgstr ""

#. (itstool) path: sect1/para
#: article.translate.xml:145
msgid ""
"Update <filename>scripts/build.conf</filename> appropriately. It is sourced "
"during all build operations."
msgstr ""

#. (itstool) path: sect1/para
#: article.translate.xml:149
msgid ""
"Here is the default <filename>build.conf</filename>, 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<co xml:id=\"ftp-id\"/>\n"
"\n"
"# Host platform\n"
"export HOSTPLATFORM=`uname -m`\n"
"\n"
"# Host name to use inside jails\n"
"export BUILDHOSTNAME=${HOSTPLATFORM}-builder.daemonology.net<co xml:id=\"buildhost-id\"/>\n"
"\n"
"# Location of SSH key\n"
"export SSHKEY=/root/.ssh/id_dsa<co xml:id=\"sshkey-id\"/>\n"
"\n"
"# SSH account into which files are uploaded\n"
"MASTERACCT=builder@wadham.daemonology.net<co xml:id=\"mstacct-id\"/>\n"
"\n"
"# Directory into which files are uploaded\n"
"MASTERDIR=update-master.freebsd.org<co xml:id=\"mstdir-id\"/>"
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 "
"<function>fetchiso()</function> subroutine of <filename>scripts/build.subr</"
"filename>). The location configured is not limited to FTP URIs. Any URI "
"scheme supported by standard <citerefentry><refentrytitle>fetch</"
"refentrytitle><manvolnum>1</manvolnum></citerefentry> utility should work "
"fine."
msgstr ""

#. (itstool) path: callout/para
#: article.translate.xml:187
msgid ""
"Customizations to the <function>fetchiso()</function> code can be installed "
"by copying the default <filename>build.subr</filename> script to the release "
"and architecture-specific area at <filename>scripts/RELEASE/ARCHITECTURE/"
"build.subr</filename> 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 "<prompt>%</prompt> <userinput>uname -v</userinput>"
msgstr ""

#. (itstool) path: callout/para
#: article.translate.xml:203
msgid ""
"The <application>SSH</application> key for uploading files to the update "
"server. A key pair can be created by typing <command>ssh-keygen -t dsa</"
"command>. This parameter is optional; standard password authentication will "
"be used as a fallback authentication method when <literal>SSHKEY</literal> "
"is not defined."
msgstr ""

#. (itstool) path: callout/para
#: article.translate.xml:210
msgid ""
"The <citerefentry><refentrytitle>ssh-keygen</refentrytitle><manvolnum>1</"
"manvolnum></citerefentry> manual page has more detailed information about "
"<application>SSH</application> 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 <filename>build.conf</filename> shipped with the "
"<application>freebsd-update-server</application> 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 "<prompt>%</prompt> <userinput>mkdir -p /usr/local/freebsd-update-server/scripts/7.2-RELEASE/amd64</userinput>"
msgstr ""

#. (itstool) path: step/para
#: article.translate.xml:242
msgid ""
"Install a <filename>build.conf</filename> 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<co xml:id=\"sha256-id\"/>\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<co xml:id=\"eol-id\"/>"
msgstr ""

#. (itstool) path: callout/para
#: article.translate.xml:264
msgid ""
"The <citerefentry><refentrytitle>sha256</refentrytitle><manvolnum>1</"
"manvolnum></citerefentry> hash key for the desired release, is published "
"within the respective <link xlink:href=\"@@URL_RELPREFIX@@/releases/"
"\">release announcement</link>."
msgstr ""

#. (itstool) path: callout/para
#: article.translate.xml:270
msgid ""
"To generate the \"End of Life\" number for <filename>build.conf</filename>, "
"refer to the \"Estimated EOL\" posted on the <link xlink:href="
"\"@@URL_RELPREFIX@@/security/security.html\">FreeBSD Security Website</"
"link>. The value of <literal>EOL</literal> can be derived from the date "
"listed on the web site, using the <citerefentry><refentrytitle>date</"
"refentrytitle><manvolnum>1</manvolnum></citerefentry> utility, for example:"
msgstr ""

#. (itstool) path: callout/screen
#: article.translate.xml:277
#, no-wrap
msgid "<prompt>%</prompt> <userinput>date -j -f '%Y%m%d-%H%M%S' '20090401-000000' '+%s'</userinput>"
msgstr ""

#. (itstool) path: sect1/title
#: article.translate.xml:285
msgid "Building Update Code"
msgstr ""

#. (itstool) path: sect1/para
#: article.translate.xml:287
msgid ""
"The first step is to run <filename>scripts/make.sh</filename>. 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:293
#, no-wrap
msgid ""
"<prompt>#</prompt> <userinput>sh scripts/make.sh</userinput>\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:314
msgid ""
"Keep a note of the generated key fingerprint. This value is required in "
"<filename>/etc/freebsd-update.conf</filename> for binary updates."
msgstr ""

#. (itstool) path: sect1/para
#: article.translate.xml:319
msgid "At this point, we are ready to stage a build."
msgstr ""

#. (itstool) path: informalexample/screen
#: article.translate.xml:322
#, no-wrap
msgid ""
"<prompt>#</prompt> <userinput>cd /usr/local/freebsd-update-server</userinput>\n"
"<prompt>#</prompt> <userinput>sh scripts/init.sh <replaceable>amd64 7.2-RELEASE</replaceable></userinput>"
msgstr ""

#. (itstool) path: sect1/para
#: article.translate.xml:326
msgid "What follows is a sample of an <emphasis>initial</emphasis> build run."
msgstr ""

#. (itstool) path: sect1/screen
#: article.translate.xml:329
#, no-wrap
msgid ""
"<prompt>#</prompt> <userinput>sh scripts/init.sh amd64 7.2-RELEASE</userinput>\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:368
msgid ""
"Then the build of the world is performed again, with world patches. A more "
"detailed explanation may be found in <filename>scripts/build.subr</filename>."
msgstr ""

#. (itstool) path: warning/para
#: article.translate.xml:373
msgid ""
"During this second build cycle, the network time protocol daemon, "
"<citerefentry><refentrytitle>ntpd</refentrytitle><manvolnum>8</manvolnum></"
"citerefentry>, is turned off. Per Colin Percival <email>cperciva@FreeBSD."
"org</email>, Security Officer Emeritus of FreeBSD, \"the <link xlink:href="
"\"https://svnweb.freebsd.org/base/user/cperciva/freebsd-update-build/"
"\">freebsd-update-server</link> 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:383
#, 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:417
msgid "Finally, the build completes."
msgstr ""

#. (itstool) path: sect1/screen
#: article.translate.xml:419
#, 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:452
msgid ""
"Approve the build if everything is correct. More information on determining "
"this can be found in the distributed source file named <filename>USAGE</"
"filename>. Execute <filename>scripts/approve.sh</filename>, 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:460
#, no-wrap
msgid ""
"<prompt>#</prompt> <userinput>cd /usr/local/freebsd-update-server</userinput>\n"
"<prompt>#</prompt> <userinput>sh scripts/mountkey.sh</userinput>"
msgstr ""

#. (itstool) path: sect1/screen
#: article.translate.xml:464
#, no-wrap
msgid ""
"<prompt>#</prompt> <userinput>sh -e scripts/approve.sh amd64 7.2-RELEASE</userinput>\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:471
msgid ""
"After the approval process is complete, the upload procedure may be started."
msgstr ""

#. (itstool) path: informalexample/screen
#: article.translate.xml:475
#, no-wrap
msgid ""
"<prompt>#</prompt> <userinput>cd /usr/local/freebsd-update-server</userinput>\n"
"<prompt>#</prompt> <userinput>sh scripts/upload.sh <replaceable>amd64 7.2-RELEASE</replaceable></userinput>"
msgstr ""

#. (itstool) path: note/para
#: article.translate.xml:480
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 <emphasis>uploaded</emphasis> file."
msgstr ""

#. (itstool) path: informalexample/screen
#: article.translate.xml:486
#, no-wrap
msgid ""
"<prompt>#</prompt> <userinput>cd /usr/local/freebsd-update-server/pub/<replaceable>7.2-RELEASE/amd64</replaceable></userinput>\n"
"<prompt>#</prompt> <userinput>touch -t <replaceable>200801010101.01</replaceable> uploaded</userinput>"
msgstr ""

#. (itstool) path: sect1/para
#: article.translate.xml:495
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 <application>Apache</application> "
"web server, please refer to the <link xlink:href=\"@@URL_RELPREFIX@@/doc/"
"en_US.ISO8859-1/books/handbook/network-apache.html\">Configuration of Apache "
"servers</link> section in the Handbook."
msgstr ""

#. (itstool) path: sect1/para
#: article.translate.xml:522
msgid ""
"Update client's <literal>KeyPrint</literal> and <literal>ServerName</"
"literal> in <filename>/etc/freebsd-update.conf</filename>, and perform "
"updates as instructed in the <link xlink:href=\"@@URL_RELPREFIX@@/doc/en_US."
"ISO8859-1/books/handbook/updating-upgrading-freebsdupdate.html\">FreeBSD "
"Update</link> section of the Handbook."
msgstr ""

#. (itstool) path: important/para
#: article.translate.xml:538
msgid ""
"In order for <application>FreeBSD Update Server</application> to work "
"properly, updates for both the <emphasis>current</emphasis> release and the "
"release <emphasis>one wants to upgrade to</emphasis> 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:549
msgid ""
"For reference, the entire run of <link xlink:href=\"init.txt"
"\"><filename>init.sh</filename></link> is attached."
msgstr ""

#. (itstool) path: sect1/title
#: article.translate.xml:554
msgid "Building a Patch"
msgstr ""

#. (itstool) path: sect1/para
#: article.translate.xml:556
msgid ""
"Every time a <link xlink:href=\"@@URL_RELPREFIX@@/security/advisories.html"
"\">security advisory</link> or <link xlink:href=\"@@URL_RELPREFIX@@/security/"
"notices.html\">security notice</link> is announced, a patch update can be "
"built."
msgstr ""

#. (itstool) path: sect1/para
#: article.translate.xml:561
msgid "For this example, 7.1-RELEASE will be used."
msgstr ""

#. (itstool) path: sect1/para
#: article.translate.xml:563
msgid "A couple of assumptions are made for a different release build:"
msgstr ""

#. (itstool) path: listitem/para
#: article.translate.xml:568
msgid "Setup the correct directory structure for the initial build."
msgstr ""

#. (itstool) path: listitem/para
#: article.translate.xml:573
msgid "Perform an initial build for 7.1-RELEASE."
msgstr ""

#. (itstool) path: sect1/para
#: article.translate.xml:577
msgid ""
"Create the patch directory of the respective release under <filename>/usr/"
"local/freebsd-update-server/patches/</filename>."
msgstr ""

#. (itstool) path: informalexample/screen
#: article.translate.xml:581
#, no-wrap
msgid ""
"<prompt>%</prompt> <userinput>mkdir -p /usr/local/freebsd-update-server/patches/7.1-RELEASE/</userinput>\n"
"<prompt>%</prompt> <userinput>cd /usr/local/freebsd-update-server/patches/7.1-RELEASE</userinput>"
msgstr ""

#. (itstool) path: sect1/para
#: article.translate.xml:585
msgid ""
"As an example, take the patch for <citerefentry><refentrytitle>named</"
"refentrytitle><manvolnum>8</manvolnum></citerefentry>. Read the advisory, "
"and grab the necessary file from <link xlink:href=\"@@URL_RELPREFIX@@/"
"security/advisories.html\">FreeBSD Security Advisories</link>. More "
"information on interpreting the advisory, can be found in the <link xlink:"
"href=\"@@URL_RELPREFIX@@/doc/en_US.ISO8859-1/books/handbook/security-"
"advisories.html\">FreeBSD Handbook</link>."
msgstr ""

#. (itstool) path: sect1/para
#: article.translate.xml:591
msgid ""
"In the <link xlink:href=\"https://security.freebsd.org/advisories/FreeBSD-"
"SA-09:12.bind.asc\">security brief</link>, this advisory is called "
"<literal>SA-09:12.bind</literal>. 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 <literal>p7</literal>. Rename the file:"
msgstr ""

#. (itstool) path: informalexample/screen
#: article.translate.xml:601
#, no-wrap
msgid "<prompt>%</prompt> <userinput>cd /usr/local/freebsd-update-server/patches/7.1-RELEASE/; mv bind.patch 7-SA-09:12.bind </userinput>"
msgstr ""

#. (itstool) path: note/para
#: article.translate.xml:605
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:609
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:614
msgid ""
"It is up to the administrator of the <application>FreeBSD Update Server</"
"application> to take appropriate measures to verify the authenticity of "
"every patch."
msgstr ""

#. (itstool) path: sect1/para
#: article.translate.xml:620
msgid ""
"At this point, a <emphasis>diff</emphasis> is ready to be built. The "
"software checks first to see if a <filename>scripts/init.sh</filename> has "
"been run on the respective release prior to running the diff build."
msgstr ""

#. (itstool) path: informalexample/screen
#: article.translate.xml:626
#, no-wrap
msgid ""
"<prompt>#</prompt> <userinput>cd /usr/local/freebsd-update-server</userinput>\n"
"<prompt>#</prompt> <userinput>sh scripts/diff.sh <replaceable>amd64 7.1-RELEASE 7</replaceable></userinput>"
msgstr ""

#. (itstool) path: sect1/para
#: article.translate.xml:630
msgid ""
"What follows is a sample of a <emphasis>differential</emphasis> build run."
msgstr ""

#. (itstool) path: sect1/screen
#: article.translate.xml:633
#, no-wrap
msgid ""
"<prompt>#</prompt> <userinput>sh -e scripts/diff.sh amd64 7.1-RELEASE 7</userinput>\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:705
msgid "Updates are printed, and approval is requested."
msgstr ""

#. (itstool) path: sect1/screen
#: article.translate.xml:707
#, 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:724
msgid "Follow the same process as noted before for approving a build:"
msgstr ""

#. (itstool) path: sect1/screen
#: article.translate.xml:727
#, no-wrap
msgid ""
"<prompt>#</prompt> <userinput>sh -e scripts/approve.sh amd64 7.1-RELEASE</userinput>\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:740
msgid "After approving the build, upload the software:"
msgstr ""

#. (itstool) path: informalexample/screen
#: article.translate.xml:743
#, no-wrap
msgid ""
"<prompt>#</prompt> <userinput>cd /usr/local/freebsd-update-server</userinput>\n"
"<prompt>#</prompt> <userinput>sh scripts/upload.sh <replaceable>amd64 7.1-RELEASE</replaceable></userinput>"
msgstr ""

#. (itstool) path: sect1/para
#: article.translate.xml:747
msgid ""
"For reference, the entire run of <link xlink:href=\"diff.txt"
"\"><filename>diff.sh</filename></link> is attached."
msgstr ""

#. (itstool) path: sect1/title
#: article.translate.xml:752
msgid "Tips"
msgstr ""

#. (itstool) path: listitem/para
#: article.translate.xml:773
msgid ""
"If a custom release is built using the native <command>make release</"
"command> <link xlink:href=\"@@URL_RELPREFIX@@/doc/en_US.ISO8859-1/articles/"
"releng/release-build.html\">procedure</link>, <application>freebsd-update-"
"server</application> 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 <function> "
"findextradocs ()</function>, <function>addextradocs ()</function> and "
"altering the download location in <function>fetchiso ()</function>, "
"respectively, in <filename>scripts/build.subr</filename>. As a last step, "
"change the <citerefentry><refentrytitle>sha256</refentrytitle><manvolnum>1</"
"manvolnum></citerefentry> hash in <filename>build.conf</filename> under your "
"respective release and architecture and you are ready to build off your "
"custom release."
msgstr ""

#. (itstool) path: listitem/programlisting
#: article.translate.xml:788
#, 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:801
msgid "buildworld"
msgstr ""

#. (itstool) path: para/buildtarget
#: article.translate.xml:802
msgid "obj"
msgstr ""

#. (itstool) path: listitem/para
#: article.translate.xml:799
msgid ""
"Adding <option>-j <replaceable>NUMBER</replaceable></option> flags to <_:"
"buildtarget-1/> and <_:buildtarget-2/> targets in the <filename>scripts/"
"build.subr</filename> 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:809
#, no-wrap
msgid ""
"              # Build the world\n"
"\t\t   log \"Building world\"\n"
"\t\t   cd /usr/src &amp;&amp;\n"
"\t\t   make -j 2 ${COMPATFLAGS} buildworld 2&gt;&amp;1\n"
"\n"
"\t\t# Distribute the world\n"
"\t\t   log \"Distributing world\"\n"
"\t\t   cd /usr/src/release &amp;&amp;\n"
"\t\t   make -j 2 obj &amp;&amp;\n"
"\t\t   make ${COMPATFLAGS} release.1 release.2 2&gt;&amp;1"
msgstr ""

#. (itstool) path: listitem/para
#: article.translate.xml:822
msgid ""
"Create an appropriate <link xlink:href=\"@@URL_RELPREFIX@@/doc/en_US."
"ISO8859-1/books/handbook/network-dns.html\">DNS</link> 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:828
#, no-wrap
msgid ""
"_http._tcp.update.myserver.com.\t\tIN SRV   0 2 80   host1.myserver.com.\n"
"\t\t\t\t\tIN SRV   0 1 80   host2.myserver.com.\n"
"\t\t\t\t\tIN SRV   0 0 80   host3.myserver.com."
msgstr ""
