File: fetch-and-build

package info (click to toggle)
ia32-libs 1.4
  • links: PTS
  • area: main
  • in suites: sarge
  • size: 210,392 kB
  • ctags: 7
  • sloc: sh: 168; makefile: 123
file content (142 lines) | stat: -rw-r--r-- 2,448 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
#!/bin/sh

set -ex

# To just download from the sources listed in sources.list.deb and use
# the binary packages, use BUILD=0 ./fetch-and-build .  Else, it will
# build all the sources.

BUILD=${BUILD:-1}

DEBS="gdk-imlib1
gtk2-engines-pixbuf
libacl1
libattr1
libbz2-1.0
libc6
libc6-dev
libdps1
libfreetype6
libglib1.2
libgtk1.2
libgtk1.2-common
libice6
libjpeg62
liblcms1
libncurses5
libsm6
libstdc++2.10-glibc2.2
libstdc++2.9-glibc2.1
libstdc++3
libstdc++5
libtiff3g
libwmf0.2-7
libx11-6
libxaw7
libxext6
libxft1
libxi6
libxml2
libxmu6
libxmuu1
libxp6
libxpm4
libxrandr2
libxt6
libxtrap6
libxtst6
xaw3dg
xlibmesa-gl
xlibmesa-glu
xlibs-data
zlib1g
lesstif2
libxrender1
libexpat1
libfontconfig1
libgcc1
coreutils
"

export APTDIR=$(mktemp -d)
mkdir -p $APTDIR

rm -rf pkgs
mkdir pkgs

rm -rf srcs
mkdir srcs

rm -rf build
mkdir build

LIST=sources.list.deb

APT_GET="apt-get --assume-yes \
	-o Dir::Etc::sourcelist=`pwd`/$LIST \
	-o Dir::State=$APTDIR/state \
	-o Debug::NoLocking=true \
	-o Dir::Cache=$APTDIR/cache \
	-o Acquire::Retries=3 \
	-o Apt::Architecture=i386"

# Prepare APTDIR
mkdir -p $APTDIR/state/lists/partial
mkdir -p $APTDIR/cache/archives/partial
echo -n > $APTDIR/state/status
APT_GET="$APT_GET --allow-unauthenticated -o Dir::State::Status=$APTDIR/state/status"

$APT_GET update

APT_CACHE="apt-cache \
	-o Dir::Etc::sourcelist=`pwd`/$LIST \
	-o Dir::State=$APTDIR/state \
	-o Debug::NoLocking=true \
	-o Dir::Cache=$APTDIR/cache \
	-o Acquire::Retries=3 \
	-o Apt::Architecture=i386 \
	-o Dir::State::Status=$APTDIR/state/status"

SRCS=""
for i in $DEBS; do
    if [ -e local/pkgs/${i}_*.deb ]; then
        continue
    fi
    src=`$APT_CACHE showsrc $i | grep '^Package: ' | head -n 1 | awk '{print $2}'`
    case " $SRCS " in
        *" $src "*) ;;
        *) SRCS="$SRCS $src" ;;
    esac
done

cd srcs
$APT_GET -d source $SRCS
cd ..

if [ "$BUILD" = 1 ]; then
    cd build
    for pkg in $SRCS; do
    echo $pkg
      dpkg-source -sn -x ../srcs/${pkg}_*.dsc
      cd $pkg-*
      dpkg-buildpackage -rfakeroot -uc -us -B
      cd ..
      #rm -rf $pk
    done
    cd ..
else
    for pkg in $DEBS; do
        if [ -e local/pkgs/${pkg}_*.deb ]; then
            cp local/pkgs/${pkg}_*.deb build/
        else
            $APT_GET --download-only install $pkg
            cp $APTDIR/cache/archives/$pkg_*.deb build/
        fi
    done
fi

for pkg in $DEBS; do
  mv build/${pkg}_*.deb pkgs/
done
rm -rf $APTDIR build
exit 0