summaryrefslogtreecommitdiffstats
path: root/scripts/makepkg.sh.in
AgeCommit message (Collapse)AuthorFilesLines
2012-08-04makepkg: rename myverAllan McRae1-4/+4
myver is a bit generic for an internal variable name. Signed-off-by: Allan McRae <allan@archlinux.org>
2012-08-04makepkg: add support for SVN urlsAllan McRae1-3/+70
Allow SVN repo sources in the form: source=("<folder>::<repo>#<fragment>") where <repo> must start with svn (e.g svn+http://) and a <fragment> can specify a revision (e.g. revision=22). Signed-off-by: Allan McRae <allan@archlinux.org>
2012-08-04makepkg: provide mechanism for auto-updating pkgverAllan McRae1-0/+21
Now that VCS repos are provided in the source array, it becomes too complicated to have automatic updating pkgver as was the case with the old VCS PKGBUILDs (there can be multiple repos of different types in the source array, the VCS repo may not be the package primary source, etc). Instead provide an optional way for a PKGBUILD to update the pkgver value through the specifing of a pkgver() function that returns the new version string. This is run after all source files are downloaded so can access the VCS repo if needed. Signed-off-by: Allan McRae <allan@archlinux.org>
2012-08-04makepkg: modify get_filepath to handle VCS sourcesAllan McRae1-17/+23
With VCS sources, get_filepath should return the directory of the checkout. This allows backing up of the VCS checkout when using --allsource. Fixes FS#21098. Signed-off-by: Allan McRae <allan@archlinux.org>
2012-08-04makepkg: modify get_filename to handle VCS sourcesAllan McRae1-8/+23
Modify get_filename to return the name of the folder with VCS sources. This fixes output issues in checksum checking. Signed-off-by: Allan McRae <allan@archlinux.org>
2012-08-04makepkg: fix checksum generation with VCS sourcesAllan McRae1-4/+15
VCS sources should have "SKIP" for their checksum value Signed-off-by: Allan McRae <allan@archlinux.org>
2012-08-04makepkg: allow using GIT source URLsAllan McRae1-0/+85
Allow specifing GIT sources using the following syntax source=('<folder>::<repo>#<fragment>') This will download the git repo <repo> into <folder> (into $SRCDIR if set, otherwise $startdir). <repo> must start with "git", but non-git protocols are handled using (e.g.) "git+http://...". The <fragment> can be used to specify a branch, tag, or commit to build from. e.g. branch=maint. Checksum entries for git sources should be "SKIP". Signed-off-by: Allan McRae <allan@archlinux.org>
2012-08-04makepkg: skip integrity checking earlyAllan McRae1-11/+13
If "SKIP" is provided for an integrity check, abort checking as soon as possible. Also swap fork to tr for bash4 conversion. Signed-off-by: Allan McRae <allan@archlinux.org>
2012-08-04makepkg: generalize download_sourcesAllan McRae1-45/+67
In order to treat all VCS sources as URLs, we need to be able to deal with more protocols. Rewrite download_sources to use a case statement so additional protocols are easily added. Also fix the use of scp to not pass the protocol in the URL (noticed by William J. Bowman <wjb@williamjbowman.com>) Signed-off-by: Allan McRae <allan@archlinux.org>
2012-08-04makepkg: add function to return download protocolAllan McRae1-0/+11
Extract the download protocol from a source entry. Returns "local" for local source files. Signed-off-by: Allan McRae <allan@archlinux.org>
2012-08-04makepkg: reorder source handling functionsAllan McRae1-120/+120
There is no actual code change here, but these related functions were all over the place which makes this code difficult to adjust. Signed-off-by: Allan McRae <allan@archlinux.org>
2012-08-04makepkg: remove VCS package supportAllan McRae1-139/+6
The current VCS packaging support is really, really, really bad. It is best to strip it out completely before rewriting it. Signed-off-by: Allan McRae <allan@archlinux.org>
2012-08-01Merge branch 'maint'Dan McGee1-1/+0
2012-08-01Add a function prepare() to PKGBUILDEnjolras1-0/+11
prepare is run after the source extraction, and is not run with --noextract option. Signed-off-by: Dan McGee <dan@archlinux.org>
2012-08-01makepkg: remove unnecessary formattingAllan McRae1-1/+0
This extra newline leaves a gap that looks strange in of itself, but is highlighted when piping -g output to a PKGBUILD. Signed-off-by: Allan McRae <allan@archlinux.org> Signed-off-by: Dan McGee <dan@archlinux.org>
2012-08-01asdeps flag passed from makepkg to pacmanDaniel Wallace1-1/+6
add the asdeps flag for makepkg so that it does pacman -U --asdeps [Allan: clean-up whitespace] Signed-off-by: Daniel Wallace <daniel.wallace12@gmail.com> Signed-off-by: Dan McGee <dan@archlinux.org>
2012-06-25repo-add: add checkdepends informationAllan McRae1-9/+10
Similar to the case for makedepends, it is useful to be able to access this information without parsing a PKGBUILD. Signed-off-by: Allan McRae <allan@archlinux.org>
2012-06-25makepkg: install deps with --repackageAllan McRae1-3/+3
I have noticed that quite a number of packages fail with "makepkg -R" when their (make)dependencies are not installed. Adjust makepkg to check for dependencies when used with -R. This can still be avoided by using --nodeps/-d. Signed-off-by: Allan McRae <allan@archlinux.org>
2012-06-25Allow wildcards in PURGE_TARGETS to match any type of file except for ↵Jeremy Huntwork1-1/+1
directories. Signed-off-by: Jeremy Huntwork <jhuntwork@lightcubesolutions.com>
2012-06-25makepkg: allow url to be overridden in split packagesAllan McRae1-1/+1
This is already being used (despite not working...) in packages in the Arch Linux repos. Signed-off-by: Allan McRae <allan@archlinux.org> Signed-off-by: Dan McGee <dan@archlinux.org>
2012-06-25Portability fixes for makepkgJeremy Huntwork1-29/+22
Allow makepkg to work correctly when used with find from busybox. Fix handling of cross directory symlinks. Signed-off-by: Jeremy Huntwork <jhuntwork@lightcubesolutions.com> Signed-off-by: Allan McRae <allan@archlinux.org>
2012-05-20makepkg: rework libdependsAllan McRae1-39/+61
Rewrite the handling of libdepends. The primary advantage are: - Moves functionality from write_pkginfo() to find_libdepends(). - The order of the depends array in the PKGBUILD is kept in the package. - An unneeded libdepends is only a warning and not an error. This allows putting a libdepend on a library that is dlopened. - It is now modular so can be extended to library types other than ELF *.so. - Finding the list of libraries a package depends only occurs when a libdepend is specified in the depends array. Signed-off-by: Allan McRae <allan@archlinux.org>
2012-05-20makepkg: write makedepends into .PKGINFOAllan McRae1-0/+2
Currently there is no way to access the makedepends for a package apart from parsing its PKGBUILD. Put these into the .PKGINFO file with the idea of making them available in the repo dbs so that automated build tools can readily determine build order. Signed-off-by: Allan McRae <allan@archlinux.org> Signed-off-by: Dan McGee <dan@archlinux.org>
2012-05-20makepkg: Add CPPFLAGS supportAllan McRae1-2/+2
Add CPPFLAGS support in addition to the current CFLAGS and CXXFLAGS. This keeps compiler flags split up in the same logical way done everywhere else. Signed-off-by: Allan McRae <allan@archlinux.org> Signed-off-by: Dan McGee <dan@archlinux.org>
2012-05-20makepkg: use mapfile where plausibleDave Reisner1-6/+5
With bash4 as a requirement, we can use mapfile when reading command output into an array. mapfile has the advantage of using block buffered I/O rather than line buffered I/O, making it slightly faster for most jobs. Signed-off-by: Dave Reisner <dreisner@archlinux.org>
2012-04-30makepkg: fix package arch detectionAllan McRae1-0/+1
get_pkg_arch checked for the arch variable being overridden in the package_$1() function when used with a package as a parameter. However, when there was no override, it did not fall back to the global value. Signed-off-by: Allan McRae <allan@archlinux.org>
2012-04-29makepkg: remove subshelling from check_option and friendsDave Reisner1-58/+79
Instead of creating a subshell for each of these checks (of which there are many), pass in an expected value and make the check_* function do the comparison for us, returning 0 (match), 1, (mismatch), or 127 (not found). For a measureable benefit, I tested this on a fairly simple package, perl-term-readkey, and counted the number of clone(2) syscalls to try and isolate those generated by makepkg itself, rather than the user defined functions. Results as shown below: 336 before 180 after So, roughly a 50% reduction, which makes sense given that a single check_option() call could be up to 3 subprocesses in total. Signed-off-by: Dave Reisner <dreisner@archlinux.org>
2012-04-29makepkg: null terminate filenames to stripDave Reisner1-1/+1
Signed-off-by: Dave Reisner <dreisner@archlinux.org>
2012-04-24makepkg: Be more consistent with missing program messageAllan McRae1-1/+1
Also prevent "sudo" and "su" from being translated. Signed-off-by: Allan McRae <allan@archlinux.org>
2012-04-24makepkg: treat list of packages to be installed as an arrayAllan McRae1-2/+2
Signed-off-by: Allan McRae <allan@archlinux.org>
2012-04-24makepkg: deal with overriden package arch properlyAllan McRae1-18/+33
This fixes a lot of checks done by makepkg (e.g. to see if a package is already built and choosing which package to install). Previously, if a package had both "i686" and "any" versions, the "i686" one always took precidence regardless of the value of "arch" in the PKGBUILD for that package. Fixes FS#27204. Signed-off-by: Allan McRae <allan@archlinux.org>
2012-04-24Merge branch 'maint'Dan McGee1-0/+5
Conflicts: scripts/repo-add.sh.in
2012-04-24scripts: avoid dumping usage on parser failDave Reisner1-1/+1
Avoid letting the error message from parseopts get lost in the usage output from pacman-key and makepkg (which is already verbose).
2012-04-24makepkg: allow specifying --pkg multiple timesDave Reisner1-1/+1
Make this option additive, so that the following two operations are equivalent: makepkg --pkg foo --pkg bar makepkg --pkg foo,bar
2012-04-24makepkg: adopt parseopts for option parsingDave Reisner1-13/+13
Signed-off-by: Dave Reisner <dreisner@archlinux.org>
2012-04-20makepkg: restrict allowed characters in pkgnameDave Reisner1-0/+5
Signed-off-by: Dave Reisner <dreisner@archlinux.org> Signed-off-by: Dan McGee <dan@archlinux.org>
2012-04-08makepkg: save and restore shopts when sourcing /etc/profileAllan McRae1-0/+4
Signed-off-by: Allan McRae <allan@archlinux.org>
2012-04-08makepkg: complain when the buildfile isn't writeableDave Reisner1-7/+7
If the PKGBUILD isn't writeable for devel_update, throw a warning instead of silently ignoring it. Some logical reordering is present in this patch to reduce the number of nested if's. Signed-off-by: Dave Reisner <dreisner@archlinux.org>
2012-04-08makepkg: catch errors sourcing filesDave Reisner1-9/+14
create source_safe() function which temporarily disables extglob and exits on error. Signed-off-by: Dave Reisner <dreisner@archlinux.org>
2012-04-08makepkg: restrict usage of errexit to user functionsDave Reisner1-23/+23
It's expected that this will lead to unwanted behavior, and needs widespread testing. It's desirable to commit this for a few reasons: - there's no reason we can't do our own error checking for code that we write. - it avoids the need for ||true hacks scattered about in the code. - it makes us immune to upstream changes in exit codes (FS#28248) Signed-off-by: Dave Reisner <dreisner@archlinux.org>
2012-04-08makepkg: treat lib{provides,depends} returns as proper arraysDave Reisner1-6/+6
Make these functions more whitespace space by treating newlines as the element delimiter rather than every form of whitespace. Signed-off-by: Dave Reisner <dreisner@archlinux.org> Signed-off-by: Dan McGee <dan@archlinux.org>
2012-04-08makepkg: use proper array addition in libdepsDave Reisner1-7/+7
Signed-off-by: Dave Reisner <dreisner@archlinux.org> Signed-off-by: Dan McGee <dan@archlinux.org>
2012-04-08makepkg: add missing newline from libprovides outputDave Reisner1-1/+1
This was a small oversight from 1917c845 which causes makepkg to write provides entries to the .PKGINFO file improperly, e.g. provides = systemdlibsystemdudev=999 Add a newline in the printf format to ensure that these are spaced appropriately. Signed-off-by: Dave Reisner <dreisner@archlinux.org> Signed-off-by: Dan McGee <dan@archlinux.org>
2012-04-07makepkg: safely change directoriesAllan McRae1-13/+21
In preparation for the removal of the global error trap we need a way to ensure changing directories succeeds. Add a "cd_safe" wrapper that performs the necessary check. Signed-off-by: Allan McRae <allan@archlinux.org> Signed-off-by: Dan McGee <dan@archlinux.org>
2012-04-07makepkg: use printf rather than echo to output variableAllan McRae1-31/+31
Also make sure the strings passed to %s in printf are always quoted. Signed-off-by: Allan McRae <allan@archlinux.org> Signed-off-by: Dan McGee <dan@archlinux.org>
2012-04-07makepkg: the rhs in string comparisons should be quotedAllan McRae1-12/+12
Signed-off-by: Allan McRae <allan@archlinux.org> Signed-off-by: Dan McGee <dan@archlinux.org>
2012-04-07makepkg: devel_check(): cleanup for hg versionMatthew Monaco1-5/+7
Use pushd/popd, quote args, handle some more errors
2012-04-07makepkg: devel_check(): set newpkgver (cleanup)Matthew Monaco1-27/+34
The case structure allows the syntax to focus on what's actually being done here.
2012-04-07makepkg: devel_check(): consolidate common codeMatthew Monaco1-30/+7
2012-04-07makepkg: devel_check(): determine vcsMatthew Monaco1-0/+16
Rather than prioritizing an arbitrary VCS, collect all development directives. If there is more than one, give a warning and abort.