From 1a2a45661a5a98d29077d7afb133b212713a98dc Mon Sep 17 00:00:00 2001 From: William Pitcock Date: Wed, 15 Jun 2011 04:42:35 -0500 Subject: initial commit --- COPYING | 16 +++++ class/autotools.sh | 48 ++++++++++++++ class/makeinstall.sh | 31 +++++++++ plugin/atheme-buildsys.sh | 27 ++++++++ rules/base.sh | 166 ++++++++++++++++++++++++++++++++++++++++++++++ 5 files changed, 288 insertions(+) create mode 100644 COPYING create mode 100644 class/autotools.sh create mode 100644 class/makeinstall.sh create mode 100644 plugin/atheme-buildsys.sh create mode 100644 rules/base.sh diff --git a/COPYING b/COPYING new file mode 100644 index 0000000..542a879 --- /dev/null +++ b/COPYING @@ -0,0 +1,16 @@ +Copyright (c) 2011 William Pitcock . + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted, provided that the above +copyright notice and this permission notice appear in all copies. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR +ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/class/autotools.sh b/class/autotools.sh new file mode 100644 index 0000000..955687a --- /dev/null +++ b/class/autotools.sh @@ -0,0 +1,48 @@ +#!/bin/sh +# +# Copyright (c) 2011 William Pitcock . +# +# Permission to use, copy, modify, and/or distribute this software for any +# purpose with or without fee is hereby granted, provided that the above +# copyright notice and this permission notice appear in all copies. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR +# ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +# ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# + +_ac_enable_opts="" +_ac_with_opts="" + +ac_enable_opt() { + _ac_enable_opts="${_ac_enable_opts} --enable-${1}" +} + +ac_with_opt() { + if [ "x$2" != "x" ]; then + _ac_with_opts="${_ac_with_opts} --with-${1}=${2}" + else + _ac_with_opts="${_ac_with_opts} --with-${1}" + fi +} + +ac_configure() { + msg "Configuring with following options: ${_ac_enable_opts} ${_ac_with_opts}" + + ./configure --prefix=/usr \ + --sysconfdir=/etc \ + --localstatedir=/var \ + --mandir=/usr/share/man \ + --infodir=/usr/share/info \ + ${_ac_enable_opts} \ + ${_ac_with_opts} || return 1 +} + +abh_prebuild_push "ac_configure" diff --git a/class/makeinstall.sh b/class/makeinstall.sh new file mode 100644 index 0000000..2438cde --- /dev/null +++ b/class/makeinstall.sh @@ -0,0 +1,31 @@ +#!/bin/sh +# +# Copyright (c) 2011 William Pitcock . +# +# Permission to use, copy, modify, and/or distribute this software for any +# purpose with or without fee is hereby granted, provided that the above +# copyright notice and this permission notice appear in all copies. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR +# ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +# ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# + +makebuild() { + make || return 1 +} + +abh_postbuild_push "makebuild" + +makeinstall() { + make DESTDIR="$pkgdir" install || return 1 +} + +abh_postpackage_push "makeinstall" diff --git a/plugin/atheme-buildsys.sh b/plugin/atheme-buildsys.sh new file mode 100644 index 0000000..aa81bdb --- /dev/null +++ b/plugin/atheme-buildsys.sh @@ -0,0 +1,27 @@ +#!/bin/sh +# +# Copyright (c) 2011 William Pitcock . +# +# Permission to use, copy, modify, and/or distribute this software for any +# purpose with or without fee is hereby granted, provided that the above +# copyright notice and this permission notice appear in all copies. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR +# ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +# ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# + +fixconfigure() { + # workaround bug in busybox + sed -e "/touch/s/0001010000/200001010000/g" \ + -i configure +} + +abh_postprepare_push "fixconfigure" diff --git a/rules/base.sh b/rules/base.sh new file mode 100644 index 0000000..f2699af --- /dev/null +++ b/rules/base.sh @@ -0,0 +1,166 @@ +#!/bin/sh +# +# Copyright (c) 2011 William Pitcock . +# +# Permission to use, copy, modify, and/or distribute this software for any +# purpose with or without fee is hereby granted, provided that the above +# copyright notice and this permission notice appear in all copies. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR +# ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +# ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# + +_abh_builddir="${srcdir}/${pkgname}-${pkgver}" + +_abh_prepare_preactions="" +_abh_prepare_postactions="" + +abh_preprepare_push() { + _abh_prepare_preactions="${_abh_prepare_preactions} $1" +} + +abh_postprepare_push() { + _abh_prepare_postactions="${_abh_prepare_postactions} $1" +} + +prepare() { + cd "${_abh_builddir}" + + for i in ${_abh_prepare_preactions}; do + msg "--> $i (prepare)" + $i || return 1 + msg "<-- $i (prepare)" + done + + for i in ${_abh_prepare_postactions}; do + msg "--> $i (prepare)" + $i || return 1 + msg "<-- $i (prepare)" + done +} + +_abh_build_preactions="" +_abh_build_postactions="" + +abh_prebuild_push() { + _abh_build_preactions="${_abh_build_preactions} $1" +} + +abh_postbuild_push() { + _abh_build_postactions="${_abh_build_postactions} $1" +} + +build() { + cd "${_abh_builddir}" + + for i in ${_abh_build_preactions}; do + msg "--> $i (build)" + $i || return 1 + msg "<-- $i (build)" + done + + for i in ${_abh_build_postactions}; do + msg "--> $i (build)" + $i || return 1 + msg "<-- $i (build)" + done +} + +_abh_package_preactions="" +_abh_package_postactions="" + +abh_prepackage_push() { + _abh_package_preactions="${_abh_package_preactions} $1" +} + +abh_postpackage_push() { + _abh_package_postactions="${_abh_package_postactions} $1" +} + +package() { + cd "${_abh_builddir}" + + for i in ${_abh_package_preactions}; do + msg "--> $i (package)" + $i || return 1 + msg "<-- $i (package)" + done + + for i in ${_abh_package_postactions}; do + msg "--> $i (package)" + $i || return 1 + msg "<-- $i (package)" + done +} + +_abh_dev_preactions="" +_abh_dev_postactions="" + +abh_predev_push() { + _abh_dev_preactions="${_abh_dev_preactions} $1" +} + +abh_postdev_push() { + _abh_dev_postactions="${_abh_dev_postactions} $1" +} + +dev() { + abh_predev_push default_dev + + for i in ${_abh_dev_preactions}; do + msg "--> $i (dev)" + $i || return 1 + msg "<-- $i (dev)" + done + + for i in ${_abh_dev_postactions}; do + msg "--> $i (dev)" + $i || return 1 + msg "<-- $i (dev)" + done +} + +_abh_doc_preactions="" +_abh_doc_postactions="" + +abh_predoc_push() { + _abh_doc_preactions="${_abh_doc_preactions} $1" +} + +abh_postdoc_push() { + _abh_doc_postactions="${_abh_doc_postactions} $1" +} + +doc() { + abh_predoc_push default_doc + + for i in ${_abh_doc_preactions}; do + msg "--> $i (doc)" + $i || return 1 + msg "<-- $i (doc)" + done + + for i in ${_abh_doc_postactions}; do + msg "--> $i (doc)" + $i || return 1 + msg "<-- $i (doc)" + done +} + +# FUNCTION: using +# import an abuildhelper class +using() { + if [ "$1" != "plugin" ]; then + source /usr/share/abuildhelper/class/${1}.sh + else + source /usr/share/abuildhelper/plugin/${2}.sh + fi +} -- cgit v1.2.3