Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
freebsd
GitHub Repository: freebsd/freebsd-doc
Path: blob/main/documentation/content/en/articles/freebsd-update-server/_index.po
18096 views
# SOME DESCRIPTIVE TITLE
# Copyright (C) YEAR The FreeBSD Project
# This file is distributed under the same license as the FreeBSD Documentation package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: FreeBSD Documentation VERSION\n"
"POT-Creation-Date: 2026-05-09 23:29+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <[email protected]>\n"
"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"

#. type: YAML Front Matter: description
#: documentation/content/en/articles/freebsd-update-server/_index.adoc:1
#, no-wrap
msgid "Building your own freebsd-update server allows a system administrator to perform fast updates for a number of machines from a local mirror"
msgstr ""

#. type: Title =
#: documentation/content/en/articles/freebsd-update-server/_index.adoc:1
#: documentation/content/en/articles/freebsd-update-server/_index.adoc:12
#, no-wrap
msgid "Build Your Own FreeBSD Update Server"
msgstr ""

#. type: delimited block = 4
#: documentation/content/en/articles/freebsd-update-server/_index.adoc:51
msgid ""
"The instructions in this article refer to an older version of FreeBSD and "
"may not work properly on recent versions of the OS. With the availability of "
"pkgbase, the freebsd-update utility is scheduled to be removed from FreeBSD "
"in the future. When that happens, this article is either updated to reflect "
"the new procedures or removed entirely."
msgstr ""

#. type: Plain text
#: documentation/content/en/articles/freebsd-update-server/_index.adoc:55
msgid "Abstract"
msgstr ""

#. type: Plain text
#: documentation/content/en/articles/freebsd-update-server/_index.adoc:59
msgid ""
"This article describes building an internal FreeBSD Update Server.  The "
"https://github.com/freebsd/freebsd-update-build/[freebsd-update-server] is "
"written by `{cperciva}`, 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 ""

#. type: Plain text
#: documentation/content/en/articles/freebsd-update-server/_index.adoc:61
msgid "'''"
msgstr ""

#. type: Title ==
#: documentation/content/en/articles/freebsd-update-server/_index.adoc:65
#, no-wrap
msgid "Acknowledgments"
msgstr ""

#. type: Plain text
#: documentation/content/en/articles/freebsd-update-server/_index.adoc:68
msgid ""
"This article was subsequently printed at https://people.freebsd.org/~jgh/"
"files/fus/BSD_03_2010_EN.pdf[BSD Magazine]."
msgstr ""

#. type: Title ==
#: documentation/content/en/articles/freebsd-update-server/_index.adoc:70
#, no-wrap
msgid "Introduction"
msgstr ""

#. type: Plain text
#: documentation/content/en/articles/freebsd-update-server/_index.adoc:77
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 ""

#. type: Title ==
#: documentation/content/en/articles/freebsd-update-server/_index.adoc:79
#, no-wrap
msgid "Prerequisites"
msgstr ""

#. type: Plain text
#: documentation/content/en/articles/freebsd-update-server/_index.adoc:82
msgid ""
"To build an internal FreeBSD Update Server some requirements should be met."
msgstr ""

#. type: Plain text
#: documentation/content/en/articles/freebsd-update-server/_index.adoc:84
msgid "A running FreeBSD system."
msgstr ""

#. type: delimited block = 4
#: documentation/content/en/articles/freebsd-update-server/_index.adoc:88
msgid ""
"At a minimum, updates require building on a FreeBSD release greater than or "
"equal to the target release version for distribution."
msgstr ""

#. type: Plain text
#: documentation/content/en/articles/freebsd-update-server/_index.adoc:90
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 ""

#. type: Plain text
#: documentation/content/en/articles/freebsd-update-server/_index.adoc:91
msgid ""
"An man:ssh[1] account on a remote machine to upload distributed updates."
msgstr ""

#. type: Plain text
#: documentation/content/en/articles/freebsd-update-server/_index.adoc:92
msgid ""
"A web server, like extref:{handbook}network-servers[Apache, network-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 ""

#. type: Plain text
#: documentation/content/en/articles/freebsd-update-server/_index.adoc:93
msgid "Basic knowledge of shell scripting with POSIX(R) shell, man:sh[1]."
msgstr ""

#. type: Title ==
#: documentation/content/en/articles/freebsd-update-server/_index.adoc:95
#, no-wrap
msgid "Configuration: Installation & Setup"
msgstr ""

