From 23b17b43aa85a0dfe52a220c06142e7beadcba46 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Mon, 1 Aug 2011 18:22:25 +0000 Subject: [PATCH] Work on debian package --- build/deb/README | 18 +- build/deb/config | 11 +- build/deb/control.DEBIAN | 47 --- build/deb/control.debian | 55 ++-- build/deb/copyright | 7 +- build/deb/dolibarr.lintian-overrides | 9 + build/deb/install | 1 + build/deb/lighttpd.conf | 22 ++ build/deb/po/fr.po | 22 +- build/deb/po/templates.pot | 20 +- build/deb/postinst | 167 +++++----- build/deb/postrm | 196 ++++++----- build/deb/rules | 8 +- build/deb/templates | 15 +- build/makepack-dolibarr.pl | 305 ++++++++++++++---- dev/skeletons/modMyModule.class.php | 4 +- htdocs/admin/boxes.php | 8 +- htdocs/admin/modules.php | 35 +- htdocs/admin/perms.php | 34 +- htdocs/boxes.php | 6 +- htdocs/comm/action/index.php | 7 +- htdocs/core/class/conf.class.php | 6 +- htdocs/core/class/html.form.class.php | 13 +- htdocs/filefunc.inc.php | 16 +- .../doc/doc_generic_invoice_odt.modules.php | 5 +- htdocs/includes/modules/modWorkflow.class.php | 4 +- .../societe/doc/doc_generic_odt.modules.php | 5 +- .../install/mysql/migration/3.0.0-3.1.0.sql | 48 ++- htdocs/langs/ca_ES/admin.lang | 6 +- htdocs/langs/es_ES/admin.lang | 6 +- htdocs/lib/admin.lib.php | 77 ++++- htdocs/lib/agenda.lib.php | 5 +- htdocs/master.inc.php | 6 +- htdocs/societe/soc.php | 10 +- htdocs/theme/bureau2crea/style.css.php | 5 +- htdocs/user/group/perms.php | 34 +- htdocs/user/perms.php | 32 +- 37 files changed, 853 insertions(+), 422 deletions(-) delete mode 100755 build/deb/control.DEBIAN create mode 100755 build/deb/dolibarr.lintian-overrides create mode 100755 build/deb/lighttpd.conf diff --git a/build/deb/README b/build/deb/README index 72a5d50c821..d73d7a99219 100644 --- a/build/deb/README +++ b/build/deb/README @@ -7,19 +7,31 @@ 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 +# +# debconf-updatepo To run into po dir to regenate templates.pot +# # 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 To submit a package to Debian: @@ -38,5 +50,5 @@ For first ITP submission of Dolibarr, bug id was 634783. - Call for a mentor on ML debian-mentors to upload packages - Once package is uploaded, following URL are available: -http://packages.qa.debian.org/package +http://packages.qa.debian.org/package.html http://bugs.debian.org/package diff --git a/build/deb/config b/build/deb/config index 1965ef73cc5..fd5ea96491b 100644 --- a/build/deb/config +++ b/build/deb/config @@ -22,7 +22,16 @@ if [ "$1" = "reconfigure" ] ; then done mv ${config} ${config}.0 fi - +# Rotate old configuration +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 diff --git a/build/deb/control.DEBIAN b/build/deb/control.DEBIAN deleted file mode 100755 index 627298d5b91..00000000000 --- a/build/deb/control.DEBIAN +++ /dev/null @@ -1,47 +0,0 @@ -Package: dolibarr -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 -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 - and medium companies, foundations or freelances. It includes different - features for Enterprise Resource Planning (ERP) and Customer Relationship - Management (CRM) but also for different other activities. - It's a web software you can install as a standalone program or on any web - hosting provider to use it from anywhere with any web browser. - Dolibarr was designed to provide only features you need and be easy to use. - . - 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 - 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..e28258d8dbc 100755 --- a/build/deb/control.debian +++ b/build/deb/control.debian @@ -4,14 +4,19 @@ Standards-Version: 3.9.1 Section: web Priority: optional Homepage: http://www.dolibarr.org -Build-Depends: debhelper +Build-Depends: debhelper (>= 7), 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: libapache2-mod-php5 | libapache2-mod-php5filter | php5-cgi | php5-fpm | php5, + php5-mysql | php5-mysqli, + php5-cli, php5-cgi, php5-curl, php5-gd, php5-ldap, php-pear, php-mail-mime, + ${misc:Depends}, xdg-utils, + mysql-server, perl +Recommends: apache2 | lighttpd | httpd, mysql-client +Suggests: www-browser 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 +30,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/copyright b/build/deb/copyright index c69ae11a4a6..7a7e752fe43 100644 --- a/build/deb/copyright +++ b/build/deb/copyright @@ -44,7 +44,9 @@ Copyright: 2002-2009, Rodolphe Quiedeville On Debian systems, the full text of the GNU General Public License version 2 can be found in the file `/usr/share/common-licenses/GPL-2'. - + Full text of Lesser General Public Licence version 3 can be + found in the file + `/usr/share/common-licenses/LGPL-3'. Files: htdocs/includes/artichow/* License: Public Domain @@ -64,6 +66,9 @@ License: GPL-2+ Files: htdocs/includes/jquery/* License: GPL-2+ or MIT +Files: htdocs/includes/jquery/plugins/flot/* +License: Public Domain + Files: htdocs/includes/jsgantt/* License: GPL-2+ diff --git a/build/deb/dolibarr.lintian-overrides b/build/deb/dolibarr.lintian-overrides new file mode 100755 index 00000000000..9022acc3e75 --- /dev/null +++ b/build/deb/dolibarr.lintian-overrides @@ -0,0 +1,9 @@ +# embedded libraries, which don't seem to be available in Debian in correct version +# or because they were modified and are specific dolibarr code +embedded-javascript-library usr/share/dolibarr/htdocs/includes/ckeditor/adapters/jquery.js +embedded-javascript-library usr/share/dolibarr/htdocs/includes/ckeditor/ckeditor.js +embedded-javascript-library usr/share/dolibarr/htdocs/includes/fckeditor/fckeditor.js +embedded-php-library usr/share/dolibarr/htdocs/includes/magpierss/extlib/Snoopy.class.inc +embedded-php-library usr/share/dolibarr/htdocs/includes/magpierss/rss_parse.inc +embedded-php-library usr/share/dolibarr/htdocs/includes/nusoap/lib/nusoap.php +embedded-php-library usr/share/dolibarr/htdocs/includes/odtphp/zip/pclzip/pclzip.lib.php \ No newline at end of file diff --git a/build/deb/install b/build/deb/install index 4d41fd52c65..2928d378abc 100755 --- a/build/deb/install +++ b/build/deb/install @@ -1,4 +1,5 @@ etc/dolibarr/apache.conf +etc/dolibarr/lighttpd.conf usr/share/applications/dolibarr.desktop usr/share/doc/dolibarr usr/share/dolibarr diff --git a/build/deb/lighttpd.conf b/build/deb/lighttpd.conf new file mode 100755 index 00000000000..e3d1bdfce7e --- /dev/null +++ b/build/deb/lighttpd.conf @@ -0,0 +1,22 @@ +# Alias for dolibarr directory +alias.url += ( + "/dolibarr" => "/usr/share/dolibarr/htdocs", +) + +# Disallow access to libraries +#$HTTP["url"] =~ "^/dolibarr/libraries" { +# url.access-deny = ( "" ) +#} + +# Limit access to setup script +#$HTTP["url"] =~ "^/dolibarr/setup" { +# auth.backend = "htpasswd" +# auth.backend.htpasswd.userfile = "/etc/dolibarr/htpasswd.setup" +# auth.require = ( +# "/" => ( +# "method" => "basic", +# "realm" => "Dolibarr Setup", +# "require" => "valid-user" +# ) +# ) +#} diff --git a/build/deb/po/fr.po b/build/deb/po/fr.po index 13b8030ed0d..3bbe762283a 100755 --- a/build/deb/po/fr.po +++ b/build/deb/po/fr.po @@ -15,7 +15,7 @@ msgid "" msgstr "" "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-08-01 18:17+0200\n" "PO-Revision-Date: 2011-07-29 22:45+0100\n" "Last-Translator: Laurent Destailleur \n" "Language-Team: Laurent Destailleur \n" @@ -25,10 +25,26 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Project-Id: dolibarr\n" +#. Type: multiselect +#. Description +#: ../templates:1001 +msgid "Web server to reconfigure automatically:" +msgstr "Seveur web à reconfigurer automatiquement:" + +#. Type: multiselect +#. Description +#: ../templates:1001 +msgid "" +"Please choose the web server that should be automatically configured to run " +"dolibarr." +msgstr "" +"Selectionnez le serveur web à configurer automatiquement pour utiliser " +"dolibarr." + # #. Type: boolean #. Description -#: ../templates:1001 +#: ../templates:2001 #, fuzzy msgid "Delete database and uploaded files ?" msgstr "Effacer la base de donnée et les fichiers uploadés ?" @@ -36,7 +52,7 @@ msgstr "Effacer la base de donnée et les fichiers uploadés ?" # #. Type: boolean #. Description -#: ../templates:1001 +#: ../templates:2001 #, fuzzy msgid "" "Answer if you want to removed the Dolibarr MySQL database and all other " diff --git a/build/deb/po/templates.pot b/build/deb/po/templates.pot index 32c92a97cc4..d65e5d8b7f6 100755 --- a/build/deb/po/templates.pot +++ b/build/deb/po/templates.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-07-27 19:52+0200\n" +"POT-Creation-Date: 2011-08-01 18:17+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -17,15 +17,29 @@ msgstr "" "Content-Type: text/plain; charset=CHARSET\n" "Content-Transfer-Encoding: 8bit\n" -#. Type: boolean +#. Type: multiselect #. Description #: ../templates:1001 +msgid "Web server to reconfigure automatically:" +msgstr "" + +#. Type: multiselect +#. Description +#: ../templates:1001 +msgid "" +"Please choose the web server that should be automatically configured to run " +"dolibarr." +msgstr "" + +#. Type: boolean +#. Description +#: ../templates:2001 msgid "Delete database and uploaded files ?" msgstr "" #. Type: boolean #. Description -#: ../templates:1001 +#: ../templates:2001 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 " diff --git a/build/deb/postinst b/build/deb/postinst index dd03156a6d2..9f103d8876d 100644 --- a/build/deb/postinst +++ b/build/deb/postinst @@ -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 @@ -24,23 +47,25 @@ db_version 2.0 echo Run the dolibarr postinst script +# Define vars docdir='/var/lib/dolibarr/documents' #docdir='/usr/share/dolibarr/documents' - +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) - # Copy apache.conf file into target directory. - #fileorig="/usr/share/dolibarr/build/deb/apache.conf" - #config="/etc/dolibarr/apache.conf" - #mkdir -p /etc/dolibarr - #cp -p $fileorig $config + # 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 - # 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" + # Copy install config file (with matching Debian) values into target directory superuserlogin='' superuserpassword='' if [ -f /etc/mysql/debian.cnf ] ; then @@ -50,42 +75,39 @@ case "$1" in fi echo Mysql superuser found to use is $superuserlogin if [ -z "$superuserlogin" ] ; then - cat $fileorig | sed -e 's/__SUPERUSERLOGIN__/root/g' | sed -e 's/__SUPERUSERPASSWORD__//g' > $config + cat $installfileorig | sed -e 's/__SUPERUSERLOGIN__/root/g' | sed -e 's/__SUPERUSERPASSWORD__//g' > $installconfig else - cat $fileorig | sed -e 's/__SUPERUSERLOGIN__/'$superuserlogin'/g' | sed -e 's/__SUPERUSERPASSWORD__/'$superuserpassword'/g' > $config + cat $installfileorig | sed -e 's/__SUPERUSERLOGIN__/'$superuserlogin'/g' | sed -e 's/__SUPERUSERPASSWORD__/'$superuserpassword'/g' > $installconfig fi - - # 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 + chown -R root:www-data $installconfig + chmod -R 660 $installconfig # Create an empty conf.php with permission to web server - if [ ! -f /usr/share/dolibarr/htdocs/conf/conf.php ] + if [ ! -f $config ] then - 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 + echo Create empty file $config + touch $config + chown -R root:www-data $config + chmod -R 660 $config fi - #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" - - 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= @@ -102,47 +124,32 @@ case "$1" in # Set permissions to web server chown -R $webuser:$webgroup /usr/share/dolibarr - 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 - ln -fs /etc/dolibarr/apache.conf /etc/apache2/conf.d/dolibarr.conf - + chown -R root:$webgroup $config 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 - 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." @@ -153,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 diff --git a/build/deb/postrm b/build/deb/postrm index 8be194f0a41..dd05ee90379 100644 --- a/build/deb/postrm +++ b/build/deb/postrm @@ -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,40 +55,68 @@ echo Run the dolibarr postrm script docdir='/var/lib/dolibarr/documents' #docdir='/usr/share/dolibarr/documents' +#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 -export includefile=/etc/dolibarr/apache.conf - case "$1" in + + # Call when we upgrade + upgrade) + ;; + + # Call when we uninstall + remove) + rm -f $lockfile + + # 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 includefile=$includefile" + 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 echo postrm Mysql database deletion # Get database configuration dbserver="localhost" - dbname="dolibarrmysql" + dbuser="dolibarrdebian" + dbname="dolibarrdebian" #db_get "dolibarr/db/name" #dbname="$RET" superuserlogin='' @@ -120,23 +177,31 @@ case "$1" in fi mysqlcmd="mysql $hostopt $passopt -u $dbadmin" - # 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 + # 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 the drop database script." + 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 else - status=nothing - log="${log}Database $dbname already not exists." + status=nothing + log="${log}Database $dbname already not exists." fi echo "Remove directory $docdir" @@ -146,91 +211,22 @@ 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 - - # 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" + db_reset dolibarr/reconfigure-webserver + db_reset dolibarr/postrm set -e #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) ;; *) - echo "postrm called with unknown argument \`$1'" >&2 + echo "postrm called with unknown argument $1" >&2 exit 0 ;; esac 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..b96325a4e64 100644 --- a/build/deb/templates +++ b/build/deb/templates @@ -1,7 +1,14 @@ +Template: dolibarr/reconfigure-webserver +Type: multiselect +Choices: apache2, lighttpd +_Description: Web server to reconfigure automatically: + Please choose the web server that should be automatically configured + to run dolibarr. + Template: dolibarr/postrm Type: boolean Default: true -Description: Delete database ? - 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). +_Description: Delete database and uploaded files ? + 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). diff --git a/build/makepack-dolibarr.pl b/build/makepack-dolibarr.pl index 9e55dcac19b..20c5ba415e9 100644 --- a/build/makepack-dolibarr.pl +++ b/build/makepack-dolibarr.pl @@ -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.115 2011/07/26 22:25:51 eldy Exp $ +# \version $Id: makepack-dolibarr.pl,v 1.129 2011/08/01 18:22:26 eldy Exp $ # \author (c)2004-2011 Laurent Destailleur #---------------------------------------------------------------------------- @@ -11,7 +11,7 @@ use Cwd; $PROJECT="dolibarr"; $MAJOR="3"; $MINOR="1"; -$BUILD="0-dev"; # Mettre x pour release, x-dev pour dev, x-beta pour beta, x-rc pour release candidate +$BUILD="0-beta"; # Mettre x pour release, x-dev pour dev, x-beta pour beta, x-rc pour release candidate $RPMSUBVERSION="auto"; # auto use value found into BUILD @LISTETARGET=("TGZ","ZIP","RPM","DEB","APS","EXEDOLIWAMP","SNAPSHOT"); # Possible packages @@ -34,7 +34,7 @@ $FILENAMESNAPSHOT="$PROJECT-snapshot"; $FILENAMETGZ="$PROJECT-$MAJOR.$MINOR.$BUILD"; $FILENAMEZIP="$PROJECT-$MAJOR.$MINOR.$BUILD"; $FILENAMERPM="$PROJECT-$MAJOR.$MINOR.$BUILD-$RPMSUBVERSION"; -$FILENAMEDEB="$PROJECT-$MAJOR.$MINOR.$BUILD"; +$FILENAMEDEB="${PROJECT}_${MAJOR}.${MINOR}.${BUILD}"; $FILENAMEAPS="$PROJECT-$MAJOR.$MINOR.$BUILD.app"; $FILENAMEEXEDOLIWAMP="$PROJECT-$MAJOR.$MINOR.$BUILD"; if (-d "/usr/src/redhat") { @@ -48,7 +48,7 @@ if (-d "/usr/src/RPM") { use vars qw/ $REVISION $VERSION /; -$REVISION='$Revision: 1.115 $'; $REVISION =~ /\s(.*)\s/; $REVISION=$1; +$REVISION='$Revision: 1.129 $'; $REVISION =~ /\s(.*)\s/; $REVISION=$1; $VERSION="1.0 (build $REVISION)"; @@ -248,16 +248,24 @@ if ($nboftargetok) { $ret=`rm -fr $BUILDROOT/$PROJECT/.cache`; $ret=`rm -fr $BUILDROOT/$PROJECT/.project`; $ret=`rm -fr $BUILDROOT/$PROJECT/.settings`; + $ret=`rm -fr $BUILDROOT/$PROJECT/pom.xml`; + $ret=`rm -fr $BUILDROOT/$PROJECT/default.properties`; $ret=`rm -fr $BUILDROOT/$PROJECT/build/html`; $ret=`rm -f $BUILDROOT/$PROJECT/build/DoliW*-*`; $ret=`rm -f $BUILDROOT/$PROJECT/build/DoliM*-*`; + $ret=`rm -f $BUILDROOT/$PROJECT/build/dolibarr_*.changes`; + $ret=`rm -f $BUILDROOT/$PROJECT/build/dolibarr_*.deb`; + $ret=`rm -f $BUILDROOT/$PROJECT/build/dolibarr_*.dsc`; + $ret=`rm -f $BUILDROOT/$PROJECT/build/dolibarr_*.tar.gz`; $ret=`rm -f $BUILDROOT/$PROJECT/build/dolibarr-*.deb`; $ret=`rm -f $BUILDROOT/$PROJECT/build/dolibarr-*.rpm`; $ret=`rm -f $BUILDROOT/$PROJECT/build/dolibarr-*.tar`; + $ret=`rm -f $BUILDROOT/$PROJECT/build/dolibarr-*.tar.gz`; $ret=`rm -f $BUILDROOT/$PROJECT/build/dolibarr-*.tgz`; $ret=`rm -f $BUILDROOT/$PROJECT/build/dolibarr-*.zip`; $ret=`rm -f $BUILDROOT/$PROJECT/build/doxygen/doxygen_warnings.log`; + $ret=`rm -f $BUILDROOT/$PROJECT/htdocs/conf/conf.php`; $ret=`rm -f $BUILDROOT/$PROJECT/htdocs/conf/conf.php.mysql`; $ret=`rm -f $BUILDROOT/$PROJECT/htdocs/conf/conf.php.old`; $ret=`rm -f $BUILDROOT/$PROJECT/htdocs/conf/conf.php.postgres`; @@ -266,25 +274,41 @@ if ($nboftargetok) { $ret=`rm -f $BUILDROOT/$PROJECT/htdocs/includes/barcode/php-barcode/fonts/AerialMono*.ttf`; $ret=`rm -f $BUILDROOT/$PROJECT/htdocs/includes/barcode/php-barcode/fonts/Tymes*.ttf`; $ret=`rm -f $BUILDROOT/$PROJECT/htdocs/includes/barcode/php-barcode/fonts/Veranda*.ttf`; + $ret=`rm -f $BUILDROOT/$PROJECT/htdocs/includes/fckeditor/fckeditor.py`; + $ret=`rm -f $BUILDROOT/$PROJECT/htdocs/install/mssql/README`; + $ret=`rm -f $BUILDROOT/$PROJECT/htdocs/install/mysql/README`; + $ret=`rm -f $BUILDROOT/$PROJECT/htdocs/install/pgsql/README`; + $ret=`rm -fr $BUILDROOT/$PROJECT/dev/test`; $ret=`rm -fr $BUILDROOT/$PROJECT/dev/spec`; + $ret=`rm -fr $BUILDROOT/$PROJECT/dev/licence`; + $ret=`rm -fr $BUILDROOT/$PROJECT/dev/uml`; + $ret=`rm -fr $BUILDROOT/$PROJECT/dev/xdebug`; + $ret=`rm -f $BUILDROOT/$PROJECT/doc/images/dolibarr_screenshot2.png`; + $ret=`rm -f $BUILDROOT/$PROJECT/doc/images/dolibarr_screenshot3.png`; + $ret=`rm -f $BUILDROOT/$PROJECT/doc/images/dolibarr_screenshot4.png`; + $ret=`rm -f $BUILDROOT/$PROJECT/doc/images/dolibarr_screenshot5.png`; + $ret=`rm -f $BUILDROOT/$PROJECT/doc/images/dolibarr_screenshot6.png`; + $ret=`rm -f $BUILDROOT/$PROJECT/doc/images/dolibarr_screenshot7.png`; + $ret=`rm -f $BUILDROOT/$PROJECT/doc/images/dolibarr_screenshot8.png`; + $ret=`rm -f $BUILDROOT/$PROJECT/doc/images/dolibarr_screenshot9.png`; + $ret=`rm -f $BUILDROOT/$PROJECT/doc/images/dolibarr_screenshot10.png`; + $ret=`rm -f $BUILDROOT/$PROJECT/doc/images/dolibarr_screenshot11.png`; + $ret=`rm -f $BUILDROOT/$PROJECT/doc/images/dolibarr_screenshot12.png`; $ret=`rm -fr $BUILDROOT/$PROJECT/documents`; $ret=`rm -fr $BUILDROOT/$PROJECT/document`; - $ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/conf/conf.php`; - $ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/conf/conf.php.mysql`; - $ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/conf/conf.php.old`; - $ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/conf/conf.php.postgres`; - $ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/conf/conf*sav*`; $ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/custom`; $ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/custom2`; $ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/theme/bureau2crea`; $ret=`rm -fr $BUILDROOT/$PROJECT/test`; + $ret=`rm -fr $BUILDROOT/$PROJECT/build/deb/po/CVS*`; $ret=`rm -fr $BUILDROOT/$PROJECT/Thumbs.db $BUILDROOT/$PROJECT/*/Thumbs.db $BUILDROOT/$PROJECT/*/*/Thumbs.db $BUILDROOT/$PROJECT/*/*/*/Thumbs.db $BUILDROOT/$PROJECT/*/*/*/*/Thumbs.db`; $ret=`rm -fr $BUILDROOT/$PROJECT/CVS* $BUILDROOT/$PROJECT/*/CVS* $BUILDROOT/$PROJECT/*/*/CVS* $BUILDROOT/$PROJECT/*/*/*/CVS* $BUILDROOT/$PROJECT/*/*/*/*/CVS* $BUILDROOT/$PROJECT/*/*/*/*/*/CVS* $BUILDROOT/$PROJECT/*/*/*/*/*/*/CVS* $BUILDROOT/$PROJECT/*/*/*/*/*/*/*/CVS* $BUILDROOT/$PROJECT/*/*/*/*/*/*/*/*/CVS* $BUILDROOT/$PROJECT/*/*/*/*/*/*/*/*/*/CVS* $BUILDROOT/$PROJECT/*/*/*/*/*/*/*/*/*/*/CVS*`; $ret=`rm -fr $BUILDROOT/$PROJECT/.cvsignore $BUILDROOT/$PROJECT/*/.cvsignore $BUILDROOT/$PROJECT/*/*/.cvsignore $BUILDROOT/$PROJECT/*/*/*/.cvsignore $BUILDROOT/$PROJECT/*/*/*/*/.cvsignore $BUILDROOT/$PROJECT/*/*/*/*/*/.cvsignore $BUILDROOT/$PROJECT/*/*/*/*/*/*/.cvsignore`; $ret=`rm -f $BUILDROOT/$PROJECT/htdocs/includes/php_writeexcel/php.bmp`; $ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/includes/phpexcel`; + $ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/includes/smarty`; #$ret=`rm -f $BUILDROOT/$PROJECT/htdocs/includes/phpexcel/PHPExcel/Shared/PDF/fonts/utils/freetype6.dll`; #$ret=`rm -f $BUILDROOT/$PROJECT/htdocs/includes/phpexcel/PHPExcel/Shared/PDF/fonts/utils/zlib1.dll`; #$ret=`rm -f $BUILDROOT/$PROJECT/htdocs/includes/phpexcel/PHPExcel/Shared/PDF/fonts/utils/pfm2afm`; @@ -294,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 @@ -392,14 +419,19 @@ if ($nboftargetok) { } if ($target eq 'RPM') { # Linux only - $ARCH='i386'; + #$ARCH='i386'; + $ARCH='noarch'; if ($RPMDIR eq "") { $RPMDIR=$ENV{'HOME'}."/rpmbuild"; } $newbuild = $BUILD; - $newbuild =~ s/(dev|alpha)/0/gi; # dev - $newbuild =~ s/beta/1/gi; # beta - $newbuild =~ s/rc./2/gi; # rc + # For fedora + $newbuild =~ s/(dev|alpha)/0.1.a/gi; # dev + $newbuild =~ s/beta/0.2.beta1/gi; # beta + $newbuild =~ s/rc./0.3.rc1/gi; # rc if ($newbuild !~ /-/) { $newbuild.='-3'; } # finale - # now newbuild is 0-0 or 0-3 for example + #$newbuild =~ s/(dev|alpha)/0/gi; # dev + #$newbuild =~ s/beta/1/gi; # beta + #$newbuild =~ s/rc./2/gi; # rc + #if ($newbuild !~ /-/) { $newbuild.='-3'; } # finale $REL1 = $newbuild; $REL1 =~ s/-.*$//gi; if ($RPMSUBVERSION eq 'auto') { $RPMSUBVERSION = $newbuild; $RPMSUBVERSION =~ s/^.*-//gi; } print "Version is $MAJOR.$MINOR.$REL1-$RPMSUBVERSION\n"; @@ -417,7 +449,93 @@ if ($nboftargetok) { print "Remove other files\n"; $ret=`rm -f $BUILDROOT/$FILENAMETGZ2/htdocs/includes/barcode/php-barcode/genbarcode/genbarcode`; + $ret=`rm -fr $BUILDROOT/$FILENAMETGZ2/$PROJECT/README`; + $ret=`rm -f $BUILDROOT/$FILENAMETGZ2/$PROJECT/build/README`; + $ret=`rm -f $BUILDROOT/$FILENAMETGZ2/$PROJECT/build/README-FR`; + $ret=`rm -fr $BUILDROOT/$FILENAMETGZ2/$PROJECT/build/aps`; + $ret=`rm -fr $BUILDROOT/$FILENAMETGZ2/$PROJECT/build/deb`; + $ret=`rm -fr $BUILDROOT/$FILENAMETGZ2/$PROJECT/build/dmg`; + $ret=`rm -f $BUILDROOT/$FILENAMETGZ2/$PROJECT/build/pad/README`; + $ret=`rm -f $BUILDROOT/$FILENAMETGZ2/$PROJECT/build/tgz/README`; + $ret=`rm -f $BUILDROOT/$FILENAMETGZ2/$PROJECT/build/deb/README`; + $ret=`rm -fr $BUILDROOT/$FILENAMETGZ2/$PROJECT/build/doap`; + $ret=`rm -fr $BUILDROOT/$FILENAMETGZ2/$PROJECT/build/exe`; + $ret=`rm -fr $BUILDROOT/$FILENAMETGZ2/$PROJECT/build/live`; + $ret=`rm -fr $BUILDROOT/$FILENAMETGZ2/$PROJECT/build/patch`; + $ret=`rm -fr $BUILDROOT/$FILENAMETGZ2/$PROJECT/build/zip`; + $ret=`rm -fr $BUILDROOT/$FILENAMETGZ2/$PROJECT/build/perl`; + $ret=`rm -fr $BUILDROOT/$FILENAMETGZ2/$PROJECT/dev/dbmodel`; + $ret=`rm -fr $BUILDROOT/$FILENAMETGZ2/$PROJECT/dev/fpdf`; + $ret=`rm -fr $BUILDROOT/$FILENAMETGZ2/$PROJECT/dev/initdata`; + $ret=`rm -fr $BUILDROOT/$FILENAMETGZ2/$PROJECT/dev/iso-normes`; + $ret=`rm -fr $BUILDROOT/$FILENAMETGZ2/$PROJECT/dev/phpcheckstyle`; + $ret=`rm -fr $BUILDROOT/$FILENAMETGZ2/$PROJECT/dev/phpunit`; + $ret=`rm -fr $BUILDROOT/$FILENAMETGZ2/$PROJECT/doc/flyer`; + $ret=`rm -fr $BUILDROOT/$FILENAMETGZ2/$PROJECT/doc/font`; + $ret=`rm -fr $BUILDROOT/$FILENAMETGZ2/$PROJECT/doc/tshirt`; + $ret=`rm -fr $BUILDROOT/$FILENAMETGZ2/$PROJECT/doc/rollup`; + $ret=`rm -fr $BUILDROOT/$FILENAMETGZ2/$PROJECT/test`; + $ret=`rm -fr $BUILDROOT/$FILENAMETGZ2/$PROJECT/htdocs/cashdesk/include/jscalendar/doc/html/CVS`; + $ret=`rm -fr $BUILDROOT/$FILENAMETGZ2/$PROJECT/htdocs/cashdesk/include/jscalendar/skins/aqua/CVS`; + $ret=`rm -fr $BUILDROOT/$FILENAMETGZ2/$PROJECT/htdocs/includes/ckeditor/plugins/*/dialogs/CVS`; + $ret=`rm -fr $BUILDROOT/$FILENAMETGZ2/$PROJECT/htdocs/includes/ckeditor/plugins/*/images/CVS`; + $ret=`rm -fr $BUILDROOT/$FILENAMETGZ2/$PROJECT/htdocs/includes/fpdf/fpdf`; + $ret=`rm -fr $BUILDROOT/$FILENAMETGZ2/$PROJECT/htdocs/includes/nusoap/lib/Mail`; + $ret=`rm -fr $BUILDROOT/$FILENAMETGZ2/$PROJECT/htdocs/includes/odtphp/zip/.svn`; + $ret=`rm -fr $BUILDROOT/$FILENAMETGZ2/$PROJECT/htdocs/includes/odtphp/zip/pclzip/.svn`; + $ret=`rm -fr $BUILDROOT/$FILENAMETGZ2/$PROJECT/htdocs/includes/smarty`; + $ret=`rm -f $BUILDROOT/$FILENAMETGZ2/$PROJECT/COPYING`; + $ret=`rm -f $BUILDROOT/$FILENAMETGZ2/$PROJECT/htdocs/includes/barcode/php-barcode/genbarcode/genbarcode`; + # To remove once stable + $ret=`rm -fr $BUILDROOT/$FILENAMETGZ2/$PROJECT/htdocs/htdocs/theme/bureau2crea`; + + # Apache conf files + #print "Copy apache.conf file into $BUILDROOT/$FILENAMETGZ2/etc/$PROJECT/apache.conf\n"; + #$ret=`mkdir -p "$BUILDROOT/$FILENAMETGZ2/etc/$PROJECT"`; + #$ret=`cp "$SOURCE/build/deb/apache.conf" "$BUILDROOT/$FILENAMETGZ2/etc/$PROJECT/apache.conf"`; + + # Dolibarr conf files + # TODO + + # dolibarr.desktop + #print "Create directory $BUILDROOT/$FILENAMETGZ2/usr/share/applications\n"; + #$ret=`mkdir -p "$BUILDROOT/$FILENAMETGZ2/usr/share/applications"`; + #print "Copy desktop file into $BUILDROOT/$FILENAMETGZ2/usr/share/applications/dolibarr.desktop\n"; + #$ret=`cp "$SOURCE/build/rpm/dolibarr.desktop" "$BUILDROOT/$FILENAMETGZ2/usr/share/applications/dolibarr.desktop"`; + + # pixmap + #print "Create directory $BUILDROOT/$FILENAMETGZ2/usr/share/pixmaps\n"; + #$ret=`mkdir -p "$BUILDROOT/$FILENAMETGZ2/usr/share/pixmaps"`; + #print "Copy pixmap file into $BUILDROOT/$FILENAMETGZ2/usr/share/pixmaps/dolibarr.xpm\n"; + #$ret=`cp "$SOURCE/doc/images/dolibarr.xpm" "$BUILDROOT/$FILENAMETGZ2/usr/share/pixmaps/dolibarr.xpm"`; + + # Set owners + print "Set owners on files/dir\n"; + $ret=`chown -R root.root $BUILDROOT/$FILENAMETGZ2`; + + print "Set permissions on files/dir\n"; + $ret=`chmod -R 755 $BUILDROOT/$FILENAMETGZ2`; + $cmd="find $BUILDROOT/$FILENAMETGZ2 -type f -exec chmod 644 {} \\; "; + $ret=`$cmd`; + $cmd="find $BUILDROOT/$FILENAMETGZ2/build -name '*.php' -type f -exec chmod 755 {} \\; "; + $ret=`$cmd`; + $cmd="find $BUILDROOT/$FILENAMETGZ2/build -name '*.pl' -type f -exec chmod 755 {} \\; "; + $ret=`$cmd`; + $cmd="find $BUILDROOT/$FILENAMETGZ2/dev -name '*.php' -type f -exec chmod 755 {} \\; "; + $ret=`$cmd`; + $ret=`chmod -R 644 $BUILDROOT/$FILENAMETGZ2/dev/translation/langAutoParser.class.php`; + $ret=`chmod -R 644 $BUILDROOT/$FILENAMETGZ2/dev/skeletons/skeleton_page.php`; + $ret=`chmod -R 644 $BUILDROOT/$FILENAMETGZ2/dev/skeletons/modMyModule.class.php`; + $ret=`chmod -R 644 $BUILDROOT/$FILENAMETGZ2/dev/skeletons/skeleton_class.class.php`; + $cmd="find $BUILDROOT/$FILENAMETGZ2/scripts -name '*.php' -type f -exec chmod 755 {} \\; "; + $ret=`$cmd`; + $cmd="find $BUILDROOT/$FILENAMETGZ2/htdocs/includes/geoip -name 'sample*.php' -type f -exec chmod 755 {} \\; "; + $ret=`$cmd`; + $cmd="find $BUILDROOT/$FILENAMETGZ2/htdocs/includes/fckeditor/editor/dialog/fck_spellerpages/spellerpages/server-scripts -name '*.pl' -type f -exec chmod 755 {} \\; "; + $ret=`$cmd`; + + # Build tgz print "Compress $FILENAMETGZ2 into $FILENAMETGZ2.tgz...\n"; $ret=`tar --exclude-from "$SOURCE/build/tgz/tar_exclude.txt" --directory "$BUILDROOT" -czvf "$BUILDROOT/$FILENAMETGZ2.tgz" $FILENAMETGZ2`; @@ -445,11 +563,17 @@ if ($nboftargetok) { print "Move $RPMDIR/RPMS/".$ARCH."/".$FILENAMETGZ2."-".$RPMSUBVERSION.".".$ARCH.".rpm into $DESTI/".$FILENAMETGZ2."-".$RPMSUBVERSION.".".$ARCH.".rpm\n"; $cmd="mv \"$RPMDIR/RPMS/".$ARCH."/".$FILENAMETGZ2."-".$RPMSUBVERSION.".".$ARCH.".rpm\" \"$DESTI/".$FILENAMETGZ2."-".$RPMSUBVERSION.".".$ARCH.".rpm\""; $ret=`$cmd`; + print "Move $RPMDIR/SRPMS/".$FILENAMETGZ2."-".$RPMSUBVERSION.".src.rpm into $DESTI/".$FILENAMETGZ2."-".$RPMSUBVERSION.".src.rpm\n"; + $cmd="mv \"$RPMDIR/SRPMS/".$FILENAMETGZ2."-".$RPMSUBVERSION.".src.rpm\" \"$DESTI/".$FILENAMETGZ2."-".$RPMSUBVERSION.".src.rpm\""; + $ret=`$cmd`; + next; } if ($target eq 'DEB') { + $olddir=getcwd(); + $newbuild = $BUILD; $newbuild =~ s/(dev|alpha)/1/gi; # dev $newbuild =~ s/beta/2/gi; # beta @@ -457,9 +581,12 @@ if ($nboftargetok) { if ($newbuild !~ /-/) { $newbuild.='-4'; } # finale # now newbuild is 0-1 or 0-4 for example print "Version is $MAJOR.$MINOR.$newbuild\n"; - - print "Remove target $FILENAMEDEB.deb...\n"; - unlink("$DESTI/$FILENAMEDEB.deb"); + $build = $newbuild; + $build =~ s/-.*$//g; + # now build is 0 for example + + print "Remove target ${FILENAMEDEB}_all.deb...\n"; + unlink("$DESTI/${FILENAMEDEB}_all.deb"); #rmdir "$BUILDROOT/$PROJECT.tmp"; $ret=`rm -fr $BUILDROOT/$PROJECT.tmp`; @@ -477,6 +604,9 @@ if ($nboftargetok) { $ret=`cp -f "$SOURCE/build/deb/postinst" "$BUILDROOT/$PROJECT.tmp/DEBIAN"`; $ret=`cp -f "$SOURCE/build/deb/postrm" "$BUILDROOT/$PROJECT.tmp/DEBIAN"`; $ret=`cp -f "$SOURCE/build/deb/templates" "$BUILDROOT/$PROJECT.tmp/DEBIAN"`; + $ret=`cp -fr "$SOURCE/build/deb/po" "$BUILDROOT/$PROJECT.tmp/DEBIAN"`; + $ret=`rm -fr "$BUILDROOT/$PROJECT.tmp/DEBIAN/po/CVS*"`; + print "Edit version in file $BUILDROOT/$PROJECT.tmp/DEBIAN/control\n"; open (SPECFROM,"<$SOURCE/build/deb/control.DEBIAN") || die "Error"; open (SPECTO,">$BUILDROOT/$PROJECT.tmp/DEBIAN/control") || die "Error"; @@ -489,22 +619,49 @@ if ($nboftargetok) { print "Version set to $MAJOR.$MINOR.$newbuild\n"; print "Remove other files\n"; + $ret=`rm -f $BUILDROOT/$PROJECT.tmp/usr/share/$PROJECT/COPYRIGHT`; + $ret=`rm -f $BUILDROOT/$PROJECT.tmp/usr/share/$PROJECT/INSTALL`; + $ret=`rm -f $BUILDROOT/$PROJECT.tmp/usr/share/$PROJECT/README`; + $ret=`rm -f $BUILDROOT/$PROJECT.tmp/usr/share/$PROJECT/README-FR`; + $ret=`rm -f $BUILDROOT/$PROJECT.tmp/usr/share/$PROJECT/build/README`; + $ret=`rm -f $BUILDROOT/$PROJECT.tmp/usr/share/$PROJECT/build/README-FR`; $ret=`rm -fr $BUILDROOT/$PROJECT.tmp/usr/share/$PROJECT/build/aps`; + $ret=`rm -fr $BUILDROOT/$PROJECT.tmp/usr/share/$PROJECT/build/dmg`; + $ret=`rm -f $BUILDROOT/$PROJECT.tmp/usr/share/$PROJECT/build/pad/README`; + $ret=`rm -f $BUILDROOT/$PROJECT.tmp/usr/share/$PROJECT/build/tgz/README`; + $ret=`rm -f $BUILDROOT/$PROJECT.tmp/usr/share/$PROJECT/build/deb/README`; + #$ret=`rm -fr $BUILDROOT/$PROJECT.tmp/usr/share/$PROJECT/build/deb`; + $ret=`rm -fr $BUILDROOT/$PROJECT.tmp/usr/share/$PROJECT/build/deb/po`; + $ret=`rm -f $BUILDROOT/$PROJECT.tmp/usr/share/$PROJECT/build/deb/changelog`; + $ret=`rm -f $BUILDROOT/$PROJECT.tmp/usr/share/$PROJECT/build/deb/compat`; $ret=`rm -f $BUILDROOT/$PROJECT.tmp/usr/share/$PROJECT/build/deb/config`; $ret=`rm -f $BUILDROOT/$PROJECT.tmp/usr/share/$PROJECT/build/deb/control.*`; - $ret=`rm -f $BUILDROOT/$PROJECT.tmp/usr/share/$PROJECT/build/deb/postinst`; + $ret=`rm -f $BUILDROOT/$PROJECT.tmp/usr/share/$PROJECT/build/deb/copyright`; + $ret=`rm -f $BUILDROOT/$PROJECT.tmp/usr/share/$PROJECT/build/deb/dolibarr.desktop`; + $ret=`rm -f $BUILDROOT/$PROJECT.tmp/usr/share/$PROJECT/build/deb/dolibarr.menu`; + $ret=`rm -f $BUILDROOT/$PROJECT.tmp/usr/share/$PROJECT/build/deb/format`; + $ret=`rm -f $BUILDROOT/$PROJECT.tmp/usr/share/$PROJECT/build/deb/install`; + $ret=`rm -f $BUILDROOT/$PROJECT.tmp/usr/share/$PROJECT/build/deb/menu`; $ret=`rm -f $BUILDROOT/$PROJECT.tmp/usr/share/$PROJECT/build/deb/postrm`; + $ret=`rm -f $BUILDROOT/$PROJECT.tmp/usr/share/$PROJECT/build/deb/postinst`; $ret=`rm -f $BUILDROOT/$PROJECT.tmp/usr/share/$PROJECT/build/deb/rules`; + $ret=`rm -f $BUILDROOT/$PROJECT.tmp/usr/share/$PROJECT/build/deb/README.debian`; + $ret=`rm -f $BUILDROOT/$PROJECT.tmp/usr/share/$PROJECT/build/deb/templates`; + $ret=`rm -f $BUILDROOT/$PROJECT.tmp/usr/share/$PROJECT/build/deb/templates.futur`; + $ret=`rm -f $BUILDROOT/$PROJECT.tmp/usr/share/$PROJECT/build/deb/wash`; + $ret=`rm -fr $BUILDROOT/$PROJECT.tmp/usr/share/$PROJECT/build/doap`; + $ret=`rm -fr $BUILDROOT/$PROJECT.tmp/usr/share/$PROJECT/build/exe`; + $ret=`rm -fr $BUILDROOT/$PROJECT.tmp/usr/share/$PROJECT/build/live`; + $ret=`rm -fr $BUILDROOT/$PROJECT.tmp/usr/share/$PROJECT/build/patch`; $ret=`rm -fr $BUILDROOT/$PROJECT.tmp/usr/share/$PROJECT/build/perl`; - $ret=`rm -fr $BUILDROOT/$PROJECT.tmp/usr/share/$PROJECT/build/dmg`; + $ret=`rm -fr $BUILDROOT/$PROJECT.tmp/usr/share/$PROJECT/build/rpm`; + $ret=`rm -fr $BUILDROOT/$PROJECT.tmp/usr/share/$PROJECT/build/zip`; $ret=`rm -fr $BUILDROOT/$PROJECT.tmp/usr/share/$PROJECT/dev/dbmodel`; $ret=`rm -fr $BUILDROOT/$PROJECT.tmp/usr/share/$PROJECT/dev/fpdf`; $ret=`rm -fr $BUILDROOT/$PROJECT.tmp/usr/share/$PROJECT/dev/initdata`; $ret=`rm -fr $BUILDROOT/$PROJECT.tmp/usr/share/$PROJECT/dev/iso-normes`; $ret=`rm -fr $BUILDROOT/$PROJECT.tmp/usr/share/$PROJECT/dev/phpcheckstyle`; $ret=`rm -fr $BUILDROOT/$PROJECT.tmp/usr/share/$PROJECT/dev/phpunit`; - $ret=`rm -fr $BUILDROOT/$PROJECT.tmp/usr/share/$PROJECT/dev/uml`; - $ret=`rm -fr $BUILDROOT/$PROJECT.tmp/usr/share/$PROJECT/dev/xdebug`; $ret=`rm -fr $BUILDROOT/$PROJECT.tmp/usr/share/$PROJECT/doc/flyer`; $ret=`rm -fr $BUILDROOT/$PROJECT.tmp/usr/share/$PROJECT/doc/font`; $ret=`rm -fr $BUILDROOT/$PROJECT.tmp/usr/share/$PROJECT/doc/tshirt`; @@ -519,12 +676,23 @@ 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 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"`; + 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"; $ret=`mkdir -p "$BUILDROOT/$PROJECT.tmp/usr/share/applications"`; @@ -540,16 +708,7 @@ if ($nboftargetok) { print "Create directory $BUILDROOT/$PROJECT.tmp/usr/share/doc/$PROJECT\n"; $ret=`mkdir -p "$BUILDROOT/$PROJECT.tmp/usr/share/doc/$PROJECT"`; - print "Copy README file into $BUILDROOT/$PROJECT.tmp/DEBIAN\n"; - $ret=`cp "$SOURCE/README" "$BUILDROOT/$PROJECT.tmp/usr/share/doc/$PROJECT/README"`; - - print "Copy copyright file into $BUILDROOT/$PROJECT.tmp/usr/share/doc/$PROJECT/copyright\n"; - $ret=`cp "$SOURCE/build/deb/copyright" "$BUILDROOT/$PROJECT.tmp/usr/share/doc/$PROJECT/copyright"`; - - # copyright - $ret=`gzip -9 -c "$SOURCE/build/deb/changelog" > $BUILDROOT/$PROJECT.tmp/usr/share/doc/$PROJECT/changelog.Debian.gz`; - $ret=`gzip -9 -c "$SOURCE/build/deb/changelog" > $BUILDROOT/$PROJECT.tmp/usr/share/doc/$PROJECT/changelog.gz`; - + # Set owners print "Set owners on files/dir\n"; $ret=`chown -R root.root $BUILDROOT/$PROJECT.tmp`; @@ -578,38 +737,49 @@ 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 - $cmd="dpkg -b $BUILDROOT/$PROJECT.tmp $BUILDROOT/${FILENAMEDEB}_all.deb"; - print "Launch DEB build ($cmd)\n"; - $ret=`$cmd`; - print $ret."\n"; + # 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"`; $ret=`rm -fr "$BUILDROOT/$PROJECT.tmp/DEBIAN"`; + $ret=`rm -fr "$BUILDROOT/$PROJECT.tmp/usr/share/$PROJECT/doc"`; print "Copy $SOURCE/build/deb/xxx to $BUILDROOT/$PROJECT.tmp/debian\n"; - $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/rules" "$BUILDROOT/$PROJECT.tmp/debian/rules"`; - $ret=`cp -f "$SOURCE/build/deb/copyright" "$BUILDROOT/$PROJECT.tmp/debian/copyright"`; - $ret=`cp -f "$SOURCE/build/deb/compat" "$BUILDROOT/$PROJECT.tmp/debian/compat"`; - $ret=`cp -f "$SOURCE/build/deb/format" "$BUILDROOT/$PROJECT.tmp/debian/source/format"`; - #$ret=`cp -f "$SOURCE/build/deb/postinst" "$BUILDROOT/$PROJECT.tmp/debian"`; - #$ret=`cp -f "$SOURCE/build/deb/postrm" "$BUILDROOT/$PROJECT.tmp/debian"`; - #$ret=`cp -f "$SOURCE/build/deb/templates" "$BUILDROOT/$PROJECT.tmp/debian"`; + # Add files for dpkg-source + $ret=`cp -f "$SOURCE/ChangeLog" "$BUILDROOT/$PROJECT.tmp/usr/share/doc/dolibarr/UserChangeLog"`; + $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"`; + $ret=`cp -f "$SOURCE/build/deb/compat" "$BUILDROOT/$PROJECT.tmp/debian/compat"`; + $ret=`cp -f "$SOURCE/build/deb/format" "$BUILDROOT/$PROJECT.tmp/debian/source/format"`; + $ret=`cp -fr "$SOURCE/build/deb/po" "$BUILDROOT/$PROJECT.tmp/debian/po"`; + $ret=`rm -fr "$BUILDROOT/$PROJECT.tmp/debian/po/CVS"`; + # Add files also required to build binary package with dpkg-buildpackages + $ret=`cp -f "$SOURCE/build/deb/config" "$BUILDROOT/$PROJECT.tmp/debian"`; + $ret=`cp -f "$SOURCE/build/deb/postinst" "$BUILDROOT/$PROJECT.tmp/debian"`; + $ret=`cp -f "$SOURCE/build/deb/postrm" "$BUILDROOT/$PROJECT.tmp/debian"`; + $ret=`cp -f "$SOURCE/build/deb/templates" "$BUILDROOT/$PROJECT.tmp/debian"`; - $build = $newbuild; - $build =~ s/-.*$//g; $cmd="mv $BUILDROOT/$PROJECT.tmp $BUILDROOT/$PROJECT-$MAJOR.$MINOR.$build"; $ret=`$cmd`; - $cmd="dpkg-source -b $BUILDROOT/$PROJECT-$MAJOR.$MINOR.$build"; - print "Launch DEB src build ($cmd)\n"; + + # 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"; + print "Launch DEB build ($cmd)\n"; $ret=`$cmd`; print $ret."\n"; @@ -617,13 +787,19 @@ if ($nboftargetok) { if ($OS =~ /windows/i) { - print "Move ${FILENAMEDEB}_all.deb to $DESTI/${FILENAMEDEB}_all.deb\n"; - $ret=`mv "$BUILDROOT/${FILENAMEDEB}_all.deb" "$DESTI/${FILENAMEDEB}_all.deb"`; + print "Move *_all.deb to $DESTI\n"; + $ret=`mv $BUILDROOT/*_all.deb "$DESTI/"`; + $ret=`mv $BUILDROOT/*.dsc "$DESTI/"`; + $ret=`mv $BUILDROOT/*.tar.gz "$DESTI/"`; + $ret=`mv $BUILDROOT/*.changes "$DESTI/"`; } else { - print "Move ${FILENAMEDEB}_all.deb to $DESTI/${FILENAMEDEB}_all.deb\n"; - $ret=`mv "$BUILDROOT/${FILENAMEDEB}_all.deb" "$DESTI/${FILENAMEDEB}_all.deb"`; + print "Move *_all.deb to $DESTI\n"; + $ret=`mv $BUILDROOT/*_all.deb "$DESTI/"`; + $ret=`mv $BUILDROOT/*.dsc "$DESTI/"`; + $ret=`mv $BUILDROOT/*.tar.gz "$DESTI/"`; + $ret=`mv $BUILDROOT/*.changes "$DESTI/"`; } next; } @@ -651,14 +827,21 @@ if ($nboftargetok) { $ret=`$cmd`; print "Remove other files\n"; + $ret=`rm -fr $BUILDROOT/$PROJECT.tmp/$PROJECT/build/deb`; + $ret=`rm -fr $BUILDROOT/$PROJECT.tmp/$PROJECT/build/dmg`; + $ret=`rm -fr $BUILDROOT/$PROJECT.tmp/$PROJECT/build/doap`; + $ret=`rm -fr $BUILDROOT/$PROJECT.tmp/$PROJECT/build/exe`; + $ret=`rm -fr $BUILDROOT/$PROJECT.tmp/$PROJECT/build/live`; + $ret=`rm -fr $BUILDROOT/$PROJECT.tmp/$PROJECT/build/patch`; + $ret=`rm -fr $BUILDROOT/$PROJECT.tmp/$PROJECT/build/rpm`; + $ret=`rm -fr $BUILDROOT/$PROJECT.tmp/$PROJECT/build/zip`; + $ret=`rm -fr $BUILDROOT/$PROJECT.tmp/$PROJECT/build/perl`; $ret=`rm -fr $BUILDROOT/$PROJECT.tmp/$PROJECT/dev/dbmodel`; $ret=`rm -fr $BUILDROOT/$PROJECT.tmp/$PROJECT/dev/fpdf`; $ret=`rm -fr $BUILDROOT/$PROJECT.tmp/$PROJECT/dev/initdata`; $ret=`rm -fr $BUILDROOT/$PROJECT.tmp/$PROJECT/dev/iso-normes`; $ret=`rm -fr $BUILDROOT/$PROJECT.tmp/$PROJECT/dev/phpcheckstyle`; $ret=`rm -fr $BUILDROOT/$PROJECT.tmp/$PROJECT/dev/phpunit`; - $ret=`rm -fr $BUILDROOT/$PROJECT.tmp/$PROJECT/dev/uml`; - $ret=`rm -fr $BUILDROOT/$PROJECT.tmp/$PROJECT/dev/xdebug`; $ret=`rm -fr $BUILDROOT/$PROJECT.tmp/$PROJECT/doc/flyer`; $ret=`rm -fr $BUILDROOT/$PROJECT.tmp/$PROJECT/doc/font`; $ret=`rm -fr $BUILDROOT/$PROJECT.tmp/$PROJECT/doc/tshirt`; diff --git a/dev/skeletons/modMyModule.class.php b/dev/skeletons/modMyModule.class.php index 3cc548e1c0a..d7172d651f0 100644 --- a/dev/skeletons/modMyModule.class.php +++ b/dev/skeletons/modMyModule.class.php @@ -27,7 +27,7 @@ * \file htdocs/includes/modules/modMyModule.class.php * \ingroup mymodule * \brief Description and activation file for module MyModule - * \version $Id: modMyModule.class.php,v 1.66 2011/07/31 22:21:58 eldy Exp $ + * \version $Id: modMyModule.class.php,v 1.67 2011/08/01 13:26:21 hregis Exp $ */ include_once(DOL_DOCUMENT_ROOT ."/includes/modules/DolibarrModules.class.php"); @@ -72,7 +72,7 @@ class modMyModule extends DolibarrModules // If file is in module/img directory under name object_pictovalue.png, use this->picto='pictovalue@module' $this->picto='generic'; - // Defined if the directory /mymodule/inc/triggers/ contains triggers or not + // Defined if the directory /mymodule/includes/triggers/ contains triggers or not $this->triggers = 0; // Data directories to create when module is enabled. diff --git a/htdocs/admin/boxes.php b/htdocs/admin/boxes.php index 718c842d046..34e7f48cea8 100644 --- a/htdocs/admin/boxes.php +++ b/htdocs/admin/boxes.php @@ -20,7 +20,7 @@ /** * \file htdocs/admin/boxes.php * \brief Page to setup boxes - * \version $Id: boxes.php,v 1.72 2011/07/31 22:23:22 eldy Exp $ + * \version $Id: boxes.php,v 1.73 2011/08/01 13:26:22 hregis Exp $ */ require("../main.inc.php"); @@ -278,7 +278,7 @@ if ($resql) { $boxname = $regs[1]; $module = $regs[2]; - $sourcefile = "/".$module."/inc/boxes/".$boxname.".php"; + $sourcefile = "/".$module."/includes/boxes/".$boxname.".php"; } else { @@ -394,7 +394,7 @@ if ($resql) { $boxname = $regs[1]; $module = $regs[2]; - $sourcefile = "/".$module."/inc/boxes/".$boxname.".php"; + $sourcefile = "/".$module."/includes/boxes/".$boxname.".php"; } else { @@ -470,5 +470,5 @@ print ''; $db->close(); -llxFooter('$Date: 2011/07/31 22:23:22 $ - $Revision: 1.72 $'); +llxFooter('$Date: 2011/08/01 13:26:22 $ - $Revision: 1.73 $'); ?> diff --git a/htdocs/admin/modules.php b/htdocs/admin/modules.php index a907f47663a..671bd69a0e4 100644 --- a/htdocs/admin/modules.php +++ b/htdocs/admin/modules.php @@ -3,7 +3,7 @@ * Copyright (C) 2003 Jean-Louis Bergamo * Copyright (C) 2004-2010 Laurent Destailleur * Copyright (C) 2004 Eric Seigne - * Copyright (C) 2005-2010 Regis Houssin + * Copyright (C) 2005-2011 Regis Houssin * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -22,7 +22,7 @@ /** * \file htdocs/admin/modules.php * \brief Page to activate/disable all modules - * \version $Id: modules.php,v 1.156 2011/07/31 22:23:22 eldy Exp $ + * \version $Id: modules.php,v 1.157 2011/08/01 12:25:15 hregis Exp $ */ require("../main.inc.php"); @@ -79,12 +79,35 @@ $modules = array(); $orders = array(); $categ = array(); $dirmod = array(); +$modulesdir = array(); $i = 0; // is a sequencer of modules found $j = 0; // j is module number. Automatically affected if module number not defined. -foreach ($conf->file->dol_document_root as $dirroot) -{ - $dir = $dirroot . "/includes/modules/"; +foreach ($conf->file->dol_document_root as $type => $dirroot) +{ + $modulesdir[] = $dirroot . "/includes/modules/"; + + if ($type == 'alt') + { + $althandle=@opendir($dirroot); + if (is_resource($althandle)) + { + while (($file = readdir($althandle))!==false) + { + if (is_dir($dirroot.'/'.$file) && substr($file, 0, 1) <> '.' && substr($file, 0, 3) <> 'CVS' && $file != 'includes') + { + if (is_dir($dirroot . '/' . $file . '/includes/modules/')) + { + $modulesdir[] = $dirroot . '/' . $file . '/includes/modules/'; + } + } + } + } + } +} + +foreach ($modulesdir as $dir) +{ // Load modules attributes in arrays (name, numero, orders) from dir directory //print $dir."\n
"; dol_syslog("Scan directory ".$dir." for modules"); @@ -449,5 +472,5 @@ print ''; $db->close(); -llxFooter('$Date: 2011/07/31 22:23:22 $ - $Revision: 1.156 $'); +llxFooter('$Date: 2011/08/01 12:25:15 $ - $Revision: 1.157 $'); ?> diff --git a/htdocs/admin/perms.php b/htdocs/admin/perms.php index bee00b52906..6af9b54e7f0 100644 --- a/htdocs/admin/perms.php +++ b/htdocs/admin/perms.php @@ -21,7 +21,7 @@ * \file htdocs/admin/perms.php * \ingroup core * \brief Page d'administration/configuration des permissions par defaut - * \version $Id: perms.php,v 1.42 2011/07/31 22:23:26 eldy Exp $ + * \version $Id: perms.php,v 1.43 2011/08/01 12:53:37 hregis Exp $ */ require("../main.inc.php"); @@ -76,10 +76,34 @@ $db->begin(); // Charge les modules soumis a permissions $modules = array(); -foreach ($conf->file->dol_document_root as $dirroot) -{ - $dir = $dirroot . "/includes/modules/"; +$modulesdir = array(); +foreach ($conf->file->dol_document_root as $type => $dirroot) +{ + $modulesdir[] = $dirroot . "/includes/modules/"; + + if ($type == 'alt') + { + $handle=@opendir($dirroot); + if (is_resource($handle)) + { + while (($file = readdir($handle))!==false) + { + if (is_dir($dirroot.'/'.$file) && substr($file, 0, 1) <> '.' && substr($file, 0, 3) <> 'CVS' && $file != 'includes') + { + if (is_dir($dirroot . '/' . $file . '/includes/modules/')) + { + $modulesdir[] = $dirroot . '/' . $file . '/includes/modules/'; + } + } + } + closedir($handle); + } + } +} + +foreach ($modulesdir as $dir) +{ // Load modules attributes in arrays (name, numero, orders) from dir directory //print $dir."\n
"; $handle=@opendir($dir); @@ -194,5 +218,5 @@ print ''; $db->close(); -llxFooter('$Date: 2011/07/31 22:23:26 $ - $Revision: 1.42 $'); +llxFooter('$Date: 2011/08/01 12:53:37 $ - $Revision: 1.43 $'); ?> diff --git a/htdocs/boxes.php b/htdocs/boxes.php index 2affdf654d3..d426e618377 100644 --- a/htdocs/boxes.php +++ b/htdocs/boxes.php @@ -22,7 +22,7 @@ * \brief File of class to manage widget boxes * \author Rodolphe Qiedeville * \author Laurent Destailleur - * \version $Id: boxes.php,v 1.54 2011/07/31 23:19:04 eldy Exp $ + * \version $Id: boxes.php,v 1.55 2011/08/01 13:26:21 hregis Exp $ */ @@ -220,7 +220,7 @@ class InfoBox { $boxname = $regs[1]; $module = $regs[2]; - $sourcefile = dol_buildpath("/".$module."/inc/boxes/".$boxname.".php"); + $sourcefile = dol_buildpath("/".$module."/includes/boxes/".$boxname.".php"); } else { @@ -281,7 +281,7 @@ class InfoBox { $boxname = $regs[1]; $module = $regs[2]; - $sourcefile = "/".$module."/inc/boxes/".$boxname.".php"; + $sourcefile = "/".$module."/includes/boxes/".$boxname.".php"; } else { diff --git a/htdocs/comm/action/index.php b/htdocs/comm/action/index.php index 05e52bded62..28e45b28595 100644 --- a/htdocs/comm/action/index.php +++ b/htdocs/comm/action/index.php @@ -16,15 +16,14 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + * along with this program. If not, see . */ /** * \file htdocs/comm/action/index.php * \ingroup agenda * \brief Home page of calendar events - * \version $Id: index.php,v 1.183 2011/07/22 06:51:31 simnandez Exp $ + * \version $Id: index.php,v 1.184 2011/07/31 22:23:20 eldy Exp $ */ require("../../main.inc.php"); @@ -786,7 +785,7 @@ $("#actionagenda_vcal_link").attr("href","/public/agenda/agendaexport.php?format '; */ -llxFooter('$Date: 2011/07/22 06:51:31 $ - $Revision: 1.183 $'); +llxFooter('$Date: 2011/07/31 22:23:20 $ - $Revision: 1.184 $'); /** diff --git a/htdocs/core/class/conf.class.php b/htdocs/core/class/conf.class.php index acb0b5d9167..c5664164e74 100644 --- a/htdocs/core/class/conf.class.php +++ b/htdocs/core/class/conf.class.php @@ -24,7 +24,7 @@ * \ingroup core * \brief File of class to manage storage of current setup * Config is stored into file conf.php - * \version $Id: conf.class.php,v 1.63 2011/07/31 23:45:13 eldy Exp $ + * \version $Id: conf.class.php,v 1.64 2011/08/01 13:26:22 hregis Exp $ */ @@ -144,13 +144,13 @@ class Conf elseif (preg_match('/^MAIN_MODULE_([A-Z_]+)_TRIGGERS$/i',$key,$reg)) { $modulename = strtolower($reg[1]); - $this->triggers_modules[] = '/'.$modulename.'/inc/triggers/'; // TODO Replace inc by includes to have same path than standard + $this->triggers_modules[] = '/'.$modulename.'/includes/triggers/'; } // If this is constant for login method activated by a module elseif (preg_match('/^MAIN_MODULE_([A-Z_]+)_LOGIN_METHOD$/i',$key,$reg)) { $modulename = strtolower($reg[1]); - $this->login_method_modules[] = DOL_DOCUMENT_ROOT.'/'.$modulename.'/inc/login/'; // TODO Replace inc by includes to have same path than standard + $this->login_method_modules[] = DOL_DOCUMENT_ROOT.'/'.$modulename.'/includes/login/'; } // If this is constant for hook activated by a module. Value is list of hooked tabs separated with : elseif (preg_match('/^MAIN_MODULE_([A-Z_]+)_HOOKS$/i',$key,$reg)) diff --git a/htdocs/core/class/html.form.class.php b/htdocs/core/class/html.form.class.php index 9bb44f40588..e24b3c7c717 100644 --- a/htdocs/core/class/html.form.class.php +++ b/htdocs/core/class/html.form.class.php @@ -23,15 +23,14 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + * along with this program. If not, see . */ /** * \file htdocs/core/class/html.form.class.php * \ingroup core * \brief File of class with all html predefined components - * \version $Id: html.form.class.php,v 1.191 2011/07/21 22:55:06 eldy Exp $ + * \version $Id: html.form.class.php,v 1.193 2011/07/31 23:45:14 eldy Exp $ */ @@ -161,8 +160,10 @@ class Form $htmltext=str_replace("\n","",$htmltext); $htmltext=str_replace('"',""",$htmltext); - $paramfortooltipimg=' class="classfortooltip'.($extracss?' '.$extracss:'').'" title="'.($noencodehtmltext?$htmltext:dol_escape_htmltag($htmltext,1)).'"'; // Attribut to put on td img tag to store tooltip - $paramfortooltiptd =($extracss?' class="'.$extracss.'"':''); // Attribut to put on td text tag + if ($tooltipon == 2 || $tooltipon == 3) $paramfortooltipimg=' class="classfortooltip'.($extracss?' '.$extracss:'').'" title="'.($noencodehtmltext?$htmltext:dol_escape_htmltag($htmltext,1)).'"'; // Attribut to put on td img tag to store tooltip + else $paramfortooltipimg =($extracss?' class="'.$extracss.'"':''); // Attribut to put on td text tag + if ($tooltipon == 1 || $tooltipon == 3) $paramfortooltiptd=' class="classfortooltip'.($extracss?' '.$extracss:'').'" title="'.($noencodehtmltext?$htmltext:dol_escape_htmltag($htmltext,1)).'"'; // Attribut to put on td tag to store tooltip + else $paramfortooltiptd =($extracss?' class="'.$extracss.'"':''); // Attribut to put on td text tag $s=""; if (empty($notabs)) $s.=''; @@ -677,7 +678,7 @@ class Form $sql = "SELECT s.rowid, s.name, s.firstname, s.poste FROM"; $sql.= " ".MAIN_DB_PREFIX ."socpeople as s"; $sql.= " WHERE entity = ".$conf->entity; - if ($socid) $sql.= " AND fk_soc=".$socid; + if ($socid > 0) $sql.= " AND fk_soc=".$socid; $sql.= " ORDER BY s.name ASC"; dol_syslog("Form::select_contacts sql=".$sql); diff --git a/htdocs/filefunc.inc.php b/htdocs/filefunc.inc.php index c7e0858fe09..3148174f5af 100755 --- a/htdocs/filefunc.inc.php +++ b/htdocs/filefunc.inc.php @@ -20,15 +20,14 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + * along with this program. If not, see . */ /** * \file htdocs/filefunc.inc.php * \ingroup core * \brief File that include conf.php file and functions.lib.php - * \version $Id: filefunc.inc.php,v 1.19 2011/07/21 22:11:30 eldy Exp $ + * \version $Id: filefunc.inc.php,v 1.21 2011/07/31 23:19:04 eldy Exp $ */ define('DOL_VERSION','3.1.0-beta'); // Also defined in htdocs/install/inc.php (Ex: x.y.z-alpha, x.y.z) @@ -61,8 +60,17 @@ error_reporting(E_ALL ^ E_NOTICE); //error_reporting(E_ALL); +$conffiletoshowshort = "conf.php"; +# Define localization of conf file +$conffile = "conf/conf.php"; +$conffiletoshow = "htdocs/conf/conf.php"; +# For debian/redhat like systems +#$conffile = "/etc/dolibarr/conf.php"; +#$conffiletoshow = "/etc/dolibarr/conf.php"; + + // Include configuration -$result=@include_once("conf/conf.php"); +$result=@include_once($conffile); if (! $result && ! empty($_SERVER["GATEWAY_INTERFACE"])) // If install not done and we are in a web session { header("Location: install/index.php"); diff --git a/htdocs/includes/modules/facture/doc/doc_generic_invoice_odt.modules.php b/htdocs/includes/modules/facture/doc/doc_generic_invoice_odt.modules.php index e42ecd75db5..7994f9ffcb4 100644 --- a/htdocs/includes/modules/facture/doc/doc_generic_invoice_odt.modules.php +++ b/htdocs/includes/modules/facture/doc/doc_generic_invoice_odt.modules.php @@ -12,8 +12,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + * along with this program. If not, see . * or see http://www.gnu.org/ */ @@ -22,7 +21,7 @@ * \ingroup societe * \brief File of class to build ODT documents for third parties * \author Laurent Destailleur - * \version $Id: doc_generic_invoice_odt.modules.php,v 1.19 2011/07/21 22:54:36 eldy Exp $ + * \version $Id: doc_generic_invoice_odt.modules.php,v 1.20 2011/07/31 23:28:15 eldy Exp $ */ require_once(DOL_DOCUMENT_ROOT."/includes/modules/facture/modules_facture.php"); diff --git a/htdocs/includes/modules/modWorkflow.class.php b/htdocs/includes/modules/modWorkflow.class.php index 42780551928..c7bab37ad4b 100644 --- a/htdocs/includes/modules/modWorkflow.class.php +++ b/htdocs/includes/modules/modWorkflow.class.php @@ -19,7 +19,7 @@ /** * \defgroup workflow Module workflow * \brief Workflow management - * \version $Id: modWorkflow.class.php,v 1.10 2011/07/31 23:28:10 eldy Exp $ + * \version $Id: modWorkflow.class.php,v 1.11 2011/08/01 13:26:22 hregis Exp $ */ /** @@ -68,7 +68,7 @@ class modWorkflow extends DolibarrModules // If file is in module/img directory under name object_pictovalue.png, use this->picto='pictovalue@module' $this->picto='technic'; - // Defined if the directory /mymodule/inc/triggers/ contains triggers or not + // Defined if the directory /mymodule/includes/triggers/ contains triggers or not $this->triggers = 1; // Data directories to create when module is enabled diff --git a/htdocs/includes/modules/societe/doc/doc_generic_odt.modules.php b/htdocs/includes/modules/societe/doc/doc_generic_odt.modules.php index 65e9a1ddd06..5cbad3302c7 100644 --- a/htdocs/includes/modules/societe/doc/doc_generic_odt.modules.php +++ b/htdocs/includes/modules/societe/doc/doc_generic_odt.modules.php @@ -12,8 +12,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + * along with this program. If not, see . * or see http://www.gnu.org/ */ @@ -22,7 +21,7 @@ * \ingroup societe * \brief File of class to build ODT documents for third parties * \author Laurent Destailleur - * \version $Id: doc_generic_odt.modules.php,v 1.32 2011/07/21 22:54:35 eldy Exp $ + * \version $Id: doc_generic_odt.modules.php,v 1.33 2011/07/31 23:28:18 eldy Exp $ */ require_once(DOL_DOCUMENT_ROOT."/includes/modules/societe/modules_societe.class.php"); diff --git a/htdocs/install/mysql/migration/3.0.0-3.1.0.sql b/htdocs/install/mysql/migration/3.0.0-3.1.0.sql index 70ce4611860..e32055ea452 100755 --- a/htdocs/install/mysql/migration/3.0.0-3.1.0.sql +++ b/htdocs/install/mysql/migration/3.0.0-3.1.0.sql @@ -1,5 +1,5 @@ -- --- $Id: 3.0.0-3.1.0.sql,v 1.80 2011/07/22 13:46:34 eldy Exp $ +-- $Id: 3.0.0-3.1.0.sql,v 1.84 2011/07/29 19:59:10 eldy Exp $ -- -- Be carefull to requests order. -- This file must be loaded by calling /install/index.php page @@ -25,8 +25,10 @@ ALTER TABLE llx_c_ziptown MODIFY fk_county integer NULL; ALTER TABLE llx_c_actioncomm ADD COLUMN position integer NOT NULL DEFAULT 0; ALTER TABLE llx_propal ADD COLUMN fk_demand_reason integer NULL DEFAULT 0; -ALTER TABLE llx_commande_fournisseur ADD COLUMN fk_cond_reglement integer NULL DEFAULT 0; -ALTER TABLE llx_commande_fournisseur ADD COLUMN fk_mode_reglement integer NULL DEFAULT 0; +ALTER TABLE llx_commande_fournisseur ADD COLUMN fk_cond_reglement integer NULL DEFAULT 0 after model_pdf; +ALTER TABLE llx_commande_fournisseur ADD COLUMN fk_mode_reglement integer NULL DEFAULT 0 after fk_cond_reglement; +ALTER TABLE llx_commande_fournisseur ADD COLUMN import_key varchar(14); + --ALTER TABLE llx_c_currencies ADD COLUMN symbole varchar(3) NOT NULL default ''; ALTER TABLE llx_commande_fournisseur MODIFY model_pdf varchar(255); @@ -129,6 +131,9 @@ ALTER TABLE llx_usergroup_user ADD CONSTRAINT fk_usergroup_user_fk_user FOR -- V4.1 DELETE FROM llx_usergroup_user WHERE fk_usergroup NOT IN (SELECT rowid from llx_usergroup); ALTER TABLE llx_usergroup_user ADD CONSTRAINT fk_usergroup_user_fk_usergroup FOREIGN KEY (fk_usergroup) REFERENCES llx_usergroup (rowid); +-- V4.1 DELETE FROM llx_product_fournisseur where fk_product NOT IN (SELECT rowid from llx_product); +ALTER TABLE llx_product_fournisseur ADD CONSTRAINT fk_product_fournisseur_fk_product FOREIGN KEY (fk_product) REFERENCES llx_product (rowid); + ALTER TABLE llx_commande ADD COLUMN ref_int varchar(30) AFTER ref_ext; ALTER TABLE llx_facture ADD COLUMN ref_int varchar(30) AFTER ref_ext; ALTER TABLE llx_societe ADD COLUMN ref_int varchar(60) AFTER ref_ext; @@ -147,6 +152,12 @@ ALTER TABLE llx_actioncomm ADD COLUMN entity integer DEFAULT 1 NOT NULL AFTER id ALTER TABLE llx_actioncomm ADD COLUMN fk_element integer DEFAULT NULL AFTER note; ALTER TABLE llx_actioncomm ADD COLUMN elementtype varchar(16) DEFAULT NULL AFTER fk_element; + +ALTER TABLE llx_c_regions MODIFY COLUMN cheflieu varchar(50); +ALTER TABLE llx_c_departements MODIFY COLUMN cheflieu varchar(50); + + +-- Table c_action_trigger DROP table llx_c_action_trigger; create table llx_c_action_trigger ( @@ -158,7 +169,6 @@ create table llx_c_action_trigger rang integer DEFAULT 0 )ENGINE=innodb; - ALTER TABLE llx_c_action_trigger ADD UNIQUE INDEX uk_action_trigger_code (code); INSERT INTO llx_c_action_trigger (rowid,code,label,description,elementtype,rang) VALUES (1,'FICHEINTER_VALIDATE','Validation fiche intervention','Executed when a intervention is validated','ficheinter',18); @@ -301,6 +311,13 @@ INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, nc INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('VER', 15401, '', 0, 'VER', 'Veracruz', 1); INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('YUC', 15401, '', 0, 'YUC', 'Yucatán', 1); INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('ZAC', 15401, '', 0, 'ZAC', 'Zacatecas', 1); +-- Formes juridiques Mexique +INSERT INTO llx_c_forme_juridique (fk_pays, code, libelle, active) VALUES (154, '15401', 'Sociedad en nombre colectivo', 1); +INSERT INTO llx_c_forme_juridique (fk_pays, code, libelle, active) VALUES (154, '15402', 'Sociedad en comandita simple', 1); +INSERT INTO llx_c_forme_juridique (fk_pays, code, libelle, active) VALUES (154, '15403', 'Sociedad de responsabilidad limitada', 1); +INSERT INTO llx_c_forme_juridique (fk_pays, code, libelle, active) VALUES (154, '15404', 'Sociedad anónima', 1); +INSERT INTO llx_c_forme_juridique (fk_pays, code, libelle, active) VALUES (154, '15405', 'Sociedad en comandita por acciones', 1); +INSERT INTO llx_c_forme_juridique (fk_pays, code, libelle, active) VALUES (154, '15406', 'Sociedad cooperativa', 1); --Add Colombie data (id pays=70) -- Regions Colombie @@ -376,6 +393,28 @@ insert into llx_c_tva(rowid,fk_pays,taux,recuperableonly,note,active) values (15 insert into llx_c_tva(rowid,fk_pays,taux,recuperableonly,note,active) values (1543,154, '10','0','VAT Frontero',1); +--Add Barbados data (id pays=46) +-- Region Barbados +INSERT INTO llx_c_regions (rowid, fk_pays, code_region, cheflieu, tncc, nom, active) VALUES (4601, 46, 4601, 'Bridgetown', 0, 'Barbados', 1); +-- Parish Barbados +INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('CC', 4601, 'Oistins', 0, 'CC', 'Christ Church', 1); +INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('SA', 4601, 'Greenland', 0, 'SA', 'Saint Andrew', 1); +INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('SG', 4601, 'Bulkeley', 0, 'SG', 'Saint George', 1); +INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('JA', 4601, 'Holetown', 0, 'JA', 'Saint James', 1); +INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('SJ', 4601, 'Four Roads', 0, 'SJ', 'Saint John', 1); +INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('SB', 4601, 'Bathsheba', 0, 'SB', 'Saint Joseph', 1); +INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('SL', 4601, 'Crab Hill', 0, 'SL', 'Saint Lucy', 1); +INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('SM', 4601, 'Bridgetown', 0, 'SM', 'Saint Michael', 1); +INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('SP', 4601, 'Speightstown', 0, 'SP', 'Saint Peter', 1); +INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('SC', 4601, 'Crane', 0, 'SC', 'Saint Philip', 1); +INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('ST', 4601, 'Hillaby', 0, 'ST', 'Saint Thomas', 1); +-- Currency Barbados +INSERT INTO llx_c_currencies ( code, code_iso, active, label ) VALUES ( 'BD', 'BBD', 1, 'Barbadian or Bajan Dollar'); +-- VAT Barbados +INSERT INTO llx_c_tva(rowid,fk_pays,taux,recuperableonly,note,active) VALUES (461,46, '0','0','No VAT',1); +INSERT INTO llx_c_tva(rowid,fk_pays,taux,recuperableonly,note,active) VALUES (462,46, '15','0','VAT 15%',1); +INSERT INTO llx_c_tva(rowid,fk_pays,taux,recuperableonly,note,active) VALUES (463,46, '7.5','0','VAT 7.5%',1); + update llx_actioncomm set elementtype='invoice' where elementtype='facture'; update llx_actioncomm set elementtype='order' where elementtype='commande'; update llx_actioncomm set elementtype='contract' where elementtype='contrat'; @@ -444,3 +483,4 @@ ALTER TABLE llx_don ADD phone_mobile varchar(24) after email; ALTER TABLE llx_don ADD phone varchar(24) after email; ALTER TABLE llx_user ADD civilite varchar(6) after entity; + diff --git a/htdocs/langs/ca_ES/admin.lang b/htdocs/langs/ca_ES/admin.lang index 87a8cd1edcc..24252ef481f 100644 --- a/htdocs/langs/ca_ES/admin.lang +++ b/htdocs/langs/ca_ES/admin.lang @@ -1246,9 +1246,9 @@ ClickToDialDesc=Aquest mòdul permet afegir una icona després del número de te CashDesk=TPV CashDeskSetup=Mòdul de configuració Terminal Punt de Venda CashDeskThirdPartyForSell=Tercer genéric a utilitzar per a les vendes -CashDeskBankAccountForSell=Compte a utilitzar per als cobraments en efectiu (caixa) -CashDeskBankAccountForCheque=Compte a utilitzar per als cobraments amb xecs -CashDeskBankAccountForCB=Compte a utilitzar per als cobraments amb targeta de crèdit +CashDeskBankAccountForSell=Compte per defecte a utilitzar per als cobraments en efectiu (caixa) +CashDeskBankAccountForCheque=Compte per defecte a utilitzar per als cobraments amb xecs +CashDeskBankAccountForCB=Compte per defecte a utilitzar per als cobraments amb targeta de crèdit CashDeskIdWareHouse=Magatzem a ultilitzar per a les vendes ##### Bookmark ##### BookmarkSetup=Configuració del mòdul Bookmark diff --git a/htdocs/langs/es_ES/admin.lang b/htdocs/langs/es_ES/admin.lang index eb268695a5c..c4ea6eac339 100644 --- a/htdocs/langs/es_ES/admin.lang +++ b/htdocs/langs/es_ES/admin.lang @@ -1246,9 +1246,9 @@ ClickToDialDesc=Este módulo permite agregar un icono después del número de te CashDesk=TPV CashDeskSetup=Configuración del módulo Terminal Punto de Venta CashDeskThirdPartyForSell=Tercero genérico a usar para la venta -CashDeskBankAccountForSell=Cuenta a utilizar para los cobros en efectivo (caja) -CashDeskBankAccountForCheque=Cuenta a utilizar para los cobros con cheques -CashDeskBankAccountForCB=Cuenta a utilizar para los cobros con tarjeta de crédito +CashDeskBankAccountForSell=Cuenta por defecto a utilizar para los cobros en efectivo (caja) +CashDeskBankAccountForCheque=Cuenta por defecto a utilizar para los cobros con cheques +CashDeskBankAccountForCB=Cuenta por defecto a utilizar para los cobros con tarjeta de crédito CashDeskIdWareHouse=Almacén a utilizar para las ventas ##### Bookmark ##### BookmarkSetup=Configuración del módulo Marcadores diff --git a/htdocs/lib/admin.lib.php b/htdocs/lib/admin.lib.php index c2d47f668da..4092c55ff2d 100644 --- a/htdocs/lib/admin.lib.php +++ b/htdocs/lib/admin.lib.php @@ -1,6 +1,6 @@ - * Copyright (C) 2005-2009 Regis Houssin + * Copyright (C) 2005-2011 Regis Houssin * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -20,7 +20,7 @@ /** * \file htdocs/lib/admin.lib.php * \brief Library of admin functions - * \version $Id: admin.lib.php,v 1.98 2011/07/31 23:25:40 eldy Exp $ + * \version $Id: admin.lib.php,v 1.99 2011/08/01 12:53:37 hregis Exp $ */ @@ -467,7 +467,7 @@ function dolibarr_set_const($db, $name, $value, $type='chaine', $visible=0, $not /** * \brief Define head array for tabs of security setup pages * \return Array of head - * \version $Id: admin.lib.php,v 1.98 2011/07/31 23:25:40 eldy Exp $ + * \version $Id: admin.lib.php,v 1.99 2011/08/01 12:53:37 hregis Exp $ */ function security_prepare_head() { @@ -615,16 +615,41 @@ function Activate($value,$withdeps=1) // Activate module if ($modName) { - $file = $modName . ".class.php"; + $modFile = $modName . ".class.php"; // Loop on each directory $found=false; - foreach ($conf->file->dol_document_root as $dol_document_root) + foreach ($conf->file->dol_document_root as $type => $dirroot) { - $dir = $dol_document_root."/includes/modules/"; + $modulesdir[] = $dirroot."/includes/modules/"; + + if ($type == 'alt') + { + $handle=@opendir($dirroot); + if (is_resource($handle)) + { + while (($file = readdir($handle))!==false) + { + if (is_dir($dirroot.'/'.$file) && substr($file, 0, 1) <> '.' && substr($file, 0, 3) <> 'CVS' && $file != 'includes') + { + if (is_dir($dirroot . '/' . $file . '/includes/modules/')) + { + $modulesdir[] = $dirroot . '/' . $file . '/includes/modules/'; + } + } + } + closedir($handle); + } + } + } - $found=@include_once($dir.$file); - if ($found) break; + foreach ($modulesdir as $dir) + { + if (file_exists($dir.$modFile)) + { + $found=@include_once($dir.$modFile); + if ($found) break; + } } $objMod = new $modName($db); @@ -700,20 +725,46 @@ function UnActivate($value,$requiredby=1) $modName = $value; $ret=''; + $modulesdir=array(); // Desactivation du module if ($modName) { - $file = $modName . ".class.php"; + $modFile = $modName . ".class.php"; // Loop on each directory $found=false; - foreach ($conf->file->dol_document_root as $dol_document_root) + foreach ($conf->file->dol_document_root as $type => $dirroot) { - $dir = $dol_document_root."/includes/modules/"; + $modulesdir[] = $dirroot."/includes/modules/"; + + if ($type == 'alt') + { + $handle=@opendir($dirroot); + if (is_resource($handle)) + { + while (($file = readdir($handle))!==false) + { + if (is_dir($dirroot.'/'.$file) && substr($file, 0, 1) <> '.' && substr($file, 0, 3) <> 'CVS' && $file != 'includes') + { + if (is_dir($dirroot . '/' . $file . '/includes/modules/')) + { + $modulesdir[] = $dirroot . '/' . $file . '/includes/modules/'; + } + } + } + closedir($handle); + } + } + } - $found=@include_once($dir.$file); - if ($found) break; + foreach ($modulesdir as $dir) + { + if (file_exists($dir.$modFile)) + { + $found=@include_once($dir.$modFile); + if ($found) break; + } } if ($found) diff --git a/htdocs/lib/agenda.lib.php b/htdocs/lib/agenda.lib.php index d47b327541d..029959a620c 100644 --- a/htdocs/lib/agenda.lib.php +++ b/htdocs/lib/agenda.lib.php @@ -14,15 +14,14 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + * along with this program. If not, see . * or see http://www.gnu.org/ */ /** * \file htdocs/lib/agenda.lib.php * \brief Set of function for the agenda module - * \version $Id: agenda.lib.php,v 1.42 2011/07/22 06:51:30 simnandez Exp $ + * \version $Id: agenda.lib.php,v 1.43 2011/07/31 23:25:33 eldy Exp $ */ diff --git a/htdocs/master.inc.php b/htdocs/master.inc.php index 1d5b4951490..eedd6a8841c 100644 --- a/htdocs/master.inc.php +++ b/htdocs/master.inc.php @@ -29,7 +29,7 @@ * \ingroup core * \brief File that defines environment for all Dolibarr process (pages or scripts) * This script reads the conf file, init $lang, $db and and empty $user - * \version $Id: master.inc.php,v 1.351 2011/07/31 23:19:04 eldy Exp $ + * \version $Id: master.inc.php,v 1.352 2011/08/01 12:25:14 hregis Exp $ */ @@ -70,14 +70,14 @@ $conf->file->character_set_client=strtoupper($force_charset_do_notuse); $conf->file->cookie_cryptkey = empty($dolibarr_main_cookie_cryptkey)?'':$dolibarr_main_cookie_cryptkey; // Define array of document root directories -$conf->file->dol_document_root=array(DOL_DOCUMENT_ROOT); +$conf->file->dol_document_root=array('main' => DOL_DOCUMENT_ROOT); if (! empty($dolibarr_main_document_root_alt)) { // dolibarr_main_document_root_alt contains several directories $values=preg_split('/[;,]/',$dolibarr_main_document_root_alt); foreach($values as $value) { - $conf->file->dol_document_root[]=$value; + $conf->file->dol_document_root['alt']=$value; } } diff --git a/htdocs/societe/soc.php b/htdocs/societe/soc.php index 1dfd99cc99e..ec5d660daef 100644 --- a/htdocs/societe/soc.php +++ b/htdocs/societe/soc.php @@ -25,7 +25,7 @@ * \file htdocs/societe/soc.php * \ingroup societe * \brief Third party card page - * \version $Id: soc.php,v 1.125 2011/07/31 23:22:57 eldy Exp $ + * \version $Id: soc.php,v 1.126 2011/08/01 00:38:49 eldy Exp $ */ require("../main.inc.php"); @@ -587,7 +587,8 @@ else if ($conf->fournisseur->enabled && (GETPOST("type")=='f' || GETPOST("type")=='')) { $object->fournisseur=1; } if (GETPOST("private")==1) { $object->particulier=1; } - $object->nom=$_POST["nom"]; + $object->name=$_POST["nom"]; + $object->nom=$_POST["nom"]; // deprecated $object->prenom=$_POST["prenom"]; $object->particulier=$_REQUEST["private"]; $object->prefix_comm=$_POST["prefix_comm"]; @@ -1093,7 +1094,8 @@ else if (! empty($_POST["nom"])) { // We overwrite with values if posted - $object->nom=$_POST["nom"]; + $object->name=$_POST["nom"]; + $object->nom=$_POST["nom"]; // deprecated $object->prefix_comm=$_POST["prefix_comm"]; $object->client=$_POST["client"]; $object->code_client=$_POST["code_client"]; @@ -1967,5 +1969,5 @@ else $db->close(); -llxFooter('$Date: 2011/07/31 23:22:57 $ - $Revision: 1.125 $'); +llxFooter('$Date: 2011/08/01 00:38:49 $ - $Revision: 1.126 $'); ?> \ No newline at end of file diff --git a/htdocs/theme/bureau2crea/style.css.php b/htdocs/theme/bureau2crea/style.css.php index 6d9f27d592d..c3403b8ca99 100644 --- a/htdocs/theme/bureau2crea/style.css.php +++ b/htdocs/theme/bureau2crea/style.css.php @@ -16,14 +16,13 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + * along with this program. If not, see . */ /** * \file htdocs/theme/bureau2crea/style.css.php * \brief Fichier de style CSS du theme bureau2crea - * \version $Id: style.css.php,v 1.40 2011/07/21 09:05:33 simnandez Exp $ + * \version $Id: style.css.php,v 1.41 2011/07/31 23:19:57 eldy Exp $ */ //if (! defined('NOREQUIREUSER')) define('NOREQUIREUSER','1'); // Not disabled cause need to load personalized language diff --git a/htdocs/user/group/perms.php b/htdocs/user/group/perms.php index e4e52c611b4..9edcafd59c0 100644 --- a/htdocs/user/group/perms.php +++ b/htdocs/user/group/perms.php @@ -22,7 +22,7 @@ /** * \file htdocs/user/group/perms.php * \brief Onglet user et permissions de la fiche utilisateur - * \version $Id: perms.php,v 1.39 2011/07/31 23:21:25 eldy Exp $ + * \version $Id: perms.php,v 1.40 2011/08/01 13:15:53 hregis Exp $ */ require("../../main.inc.php"); @@ -93,10 +93,34 @@ if ($_GET["id"]) // Charge les modules soumis a permissions $modules = array(); - foreach ($conf->file->dol_document_root as $dirroot) + $modulesdir = array(); + + foreach ($conf->file->dol_document_root as $type => $dirroot) + { + $modulesdir[] = $dirroot . "/includes/modules/"; + + if ($type == 'alt') + { + $handle=@opendir($dirroot); + if (is_resource($handle)) + { + while (($file = readdir($handle))!==false) + { + if (is_dir($dirroot.'/'.$file) && substr($file, 0, 1) <> '.' && substr($file, 0, 3) <> 'CVS' && $file != 'includes') + { + if (is_dir($dirroot . '/' . $file . '/includes/modules/')) + { + $modulesdir[] = $dirroot . '/' . $file . '/includes/modules/'; + } + } + } + closedir($handle); + } + } + } + + foreach ($modulesdir as $dir) { - $dir = $dirroot . "/includes/modules/"; - // Load modules attributes in arrays (name, numero, orders) from dir directory //print $dir."\n
"; $handle=@opendir($dir); @@ -292,5 +316,5 @@ if ($_GET["id"]) $db->close(); -llxFooter('$Date: 2011/07/31 23:21:25 $ - $Revision: 1.39 $'); +llxFooter('$Date: 2011/08/01 13:15:53 $ - $Revision: 1.40 $'); ?> diff --git a/htdocs/user/perms.php b/htdocs/user/perms.php index adb7fa764b6..47710b31d9d 100644 --- a/htdocs/user/perms.php +++ b/htdocs/user/perms.php @@ -22,7 +22,7 @@ /** * \file htdocs/user/perms.php * \brief Onglet user et permissions de la fiche utilisateur - * \version $Id: perms.php,v 1.56 2011/07/31 23:19:42 eldy Exp $ + * \version $Id: perms.php,v 1.57 2011/08/01 13:15:54 hregis Exp $ */ require("../main.inc.php"); @@ -120,12 +120,34 @@ $db->begin(); // Search all modules with permission and reload permissions def. $modules = array(); +$modulesdir = array(); -$listdir=$conf->file->dol_document_root; -foreach($listdir as $dirroot) +foreach ($conf->file->dol_document_root as $type => $dirroot) { - $dir=$dirroot."/includes/modules/"; + $modulesdir[] = $dirroot . "/includes/modules/"; + + if ($type == 'alt') + { + $handle=@opendir($dirroot); + if (is_resource($handle)) + { + while (($file = readdir($handle))!==false) + { + if (is_dir($dirroot.'/'.$file) && substr($file, 0, 1) <> '.' && substr($file, 0, 3) <> 'CVS' && $file != 'includes') + { + if (is_dir($dirroot . '/' . $file . '/includes/modules/')) + { + $modulesdir[] = $dirroot . '/' . $file . '/includes/modules/'; + } + } + } + closedir($handle); + } + } +} +foreach($modulesdir as $dir) +{ $handle=opendir($dir); if (is_resource($handle)) { @@ -373,5 +395,5 @@ print '
'; $db->close(); -llxFooter('$Date: 2011/07/31 23:19:42 $ - $Revision: 1.56 $'); +llxFooter('$Date: 2011/08/01 13:15:54 $ - $Revision: 1.57 $'); ?>