Work on debian package

This commit is contained in:
Laurent Destailleur 2011-08-01 18:22:25 +00:00
parent 63b13e01a3
commit 028f374f2c
5 changed files with 169 additions and 142 deletions

View File

@ -22,12 +22,13 @@ with format .DEB (for Debian, Ubuntu, ...).
# lintian --pedantic -E -I package.deb To test a package
#
# dpkg -l List all packages
# dpkg -b To build package
# dpkg -b To build binary only package
# dpkg -c package.deb List content of package
# dpkg -I package.deb Give informations on package
# dpkg -i package.deb Install a package
#
# dpkg-reconfigure -plow package Reconfigure package
# dpkg -L packagename List content of installed package
# dpkg -r packagename Remove config files and interactive saved answers
# dpkg --purge Remove config files and interactive saved answers
#
# dpkg-buildpackage -us -uc Build a source and binary package

View File

@ -13,29 +13,25 @@ db_version 2.0
echo Run the dolibarr config script
# Rotate old configuration
#if [ "$1" = "reconfigure" ] ; then
# config="/etc/dolibarr/apache.conf"
# if [ -f $config ] ; then
# for i in $(seq 8 -1 0) ; do
# if [ -f ${config}.$i ] ; then
# mv ${config}.$i ${config}.$(($i +1))
# fi
# done
# mv ${config} ${config}.0
# fi
#fi
if [ "$1" = "reconfigure" ] ; then
config="/etc/dolibarr/apache.conf"
for i in $(seq 8 -1 0) ; do
if [ -f ${config}.$i ] ; then
mv ${config}.$i ${config}.$(($i +1))
fi
done
mv ${config} ${config}.0
fi
# Rotate old configuration
#if [ "$1" = "reconfigure" ] ; then
# config="/etc/dolibarr/lighttpd.conf"
# if [ -f $config ] ; then
# for i in $(seq 8 -1 0) ; do
# if [ -f ${config}.$i ] ; then
# mv ${config}.$i ${config}.$(($i +1))
# fi
# done
# mv ${config} ${config}.0
# fi
#fi
if [ "$1" = "reconfigure" ] ; then
config="/etc/dolibarr/lighttpd.conf"
for i in $(seq 8 -1 0) ; do
if [ -f ${config}.$i ] ; then
mv ${config}.$i ${config}.$(($i +1))
fi
done
mv ${config} ${config}.0
fi
db_capb backup
@ -43,9 +39,8 @@ db_capb backup
db_title "dolibarr" || true
# Ask if we must delete database
echo "Ask for web server to setup"
db_input critical dolibarr/reconfigure-webserver || true
# Ask for web server type.
#db_input critical "dolibarr/webserver" || true
if db_go ; then
okcancel="1"

View File

