14000f72fSDavid E. O'Brien.\" 24000f72fSDavid E. O'Brien.\" Copyright (c) 1997 David E. O'Brien 34000f72fSDavid E. O'Brien.\" 44000f72fSDavid E. O'Brien.\" All rights reserved. 54000f72fSDavid E. O'Brien.\" 64000f72fSDavid E. O'Brien.\" Redistribution and use in source and binary forms, with or without 74000f72fSDavid E. O'Brien.\" modification, are permitted provided that the following conditions 84000f72fSDavid E. O'Brien.\" are met: 94000f72fSDavid E. O'Brien.\" 1. Redistributions of source code must retain the above copyright 104000f72fSDavid E. O'Brien.\" notice, this list of conditions and the following disclaimer. 114000f72fSDavid E. O'Brien.\" 2. Redistributions in binary form must reproduce the above copyright 124000f72fSDavid E. O'Brien.\" notice, this list of conditions and the following disclaimer in the 134000f72fSDavid E. O'Brien.\" documentation and/or other materials provided with the distribution. 144000f72fSDavid E. O'Brien.\" 154000f72fSDavid E. O'Brien.\" THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY EXPRESS OR 164000f72fSDavid E. O'Brien.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 174000f72fSDavid E. O'Brien.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 184000f72fSDavid E. O'Brien.\" IN NO EVENT SHALL THE DEVELOPERS BE LIABLE FOR ANY DIRECT, INDIRECT, 194000f72fSDavid E. O'Brien.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 204000f72fSDavid E. O'Brien.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 214000f72fSDavid E. O'Brien.\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 224000f72fSDavid E. O'Brien.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 234000f72fSDavid E. O'Brien.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 244000f72fSDavid E. O'Brien.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 254000f72fSDavid E. O'Brien.\" 26*855e0457SLi-Wen Hsu.Dd September 24, 2023 274000f72fSDavid E. O'Brien.Dt PORTS 7 283d45e180SRuslan Ermilov.Os 294000f72fSDavid E. O'Brien.Sh NAME 304000f72fSDavid E. O'Brien.Nm ports 314000f72fSDavid E. O'Brien.Nd contributed applications 324000f72fSDavid E. O'Brien.Sh DESCRIPTION 334000f72fSDavid E. O'BrienThe 34b5c508fbSRuslan Ermilov.Fx 350412d17cSRuslan ErmilovPorts Collection 36f1dd4984SEdward Tomasz Napieralaoffers a simple way to compile and install third party applications. 37f1dd4984SEdward Tomasz NapieralaIt is also used to build packages, to be installed using 3886b83608SEdward Tomasz Napierala.Xr pkg 8 . 39f1dd4984SEdward Tomasz Napierala.Pp 40f1dd4984SEdward Tomasz NapieralaThe ports tree, typically located at 41f1dd4984SEdward Tomasz Napierala.Pa /usr/ports , 42f1dd4984SEdward Tomasz Napieralaconsists of subdirectories, one for each category; those in turn contain 43f1dd4984SEdward Tomasz Napieralaindividual ports. 44f1dd4984SEdward Tomasz NapieralaEach port is a directory with metadata and patches necessary to make 45f1dd4984SEdward Tomasz Napieralathe original application source code compile and run on 46481974c2SEitan Adler.Fx . 473d04377bSMateusz PiotrowskiCompiling an application is as simple as typing 483d04377bSMateusz Piotrowski.Dq Li "make build" 49f1dd4984SEdward Tomasz Napieralain the port directory. 500412d17cSRuslan ErmilovThe 510412d17cSRuslan Ermilov.Pa Makefile 52e4b22b63SDavid E. O'Brienautomatically fetches the 53f1dd4984SEdward Tomasz Napieralaapplication source code, either from a local disk or the network, unpacks it, 54f1dd4984SEdward Tomasz Napieralaapplies the patches, and compiles it. 55f1dd4984SEdward Tomasz NapieralaIt also recursively handles dependencies \(em other pieces of software 56f1dd4984SEdward Tomasz Napieralathe port depends on in order to build and work. 57f1dd4984SEdward Tomasz NapieralaAfterwards, 583d04377bSMateusz Piotrowski.Dq Li "make install" 59f1dd4984SEdward Tomasz Napieralainstalls the application. 604000f72fSDavid E. O'Brien.Pp 6122427dafSEdward Tomasz NapieralaThe 6222427dafSEdward Tomasz Napierala.Fx 6322427dafSEdward Tomasz NapieralaPorts Collection is maintained in several branches, which differ mostly 6422427dafSEdward Tomasz Napieralaby versions of software provided: the 6511f47f17SRene Ladan.Em main 6611f47f17SRene Ladanbranch contains all the latest changes and corresponds to the 6711f47f17SRene Ladan.Em latest 6811f47f17SRene Ladanpackage set, while the 6922427dafSEdward Tomasz Napierala.Em quarterly 7022427dafSEdward Tomasz Napieralabranches only provide critical fixes. 7122427dafSEdward Tomasz NapieralaThe 7211f47f17SRene Ladan.Em main 7311f47f17SRene Ladanbranch can be cloned and updated from the Git repository located at: 7422427dafSEdward Tomasz Napierala.Pp 7511f47f17SRene Ladan.Lk https://git.FreeBSD.org/ports.git 7611f47f17SRene Ladan.Pp 7711f47f17SRene Ladanso eg: 7811f47f17SRene Ladan.Pp 7911f47f17SRene Ladan.Cm git clone https://git.FreeBSD.org/ports.git 8022427dafSEdward Tomasz Napierala.Pp 8122427dafSEdward Tomasz NapieralaThe 8222427dafSEdward Tomasz Napierala.Em quarterly 8311f47f17SRene Ladanbranches can be found in Git as branches like 8411f47f17SRene Ladan.Pa yyyyQn 8511f47f17SRene Ladan, where 8611f47f17SRene Ladan.Em yyyy 8711f47f17SRene Ladanindicates the year and 8811f47f17SRene Ladan.Em n 8911f47f17SRene Ladanindicates the quarter 9011f47f17SRene Ladan.Po 1 to 4 9111f47f17SRene Ladan.Pc , eg: 9222427dafSEdward Tomasz Napierala.Pp 9311f47f17SRene Ladan.Cm git clone -b 2021Q2 https://git.FreeBSD.org/ports.git 9422427dafSEdward Tomasz Napierala.Pp 9522427dafSEdward Tomasz NapieralaIt is generally a good idea to use the 9622427dafSEdward Tomasz Napierala.Nm 9722427dafSEdward Tomasz Napieralabranch that matches the 9822427dafSEdward Tomasz Napierala.Xr pkg 8 9922427dafSEdward Tomasz Napieralarepository being used. 10022427dafSEdward Tomasz NapieralaBy default, for 10122427dafSEdward Tomasz Napierala.Fx CURRENT 10222427dafSEdward Tomasz Napieralathe 10322427dafSEdward Tomasz Napierala.Xr pkg 8 10422427dafSEdward Tomasz Napieralais configured to install packages built from the 10511f47f17SRene Ladan.Em main 10622427dafSEdward Tomasz Napieralabranch, while for 10722427dafSEdward Tomasz Napierala.Fx STABLE 10822427dafSEdward Tomasz Napieralaor RELEASE versions it is configured to install packages built from 10922427dafSEdward Tomasz Napieralathe latest 11022427dafSEdward Tomasz Napierala.Em quarterly 11122427dafSEdward Tomasz Napieralabranch. 11222427dafSEdward Tomasz NapieralaCurrently configured 11322427dafSEdward Tomasz Napierala.Xr pkg 8 11422427dafSEdward Tomasz Napieralarepository can be verified by looking at the 11522427dafSEdward Tomasz Napierala.Em url 11622427dafSEdward Tomasz Napieralafield in 11722427dafSEdward Tomasz Napierala.Cm pkg -vv 11822427dafSEdward Tomasz Napieralaoutput. 11922427dafSEdward Tomasz Napierala.Pp 1208f9c7371SEdward Tomasz NapieralaFor more information about using ports, see the 1218f9c7371SEdward Tomasz Napierala.Dq "Packages and Ports" section 1225d3d0230SMurray Stokelyin 1233d04377bSMateusz Piotrowski.Sm off 1243d04377bSMateusz Piotrowski.%B "The FreeBSD Handbook" 1253d04377bSMateusz Piotrowski.No \&: 1263d04377bSMateusz Piotrowski.Sm on 1278f9c7371SEdward Tomasz Napierala.Pp 1288dfb0024SLi-Wen Hsu.Lk https://docs.FreeBSD.org/en/books/handbook/ports/ 1298f9c7371SEdward Tomasz Napierala.Pp 130f1dd4984SEdward Tomasz NapieralaFor information about creating new ports, see 1313d04377bSMateusz Piotrowski.Sm off 1323d04377bSMateusz Piotrowski.%B "The Porter's Handbook" 1333d04377bSMateusz Piotrowski.No \&: 1343d04377bSMateusz Piotrowski.Sm on 1358f9c7371SEdward Tomasz Napierala.Pp 1368dfb0024SLi-Wen Hsu.Lk https://docs.FreeBSD.org/en/books/porters-handbook/ 137e4b22b63SDavid E. O'Brien.Sh TARGETS 138f1dd4984SEdward Tomasz NapieralaSome of the 139f1dd4984SEdward Tomasz Napierala.Xr make 1 140f1dd4984SEdward Tomasz Napieralatargets work recursively through subdirectories. 1410412d17cSRuslan ErmilovThis lets you, for example, install all of the 1420412d17cSRuslan Ermilov.Dq Li biology 1433d04377bSMateusz Piotrowskiports with one command. 1440412d17cSRuslan ErmilovThe targets that do this are 1450412d17cSRuslan Ermilov.Cm build , checksum , clean , configure , 1460412d17cSRuslan Ermilov.Cm depends , extract , fetch , install , 14765dfa7aaSTim Vanderhoekand 1480412d17cSRuslan Ermilov.Cm package . 14965dfa7aaSTim Vanderhoek.Pp 15065dfa7aaSTim VanderhoekThe following targets will be run automatically by each proceeding 1510412d17cSRuslan Ermilovtarget in order. 1520412d17cSRuslan ErmilovThat is, 1530412d17cSRuslan Ermilov.Cm build 1543d04377bSMateusz Piotrowskiwill be run (if necessary) by 1550412d17cSRuslan Ermilov.Cm install , 15665dfa7aaSTim Vanderhoekand so on all the way to 1570412d17cSRuslan Ermilov.Cm fetch . 158019de50bSDima DorfmanUsually, you will only use the 1590412d17cSRuslan Ermilov.Cm install 160019de50bSDima Dorfmantarget. 1610412d17cSRuslan Ermilov.Bl -tag -width ".Cm configure" 16203687bafSKirill Ponomarev.It Cm config 16303687bafSKirill PonomarevConfigure 16403687bafSKirill Ponomarev.Va OPTIONS 16503687bafSKirill Ponomarevfor this port using 166ae41fe61SEitan Adler.Xr dialog4ports 1 . 1670412d17cSRuslan Ermilov.It Cm fetch 1680412d17cSRuslan ErmilovFetch all of the files needed to build this port from the sites 1690412d17cSRuslan Ermilovlisted in 1700412d17cSRuslan Ermilov.Va MASTER_SITES 17165dfa7aaSTim Vanderhoekand 1720412d17cSRuslan Ermilov.Va PATCH_SITES . 1730412d17cSRuslan ErmilovSee 174e57fe046SKirill Ponomarev.Va FETCH_CMD , MASTER_SITE_OVERRIDE 1750412d17cSRuslan Ermilovand 176e57fe046SKirill Ponomarev.Va MASTER_SITE_BACKUP . 1770412d17cSRuslan Ermilov.It Cm checksum 178019de50bSDima DorfmanVerify that the fetched distfile's checksum matches the one the port was 179019de50bSDima Dorfmantested against. 18067900914SBenedict ReuschlingIf the distfile's checksum does not match, it also fetches the distfiles 18167900914SBenedict Reuschlingwhich are missing or failed the checksum calculation. 18265dfa7aaSTim VanderhoekDefining 1830412d17cSRuslan Ermilov.Va NO_CHECKSUM 18465dfa7aaSTim Vanderhoekwill skip this step. 1850412d17cSRuslan Ermilov.It Cm depends 18665dfa7aaSTim VanderhoekInstall 187c4d9468eSRuslan Ermilov(or compile if only compilation is necessary) 1880412d17cSRuslan Ermilovany dependencies of the current port. 1890412d17cSRuslan ErmilovWhen called by the 1900412d17cSRuslan Ermilov.Cm extract 19165dfa7aaSTim Vanderhoekor 1920412d17cSRuslan Ermilov.Cm fetch 19365dfa7aaSTim Vanderhoektargets, this is run in piecemeal as 1940412d17cSRuslan Ermilov.Cm fetch-depends , build-depends , 1950412d17cSRuslan Ermilovetc. 1960412d17cSRuslan ErmilovDefining 1970412d17cSRuslan Ermilov.Va NO_DEPENDS 19865dfa7aaSTim Vanderhoekwill skip this step. 1990412d17cSRuslan Ermilov.It Cm extract 20065dfa7aaSTim VanderhoekExpand the distfile into a work directory. 2010412d17cSRuslan Ermilov.It Cm patch 20265dfa7aaSTim VanderhoekApply any patches that are necessary for the port. 2030412d17cSRuslan Ermilov.It Cm configure 2040412d17cSRuslan ErmilovConfigure the port. 2050412d17cSRuslan ErmilovSome ports will ask you questions during this stage. 2060412d17cSRuslan ErmilovSee 2070412d17cSRuslan Ermilov.Va INTERACTIVE 20865dfa7aaSTim Vanderhoekand 2090412d17cSRuslan Ermilov.Va BATCH . 2100412d17cSRuslan Ermilov.It Cm build 2110412d17cSRuslan ErmilovBuild the port. 2120412d17cSRuslan ErmilovThis is the same as calling the 2130412d17cSRuslan Ermilov.Cm all 21465dfa7aaSTim Vanderhoektarget. 2150412d17cSRuslan Ermilov.It Cm install 2160412d17cSRuslan ErmilovInstall the port and register it with the package system. 2170412d17cSRuslan ErmilovThis is all you really need to do. 21849ddfdecSFernando Apesteguía.It Cm install-missing-packages 21949ddfdecSFernando ApesteguíaInstall missing dependencies from packages instead of building them. 22065dfa7aaSTim Vanderhoek.El 22165dfa7aaSTim Vanderhoek.Pp 22265dfa7aaSTim VanderhoekThe following targets are not run during the normal install process. 22356e37108SGiorgos Keramidas.Bl -tag -width ".Cm fetch-recursive" 22403687bafSKirill Ponomarev.It Cm showconfig 22503687bafSKirill PonomarevDisplay 22603687bafSKirill Ponomarev.Va OPTIONS 22703687bafSKirill Ponomarevconfig for this port. 228a571610dSKirill Ponomarev.It Cm showconfig-recursive 229a571610dSKirill PonomarevDisplay 230a571610dSKirill Ponomarev.Va OPTIONS 231a571610dSKirill Ponomarevconfig for this port and all its dependencies. 23203687bafSKirill Ponomarev.It Cm rmconfig 23303687bafSKirill PonomarevRemove 23403687bafSKirill Ponomarev.Va OPTIONS 23503687bafSKirill Ponomarevconfig for this port. 236a571610dSKirill Ponomarev.It Cm rmconfig-recursive 237a571610dSKirill PonomarevRemove 238a571610dSKirill Ponomarev.Va OPTIONS 239a571610dSKirill Ponomarevconfig for this port and all its dependencies. 240a571610dSKirill Ponomarev.It Cm config-conditional 241a571610dSKirill PonomarevSkip the ports which have already had their 242a571610dSKirill Ponomarev.Va OPTIONS 243a571610dSKirill Ponomarevconfigured. 244039b8701STom Rhodes.It Cm config-recursive 245039b8701STom RhodesConfigure 246039b8701STom Rhodes.Va OPTIONS 247039b8701STom Rhodesfor this port and all its dependencies using 248ae41fe61SEitan Adler.Xr dialog4ports 1 . 2490412d17cSRuslan Ermilov.It Cm fetch-list 250d0b0bc37SOlivier CertnerShow the list of files to fetch in order to build the port (but not its 251d0b0bc37SOlivier Certnerdependencies). 25256e37108SGiorgos Keramidas.It Cm fetch-recursive 25356e37108SGiorgos KeramidasFetch the distfiles of the port and all its dependencies. 254515ba752SChristian Brueffer.It Cm fetch-recursive-list 255515ba752SChristian BruefferShow list of files that would be retrieved by 256515ba752SChristian Brueffer.Cm fetch-recursive . 257d0b0bc37SOlivier Certner.It Cm build-depends-list , run-depends-list 258d0b0bc37SOlivier CertnerPrint a list of all the direct compile or run dependencies for this port. 259039b8701STom Rhodes.It Cm all-depends-list 260d0b0bc37SOlivier CertnerPrint a list of all recursive dependencies for this port. 261d0b0bc37SOlivier Certner.It Cm pretty-print-build-depends-list , pretty-print-run-depends-list 262d0b0bc37SOlivier CertnerPrint a list of all the recursive compile or run dependencies for this port by 263d0b0bc37SOlivier Certnerport name and version. 264c8ff7e9eSPav Lucistnik.It Cm missing 265c8ff7e9eSPav LucistnikPrint a list of missing dependencies to be installed for the port. 2660412d17cSRuslan Ermilov.It Cm clean 2670412d17cSRuslan ErmilovRemove the expanded source code. 2680412d17cSRuslan ErmilovThis recurses to dependencies unless 2690412d17cSRuslan Ermilov.Va NOCLEANDEPENDS 27065dfa7aaSTim Vanderhoekis defined. 2710412d17cSRuslan Ermilov.It Cm distclean 2720412d17cSRuslan ErmilovRemove the port's distfiles and perform the 2730412d17cSRuslan Ermilov.Cm clean 274019de50bSDima Dorfmantarget. 275019de50bSDima DorfmanThe 2760412d17cSRuslan Ermilov.Cm clean 27765dfa7aaSTim Vanderhoekportion recurses to dependencies unless 2780412d17cSRuslan Ermilov.Va NOCLEANDEPENDS 27965dfa7aaSTim Vanderhoekis defined, but the 2800412d17cSRuslan Ermilov.Cm distclean 28165dfa7aaSTim Vanderhoekportion never recurses 282c4d9468eSRuslan Ermilov(this is perhaps a bug). 2830412d17cSRuslan Ermilov.It Cm reinstall 28465dfa7aaSTim VanderhoekUse this to restore a port after using 285225636dcSEdward Tomasz Napierala.Xr pkg-delete 8 28665dfa7aaSTim Vanderhoekwhen you should have used 2870412d17cSRuslan Ermilov.Cm deinstall . 2880412d17cSRuslan Ermilov.It Cm deinstall 28965dfa7aaSTim VanderhoekRemove an installed port from the system, similar to 290225636dcSEdward Tomasz Napierala.Xr pkg-delete 8 . 291515ba752SChristian Brueffer.It Cm deinstall-all 292515ba752SChristian BruefferRemove all installed ports with the same 293515ba752SChristian Brueffer.Va PKGORIGIN 294515ba752SChristian Bruefferfrom the system. 2950412d17cSRuslan Ermilov.It Cm package 2960412d17cSRuslan ErmilovMake a binary package for the port. 2970412d17cSRuslan ErmilovThe port will be installed if it has not already been. 2980412d17cSRuslan ErmilovThe package is a 299d6ed0d3dSBaptiste Daroussin.Pa .pkg 3000412d17cSRuslan Ermilovfile that you can use to 30165dfa7aaSTim Vanderhoekinstall the port on other machines with 302225636dcSEdward Tomasz Napierala.Xr pkg-add 8 . 30365dfa7aaSTim VanderhoekIf the directory specified by 3040412d17cSRuslan Ermilov.Va PACKAGES 305248a47a4SDaniel Ebdrup Jensendoes not exist, the package will be put in 306248a47a4SDaniel Ebdrup Jensen.Pa /usr/ports/category/port/work/pkg . 30783d04c76STim VanderhoekSee 3080412d17cSRuslan Ermilov.Va PKGREPOSITORY 30983d04c76STim Vanderhoekand 310248a47a4SDaniel Ebdrup Jensen.Va PKGFILE 311248a47a4SDaniel Ebdrup Jensenfor more information. 3128c3bfd69SChristian Brueffer.It Cm package-recursive 3138c3bfd69SChristian BruefferLike 3148c3bfd69SChristian Brueffer.Cm package , 3158c3bfd69SChristian Bruefferbut makes a package for each depending port as well. 316d40caf29SThomas Abthorpe.It Cm package-name 317d40caf29SThomas AbthorpePrints the name with version of the port. 3180412d17cSRuslan Ermilov.It Cm readmes 31983d04c76STim VanderhoekCreate a port's 32083d04c76STim Vanderhoek.Pa README.html . 3216b4c0736STim VanderhoekThis can be used from 3226b4c0736STim Vanderhoek.Pa /usr/ports 3236b4c0736STim Vanderhoekto create a browsable web of all ports on your system! 3240412d17cSRuslan Ermilov.It Cm search 325019de50bSDima DorfmanSearch the 326019de50bSDima Dorfman.Pa INDEX 32765d476e0SKirill Ponomarevfile for the pattern specified by the 3280412d17cSRuslan Ermilov.Va key 32965d476e0SKirill Ponomarev(searches the port name, comment, and dependencies), 3300412d17cSRuslan Ermilov.Va name 33165d476e0SKirill Ponomarev(searches the port name only), 33265d476e0SKirill Ponomarev.Va path 33365d476e0SKirill Ponomarev(searches the port path), 33465d476e0SKirill Ponomarev.Va info 33565d476e0SKirill Ponomarev(searches the port info), 33665d476e0SKirill Ponomarev.Va maint 33765d476e0SKirill Ponomarev(searches the port maintainer), 33865d476e0SKirill Ponomarev.Va cat 33965d476e0SKirill Ponomarev(searches the port category), 34065d476e0SKirill Ponomarev.Va bdeps 34165d476e0SKirill Ponomarev(searches the port build-time dependency), 34265d476e0SKirill Ponomarev.Va rdeps 3431ea65ec7SGabor Kovesdan(searches the port run-time dependency), 3441ea65ec7SGabor Kovesdan.Va www 3451ea65ec7SGabor Kovesdan(searches the port web site) 3460412d17cSRuslan Ermilov.Xr make 1 34765d476e0SKirill Ponomarevvariables, and their exclusion counterparts: 34865d476e0SKirill Ponomarev.Va xname , xkey 34965d476e0SKirill Ponomarevetc. 350019de50bSDima DorfmanFor example, one would type: 351019de50bSDima Dorfman.Pp 3520412d17cSRuslan Ermilov.Dl "cd /usr/ports && make search name=query" 353019de50bSDima Dorfman.Pp 354019de50bSDima Dorfmanto find all ports whose 355019de50bSDima Dorfmanname matches 3560412d17cSRuslan Ermilov.Dq Li query . 357019de50bSDima DorfmanResults include the matching ports' path, comment, maintainer, 358019de50bSDima Dorfmanbuild dependencies, and run dependencies. 35965d476e0SKirill Ponomarev.Bd -literal -offset indent 36065d476e0SKirill Ponomarevcd /usr/ports && make search name=pear- \e 36165d476e0SKirill Ponomarev xbdeps=apache 36265d476e0SKirill Ponomarev.Ed 36365d476e0SKirill Ponomarev.Pp 36465d476e0SKirill PonomarevTo find all ports whose 36565d476e0SKirill Ponomarevnames contain 36665d476e0SKirill Ponomarev.Dq Li pear- 36765d476e0SKirill Ponomarevand which do not have apache 36865d476e0SKirill Ponomarevlisted in build-time dependencies. 36965d476e0SKirill Ponomarev.Bd -literal -offset indent 37065d476e0SKirill Ponomarevcd /usr/ports && make search name=pear- \e 37165d476e0SKirill Ponomarev xname='ht(tp|ml)' 37265d476e0SKirill Ponomarev.Ed 37365d476e0SKirill Ponomarev.Pp 37465d476e0SKirill PonomarevTo find all ports whose names contain 37565d476e0SKirill Ponomarev.Dq Li pear- , 37665d476e0SKirill Ponomarevbut not 37765d476e0SKirill Ponomarev.Dq Li html 37865d476e0SKirill Ponomarevor 37965d476e0SKirill Ponomarev.Dq Li http . 38065d476e0SKirill Ponomarev.Bd -literal -offset indent 38165d476e0SKirill Ponomarevmake search key=apache display=name,path,info keylim=1 38265d476e0SKirill Ponomarev.Ed 38365d476e0SKirill Ponomarev.Pp 38465d476e0SKirill PonomarevTo find ports that contain 38565d476e0SKirill Ponomarev.Dq Li apache 38665d476e0SKirill Ponomarevin either of the name, path, info 38765d476e0SKirill Ponomarevfields, ignore the rest of the record. 3881ea65ec7SGabor Kovesdan.Pp 389f283c8f8SJens SchweikhardtBy default the search is not case-sensitive. 3901ea65ec7SGabor KovesdanIn order to make it case-sensitive you can use the 3911ea65ec7SGabor Kovesdan.Va icase 3921ea65ec7SGabor Kovesdanvariable: 3931ea65ec7SGabor Kovesdan.Bd -literal -offset indent 3941ea65ec7SGabor Kovesdanmake search name=p5-R icase=0 3951ea65ec7SGabor Kovesdan.Ed 396be3253caSMaxim Konovalov.It Cm quicksearch 397be3253caSMaxim KonovalovReduced 398be3253caSMaxim Konovalov.Cm search 399be3253caSMaxim Konovalovoutput. 400be3253caSMaxim KonovalovOnly display name, path and info. 40103687bafSKirill Ponomarev.It Cm describe 40203687bafSKirill PonomarevGenerate a one-line description of each port for use in the 40303687bafSKirill Ponomarev.Pa INDEX 40403687bafSKirill Ponomarevfile. 405724c0a23SChristian Brueffer.It Cm maintainer 406724c0a23SChristian BruefferDisplay the port maintainer's email address. 4070412d17cSRuslan Ermilov.It Cm index 408019de50bSDima DorfmanCreate 409019de50bSDima Dorfman.Pa /usr/ports/INDEX , 410019de50bSDima Dorfmanwhich is used by the 4110412d17cSRuslan Ermilov.Cm pretty-print-* 412019de50bSDima Dorfmanand 4130412d17cSRuslan Ermilov.Cm search 414019de50bSDima Dorfmantargets. 4157585929eSKirill PonomarevRunning the 4160412d17cSRuslan Ermilov.Cm index 4170412d17cSRuslan Ermilovtarget will ensure your 4180412d17cSRuslan Ermilov.Pa INDEX 4190412d17cSRuslan Ermilovfile is up to date with your ports tree. 4207585929eSKirill Ponomarev.It Cm fetchindex 4217585929eSKirill PonomarevFetch the 4227585929eSKirill Ponomarev.Pa INDEX 4237585929eSKirill Ponomarevfile from the 4247585929eSKirill Ponomarev.Fx 4257585929eSKirill Ponomarevcluster. 4263136363fSRuslan Ermilov.El 427def37e7cSMike Pritchard.Sh ENVIRONMENT 42865dfa7aaSTim VanderhoekYou can change all of these. 4290412d17cSRuslan Ermilov.Bl -tag -width ".Va MASTER_SITES" 4300412d17cSRuslan Ermilov.It Va PORTSDIR 4310412d17cSRuslan ErmilovLocation of the ports tree. 4320412d17cSRuslan ErmilovThis is 43365dfa7aaSTim Vanderhoek.Pa /usr/ports 434758dde06SMateusz Piotrowskiby default. 4350412d17cSRuslan Ermilov.It Va WRKDIRPREFIX 4360412d17cSRuslan ErmilovWhere to create any temporary files. 4370412d17cSRuslan ErmilovUseful if 4380412d17cSRuslan Ermilov.Va PORTSDIR 4390412d17cSRuslan Ermilovis read-only (perhaps mounted from a CD-ROM). 4400412d17cSRuslan Ermilov.It Va DISTDIR 44165dfa7aaSTim VanderhoekWhere to find/put distfiles, normally 44265dfa7aaSTim Vanderhoek.Pa distfiles/ 44365dfa7aaSTim Vanderhoekin 4440412d17cSRuslan Ermilov.Va PORTSDIR . 445c6a2e9a7SPiotr Pawel Stefaniak.It Va SU_CMD 446c6a2e9a7SPiotr Pawel StefaniakCommand used to elevate privilege to configure and install a port. 447c6a2e9a7SPiotr Pawel StefaniakThe unprivileged user must have write access to 448c6a2e9a7SPiotr Pawel Stefaniak.Va WRKDIRPREFIX 449c6a2e9a7SPiotr Pawel Stefaniakand 450c6a2e9a7SPiotr Pawel Stefaniak.Va DISTDIR . 451c6a2e9a7SPiotr Pawel StefaniakThe default is 45276d2af50SMateusz Piotrowski.Ql /usr/bin/su root -c . 45376d2af50SMateusz PiotrowskiMany users set it to 45476d2af50SMateusz Piotrowski.Ql /usr/local/bin/sudo -E sh -c 45576d2af50SMateusz Piotrowskifor convenience. 4560412d17cSRuslan Ermilov.It Va PACKAGES 45765dfa7aaSTim VanderhoekUsed only for the 4580412d17cSRuslan Ermilov.Cm package 45965dfa7aaSTim Vanderhoektarget; the base directory for the packages tree, normally 46065dfa7aaSTim Vanderhoek.Pa packages/ 46165dfa7aaSTim Vanderhoekin 4620412d17cSRuslan Ermilov.Va PORTSDIR . 46365dfa7aaSTim VanderhoekIf this directory exists, the package tree will be (partially) constructed. 4640412d17cSRuslan ErmilovThis directory does not have to exist; if it does not, packages will be 46583d04c76STim Vanderhoekplaced into the current directory, or you can define one of 4660412d17cSRuslan Ermilov.Bl -tag -width ".Va PKGREPOSITORY" 4670412d17cSRuslan Ermilov.It Va PKGREPOSITORY 46883d04c76STim VanderhoekDirectory to put the package in. 4690412d17cSRuslan Ermilov.It Va PKGFILE 47065dfa7aaSTim VanderhoekThe full path to the package. 47165dfa7aaSTim Vanderhoek.El 472eed1dcabSEitan Adler.It Va LOCALBASE 473eed1dcabSEitan AdlerWhere existing things are installed and where to search for files when 474eed1dcabSEitan Adlerresolving dependencies (usually 4759a0e6be2SXin LI.Pa /usr/local ) . 476eed1dcabSEitan Adler.It Va PREFIX 477eed1dcabSEitan AdlerWhere to install this port (usually set to the same as 478eed1dcabSEitan Adler.Va LOCALBASE ) . 4790412d17cSRuslan Ermilov.It Va MASTER_SITES 480e4b22b63SDavid E. O'BrienPrimary sites for distribution files if not found locally. 4810412d17cSRuslan Ermilov.It Va PATCH_SITES 4820412d17cSRuslan ErmilovPrimary locations for distribution patch files if not found 483e4b22b63SDavid E. O'Brienlocally. 4840412d17cSRuslan Ermilov.It Va MASTER_SITE_FREEBSD 485b5c508fbSRuslan ErmilovIf set, go to the master 486b5c508fbSRuslan Ermilov.Fx 487b5c508fbSRuslan Ermilovsite for all files. 4880412d17cSRuslan Ermilov.It Va MASTER_SITE_OVERRIDE 489b81d803eSRuslan ErmilovTry going to these sites for all files and patches, first. 490e57fe046SKirill Ponomarev.It Va MASTER_SITE_BACKUP 491e57fe046SKirill PonomarevTry going to these sites for all files and patches, last. 4921f568fb2SPav Lucistnik.It Va RANDOMIZE_MASTER_SITES 4931f568fb2SPav LucistnikTry the download locations in a random order. 4941f568fb2SPav Lucistnik.It Va MASTER_SORT 4951f568fb2SPav LucistnikSort the download locations according to user supplied pattern. 4961f568fb2SPav LucistnikExample: 4971f568fb2SPav Lucistnik.Dl .dk .sunet.se .se dk.php.net .no .de heanet.dl.sourceforge.net 498e57fe046SKirill Ponomarev.It Va MASTER_SITE_INDEX 499e57fe046SKirill PonomarevWhere to get 500e57fe046SKirill Ponomarev.Pa INDEX 501e57fe046SKirill Ponomarevsource built on 502e57fe046SKirill Ponomarev.Fx 503e57fe046SKirill Ponomarevcluster (for 504e57fe046SKirill Ponomarev.Cm fetchindex 505e57fe046SKirill Ponomarevtarget). 506e57fe046SKirill PonomarevDefaults to 507*855e0457SLi-Wen Hsu.Pa https://download.FreeBSD.org/ports/index/ . 508e57fe046SKirill Ponomarev.It Va FETCHINDEX 509e57fe046SKirill PonomarevCommand to get 510e57fe046SKirill Ponomarev.Pa INDEX 511e57fe046SKirill Ponomarev(for 512e57fe046SKirill Ponomarev.Cm fetchindex 513e57fe046SKirill Ponomarevtarget). 514e57fe046SKirill PonomarevDefaults to 5153d04377bSMateusz Piotrowski.Dq Li "fetch -am" . 5160412d17cSRuslan Ermilov.It Va NOCLEANDEPENDS 5170412d17cSRuslan ErmilovIf defined, do not let 5180412d17cSRuslan Ermilov.Cm clean 51965dfa7aaSTim Vanderhoekrecurse to dependencies. 5200412d17cSRuslan Ermilov.It Va FETCH_CMD 5210412d17cSRuslan ErmilovCommand to use to fetch files. 5220412d17cSRuslan ErmilovNormally 52365dfa7aaSTim Vanderhoek.Xr fetch 1 . 5240412d17cSRuslan Ermilov.It Va FORCE_PKG_REGISTER 52565dfa7aaSTim VanderhoekIf set, overwrite any existing package registration on the system. 5260412d17cSRuslan Ermilov.It Va INTERACTIVE 52765dfa7aaSTim VanderhoekIf defined, only operate on a port if it requires interaction. 5280412d17cSRuslan Ermilov.It Va BATCH 52965dfa7aaSTim VanderhoekIf defined, only operate on a port if it can be installed 100% automatically. 530949f900dSSimon L. B. Nielsen.It Va DISABLE_VULNERABILITIES 531949f900dSSimon L. B. NielsenIf defined, disable check for security vulnerabilities using 5329ef6fea6SGlen Barber.Xr pkg-audit 8 533949f900dSSimon L. B. Nielsenwhen installing new ports. 534068abd55SGiorgos Keramidas.It Va NO_IGNORE 535068abd55SGiorgos KeramidasIf defined, allow installation of ports marked as 536068abd55SGiorgos Keramidas.Aq Va FORBIDDEN . 537068abd55SGiorgos KeramidasThe default behavior of the Ports framework is to abort when the 538068abd55SGiorgos Keramidasinstallation of a forbidden port is attempted. 539068abd55SGiorgos KeramidasOf course, these ports may not work as expected, but if you really know 540068abd55SGiorgos Keramidaswhat you are doing and are sure about installing a forbidden port, then 541068abd55SGiorgos Keramidas.Va NO_IGNORE 542068abd55SGiorgos Keramidaslets you do it. 543b7642c92SBenedict Reuschling.It Va NO_CHECKSUM 544b7642c92SBenedict ReuschlingIf defined, skip verifying the port's checksum. 5451583221bSGiorgos Keramidas.It Va TRYBROKEN 5461583221bSGiorgos KeramidasIf defined, attempt to build a port even if it is marked as 5471583221bSGiorgos Keramidas.Aq Va BROKEN . 548520a4bfdSGabor Kovesdan.It Va PORT_DBDIR 549520a4bfdSGabor KovesdanDirectory where the results of configuring 550520a4bfdSGabor Kovesdan.Va OPTIONS 551520a4bfdSGabor Kovesdanare stored. 552520a4bfdSGabor KovesdanDefaults to 553520a4bfdSGabor Kovesdan.Pa /var/db/ports . 554520a4bfdSGabor KovesdanEach port where 555520a4bfdSGabor Kovesdan.Va OPTIONS 556520a4bfdSGabor Kovesdanhave been configured will have a uniquely named sub-directory, containing a 557520a4bfdSGabor Kovesdansingle file 558520a4bfdSGabor Kovesdan.Pa options . 55965dfa7aaSTim Vanderhoek.El 56059be36b0SBenjamin Kaduk.Sh MAKE VARIABLES 56159be36b0SBenjamin KadukThe following list provides a name and short description for many of the 56259be36b0SBenjamin Kadukvariables that are used when building ports. 56359be36b0SBenjamin KadukMore information on these and other related variables may be found in 56459be36b0SBenjamin Kaduk.Pa ${PORTSDIR}/Mk/* 56559be36b0SBenjamin Kadukand the 56659be36b0SBenjamin Kaduk.Fx 56759be36b0SBenjamin KadukPorter's Handbook. 568af1f5e64SMateusz Piotrowski.Bl -tag -width "WITH_CCACHE_BUILD" 56959be36b0SBenjamin Kaduk.It Va WITH_DEBUG 57059be36b0SBenjamin Kaduk.Pq Vt bool 57159be36b0SBenjamin KadukIf set, debugging symbols are installed for ports binaries. 57259be36b0SBenjamin Kaduk.It Va WITH_DEBUG_PORTS 57359be36b0SBenjamin KadukA list of origins for which to set 57423788e6cSMateusz Piotrowski.Va WITH_DEBUG . 575d25f7d32SMateusz Piotrowski.It Va DEBUG_FLAGS 576d25f7d32SMateusz Piotrowski.Pq Default: Ql -g 577d25f7d32SMateusz PiotrowskiAdditional 578d25f7d32SMateusz Piotrowski.Va CFLAGS 579d25f7d32SMateusz Piotrowskito set when 580d25f7d32SMateusz Piotrowski.Va WITH_DEBUG 581d25f7d32SMateusz Piotrowskiis set. 58259be36b0SBenjamin Kaduk.It Va WITH_CCACHE_BUILD 58359be36b0SBenjamin Kaduk.Pq Vt bool 58459be36b0SBenjamin KadukIf set, enables the use of 58559be36b0SBenjamin Kaduk.Xr ccache 1 58659be36b0SBenjamin Kadukfor building ports. 58759be36b0SBenjamin Kaduk.It Va CCACHE_DIR 5883d04377bSMateusz PiotrowskiWhich directory to use for the 5893d04377bSMateusz Piotrowski.Xr ccache 1 5903d04377bSMateusz Piotrowskidata. 59159be36b0SBenjamin Kaduk.El 5924000f72fSDavid E. O'Brien.Sh FILES 5930412d17cSRuslan Ermilov.Bl -tag -width ".Pa /usr/ports/Mk/bsd.port.mk" -compact 5944000f72fSDavid E. O'Brien.It Pa /usr/ports 5953d04377bSMateusz PiotrowskiThe default ports directory. 596652627f0STim Vanderhoek.It Pa /usr/ports/Mk/bsd.port.mk 59765dfa7aaSTim VanderhoekThe big Kahuna. 5983136363fSRuslan Ermilov.El 5991b3fba16SEdward Tomasz Napierala.Sh EXAMPLES 600154b4d39SMateusz Piotrowski.Bl -tag -width 0n 601154b4d39SMateusz Piotrowski.It Sy Example 1\&: No Building and Installing a Port 602154b4d39SMateusz Piotrowski.Pp 603154b4d39SMateusz PiotrowskiThe following command builds and installs Emacs. 604154b4d39SMateusz Piotrowski.Bd -literal -offset 2n 605154b4d39SMateusz Piotrowski.Li # Ic cd /usr/ports/editors/emacs 606154b4d39SMateusz Piotrowski.Li # Ic make install 6071b3fba16SEdward Tomasz Napierala.Ed 608154b4d39SMateusz Piotrowski.It Sy Example 2\&: No Installing Dependencies with Xr pkg 8 609154b4d39SMateusz Piotrowski.Pp 61096fdbc90SMateusz PiotrowskiThe following example shows how to build and install a port without having to 611154b4d39SMateusz Piotrowskibuild its dependencies. 612154b4d39SMateusz PiotrowskiInstead, the dependencies are downloaded via 613154b4d39SMateusz Piotrowski.Xr pkg 8 . 614154b4d39SMateusz Piotrowski.Bd -literal -offset 2n 615a3f02b1aSMateusz Piotrowski.Li # Ic make install-missing-packages 616154b4d39SMateusz Piotrowski.Li # Ic make install 617154b4d39SMateusz Piotrowski.Ed 618154b4d39SMateusz Piotrowski.Pp 619154b4d39SMateusz PiotrowskiIt is especially useful, when the dependencies are costly 620154b4d39SMateusz Piotrowskiin time and resources to build 621154b4d39SMateusz Piotrowski.Pq like Pa lang/rust . 622154b4d39SMateusz PiotrowskiThe drawback is that 623154b4d39SMateusz Piotrowski.Xr pkg 8 624154b4d39SMateusz Piotrowskioffers only packages built with the default set of 625154b4d39SMateusz Piotrowski.Va OPTIONS . 62696fdbc90SMateusz Piotrowski.It Sy Example 3\&: No Building a Non-Default Flavor of a Port 62796fdbc90SMateusz Piotrowski.Pp 62896fdbc90SMateusz PiotrowskiThe following command builds a non-default flavor of a port. 62996fdbc90SMateusz Piotrowski(In this case 63096fdbc90SMateusz Piotrowski.Pa devel/py-pip 63196fdbc90SMateusz Piotrowskiis going to be built with Python 3.7 support.) 63296fdbc90SMateusz Piotrowski.Bd -literal -offset 2n 63396fdbc90SMateusz Piotrowski.Li # Ic cd /usr/ports/devel/py-pip 63496fdbc90SMateusz Piotrowski.Li # Ic env FLAVOR=py37 make build 63596fdbc90SMateusz Piotrowski.Ed 636fcdfe016SMateusz Piotrowski.It Sy Example 4\&: No Setting Ports Options via Xr make.conf 5 637fcdfe016SMateusz Piotrowski.Pp 638fcdfe016SMateusz PiotrowskiThe following lines present various ways of configuring ports options via 639fcdfe016SMateusz Piotrowski.Xr make.conf 5 640fcdfe016SMateusz Piotrowski(as an alternative to, e.g., running 641fcdfe016SMateusz Piotrowski.Dq Li make config ) : 642fcdfe016SMateusz Piotrowski.Bd -literal -offset 2n 643fcdfe016SMateusz Piotrowski# Enable NLS for all ports unless configured otherwise 644fcdfe016SMateusz Piotrowski# using the options dialog. 645fcdfe016SMateusz PiotrowskiOPTIONS_SET= NLS 646fcdfe016SMateusz Piotrowski# Disable DOCS for all ports overriding the options set 647fcdfe016SMateusz Piotrowski# via the options dialog. 648fcdfe016SMateusz PiotrowskiOPTIONS_UNSET_FORCE= DOCS 649fcdfe016SMateusz Piotrowski# Disable DOCS and EXAMPLES for the shells/zsh port. 650fcdfe016SMateusz Piotrowskishells_zsh_UNSET= DOCS EXAMPLES 651fcdfe016SMateusz Piotrowski.Ed 652fcdfe016SMateusz Piotrowski.Pp 653fcdfe016SMateusz PiotrowskiThese and other options-related variables are documented in 654fcdfe016SMateusz Piotrowski.Pa /usr/ports/Mk/bsd.options.mk . 655c0e41dffSMateusz Piotrowski.It Sy Example 5\&: No Setting Xr make 1 Variables for Specific Ports via Xr make.conf 5 656c0e41dffSMateusz Piotrowski.Pp 657c0e41dffSMateusz PiotrowskiThe following example shows how to set arbitrary 658c0e41dffSMateusz Piotrowski.Xr make 1 659c0e41dffSMateusz Piotrowskivariables only specific ports: 660c0e41dffSMateusz Piotrowski.Bd -literal -offset 2n 661c0e41dffSMateusz Piotrowski# Set DISABLE_MAKE_JOBS for the lang/rust port: 662c0e41dffSMateusz Piotrowski\&.if ${.CURDIR:M*/lang/rust} 663c0e41dffSMateusz PiotrowskiDISABLE_MAKE_JOBS= yes 664c0e41dffSMateusz PiotrowskiTRYBROKEN= yes 665c0e41dffSMateusz Piotrowski\&.endif 666c0e41dffSMateusz Piotrowski.Ed 667d25f7d32SMateusz Piotrowski.It Sy Example 6\&: No Debugging Ports 668d25f7d32SMateusz PiotrowskiBy default ports are built and packaged without debugging support (e.g., 669d25f7d32SMateusz Piotrowskidebugging symbols are stripped from binaries, optimization flags are used for 670d25f7d32SMateusz Piotrowskicompiling, verbose logging is disabled). 671d25f7d32SMateusz PiotrowskiWhether ports are built with debugging symbols can be controlled by the 672d25f7d32SMateusz Piotrowskisettings in 673d25f7d32SMateusz Piotrowski.Xr make.conf 5 , 674d25f7d32SMateusz Piotrowskie.g., 675d25f7d32SMateusz Piotrowski.Bd -literal -offset 2n 676d25f7d32SMateusz Piotrowski# Enable debugging for all ports. 677d25f7d32SMateusz PiotrowskiWITH_DEBUG= yes 678d25f7d32SMateusz Piotrowski# Enable debugging for selected ports. 679d25f7d32SMateusz PiotrowskiWITH_DEBUG_PORTS= mail/dovecot security/krb5 680d25f7d32SMateusz Piotrowski.Ed 681d25f7d32SMateusz Piotrowski.Pp 682d25f7d32SMateusz PiotrowskiIt is also possible to use the debug variables on the command line: 683d25f7d32SMateusz Piotrowski.Bd -literal -offset 2n 684d25f7d32SMateusz Piotrowski.Li # Ic make -DWITH_DEBUG DEBUG_FLAGS="-g -O0" build 685d25f7d32SMateusz Piotrowski.Ed 686d25f7d32SMateusz Piotrowski.Pp 687d25f7d32SMateusz PiotrowskiSee the 688d25f7d32SMateusz Piotrowski.Sx MAKE VARIABLES 689d25f7d32SMateusz Piotrowskisection to learn more about the debug variables. 690d25f7d32SMateusz Piotrowski.Pp 691d25f7d32SMateusz PiotrowskiTo understand the details of what happens when the debug variables are set it 692d25f7d32SMateusz Piotrowskiis best to consult the files located at 693d25f7d32SMateusz Piotrowski.Pa ${PORTSDIR}/Mk/* 694d25f7d32SMateusz Piotrowski.Po Pa bsd.port.mk 695d25f7d32SMateusz Piotrowskiin particular 696d25f7d32SMateusz Piotrowski.Pc . 697d25f7d32SMateusz Piotrowski.Pp 698d25f7d32SMateusz PiotrowskiIf debugging is enabled for a specific port, the ports framework will: 699d25f7d32SMateusz Piotrowski.Bl -bullet 700d25f7d32SMateusz Piotrowski.It 701d25f7d32SMateusz PiotrowskiAdd 702d25f7d32SMateusz Piotrowski.Va DEBUG_FLAGS 703d25f7d32SMateusz Piotrowski(defaults to 704d25f7d32SMateusz Piotrowski.Ql -g ) 705d25f7d32SMateusz Piotrowskito 706d25f7d32SMateusz Piotrowski.Va CFLAGS . 707d25f7d32SMateusz Piotrowski.It 708d25f7d32SMateusz PiotrowskiTry to prevent the binaries from being stripped (including checking the install 709d25f7d32SMateusz Piotrowskitarget to replace 710d25f7d32SMateusz Piotrowski.Ql install-strip 711d25f7d32SMateusz Piotrowskiwith 712d25f7d32SMateusz Piotrowski.Ql install ) . 713d25f7d32SMateusz PiotrowskiWhether a binary has been stripped can be checked with 714d25f7d32SMateusz Piotrowski.Xr file 1 . 715d25f7d32SMateusz Piotrowski.It 716d25f7d32SMateusz PiotrowskiTry to enable other debugging features like debug build type or verbose logging. 717d25f7d32SMateusz PiotrowskiHowever, this is port-specific and the ports framework might not be aware of 718d25f7d32SMateusz Piotrowskieach supported debugging feature a given piece of software has to offer). 719154b4d39SMateusz Piotrowski.El 72016ee5cd1SChristian Brueffer.El 7214000f72fSDavid E. O'Brien.Sh SEE ALSO 7224000f72fSDavid E. O'Brien.Xr make 1 , 72359be36b0SBenjamin Kaduk.Xr make.conf 5 , 724375409b4SEdward Tomasz Napierala.Xr development 7 , 7258c725779SMateusz Piotrowski.Xr pkg 7 726def37e7cSMike Pritchard.Pp 7273d04377bSMateusz PiotrowskiAdditional developer documentation: 7283d04377bSMateusz Piotrowski.Bl -dash -width "" -offset indent 7293d04377bSMateusz Piotrowski.It 730ac8011f8SDavid E. O'Brien.Xr portlint 1 7313d04377bSMateusz Piotrowski.It 7323d04377bSMateusz Piotrowski.Pa /usr/ports/Mk/bsd.port.mk 7333d04377bSMateusz Piotrowski.El 73465dfa7aaSTim Vanderhoek.Pp 7353d04377bSMateusz PiotrowskiAdditional user documentation: 7363d04377bSMateusz Piotrowski.Bl -dash -width "" -offset indent 7373d04377bSMateusz Piotrowski.It 7383d04377bSMateusz Piotrowski.Xr pkg 8 7393d04377bSMateusz Piotrowski.It 7403d04377bSMateusz Piotrowski.Lk "https://www.FreeBSD.org/ports" "Searchable index of all ports" 7413d04377bSMateusz Piotrowski.El 7424000f72fSDavid E. O'Brien.Sh HISTORY 7430412d17cSRuslan ErmilovThe Ports Collection 7444000f72fSDavid E. O'Brienappeared in 7454000f72fSDavid E. O'Brien.Fx 1.0 . 7466b4c0736STim VanderhoekIt has since spread to 7476b4c0736STim Vanderhoek.Nx 7486b4c0736STim Vanderhoekand 7496b4c0736STim Vanderhoek.Ox . 7509cbda590SRuslan Ermilov.Sh AUTHORS 7519cbda590SRuslan Ermilov.An -nosplit 7529cbda590SRuslan ErmilovThis manual page was originated by 7539cbda590SRuslan Ermilov.An David O'Brien . 75465dfa7aaSTim Vanderhoek.Sh BUGS 7550412d17cSRuslan ErmilovPorts documentation is split over four places \(em 7562693c8b9STim Vanderhoek.Pa /usr/ports/Mk/bsd.port.mk , 7570412d17cSRuslan Ermilov.%B "The Porter's Handbook" , 75865dfa7aaSTim Vanderhoekthe 7590412d17cSRuslan Ermilov.Dq "Packages and Ports" 7605d3d0230SMurray Stokelychapter of 7610412d17cSRuslan Ermilov.%B "The FreeBSD Handbook" , 7625d3d0230SMurray Stokelyand 763949f900dSSimon L. B. Nielsenthis manual page. 764