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