@ -1,7 +1,5 @@
#!/bin/sh
# postinst script for dolibarr
#
# see: dh_installdeb(1)
set -e
@ -16,6 +14,31 @@ set -e
# for details, see /usr/share/doc/packaging-manual/
lighttpd_install() {
if [ ! -f /etc/lighttpd/conf-available/50-dolibarr.conf ] ; then
if which lighty-enable-mod >/dev/null 2>&1 ; then
echo "Add link for Lighttpd config file"
ln -s /etc/dolibarr/lighttpd.conf /etc/lighttpd/conf-available/50-dolibarr.conf
# We enabled it
lighty-enable-mod dolibarr fastcgi-php
else
echo "Lighttpd not installed, skipping"
fi
fi
}
apache_install() {
webserver=$1
if [ -d /etc/$webserver/conf.d ] && [ ! -e /etc/$webserver/conf.d/dolibarr.conf ]; then
echo "Add link for Apache config file"
ln -s /etc/dolibarr/apache.conf /etc/$webserver/conf.d/dolibarr.conf
fi
}
. /usr/share/debconf/confmodule
db_version 2.0
@ -27,8 +50,6 @@ echo Run the dolibarr postinst script
# Define vars
docdir='/var/lib/dolibarr/documents'
#docdir='/usr/share/dolibarr/documents'
apachefileorig="/usr/share/dolibarr/build/deb/apache.conf"
apacheconfig="/etc/dolibarr/apache.conf"
installfileorig="/usr/share/dolibarr/build/deb/install.forced.php.install"
installconfig="/etc/dolibarr/install.forced.php"
#config="/usr/share/dolibarr/htdocs/conf/conf.php"
@ -44,10 +65,6 @@ case "$1" in
chmod -R 775 $docdir
chmod -R g+s $docdir
# Copy apache.conf file into target directory
#mkdir -p /etc/dolibarr
#cp -p $apachefileorig $apacheconfig
# Copy install config file (with matching Debian) values into target directory
superuserlogin=''
superuserpassword=''
@ -74,21 +91,23 @@ case "$1" in
chmod -R 660 $config
fi
# Get the web server type (use db_get for interactive mode).
#db_reset "dolibarr/webserver"
#db_get "dolibarr/webserver" # Read value for webserver.
#webserver="$RET"
case $webserver in
Apache) webservers="apache2" ;;
Apache-SSL) webservers="apache2-ssl" ;;
Both) webservers="apache2 apache2-ssl" ;;
*) webservers="apache2 apache2-ssl" ;;
esac
# Reconfigure web server
db_reset dolibarr/reconfigure-webserver
# Ask if we must delete database
echo "Ask for web server to setup"
db_input critical dolibarr/reconfigure-webserver || true
db_go || true
db_get dolibarr/reconfigure-webserver
webservers="$RET"
# Set up web server.
for server in $webservers ; do
echo Complete config of server $server
for webserver in $webservers ; do
webserver=${webserver%,}
echo Complete config of server $webserver
# Detect webuser and webgroup
webuser=
@ -106,26 +125,31 @@ case "$1" in
# Set permissions to web server
chown -R $webuser:$webgroup /usr/share/dolibarr
chown -R root:$webgroup $config
# Add link to config file
echo Setup web server $server to add dolibarr config file
ln -fs /etc/dolibarr/apache.conf /etc/apache2/conf.d/dolibarr.conf
done
# Restart servers
servers="apache2-ssl apache2 mysql"
# Another way to restart
for server in $servers ; do
if [ -x /usr/sbin/invoke-rc.d ]; then
echo Restart web server $server using invoke-rc.d
# This works with Debian (5.05,...) and Ubuntu (9.10,10.04,...)
invoke-rc.d $server reload || true
else
echo Restart web server $server using $server reload
/etc/init.d/$server reload || true
fi
# Restart web server.
for webserver in $webservers; do
webserver=${webserver%,}
if [ "$webserver" = "lighttpd" ] ; then
lighttpd_install
else
apache_install $webserver
fi
# Reload webserver in any case, configuration might have changed
# Redirection of 3 is needed because Debconf uses it and it might
# be inherited by webserver. See bug #446324.
if [ -f /etc/init.d/$webserver ] ; then
if [ -x /usr/sbin/invoke-rc.d ]; then
echo Restart web server $server using invoke-rc.d
# This works with Debian (5.05,...) and Ubuntu (9.10,10.04,...)
invoke-rc.d $webserver reload 3>/dev/null || true
else
echo Restart web server $server using $server reload
/etc/init.d/$webserver reload 3>/dev/null || true
fi
fi
done
echo ----------
echo "Call Dolibarr page http://localhost/dolibarr/ to complete the installation and use Dolibarr."
@ -136,13 +160,13 @@ case "$1" in
;;
*)
echo "postinst called with unknown argument \`$1'" >&2
echo "postinst called with unknown argument $1" >&2
exit 0
;;
esac
db_stop
#DEBHELPER#
db_stop
exit 0

View File

