Major infrastructure changes, part 2.

* Moved helpers, common and triggers dirs into xbps-src, where
  they belong.
* Renamed the templates dir to srcpkgs, it was so redundant before.
* Make it possible to add subpkgs with no restriction in names, for
  example udev now has a subpkgs called "libgudev". Previously
  subpkgs were named "${sourcepkg}-${pkgname}".
* xbps-src: changed to look for template files in current directory.
  That means that most arguments from the targets have been removed.
* xbps-src: added a reinstall target, to remove + install.
* xbps-src: do not overwrite binpkgs by default, skip them.

And more that I forgot because it's a mega-commit that I've been
working for some days already...

--HG--
extra : convert_revision : 0f466878584d1e6895d2a234f07ea1b2d1e61b3e
This commit is contained in:
Juan RP 2009-11-22 08:31:44 +01:00
parent 3c58e3ad40
commit 85cc462e1d
1305 changed files with 719 additions and 654 deletions

16
xbps-src/helpers/Makefile Normal file
View file

@ -0,0 +1,16 @@
include ../vars.mk
.PHONY: all
all:
.PHONY: clean
clean:
.PHONY: install
install:
install -d $(DESTDIR)$(SHAREDIR)/helpers
install -m 644 *.sh $(DESTDIR)$(SHAREDIR)/helpers
.PHONY: uninstall
uninstall:
-rm -rf $(DESTDIR)$(SHAREDIR)/helpers

View file

@ -0,0 +1,44 @@
#
# This helper does the required steps to be able to build and install
# perl modules into the correct location.
#
# Required vars to be set by a template:
#
# build_style=perl_module
#
# Optionally if the module needs more directories to be configured other
# than $XBPS_BUILDDIR/$wrksrc, one can use (relative to $wrksrc):
#
# perl_configure_dirs="blob/bob foo/blah"
#
perl_module_build()
{
local perlmkf=
if [ -z "$perl_configure_dirs" ]; then
perlmkf="$wrksrc/Makefile.PL"
if [ ! -f $perlmkf ]; then
echo "*** ERROR couldn't find $perlmkf, aborting"
exit 1
fi
cd $wrksrc && perl Makefile.PL ${make_build_args}
if [ "$?" -ne 0 ]; then
echo "*** ERROR building perl module for $pkgname ***"
exit 1
fi
fi
for i in "$perl_configure_dirs"; do
perlmkf="$wrksrc/$i/Makefile.PL"
if [ -f $perlmkf ]; then
cd $wrksrc/$i && perl Makefile.PL ${make_build_args}
[ "$?" -ne 0 ] && exit 1
else
echo -n "*** ERROR: couldn't find $perlmkf"
echo ", aborting ***"
exit 1
fi
done
}

View file

@ -0,0 +1,14 @@
#
# This helper is for templates installing python modules.
#
do_install()
{
if [ -z "$make_install_args" ]; then
make_install_args="--prefix=usr --root=$DESTDIR"
fi
cd ${wrksrc} || return 1
sed -i 's|man/man1|share/man/man1|g' setup.py || return 1
python setup.py install ${make_install_args} || return 1
}

View file

@ -0,0 +1,46 @@
#
# This helper replaces shebang paths pointing to the correct ones
# as used by xbps. Multiple languages are supported:
#
# - GNU Bash
# - Perl
# - Python
#
bash_regexp=".*sh"
perl_regexp=".*perl[^[:space:]]*"
python_regexp=".*python[^[:space:]]*"
replace_interpreter()
{
local lang="$1"
local file="$2"
local trsb=
local orsb=
[ -z $lang -o -z $file ] && return 1
case $lang in
bash)
orsb=$bash_regexp
trpath="/bin/bash"
;;
perl)
orsb=$perl_regexp
trpath="/usr/bin/perl"
;;
python)
orsb=$python_regexp
trpath="/usr/bin/python"
;;
*)
;;
esac
if [ -f $file ]; then
sed -i -e "1s|^#![[:space:]]*${orsb}|#!${trpath}|" $file && \
msg_normal "Transformed $lang script: ${file##$wrksrc}."
else
msg_warn "Ignoring unexistent $lang script: ${file##$wrksrc}."
fi
}