summaryrefslogtreecommitdiff
path: root/mk/install
AgeCommit message (Collapse)AuthorFilesLines
2022-11-23mk: install performance improvements.jperkin2-26/+33
Inline ${RUN} calls where appropriate. Only call mkdir and rm when necessary. Remove useless use of cat(1). Saves at least 12 execs per build, but often a lot more depending on the number of files that were not stripped or had CTF conversion applied.
2022-11-03mk: Skip many more CTF and debug files by default.jperkin2-4/+18
Leave CTF_FILES_SKIP and STRIP_FILES_SKIP purely for packages to set any additional paths to skip.
2022-10-12mk: Skip include and info dirs for CTF and debug.jperkin1-3/+3
2022-07-06mk/install: fix indentation and alignment, no functional changerillig3-14/+15
2021-08-14mk/install: fix documentation and speed up install-dirs-from-PLISTrillig1-5/+5
The documentation did not mention that conditional entries in PLIST files are skipped. Pkglint doesn't know this either and issues wrong notes that some directories are redundant in INSTALLATION_DIRS when in reality they need to be listed there. While here, filter out some duplicate directories. This invokes the command for creating a single directory less often. Since PLIST files are usually sorted, files in the same directory tend to be listed near each other. The fallback to the plain 'uniq' is needed for SCO_SV, which does not define TOOLS_PLATFORM.uniq.
2020-07-08mk: Skip unnecessary dirs for CTF/debug conversion.jperkin2-5/+6
There won't (or at least should never!) be any files under share/ or man/ that require conversion for CTF or debug support, so set sensible defaults for both CTF_FILES_SKIP and STRIP_FILES_SKIP. Further additions are welcome. While here rearrange the ordering of the debug skips to match CTF and deliver a small performance improvement by avoiding unnecessary file tests. Combined, these reduce the runtime for "make install-ctf install-strip-debug" in lang/rust down from wall/user/sys 10m33s/2m34s/9m30s to 1m13s/0m46s/1m4s.
2019-09-06mk: Skip CTF_FILES_SKIP before anything else.jperkin1-2/+2
2019-09-02mk: use a single form for headings in the documentation commentsrillig2-5/+5
2019-05-07mk: allow "bmake clean depends" as shortcutrillig2-5/+5
When "bmake clean depends" was called for a package where the various cookie files already existed, these would enable different rules than a clean package directory. Since "bmake clean" deletes all the cookie files before "bmake depends" starts, in these combined command lines the cookie files must be treated as absent.
2019-01-22Call replace-names before SUroy1-1/+2
This allows the replace target to work with OBJ on NFS where root isn't allowed.
2018-11-15Update Minix BINPKG_SITES url.sevan1-2/+2
2018-11-12mk: Add CTF infrastructure support.jperkin2-2/+49
Platform support is determined by _OPSYS_SUPPORTS_CTF from mk/platform, the user enables support by setting PKGSRC_USE_CTF=yes, and packages can explicitly disable support with CTF_SUPPORTED=no or skip certain files with CTF_FILES_SKIP. The path to ctfconvert is configured via TOOLS_PLATFORM.ctfconvert. If all of the requisite variables are enabled, a compiler-specific debug flag is passed via the wrappers to ensure we have DWARF information to convert, _INSTALL_UNSTRIPPED is explicitly defined to avoid binaries being stripped prior to conversion, and the conversion is performed during the install stage. It is recommended that users who enable the feature also set STRIP_DEBUG=yes to reduce the final binary size once the conversion has been performed. This has been used for the past year in Joyent SmartOS builds. FreeBSD is marked as supported but is untested.
2018-11-12mk/install: Add support for STRIP_DEBUG_SUPPORTED.jperkin1-2/+9
This is a package-settable variable that will disable stripping binaries if set to anything other than "yes" (the default). This helps packages such as anything built using golang where stripping binaries is harmful to them. Document this and the recently introduced STRIP_FILES_SKIP.
2018-11-12mk/install: Improve the strip-debug target.jperkin1-11/+15
Use the new strip-dbg tool, ensuring that we don't fail when the native strip doesn't support -g. Actually check for the existence of the output file before trying to move it into place. Add support for STRIP_FILES_SKIP for certain files which should not be stripped. And finally, improve performance slightly by skipping symlinks.
2018-05-16mk/*: improve documentation for "make help"rillig1-3/+4
2017-08-19Run pkg_add(1) and pkg_delete(1) using ${SETENV} ${PKGTOOLS_ENV}.jlam1-3/+3
PKGTOOLS_ENV allows for passing environment variables to the package install and deinstall scripts.
2017-08-08Check, don't assert, that INSTALLATION_DIRS are all in ${PREFIX}.jlam1-8/+12
Change the assertion into an install-time check that the paths listed in INSTALLATION_DIRS are relative paths or are in ${PREFIX}. This delays the check so that some common variables used when listing directories in INSTALLATION_DIRS are fully-expanded.
2017-08-07Assert INSTALLATION_DIRS begin with ${PREFIX} or are relative.jlam1-11/+22
Add an assertion that all paths listed in INSTALLATION_DIRS must either begin with ${PREFIX}/ or are relative paths. Clarify in the documentation that INSTALLATION_DIRS can list either type of path. Some packages are using INSTALLATION_DIRS to create directory trees outside of ${PREFIX}, e.g., under ${PKG_SYSCONFBASE} or ${VARBASE}. However, these directories are only created as part of the "install" target, which causes them to only be created during the staged installation into ${DESTDIR} and not at all if their binary packages are installed. These packages should be fixed to use MAKE_DIRS or OWN_DIRS to create these directory trees at the proper time.
2017-06-01Provide switch to activate new frameworks to replace "pkginstall".jlam1-1/+3
If ${_USE_NEW_PKGINSTALL} is "yes", then use the new "pkgtasks", "init", and "pkgformat/pkg"-scripts frameworks instead of the existing "pkginstall" framework.
2016-07-26Support NetBSD man/html entries. Fixes deforaos-*.jperkin1-2/+2
2016-06-16add ftp6 to binpkg_sites, at request of joerg, since cdn is ipv4 onlymspo1-2/+3
2016-06-16set cdn.netbsd.org as the bin install site for netbsdmspo1-2/+2
2016-04-10Remove support for USE_DESTDIR=no.joerg4-59/+12
2015-10-12Support compressed manual pages with 3am and 3f suffixes.jperkin1-2/+2
2015-09-07Remove warning about 'make replace' being experimental.gdt1-2/+1
Lots of people have been using make replace for many years, at least since 2006. It hasn't been experimental for most of those years, and there have been no reports of "data loss".
2014-12-06Add a new definition, PKGSRC_KEEP_BIN_PKGS, which defaults to "no".agc2-4/+8
This definition controls whether the binary package which is built during package installation will be copied to pkgsrc/packages/All. To retain binary packages in pkgsrc/packages/All, set PKGSRC_KEEP_BIN_PKGS=yes in environment or MAKECONF. If this is not set, binary packages will not be preserved after their WRKDIR is removed. This may not be what you want. To preserve the status quo since 2013/05/22, and just delete the binary package after it's built, the default for PKGSRC_KEEP_BIN_PKGS is "no", or it can be explicitly set. As reviewed on tech-pkg.
2014-07-28Use the standard 75 x '=' print format.jperkin1-3/+3
2014-03-11Introduce infrastructure support for SMF.jperkin1-0/+40
SMF is the Service Management Facility, the default init system in Solaris and derivatives since version 10. This adds "smf" to the list of supported INIT_SYSTEM types, and makes it the default init system on platforms where it is available. Packages can introduce SMF support by providing a manifest file, by default located in ${FILESDIR}/smf/manifest.xml but manifests under ${WRKSRC} can be used too if the package source includes one. SMF method scripts are supported too if required, using SMF_METHODS in a similar manner to RCD_SCRIPTS. Many parts of the SMF infrastructure are configurable, see mk/smf.mk for the full details.
2013-05-23prevent to generate binary package in ${PACKAGES} from the side effect ofobache2-4/+4
`install' with USE_DESTDIR=yes. This changes prevent to unwanted overwite of existing binary packages with test installation (`stage-install', `replace' & `undo-replace', and so on). To do both `install' and `package', you can still use `package-install' target, same as USE_DESTDIR=no.
2013-01-05Modify mk/plist/plist-gnu.mk to convert gnu/man to ${PKGGNUDIR}${PKGMANDIR}.sbd1-1/+2
Also modify mk/install/install.mk to make the conversion when using AUTO_MKDIRS.
2012-12-06Introduce PKGGNUDIR as a way to control gnu prefix.jperkin1-4/+6
By default pkgsrc uses LOCABASE/gnu as a prefix for packages to install native versions of GNU tools, which are them symbolically linked back to the 'g' versions of the files in LOCALBASE, and users can then add LOCALBASE/gnu/bin to PATH to pick up those tools. On systems where the GNU environment is desired, PKGGNUDIR now allows users to install the non-'g' files directly into LOCALBASE, making them the default without having to alter PATH, whilst retaining the 'g' files in order to ensure dependencies and tool paths remain the same.
2012-07-28fix typo in commentreed1-2/+2
2011-11-05When using Minix, set BINPKG_SITES to the official Minix binary package site.tcort1-1/+4
2011-10-15Rename "flavor" to "pkgformat".reed4-22/+22
This is from Anton Panev's GSoC 2011 project to add RPM and DPKG support to pkgsrc. (I am not adding that further support in this commit.) This is just a rename of the existing functionality. Now it will be easy to test the GSoC work by simply putting in a single directory (such as "rpm" or "deb"). See http://addpackageforma.sourceforge.net/ for some details. This is from Anton's CVS, but I made some minor changes: - changed plural pkgformats to singular pkgformat (to be consistent) - fixed a few places (in comments) that were missed - catch up on some additions to flavor not in the pkgforma cvs: PKGSRC_SETENV and _flavor-destdir-undo-replace and undo-destdir-replace-install.
2011-09-08Introduce PKGSRC_SETENV, defaulting to SETENV. Can be set to ${SETENV} -iabs2-6/+6
to santise environment
2011-08-01Pass PKGNAME_REQD through to the make process on the other sideapb1-1/+2
of the "su" command. This fixes {cd math/py-networkx; env PYTHON_VERSION_DEFAULT=25 PKGNAME_REQD='py24-networkx-*' make replace;}
2011-06-04Add support undo-replace with USE_DESTDIR.obache1-1/+8
fixes PR#43689.
2011-03-21remove quote from "DESTDIR".obache1-2/+2
2011-03-21Introduce DESTDIR_VARNAME package-settable variable.obache1-4/+9
A variable name that should be set as staged installation location presented as ${DESTDIR} at installation phase. "DESTDIR" is set by default. for packages using different variable for staged installation prefix, and/or using DESTDIR variable for different purpose.
2011-02-07Add default binpkg site for DragonFly. From Justin Sherrill in PR 44526.wiz1-1/+4
2010-04-18syncing BINPKG_SITES with reality.sbd1-2/+2
Originally suggested by hubertf@
2010-02-25Rename internal package-clean target to package-eat-cookie.joerg1-2/+2
2010-02-24Rename the install phase to stage-install. Introduce a new installjoerg2-16/+32
target that defaults to either stage-install or package-install, depending on whether DESTDIR support is active and supported by the package or not.
2009-10-06Use the correct variable names.joerg1-4/+4
2009-09-20Fix syntax. Mea culprajoerg1-2/+2
2009-09-18Deal with strip idiosyncracies:joerg1-2/+10
- sometimes creates the temporary file, but fails - sometimes it is successful, but still keeps the temporary file - sometimes it crashes when called with more than one argument Bite the bullet and call it individually with explicit output file and clean up after it.
2009-09-02Use filtered plist for install-strip-debug and install-man-handling,joerg1-4/+3
simplifying the latter.
2009-09-02Add STRIP_DEBUG option, which removes debug information from all files,joerg2-2/+25
leaving basic symbol tables intact. Document that INSTALL_UNSTRIPPED doesn't work for all packages.
2009-06-17Make sure that _UPDATE_RUNNING=YES is passed down to su-deinstall forjoerg1-2/+2
PKG_PRESERVE packages (e.g. pkg_install). Otherwise an old version of pkg_install is not removed from pkgdb.
2009-06-09Add support for using USE_DESTDIR=yes and replace together.joerg1-2/+13
Based on the patch send to tech-pkg in 2008, but less intrusive.