@ -17,7 +17,36 @@ set -e
# for details, see /usr/share/doc/packaging-manual/
. /usr/share/debconf/confmodule
lighttpd_remove() {
if [ -f /etc/lighttpd/conf-available/50-dolibarr.conf ] ; then
echo "Remove link for Lighttpd config file"
rm -f /etc/lighttpd/conf-available/50-dolibarr.conf
if which lighty-enable-mod >/dev/null 2>&1 ; then
lighty-disable-mod dolibarr
else
echo "Lighttpd not installed, skipping"
fi
# See bug #448682
if [ -h /etc/lighttpd/conf-enabled/50-dolibarr.conf ] ; then
echo 'Manually deleting lighttpd/dolibarr configuration link'
rm /etc/lighttpd/conf-enabled/50-dolibarr.conf
fi
fi
}
apache_remove() {
if [ -d /etc/$webserver/conf.d ] && [ -L /etc/$webserver/conf.d/dolibarr.conf ]; then
echo "Remove link for Apache config file"
rm -f /etc/$webserver/conf.d/dolibarr.conf
fi
}
if [ -f /usr/share/debconf/confmodule ]; then
. /usr/share/debconf/confmodule
fi
db_version 2.0
@ -26,22 +55,11 @@ echo Run the dolibarr postrm script
docdir='/var/lib/dolibarr/documents'
#docdir='/usr/share/dolibarr/documents'
apachefileorig="/usr/share/dolibarr/build/deb/apache.conf"
apacheconfig="/etc/dolibarr/apache.conf"
#config="/usr/share/dolibarr/htdocs/conf/conf.php"
config="/etc/dolibarr/conf.php"
lockfile="/usr/share/dolibarr/install.lock"
export webserver=""
# Allows us to loop and substitute in one pass
case $webserver in
Apache) webservers="apache2" ;;
Apache-SSL) webservers="apache2-ssl" ;;
Both) webservers="apache2 apache2-ssl" ;;
*) webservers="apache2 apache2-ssl" ;;
esac
case "$1" in
@ -53,36 +71,44 @@ case "$1" in
remove)
rm -f $lockfile
# Remove include files
export restart=""
for server in $webservers ; do
export conffile="/etc/$server/conf.d/dolibarr.conf"
if [ -f $conffile ] ;
then
echo Delete link $conffile
rm -f $conffile
status=purge
fi
if [ "x$status" = "xpurge" ] ;
then restart="$restart $server"
# Reconfigure web server
db_get dolibarr/reconfigure-webserver
webservers="$RET"
# Restart web servers
for webserver in $webservers; do
webserver=${webserver%,}
if [ "$webserver" = "lighttpd" ] ; then
lighttpd_remove
else
apache_remove $webserver
fi
# Redirection of 3 is needed because Debconf uses it and it might
# be inherited by webserver. See bug #446324.
if [ -f /etc/init.d/$webserver ] ; then
if [ -x /usr/sbin/invoke-rc.d ]; then
invoke-rc.d $webserver reload 3>/dev/null || true
else
/etc/init.d/$webserver reload 3>/dev/null || true
fi
fi
done
;;
# Call when we uninstall and purge
purge)
echo "postrm purge webservers=$webservers apacheconfig=$apacheconfig"
echo "postrm purge webservers=$webservers"
# Ask if we must delete database
echo "postrm db_input dolibarr/postrm"
db_input critical "dolibarr/postrm" || true
db_input critical dolibarr/postrm || true
db_go || true
echo "postrm db_get dolibarr/postrm"
# We disable set -e to avoid premature end of script if error
set +e
db_get "dolibarr/postrm"
db_get dolibarr/postrm
set -e
if [ "$RET" = "true" ] ; then
@ -185,41 +211,12 @@ case "$1" in
echo "postrm Delete of dolibarr database and uploaded files not wanted"
fi
# Remove include files
export restart=""
for server in $webservers ; do
export conffile="/etc/$server/conf.d/dolibarr.conf"
if [ -f $conffile ] ;
then
echo Delete file $conffile
rm -f $conffile
status=purge
fi
if [ "x$status" = "xpurge" ] ;
then restart="$restart $server"
fi
done
rm -rf /etc/dolibarr
# Restart servers
for server in $restart ; do
# We disable blocking errors
set +e
echo "Restart server $server if exists"
if [ -x /usr/sbin/invoke-rc.d ]; then
invoke-rc.d $server reload || true
else
/etc/init.d/$server reload || true
fi
# We restore blocking errors
set -e
done
# We clean variable (we ignore errors because db_reset can fails if var was never set)
set +e
db_reset "dolibarr/postrm"
db_reset dolibarr/reconfigure-webserver
db_reset dolibarr/postrm
set -e
#db_purge
@ -229,7 +226,7 @@ case "$1" in
;;
*)
echo "postrm called with unknown argument \`$1'" >&2
echo "postrm called with unknown argument $1" >&2
exit 0
;;
esac

