paheko-fork/build/debian/makedeb.sh
2024-01-19 16:39:49 +01:00

174 lines
4.6 KiB
Bash
Executable file

#!/bin/bash
# Ripped from fossil makdedeb.sh
DEB_REV=${1-1} # .deb package build/revision number.
PACKAGE_DEBNAME=paheko
THISDIR=${PWD}
DEB_ARCH_NAME=all
PACKAGE_VERSION=`cat ../../src/VERSION`
[ ! -f ../paheko-${PACKAGE_VERSION}.tar.gz ] && (cd ../../src; make release)
tar xzvf ../paheko-${PACKAGE_VERSION}.tar.gz -C /tmp
SRCDIR="/tmp/paheko-${PACKAGE_VERSION}"
test -e ${SRCDIR} || {
echo "This script must be run from a BUILT copy of the source tree."
exit 1
}
DEBROOT=$PWD/deb.tmp
test -d ${DEBROOT} && rm -fr ${DEBROOT}
DEBLOCALPREFIX=${DEBROOT}/usr
BINDIR=${DEBLOCALPREFIX}/bin
mkdir -p ${BINDIR}
mkdir -p ${DEBLOCALPREFIX}/share/doc/${PACKAGE_DEBNAME}
cp ${THISDIR}/paheko ${BINDIR}
mkdir -p "${DEBLOCALPREFIX}/share/menu"
cp ${THISDIR}/paheko.menu "${DEBLOCALPREFIX}/share/menu/paheko"
mkdir -p "${DEBLOCALPREFIX}/share/applications"
cp ${THISDIR}/paheko.desktop "${DEBLOCALPREFIX}/share/applications/"
CODEDIR=${DEBLOCALPREFIX}/share/${PACKAGE_DEBNAME}
mkdir -p ${CODEDIR}
cp -r ${SRCDIR}/* ${CODEDIR}
cp ${THISDIR}/config.debian.php ${CODEDIR}/config.local.php
mv ${CODEDIR}/data/plugins ${CODEDIR}/plugins
rm -rf ${CODEDIR}/*.sqlite ${CODEDIR}/data
cp ${THISDIR}/paheko.png "${CODEDIR}"
mkdir -p "${DEBROOT}/var/lib/${PACKAGE_DEBNAME}"
mkdir -p "${DEBROOT}/var/cache/${PACKAGE_DEBNAME}"
mkdir -p "${DEBROOT}/etc/${PACKAGE_DEBNAME}"
# Cleaning files that will be copied to /usr/share/doc
#rm -f ${CODEDIR}/../{README.md,COPYING}
cd $DEBROOT || {
echo "Debian dest dir [$DEBROOT] not found. :("
exit 2
}
rm -fr DEBIAN
mkdir DEBIAN
PACKAGE_DEB_VERSION=${PACKAGE_VERSION}
DEBFILE=${THISDIR}/${PACKAGE_DEBNAME}-${PACKAGE_DEB_VERSION}.deb
PACKAGE_TIME=$(/bin/date)
rm -f ${DEBFILE}
echo "Creating .deb package [${DEBFILE}]..."
echo "Generating md5 sums..."
find ${DEBLOCALPREFIX} -type f -exec md5sum {} \; > DEBIAN/md5sums
true && {
echo "Generating Debian-specific files..."
cp ${THISDIR}/../../COPYING ${DEBLOCALPREFIX}/share/doc/${PACKAGE_DEBNAME}/copyright
} || {
echo "Fail."
exit 1
}
true && {
cat <<EOF > DEBIAN/postinst
#!/bin/sh
chown www-data:www-data /var/lib/paheko /var/cache/paheko
chown root:www-data /etc/paheko
chmod g=rX,o= /etc/paheko
chmod ug=rwX,o= /var/lib/paheko /var/cache/paheko
EOF
chmod +x DEBIAN/postinst
}
true && {
CHANGELOG=${DEBLOCALPREFIX}/share/doc/${PACKAGE_DEBNAME}/changelog.gz
cat <<EOF | gzip -c > ${CHANGELOG}
${PACKAGE_DEBNAME} ${PACKAGE_DEB_VERSION}; urgency=low
This release has no changes over the core source distribution. It has
simply been Debianized.
Packaged by ${USER} <http://dev.kd2.org/paheko/> on
${PACKAGE_TIME}.
EOF
}
# doc.
DOCDIR=${DEBLOCALPREFIX}/share/doc/${PACKAGE_DEBNAME}
true && {
echo "Generating doc..."
cp ${THISDIR}/../../README.md ${DOCDIR}
a2x --doctype manpage --format manpage ${THISDIR}/manpage.txt
mkdir -p ${DEBLOCALPREFIX}/share/man/man1
gzip -c ${THISDIR}/paheko.1 > ${DEBLOCALPREFIX}/share/man/man1/${PACKAGE_DEBNAME}.1.gz
rm -f ${THISDIR}/paheko.1
} || {
echo "Fail."
exit 1
}
true && {
CONTROL=DEBIAN/control
echo "Generating ${CONTROL}..."
cat <<EOF > ${CONTROL}
Package: ${PACKAGE_DEBNAME}
Section: web
Priority: optional
Maintainer: Paheko <paheko@paheko.eu>
Architecture: ${DEB_ARCH_NAME}
Depends: dash | bash, php-cli (>=7.4), php-sqlite3, php-intl, php-mbstring, sensible-utils
Version: ${PACKAGE_DEB_VERSION}
Suggests: php-imagick
Replaces: garradin (<< 1.2.3~)
Breaks: garradin (<< 1.2.3~)
Homepage: https://fossil.kd2.org/paheko/
Description: Paheko is a tool to manage non-profit organizations.
It's only available in french.
Description-fr: Gestionnaire d'association en interface web ou CLI.
Paheko est un gestionnaire d'association à but non lucratif.
Il permet de gérer les membres, leur adhésion et leurs contributions financières.
Les membres peuvent se connecter eux-même et modifier leurs informations
ou communiquer entre eux par e-mail. Une gestion précise des droits et
autorisations est possible. Il est également possible de faire des
envois de mails en groupe.
.
Un module de comptabilité à double entrée assure une gestion financière
complète digne d'un vrai logiciel de comptabilité : suivi des opérations,
graphiques, bilan annuel, compte de résultat, exercices, etc.
.
Il y a également la possibilité de publier un site web simple,
et un gestionnaire de documents permettant de gérer les fichiers de
l'association.
EOF
}
true && {
fakeroot dpkg-deb -b ${DEBROOT} ${DEBFILE}
echo "Package file created:"
ls -la ${DEBFILE}
dpkg-deb --info ${DEBFILE}
}
cd - >/dev/null
true && {
echo "Cleaning up..."
rm -fr ${DEBROOT}
rm -rf ${SRCDIR}
}
echo "Done :)"