#. type: Plain text
#: documentation/content/en/articles/freebsd-update-server/_index.adoc:98
msgid ""
"Download the https://github.com/freebsd/freebsd-update-build/[freebsd-update-"
"server] software by installing package:devel/git[] and package:security/"
"ca_root_nss[], and execute:"
msgstr ""

#. type: delimited block . 4
#: documentation/content/en/articles/freebsd-update-server/_index.adoc:102
#, no-wrap
msgid "% git clone https://github.com/freebsd/freebsd-update-build.git freebsd-update-server\n"
msgstr ""

#. type: Plain text
#: documentation/content/en/articles/freebsd-update-server/_index.adoc:106
msgid ""
"Update [.filename]#scripts/build.conf# appropriately.  It is sourced during "
"all build operations."
msgstr ""

#. type: Plain text
#: documentation/content/en/articles/freebsd-update-server/_index.adoc:108
msgid ""
"Here is the default [.filename]#build.conf#, which should be modified to "
"suit your environment."
msgstr ""

#. type: delimited block . 4
#: documentation/content/en/articles/freebsd-update-server/_index.adoc:114
#, 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"
msgstr ""

#. type: delimited block . 4
#: documentation/content/en/articles/freebsd-update-server/_index.adoc:117
#, no-wrap
msgid ""
"# Location from which to fetch releases\n"
"export FTP=ftp://ftp2.freebsd.org/pub/FreeBSD/releases <.>\n"
msgstr ""

#. type: delimited block . 4
#: documentation/content/en/articles/freebsd-update-server/_index.adoc:120
#, no-wrap
msgid ""
"# Host platform\n"
"export HOSTPLATFORM=`uname -m`\n"
msgstr ""

#. type: delimited block . 4
#: documentation/content/en/articles/freebsd-update-server/_index.adoc:123
#, no-wrap
msgid ""
"# Host name to use inside jails\n"
"export BUILDHOSTNAME=${HOSTPLATFORM}-builder.daemonology.net <.>\n"
msgstr ""

#. type: delimited block . 4
#: documentation/content/en/articles/freebsd-update-server/_index.adoc:126
#, no-wrap
msgid ""
"# Location of SSH key\n"
"export SSHKEY=/root/.ssh/id_dsa <.>\n"
msgstr ""

#. type: delimited block . 4
#: documentation/content/en/articles/freebsd-update-server/_index.adoc:129
#, no-wrap
msgid ""
"# SSH account into which files are uploaded\n"
"[email protected] <.>\n"
msgstr ""

#. type: delimited block . 4
#: documentation/content/en/articles/freebsd-update-server/_index.adoc:132
#, no-wrap
msgid ""
"# Directory into which files are uploaded\n"
"MASTERDIR=update-master.freebsd.org <.>\n"
msgstr ""

#. type: Plain text
#: documentation/content/en/articles/freebsd-update-server/_index.adoc:135
msgid "Parameters for consideration would be:"
msgstr ""

#. type: Plain text
#: documentation/content/en/articles/freebsd-update-server/_index.adoc:138
msgid ""
"This is the location where ISO images are downloaded from (by the "
"`fetchiso()` subroutine of [.filename]#scripts/build.subr#). The location "
"configured is not limited to FTP URIs. Any URI scheme supported by standard "
"man:fetch[1] utility should work fine.  Customizations to the `fetchiso()` "
"code can be installed by copying the default [.filename]#build.subr# script "
"to the release and architecture-specific area at [.filename]#scripts/RELEASE/"
"ARCHITECTURE/build.subr# and applying local changes."
msgstr ""

#. type: Plain text
#: documentation/content/en/articles/freebsd-update-server/_index.adoc:140
msgid ""
"The name of the build host. This information will be displayed on updated "
"systems when issuing:"
msgstr ""

#. type: delimited block . 4
#: documentation/content/en/articles/freebsd-update-server/_index.adoc:144
#, no-wrap
msgid "% uname -v\n"
msgstr ""

#. type: Plain text
#: documentation/content/en/articles/freebsd-update-server/_index.adoc:148
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.  The man:ssh-keygen[1] manual page has more "
"detailed information about SSH and the appropriate steps for creating and "
"using one."
msgstr ""

