17a57a34fSSascha Wildner.\" 2*c6142119SAntonio Huete Jimenez.\" Copyright (c) 2021 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.\" 35*c6142119SAntonio Huete Jimenez.Dd January 26, 2021 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 43b6bd007bSMatthew Dillon.Op Fl dhvxyDSN 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 61b6bd007bSMatthew Dillonalso detects changes made to the ports tree and rebuilds packages 62b6bd007bSMatthew Dillonand anything that depends on those packages as needed. 63b6bd007bSMatthew Dillon.Pp 648ec23ca1SMatthew Dillon.Nm 658ec23ca1SMatthew Dillonis based on an application called 668ec23ca1SMatthew Dillon.Xr synth 1 67650b8785SSascha Wildnerwhich was written by John Marino in Ada and served as the conceptual base 688ec23ca1SMatthew Dillonfor this program. 698ec23ca1SMatthew Dillon.Nm 708ec23ca1SMatthew Dillonis written in C and designed to be as portable as possible given a 718ec23ca1SMatthew Dillonports-style infrastructure. 728ec23ca1SMatthew Dillon.Pp 738ec23ca1SMatthew DillonOur recommended build topology is with a configuration as follows: 748ec23ca1SMatthew Dillon.Bd -literal 758ec23ca1SMatthew Dillon[Global Configuration] 768ec23ca1SMatthew Dillonprofile_selected= LiveSystem 778ec23ca1SMatthew Dillon 788ec23ca1SMatthew Dillon[LiveSystem] 798ec23ca1SMatthew DillonOperating_system= DragonFly 808ec23ca1SMatthew DillonDirectory_packages= /build/synth/live_packages 818ec23ca1SMatthew DillonDirectory_repository= /build/synth/live_packages/All 828ec23ca1SMatthew DillonDirectory_portsdir= /build/synth/dports 838ec23ca1SMatthew DillonDirectory_options= /build/synth/options 848ec23ca1SMatthew DillonDirectory_distfiles= /build/synth/distfiles 858ec23ca1SMatthew DillonDirectory_buildbase= /build/synth/build 868ec23ca1SMatthew DillonDirectory_logs= /build/synth/logs 878ec23ca1SMatthew DillonDirectory_ccache= disabled 888ec23ca1SMatthew DillonDirectory_system= / 89483dbac9SMatthew DillonPackage_suffix= .txz 908ec23ca1SMatthew DillonNumber_of_builders= 8 918ec23ca1SMatthew DillonMax_jobs_per_builder= 8 928ec23ca1SMatthew DillonDisplay_with_ncurses= true 938ec23ca1SMatthew Dillon.Ed 948ec23ca1SMatthew Dillon.Pp 958ec23ca1SMatthew DillonThis places all major directories under 968ec23ca1SMatthew Dillon.Pa /build/synth . 978ec23ca1SMatthew DillonIf you want to use the same dports and the same distfiles as your base 988ec23ca1SMatthew Dillonsystem, you can null-mount /usr/distfiles onto /build/synth/distfiles 998ec23ca1SMatthew Dillonand /usr/dports onto /build/synth/dports with 1008ec23ca1SMatthew Dillon.Pa /etc/fstab 1018ec23ca1SMatthew Dillonentries as follows: 1028ec23ca1SMatthew Dillon.Bd -literal 1038ec23ca1SMatthew Dillon# Device Mountpoint FStype Options DumpPass# 1048ec23ca1SMatthew Dillon/usr/distfiles /build/synth/distfiles null rw 4 4 1058ec23ca1SMatthew Dillon/usr/dports /build/synth/dports null rw 4 4 1068ec23ca1SMatthew Dillon.Ed 1078ec23ca1SMatthew Dillon.Pp 1088ec23ca1SMatthew DillonPlease set the number of builders and the maximum number of jobs per 109650b8785SSascha Wildnerbuilder according to available system resources. 110650b8785SSascha WildnerRemember that the total 1118ec23ca1SMatthew Dillonload on the system can be as high as (builders x jobs), and at least 4x 112650b8785SSascha Wildnerthat value in processes. 113650b8785SSascha WildnerSystems are typically restricted by memory and CPU horsepower. 114650b8785SSascha WildnerStart conservative and ramp up according to what your system can handle. 115650b8785SSascha WildnerA good rule of thumb is to set workers to the number of CPU threads your 1168ec23ca1SMatthew Dillonmachine has or to 1/2 the number of gigabytes of memory your system has, 117650b8785SSascha Wildnerwhichever is lower. 118650b8785SSascha WildnerThen set the jobs per worker to no more than the 119650b8785SSascha Wildnernumber of CPU threads your machine has. 1208ec23ca1SMatthew Dillon.Pp 1218ec23ca1SMatthew Dillon.Nm 12217be4d43SSascha Wildnerhas numerous features to manage machine load and swap usage to 1238ec23ca1SMatthew Dillonprevent a machine from being overloaded, allowing more workers 1248ec23ca1SMatthew Dillonto be configured than you might otherwise think is reasonable 1258ec23ca1SMatthew Dillon(which helps a lot when building the smaller ports). 1268ec23ca1SMatthew DillonHowever, users running this program should be aware that very high loads 1278ec23ca1SMatthew Dillonand modest swap use are still likely to develop when building a large 1288ec23ca1SMatthew Dillonnumber of ports or when building very large ports like chromium. 1298ec23ca1SMatthew DillonIf the system is not dedicated to building packages you can reduce the 1308ec23ca1SMatthew Dillonimpact to the rest of the system by running 1318ec23ca1SMatthew Dillon.Nm 1328ec23ca1SMatthew Dillonat nice +20 and also by reducing the number of workers and number of 1338ec23ca1SMatthew Dillonjobs per worker somewhat. 1348ec23ca1SMatthew Dillon.Pp 1358ec23ca1SMatthew DillonWe recommend that a minimum of 64GB of SSD-based swap be configured, 1368ec23ca1SMatthew Dillonor twice as much swap as main memory, whichever is the higher value. 1378ec23ca1SMatthew Dillon.Pp 1388ec23ca1SMatthew DillonWe recommend a minimum of 500GB of storage be configured in 1398ec23ca1SMatthew Dillon.Pa /build 1408ec23ca1SMatthew Dillonor wherever you have configured various directories. 1418ec23ca1SMatthew DillonA full set of distfiles requires at least 120GB, a full dports including 1428ec23ca1SMatthew Dillonthe git repo requires at least 1.5GB, and a full set of built packages 143650b8785SSascha Wildnerrequires at least 75GB. 144650b8785SSascha WildnerIf using a filesystem such as HAMMER or HAMMER2 1458ec23ca1SMatthew Dillonwhich frees space overnight, double all of those numbers. 1468ec23ca1SMatthew Dillon.Pp 1478ec23ca1SMatthew DillonThe actual build infrastructure uses tmpfs... memory and swap, and does 1488ec23ca1SMatthew Dillonnot use regular filesystem space. 1498ec23ca1SMatthew Dillon.Sh OPTIONS 1508ec23ca1SMatthew Dillon.Bl -tag -width indent 151a67bf8dbSMatthew Dillon.It Fl d[d...] 152650b8785SSascha WildnerRun in debug mode. 153650b8785SSascha WildnerIf specified two or more times this will turn off 15454f2fefcSMatthew Dillonncurses and output the primary log (00_last_results.log) to the standard 15554f2fefcSMatthew Dillonoutput, along with additional spew. 1568ec23ca1SMatthew Dillon.It Fl h 1578ec23ca1SMatthew DillonQuickly output a synopsis of options and directives and exit. 1587f0eca56SMatthew Dillon.It Fl m Ar gb 1597f0eca56SMatthew DillonOverride the default package dependency memory target, in gigabytes. 160650b8785SSascha WildnerThe default is 1/2 physical memory. 161650b8785SSascha WildnerThe number of workers will be limited 1627f0eca56SMatthew Dillonsuch that the aggregate size of package dependencies installed in each 1637f0eca56SMatthew Dillonworker slot does not exceed this value. 1647f0eca56SMatthew Dillon.Pp 1657f0eca56SMatthew DillonThis handles a well-known effect where the sheer amount of data that has 1667f0eca56SMatthew Dillonto be installed in tmpfs filesystems for large ports, when multiplied by 1677f0eca56SMatthew Dillonthe number of worker slots, can force excessive paging to occur and leave 168650b8785SSascha Wildnerpreciously little memory available to actually run compiles. 169650b8785SSascha WildnerSome paging 170650b8785SSascha Wildneris necessary to maintain maximum CPU utilization, but excessive paging 1717f0eca56SMatthew Dilloncan cause the whole machine to essentially become idle for extended 1727f0eca56SMatthew Dillonperiods of time. 1732c9f4f91SMatthew Dillon.It Fl p Ar profile 1742c9f4f91SMatthew DillonOverride the global profile default in 1752c9f4f91SMatthew Dillon.Pa /etc/dsynth/dsynth.ini , 1762c9f4f91SMatthew Dillonallowing you to trivially run whatever profile you like without having to 1772c9f4f91SMatthew Dillonedit the configuration file when switching. 1782c9f4f91SMatthew DillonIn addition, you can now run any number of dsynth's concurrently on the same 1792c9f4f91SMatthew Dillonmachine without having to use a jail, each with a different profile, 1802c9f4f91SMatthew Dillonas long as the packages, repository, buildbase, and logs directories 1812c9f4f91SMatthew Dillonare different. 1822c9f4f91SMatthew Dillon.Pp 1832c9f4f91SMatthew DillonNote that the distfiles directory can be shared and will not conflict 1842c9f4f91SMatthew Dillonor get confused with concurrent fetches. 1858ec23ca1SMatthew Dillon.It Fl s Ar n 1868ec23ca1SMatthew Dillon.Nm 1878ec23ca1SMatthew Dillonusually slow-starts the worker slots, beginning with one slot and increasing 1888ec23ca1SMatthew Dillonby one every 5 seconds until the maximum configured number of workers is 1898ec23ca1SMatthew Dillonreached. 1908ec23ca1SMatthew DillonThis gives 1918ec23ca1SMatthew Dillon.Nm 1928ec23ca1SMatthew Dillona slower ramp that it can load manage against. 1938ec23ca1SMatthew DillonSpecifying 0 disables the slow-start feature and the maximum number of 1948ec23ca1SMatthew Dillonworker slots (limited by the dependency graph) will be loaded immediately. 195*c6142119SAntonio Huete Jimenez.It Fl v 196*c6142119SAntonio Huete JimenezQuickly output the version and exit. 197*c6142119SAntonio Huete Jimenez.It Fl x 198*c6142119SAntonio Huete Jimenez.It Fl xx 199*c6142119SAntonio Huete JimenezNormally dsynth builds a package for any of three reasons: (1) If the contents 200*c6142119SAntonio Huete Jimenezof the ports directory changes, (2) If anything the port depends on requires 201*c6142119SAntonio Huete Jimenezrebuilding so to will the port be rebuilt, (3) If there is no binary package 202*c6142119SAntonio Huete Jimenezalready built for the port. 203*c6142119SAntonio Huete Jimenez.Pp 204*c6142119SAntonio Huete JimenezIf this option is specified, the first test is ignored. 205*c6142119SAntonio Huete JimenezIf this option is specified twice, the first and second tests are ignored. 206*c6142119SAntonio Huete Jimenez.It Fl y 207*c6142119SAntonio Huete JimenezAutomatically answer 'y'es to any questions. 208a67bf8dbSMatthew Dillon.It Fl D 209a67bf8dbSMatthew DillonTurn on DEVELOPER mode when building ports. 210*c6142119SAntonio Huete Jimenez.It Fl P 211*c6142119SAntonio Huete JimenezInclude the check-plist stage. 212*c6142119SAntonio Huete JimenezThis is the default for the 213*c6142119SAntonio Huete Jimenez.Cm everything 214*c6142119SAntonio Huete Jimenezdirective. 215a67bf8dbSMatthew Dillon.It Fl S[S] 216650b8785SSascha WildnerTurn off curses for script friendliness. 217650b8785SSascha WildnerThe output will be log 00 and 21854f2fefcSMatthew Dillonshould be redirected to /dev/null or something similar. 219a67bf8dbSMatthew DillonIf you supply the options twice, color output escapes will also be 220a67bf8dbSMatthew Dillonturned off. 22154f2fefcSMatthew DillonYou may also wish to use the 22254f2fefcSMatthew Dillon.Fl y 22354f2fefcSMatthew Dillonoption for scripting dsynth. 2246d1478d9SMatthew Dillon.It Fl N 2256d1478d9SMatthew DillonNormally 2266d1478d9SMatthew Dillon.Nm 2276d1478d9SMatthew Dillonnices its sub-processes to +10. 2286d1478d9SMatthew DillonThis option disables the feature. 2298ec23ca1SMatthew Dillon.El 2308ec23ca1SMatthew Dillon.Sh DIRECTIVES 2318ec23ca1SMatthew DillonGenerally 2328ec23ca1SMatthew Dillon.Nm 2338ec23ca1SMatthew Dillonis run with a directive and some directives allow a list of ports to be 234650b8785SSascha Wildnerspecified. 235650b8785SSascha WildnerThis list should be space-delimited in DIR/SUBDIR format, for example: 2368ec23ca1SMatthew Dillon.Ar www/chromium . 2378ec23ca1SMatthew DillonFor directives with an optional ports list, your current installed set 2388ec23ca1SMatthew Dillonof ports will be used if you do not specify a list. 2398ec23ca1SMatthew Dillon.Bl -tag -width indent 2408ec23ca1SMatthew Dillon.It Cm init 2418ec23ca1SMatthew DillonCreates and initializes the 2428ec23ca1SMatthew Dillon.Pa /etc/dsynth 2438ec23ca1SMatthew Dillondirectory if it does not exst. 2448ec23ca1SMatthew DillonThis directive will complain and exit if either 2458ec23ca1SMatthew Dillon.Pa /etc/dsynth 2468ec23ca1SMatthew Dillonor 2478ec23ca1SMatthew Dillon.Pa /usr/local/etc/dsynth 248650b8785SSascha Wildnerexists. 249650b8785SSascha WildnerIt will not create 2508ec23ca1SMatthew Dillon.Pa /etc/dsynth 2518ec23ca1SMatthew Dillonin this situation. 252*c6142119SAntonio Huete Jimenez.It Cm status 253*c6142119SAntonio Huete JimenezThis will do a dry-run of 254*c6142119SAntonio Huete Jimenez.Cm upgrade-system 255*c6142119SAntonio Huete Jimenezbut not actually build anything. 256*c6142119SAntonio Huete Jimenez.It Cm cleanup 257*c6142119SAntonio Huete JimenezThis will clean up any left-over mounts from prior builds. 258*c6142119SAntonio Huete Jimenez.Nm 259*c6142119SAntonio Huete Jimenezattempts to clean up all processes and mounts when you interrupt 260*c6142119SAntonio Huete Jimeneza build but doesn't always succeed. 2618ec23ca1SMatthew Dillon.It Cm configure 2628ec23ca1SMatthew DillonNOT CURRENTLY IMPLEMENTED 2638ec23ca1SMatthew Dillon.It Cm upgrade-system 264650b8785SSascha WildnerNOT CURRENTLY IMPLEMENTED. 265650b8785SSascha WildnerIncrementally build and upgrade your locally 2668ec23ca1SMatthew Dilloninstalled packages, then upgrade your local system with them. 2678ec23ca1SMatthew Dillon.It Cm prepare-system 2688ec23ca1SMatthew DillonIncrementally build and upgrade your locally installed packages, but 2698ec23ca1SMatthew Dillondo not upgrade your system with them. 2708ec23ca1SMatthew Dillon.It Cm rebuild-repository 2718ec23ca1SMatthew DillonBuild or rebuild the database files for the configured repository. 2728ec23ca1SMatthew Dillon.It Cm purge-distfiles 2738ec23ca1SMatthew DillonDelete any obsolete source distribution files. 274b6bd007bSMatthew Dillon.It Cm reset-db 275*c6142119SAntonio Huete JimenezDelete ports_crc.db from the build directory. 276*c6142119SAntonio Huete JimenezThis database is used to detect changes made to the dports tree. 277*c6142119SAntonio Huete JimenezIt will be regenerated on your next build without forcing any packages to be rebuilt. 2788ec23ca1SMatthew Dillon.It Cm status-everything 2798ec23ca1SMatthew DillonThis will do a dry-run of a full bulk build of everything, 2808ec23ca1SMatthew Dillonbut not actually build anything. 2818ec23ca1SMatthew Dillon.It Cm everything 2828ec23ca1SMatthew DillonThis will build the entire dports tree and then rebuild the repository 2838ec23ca1SMatthew Dillonwhen it finishes. 2848ec23ca1SMatthew Dillon.It Cm version 285650b8785SSascha WildnerThis is for synth compatibility. 286650b8785SSascha WildnerThe version of 2878ec23ca1SMatthew Dillon.Nm 2888ec23ca1SMatthew Dillonwill be printed and the program will exit. 2898ec23ca1SMatthew Dillon.It Cm help 2908ec23ca1SMatthew DillonOutput a synopsis of options and directives and exit. 2918ec23ca1SMatthew Dillon.It Cm status Op Ar ports 2928ec23ca1SMatthew DillonDo a dry-run with 'build' of the given list. 2938ec23ca1SMatthew Dillon.It Cm build Op Ar ports 294650b8785SSascha WildnerIncrementally build dports based on the given list. 295650b8785SSascha WildnerWhen done, ask whether the repository should be rebuilt or not. 2968ec23ca1SMatthew Dillon.It Cm just-build Op Ar ports 2978ec23ca1SMatthew DillonIncrementally build dports based on the given list, then 298650b8785SSascha Wildnerexits. 299650b8785SSascha WildnerNo post-build steps will be taken. 3008ec23ca1SMatthew Dillon.It Cm install Op Ar ports 3018ec23ca1SMatthew DillonNOT CURRENTLY IMPLEMENTED. 'build' based on the supplied 3028ec23ca1SMatthew Dillonlist (or using currently installed packages), then rebuild 30317be4d43SSascha Wildnerthe repository and upgrade the system without asking any further 3048ec23ca1SMatthew Dillonquestions. 3058ec23ca1SMatthew Dillon.It Cm force Op Ar ports 306650b8785SSascha WildnerThis is the same as 'build' but will delete existing packages first. 307650b8785SSascha WildnerDependencies are not deleted unless they are out of date. 3088ec23ca1SMatthew Dillon.It Cm test Op Ar ports 3098ec23ca1SMatthew DillonThis is the same as 'build' but sets the environment variable 310650b8785SSascha Wildner.Ev DEVELOPER 311650b8785SSascha Wildnerto 312650b8785SSascha Wildner.Sq yes 313650b8785SSascha Wildnerand pre-deletes specified packages. 314650b8785SSascha WildnerDependencies are not deleted unless they are out of date. 315bc7e28d2SMatthew Dillon.It Cm debug Op Ar ports 316bc7e28d2SMatthew DillonThis is the same as 'build' but leaves the chroot mounts intact 317bc7e28d2SMatthew Dillonupon completion. 318*c6142119SAntonio Huete Jimenez.It Cm monitor Op Ar datfile 319*c6142119SAntonio Huete JimenezMonitors a running dsynth instance. 3208ec23ca1SMatthew Dillon.El 3218ec23ca1SMatthew Dillon.Sh FILES 3228ec23ca1SMatthew Dillon.Bl -tag -width ".It Pa <fs>/abc/defghi/<name>" -compact 3232c9f4f91SMatthew Dillon.It Pa /etc/dsynth/dsynth.ini 324650b8785SSascha WildnerThe primary configuration file. 325650b8785SSascha WildnerIf not found, 3268ec23ca1SMatthew Dillon.Nm 3278ec23ca1SMatthew Dillonwill also look in 3282c9f4f91SMatthew Dillon.Pa /usr/local/etc/dsynth/dsynth.ini . 3298ec23ca1SMatthew Dillon.Pp 3308ec23ca1SMatthew Dillon.It Pa /etc/dsynth/LiveSystem-make.conf 3318ec23ca1SMatthew DillonTypically contains the environment variables that will be set in 3328ec23ca1SMatthew Dillonthe workers. 3338ec23ca1SMatthew Dillon.Nm 3348ec23ca1SMatthew Dillonfirewalls the environment it is run under from the environment it 3358ec23ca1SMatthew Dillonprovides to the workers. 3368ec23ca1SMatthew Dillon.Pp 3378ec23ca1SMatthew Dillon.It Pa /build/synth/build 3388ec23ca1SMatthew DillonRecommended setting for 339650b8785SSascha Wildner.Va Directory_buildbase , 3408ec23ca1SMatthew Dilloncontains the build infrastructure... typically a template, mirrored 3418ec23ca1SMatthew Dillonsystem directories, and mount points for all the worker slots. 3428ec23ca1SMatthew DillonThe template will be [re]generated if 'pkg' needs to be built or 3438ec23ca1SMatthew Dillonif the 3448ec23ca1SMatthew Dillon.Pa .template.good 3458ec23ca1SMatthew Dillonfile in this directory is deleted. 3468ec23ca1SMatthew Dillon.Pp 3478ec23ca1SMatthew Dillon.It Pa /build/synth/distfiles 3488ec23ca1SMatthew DillonRecommended setting for 349650b8785SSascha Wildner.Va Directory_distfiles , 3508ec23ca1SMatthew Dillonports to a directory into which 3518ec23ca1SMatthew Dillon.Nm 3528ec23ca1SMatthew Dillonwill download any source distribution files required for building. 3538ec23ca1SMatthew Dillon.Pp 3548ec23ca1SMatthew Dillon.It Pa /build/synth/dports 3558ec23ca1SMatthew DillonRecommended setting for 356650b8785SSascha Wildner.Va Directory_portsdir , 3578ec23ca1SMatthew Dillonpoints to a checked out dports repo. 3588ec23ca1SMatthew DillonNote that 3598ec23ca1SMatthew Dillon.Nm 3608ec23ca1SMatthew Dillondoes not automatically 'git pull' or otherwise synchronize the dports repo, 3618ec23ca1SMatthew Dillonyou must do that yourself prior to starting a build. 3628ec23ca1SMatthew Dillon.Pp 3638ec23ca1SMatthew Dillon.It Pa /build/synth/live_packages 3648ec23ca1SMatthew DillonRecommended setting for 365650b8785SSascha Wildner.Va Directory_packages , 3668ec23ca1SMatthew Dillonpoints to a directory which will contain the completed application 3678ec23ca1SMatthew Dillonpackages. 3688ec23ca1SMatthew Dillon.Pp 3698ec23ca1SMatthew Dillon.It Pa /build/synth/logs 3708ec23ca1SMatthew DillonRecommended setting for 371650b8785SSascha Wildner.Va Directory_logs , 3728ec23ca1SMatthew Dillonall log files will be placed in this directory. 3738ec23ca1SMatthew DillonSpecial management logfiles begin with the numeral '0' for easily 3748ec23ca1SMatthew Dillonlocation. 3758ec23ca1SMatthew DillonThe logfiles for ports while and after building are stored in the 3768ec23ca1SMatthew Dillonform subdir____portname.log, with three underscores. 3778ec23ca1SMatthew Dillon.Pp 3788ec23ca1SMatthew Dillon.It Pa /build/synth/options 3798ec23ca1SMatthew DillonRecommended setting for 380650b8785SSascha Wildner.Va Directory_options , 3818ec23ca1SMatthew Dillonwhere options overrides for specific ports may be located. 3828ec23ca1SMatthew Dillon.Pp 3838ec23ca1SMatthew Dillon.It Pa / 3848ec23ca1SMatthew DillonRecommended setting for 385650b8785SSascha Wildner.Va Directory_system , 3868ec23ca1SMatthew Dillonwhich 3878ec23ca1SMatthew Dillon.Nm 3888ec23ca1SMatthew Dillonuses as a basis for creating the jails or chroots in each worker slot 3898ec23ca1SMatthew Dillonduring building. 3908ec23ca1SMatthew DillonNo part of the system root is ever NULL-mounted read-write... it is always 3918ec23ca1SMatthew DillonNULL-mounted read-only. 3928ec23ca1SMatthew DillonSome elements from the system base will be mirrored in the build-base 3938ec23ca1SMatthew Dillonas an optimization. 3948ec23ca1SMatthew Dillon.Pp 3958ec23ca1SMatthew DillonNote that the packages directory and the distfiles directory is mounted 396650b8785SSascha Wildnerread-write in jails or chroots. 397650b8785SSascha WildnerAll other r/w filesystems in the workers are 3988ec23ca1SMatthew Dillon.Xr tmpfs 5 3998ec23ca1SMatthew Dillonbased filesystems and will be created and torn-down for each port. 400483dbac9SMatthew Dillon.Pp 401483dbac9SMatthew Dillon.It Pa .txz 402483dbac9SMatthew Dillon.It Pa .tgz 403483dbac9SMatthew Dillon.It Pa .tar 404483dbac9SMatthew Dillon.It Pa .tbz 405483dbac9SMatthew DillonThe recommended setting for 406483dbac9SMatthew Dillon.Va Package_suffix 407483dbac9SMatthew Dillonis either 408483dbac9SMatthew Dillon.Pa .txz 409483dbac9SMatthew Dillonor 410483dbac9SMatthew Dillon.Pa .tgz . 411483dbac9SMatthew DillonUse 412483dbac9SMatthew Dillon.Pa .txz 413483dbac9SMatthew Dillonfor better compression at the cost of somewhat slower bulk builds due 414483dbac9SMatthew Dillonto the time overhead for compression and decompression, or 415483dbac9SMatthew Dillonuse 416483dbac9SMatthew Dillon.Pa .tgz 417483dbac9SMatthew Dillonfor modest compression and very fast compression and decompression. 418483dbac9SMatthew DillonDue to the way the builder works, package dependencies are fresly 419483dbac9SMatthew Dilloninstalled into the chroot slot for each package being built, so 420483dbac9SMatthew Dillondecompression time matters. 4218ec23ca1SMatthew Dillon.El 4228ec23ca1SMatthew Dillon.Sh EXIT STATUS 4238ec23ca1SMatthew Dillon.Ex -std 4248ec23ca1SMatthew Dillon.Sh SEE ALSO 42517be4d43SSascha Wildner.Xr synth 1 , 4268ec23ca1SMatthew Dillon.Xr dports 7 4278ec23ca1SMatthew Dillon.Sh HISTORY 4288ec23ca1SMatthew DillonThe 4298ec23ca1SMatthew Dillon.Nm 4308ec23ca1SMatthew Dillonutility first appeared in 4318ec23ca1SMatthew Dillon.Dx 5.7 . 4328ec23ca1SMatthew Dillon.Sh AUTHORS 4338ec23ca1SMatthew Dillon.An Matthew Dillon Aq Mt dillon@backplane.com 434