Work on debian package

This commit is contained in:
Laurent Destailleur 2011-07-27 16:45:46 +00:00
parent d18beeb3b2
commit d2f285d5d4
10 changed files with 179 additions and 164 deletions

View File

@ -7,9 +7,16 @@ This directory contains files used by makepack-dolibarr.pl
script to build a package, ready to be distributed, script to build a package, ready to be distributed,
with format .DEB (for Debian, Ubuntu, ...). with format .DEB (for Debian, Ubuntu, ...).
# To build a debian package, you need first
# apt-get -i debhelper
# apt-get -i dpkg-source
# apt-get -i gpg
# This is standard command to work on Debian packaging: # This is standard command to work on Debian packaging:
# #
# gpg --gen-key Generate a GPG key
#
# lintian --pedantic -E -I package.deb To test a package # lintian --pedantic -E -I package.deb To test a package
# #
# dpkg -l List all packages # dpkg -l List all packages
@ -20,6 +27,8 @@ with format .DEB (for Debian, Ubuntu, ...).
# #
# dpkg -L packagename List content of installed package # dpkg -L packagename List content of installed package
# dpkg --purge 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
To submit a package to Debian: To submit a package to Debian:

View File

@ -3,10 +3,9 @@ Version: __VERSION__
Architecture: all Architecture: all
Maintainer: Laurent Destailleur <eldy@users.sourceforge.net> Maintainer: Laurent Destailleur <eldy@users.sourceforge.net>
Installed-Size: 61200 Installed-Size: 61200
Depends: debconf, xdg-utils, apache2, libapache2-mod-php5, php5, php5-cli, php5-cgi, php5-curl, php5-gd, php5-ldap, php5-mysql, php-pear, php-mail-mime, mysql-server, perl Depends: xdg-utils, apache2, libapache2-mod-php5, php5, php5-cli, php5-cgi, php5-curl, php5-gd, php5-ldap, php5-mysql, php-pear, php-mail-mime, mysql-server, perl
Section: web Section: web
Priority: optional Priority: optional
Recommends: firefox
Homepage: http://www.dolibarr.org Homepage: http://www.dolibarr.org
Description: Easy to use web based ERP & CRM software Description: Easy to use web based ERP & CRM software
Dolibarr ERP & CRM is an easy to use open source/free software for small Dolibarr ERP & CRM is an easy to use open source/free software for small
@ -20,28 +19,28 @@ Description: Easy to use web based ERP & CRM software
Only features you need are visible, depending on which module were activated. Only features you need are visible, depending on which module were activated.
Most common used modules are: Most common used modules are:
. .
Customers, Suppliers or Prospects directory Customers, Suppliers or Prospects directory,
Contacts directory Contacts directory,
Orders management Orders management,
Commercial proposals management Commercial proposals management,
Invoices management Invoices management,
Products and services catalog Products and services catalog,
Stock management Stock management,
Foundations members management Foundations members management,
Bank accounts management Bank accounts management,
Point of Sale Point of Sale,
Payments management Payments management,
Commercial actions management Commercial actions management,
Contracts management Contracts management,
Standing orders management Standing orders management,
Shipping management Shipping management,
Donations management Donations management,
Bookmarks management Bookmarks management,
Mass Emailings Mass Emailings,
Reports Reports,
Data export and import tools Wizards to export and import data,
LDAP connectivity LDAP connectivity,
PDF exports PDF exports,
And a lot of more modules... And a lot of more modules...
. .
You can also add third parties external modules or develop yours. You can also add third parties external modules or develop yours.

View File

