summaryrefslogtreecommitdiffstats
path: root/scripts/makepkg.sh.in
AgeCommit message (Collapse)AuthorFilesLines
2013-06-26Merge branch 'maint'Allan McRae1-1/+1
2013-06-23Respect paths with spaces on --installAndrea Scarpino1-1/+1
makepkg --install doesn't quote the absolute path, so if the path contains spaces pacman -U fails. Signed-off-by: Allan McRae <allan@archlinux.org>
2013-06-18Merge branch 'maint'Allan McRae1-1/+1
2013-06-16makepkg: fix typo for distcc testAllan McRae1-1/+1
Introduced in commit 9dd42dc0. Fixes FS#35741. Signed-off-by: Allan McRae <allan@archlinux.org>
2013-06-06Merge branch 'maint'Allan McRae1-0/+4
2013-06-04Restrict pkgname from starting with a dot.Allan McRae1-0/+4
Adding this restriction means we can filter any FILENAME entry from starting with a "/" or a ".". Use the term "dot" as it is more computing relevant compared to "full stop" or "period" which vary depending on English locale. Signed-off-by: Allan McRae <allan@archlinux.org>
2013-05-29makepkg: add support for CARCH environment varPhillip Smith1-0/+2
Add support for overriding configuration in /etc/makepkg.conf and ~/.makepkg.conf by setting the environment variable CARCH similar to how SRCDEST and PKGDEST behave. Fixes FS#35030. Signed-off-by: Allan McRae <allan@archlinux.org>
2013-05-29makepkg: remove support for PKGBUILDs without a package() functionAllan McRae1-30/+11
Not having a package() function means all building occurs as root and repackaging can lose permissions. Given the use of package() functions has been around for years and we deprecated not having one in pacman-4.1, we can remove support for PKGBUILDs without package() functions altogether. However, keep PKGBUILDs that have neither a build() or package() function working. Signed-off-by: Allan McRae <allan@archlinux.org>
2013-05-29makepkg: Add helper to test for functions in build scriptAllan McRae1-7/+11
Signed-off-by: Allan McRae <allan@archlinux.org>
2013-05-29makepkg: remove sourcing PKGBUILD from stdinAllan McRae1-8/+2
Using PKGBUILDs from stdin means that we can not use pkgver() in packages. Given we have the "-p" option to pass any file to makepkg and passing a PKGBUILD in the form "cat foo | makepkg" does not work, this feature is unneeded. Signed-off-by: Allan McRae <allan@archlinux.org>
2013-05-29Merge branch 'maint'Allan McRae1-19/+19
2013-05-18makepkg: Use LOGDEST for logpipeAllan McRae1-1/+1
If LOGDEST is set, we may not check that $startdir is writable. Store the log pipe in LOGDEST instead. Signed-off-by: Allan McRae <allan@archlinux.org>
2013-05-18makepkg: fixup broken revision and repo referencesDave Reisner1-18/+18
bzr support "worked", but didn't handle any of the actual features we wanted with makepkg. This moves the revision specification to the proper place (extraction, rather than download), and fixes an additional broken reference to $repo which was never set. Fixes FS#35281. Signed-off-by: Dave Reisner <dreisner@archlinux.org> Signed-off-by: Allan McRae <allan@archlinux.org>
2013-05-07Merge branch 'maint'Allan McRae1-11/+34
2013-04-30Add --noprepare option to makepkgEric Bélanger1-2/+7
This new option disables the prepare function. Useful in combination with -o to get an unpatched copy of the sources for testing purpose. Signed-off-by: Eric Bélanger <snowmaniscool@gmail.com> Signed-off-by: Allan McRae <allan@archlinux.org>
2013-04-30Add -V/--version option to makepkg's usage function and man pageEric Bélanger1-0/+1
Signed-off-by: Eric Bélanger <snowmaniscool@gmail.com> Signed-off-by: Allan McRae <allan@archlinux.org>
2013-04-28makepkg: avoid redirecting stdoutDave Reisner1-1/+1
If stdout is already redirected, redirecting stderr to stdout can lead to undesirable results. Fixes FS#34974. Signed-off-by: Dave Reisner <dreisner@archlinux.org> Signed-off-by: Allan McRae <allan@archlinux.org>
2013-04-12makepkg: fix svn repo extractionAllan McRae1-4/+9
Copy SVN repos rather than using "svn export" to keep all anotation files in the repo for build scripts that use (e.g.) "svin info". Signed-off-by: Allan McRae <allan@archlinux.org>
2013-04-12Do not use checkout directory for SVN configAllan McRae1-1/+2
Using the checkout directory for the SVN config can result in clashes between config files and files from the SVN checkout. Instead, use a ".makepkg" directory within the checkout. Signed-off-by: Allan McRae <allan@archlinux.org>
2013-04-11Add support for all bzr URLs in the PKGBUILD source arrayMaxime Gauduin1-4/+21
Add support for all bzr URLs, including "lp:" URLs, in the source array. This, however, requires an internet connection and will fall back to the current behavior for offline builds. In that case, only the URL reported by 'bzr config parent_location' run inside the local repo can be used, and is outputted. Signed-off-by: Maxime Gauduin <alucryd@gmail.com>
2013-04-11makepkg: don't run remove_deps twice when unneededWilliam Giokas1-1/+0
remove_deps already has a check and won't run unless -r is specified, so if this was meant to remove dependencies of a failure no matter what, then it's not doing it, and with -r it is run twice on a failure for no real reason. Signed-off-by: William Giokas <1007380@gmail.com> Signed-off-by: Allan McRae <allan@archlinux.org>
2013-04-06makepkg: avoid file|grep dependency for CRLF checkDave Reisner1-2/+1
Signed-off-by: Dave Reisner <dreisner@archlinux.org> Signed-off-by: Allan McRae <allan@archlinux.org>
2013-04-06makepkg: remove extra ansi color codesAndrew Gregory1-6/+6
All those extra '\e[1;'s were just setting bold redundantly or immediately being cancelled. Signed-off-by: Andrew Gregory <andrew.gregory.8@gmail.com> Signed-off-by: Allan McRae <allan@archlinux.org>
2013-04-01remove continue from download_localDaniel Wallace1-1/+0
Bug exposed by a6291858cc1570e56204c4a1e7a68f76c4853336 popd doesn't run in the for loop in download_sources() if the continue in download_files is executed. Causing the extract_files to extract everything into $SRCDEST instead of $srcdir Signed-off-by: Allan McRae <allan@archlinux.org>
2013-03-31makepkg: unset GREP_OPTIONSAndrew Gregory1-0/+2
grep allows options to be set from the environment with GREP_OPTIONS. Many of these options will alter grep's output, breaking makepkg. GREP_OPTIONS=--line-number breaks installed dependency removal, for instance. Signed-off-by: Andrew Gregory <andrew.gregory.8@gmail.com> Signed-off-by: Allan McRae <allan@archlinux.org>
2013-03-30Ensure we are always in $SRCDEST before downloadingAllan McRae1-5/+4
When VCS sources were updated, we changed into their root directory. Any following source was then downloaded to an incorrect place causing a failure in makepkg. Ensure we are always in the $SRCDEST directory before starting any download. Fixes FS#34488. Signed-off-by: Allan McRae <allan@archlinux.org>
2013-03-26Remove duplicate optionAllan McRae1-2/+2
The "skippgpcheck" option was specified twice. Also, fix alphabetical ordering. Signed-off-by: Allan McRae <allan@archlinux.org>
2013-03-14Revert "makepkg: Use a recursive git clone."Allan McRae1-1/+1
This reverts commit 8b03b1a8776043978aeac31682f94d65b4f3e514. It is much better to download the submodules using separate source entries and adjust the submodule configs to point at these versions in the prepare() function. See https://mailman.archlinux.org/pipermail/pacman-dev/2013-March/016771.html for an example. Signed-off-by: Allan McRae <allan@archlinux.org>
2013-03-10makepkg: Add --verifysource to only download/verify source filesOlivier Brunel1-2/+6
Because --noextract also implies to not download/verify source files, it wasn't possible to simply do that, without either extracting and/or building. (Note: --verifysource takes precedence over --noextract) Signed-off-by: Olivier Brunel <i.am.jack.mail@gmail.com> Signed-off-by: Allan McRae <allan@archlinux.org>
2013-03-10makepkg: Make VCS download functions use get_filenameNeer Sighted1-9/+7
Make all VCS download functions uses get_filename to get the repo name. In addition, creating a working directory from a Bazaar repository now shows the short-name of the repository, not the full path on disk. I'm not sure if the name of the variable that holds the basename of the local clone should still be `repo`, but I have left the variable name for simplicity. Signed-off-by: Neer Sighted <neersighted@myopera.com> Signed-off-by: Allan McRae <allan@archlinux.org>
2013-03-10makepkg: Separate vcs download and extractWilliam Giokas1-68/+131
Previously makepkg would clone vcs sources in the download function, regardless of the noextract settings. Now the download_* functions only download or update the vcs sources, and the new extract_* functions just create working copies using the specified protocols. The extract_sources function will call the needed extract function for the protocol specified. The tarball extraction has also been moved into its own extract_file function to keep things consistent. Signed-off-by: William Giokas <1007380@gmail.com> Signed-off-by: Allan McRae <allan@archlinux.org>
2013-03-07makepkg: Use a recursive git clone.Neer Sighted1-1/+1
Make makepkg use a recursive clone when creating the working directory. This will initialize submodules Signed-off-by: Allan McRae <allan@archlinux.org>
2013-03-07makepkg: Avoid find to fork for each rm callSébastien Luttringer1-2/+2
Reported-by: Dave Reisner <dreisner@archlinux.org> Signed-off-by: Sébastien Luttringer <seblu@seblu.net> Signed-off-by: Allan McRae <allan@archlinux.org>
2013-03-07Add staticlibs option in PKGBUILDSébastien Luttringer1-2/+7
This option helps to removes static library files in packages. Related to the thread: https://mailman.archlinux.org/pipermail/arch-dev-public/2013-March/024552.html Signed-off-by: Sébastien Luttringer <seblu@seblu.net> Signed-off-by: Allan McRae <allan@archlinux.org>
2013-02-16makepkg: add support for .pkg.tar.lzoDave Reisner1-0/+2
Supported by libarchive as of version 3.1.0 when compiled against lzo2 or in the presence of the lzop binary. Signed-off-by: Dave Reisner <dreisner@archlinux.org> Signed-off-by: Allan McRae <allan@archlinux.org>
2013-02-13makepkg: fix -r and --needed conflictWilliam Giokas1-1/+3
In makepkg, passing -sr --needed causes there to be a conflict when pacman goes to remove the dependencies, as the --needed flag is not an option for pacman -R. This patch makes --needed not get added to the PACMAN_OPTS array, but it acts like ASDEPS, and is only added to an install function. Signed-off-by: William Giokas <1007380@gmail.com> Signed-off-by: Allan McRae <allan@archlinux.org>
2013-02-13makepkg: add lrzip compression supportAllan McRae1-5/+7
Signed-off-by: Allan McRae <allan@archlinux.org>
2013-02-07makepkg: make $pkgdir non-accessible during build()Allan McRae1-18/+24
The idea of having separate build() and package() functions is that build() is run as a normal uses and package() as (fake)root. Any files placed in $pkgdir during build() can have the wrong permissions. Restrict access to $pkgdir during build() - unless there is no package() function. Also, set $pkgdir to something "useful" during build(). For split packages, this uses "<path>/pkg/$pkgbase" because it is not obvious which $pkgdir is being referred to. Signed-off-by: Allan McRae <allan@archlinux.org>
2013-01-29makepkg: Integrate check_install into tidy_installChirantan Ekbote1-33/+26
Rearrange tidy_install so we first remove docs, unwanted files, libtool files, and empty directories. Then check for missing backup files and references to $srcdir and $pkgdir. Finally compress manpages, strip debug symbols, and compress executables with upx. Fixes FS33318 Signed-off-by: Chirantan Ekbote <chirantan.ekbote@gmail.com> Signed-off-by: Allan McRae <allan@archlinux.org>
2013-01-17makepkg: Formatting consistency in write_pkginfoWilliam Giokas1-7/+5
The difference between the echo and the printf's in write_pkginfo seemed to be somewhat sporadic. Also, the INFAKEROOT check was doing the same exact thing as the SPLITPKG check, but formatted much differently and consuming two extra lines. I think this makes it more readable than it was previously, if nothing else. Signed-off-by: William Giokas <1007380@gmail.com> Signed-off-by: Allan McRae <allan@archlinux.org>
2013-01-03makepkg: Print out full version on pkgver updateWilliam Giokas1-0/+2
When building sources with a pkgver function, makepkg will print out the original version before pkgver() is run, claiming that that is the package that will be built. This patch simply re-prints the output later, after pkgver() has been run so people can see which package they are actually building. Signed-off-by: William Giokas <1007380@gmail.com> Signed-off-by: Allan McRae <allan@archlinux.org>
2013-01-03makepkg: use --apparent-size when du supports itAllan McRae1-6/+1
Amazingly, using "sleep 1" to convince btrfs to report correct file sizes is only a 90% fix. Sometimes more sleep is needed. Instead we use the --apparent-size argument to du to get actual file sizes. This is used only on Linux as the various BSDs do not support this argument. Signed-off-by: Allan McRae <allan@archlinux.org>
2013-01-03Update copyright year for 2013Allan McRae1-2/+2
Signed-off-by: Allan McRae <allan@archlinux.org>
2012-12-14makepkg: add mtree file into packageAllan McRae1-2/+8
Add an mtree file to the package with all file information. This can be added to the local pacman database on install allowing full package verification. Signed-off-by: Allan McRae <allan@archlinux.org>
2012-12-14Added LOGDEST variableWilliam Giokas1-1/+10
Places logs in a pre-defined location. The logs are always neatly labeled with package names and numbers, and this way can be more easily sent to network shares as they are written or compressed/cleaned en masse. Signed-off-by: William Giokas <1007380@gmail.com> Signed-off-by: Allan McRae <allan@archlinux.org>
2012-12-14makepkg: normalize whitespace in $pkgdesc when writing .PKGINFODave Reisner1-1/+1
Specifically, we shouldn't allow newlines in the pkgdesc field, as pacman will ignore the continuation and end the description prematurely as written to the local DB. Normalize ALL whitespace, replacing it with single whitespace characters. Fixes strange errors as seen by FS#32852. Signed-off-by: Dave Reisner <dreisner@archlinux.org> Signed-off-by: Allan McRae <allan@archlinux.org>
2012-11-27makepkg: install debug symbol packages if requestedAllan McRae1-0/+4
When using "makepkg -i", install the debugging symbol packages too if present. Signed-off-by: Allan McRae <allan@archlinux.org>
2012-11-27makepkg: assign debugging symbol directory to a variableAllan McRae1-14/+13
Simplifies the stripping of files a lot. Signed-off-by: Allan McRae <allan@archlinux.org>
2012-11-27makepkg: allow debug package suffix to be configurableAllan McRae1-15/+15
Signed-off-by: Allan McRae <allan@archlinux.org>
2012-11-27makepkg: create package from stripped debug symbolsAllan McRae1-0/+25
Signed-off-by: Allan McRae <allan@archlinux.org>