Commit Graph

63 Commits

Author SHA1 Message Date
Sebastian Nowicki c33cabd675 Use chown 0:0 instead of root.root
On BSD systems using a dot as a separator is not allowed. On Mac OSX it
is deprecated. A colon should be used instead. BSD systems also use the
"wheel" group instead of "root" to indicate the "super user" group. Both
groups use the id of 0.

Signed-off-by: Sebastian Nowicki <sebnow@gmail.com>
Acked-by: Aaron Griffin <aaronmgriffin@gmail.com>
Acked-by: Dan McGee <dan@archlinux.org>
Signed-off-by: Xavier Chantry <shiningxc@gmail.com>
Signed-off-by: Dan McGee <dan@archlinux.org>
2008-05-29 06:37:14 -05:00
Sebastian Nowicki 20ae871940 Use "legacy mode" on Mac OSX (for file command)
For some reason `file` on Mac OSX has different arguments than BSD and
Linux; -i no longer prints out the mime strings. With the environment
variable COMMAND_MODE set to "legacy", `file` behaves more like it does
on Linux and BSD, i.e., `file -i` prints the mime type.

Signed-off-by: Sebastian Nowicki <sebnow@gmail.com>
Acked-by: Dan McGee <dan@archlinux.org>
Acked-by: Aaron Griffin <aaronmgriffin@gmail.com>
Signed-off-by: Xavier Chantry <shiningxc@gmail.com>
Signed-off-by: Dan McGee <dan@archlinux.org>
2008-05-29 06:37:14 -05:00
Sebastian Nowicki b9369a747d Allow an unprivileged user to create packages without fakeroot
When fakeroot was not in BUILDENV and the user was not root, makepkg still
tried to use fakeroot for building packages.
BUILDENV is now checked to see if fakeroot is enabled. If it is not enabled the
package can still be built, but root will not have ownership of files. This is
useful when users want to make packages for personal use and don't care about
ownership.

Closes FS#10450.

Signed-off-by: Sebastian Nowicki <sebnow@gmail.com>
Signed-off-by: Xavier Chantry <shiningxc@gmail.com>
Signed-off-by: Dan McGee <dan@archlinux.org>
2008-05-29 06:37:14 -05:00
Xavier Chantry 149839c539 du -b is not available on BSD, use du -k instead.
This fixes FS#10459.

There is apparently no portable ways to get the apparent size of a file,
like du -b does. So the best compromise seems to get the block size in kB,
and then convert that to byte so that we keep compatibility.

Signed-off-by: Xavier Chantry <shiningxc@gmail.com>
Signed-off-by: Dan McGee <dan@archlinux.org>
2008-05-29 06:37:14 -05:00
Sebastian Nowicki 1d71079c5b Replace usage of "cp -s" with the more portable "ln -s"
The "-s" argument does not exist on BSD, and neither does
"--remove-destination". This patch replaces the calls to "cp -s
--remove-destination" with the equivalent "rm -f" and "ln -s" calls, in
order to increase portability.

Signed-off-by: Sebastian Nowicki <sebnow@gmail.com>
Signed-off-by: Xavier Chantry <shiningxc@gmail.com>
Signed-off-by: Dan McGee <dan@archlinux.org>
2008-05-29 06:37:13 -05:00
Dan McGee ae5ef3b90f Remove --builddeps from makepkg
This really should be in an external script, as it is not makepkg's job to
rebuild your system.

Signed-off-by: Dan McGee <dan@archlinux.org>
2008-05-13 16:01:34 -05:00
Dan McGee 502645c0e3 makepkg: Unify start and end messages
I've always found it odd why the package version is shown at the start but
not the end of the package build. Fix it, and while we are at it, add the
$CARCH variable to the display too.

Signed-off-by: Dan McGee <dan@archlinux.org>
2008-05-10 00:48:47 -05:00
Dan McGee 5389cdf654 Merge branch 'maint' 2008-04-29 19:52:06 -05:00
Daenyth Blank 27943a04d6 makepkg: fix strip section to allow spaces in paths
Inside tidy_install, change the section which strips libraries to use find |
while read rather than for foo in `find`. This should allow whitespaces in
filenames to still be processed correctly.