@ -4,14 +4,13 @@ Standards-Version: 3.9.1
Section: web Section: web
Priority: optional Priority: optional
Homepage: http://www.dolibarr.org Homepage: http://www.dolibarr.org
Build-Depends: debhelper Build-Depends: debhelper, po-debconf
Package: dolibarr Package: dolibarr
Depends: ${misc:Depends}, debconf, xdg-utils, apache2, libapache2-mod-php5, php5, php5-cli, php5-cgi, php5-curl, php5-gd, php5-ldap, php5-mysql, php-pear, php-mail-mime, mysql-server, perl Depends: ${misc:Depends}, xdg-utils, apache2, libapache2-mod-php5, php5, php5-cli, php5-cgi, php5-curl, php5-gd, php5-ldap, php5-mysql, php-pear, php-mail-mime, mysql-server, perl
Architecture: all Architecture: all
Section: web Section: web
Priority: optional Priority: optional
Recommends: firefox
Homepage: http://www.dolibarr.org Homepage: http://www.dolibarr.org
Description: Easy to use web based ERP & CRM software Description: Easy to use web based ERP & CRM software
Dolibarr ERP & CRM is an easy to use open source/free software for small Dolibarr ERP & CRM is an easy to use open source/free software for small
@ -25,28 +24,28 @@ Description: Easy to use web based ERP & CRM software
Only features you need are visible, depending on which module were activated. Only features you need are visible, depending on which module were activated.
Most common used modules are: Most common used modules are:
. .
Customers, Suppliers or Prospects directory Customers, Suppliers or Prospects directory,
Contacts directory Contacts directory,
Orders management Orders management,
Commercial proposals management Commercial proposals management,
Invoices management Invoices management,
Products and services catalog Products and services catalog,
Stock management Stock management,
Foundations members management Foundations members management,
Bank accounts management Bank accounts management,
Point of Sale Point of Sale,
Payments management Payments management,
Commercial actions management Commercial actions management,
Contracts management Contracts management,
Standing orders management Standing orders management,
Shipping management Shipping management,
Donations management Donations management,
Bookmarks management Bookmarks management,
Mass Emailings Mass Emailings,
Reports Reports,
Data export and import tools Wizards to export and import data,
LDAP connectivity LDAP connectivity,
PDF exports PDF exports,
And a lot of more modules... And a lot of more modules...
. .
You can also add third parties external modules or develop yours. You can also add third parties external modules or develop yours.

View File

@ -4,19 +4,19 @@
// This file must be present into htdocs/install directory // This file must be present into htdocs/install directory
// during install process to be used. // during install process to be used.
// //
// $Id: install.forced.php.install,v 1.9 2011/07/30 14:56:12 eldy Exp $ // $Id: install.forced.php.install,v 1.8 2011/07/27 16:45:47 eldy Exp $
// //
$force_install_noedit=2; $force_install_noedit=1;
$force_install_message='KeepDefaultValuesDeb'; $force_install_message='KeepDefaultValuesDeb';
#$force_install_main_data_root='/usr/share/dolibarr/documents'; #$force_install_main_data_root='/usr/share/dolibarr/documents';
$force_install_main_data_root='/var/lib/dolibarr/documents'; $force_install_main_data_root='/var/lib/dolibarr/documents';
$force_install_type='mysqli'; $force_install_type='mysqli';
$force_install_dbserver='localhost'; $force_install_dbserver='localhost';
$force_install_port='3306'; $force_install_port='3306';
$force_install_database='dolibarrdebian'; $force_install_database='dolibarr';
$force_install_createdatabase='1'; $force_install_createdatabase='1';
$force_install_databaselogin='dolibarrdebian'; $force_install_databaselogin='dolibarrmysql';
$force_install_databasepass=''; $force_install_databasepass='';
$force_install_createuser='1'; $force_install_createuser='1';
$force_install_databaserootlogin='__SUPERUSERLOGIN__'; $force_install_databaserootlogin='__SUPERUSERLOGIN__';

View File

