xref: /dflybsd-src/usr.bin/dsynth/dsynth.1 (revision bc7e28d2989d9e7fa40bfa5d6e029318d0e5ef0d)
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