#. type: Plain text
#: documentation/content/en/articles/freebsd-update-server/_index.adoc:150
msgid "Account for uploading files to the update server."
msgstr ""

#. type: Plain text
#: documentation/content/en/articles/freebsd-update-server/_index.adoc:152
msgid "Directory on the update server where files are uploaded to."
msgstr ""

#. type: Plain text
#: documentation/content/en/articles/freebsd-update-server/_index.adoc:154
msgid ""
"The default [.filename]#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 ""

#. type: delimited block = 4
#: documentation/content/en/articles/freebsd-update-server/_index.adoc:158
msgid "Create a build environment for amd64:"
msgstr ""

#. type: delimited block . 4
#: documentation/content/en/articles/freebsd-update-server/_index.adoc:162
#, no-wrap
msgid "% mkdir -p /usr/local/freebsd-update-server/scripts/7.2-RELEASE/amd64\n"
msgstr ""

#. type: Plain text
#: documentation/content/en/articles/freebsd-update-server/_index.adoc:165
msgid ""
"Install a [.filename]#build.conf# in the newly created build directory. The "
"build configuration options for FreeBSD 7.2-RELEASE on amd64 should be "
"similar to:"
msgstr ""

#. type: delimited block . 4
#: documentation/content/en/articles/freebsd-update-server/_index.adoc:176
#, no-wrap
msgid ""
"# SHA256 hash of RELEASE disc1.iso image.\n"
"export RELH=1ea1f6f652d7c5f5eab7ef9f8edbed50cb664b08ed761850f95f48e86cc71ef5 <.>\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"
msgstr ""

#. type: delimited block . 4
#: documentation/content/en/articles/freebsd-update-server/_index.adoc:179
#, no-wrap
msgid ""
"# EOL date\n"
"export EOL=1275289200 <.>\n"
msgstr ""

#. type: Plain text
#: documentation/content/en/articles/freebsd-update-server/_index.adoc:182
msgid ""
"The man:sha256[1] hash key for the desired release, is published within the "
"respective link:https://www.FreeBSD.org/releases/[release announcement]."
msgstr ""

#. type: Plain text
#: documentation/content/en/articles/freebsd-update-server/_index.adoc:183
msgid ""
"To generate the \"End of Life\" number for [.filename]#build.conf#, refer to "
"the \"Estimated EOL\" posted on the link:https://www.FreeBSD.org/security/"
"security/[FreeBSD Security Website]. The value of `EOL` can be derived from "
"the date listed on the web site, using the man:date[1] utility, for example:"
msgstr ""

#. type: delimited block . 4
#: documentation/content/en/articles/freebsd-update-server/_index.adoc:187
#, no-wrap
msgid "% date -j -f '%Y%m%d-%H%M%S' '20090401-000000' '+%s'\n"
msgstr ""

#. type: Title ==
#: documentation/content/en/articles/freebsd-update-server/_index.adoc:191
#, no-wrap
msgid "Building Update Code"
msgstr ""

#. type: delimited block = 4
#: documentation/content/en/articles/freebsd-update-server/_index.adoc:196
msgid ""
"The first step is to run [.filename]#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 ""

#. type: delimited block . 4
#: documentation/content/en/articles/freebsd-update-server/_index.adoc:211
#, 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"
msgstr ""

#. type: delimited block . 4
#: documentation/content/en/articles/freebsd-update-server/_index.adoc:214
#, no-wrap
msgid ""
"Public key fingerprint:\n"
"27ef53e48dc869eea6c3136091cc6ab8589f967559824779e855d58a2294de9e\n"
msgstr ""

#. type: delimited block . 4
#: documentation/content/en/articles/freebsd-update-server/_index.adoc:218
#, no-wrap
msgid ""
"Encrypting signing key for root\n"
"enter aes-256-cbc encryption password:\n"
"Verifying - enter aes-256-cbc encryption password:\n"
msgstr ""

#. type: delimited block = 4
#: documentation/content/en/articles/freebsd-update-server/_index.adoc:224
msgid ""
"Keep a note of the generated key fingerprint.  This value is required in "
"[.filename]#/etc/freebsd-update.conf# for binary updates."
msgstr ""

#. type: Plain text
#: documentation/content/en/articles/freebsd-update-server/_index.adoc:227
msgid "At this point, we are ready to stage a build."
msgstr ""