@ -13,36 +13,30 @@
# #
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id: dolibarr\n"
"Project-Id-Version: 1.0\n" "Project-Id-Version: 1.0\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2011-07-27 19:49+0200\n" "POT-Creation-Date: 2011-07-29 04:31+0100\n"
"PO-Revision-Date: 2011-07-29 22:45+0100\n" "PO-Revision-Date: 2011-07-29 22:45+0100\n"
"Last-Translator: Laurent Destailleur <eldy@users.sourceforge.net>\n" "Last-Translator: Laurent Destailleur <eldy@users.sourceforge.net>\n"
"Language-Team: Laurent Destailleur <eldy@users.sourceforge.net>\n" "Language-Team: Laurent Destailleur <eldy@users.sourceforge.net>\n"
"Language: \n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n" "Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Project-Id: dolibarr\n"
# #
#. Type: boolean
#. Description #. Description
#: ../templates:1001 #: ../templates:dolibarr/postrm
#, fuzzy
msgid "Delete database and uploaded files ?"
msgstr "Effacer la base de donnée et les fichiers uploadés ?"
#
#. Type: boolean
#. Description
#: ../templates:1001
#, fuzzy
msgid "" msgid ""
"Answer if you want to removed the Dolibarr MySQL database and all other " "Delete database and uploaded files ?"
"datas (datas related to this question are the Dolibarr DBMS account, all "
"Dolibarr tables, and all uploaded files)."
msgstr "" msgstr ""
"Indiquez si vous voulez supprimer la base Dolibarr et toutes ces données " "Effacer la base de donnée et les fichiers uploadés ?"
"(les données en question ici sont les comptes de la base, les tables et tous "
"les fichiers téléchargés)." #
#. Description
#: ../templates:dolibarr/postrm
msgid ""
"Answer if you want to removed the Dolibarr MySQL database and all other datas (datas related to this question are the Dolibarr DBMS account, all Dolibarr tables, and all uploaded files)."
msgstr ""
"Indiquez si vous voulez supprimer la base Dolibarr et toutes ces données (les données en question ici sont les comptes de la base, les tables et tous les fichiers téléchargés)."

BIN
build/deb/po/messages.mo Executable file

Binary file not shown.

View File

