change 00list to series
[freedombox-privoxy:freedombox-privoxy.git] / make_deb.sh
1 #!/bin/bash
2
3 # Get version of deb we want to make
4 version=`cat VERSION`
5
6 patchcount=90
7 prepend() {
8     echo -e "$1"|cat - $2 > /tmp/out && mv /tmp/out $2
9 }
10 dir_setup() {
11     ## Copy privoxy dir, set dir aliases and apply upstream dpatch patches
12     PRIVDIR=`ls -d privoxy*| xargs | sed "s/ .*//"`
13     FBOXDIR=freedombox-privoxy-${version}
14     echo PRIVDIR = ${PRIVDIR}
15     echo FBOXDIR = ${FBOXDIR}
16
17     if [ -z ${PRIVDIR} ]; then
18         pwd
19         echo PRIVDIR is blank!  Do you have a valid deb-src line in /etc/apt/sources?
20         exit
21     fi
22
23     if [ -z ${FBOXDIR} ]; then
24         pwd
25         echo FBOXDIR is blank!
26         exit
27     fi
28
29     rm -rf ${FBOXDIR}
30     cp -r ${PRIVDIR} ${FBOXDIR}
31     ORIG=`ls -d privoxy*| xargs | sed -e"s/ .*//" -e "s/-/_/"`.orig.tar.gz
32     FBOXORIG=freedombox-privoxy_`head -n 1 ${PRIVDIR}/debian/changelog | sed -e"s/.*(\([^)]*\)).*/\1/"`.orig.tar.gz
33     cp ${ORIG} ${FBOXORIG}
34     cd ${FBOXDIR}
35     dpatch apply-all
36     cd ../..
37     DEBDIR=`find Debian -maxdepth 1 -name "freedombox*" -type d`
38     #`ls -d Debian/freedombox-privoxy*| xargs | sed "s/ .*//"`
39     echo DEBDIR = ${DEBDIR}
40 }
41
42 add_patch() {
43     echo Adding patch $1
44     mkdir -p privoxy
45     sed -i -e's/${patchcount}_$1.dpatch//' ${DEBDIR}/debian/patches/series
46     DEST=${DEBDIR}/debian/patches/${patchcount}_$1.dpatch
47     diff -urNad ${DEBDIR}/$1 privoxy/$1 > ${DEST}
48     prepend "#! /bin/sh /usr/share/dpatch/dpatch-run\n## ${patchcount}_$1.dpatch by James Vasile <james@jamesvasile.com>" ${DEST}
49     echo ${patchcount}_$1.dpatch >> ${DEBDIR}/debian/patches/series
50     patchcount=`expr ${patchcount} + 1` 
51 }
52
53 update_control() {
54     echo Updating control
55     ## update control file
56     cp privoxy/debian/control ${DEBDIR}/debian/control
57 }
58
59 update_changelog() {
60     echo Updating changelog
61     cp changelog changelog.debian
62     cat ${DEBDIR}/debian/changelog >> changelog.debian
63     mv changelog.debian ${DEBDIR}/debian/changelog
64 }
65
66 update_rules() {
67     echo Updating rules
68     ## Update rules file
69     pushd ${DEBDIR}/debian
70     sed -i -e"s/^\(DEBDIR.*\)privoxy/\1freedombox-privoxy/" rules 
71     sed -i -e"s/\(cd.*DEBDIR.*\)privoxy/\1freedombox-privoxy/" rules
72     sed -i -e"s/dh_installinit/dh_installinit --name=privoxy/" rules
73     mv init.d freedombox-privoxy.privoxy.init
74     sed -i '/install -m.*trust/i \\tinstall -m 0644 https_everywhere.action $(DEBDIR)/etc/privoxy/https_everywhere.action' rules
75     sed -i '/install -m.*trust/i \\tinstall -m 0644 easyprivacy.action $(DEBDIR)/etc/privoxy/easyprivacy.action' rules
76     sed -i '/install -m.*trust/i \\tinstall -m 0644 easylist.action $(DEBDIR)/etc/privoxy/easylist.action' rules
77     popd
78     #sed -i -e"s/\(cd.*DEBDIR.*\)privoxy/\1; ln -s freedombox-privoxy privoxy)\n\t(\1freedombox-privoxy/" rules
79 }
80
81 update_doc_base() {
82     echo Updating doc_base
83     ## update dirs in doc-base
84     pushd ${DEBDIR}/debian
85     sed -i -e"s/\/privoxy/\/freedombox-privoxy/" doc-base.*
86     popd
87 }
88
89 ## Make working dir
90 mkdir -p Debian
91 cd Debian
92
93 ## Install source package
94 apt-get source privoxy
95 echo You might need to \"apt-get build-dep privoxy\" as root
96 dir_setup
97 add_patch config
98 add_patch match-all.action
99 add_patch default.action
100 add_patch default.filter
101 add_patch easyprivacy.action
102 add_patch easylist.action
103 add_patch https_everywhere.action
104 add_patch filters.c
105
106 update_changelog
107 update_control
108 update_rules
109 update_doc_base
110
111 cd Debian/${FBOXDIR}; 
112 dpatch apply-all