#. type: delimited block . 4
#: documentation/content/en/articles/freebsd-update-server/_index.adoc:232
#, no-wrap
msgid ""
"# cd /usr/local/freebsd-update-server\n"
"# sh scripts/init.sh amd64 7.2-RELEASE\n"
msgstr ""

#. type: Plain text
#: documentation/content/en/articles/freebsd-update-server/_index.adoc:235
msgid "What follows is a sample of an _initial_ build run."
msgstr ""

#. type: delimited block . 4
#: documentation/content/en/articles/freebsd-update-server/_index.adoc:255
#, 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"
msgstr ""

#. type: delimited block . 4
#: documentation/content/en/articles/freebsd-update-server/_index.adoc:276
#, no-wrap
msgid ""
"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"
"...\n"
msgstr ""

#. type: Plain text
#: documentation/content/en/articles/freebsd-update-server/_index.adoc:280
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#."
msgstr ""

#. type: delimited block = 4
#: documentation/content/en/articles/freebsd-update-server/_index.adoc:286
msgid ""
"During this second build cycle, the network time protocol daemon, "
"man:ntpd[8], is turned off.  Per `{cperciva}`, Security Officer Emeritus of "
"FreeBSD, \"the https://github.com/freebsd/freebsd-update-build/[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 ""

#. type: delimited block . 4
#: documentation/content/en/articles/freebsd-update-server/_index.adoc:305
#, 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"
msgstr ""

#. type: delimited block . 4
#: documentation/content/en/articles/freebsd-update-server/_index.adoc:323
#, no-wrap
msgid ""
"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"
msgstr ""

#. type: Plain text
#: documentation/content/en/articles/freebsd-update-server/_index.adoc:326
msgid "Finally, the build completes."
msgstr ""

#. type: delimited block . 4
#: documentation/content/en/articles/freebsd-update-server/_index.adoc:355
#, 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"
"    [email protected]:/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 [email protected] on Tue Aug 25 00:16:15 UTC 2009\n"
" built by [email protected] on Tue Aug 25 00:16:15 UTC 2009\n"
" built by [email protected] on Tue Aug 25 00:16:15 UTC 2009\n"
" built by [email protected] 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"
msgstr ""

#. type: delimited block . 4
#: documentation/content/en/articles/freebsd-update-server/_index.adoc:361
#, no-wrap
msgid ""
"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.\n"
msgstr ""

#. type: Plain text
#: documentation/content/en/articles/freebsd-update-server/_index.adoc:366
msgid ""
"Approve the build if everything is correct.  More information on determining "
"this can be found in the distributed source file named [.filename]#USAGE#. "
"Execute [.filename]#scripts/approve.sh#, as directed.  This will sign the "
"release, and move components into a staging area suitable for uploading."
msgstr ""

#. type: delimited block . 4
#: documentation/content/en/articles/freebsd-update-server/_index.adoc:371
#, no-wrap
msgid ""
"# cd /usr/local/freebsd-update-server\n"
"# sh scripts/mountkey.sh\n"
msgstr ""

#. type: delimited block . 4
#: documentation/content/en/articles/freebsd-update-server/_index.adoc:381
#, 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\n"
msgstr ""

#. type: Plain text
#: documentation/content/en/articles/freebsd-update-server/_index.adoc:384
msgid ""
"After the approval process is complete, the upload procedure may be started."
msgstr ""

#. type: delimited block . 4
#: documentation/content/en/articles/freebsd-update-server/_index.adoc:389
#, no-wrap
msgid ""
"# cd /usr/local/freebsd-update-server\n"
"# sh scripts/upload.sh amd64 7.2-RELEASE\n"
msgstr ""

#. type: delimited block = 4
#: documentation/content/en/articles/freebsd-update-server/_index.adoc:394
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 ""

#. type: delimited block . 4
#: documentation/content/en/articles/freebsd-update-server/_index.adoc:399
#, no-wrap
msgid ""
"# cd /usr/local/freebsd-update-server/pub/7.2-RELEASE/amd64\n"
"# touch -t 200801010101.01 uploaded\n"
msgstr ""