@ -24,31 +24,17 @@ db_version 2.0
echo Run the dolibarr postinst script echo Run the dolibarr postinst script
# Define vars
docdir='/var/lib/dolibarr/documents' docdir='/var/lib/dolibarr/documents'
#docdir='/usr/share/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"
config="/etc/dolibarr/conf.php"
case "$1" in case "$1" in
configure) configure)
# Create document directory for uploaded data files # Edit install.forced.php to match Debian values
mkdir -p $docdir fileorig="/usr/share/dolibarr/build/deb/install.forced.php.install"
chown -R www-data:www-data $docdir config="/usr/share/dolibarr/htdocs/install/install.forced.php"
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='' superuserlogin=''
superuserpassword='' superuserpassword=''
if [ -f /etc/mysql/debian.cnf ] ; then if [ -f /etc/mysql/debian.cnf ] ; then
@ -58,24 +44,29 @@ case "$1" in
fi fi
echo Mysql superuser found to use is $superuserlogin echo Mysql superuser found to use is $superuserlogin
if [ -z "$superuserlogin" ] ; then if [ -z "$superuserlogin" ] ; then
cat $installfileorig | sed -e 's/__SUPERUSERLOGIN__/root/g' | sed -e 's/__SUPERUSERPASSWORD__//g' > $installconfig cat $fileorig | sed -e 's/__SUPERUSERLOGIN__/root/g' | sed -e 's/__SUPERUSERPASSWORD__//g' > $config
else else
cat $installfileorig | sed -e 's/__SUPERUSERLOGIN__/'$superuserlogin'/g' | sed -e 's/__SUPERUSERPASSWORD__/'$superuserpassword'/g' > $installconfig cat $fileorig | sed -e 's/__SUPERUSERLOGIN__/'$superuserlogin'/g' | sed -e 's/__SUPERUSERPASSWORD__/'$superuserpassword'/g' > $config
fi fi
chown -R root:www-data $installconfig
chmod -R 660 $installconfig # Create document directory for uploaded data files
mkdir -p $docdir
chown -R www-data:www-data $docdir
chmod -R 775 $docdir
chmod -R g+s $docdir
# Create an empty conf.php with permission to web server # Create an empty conf.php with permission to web server
if [ ! -f $config ] if [ ! -f /usr/share/dolibarr/htdocs/conf/conf.php ]
then then
echo Create empty file $config echo Create empty file /usr/share/dolibarr/htdocs/conf/conf.php
touch $config touch /usr/share/dolibarr/htdocs/conf/conf.php
chown -R root:www-data $config chown -R root:www-data /usr/share/dolibarr/htdocs/conf/conf.php
chmod -R 660 $config chmod -R 660 /usr/share/dolibarr/htdocs/conf/conf.php
fi fi
# Get the web server type (use db_get for interactive mode).
#db_reset "dolibarr/webserver" #db_reset "dolibarr/webserver"
# Get the web server type (use db_get for interactive mode).
#db_get "dolibarr/webserver" # Read value for webserver. #db_get "dolibarr/webserver" # Read value for webserver.
#webserver="$RET" #webserver="$RET"
@ -105,7 +96,7 @@ case "$1" in
# Set permissions to web server # Set permissions to web server
chown -R $webuser:$webgroup /usr/share/dolibarr chown -R $webuser:$webgroup /usr/share/dolibarr
chown -R root:$webgroup $config chown -R root:$webgroup /usr/share/dolibarr/htdocs/conf/conf.php
# Add link to config file # Add link to config file
echo Setup web server $server to add dolibarr config file echo Setup web server $server to add dolibarr config file
@ -113,6 +104,26 @@ case "$1" in
done done
#echo "Install menu entry"
# This one is for Gnome ubuntu
#fileorig="/usr/share/dolibarr/build/deb/dolibarr.desktop"
#target="/usr/share/applications/"
#cp -f $fileorig $target
# Not sure this is usefull
#if test -x /usr/bin/update-menus; then
# echo "update-menus"
# update-menus;
#fi
# TODO Create the file to force parameters in Web installer
#if grep DBHOST /usr/share/dolibarr/htdocs/conf/conf.php > /dev/null
#then
# perl -pi -e "s/DBHOST/$dbserver/" /usr/share/dolibarr/htdocs/conf/conf.php
# perl -pi -e "s/DBNAME/$dbname/" /usr/share/dolibarr/htdocs/conf/conf.php
# perl -pi -e "s/DBUSER/$dbuser/" /usr/share/dolibarr/htdocs/conf/conf.php
# perl -pi -e "s/DBPASS/$dbpass/" /usr/share/dolibarr/htdocs/conf/conf.php
#fi
# Restart servers # Restart servers
servers="apache2-ssl apache2 mysql" servers="apache2-ssl apache2 mysql"
# Another way to restart # Another way to restart

View File

