Add experimental cairo printing patch (monolith)
[minipack.git] / tools / mpk-unpack
blob19e65003ec96036b449562d50b9af18e5243894f
1 # mpk-unpack - unpacks source code.
2 # Copyright (C) 2008 Cesar Strauss
4 # This file is part of Minipack - an automated build tool.
6 # Minipack is free software: you can redistribute it and/or modify
7 # it under the terms of the GNU General Public License as published by
8 # the Free Software Foundation, either version 3 of the License, or
9 # (at your option) any later version.
11 # Minipack is distributed in the hope that it will be useful,
12 # but WITHOUT ANY WARRANTY; without even the implied warranty of
13 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14 # GNU General Public License for more details.
16 # You should have received a copy of the GNU General Public License
17 # along with Minipack. If not, see <http://www.gnu.org/licenses/>.
19 unpack_source()
21   : ${source_package_type:=tar.gz}
22   : ${source:=$name-$version.$source_package_type}
23   : ${top_srcdir:=$name-$version}
25   buildroot=$builddir/$name-$version-$release
26   
27   if [ -d $buildroot/$top_srcdir ]; then
28     exit 0
29   fi
30   
31   sourcename=$sourcedir/$source
32   if [ ! -e $sourcename ]; then
33     $mpk source $pkg
34     if [ ! -e $sourcename ]; then
35       echo >&2 "$(basename $0) unpack: Could not find source for $pkg"
36       exit 1
37     fi
38   fi
40   mkdir -p $buildroot
41   cd $buildroot
42   
43   echo "Unpacking $pkg..."
45   case $source_package_type in
46     tar.*)
47       tar -xf $sourcename ;;
48     zip)
49       unzip $sourcename ;;
50   esac
52   if [ $? != 0 ]; then
53     echo >&2 "$(basename $0) unpack: Failed to unpack $sourcename"
54     exit 1
55   fi
56   
57   cd ${top_srcdir}
58   
59   pkg_patchdir=$patchdir/$name
60   
61   if [ -d $pkg_patchdir ]; then
62     patches=`find $pkg_patchdir -name '*.patch' | sort`
63     for p in $patches; do
64       patch -p1 -i "$p"
65       if [ $? != 0 ]; then
66         echo >&2 "$(basename $0) unpack: Failed apply patches for $sourcename"
67         exit 1
68       fi
69     done
70   fi
72   src_prep
74   if [ $? != 0 ]; then
75     echo >&2 "$(basename $0) unpack: Failed to prepare build directory for $sourcename"
76     exit 1
77   fi
78   
81 src_prep()
83   do_prep
86 do_prep()
88   :
91 pkg=$1
93 if [ -z "$pkg" ]; then
94   echo "Usage: $(basename $0) unpack package-name ..."
95   exit 1
98 recipe=$(get_recipe_name $pkg) || exit 1
100 . $recipe
102 unpack_source