-
Notifications
You must be signed in to change notification settings - Fork 13
Expand file tree
/
Copy pathMakefile
More file actions
113 lines (94 loc) · 3.37 KB
/
Makefile
File metadata and controls
113 lines (94 loc) · 3.37 KB
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
dir=$(shell pwd)
environment:
# pip install joblib
# pip install requests
-mkdir $(dir)/dist
-mkdir $(dir)/tmp
dns_poison: environment
cd dns_poisoning ; python update_blacklist.py -f blacklist.txt
cd dns_poisoning ; sh generate.sh >$(dir)/tmp/blacklist.txt
ip_block: environment
cd ipblock ; python update_rules.py >$(dir)/tmp/ipblock.sh
keywords: environment
cd keywords ; export PYTHONIOENCODING="UTF-8"; python generate_rules.py >$(dir)/tmp/keywords.sh
collect: dns_poison ip_block preventbypass keywords updater
cp -r $(dir)/misc/* $(dir)/dist
-mkdir -p $(dir)/dist/etc/dnsmasq.d/
cp $(dir)/tmp/blacklist.txt $(dir)/dist/etc/dnsmasq.d/domains.conf
-mkdir -p $(dir)/dist/usr/bin/
cp $(dir)/tmp/ipblock.sh $(dir)/dist/usr/bin/ipblock.sh
cp $(dir)/tmp/keywords.sh $(dir)/dist/usr/bin/keywords.sh
cp $(dir)/preventbypass/enable-block.sh $(dir)/dist/usr/bin/preventbypass.sh
chmod +x $(dir)/dist/usr/bin/*
chmod +x $(dir)/dist/etc/init.d/*
preventbypass: environment
clean:
-rm -r $(dir)/dist $(dir)/tmp
update: collect
tar zcvf update.tgz -C dist `ls dist`
-mkdir releases
mv update.tgz releases/
md5sum releases/update.tgz | awk '{print $1;}' > ./tmp/md5sum
cat releases/digest | tail --lines=+2 >> ./tmp/md5sum
mv ./tmp/md5sum releases/digest
updater: environment
cp updater/updater.sh $(dir)/dist/usr/bin/gfw.updater.sh
ipk:
cp -r ipk tmp/
cp -r dist/* tmp/ipk/
tmp/ipk/make_ipk.sh $(dir)/releases/gfw.ipk ./tmp/ipk
ipk-snort:
cp -r ipk-snort tmp/
cp -r misc-snort/* tmp/ipk-snort
cp keywords/local.gfw.rules ./tmp/ipk-snort/etc/snort/rules/
tmp/ipk-snort/make_ipk.sh $(dir)/releases/gfw-snort.ipk ./tmp/ipk-snort
deb:
-mkdir dist_pc
chmod 755 dist_pc
# Make a copy
tar cf dist_pc.tar dist_pc
-rm -rf dist_pc/usr dist_pc/etc
cp -r dist/* dist_pc
# Add copyright file
cp LICENSE dist_pc/DEBIAN/copyright
# Fix init.d script: overwrite
mv dist_pc/DEBIAN/etc.init.d.gfw dist_pc/etc/init.d/gfw
# Put changelog/copyright file
gzip --best dist_pc/DEBIAN/changelog dist_pc/DEBIAN/changelog.Debian
-mkdir -p dist_pc/usr/share/doc/gfwsim/
mv dist_pc/DEBIAN/copyright dist_pc/usr/share/doc/gfwsim/
mv dist_pc/DEBIAN/*.gz dist_pc/usr/share/doc/gfwsim/
# Fix up rules
sed -i -e "s|/etc/init.d/firewall restart|iptables -F|g" dist_pc/etc/init.d/gfw
sed -i -e "s|FORWARD|OUTPUT|g" dist_pc/usr/bin/*.sh
sed -i -e "s|PREROUTING|OUTPUT|g" dist_pc/usr/bin/dns.sh
sed -i -e "s|127.0.0.1|180.76.76.76|g" dist_pc/usr/bin/dns.sh
# Generate MD5sum & Configure file list
find dist_pc/etc -type f | sed -e 's|dist_pc/|/|g' >dist_pc/DEBIAN/conffiles
md5sum `find dist_pc/etc dist_pc/usr -type f ` | sed -e 's|dist_pc/||g' >dist_pc/DEBIAN/md5sums
# Fix permission
chown -R root:root dist_pc/*
# Actual build DEB
dpkg-deb --build dist_pc
chmod 777 dist_pc.deb
mv dist_pc.deb ./releases/
# Fix permissions for building RPM
chmod 555 ./dist_pc/usr/bin ./dist_pc/
chmod 755 ./dist_pc/etc/init.d
-mkdir -p ./dist_pc/etc/rc.d/
mv ./dist_pc/etc/init.d ./dist_pc/etc/rc.d/init.d
sed -i -e 's|etc/init.d/|etc/rc.d/init.d/|g' dist_pc/DEBIAN/*
dpkg-deb --build dist_pc
chmod 666 dist_pc.deb
alien -r --scripts dist_pc.deb
rm dist_pc.deb
mv gfwsim*.rpm ./releases/
rpmbuild -bb rpm_spec
mv /tmp/noarch/gfwsim-meta-1.0.0-0.noarch.rpm releases/
chmod 666 releases/gfwsim*.rpm
# Clean up
-rm -rf dist_pc
# Decompress from backup tarball
tar xf dist_pc.tar
all: collect
make -B ipk