4 * what jhdebuild does..
7 * ?? tarball from debian?
8 * sudo apt-get --yes build-dep libxml2
9 * apt-get source libxml2
10 * -- need to determine what version
13 * cp -R /home/alan/checkout/gnome2/deb-src/libxml2-2.7.6.dfsg/debian libxml2-2.7.7/
14 * debchange --preserve -v 2.7.7.2010-08-28-0 --distribution UNRELEASED jhdebuild snapshot
15 * dpkg-buildpackage -rfakeroot -us -uc -D
21 * lookfor libxml ...whitespace.... version .... whitespace..
23 * apt-get source libxml2=version
24 * VERSION==> 2.7.6.dfsg-1ubuntu1
25 * DIRECTORY => libxml2-2.7.6.dfsg (split on '-')
32 $HOME = $_SERVER["HOME"];
33 if (!file_exists($HOME.'/.debgnome')) {
34 mkdir( $HOME.'/.debgnome' );
36 if (!file_exists($HOME.'/.debgnome-work')) {
37 mkdir( $HOME.'/.debgnome-work' );
39 $cdir = $HOME.'/.debgnome';
40 $cfg = (array) json_decode(file_get_contents("$cdir/build.cfg.js"));
41 $state = (array) json_decode(file_get_contents("$cdir/state.cfg.js"));
43 foreach($state as $pkg => $data) {
44 $state[$pkg] = (array) $data;
47 function dpkg_s($data) {
49 $dpkg = empty($data['deb.name']) ? $data['pkg'] : $data['deb.name'];
51 $out = trim(`dpkg -l $dpkg`);
52 $last = preg_split('/\s+/',array_pop(explode("\n", $out)));
53 $state[$pkg]['deb.avail'] = $last[2];
54 $state[$pkg]['deb.ver'] = array_shift(explode('-',$last[2]));
57 function apt_get_source($data)
60 $dpkg = empty($data['deb.name']) ? $data['pkg'] : $data['deb.name'];
62 if ($state[$pkg]['deb.cached'] == $state[$pkg]['deb.ver']) {
67 echo `sudo apt-get --yes build-dep $dpkg`;
68 $cmd = 'apt-get source ' . $dpkg . '=' . $state[$pkg]['deb.avail'];
71 $cmd = 'cp -a /tmp/'. $dpkg . '-'. $state[$pkg]['deb.ver'].'/debian '. $HOME.'/.debgnome/'.$pkg;
74 $state[$pkg]['deb.cached'] = $state[$pkg]['deb.ver'];
79 'libxml2' => array('repo' => 'git://git.gnome.org/libxml2')
82 foreach($cfg as $pkg => $data)
84 // checkout or pull...
85 $data = (array) $data;
88 $src = $HOME .'/.debgnome-work/'. $pkg;
89 if (file_exists($src)) {
91 echo `git pull --rebase`;
94 $repo = $data['repo'];
95 echo `git clone $repo $src`;
100 apt_get_source($data);
102 $cmd = 'rm -rf ' . $src . '/debian';
104 $cmd = 'cp -a '.$HOME.'/.debgnome/'.$pkg . ' ' . $src . '/debian';
109 echo `./autogen.sh --prefix=/usr`;
110 echo `touch COPYING`;
112 $cmd = 'debchange --preserve -v ' . $state[$pkg]['deb.ver']. '-' .
113 date('YmdH') .' --distribution UNRELEASED jhdebuild snapshot';
115 echo `dpkg-buildpackage -rfakeroot -us -uc -D`;
119 file_put_contents("$cdir/state.cfg.js",json_encode($state));