|
1 | 1 | #!/bin/sh -e |
2 | 2 | # script for building the pyhp debian package |
3 | 3 | # it is recommended to run this script as root or to set the owner and group of the files to root |
4 | | -# you need to build the pyhp-core wheel first |
5 | 4 |
|
6 | | -if [ "$1" = "" ] |
7 | | -then read -p "Version: " version |
8 | | -else version=$1 |
9 | | -fi |
10 | | - |
11 | | -if [ "$2" = "" ] |
12 | | -then read -p "pyhp-core Wheel: " wheel |
13 | | -else wheel=$2 |
14 | | -fi |
15 | | - |
16 | | -if [ "$3" = "" ] |
17 | | -then read -p "pip executeable: " pip |
18 | | -else pip=$3 |
19 | | -fi |
20 | | - |
21 | | -package="pyhp_${version}_all" |
| 5 | +version=$(python3 setup.py --version) |
| 6 | +maintainer=$(python3 setup.py --maintainer) |
| 7 | +email=$(python3 setup.py --maintainer-email) |
| 8 | +homepage=$(python3 setup.py --url) |
| 9 | +description=$(python3 setup.py --description) |
| 10 | +licence=$(python3 setup.py --licence) |
22 | 11 |
|
| 12 | +package="python3-pyhp-core_${version}-1_all" |
23 | 13 | mkdir "$package" |
24 | 14 |
|
25 | 15 | # place pyhp-core files |
26 | | -mkdir -p "${package}/usr/lib/python3/dist-packages" |
27 | | -$pip install --target "${package}/usr/lib/python3/dist-packages" --ignore-installed --no-compile "$wheel" |
| 16 | +python3 setup.py install --install-layout=deb --no-compile --single-version-externally-managed --root="$package" |
28 | 17 |
|
29 | | -# place config file and "executable" |
30 | | -mkdir "${package}/etc" |
31 | | -cp ../pyhp.toml "${package}/etc" |
| 18 | +# strip python version from .egg-info directory |
| 19 | +mv $package/usr/lib/python3/dist-packages/pyhp_core-${version}-*.egg-info "$package/usr/lib/python3/dist-packages/pyhp_core-${version}.egg-info" |
32 | 20 |
|
33 | | -mkdir -p "${package}/usr/bin" |
34 | | -mv "${package}/usr/lib/python3/dist-packages/bin/pyhp" "${package}/usr/bin" |
35 | | -rmdir "${package}/usr/lib/python3/dist-packages/bin" |
36 | | -chmod +x "${package}/usr/bin/pyhp" |
| 21 | +# place config file |
| 22 | +mkdir "${package}/etc" |
| 23 | +cp pyhp.toml "${package}/etc" |
37 | 24 |
|
38 | 25 | # place metadata files |
39 | 26 | mkdir "$package/DEBIAN" |
40 | | -# calculate installed size |
41 | | -cat control | python3 format.py "${version}" $(du -sk --apparent-size --exclude "DEBIAN" "${package}" 2>/dev/null | cut -f1) > "${package}/DEBIAN/control" |
42 | | -cp conffiles "$package/DEBIAN" |
43 | | - |
44 | | -mkdir -p "${package}/usr/share/doc/pyhp" |
45 | | -cp copyright "${package}/usr/share/doc/pyhp" |
46 | | -cp changelog "${package}/usr/share/doc/pyhp/changelog.Debian" |
47 | | -gzip -n --best "${package}/usr/share/doc/pyhp/changelog.Debian" |
48 | 27 |
|
49 | | -# generate md5sums file |
50 | | -chdir "$package" |
51 | | -md5sum $(find . -type d -name "DEBIAN" -prune -o -type f -print) > DEBIAN/md5sums # ignore metadata files |
52 | | -sha256sum $(find . -type d -name "DEBIAN" -prune -o -type f -print) > DEBIAN/sha256sums |
53 | | -chdir ../ |
| 28 | +# place control |
| 29 | +cat debian/control | python3 debian/format.py \ |
| 30 | + "$version" \ |
| 31 | + "$maintainer" "$email" \ |
| 32 | + $(du -sk --apparent-size --exclude "DEBIAN" "${package}" 2>/dev/null | cut -f1) \ |
| 33 | + "$homepage" \ |
| 34 | + "$description" \ |
| 35 | + > "${package}/DEBIAN/control" |
| 36 | + |
| 37 | +# place conffiles |
| 38 | +cp debian/conffiles "$package/DEBIAN" |
| 39 | + |
| 40 | +# place copyright and changelog |
| 41 | +mkdir -p "${package}/usr/share/doc/python3-pyhp-core" |
| 42 | +cat debian/copyright | python3 debian/format.py \ |
| 43 | + "$maintainer" "$email" \ |
| 44 | + "$homepage" \ |
| 45 | + "$licence" \ |
| 46 | + > "${package}/usr/share/doc/python3-pyhp-core/copyright" |
| 47 | +cp debian/changelog "${package}/usr/share/doc/python3-pyhp-core/changelog.Debian" |
| 48 | +gzip -n --best "${package}/usr/share/doc/python3-pyhp-core/changelog.Debian" |
| 49 | + |
| 50 | +# generate md5sums and sha256sums file |
| 51 | +cd "$package" |
| 52 | +md5sum $(find . -type d -name "DEBIAN" -prune -o -type f -print) > "DEBIAN/md5sums" # ignore metadata files |
| 53 | +sha256sum $(find . -type d -name "DEBIAN" -prune -o -type f -print) > "DEBIAN/sha256sums" |
| 54 | +cd .. |
54 | 55 |
|
55 | 56 | # if root set file permissions, else warn |
56 | 57 | if [ $(id -u) = 0 ] |
57 | 58 | then chown root:root -R "$package" |
58 | | -else echo "not running as root, permissions in package may be wrong" |
| 59 | +else echo "Warning: not running as root, permissions in package may be wrong" |
59 | 60 | fi |
60 | 61 |
|
61 | 62 | # build debian package |
|
0 commit comments