@ -26,11 +26,6 @@ echo Run the dolibarr postrm script
docdir='/var/lib/dolibarr/documents' docdir='/var/lib/dolibarr/documents'
#docdir='/usr/share/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="" export webserver=""
@ -41,38 +36,13 @@ case $webserver in
Both) webservers="apache2 apache2-ssl" ;; Both) webservers="apache2 apache2-ssl" ;;
*) webservers="apache2 apache2-ssl" ;; *) webservers="apache2 apache2-ssl" ;;
esac esac
export includefile=/etc/dolibarr/apache.conf
case "$1" in case "$1" in
# Call when we upgrade
upgrade)
;;
# Call when we uninstall
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"
fi
done
;;
# Call when we uninstall and purge # Call when we uninstall and purge
purge) purge)
echo "postrm purge webservers=$webservers apacheconfig=$apacheconfig" echo "postrm purge webservers=$webservers includefile=$includefile"
# Ask if we must delete database # Ask if we must delete database
echo "postrm db_input dolibarr/postrm" echo "postrm db_input dolibarr/postrm"
@ -89,8 +59,7 @@ case "$1" in
echo postrm Mysql database deletion echo postrm Mysql database deletion
# Get database configuration # Get database configuration
dbserver="localhost" dbserver="localhost"
dbuser="dolibarrdebian" dbname="dolibarrmysql"
dbname="dolibarrdebian"
#db_get "dolibarr/db/name" #db_get "dolibarr/db/name"
#dbname="$RET" #dbname="$RET"
superuserlogin='' superuserlogin=''
@ -151,31 +120,23 @@ case "$1" in
fi fi
mysqlcmd="mysql $hostopt $passopt -u $dbadmin" mysqlcmd="mysql $hostopt $passopt -u $dbadmin"
# Now run the drop user
if eval $mysqlcmd -f -e "\"DROP USER '$dbuser'@'localhost';\"" ; then
echo Database login $dbuser removed
else
error="Unable to run $mysqlcmd -f -e \"DROP USER '$dbuser'@'localhost';\""
echo $error
fi
# Now run the drop commands # Now run the drop commands
if eval $mysqlcmd -f -e "\"show databases;\"" | grep -e "^$dbname" > /dev/null 2>&1 ; then if eval $mysqlcmd -f -e "\"show databases;\"" | grep -e "^$dbname" > /dev/null 2>&1 ; then
log="${log}Droping database $dbname." log="${log}Droping database $dbname."
if eval $mysqlcmd -f -e "\"DROP DATABASE $dbname;\"" ; then if eval $mysqlcmd -f -e "\"DROP DATABASE $dbname;\"" ; then
if eval $mysqlcmd -f -e "\"show databases;\"" | grep -e "^$dbname" > /dev/null 2>&1 ; then if eval $mysqlcmd -f -e "\"show databases;\"" | grep -e "^$dbname" > /dev/null 2>&1 ; then
error="Database $dbname NOT successfully droped. You have to do it manually." error="Database $dbname NOT successfully droped. You have to do it manually."
echo $error echo $error
else else
status=drop status=drop
fi fi
else else
error="Unable to run the drop database script." error="Unable to run the drop database script."
echo $error echo $error
fi fi
else else
status=nothing status=nothing
log="${log}Database $dbname already not exists." log="${log}Database $dbname already not exists."
fi fi
echo "Remove directory $docdir" echo "Remove directory $docdir"
@ -217,6 +178,18 @@ case "$1" in
set -e set -e
done done
# Remove file and conf file
for dir in /usr/share/dolibarr; do
if [ -d $dir ] ; then
# We disable blocking errors
set +e
echo "Remove directory $dir"
rm -rf $dir ;
# We restore blocking errors
set -e
fi
done
# We clean variable (we ignore errors because db_reset can fails if var was never set) # We clean variable (we ignore errors because db_reset can fails if var was never set)
set +e set +e
db_reset "dolibarr/postrm" db_reset "dolibarr/postrm"
@ -225,6 +198,34 @@ case "$1" in
#db_purge #db_purge
;; ;;
# Call when we uninstall
remove)
echo "postrm Force remove of /usr/share/dolibarr/htdocs/install"
rm -fr /usr/share/dolibarr/htdocs/install
echo "postrm Force remove of /usr/share/dolibarr/htdocs/conf"
rm -fr /usr/share/dolibarr/htdocs/conf
# 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
;;
upgrade)
;;
failed-upgrade|abort-install|abort-upgrade|disappear) failed-upgrade|abort-install|abort-upgrade|disappear)
;; ;;

View File

@ -1,8 +1,10 @@
#!/usr/bin/make -f #!/usr/bin/make -f
# This is the debhelper compatability version to use. # Uncomment this to turn on verbose mode.
#export DH_COMPAT=7 # Now defined into compat file export DH_VERBOSE=1
export DH_OPTIONS=-v
#export DH_COMPAT=7 # This is the debhelper compatability version to use, now defined into compat file
%: %:
dh $@ dh $@

View File

@ -1,7 +1,7 @@
Template: dolibarr/postrm Template: dolibarr/postrm
Type: boolean Type: boolean
Default: true Default: true
Description: Delete database ? Description: Delete database and uploaded files ?
Answer if you want to removed the Dolibarr MySQL database and all Answer if you want to removed the Dolibarr MySQL database and all
its datas (datas related to this quetion are the Dolibarr DBMS account other datas (datas related to this question are the Dolibarr DBMS
and all Dolibarr tables). account, all Dolibarr tables, and all uploaded files).