diff --git a/build/deb/README b/build/deb/README index 72a5d50c821..ca1be50e6d9 100644 --- a/build/deb/README +++ b/build/deb/README @@ -7,9 +7,16 @@ This directory contains files used by makepack-dolibarr.pl script to build a package, ready to be distributed, 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: # +# gpg --gen-key Generate a GPG key +# # lintian --pedantic -E -I package.deb To test a package # # dpkg -l List all packages @@ -20,6 +27,8 @@ with format .DEB (for Debian, Ubuntu, ...). # # dpkg -L packagename List content of installed package # 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: diff --git a/build/deb/control.DEBIAN b/build/deb/control.DEBIAN index 627298d5b91..7c66775bdf1 100755 --- a/build/deb/control.DEBIAN +++ b/build/deb/control.DEBIAN @@ -3,10 +3,9 @@ Version: __VERSION__ Architecture: all Maintainer: Laurent Destailleur 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 Priority: optional -Recommends: firefox Homepage: http://www.dolibarr.org Description: Easy to use web based ERP & CRM software 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. Most common used modules are: . - Customers, Suppliers or Prospects directory - Contacts directory - Orders management - Commercial proposals management - Invoices management - Products and services catalog - Stock management - Foundations members management - Bank accounts management - Point of Sale - Payments management - Commercial actions management - Contracts management - Standing orders management - Shipping management - Donations management - Bookmarks management - Mass Emailings - Reports - Data export and import tools - LDAP connectivity - PDF exports + Customers, Suppliers or Prospects directory, + Contacts directory, + Orders management, + Commercial proposals management, + Invoices management, + Products and services catalog, + Stock management, + Foundations members management, + Bank accounts management, + Point of Sale, + Payments management, + Commercial actions management, + Contracts management, + Standing orders management, + Shipping management, + Donations management, + Bookmarks management, + Mass Emailings, + Reports, + Wizards to export and import data, + LDAP connectivity, + PDF exports, And a lot of more modules... . You can also add third parties external modules or develop yours. diff --git a/build/deb/control.debian b/build/deb/control.debian index ae498d71ef7..91f0705c001 100755 --- a/build/deb/control.debian +++ b/build/deb/control.debian @@ -4,14 +4,13 @@ Standards-Version: 3.9.1 Section: web Priority: optional Homepage: http://www.dolibarr.org -Build-Depends: debhelper +Build-Depends: debhelper, po-debconf 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 Section: web Priority: optional -Recommends: firefox Homepage: http://www.dolibarr.org Description: Easy to use web based ERP & CRM software 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. Most common used modules are: . - Customers, Suppliers or Prospects directory - Contacts directory - Orders management - Commercial proposals management - Invoices management - Products and services catalog - Stock management - Foundations members management - Bank accounts management - Point of Sale - Payments management - Commercial actions management - Contracts management - Standing orders management - Shipping management - Donations management - Bookmarks management - Mass Emailings - Reports - Data export and import tools - LDAP connectivity - PDF exports + Customers, Suppliers or Prospects directory, + Contacts directory, + Orders management, + Commercial proposals management, + Invoices management, + Products and services catalog, + Stock management, + Foundations members management, + Bank accounts management, + Point of Sale, + Payments management, + Commercial actions management, + Contracts management, + Standing orders management, + Shipping management, + Donations management, + Bookmarks management, + Mass Emailings, + Reports, + Wizards to export and import data, + LDAP connectivity, + PDF exports, And a lot of more modules... . You can also add third parties external modules or develop yours. \ No newline at end of file diff --git a/build/deb/install.forced.php.install b/build/deb/install.forced.php.install index 7de8616ac15..c266426209b 100755 --- a/build/deb/install.forced.php.install +++ b/build/deb/install.forced.php.install @@ -4,19 +4,19 @@ // This file must be present into htdocs/install directory // 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_main_data_root='/usr/share/dolibarr/documents'; $force_install_main_data_root='/var/lib/dolibarr/documents'; $force_install_type='mysqli'; $force_install_dbserver='localhost'; $force_install_port='3306'; -$force_install_database='dolibarrdebian'; +$force_install_database='dolibarr'; $force_install_createdatabase='1'; -$force_install_databaselogin='dolibarrdebian'; +$force_install_databaselogin='dolibarrmysql'; $force_install_databasepass=''; $force_install_createuser='1'; $force_install_databaserootlogin='__SUPERUSERLOGIN__'; diff --git a/build/deb/po/fr.po b/build/deb/po/fr.po index 13b8030ed0d..abb15a879a1 100755 --- a/build/deb/po/fr.po +++ b/build/deb/po/fr.po @@ -13,36 +13,30 @@ # msgid "" msgstr "" +"Project-Id: dolibarr\n" "Project-Id-Version: 1.0\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" "Last-Translator: Laurent Destailleur \n" "Language-Team: Laurent Destailleur \n" -"Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Project-Id: dolibarr\n" # -#. Type: boolean #. Description -#: ../templates:1001 -#, 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 +#: ../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)." +"Delete database and 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)." +"Effacer la base de donnée et les fichiers uploadé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)." + \ No newline at end of file diff --git a/build/deb/po/messages.mo b/build/deb/po/messages.mo new file mode 100755 index 00000000000..0de55a6ee38 Binary files /dev/null and b/build/deb/po/messages.mo differ diff --git a/build/deb/postinst b/build/deb/postinst index ca5fd1645dd..0bc4d297b70 100644 --- a/build/deb/postinst +++ b/build/deb/postinst @@ -24,31 +24,17 @@ db_version 2.0 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" -config="/etc/dolibarr/conf.php" + case "$1" in configure) - # 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 - - # 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 + # Edit install.forced.php to match Debian values + fileorig="/usr/share/dolibarr/build/deb/install.forced.php.install" + config="/usr/share/dolibarr/htdocs/install/install.forced.php" superuserlogin='' superuserpassword='' if [ -f /etc/mysql/debian.cnf ] ; then @@ -58,24 +44,29 @@ case "$1" in fi echo Mysql superuser found to use is $superuserlogin 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 - 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 - 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 - if [ ! -f $config ] + if [ ! -f /usr/share/dolibarr/htdocs/conf/conf.php ] then - echo Create empty file $config - touch $config - chown -R root:www-data $config - chmod -R 660 $config + echo Create empty file /usr/share/dolibarr/htdocs/conf/conf.php + touch /usr/share/dolibarr/htdocs/conf/conf.php + chown -R root:www-data /usr/share/dolibarr/htdocs/conf/conf.php + chmod -R 660 /usr/share/dolibarr/htdocs/conf/conf.php fi - # Get the web server type (use db_get for interactive mode). #db_reset "dolibarr/webserver" + + # Get the web server type (use db_get for interactive mode). #db_get "dolibarr/webserver" # Read value for webserver. #webserver="$RET" @@ -105,7 +96,7 @@ case "$1" in # Set permissions to web server 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 echo Setup web server $server to add dolibarr config file @@ -113,6 +104,26 @@ case "$1" in 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 servers="apache2-ssl apache2 mysql" # Another way to restart diff --git a/build/deb/postrm b/build/deb/postrm index 9eae81b022b..8be194f0a41 100644 --- a/build/deb/postrm +++ b/build/deb/postrm @@ -26,11 +26,6 @@ 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="" @@ -41,38 +36,13 @@ case $webserver in Both) webservers="apache2 apache2-ssl" ;; *) webservers="apache2 apache2-ssl" ;; esac +export includefile=/etc/dolibarr/apache.conf 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 purge) - echo "postrm purge webservers=$webservers apacheconfig=$apacheconfig" + echo "postrm purge webservers=$webservers includefile=$includefile" # Ask if we must delete database echo "postrm db_input dolibarr/postrm" @@ -89,8 +59,7 @@ case "$1" in echo postrm Mysql database deletion # Get database configuration dbserver="localhost" - dbuser="dolibarrdebian" - dbname="dolibarrdebian" + dbname="dolibarrmysql" #db_get "dolibarr/db/name" #dbname="$RET" superuserlogin='' @@ -151,31 +120,23 @@ case "$1" in fi 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 if eval $mysqlcmd -f -e "\"show databases;\"" | grep -e "^$dbname" > /dev/null 2>&1 ; then - log="${log}Droping database $dbname." - if eval $mysqlcmd -f -e "\"DROP DATABASE $dbname;\"" ; 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." - echo $error - else - status=drop - fi - else - error="Unable to run the drop database script." - echo $error - fi + log="${log}Droping database $dbname." + if eval $mysqlcmd -f -e "\"DROP DATABASE $dbname;\"" ; 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." + echo $error + else + status=drop + fi + else + error="Unable to run the drop database script." + echo $error + fi else - status=nothing - log="${log}Database $dbname already not exists." + status=nothing + log="${log}Database $dbname already not exists." fi echo "Remove directory $docdir" @@ -217,6 +178,18 @@ case "$1" in set -e 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) set +e db_reset "dolibarr/postrm" @@ -225,6 +198,34 @@ case "$1" in #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) ;; diff --git a/build/deb/rules b/build/deb/rules index b353c0fff53..9a3f9a98c7a 100644 --- a/build/deb/rules +++ b/build/deb/rules @@ -1,8 +1,10 @@ #!/usr/bin/make -f -# This is the debhelper compatability version to use. -#export DH_COMPAT=7 # Now defined into compat file +# Uncomment this to turn on verbose mode. +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 $@ \ No newline at end of file + dh $@ \ No newline at end of file diff --git a/build/deb/templates b/build/deb/templates index 1903003a9f4..e45bca176b7 100644 --- a/build/deb/templates +++ b/build/deb/templates @@ -1,7 +1,7 @@ Template: dolibarr/postrm Type: boolean Default: true -Description: Delete database ? +Description: Delete database and uploaded files ? Answer if you want to removed the Dolibarr MySQL database and all - its datas (datas related to this quetion are the Dolibarr DBMS account - and all Dolibarr tables). + other datas (datas related to this question are the Dolibarr DBMS + account, all Dolibarr tables, and all uploaded files).