xref: /dflybsd-src/usr.bin/dsynth/dsynth.1 (revision 650b87852a81e07b1f99b97d9ea284853fa7059c)
18ec23ca1SMatthew Dillon.\" Copyright (c) 2019 The DragonFly Project.  All rights reserved.
28ec23ca1SMatthew Dillon.\"
38ec23ca1SMatthew Dillon.\" This code is derived from software contributed to The DragonFly Project
48ec23ca1SMatthew Dillon.\" by Matthew Dillon <dillon@backplane.com>
58ec23ca1SMatthew Dillon.\" This code is based on a concept originally developed by John R. Marino.
68ec23ca1SMatthew Dillon.\"
78ec23ca1SMatthew Dillon.\" Redistribution and use in source and binary forms, with or without
88ec23ca1SMatthew Dillon.\" modification, are permitted provided that the following conditions
98ec23ca1SMatthew Dillon.\" are met:
108ec23ca1SMatthew Dillon.\"
118ec23ca1SMatthew Dillon.\" 1. Redistributions of source code must retain the above copyright
128ec23ca1SMatthew Dillon.\"    notice, this list of conditions and the following disclaimer.
138ec23ca1SMatthew Dillon.\" 2. Redistributions in binary form must reproduce the above copyright
148ec23ca1SMatthew Dillon.\"    notice, this list of conditions and the following disclaimer in
158ec23ca1SMatthew Dillon.\"    the documentation and/or other materials provided with the
168ec23ca1SMatthew Dillon.\"    distribution.
178ec23ca1SMatthew Dillon.\" 3. Neither the name of The DragonFly Project nor the names of its
188ec23ca1SMatthew Dillon.\"    contributors may be used to endorse or promote products derived
198ec23ca1SMatthew Dillon.\"    from this software without specific, prior written permission.
208ec23ca1SMatthew Dillon.\"
218ec23ca1SMatthew Dillon.\" THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
228ec23ca1SMatthew Dillon.\" ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
238ec23ca1SMatthew Dillon.\" LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
248ec23ca1SMatthew Dillon.\" FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE
258ec23ca1SMatthew Dillon.\" COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
268ec23ca1SMatthew Dillon.\" INCIDENTAL, SPECIAL, EXEMPLARY OR CONSEQUENTIAL DAMAGES (INCLUDING,
278ec23ca1SMatthew Dillon.\" BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
288ec23ca1SMatthew Dillon.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
298ec23ca1SMatthew Dillon.\" AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
308ec23ca1SMatthew Dillon.\" OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
318ec23ca1SMatthew Dillon.\" OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
328ec23ca1SMatthew Dillon.\" SUCH DAMAGE.
338ec23ca1SMatthew Dillon.\"
348ec23ca1SMatthew Dillon.Dd August 21, 2019
358ec23ca1SMatthew Dillon.Dt DSYNC 8
368ec23ca1SMatthew Dillon.Os
378ec23ca1SMatthew Dillon.Sh NAME
388ec23ca1SMatthew Dillon.Nm dsynth
398ec23ca1SMatthew Dillon.Nd dsynth bulk dports builder utility
408ec23ca1SMatthew Dillon.Sh SYNOPSIS
418ec23ca1SMatthew Dillon.Nm
42a67bf8dbSMatthew Dillon.Op Fl dhvyDS
438ec23ca1SMatthew Dillon.Op Fl s Ar n
447f0eca56SMatthew Dillon.Op Fl m Ar gb
458ec23ca1SMatthew Dillon.Ar directive
468ec23ca1SMatthew Dillon.Op origins
478ec23ca1SMatthew Dillon.Nm
488ec23ca1SMatthew Dillon.Ar help
498ec23ca1SMatthew Dillon.Sh DESCRIPTION
508ec23ca1SMatthew DillonThe
518ec23ca1SMatthew Dillon.Nm
528ec23ca1SMatthew Dillonutility allows a user to build and maintain part or all of dports
538ec23ca1SMatthew Dillonlocally.
548ec23ca1SMatthew Dillon.Nm
558ec23ca1SMatthew Dillonfigures out the dependency topology of the dport(s) you
568ec23ca1SMatthew Dillonis capable of building any number of ports concurrently based
578ec23ca1SMatthew Dillonon the configuration parameters you supply.
588ec23ca1SMatthew Dillon.Pp
598ec23ca1SMatthew Dillon.Nm
608ec23ca1SMatthew Dillonis based on an application called
618ec23ca1SMatthew Dillon.Xr synth 1
62*650b8785SSascha Wildnerwhich was written by John Marino in Ada and served as the conceptual base
638ec23ca1SMatthew Dillonfor this program.
648ec23ca1SMatthew Dillon.Nm
658ec23ca1SMatthew Dillonis written in C and designed to be as portable as possible given a
668ec23ca1SMatthew Dillonports-style infrastructure.
678ec23ca1SMatthew Dillon.Pp
688ec23ca1SMatthew DillonOur recommended build topology is with a configuration as follows:
698ec23ca1SMatthew Dillon.Bd -literal
708ec23ca1SMatthew Dillon[Global Configuration]
718ec23ca1SMatthew Dillonprofile_selected= LiveSystem
728ec23ca1SMatthew Dillon
738ec23ca1SMatthew Dillon[LiveSystem]
748ec23ca1SMatthew DillonOperating_system= DragonFly
758ec23ca1SMatthew DillonDirectory_packages= /build/synth/live_packages
768ec23ca1SMatthew DillonDirectory_repository= /build/synth/live_packages/All
778ec23ca1SMatthew DillonDirectory_portsdir= /build/synth/dports
788ec23ca1SMatthew DillonDirectory_options= /build/synth/options
798ec23ca1SMatthew DillonDirectory_distfiles= /build/synth/distfiles
808ec23ca1SMatthew DillonDirectory_buildbase= /build/synth/build
818ec23ca1SMatthew DillonDirectory_logs= /build/synth/logs
828ec23ca1SMatthew DillonDirectory_ccache= disabled
838ec23ca1SMatthew DillonDirectory_system= /
848ec23ca1SMatthew DillonNumber_of_builders= 8
858ec23ca1SMatthew DillonMax_jobs_per_builder= 8
868ec23ca1SMatthew DillonDisplay_with_ncurses= true
878ec23ca1SMatthew Dillon.Ed
888ec23ca1SMatthew Dillon.Pp
898ec23ca1SMatthew DillonThis places all major directories under
908ec23ca1SMatthew Dillon.Pa /build/synth .
918ec23ca1SMatthew DillonIf you want to use the same dports and the same distfiles as your base
928ec23ca1SMatthew Dillonsystem, you can null-mount /usr/distfiles onto /build/synth/distfiles
938ec23ca1SMatthew Dillonand /usr/dports onto /build/synth/dports with
948ec23ca1SMatthew Dillon.Pa /etc/fstab
958ec23ca1SMatthew Dillonentries as follows:
968ec23ca1SMatthew Dillon.Bd -literal
978ec23ca1SMatthew Dillon# Device              Mountpoint		FStype  Options DumpPass#
988ec23ca1SMatthew Dillon/usr/distfiles        /build/synth/distfiles	null    rw      4 4
998ec23ca1SMatthew Dillon/usr/dports           /build/synth/dports	null    rw      4 4
1008ec23ca1SMatthew Dillon.Ed
1018ec23ca1SMatthew Dillon.Pp
1028ec23ca1SMatthew DillonPlease set the number of builders and the maximum number of jobs per
103*650b8785SSascha Wildnerbuilder according to available system resources.
104*650b8785SSascha WildnerRemember that the total
1058ec23ca1SMatthew Dillonload on the system can be as high as (builders x jobs), and at least 4x
106*650b8785SSascha Wildnerthat value in processes.
107*650b8785SSascha WildnerSystems are typically restricted by memory and CPU horsepower.
108*650b8785SSascha WildnerStart conservative and ramp up according to what your system can handle.
109*650b8785SSascha WildnerA good rule of thumb is to set workers to the number of CPU threads your
1108ec23ca1SMatthew Dillonmachine has or to 1/2 the number of gigabytes of memory your system has,
111*650b8785SSascha Wildnerwhichever is lower.
112*650b8785SSascha WildnerThen set the jobs per worker to no more than the
113*650b8785SSascha Wildnernumber of CPU threads your machine has.
1148ec23ca1SMatthew Dillon.Pp
1158ec23ca1SMatthew Dillon.Nm
11617be4d43SSascha Wildnerhas numerous features to manage machine load and swap usage to
1178ec23ca1SMatthew Dillonprevent a machine from being overloaded, allowing more workers
1188ec23ca1SMatthew Dillonto be configured than you might otherwise think is reasonable
1198ec23ca1SMatthew Dillon(which helps a lot when building the smaller ports).
1208ec23ca1SMatthew DillonHowever, users running this program should be aware that very high loads
1218ec23ca1SMatthew Dillonand modest swap use are still likely to develop when building a large
1228ec23ca1SMatthew Dillonnumber of ports or when building very large ports like chromium.
1238ec23ca1SMatthew DillonIf the system is not dedicated to building packages you can reduce the
1248ec23ca1SMatthew Dillonimpact to the rest of the system by running
1258ec23ca1SMatthew Dillon.Nm
1268ec23ca1SMatthew Dillonat nice +20 and also by reducing the number of workers and number of
1278ec23ca1SMatthew Dillonjobs per worker somewhat.
1288ec23ca1SMatthew Dillon.Pp
1298ec23ca1SMatthew DillonWe recommend that a minimum of 64GB of SSD-based swap be configured,
1308ec23ca1SMatthew Dillonor twice as much swap as main memory, whichever is the higher value.
1318ec23ca1SMatthew Dillon.Pp
1328ec23ca1SMatthew DillonWe recommend a minimum of 500GB of storage be configured in
1338ec23ca1SMatthew Dillon.Pa /build
1348ec23ca1SMatthew Dillonor wherever you have configured various directories.
1358ec23ca1SMatthew DillonA full set of distfiles requires at least 120GB, a full dports including
1368ec23ca1SMatthew Dillonthe git repo requires at least 1.5GB, and a full set of built packages
137*650b8785SSascha Wildnerrequires at least 75GB.
138*650b8785SSascha WildnerIf using a filesystem such as HAMMER or HAMMER2
1398ec23ca1SMatthew Dillonwhich frees space overnight, double all of those numbers.
1408ec23ca1SMatthew Dillon.Pp
1418ec23ca1SMatthew DillonThe actual build infrastructure uses tmpfs... memory and swap, and does
1428ec23ca1SMatthew Dillonnot use regular filesystem space.
1438ec23ca1SMatthew Dillon.Sh OPTIONS
1448ec23ca1SMatthew Dillon.Bl -tag -width indent
145a67bf8dbSMatthew Dillon.It Fl d[d...]
146*650b8785SSascha WildnerRun in debug mode.
147*650b8785SSascha WildnerIf specified two or more times this will turn off
14854f2fefcSMatthew Dillonncurses and output the primary log (00_last_results.log) to the standard
14954f2fefcSMatthew Dillonoutput, along with additional spew.
1508ec23ca1SMatthew Dillon.It Fl h
1518ec23ca1SMatthew DillonQuickly output a synopsis of options and directives and exit.
1527f0eca56SMatthew Dillon.It Fl m Ar gb
1537f0eca56SMatthew DillonOverride the default package dependency memory target, in gigabytes.
154*650b8785SSascha WildnerThe default is 1/2 physical memory.
155*650b8785SSascha WildnerThe number of workers will be limited
1567f0eca56SMatthew Dillonsuch that the aggregate size of package dependencies installed in each
1577f0eca56SMatthew Dillonworker slot does not exceed this value.
1587f0eca56SMatthew Dillon.Pp
1597f0eca56SMatthew DillonThis handles a well-known effect where the sheer amount of data that has
1607f0eca56SMatthew Dillonto be installed in tmpfs filesystems for large ports, when multiplied by
1617f0eca56SMatthew Dillonthe number of worker slots, can force excessive paging to occur and leave
162*650b8785SSascha Wildnerpreciously little memory available to actually run compiles.
163*650b8785SSascha WildnerSome paging
164*650b8785SSascha Wildneris necessary to maintain maximum CPU utilization, but excessive paging
1657f0eca56SMatthew Dilloncan cause the whole machine to essentially become idle for extended
1667f0eca56SMatthew Dillonperiods of time.
1678ec23ca1SMatthew Dillon.It Fl v
1688ec23ca1SMatthew DillonQuickly output the version and exit.
1698ec23ca1SMatthew Dillon.It Fl y
1708ec23ca1SMatthew DillonAutomatically answer 'y'es to any questions.
1718ec23ca1SMatthew Dillon.It Fl s Ar n
1728ec23ca1SMatthew Dillon.Nm
1738ec23ca1SMatthew Dillonusually slow-starts the worker slots, beginning with one slot and increasing
1748ec23ca1SMatthew Dillonby one every 5 seconds until the maximum configured number of workers is
1758ec23ca1SMatthew Dillonreached.
1768ec23ca1SMatthew DillonThis gives
1778ec23ca1SMatthew Dillon.Nm
1788ec23ca1SMatthew Dillona slower ramp that it can load manage against.
1798ec23ca1SMatthew DillonSpecifying 0 disables the slow-start feature and the maximum number of
1808ec23ca1SMatthew Dillonworker slots (limited by the dependency graph) will be loaded immediately.
181a67bf8dbSMatthew Dillon.It Fl D
182a67bf8dbSMatthew DillonTurn on DEVELOPER mode when building ports.
183a67bf8dbSMatthew Dillon.It Fl S[S]
184*650b8785SSascha WildnerTurn off curses for script friendliness.
185*650b8785SSascha WildnerThe output will be log 00 and
18654f2fefcSMatthew Dillonshould be redirected to /dev/null or something similar.
187a67bf8dbSMatthew DillonIf you supply the options twice, color output escapes will also be
188a67bf8dbSMatthew Dillonturned off.
18954f2fefcSMatthew DillonYou may also wish to use the
19054f2fefcSMatthew Dillon.Fl y
19154f2fefcSMatthew Dillonoption for scripting dsynth.
1928ec23ca1SMatthew Dillon.El
1938ec23ca1SMatthew Dillon.Sh DIRECTIVES
1948ec23ca1SMatthew DillonGenerally
1958ec23ca1SMatthew Dillon.Nm
1968ec23ca1SMatthew Dillonis run with a directive and some directives allow a list of ports to be
197*650b8785SSascha Wildnerspecified.
198*650b8785SSascha WildnerThis list should be space-delimited in DIR/SUBDIR format, for example:
1998ec23ca1SMatthew Dillon.Ar www/chromium .
2008ec23ca1SMatthew DillonFor directives with an optional ports list, your current installed set
2018ec23ca1SMatthew Dillonof ports will be used if you do not specify a list.
2028ec23ca1SMatthew Dillon.Bl -tag -width indent
2038ec23ca1SMatthew Dillon.It Cm status
2048ec23ca1SMatthew DillonThis will do a dry-run of
2058ec23ca1SMatthew Dillon.Cm upgrade-system
2068ec23ca1SMatthew Dillonbut not actually build anything.
2078ec23ca1SMatthew Dillon.It Cm cleanup
2088ec23ca1SMatthew DillonThis will clean up any left-over mounts from prior builds.
2098ec23ca1SMatthew Dillon.Nm
2108ec23ca1SMatthew Dillonattempts to clean up all processes and mounts when you interrupt
2118ec23ca1SMatthew Dillona build but doesn't always succeed.
2128ec23ca1SMatthew Dillon.It Cm init
2138ec23ca1SMatthew DillonCreates and initializes the
2148ec23ca1SMatthew Dillon.Pa /etc/dsynth
2158ec23ca1SMatthew Dillondirectory if it does not exst.
2168ec23ca1SMatthew DillonThis directive will complain and exit if either
2178ec23ca1SMatthew Dillon.Pa /etc/dsynth
2188ec23ca1SMatthew Dillonor
2198ec23ca1SMatthew Dillon.Pa /usr/local/etc/dsynth
220*650b8785SSascha Wildnerexists.
221*650b8785SSascha WildnerIt will not create
2228ec23ca1SMatthew Dillon.Pa /etc/dsynth
2238ec23ca1SMatthew Dillonin this situation.
2248ec23ca1SMatthew Dillon.It Cm configure
2258ec23ca1SMatthew DillonNOT CURRENTLY IMPLEMENTED
2268ec23ca1SMatthew Dillon.It Cm upgrade-system
227*650b8785SSascha WildnerNOT CURRENTLY IMPLEMENTED.
228*650b8785SSascha WildnerIncrementally build and upgrade your locally
2298ec23ca1SMatthew Dilloninstalled packages, then upgrade your local system with them.
2308ec23ca1SMatthew Dillon.It Cm prepare-system
2318ec23ca1SMatthew DillonIncrementally build and upgrade your locally installed packages, but
2328ec23ca1SMatthew Dillondo not upgrade your system with them.
2338ec23ca1SMatthew Dillon.It Cm rebuild-repository
2348ec23ca1SMatthew DillonBuild or rebuild the database files for the configured repository.
2358ec23ca1SMatthew Dillon.It Cm purge-distfiles
2368ec23ca1SMatthew DillonDelete any obsolete source distribution files.
2378ec23ca1SMatthew Dillon.It Cm status-everything
2388ec23ca1SMatthew DillonThis will do a dry-run of a full bulk build of everything,
2398ec23ca1SMatthew Dillonbut not actually build anything.
2408ec23ca1SMatthew Dillon.It Cm everything
2418ec23ca1SMatthew DillonThis will build the entire dports tree and then rebuild the repository
2428ec23ca1SMatthew Dillonwhen it finishes.
2438ec23ca1SMatthew Dillon.It Cm version
244*650b8785SSascha WildnerThis is for synth compatibility.
245*650b8785SSascha WildnerThe version of
2468ec23ca1SMatthew Dillon.Nm
2478ec23ca1SMatthew Dillonwill be printed and the program will exit.
2488ec23ca1SMatthew Dillon.It Cm help
2498ec23ca1SMatthew DillonOutput a synopsis of options and directives and exit.
2508ec23ca1SMatthew Dillon.It Cm status Op Ar ports
2518ec23ca1SMatthew DillonDo a dry-run with 'build' of the given list.
2528ec23ca1SMatthew Dillon.It Cm build Op Ar ports
253*650b8785SSascha WildnerIncrementally build dports based on the given list.
254*650b8785SSascha WildnerWhen done, ask whether the repository should be rebuilt or not.
2558ec23ca1SMatthew Dillon.It Cm just-build Op Ar ports
2568ec23ca1SMatthew DillonIncrementally build dports based on the given list, then
257*650b8785SSascha Wildnerexits.
258*650b8785SSascha WildnerNo post-build steps will be taken.
2598ec23ca1SMatthew Dillon.It Cm install Op Ar ports
2608ec23ca1SMatthew DillonNOT CURRENTLY IMPLEMENTED.  'build' based on the supplied
2618ec23ca1SMatthew Dillonlist (or using currently installed packages), then rebuild
26217be4d43SSascha Wildnerthe repository and upgrade the system without asking any further
2638ec23ca1SMatthew Dillonquestions.
2648ec23ca1SMatthew Dillon.It Cm force Op Ar ports
265*650b8785SSascha WildnerThis is the same as 'build' but will delete existing packages first.
266*650b8785SSascha WildnerDependencies are not deleted unless they are out of date.
2678ec23ca1SMatthew Dillon.It Cm test Op Ar ports
2688ec23ca1SMatthew DillonThis is the same as 'build' but sets the environment variable
269*650b8785SSascha Wildner.Ev DEVELOPER
270*650b8785SSascha Wildnerto
271*650b8785SSascha Wildner.Sq yes
272*650b8785SSascha Wildnerand pre-deletes specified packages.
273*650b8785SSascha WildnerDependencies are not deleted unless they are out of date.
2748ec23ca1SMatthew Dillon.El
2758ec23ca1SMatthew Dillon.Sh FILES
2768ec23ca1SMatthew Dillon.Bl -tag -width ".It Pa <fs>/abc/defghi/<name>" -compact
2778ec23ca1SMatthew Dillon.It Pa /etc/dsynth/synth.ini
278*650b8785SSascha WildnerThe primary configuration file.
279*650b8785SSascha WildnerIf not found,
2808ec23ca1SMatthew Dillon.Nm
2818ec23ca1SMatthew Dillonwill also look in
2828ec23ca1SMatthew Dillon.Pa /usr/local/etc/dsynth/synth.ini .
2838ec23ca1SMatthew Dillon.Pp
2848ec23ca1SMatthew Dillon.It Pa /etc/dsynth/LiveSystem-make.conf
2858ec23ca1SMatthew DillonTypically contains the environment variables that will be set in
2868ec23ca1SMatthew Dillonthe workers.
2878ec23ca1SMatthew Dillon.Nm
2888ec23ca1SMatthew Dillonfirewalls the environment it is run under from the environment it
2898ec23ca1SMatthew Dillonprovides to the workers.
2908ec23ca1SMatthew Dillon.Pp
2918ec23ca1SMatthew Dillon.It Pa /build/synth/build
2928ec23ca1SMatthew DillonRecommended setting for
293*650b8785SSascha Wildner.Va Directory_buildbase ,
2948ec23ca1SMatthew Dilloncontains the build infrastructure... typically a template, mirrored
2958ec23ca1SMatthew Dillonsystem directories, and mount points for all the worker slots.
2968ec23ca1SMatthew DillonThe template will be [re]generated if 'pkg' needs to be built or
2978ec23ca1SMatthew Dillonif the
2988ec23ca1SMatthew Dillon.Pa .template.good
2998ec23ca1SMatthew Dillonfile in this directory is deleted.
3008ec23ca1SMatthew Dillon.Pp
3018ec23ca1SMatthew Dillon.It Pa /build/synth/distfiles
3028ec23ca1SMatthew DillonRecommended setting for
303*650b8785SSascha Wildner.Va Directory_distfiles ,
3048ec23ca1SMatthew Dillonports to a directory into which
3058ec23ca1SMatthew Dillon.Nm
3068ec23ca1SMatthew Dillonwill download any source distribution files required for building.
3078ec23ca1SMatthew Dillon.Pp
3088ec23ca1SMatthew Dillon.It Pa /build/synth/dports
3098ec23ca1SMatthew DillonRecommended setting for
310*650b8785SSascha Wildner.Va Directory_portsdir ,
3118ec23ca1SMatthew Dillonpoints to a checked out dports repo.
3128ec23ca1SMatthew DillonNote that
3138ec23ca1SMatthew Dillon.Nm
3148ec23ca1SMatthew Dillondoes not automatically 'git pull' or otherwise synchronize the dports repo,
3158ec23ca1SMatthew Dillonyou must do that yourself prior to starting a build.
3168ec23ca1SMatthew Dillon.Pp
3178ec23ca1SMatthew Dillon.It Pa /build/synth/live_packages
3188ec23ca1SMatthew DillonRecommended setting for
319*650b8785SSascha Wildner.Va Directory_packages ,
3208ec23ca1SMatthew Dillonpoints to a directory which will contain the completed application
3218ec23ca1SMatthew Dillonpackages.
3228ec23ca1SMatthew Dillon.Pp
3238ec23ca1SMatthew Dillon.It Pa /build/synth/logs
3248ec23ca1SMatthew DillonRecommended setting for
325*650b8785SSascha Wildner.Va Directory_logs ,
3268ec23ca1SMatthew Dillonall log files will be placed in this directory.
3278ec23ca1SMatthew DillonSpecial management logfiles begin with the numeral '0' for easily
3288ec23ca1SMatthew Dillonlocation.
3298ec23ca1SMatthew DillonThe logfiles for ports while and after building are stored in the
3308ec23ca1SMatthew Dillonform subdir____portname.log, with three underscores.
3318ec23ca1SMatthew Dillon.Pp
3328ec23ca1SMatthew Dillon.It Pa /build/synth/options
3338ec23ca1SMatthew DillonRecommended setting for
334*650b8785SSascha Wildner.Va Directory_options ,
3358ec23ca1SMatthew Dillonwhere options overrides for specific ports may be located.
3368ec23ca1SMatthew Dillon.Pp
3378ec23ca1SMatthew Dillon.It Pa /
3388ec23ca1SMatthew DillonRecommended setting for
339*650b8785SSascha Wildner.Va Directory_system ,
3408ec23ca1SMatthew Dillonwhich
3418ec23ca1SMatthew Dillon.Nm
3428ec23ca1SMatthew Dillonuses as a basis for creating the jails or chroots in each worker slot
3438ec23ca1SMatthew Dillonduring building.
3448ec23ca1SMatthew DillonNo part of the system root is ever NULL-mounted read-write... it is always
3458ec23ca1SMatthew DillonNULL-mounted read-only.
3468ec23ca1SMatthew DillonSome elements from the system base will be mirrored in the build-base
3478ec23ca1SMatthew Dillonas an optimization.
3488ec23ca1SMatthew Dillon.Pp
3498ec23ca1SMatthew DillonNote that the packages directory and the distfiles directory is mounted
350*650b8785SSascha Wildnerread-write in jails or chroots.
351*650b8785SSascha WildnerAll other r/w filesystems in the workers are
3528ec23ca1SMatthew Dillon.Xr tmpfs 5
3538ec23ca1SMatthew Dillonbased filesystems and will be created and torn-down for each port.
3548ec23ca1SMatthew Dillon.El
3558ec23ca1SMatthew Dillon.Sh EXIT STATUS
3568ec23ca1SMatthew Dillon.Ex -std
3578ec23ca1SMatthew Dillon.Sh SEE ALSO
35817be4d43SSascha Wildner.Xr synth 1 ,
3598ec23ca1SMatthew Dillon.Xr dports 7
3608ec23ca1SMatthew Dillon.Sh HISTORY
3618ec23ca1SMatthew DillonThe
3628ec23ca1SMatthew Dillon.Nm
3638ec23ca1SMatthew Dillonutility first appeared in
3648ec23ca1SMatthew Dillon.Dx 5.7 .
3658ec23ca1SMatthew Dillon.Sh AUTHORS
3668ec23ca1SMatthew Dillon.An Matthew Dillon Aq Mt dillon@backplane.com
367