17a57a34fSSascha Wildner.\" 28ec23ca1SMatthew Dillon.\" Copyright (c) 2019 The DragonFly Project. All rights reserved. 38ec23ca1SMatthew Dillon.\" 48ec23ca1SMatthew Dillon.\" This code is derived from software contributed to The DragonFly Project 58ec23ca1SMatthew Dillon.\" by Matthew Dillon <dillon@backplane.com> 68ec23ca1SMatthew Dillon.\" This code is based on a concept originally developed by John R. Marino. 78ec23ca1SMatthew Dillon.\" 88ec23ca1SMatthew Dillon.\" Redistribution and use in source and binary forms, with or without 98ec23ca1SMatthew Dillon.\" modification, are permitted provided that the following conditions 108ec23ca1SMatthew Dillon.\" are met: 118ec23ca1SMatthew Dillon.\" 128ec23ca1SMatthew Dillon.\" 1. Redistributions of source code must retain the above copyright 138ec23ca1SMatthew Dillon.\" notice, this list of conditions and the following disclaimer. 148ec23ca1SMatthew Dillon.\" 2. Redistributions in binary form must reproduce the above copyright 158ec23ca1SMatthew Dillon.\" notice, this list of conditions and the following disclaimer in 168ec23ca1SMatthew Dillon.\" the documentation and/or other materials provided with the 178ec23ca1SMatthew Dillon.\" distribution. 188ec23ca1SMatthew Dillon.\" 3. Neither the name of The DragonFly Project nor the names of its 198ec23ca1SMatthew Dillon.\" contributors may be used to endorse or promote products derived 208ec23ca1SMatthew Dillon.\" from this software without specific, prior written permission. 218ec23ca1SMatthew Dillon.\" 228ec23ca1SMatthew Dillon.\" THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 238ec23ca1SMatthew Dillon.\" ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 248ec23ca1SMatthew Dillon.\" LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 258ec23ca1SMatthew Dillon.\" FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 268ec23ca1SMatthew Dillon.\" COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 278ec23ca1SMatthew Dillon.\" INCIDENTAL, SPECIAL, EXEMPLARY OR CONSEQUENTIAL DAMAGES (INCLUDING, 288ec23ca1SMatthew Dillon.\" BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 298ec23ca1SMatthew Dillon.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED 308ec23ca1SMatthew Dillon.\" AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 318ec23ca1SMatthew Dillon.\" OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT 328ec23ca1SMatthew Dillon.\" OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 338ec23ca1SMatthew Dillon.\" SUCH DAMAGE. 348ec23ca1SMatthew Dillon.\" 35f1a6aed6SSascha Wildner.Dd October 24, 2019 367a57a34fSSascha Wildner.Dt DSYNTH 1 378ec23ca1SMatthew Dillon.Os 388ec23ca1SMatthew Dillon.Sh NAME 398ec23ca1SMatthew Dillon.Nm dsynth 408ec23ca1SMatthew Dillon.Nd dsynth bulk dports builder utility 418ec23ca1SMatthew Dillon.Sh SYNOPSIS 428ec23ca1SMatthew Dillon.Nm 43a67bf8dbSMatthew Dillon.Op Fl dhvyDS 442c9f4f91SMatthew Dillon.Op Fl p Ar profile 458ec23ca1SMatthew Dillon.Op Fl s Ar n 467f0eca56SMatthew Dillon.Op Fl m Ar gb 478ec23ca1SMatthew Dillon.Ar directive 488ec23ca1SMatthew Dillon.Op origins 498ec23ca1SMatthew Dillon.Nm 508ec23ca1SMatthew Dillon.Ar help 518ec23ca1SMatthew Dillon.Sh DESCRIPTION 528ec23ca1SMatthew DillonThe 538ec23ca1SMatthew Dillon.Nm 548ec23ca1SMatthew Dillonutility allows a user to build and maintain part or all of dports 558ec23ca1SMatthew Dillonlocally. 568ec23ca1SMatthew Dillon.Nm 57f1a6aed6SSascha Wildnerfigures out the dependency topology of the dport(s) for you and 588ec23ca1SMatthew Dillonis capable of building any number of ports concurrently based 598ec23ca1SMatthew Dillonon the configuration parameters you supply. 608ec23ca1SMatthew Dillon.Pp 618ec23ca1SMatthew Dillon.Nm 628ec23ca1SMatthew Dillonis based on an application called 638ec23ca1SMatthew Dillon.Xr synth 1 64650b8785SSascha Wildnerwhich was written by John Marino in Ada and served as the conceptual base 658ec23ca1SMatthew Dillonfor this program. 668ec23ca1SMatthew Dillon.Nm 678ec23ca1SMatthew Dillonis written in C and designed to be as portable as possible given a 688ec23ca1SMatthew Dillonports-style infrastructure. 698ec23ca1SMatthew Dillon.Pp 708ec23ca1SMatthew DillonOur recommended build topology is with a configuration as follows: 718ec23ca1SMatthew Dillon.Bd -literal 728ec23ca1SMatthew Dillon[Global Configuration] 738ec23ca1SMatthew Dillonprofile_selected= LiveSystem 748ec23ca1SMatthew Dillon 758ec23ca1SMatthew Dillon[LiveSystem] 768ec23ca1SMatthew DillonOperating_system= DragonFly 778ec23ca1SMatthew DillonDirectory_packages= /build/synth/live_packages 788ec23ca1SMatthew DillonDirectory_repository= /build/synth/live_packages/All 798ec23ca1SMatthew DillonDirectory_portsdir= /build/synth/dports 808ec23ca1SMatthew DillonDirectory_options= /build/synth/options 818ec23ca1SMatthew DillonDirectory_distfiles= /build/synth/distfiles 828ec23ca1SMatthew DillonDirectory_buildbase= /build/synth/build 838ec23ca1SMatthew DillonDirectory_logs= /build/synth/logs 848ec23ca1SMatthew DillonDirectory_ccache= disabled 858ec23ca1SMatthew DillonDirectory_system= / 86483dbac9SMatthew DillonPackage_suffix= .txz 878ec23ca1SMatthew DillonNumber_of_builders= 8 888ec23ca1SMatthew DillonMax_jobs_per_builder= 8 898ec23ca1SMatthew DillonDisplay_with_ncurses= true 908ec23ca1SMatthew Dillon.Ed 918ec23ca1SMatthew Dillon.Pp 928ec23ca1SMatthew DillonThis places all major directories under 938ec23ca1SMatthew Dillon.Pa /build/synth . 948ec23ca1SMatthew DillonIf you want to use the same dports and the same distfiles as your base 958ec23ca1SMatthew Dillonsystem, you can null-mount /usr/distfiles onto /build/synth/distfiles 968ec23ca1SMatthew Dillonand /usr/dports onto /build/synth/dports with 978ec23ca1SMatthew Dillon.Pa /etc/fstab 988ec23ca1SMatthew Dillonentries as follows: 998ec23ca1SMatthew Dillon.Bd -literal 1008ec23ca1SMatthew Dillon# Device Mountpoint FStype Options DumpPass# 1018ec23ca1SMatthew Dillon/usr/distfiles /build/synth/distfiles null rw 4 4 1028ec23ca1SMatthew Dillon/usr/dports /build/synth/dports null rw 4 4 1038ec23ca1SMatthew Dillon.Ed 1048ec23ca1SMatthew Dillon.Pp 1058ec23ca1SMatthew DillonPlease set the number of builders and the maximum number of jobs per 106650b8785SSascha Wildnerbuilder according to available system resources. 107650b8785SSascha WildnerRemember that the total 1088ec23ca1SMatthew Dillonload on the system can be as high as (builders x jobs), and at least 4x 109650b8785SSascha Wildnerthat value in processes. 110650b8785SSascha WildnerSystems are typically restricted by memory and CPU horsepower. 111650b8785SSascha WildnerStart conservative and ramp up according to what your system can handle. 112650b8785SSascha WildnerA good rule of thumb is to set workers to the number of CPU threads your 1138ec23ca1SMatthew Dillonmachine has or to 1/2 the number of gigabytes of memory your system has, 114650b8785SSascha Wildnerwhichever is lower. 115650b8785SSascha WildnerThen set the jobs per worker to no more than the 116650b8785SSascha Wildnernumber of CPU threads your machine has. 1178ec23ca1SMatthew Dillon.Pp 1188ec23ca1SMatthew Dillon.Nm 11917be4d43SSascha Wildnerhas numerous features to manage machine load and swap usage to 1208ec23ca1SMatthew Dillonprevent a machine from being overloaded, allowing more workers 1218ec23ca1SMatthew Dillonto be configured than you might otherwise think is reasonable 1228ec23ca1SMatthew Dillon(which helps a lot when building the smaller ports). 1238ec23ca1SMatthew DillonHowever, users running this program should be aware that very high loads 1248ec23ca1SMatthew Dillonand modest swap use are still likely to develop when building a large 1258ec23ca1SMatthew Dillonnumber of ports or when building very large ports like chromium. 1268ec23ca1SMatthew DillonIf the system is not dedicated to building packages you can reduce the 1278ec23ca1SMatthew Dillonimpact to the rest of the system by running 1288ec23ca1SMatthew Dillon.Nm 1298ec23ca1SMatthew Dillonat nice +20 and also by reducing the number of workers and number of 1308ec23ca1SMatthew Dillonjobs per worker somewhat. 1318ec23ca1SMatthew Dillon.Pp 1328ec23ca1SMatthew DillonWe recommend that a minimum of 64GB of SSD-based swap be configured, 1338ec23ca1SMatthew Dillonor twice as much swap as main memory, whichever is the higher value. 1348ec23ca1SMatthew Dillon.Pp 1358ec23ca1SMatthew DillonWe recommend a minimum of 500GB of storage be configured in 1368ec23ca1SMatthew Dillon.Pa /build 1378ec23ca1SMatthew Dillonor wherever you have configured various directories. 1388ec23ca1SMatthew DillonA full set of distfiles requires at least 120GB, a full dports including 1398ec23ca1SMatthew Dillonthe git repo requires at least 1.5GB, and a full set of built packages 140650b8785SSascha Wildnerrequires at least 75GB. 141650b8785SSascha WildnerIf using a filesystem such as HAMMER or HAMMER2 1428ec23ca1SMatthew Dillonwhich frees space overnight, double all of those numbers. 1438ec23ca1SMatthew Dillon.Pp 1448ec23ca1SMatthew DillonThe actual build infrastructure uses tmpfs... memory and swap, and does 1458ec23ca1SMatthew Dillonnot use regular filesystem space. 1468ec23ca1SMatthew Dillon.Sh OPTIONS 1478ec23ca1SMatthew Dillon.Bl -tag -width indent 148a67bf8dbSMatthew Dillon.It Fl d[d...] 149650b8785SSascha WildnerRun in debug mode. 150650b8785SSascha WildnerIf specified two or more times this will turn off 15154f2fefcSMatthew Dillonncurses and output the primary log (00_last_results.log) to the standard 15254f2fefcSMatthew Dillonoutput, along with additional spew. 1538ec23ca1SMatthew Dillon.It Fl h 1548ec23ca1SMatthew DillonQuickly output a synopsis of options and directives and exit. 1557f0eca56SMatthew Dillon.It Fl m Ar gb 1567f0eca56SMatthew DillonOverride the default package dependency memory target, in gigabytes. 157650b8785SSascha WildnerThe default is 1/2 physical memory. 158650b8785SSascha WildnerThe number of workers will be limited 1597f0eca56SMatthew Dillonsuch that the aggregate size of package dependencies installed in each 1607f0eca56SMatthew Dillonworker slot does not exceed this value. 1617f0eca56SMatthew Dillon.Pp 1627f0eca56SMatthew DillonThis handles a well-known effect where the sheer amount of data that has 1637f0eca56SMatthew Dillonto be installed in tmpfs filesystems for large ports, when multiplied by 1647f0eca56SMatthew Dillonthe number of worker slots, can force excessive paging to occur and leave 165650b8785SSascha Wildnerpreciously little memory available to actually run compiles. 166650b8785SSascha WildnerSome paging 167650b8785SSascha Wildneris necessary to maintain maximum CPU utilization, but excessive paging 1687f0eca56SMatthew Dilloncan cause the whole machine to essentially become idle for extended 1697f0eca56SMatthew Dillonperiods of time. 1708ec23ca1SMatthew Dillon.It Fl v 1718ec23ca1SMatthew DillonQuickly output the version and exit. 1728ec23ca1SMatthew Dillon.It Fl y 1738ec23ca1SMatthew DillonAutomatically answer 'y'es to any questions. 1742c9f4f91SMatthew Dillon.It Fl p Ar profile 1752c9f4f91SMatthew DillonOverride the global profile default in 1762c9f4f91SMatthew Dillon.Pa /etc/dsynth/dsynth.ini , 1772c9f4f91SMatthew Dillonallowing you to trivially run whatever profile you like without having to 1782c9f4f91SMatthew Dillonedit the configuration file when switching. 1792c9f4f91SMatthew DillonIn addition, you can now run any number of dsynth's concurrently on the same 1802c9f4f91SMatthew Dillonmachine without having to use a jail, each with a different profile, 1812c9f4f91SMatthew Dillonas long as the packages, repository, buildbase, and logs directories 1822c9f4f91SMatthew Dillonare different. 1832c9f4f91SMatthew Dillon.Pp 1842c9f4f91SMatthew DillonNote that the distfiles directory can be shared and will not conflict 1852c9f4f91SMatthew Dillonor get confused with concurrent fetches. 1868ec23ca1SMatthew Dillon.It Fl s Ar n 1878ec23ca1SMatthew Dillon.Nm 1888ec23ca1SMatthew Dillonusually slow-starts the worker slots, beginning with one slot and increasing 1898ec23ca1SMatthew Dillonby one every 5 seconds until the maximum configured number of workers is 1908ec23ca1SMatthew Dillonreached. 1918ec23ca1SMatthew DillonThis gives 1928ec23ca1SMatthew Dillon.Nm 1938ec23ca1SMatthew Dillona slower ramp that it can load manage against. 1948ec23ca1SMatthew DillonSpecifying 0 disables the slow-start feature and the maximum number of 1958ec23ca1SMatthew Dillonworker slots (limited by the dependency graph) will be loaded immediately. 196a67bf8dbSMatthew Dillon.It Fl D 197a67bf8dbSMatthew DillonTurn on DEVELOPER mode when building ports. 198a67bf8dbSMatthew Dillon.It Fl S[S] 199650b8785SSascha WildnerTurn off curses for script friendliness. 200650b8785SSascha WildnerThe output will be log 00 and 20154f2fefcSMatthew Dillonshould be redirected to /dev/null or something similar. 202a67bf8dbSMatthew DillonIf you supply the options twice, color output escapes will also be 203a67bf8dbSMatthew Dillonturned off. 20454f2fefcSMatthew DillonYou may also wish to use the 20554f2fefcSMatthew Dillon.Fl y 20654f2fefcSMatthew Dillonoption for scripting dsynth. 2078ec23ca1SMatthew Dillon.El 2088ec23ca1SMatthew Dillon.Sh DIRECTIVES 2098ec23ca1SMatthew DillonGenerally 2108ec23ca1SMatthew Dillon.Nm 2118ec23ca1SMatthew Dillonis run with a directive and some directives allow a list of ports to be 212650b8785SSascha Wildnerspecified. 213650b8785SSascha WildnerThis list should be space-delimited in DIR/SUBDIR format, for example: 2148ec23ca1SMatthew Dillon.Ar www/chromium . 2158ec23ca1SMatthew DillonFor directives with an optional ports list, your current installed set 2168ec23ca1SMatthew Dillonof ports will be used if you do not specify a list. 2178ec23ca1SMatthew Dillon.Bl -tag -width indent 2188ec23ca1SMatthew Dillon.It Cm status 2198ec23ca1SMatthew DillonThis will do a dry-run of 2208ec23ca1SMatthew Dillon.Cm upgrade-system 2218ec23ca1SMatthew Dillonbut not actually build anything. 2228ec23ca1SMatthew Dillon.It Cm cleanup 2238ec23ca1SMatthew DillonThis will clean up any left-over mounts from prior builds. 2248ec23ca1SMatthew Dillon.Nm 2258ec23ca1SMatthew Dillonattempts to clean up all processes and mounts when you interrupt 2268ec23ca1SMatthew Dillona build but doesn't always succeed. 2278ec23ca1SMatthew Dillon.It Cm init 2288ec23ca1SMatthew DillonCreates and initializes the 2298ec23ca1SMatthew Dillon.Pa /etc/dsynth 2308ec23ca1SMatthew Dillondirectory if it does not exst. 2318ec23ca1SMatthew DillonThis directive will complain and exit if either 2328ec23ca1SMatthew Dillon.Pa /etc/dsynth 2338ec23ca1SMatthew Dillonor 2348ec23ca1SMatthew Dillon.Pa /usr/local/etc/dsynth 235650b8785SSascha Wildnerexists. 236650b8785SSascha WildnerIt will not create 2378ec23ca1SMatthew Dillon.Pa /etc/dsynth 2388ec23ca1SMatthew Dillonin this situation. 2398ec23ca1SMatthew Dillon.It Cm configure 2408ec23ca1SMatthew DillonNOT CURRENTLY IMPLEMENTED 2418ec23ca1SMatthew Dillon.It Cm upgrade-system 242650b8785SSascha WildnerNOT CURRENTLY IMPLEMENTED. 243650b8785SSascha WildnerIncrementally build and upgrade your locally 2448ec23ca1SMatthew Dilloninstalled packages, then upgrade your local system with them. 2458ec23ca1SMatthew Dillon.It Cm prepare-system 2468ec23ca1SMatthew DillonIncrementally build and upgrade your locally installed packages, but 2478ec23ca1SMatthew Dillondo not upgrade your system with them. 2488ec23ca1SMatthew Dillon.It Cm rebuild-repository 2498ec23ca1SMatthew DillonBuild or rebuild the database files for the configured repository. 2508ec23ca1SMatthew Dillon.It Cm purge-distfiles 2518ec23ca1SMatthew DillonDelete any obsolete source distribution files. 2528ec23ca1SMatthew Dillon.It Cm status-everything 2538ec23ca1SMatthew DillonThis will do a dry-run of a full bulk build of everything, 2548ec23ca1SMatthew Dillonbut not actually build anything. 2558ec23ca1SMatthew Dillon.It Cm everything 2568ec23ca1SMatthew DillonThis will build the entire dports tree and then rebuild the repository 2578ec23ca1SMatthew Dillonwhen it finishes. 2588ec23ca1SMatthew Dillon.It Cm version 259650b8785SSascha WildnerThis is for synth compatibility. 260650b8785SSascha WildnerThe version of 2618ec23ca1SMatthew Dillon.Nm 2628ec23ca1SMatthew Dillonwill be printed and the program will exit. 2638ec23ca1SMatthew Dillon.It Cm help 2648ec23ca1SMatthew DillonOutput a synopsis of options and directives and exit. 2658ec23ca1SMatthew Dillon.It Cm status Op Ar ports 2668ec23ca1SMatthew DillonDo a dry-run with 'build' of the given list. 2678ec23ca1SMatthew Dillon.It Cm build Op Ar ports 268650b8785SSascha WildnerIncrementally build dports based on the given list. 269650b8785SSascha WildnerWhen done, ask whether the repository should be rebuilt or not. 2708ec23ca1SMatthew Dillon.It Cm just-build Op Ar ports 2718ec23ca1SMatthew DillonIncrementally build dports based on the given list, then 272650b8785SSascha Wildnerexits. 273650b8785SSascha WildnerNo post-build steps will be taken. 2748ec23ca1SMatthew Dillon.It Cm install Op Ar ports 2758ec23ca1SMatthew DillonNOT CURRENTLY IMPLEMENTED. 'build' based on the supplied 2768ec23ca1SMatthew Dillonlist (or using currently installed packages), then rebuild 27717be4d43SSascha Wildnerthe repository and upgrade the system without asking any further 2788ec23ca1SMatthew Dillonquestions. 2798ec23ca1SMatthew Dillon.It Cm force Op Ar ports 280650b8785SSascha WildnerThis is the same as 'build' but will delete existing packages first. 281650b8785SSascha WildnerDependencies are not deleted unless they are out of date. 2828ec23ca1SMatthew Dillon.It Cm test Op Ar ports 2838ec23ca1SMatthew DillonThis is the same as 'build' but sets the environment variable 284650b8785SSascha Wildner.Ev DEVELOPER 285650b8785SSascha Wildnerto 286650b8785SSascha Wildner.Sq yes 287650b8785SSascha Wildnerand pre-deletes specified packages. 288650b8785SSascha WildnerDependencies are not deleted unless they are out of date. 289*bc7e28d2SMatthew Dillon.It Cm debug Op Ar ports 290*bc7e28d2SMatthew DillonThis is the same as 'build' but leaves the chroot mounts intact 291*bc7e28d2SMatthew Dillonupon completion. 2928ec23ca1SMatthew Dillon.El 2938ec23ca1SMatthew Dillon.Sh FILES 2948ec23ca1SMatthew Dillon.Bl -tag -width ".It Pa <fs>/abc/defghi/<name>" -compact 2952c9f4f91SMatthew Dillon.It Pa /etc/dsynth/dsynth.ini 296650b8785SSascha WildnerThe primary configuration file. 297650b8785SSascha WildnerIf not found, 2988ec23ca1SMatthew Dillon.Nm 2998ec23ca1SMatthew Dillonwill also look in 3002c9f4f91SMatthew Dillon.Pa /usr/local/etc/dsynth/dsynth.ini . 3018ec23ca1SMatthew Dillon.Pp 3028ec23ca1SMatthew Dillon.It Pa /etc/dsynth/LiveSystem-make.conf 3038ec23ca1SMatthew DillonTypically contains the environment variables that will be set in 3048ec23ca1SMatthew Dillonthe workers. 3058ec23ca1SMatthew Dillon.Nm 3068ec23ca1SMatthew Dillonfirewalls the environment it is run under from the environment it 3078ec23ca1SMatthew Dillonprovides to the workers. 3088ec23ca1SMatthew Dillon.Pp 3098ec23ca1SMatthew Dillon.It Pa /build/synth/build 3108ec23ca1SMatthew DillonRecommended setting for 311650b8785SSascha Wildner.Va Directory_buildbase , 3128ec23ca1SMatthew Dilloncontains the build infrastructure... typically a template, mirrored 3138ec23ca1SMatthew Dillonsystem directories, and mount points for all the worker slots. 3148ec23ca1SMatthew DillonThe template will be [re]generated if 'pkg' needs to be built or 3158ec23ca1SMatthew Dillonif the 3168ec23ca1SMatthew Dillon.Pa .template.good 3178ec23ca1SMatthew Dillonfile in this directory is deleted. 3188ec23ca1SMatthew Dillon.Pp 3198ec23ca1SMatthew Dillon.It Pa /build/synth/distfiles 3208ec23ca1SMatthew DillonRecommended setting for 321650b8785SSascha Wildner.Va Directory_distfiles , 3228ec23ca1SMatthew Dillonports to a directory into which 3238ec23ca1SMatthew Dillon.Nm 3248ec23ca1SMatthew Dillonwill download any source distribution files required for building. 3258ec23ca1SMatthew Dillon.Pp 3268ec23ca1SMatthew Dillon.It Pa /build/synth/dports 3278ec23ca1SMatthew DillonRecommended setting for 328650b8785SSascha Wildner.Va Directory_portsdir , 3298ec23ca1SMatthew Dillonpoints to a checked out dports repo. 3308ec23ca1SMatthew DillonNote that 3318ec23ca1SMatthew Dillon.Nm 3328ec23ca1SMatthew Dillondoes not automatically 'git pull' or otherwise synchronize the dports repo, 3338ec23ca1SMatthew Dillonyou must do that yourself prior to starting a build. 3348ec23ca1SMatthew Dillon.Pp 3358ec23ca1SMatthew Dillon.It Pa /build/synth/live_packages 3368ec23ca1SMatthew DillonRecommended setting for 337650b8785SSascha Wildner.Va Directory_packages , 3388ec23ca1SMatthew Dillonpoints to a directory which will contain the completed application 3398ec23ca1SMatthew Dillonpackages. 3408ec23ca1SMatthew Dillon.Pp 3418ec23ca1SMatthew Dillon.It Pa /build/synth/logs 3428ec23ca1SMatthew DillonRecommended setting for 343650b8785SSascha Wildner.Va Directory_logs , 3448ec23ca1SMatthew Dillonall log files will be placed in this directory. 3458ec23ca1SMatthew DillonSpecial management logfiles begin with the numeral '0' for easily 3468ec23ca1SMatthew Dillonlocation. 3478ec23ca1SMatthew DillonThe logfiles for ports while and after building are stored in the 3488ec23ca1SMatthew Dillonform subdir____portname.log, with three underscores. 3498ec23ca1SMatthew Dillon.Pp 3508ec23ca1SMatthew Dillon.It Pa /build/synth/options 3518ec23ca1SMatthew DillonRecommended setting for 352650b8785SSascha Wildner.Va Directory_options , 3538ec23ca1SMatthew Dillonwhere options overrides for specific ports may be located. 3548ec23ca1SMatthew Dillon.Pp 3558ec23ca1SMatthew Dillon.It Pa / 3568ec23ca1SMatthew DillonRecommended setting for 357650b8785SSascha Wildner.Va Directory_system , 3588ec23ca1SMatthew Dillonwhich 3598ec23ca1SMatthew Dillon.Nm 3608ec23ca1SMatthew Dillonuses as a basis for creating the jails or chroots in each worker slot 3618ec23ca1SMatthew Dillonduring building. 3628ec23ca1SMatthew DillonNo part of the system root is ever NULL-mounted read-write... it is always 3638ec23ca1SMatthew DillonNULL-mounted read-only. 3648ec23ca1SMatthew DillonSome elements from the system base will be mirrored in the build-base 3658ec23ca1SMatthew Dillonas an optimization. 3668ec23ca1SMatthew Dillon.Pp 3678ec23ca1SMatthew DillonNote that the packages directory and the distfiles directory is mounted 368650b8785SSascha Wildnerread-write in jails or chroots. 369650b8785SSascha WildnerAll other r/w filesystems in the workers are 3708ec23ca1SMatthew Dillon.Xr tmpfs 5 3718ec23ca1SMatthew Dillonbased filesystems and will be created and torn-down for each port. 372483dbac9SMatthew Dillon.Pp 373483dbac9SMatthew Dillon.It Pa .txz 374483dbac9SMatthew Dillon.It Pa .tgz 375483dbac9SMatthew Dillon.It Pa .tar 376483dbac9SMatthew Dillon.It Pa .tbz 377483dbac9SMatthew DillonThe recommended setting for 378483dbac9SMatthew Dillon.Va Package_suffix 379483dbac9SMatthew Dillonis either 380483dbac9SMatthew Dillon.Pa .txz 381483dbac9SMatthew Dillonor 382483dbac9SMatthew Dillon.Pa .tgz . 383483dbac9SMatthew DillonUse 384483dbac9SMatthew Dillon.Pa .txz 385483dbac9SMatthew Dillonfor better compression at the cost of somewhat slower bulk builds due 386483dbac9SMatthew Dillonto the time overhead for compression and decompression, or 387483dbac9SMatthew Dillonuse 388483dbac9SMatthew Dillon.Pa .tgz 389483dbac9SMatthew Dillonfor modest compression and very fast compression and decompression. 390483dbac9SMatthew DillonDue to the way the builder works, package dependencies are fresly 391483dbac9SMatthew Dilloninstalled into the chroot slot for each package being built, so 392483dbac9SMatthew Dillondecompression time matters. 3938ec23ca1SMatthew Dillon.El 3948ec23ca1SMatthew Dillon.Sh EXIT STATUS 3958ec23ca1SMatthew Dillon.Ex -std 3968ec23ca1SMatthew Dillon.Sh SEE ALSO 39717be4d43SSascha Wildner.Xr synth 1 , 3988ec23ca1SMatthew Dillon.Xr dports 7 3998ec23ca1SMatthew Dillon.Sh HISTORY 4008ec23ca1SMatthew DillonThe 4018ec23ca1SMatthew Dillon.Nm 4028ec23ca1SMatthew Dillonutility first appeared in 4038ec23ca1SMatthew Dillon.Dx 5.7 . 4048ec23ca1SMatthew Dillon.Sh AUTHORS 4058ec23ca1SMatthew Dillon.An Matthew Dillon Aq Mt dillon@backplane.com 406