This fixes FS#10294.

Signed-off-by: Daenyth Blank <Daenyth+git@gmail.com>
Signed-off-by: Dan McGee <dan@archlinux.org>
2008-04-27 14:18:43 -05:00
Chantry Xavier dae3f9deef Add zipman makepkg option.
All other steps in tidy_install function were already controlled by an
option in makepkg.conf, so this patch adds an option for the man page
compression step too.
This will allow to keep man pages uncompressed, which is required for some
special meta man page, like the zshall one (see FS#4580).

Ref: http://www.archlinux.org/pipermail/pacman-dev/2008-March/011472.html

Signed-off-by: Chantry Xavier <shiningxc@gmail.com>
2008-03-16 23:22:17 +01:00
Roman Kyrylych f56f7ff391 makepkg: Support for resuming source downloads
Download to *.part and remove the suffix if successful, thus md5sums will be
checked only for complete files, and next time makepkg will resume
downloading of partial file instead of complaining about invalid md5sums.

Old DLAGENTS format is still supported.

Late fix: Do not try to download %u first

The output of grep was not suppressed, thus the output of get_downloadcmd
was wrong because of extra line at the beginning that contained an
unsubstituted (with %o and %u) entry from DLAGENTS.

Signed-off-by: Roman Kyrylych <roman@archlinux.org>
Signed-off-by: Dan McGee <dan@archlinux.org>
2008-03-10 18:45:58 -05:00
Dan McGee d49f42ba75 Remove small remnant of old force=y option
Signed-off-by: Dan McGee <dan@archlinux.org>
2008-02-27 13:14:05 -06:00
Mark Constable 420c8846b9 Fix two missing BUILDSCRIPT variables in makepkg.
Signed-off-by: Chantry Xavier <shiningxc@gmail.com>
2008-02-20 18:50:56 -06:00
Dan McGee 3559306546 scripts: allow usage when gettext is not installed
Address the issue of our scripts not working so great when gettext is not
available. This has come up in multiple bug reports, and is relatively easy
to address by adding a simple check and a stub function if gettext was not
found that simply echos the original message.

Addresses concerns from FS#9214 and FS#9607.

Signed-off-by: Dan McGee <dan@archlinux.org>
2008-02-17 21:25:41 -06:00
Chantry Xavier 17180890a5 makepkg : set sane umask before source extraction.
This fixes FS#9242 and FS#9362.

Set umask before the sources are extracted, and after the /etc/profile.d/*
files are sourced in handledeps.
This sourcing of profile.d files is why umask was moved to the build
function in the first place, as can be seen in commit ac965ed401.

Signed-off-by: Chantry Xavier <shiningxc@gmail.com>
2008-02-11 20:40:43 -06:00
Dan McGee 14ee1be1ef makepkg: do a quick check for the VCS binaries
Fixes FS#9230. Ensure we have the VCS binaries available when doing the
development version number checking.

Signed-off-by: Dan McGee <dan@archlinux.org>
2008-02-07 20:09:59 -06:00
Chantry Xavier 69bc5ea5e2 add 'force' to PKGINFO, have repo-add respect it.
Ref: http://www.archlinux.org/pipermail/pacman-dev/2008-January/011023.html
Also see FS#9347 and FS#9349.

Signed-off-by: Chantry Xavier <shiningxc@gmail.com>
Signed-off-by: Dan McGee <dan@archlinux.org>
2008-02-02 18:55:40 -06:00
Dan McGee c028014f96 makepkg: ensure binaries in /opt/* are stripped
The path selection for stripping binaries was slightly off, so any binaries
in subdirectories of opt/ were missed. Fixes FS#9342.

Signed-off-by: Dan McGee <dan@archlinux.org>
2008-01-27 21:07:44 -06:00
Chantry Xavier f950c26307 makepkg : improve determination of svn revision.
The previous sed command matched every line starting with r.
For example, with mpd-svn package in aur, the svn log output was rather big,
and there were several lines starting with r (the actual revision : r7155,
but also other lines starting with reverting and run), so this broke makepkg:

> makepkg
==> Determining latest svn revision...
  -> Version found: 7155
everting
un
sed: -e expression #1, char 27: unterminated `s' command

To make the sed command more bullet proof, I added the -q option of svn log,
which produces a quieter output, without the log.
And I changed the sed command to only match numbers for the revision.

Signed-off-by: Chantry Xavier <shiningxc@gmail.com>
Signed-off-by: Dan McGee <dan@archlinux.org>
2008-01-27 11:49:24 -06:00
Chantry Xavier 73ee64d49f workaround for a gettext string starting with --.
Workaround found in Advanced Bash-Scripting Guide, localization section.
"added a \0 (NULL) at the beginning of the sentence."

Signed-off-by: Chantry Xavier <shiningxc@gmail.com>
2008-01-20 14:30:26 -06:00
Dan McGee 003adb7646 makepkg: add check to ensure we have non-URL files in build dir
Pacman 3.0 printed the following message if a file could not be found:
  ERROR: xxx was not found in the build directory and is not a proper URL.

We lost this logic in 3.1 when moving to the DLAGENT type stuff, so a
not-found file got passed all the way to the download logic where it failed
with a odd error message. Bring back some logic to ensure only files with
URLs get past a certain point, and fail if the file is not available.

Fixes FS#9208.

Signed-off-by: Dan McGee <dan@archlinux.org>
2008-01-20 12:32:37 -06:00
Dan McGee ffff094126 makepkg: Oops! Lost the colon after forcever in opts parsing
I screwed this up here:
916e226b78

Signed-off-by: Dan McGee <dan@archlinux.org>
2008-01-13 19:16:58 -06:00
Scott Horowitz 916e226b78 makepkg: Introduce --holdver option to prevent bumped pkgrel
This allows us to keep the --forcever option internal to makepkg.

Fixes FS#9194.

Signed-off-by: Dan McGee <dan@archlinux.org>
2008-01-13 18:42:26 -06:00
Dan McGee b1a231427b makepkg: Ensure we include all manpage directories in compression line
Signed-off-by: Dan McGee <dan@archlinux.org>
2008-01-09 18:33:12 -06:00
Karolina Lindqvist 33f6fda8b6 makepkg: add package name to output when installing package
Signed-off-by: Dan McGee <dan@archlinux.org>
2008-01-09 18:33:11 -06:00
Dan McGee dd5bc808ea makepkg: Fix issues with --asroot and building dependencies
The --asroot option was not passed to recursive calls of makepkg.

In addition, a 'cd' call was done only on the fakeroot branch instead of
both fakeroot and root branches. Move it outside the conditional.

Noticed-by: Karolina Lindqvist <karolina.lindqvist@kramnet.se>
Signed-off-by: Dan McGee <dan@archlinux.org>
2008-01-08 09:15:30 -06:00
Dan McGee 14e4366c78 makepkg: add application/zip to the recognized types
The recent upgrade of magic.mime in the file program changed the mime type
output to application/zip instead of application/x-zip as it is a registered
type. Unfortunately we then just skipped zip file extraction becuase of this
change.

Signed-off-by: Dan McGee <dan@archlinux.org>
2008-01-05 16:44:43 -06:00
Dan McGee c26039240d Remove mentions of ABS from makepkg
Kill off some of the $ABSROOT stuff that was still hanging around in there.

Signed-off-by: Dan McGee <dan@archlinux.org>
2008-01-05 14:35:40 -06:00
Dan McGee fbd88a8212 Remove .FILELIST generation from makepkg (and elsewhere)
This is something pacman can do on its own straight from the archive, and we
will reduce the chance of problems occurring becuase of inproper FILELIST
generation as we have had in the past with special characters in filenames.

Once we remove it from makepkg. we can remove any usage of it from all of
our other tools, including pacman, pactest, and contrib/ utilities.

Note that removing it from pacman uncovered a few other bugs anyway, so this
was probably a good move.

Signed-off-by: Dan McGee <dan@archlinux.org>
2007-12-29 11:58:23 -06:00
K. Piche c84feb92db Makepkg missing check for empty pkgname
I thought it was wierd that makepkg didn't do a sanity check for the
$pkgname.  This makes for a simple first try at a GIT patch.

Signed-off-by: K. Piche <kevin@archlinux.org>
Signed-off-by: Dan McGee <dan@archlinux.org>
2007-12-28 19:54:45 -06:00
Dan McGee 9addd88a7d Do not move man pages to a non-FHS location
Fixes Arch Linux bug FS#8839.

Signed-off-by: Dan McGee <dan@archlinux.org>
2007-12-21 15:47:30 -06:00
Dan McGee 20bad3b839 Set the default packager to "Unknown Packager"
There is no real reason to make it look like someone that can't bother to
set the packager variable is official in any way, so remove the Arch Linux
reference from makepkg.

Signed-off-by: Dan McGee <dan@archlinux.org>
2007-12-16 22:00:12 -06:00
Dan McGee 9781d0d637 Update GNU GPL boilerplate and copyright dates
Update the GPL boilerplate to direct people to the GNU website for a copy of
the license, as well as bump all of Judd's copyrights to 2007.

Signed-off-by: Dan McGee <dan@archlinux.org>
2007-12-10 22:55:39 -06:00
Allan McRae 9615d82343 Compress hard linked man pages
This fixes FS#5392.  If hard links are present for a man page, all
other hard linked files are removed, the man page is zipped and the
hard links are updated to the newly compress man page.

Signed-off-by: Allan McRae <mcrae_allan@hotmail.com>
[Dan: use find -samefile option, don't fail if one of mandirs is
nonexistent]
Signed-off-by: Dan McGee <dan@archlinux.org>
2007-12-04 18:55:44 -06:00
Roman Kyrylych 6f5ee2432c makepkg: remove .pacsave files when uninstalling dependencies
Signed-off-by: Roman Kyrylych <roman@archlinux.org>
Signed-off-by: Dan McGee <dan@archlinux.org>
2007-11-11 09:39:39 -06:00
Scott Horowitz dd2d6f980b Correctly handle version comparisons for SVN/CVS/etc PKGBUILDS.
Retrieve SVN/CVS/etc revision number before checking if the
package has already been built. This allows building a newer
version of a developmental package without having to use -f.
Now -f will only be needed if the latest SVN/CVS/etc revision
is the same as the built package.

Signed-off-by: Scott Horowitz <stonecrest@gmail.com>
Signed-off-by: Dan McGee <dan@archlinux.org>
2007-11-08 07:15:37 -06:00
Sebastian Nowicki cb04b3a5f3 Fix mercurial complaining about directory already existing
Signed-off-by: Dan McGee <dan@archlinux.org>
2007-11-05 21:10:35 -06:00
Roman Kyrylych 4a5e7b6bd1 Add support for arch='any'
Signed-off-by: Roman Kyrylych <roman@archlinux.org>
Signed-off-by: Dan McGee <dan@archlinux.org>
2007-11-04 09:50:04 -06:00
Dan McGee 3e3e7a97a6 makepkg: add explicit dir to find calls
Some of the find calls did not have a path, which isn't valid in some
versions of the find utility. Add a . for compatibility.

Signed-off-by: Dan McGee <dan@archlinux.org>
2007-10-28 21:18:39 -05:00
Scott Horowitz 8a9c83dd4b Integrate versionpkg into makepkg
If PKGBUILDs use the correct svn/cvs/etc variables, determine the latest
revision number and force this as the pkgver for building.

Signed-off-by: Scott Horowitz <stonecrest@gmail.com>
Signed-off-by: Dan McGee <dan@archlinux.org>
2007-10-26 22:35:23 -05:00
Dan McGee b609cb0a5d makepkg: readd -p option that was lost in getopt conversion
The -p option was accidentally dropped in commit
54b71f0427. Readd it.

Signed-off-by: Dan McGee <dan@archlinux.org>
2007-10-26 18:36:58 -05:00
Andrew Fyfe 12e1346252 scripts/makepkg.sh.in: Strip bins/libs in all {bin, sbin, lib} directories.
In one of the original clean up patches[1] I changed the search path
for stripping binaries and libraries. This resulted in only
usr/{bin,sbin,lib} being searched. This patch reverts that change.

[1] 721ceee1e2

Signed-off-by: Andrew Fyfe <andrew@neptune-one.net>
2007-10-18 19:28:02 -05:00
Nathan Jones abce73de4c Manually check xdelta exit codes.
This is needed because 'xdelta delta' returns 1 even when the delta
creation succeeds. This was causing makepkg to exit after the command
due to bash's -e option.

Some information from the xdelta man page:
The delta command exits with status 0 to indicate that no differences
were found, with status 1 to indicate that some differences were found,
and with status 2 to indicate an error of some kind.

Signed-off-by: Nathan Jones <nathanj@insightbb.com>
Signed-off-by: Dan McGee <dan@archlinux.org>
2007-10-14 17:54:32 -05:00
Nathan Jones 02ec82b8c6 makepkg: Fix typo to make xdelta creation work.
Signed-off-by: Nathan Jones <nathanj@insightbb.com>
Signed-off-by: Aaron Griffin <aaronmgriffin@gmail.com>
2007-10-04 17:50:29 -05:00
Dan McGee d5fa2da171 makepkg: Fix output color codes for real
Make sure we reset both the bold attribute and the color attributes when it
is necessary.

Signed-off-by: Dan McGee <dan@archlinux.org>
2007-09-28 12:45:14 -05:00
Dan McGee 69d68ef0b5 makepkg: When we add an option, we should probably make it work
The -A,--ignorearch option was added and given help text, but never actually
listed as valid to the option parser. Fix this.

Signed-off-by: Dan McGee <dan@archlinux.org>
2007-09-28 00:36:48 -05:00
Aaron Griffin 48bf088e65 Use ANSI 'foreground' color instead of hardcoding 'white'
Signed-off-by: Aaron Griffin <aaronmgriffin@gmail.com>
2007-09-28 00:25:57 -05:00
Aaron Griffin 47622eef4d Support for localized times in metadata
Packages and DBs now support using the UNIX epoch (seconds since Jan 1, 1970)
for use in builddate and installdate. This will only affect newly built
packages. Old existing packages with the text format are still supported, but
this is deprecated.

In the case of removal of text time support, this code will fail gracefully,
returning the start of the epoch for broken packages.

Signed-off-by: Aaron Griffin <aaronmgriffin@gmail.com>
2007-09-28 00:25:57 -05:00
Dan McGee fc0e83f05b Preliminary support for optdepends
Add some alpm functions for getting optdepends, have makepkg include them
in the PKGINFO file, and have a pacman -Qi operation display the raw string
as stored by libalpm.

Signed-off-by: Dan McGee <dan@archlinux.org>
2007-09-25 23:02:30 -05:00
Andrew Fyfe 678983d262 scripts/*.sh.in: Clean up and fix a few bugs
repo-add, repo-remove:
		'bsdtar -c * | ...' doesn't work (you need '-f -'). Code clean up
		eliminated this bug.

		Removed the multiple checksum support, pacman now only supports MD5, so
		there's no need for the database to contain multiple checksums.

		Quote all variables containing file/dir names to prevent paths
		containing spaces from causing problems.

		Add msg, warning and error functions.

		General code clean up.

	pacman-optimize:
		Use a sub-directory in /tmp for working files to make it easier to clean
		up at the end.

		Add quotes round $@ in die and die_r, otherwise printf can't display the
		message correctly.

	makepkg:
		Disable colour output if stderr is not a tty.

Signed-off-by: Andrew Fyfe <andrew@neptune-one.net>
2007-09-06 19:28:57 -05:00