/
create-deb-pkg
82 lines (77 loc) · 2.86 KB
/
create-deb-pkg
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
#!/bin/bash
# make a debian package from an archlinux package
set -eo pipefail
archpackage=$(ls *.pkg.tar.*)
packagename=${archpackage%%[[:digit:]]*}
packageversion=${archpackage%_*}
packageversion=${packageversion#*$packagename}
packageversion=${packageversion%%-*}
packageversion=${packageversion#:*}
packagename=${packagename%-*}
packagerelease=${archpackage%-*}
packagerelease=${packagerelease##*-}
#create foreign architecture packages
if [ "$1" == "multiarch" ]; then
packagearchitecture=(arm64 armhf armel)
debpkgdir="${packagename}-${packageversion}-${packagerelease}"
else
packagearchitecture=$(dpkg --print-architecture)
debpkgdir="${packagename}-${packageversion}-${packagerelease}-${packagearchitecture}"
fi
if [ -d "$debpkgdir" ]; then
rm -rf "$debpkgdir"
fi
mkdir -p $debpkgdir
bsdtar -xpf $archpackage -C $debpkgdir
set +e
packagedependancies=$(cat "$debpkgdir/.PKGINFO" | grep -v makedepend | grep depend | tr '\n' ',')
packagedependancies=${packagedependancies//depend =/}
####################################################################
#CHANGE DEPENDANCY NAMES TO DEBIAN FORMAT MANUALLY AS NEEDED HERE#
####################################################################
packagedependancies=${packagedependancies/go,/golang,}
#END DEPENDANCY NAME CONVERSION SECTION#
packagedependancies=${packagedependancies%,*}
if [[ "$packagename" == *"skyupdate"* ]]; then
packagedependancies="$packagedependancies, bsdtar"
fi
packagedependancies=${packagedependancies#* }
mkdir -p $debpkgdir/DEBIAN
echo "Package: $packagename" > $debpkgdir/DEBIAN/control
echo "Version: $packageversion-$packagerelease" >> $debpkgdir/DEBIAN/control
echo "Priority: optional" >> $debpkgdir/DEBIAN/control
echo "Section: web" >> $debpkgdir/DEBIAN/control
echo "Architecture: $packagearchitecture" >> $debpkgdir/DEBIAN/control
if [ ! -z "$packagedependancies" ]; then
echo "Depends: $packagedependancies" >> $debpkgdir/DEBIAN/control
fi
echo "Maintainer: Moses Narrow" >> $debpkgdir/DEBIAN/control
echo "Description: lorem ipsum dolor sit amet!" >> $debpkgdir/DEBIAN/control
set -e
###########################################
#RULES FOR PACKAGE PATH CONVERSION GO HERE#
###########################################
#Not a comprehensive list ; TBI
#System.d service files for debian are located in /etc/systemd not /usr/lib/systemd
#move system.d service files to where debian expects to find them
if [ -d $debpkgdir/usr/lib/systemd ]; then
#check for the existance of etc in the pkg dir
if [ ! -d $debpkgdir/etc ]; then
mkdir -p $debpkgdir/etc
fi
mv $debpkgdir/usr/lib/systemd $debpkgdir/etc
fi
#END PATH CONVERSION RULES
#need to remove these metadata files
if [ -f $debpkgdir/.BUILDINFO ]; then
rm $debpkgdir/.BUILDINFO
fi
if [ -f $debpkgdir/.MTREE ]; then
rm $debpkgdir/.MTREE
fi
if [ -f $debpkgdir/.PKGINFO ]; then
rm $debpkgdir/.PKGINFO
fi
#build the debian package
dpkg-deb --build $debpkgdir
rm -rf $debpkgdir