#. type: delimited block = 4
#: documentation/content/en/articles/freebsd-update-server/_index.adoc:406
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 extref:{handbook}network-servers[Configuration of Apache servers, "
"network-apache] section in the Handbook."
msgstr ""

#. type: delimited block = 4
#: documentation/content/en/articles/freebsd-update-server/_index.adoc:408
msgid ""
"Update client's `KeyPrint` and `ServerName` in [.filename]#/etc/freebsd-"
"update.conf#, and perform updates as instructed in the extref:{handbook}"
"cutting-edge[FreeBSD Update, updating-upgrading-freebsdupdate] section of "
"the Handbook."
msgstr ""

#. type: Plain text
#: documentation/content/en/articles/freebsd-update-server/_index.adoc:414
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 ""

#. type: delimited block = 4
#: documentation/content/en/articles/freebsd-update-server/_index.adoc:417
msgid ""
"For reference, the entire run of link:../../source/articles/freebsd-update-"
"server/init.txt[init.sh] is attached."
msgstr ""

#. type: Title ==
#: documentation/content/en/articles/freebsd-update-server/_index.adoc:419
#, no-wrap
msgid "Building a Patch"
msgstr ""

#. type: delimited block = 4
#: documentation/content/en/articles/freebsd-update-server/_index.adoc:422
msgid ""
"Every time a link:https://www.FreeBSD.org/security/advisories/[security "
"advisory] or link:https://www.FreeBSD.org/security/notices/[security notice] "
"is announced, a patch update can be built."
msgstr ""

#. type: delimited block = 4
#: documentation/content/en/articles/freebsd-update-server/_index.adoc:424
msgid "For this example, 7.1-RELEASE will be used."
msgstr ""

#. type: delimited block = 4
#: documentation/content/en/articles/freebsd-update-server/_index.adoc:426
msgid "A couple of assumptions are made for a different release build:"
msgstr ""

#. type: delimited block = 4
#: documentation/content/en/articles/freebsd-update-server/_index.adoc:428
msgid "Setup the correct directory structure for the initial build."
msgstr ""

#. type: delimited block = 4
#: documentation/content/en/articles/freebsd-update-server/_index.adoc:429
msgid "Perform an initial build for 7.1-RELEASE."
msgstr ""

#. type: delimited block = 4
#: documentation/content/en/articles/freebsd-update-server/_index.adoc:431
msgid ""
"Create the patch directory of the respective release under [.filename]#/usr/"
"local/freebsd-update-server/patches/#."
msgstr ""

#. type: delimited block . 4
#: documentation/content/en/articles/freebsd-update-server/_index.adoc:436
#, 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\n"
msgstr ""

#. type: Plain text
#: documentation/content/en/articles/freebsd-update-server/_index.adoc:441
msgid ""
"As an example, take the patch for man:named[8].  Read the advisory, and grab "
"the necessary file from link:https://www.FreeBSD.org/security/advisories/"
"[FreeBSD Security Advisories].  More information on interpreting the "
"advisory, can be found in the extref:{handbook}security[FreeBSD Handbook, "
"security-advisories]."
msgstr ""

#. type: Plain text
#: documentation/content/en/articles/freebsd-update-server/_index.adoc:446
msgid ""
"In the https://security.freebsd.org/advisories/FreeBSD-"
"SA-09:12.bind.asc[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 ""

#. type: delimited block . 4
#: documentation/content/en/articles/freebsd-update-server/_index.adoc:450
#, no-wrap
msgid "% cd /usr/local/freebsd-update-server/patches/7.1-RELEASE/; mv bind.patch 7-SA-09:12.bind\n"
msgstr ""

#. type: delimited block = 4
#: documentation/content/en/articles/freebsd-update-server/_index.adoc:456
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 ""

#. type: delimited block = 4
#: documentation/content/en/articles/freebsd-update-server/_index.adoc:458
msgid ""
"There can be custom patches added to any build. Use the number zero, or any "
"other number."
msgstr ""

#. type: delimited block = 4
#: documentation/content/en/articles/freebsd-update-server/_index.adoc:464
msgid ""
"It is up to the administrator of the FreeBSD Update Server to take "
"appropriate measures to verify the authenticity of every patch."
msgstr ""

#. type: Plain text
#: documentation/content/en/articles/freebsd-update-server/_index.adoc:468
msgid ""
"At this point, a _diff_ is ready to be built.  The software checks first to "
"see if a [.filename]#scripts/init.sh# has been run on the respective release "
"prior to running the diff build."
msgstr ""

#. type: delimited block . 4
#: documentation/content/en/articles/freebsd-update-server/_index.adoc:473
#, no-wrap
msgid ""
"# cd /usr/local/freebsd-update-server\n"
"# sh scripts/diff.sh amd64 7.1-RELEASE 7\n"
msgstr ""

#. type: Plain text
#: documentation/content/en/articles/freebsd-update-server/_index.adoc:476
msgid "What follows is a sample of a _differential_ build run."
msgstr ""

#. type: delimited block . 4
#: documentation/content/en/articles/freebsd-update-server/_index.adoc:550
#, 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"
"    [email protected]:/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 [email protected] on Wed Aug 26 17:49:58 UTC 2009\n"
" built by [email protected] on Wed Aug 26 17:49:58 UTC 2009\n"
" built by [email protected] on Wed Aug 26 17:49:58 UTC 2009\n"
" built by [email protected] 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"
"...\n"
msgstr ""

#. type: Plain text
#: documentation/content/en/articles/freebsd-update-server/_index.adoc:553
msgid "Updates are printed, and approval is requested."
msgstr ""

#. type: delimited block . 4
#: documentation/content/en/articles/freebsd-update-server/_index.adoc:572
#, 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.\n"
msgstr ""

#. type: Plain text
#: documentation/content/en/articles/freebsd-update-server/_index.adoc:575
msgid "Follow the same process as noted before for approving a build:"
msgstr ""

#. type: delimited block . 4
#: documentation/content/en/articles/freebsd-update-server/_index.adoc:584
#, 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"
msgstr ""

#. type: delimited block . 4
#: documentation/content/en/articles/freebsd-update-server/_index.adoc:590
#, no-wrap
msgid ""
"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.\n"
msgstr ""

#. type: Plain text
#: documentation/content/en/articles/freebsd-update-server/_index.adoc:593
msgid "After approving the build, upload the software:"
msgstr ""

#. type: delimited block . 4
#: documentation/content/en/articles/freebsd-update-server/_index.adoc:598
#, no-wrap
msgid ""
"# cd /usr/local/freebsd-update-server\n"
"# sh scripts/upload.sh amd64 7.1-RELEASE\n"
msgstr ""

#. type: Plain text
#: documentation/content/en/articles/freebsd-update-server/_index.adoc:601
msgid ""
"For reference, the entire run of link:../../source/articles/freebsd-update-"
"server/diff.txt[diff.sh] is attached."
msgstr ""

#. type: Title ==
#: documentation/content/en/articles/freebsd-update-server/_index.adoc:603
#, no-wrap
msgid "Tips"
msgstr ""

#. type: Plain text
#: documentation/content/en/articles/freebsd-update-server/_index.adoc:606
msgid ""
"If a custom release is built using the native `make release` extref:{releng}"
"[procedure, release-build], 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 [.filename]#scripts/build.subr#. As a last "
"step, change the man:sha256[1] hash in [.filename]#build.conf# under your "
"respective release and architecture and you are ready to build off your "
"custom release."
msgstr ""

#. type: delimited block . 4
#: documentation/content/en/articles/freebsd-update-server/_index.adoc:617
#, 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"
"# Add extra docs to ${WORKDIR}/$1\n"
"addextradocs () {\n"
"}\n"
msgstr ""

#. type: Plain text
#: documentation/content/en/articles/freebsd-update-server/_index.adoc:620
msgid ""
"Adding `-j _NUMBER_` flags to `buildworld` and `obj` targets in the "
"[.filename]#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 ""

#. type: delimited block . 4
#: documentation/content/en/articles/freebsd-update-server/_index.adoc:632
#, no-wrap
msgid ""
"              # Build the world\n"
"\t\t   log \"Building world\"\n"
"\t\t   cd /usr/src &&\n"
"\t\t   make -j 2 ${COMPATFLAGS} buildworld 2>&1\n"
"\t\t# Distribute the world\n"
"\t\t   log \"Distributing world\"\n"
"\t\t   cd /usr/src/release &&\n"
"\t\t   make -j 2 obj &&\n"
"\t\t   make ${COMPATFLAGS} release.1 release.2 2>&1\n"
msgstr ""

#. type: Plain text
#: documentation/content/en/articles/freebsd-update-server/_index.adoc:635
msgid ""
"Create an appropriate extref:{handbook}network-servers[DNS, network-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 ""

#. type: delimited block . 4
#: documentation/content/en/articles/freebsd-update-server/_index.adoc:641
#, 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.\n"
msgstr ""