View File

@ -2,7 +2,7 @@
#----------------------------------------------------------------------------
# \file build/makepack-dolibarr.pl
# \brief Dolibarr package builder (tgz, zip, rpm, deb, exe, aps)
# \version $Id: makepack-dolibarr.pl,v 1.128 2011/07/31 22:08:13 eldy Exp $
# \version $Id: makepack-dolibarr.pl,v 1.129 2011/08/01 18:22:26 eldy Exp $
# \author (c)2004-2011 Laurent Destailleur <eldy@users.sourceforge.net>
#----------------------------------------------------------------------------
@ -48,7 +48,7 @@ if (-d "/usr/src/RPM") {
use vars qw/ $REVISION $VERSION /;
$REVISION='$Revision: 1.128 $'; $REVISION =~ /\s(.*)\s/; $REVISION=$1;
$REVISION='$Revision: 1.129 $'; $REVISION =~ /\s(.*)\s/; $REVISION=$1;
$VERSION="1.0 (build $REVISION)";
@ -318,6 +318,9 @@ if ($nboftargetok) {
$ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/includes/tcpdf/fonts/utils`;
#$ret=`rm -f $BUILDROOT/$PROJECT/htdocs/includes/tcpdf/fonts/utils/pfm2afm`;
#$ret=`rm -f $BUILDROOT/$PROJECT/htdocs/includes/tcpdf/fonts/utils/ttf2ufm`;
$ret=`rm -f $BUILDROOT/$PROJECT/htdocs/includes/jquery/plugins/flot/jquery.js`;
$ret=`rm -f $BUILDROOT/$PROJECT/htdocs/includes/jquery/plugins/flot/jquery.min.js`;
$ret=`rm -f $BUILDROOT/$PROJECT/htdocs/includes/jquery/plugins/jcrop/js/jquery.min.js`;
}
# Build package for each target
@ -569,6 +572,8 @@ if ($nboftargetok) {
if ($target eq 'DEB')
{
$olddir=getcwd();
$newbuild = $BUILD;
$newbuild =~ s/(dev|alpha)/1/gi; # dev
$newbuild =~ s/beta/2/gi; # beta
@ -671,19 +676,22 @@ if ($nboftargetok) {
$ret=`rm -fr $BUILDROOT/$PROJECT.tmp/usr/share/$PROJECT/htdocs/includes/odtphp/zip/.svn`;
$ret=`rm -fr $BUILDROOT/$PROJECT.tmp/usr/share/$PROJECT/htdocs/includes/odtphp/zip/pclzip/.svn`;
$ret=`rm -fr $BUILDROOT/$PROJECT.tmp/usr/share/$PROJECT/htdocs/includes/smarty`;
$ret=`rm -f $BUILDROOT/$PROJECT.tmp/usr/share/$PROJECT/htdocs/includes/fckeditor/license.txt`;
$ret=`rm -f $BUILDROOT/$PROJECT.tmp/usr/share/$PROJECT/htdocs/includes/jquery/plugins/flot/LICENSE.txt`;
$ret=`rm -f $BUILDROOT/$PROJECT.tmp/usr/share/$PROJECT/htdocs/includes/php_writeexcel/LICENSE`;
$ret=`rm -f $BUILDROOT/$PROJECT.tmp/usr/share/$PROJECT/htdocs/includes/tcpdf/LICENSE.TXT`;
$ret=`rm -f $BUILDROOT/$PROJECT.tmp/usr/share/$PROJECT/COPYING`;
$ret=`rm -f $BUILDROOT/$PROJECT.tmp/usr/share/$PROJECT/htdocs/includes/barcode/php-barcode/genbarcode/genbarcode`;
# To remove once stable
$ret=`rm -fr $BUILDROOT/$PROJECT.tmp/usr/share/$PROJECT/htdocs/htdocs/theme/bureau2crea`;
# Apache conf files
# Apache and lighttpd conf files
print "Copy apache.conf file into $BUILDROOT/$PROJECT.tmp/etc/$PROJECT/apache.conf\n";
$ret=`mkdir -p "$BUILDROOT/$PROJECT.tmp/etc/$PROJECT"`;
$ret=`cp "$SOURCE/build/deb/apache.conf" "$BUILDROOT/$PROJECT.tmp/etc/$PROJECT/apache.conf"`;
# Dolibarr conf files
# TODO
print "Copy lighttpd.conf file into $BUILDROOT/$PROJECT.tmp/etc/$PROJECT/lighttpd.conf\n";
$ret=`mkdir -p "$BUILDROOT/$PROJECT.tmp/etc/$PROJECT"`;
$ret=`cp "$SOURCE/build/deb/lighttpd.conf" "$BUILDROOT/$PROJECT.tmp/etc/$PROJECT/lighttpd.conf"`;
# dolibarr.desktop
print "Create directory $BUILDROOT/$PROJECT.tmp/usr/share/applications\n";
@ -729,17 +737,15 @@ if ($nboftargetok) {
$cmd="find $BUILDROOT/$PROJECT.tmp/usr/share/$PROJECT/htdocs/includes/fckeditor/editor/dialog/fck_spellerpages/spellerpages/server-scripts -name '*.pl' -type f -exec chmod 755 {} \\; ";
$ret=`$cmd`;
print "Go to directory $BUILDROOT\n";
$olddir=getcwd();
chdir("$BUILDROOT");
# Creation of binary package (to build without sources)
# Creation of binary package (to build without sources)
#print "Go to directory $BUILDROOT\n";
#chdir("$BUILDROOT");
#$cmd="dpkg -b $BUILDROOT/$PROJECT.tmp $BUILDROOT/${FILENAMEDEB}_all.deb";
#print "Launch DEB build ($cmd)\n";
#$ret=`$cmd`;
#print $ret."\n";
# Creation of source package
# Prepare source package
print "Create directory $BUILDROOT/$PROJECT.tmp/debian\n";
$ret=`mkdir "$BUILDROOT/$PROJECT.tmp/debian"`;
$ret=`mkdir "$BUILDROOT/$PROJECT.tmp/debian/source"`;
@ -751,6 +757,7 @@ if ($nboftargetok) {
$ret=`cp -f "$SOURCE/build/deb/README.debian" "$BUILDROOT/$PROJECT.tmp/usr/share/doc/dolibarr/README"`;
$ret=`cp -f "$SOURCE/build/deb/changelog" "$BUILDROOT/$PROJECT.tmp/debian/changelog"`;
$ret=`cp -f "$SOURCE/build/deb/control.debian" "$BUILDROOT/$PROJECT.tmp/debian/control"`;
$ret=`cp -f "$SOURCE/build/deb/dolibarr.lintian-overrides" "$BUILDROOT/$PROJECT.tmp/debian/dolibarr.lintian-overrides"`;
$ret=`cp -f "$SOURCE/build/deb/install" "$BUILDROOT/$PROJECT.tmp/debian/install"`;
$ret=`cp -f "$SOURCE/build/deb/rules" "$BUILDROOT/$PROJECT.tmp/debian/rules"`;
$ret=`cp -f "$SOURCE/build/deb/copyright" "$BUILDROOT/$PROJECT.tmp/debian/copyright"`;
@ -766,6 +773,9 @@ if ($nboftargetok) {
$cmd="mv $BUILDROOT/$PROJECT.tmp $BUILDROOT/$PROJECT-$MAJOR.$MINOR.$build";
$ret=`$cmd`;
# Creation of source package
print "Go to directory $BUILDROOT\n";
chdir("$BUILDROOT/$PROJECT-$MAJOR.$MINOR.$build");
#$cmd="dpkg-source -b $BUILDROOT/$PROJECT-$MAJOR.$MINOR.$build";
$cmd="dpkg-buildpackage -us -uc";