Browse Source

Merge pull request #2 from Dolibarr/develop

Up
ksar 4 years ago
parent
commit
4a974a1c9d
100 changed files with 1952 additions and 663 deletions
  1. 0 2
      .editorconfig
  2. 20 17
      .github/CONTRIBUTING.md
  3. 0 10
      .github/ISSUE_TEMPLATE/custom.md
  4. 17 0
      .github/workflows/exakat.yml
  5. 13 0
      .github/workflows/greetings-pr.yml.disabled
  6. 24 0
      .github/workflows/stale-issues-safe.yml
  7. 25 0
      .github/workflows/stale-issues.yml.disabled
  8. 15 1
      .gitignore
  9. 3 17
      .scrutinizer.yml
  10. 45 23
      .travis.yml
  11. 12 0
      .tx/config
  12. 10 9
      COPYRIGHT
  13. 978 9
      ChangeLog
  14. 1 0
      README-FR.md
  15. 43 28
      README.md
  16. 107 5
      SECURITY.md
  17. 28 15
      build/README
  18. 2 2
      build/debian/conf.php.install
  19. 1 1
      build/debian/control
  20. 1 0
      build/debian/install.forced.php.install
  21. 50 25
      build/docker/Dockerfile
  22. 9 3
      build/docker/README.md
  23. 55 23
      build/docker/docker-compose.yml
  24. 9 3
      build/docker/docker-run.sh
  25. 1 27
      build/doxygen/doxygen_footer.html
  26. 0 24
      build/doxygen/doxygen_header.html
  27. 28 26
      build/exe/doliwamp/Languages/MyCatalan.isl
  28. 3 2
      build/exe/doliwamp/Languages/MyEnglish.isl
  29. 2 2
      build/exe/doliwamp/Languages/MyFrench.isl
  30. 36 1
      build/exe/doliwamp/Languages/MyGerman.isl
  31. 26 24
      build/exe/doliwamp/Languages/MySpanish.isl
  32. 1 0
      build/exe/doliwamp/README.md
  33. 76 51
      build/exe/doliwamp/doliwamp.iss
  34. 202 222
      build/exe/doliwamp/httpd.conf.install
  35. 1 0
      build/exe/doliwamp/install.forced.php.install
  36. 8 3
      build/exe/doliwamp/install_services.bat.install
  37. 4 4
      build/exe/doliwamp/my.ini.install
  38. 0 0
      build/exe/doliwamp/mysql/columns_priv.MYD
  39. BIN
      build/exe/doliwamp/mysql/columns_priv.MYI
  40. BIN
      build/exe/doliwamp/mysql/columns_priv.frm
  41. BIN
      build/exe/doliwamp/mysql/db.MYD
  42. BIN
      build/exe/doliwamp/mysql/db.MYI
  43. BIN
      build/exe/doliwamp/mysql/db.frm
  44. 0 0
      build/exe/doliwamp/mysql/func.MYD
  45. BIN
      build/exe/doliwamp/mysql/func.MYI
  46. BIN
      build/exe/doliwamp/mysql/func.frm
  47. BIN
      build/exe/doliwamp/mysql/help_category.MYD
  48. BIN
      build/exe/doliwamp/mysql/help_category.MYI
  49. BIN
      build/exe/doliwamp/mysql/help_category.frm
  50. BIN
      build/exe/doliwamp/mysql/help_keyword.MYD
  51. BIN
      build/exe/doliwamp/mysql/help_keyword.MYI
  52. BIN
      build/exe/doliwamp/mysql/help_keyword.frm
  53. BIN
      build/exe/doliwamp/mysql/help_relation.MYD
  54. BIN
      build/exe/doliwamp/mysql/help_relation.MYI
  55. BIN
      build/exe/doliwamp/mysql/help_relation.frm
  56. BIN
      build/exe/doliwamp/mysql/help_topic.MYD
  57. BIN
      build/exe/doliwamp/mysql/help_topic.MYI
  58. BIN
      build/exe/doliwamp/mysql/help_topic.frm
  59. 0 0
      build/exe/doliwamp/mysql/host.MYD
  60. BIN
      build/exe/doliwamp/mysql/host.MYI
  61. BIN
      build/exe/doliwamp/mysql/host.frm
  62. 0 0
      build/exe/doliwamp/mysql/proc.MYD
  63. BIN
      build/exe/doliwamp/mysql/proc.MYI
  64. BIN
      build/exe/doliwamp/mysql/proc.frm
  65. 0 0
      build/exe/doliwamp/mysql/procs_priv.MYD
  66. BIN
      build/exe/doliwamp/mysql/procs_priv.MYI
  67. BIN
      build/exe/doliwamp/mysql/procs_priv.frm
  68. 0 0
      build/exe/doliwamp/mysql/tables_priv.MYD
  69. BIN
      build/exe/doliwamp/mysql/tables_priv.MYI
  70. BIN
      build/exe/doliwamp/mysql/tables_priv.frm
  71. 0 0
      build/exe/doliwamp/mysql/time_zone.MYD
  72. BIN
      build/exe/doliwamp/mysql/time_zone.MYI
  73. BIN
      build/exe/doliwamp/mysql/time_zone.frm
  74. 0 0
      build/exe/doliwamp/mysql/time_zone_leap_second.MYD
  75. BIN
      build/exe/doliwamp/mysql/time_zone_leap_second.MYI
  76. BIN
      build/exe/doliwamp/mysql/time_zone_leap_second.frm
  77. 0 0
      build/exe/doliwamp/mysql/time_zone_name.MYD
  78. BIN
      build/exe/doliwamp/mysql/time_zone_name.MYI
  79. BIN
      build/exe/doliwamp/mysql/time_zone_name.frm
  80. 0 0
      build/exe/doliwamp/mysql/time_zone_transition.MYD
  81. BIN
      build/exe/doliwamp/mysql/time_zone_transition.MYI
  82. BIN
      build/exe/doliwamp/mysql/time_zone_transition.frm
  83. 0 0
      build/exe/doliwamp/mysql/time_zone_transition_type.MYD
  84. BIN
      build/exe/doliwamp/mysql/time_zone_transition_type.MYI
  85. BIN
      build/exe/doliwamp/mysql/time_zone_transition_type.frm
  86. BIN
      build/exe/doliwamp/mysql/user.MYD
  87. BIN
      build/exe/doliwamp/mysql/user.MYI
  88. BIN
      build/exe/doliwamp/mysql/user.frm
  89. 1 1
      build/exe/doliwamp/mysqlinitpassword.bat.install
  90. 2 2
      build/exe/doliwamp/mysqltestinstall.bat.install
  91. 31 48
      build/exe/doliwamp/php.ini.install
  92. 2 1
      build/exe/doliwamp/startdoliwamp_manual_donotuse.bat.install
  93. 3 1
      build/exe/doliwamp/uninstall_services.bat.install
  94. 2 2
      build/generate_filelist_xml.php
  95. 8 3
      build/makepack-dolibarr.pl
  96. 18 12
      build/obs/README
  97. 7 6
      build/pdf/README.txt
  98. 16 4
      build/perl/virtualmin/dolibarr.pl
  99. 3 2
      build/rpm/dolibarr_fedora.spec
  100. 3 2
      build/rpm/dolibarr_generic.spec

+ 0 - 2
.editorconfig

@@ -9,8 +9,6 @@ charset = utf-8
 end_of_line = lf
 insert_final_newline = true
 
-# PHP PSR-2 Coding Standards
-# http://www.php-fig.org/psr/psr-2/
 [*.php]
 indent_style = tab
 indent_size = 4

+ 20 - 17
.github/CONTRIBUTING.md

@@ -4,7 +4,7 @@ How to contribute to Dolibarr
 Bug reports and feature requests
 --------------------------------
 
-<a name="not-a-support-forum"></a>*Note*: Issues are not a support forum. If you need help using the software, please use [the forums](http://www.dolibarr.org/forum).
+<a name="not-a-support-forum"></a>*Note*: Issues are not a support forum. If you need help using the software, please use [the forums](https://www.dolibarr.org/forum).
 
 Issues are managed on [GitHub](https://github.com/Dolibarr/dolibarr/issues).
 
@@ -56,7 +56,7 @@ You can add it to your git configuration using:
 git config --local commit.template .gitmessage
 ```
 
-where 
+where
 
 #### Keyword
 In uppercase if you want to have the log comment appears into the generated ChangeLog file.
@@ -101,32 +101,35 @@ Long description (Can span accross multiple lines).
 </pre>
 
 ### Pull Requests
-When submitting a pull request, use same rule as [Commits](#commits) for the message.
+Pull Request (PR) process is the process to submit a change (enhancement, bug fix, ...) into the code of the project. There is some rules to know and
+a process to follow to optimize the chance to have PRs merged efficiently...
 
-If your pull request only contains one commit, GitHub will be smart enough to fill it for you.
-Otherwise, please be a bit verbose about what you're providing.
+* A PR must be atomic. It means it must contains the lower possible changes for 1 need (1 bug fix or 1 new feature) without breaking usability of code. If a PR can be split into several PRs, it often means your PR is not atomic.
+
+* Your Pull Request (PR) must pass the Continuous Integration checks and code quality checks.
+
+* When submitting a pull request, use same rule as [Commits](#commits) for the message. If your pull request only contains 1 commit, GitHub will be smart enough to fill it for you. Otherwise, please be a bit verbose about what you're providing.
 
-Your Pull Request (PR) must pass the Continuous Integration checks.
 Also, some code changes need a prior approbation:
 
-* if you want to include a new external library (into htdocs/includes directory), please ask before to the project manager (@eldy) to see if such a library can be accepted.
+* if you want to include a new external library (into htdocs/includes directory), please ask before to the core project manager (mention @dolibarr-yoda in your issue) to see if such a library can be accepted.
 
-* if you add a new table, you must first create a page on http://wiki.dolibarr.org/index.php/Category:Table_SQL (copy an existing page changing its name to see it into this index page). Than ask the project manager (@eldy) if the new data model you plan to add can be accepted as you suggest.
+* if you add a new table, you must first create a page on https://wiki.dolibarr.org/index.php/Category:Table_SQL (copy an existing page changing its name to see it into this index page). Then ask the project manager (@dolibarr-yoda) if the new data model you plan to add is compatible with curent and future works in progress and can be accepted as you suggest.
 
-Once a PR has been submitted, you may need to wait for its integration. It is common that the project leader let the PR open for a long delay to allow every developer discuss about the PR.
+Once a PR has been submitted, you may need to wait for its integration. It is common that the project leader let the PR open for a long delay to allow every developer discuss about the PR (A label is added in such a case).
 
-If the label of PR start with "WIP" (Work In Progress), it will not be analyzed (until you change the label of PR).
+If the label of PR start with "Draft" or "WIP" (Work In Progress), it will not be analyzed for merging until you change the label of PR (but it can be analyzed for discussion).
 
-If your PR has errors reported by the Continuous Integration Platform, it means your PR is not valid and nothing will be done with it. It will be kept open to allow developers to fix this, or it may be closed several month later. Don't expect anything on your PR if you have such errors, you MUST first fix the Continuous Integration error to have it taken into consideration. 
+If your PR has errors reported by the Continuous Integration Platform, it means your PR is not valid and nothing will be done with it. It will be kept open to allow developers to fix this, or it may be closed several month later. Don't expect anything on your PR if you have such errors, you MUST first fix the Continuous Integration error to have it taken into consideration.
 
 If the PR is valid, and is kept open for a long time, a tag will also be added on the PR to describe the status of your PR and why the PR is kept open. By putting your mouse on the tag, you will get a full explanation of the tag/status that explain why your PR has not been integrated yet.
-In most cases, it gives you information of things you have to do to have the PR taken into consideration (for example a change is requested, a conflict is expected to be solved, some questions were asked). If you have a yellow, red flag of purple flag, don't expect to have your PR validated. You must first provide the answer the flag ask you. The majority of PR are waiting an action of the developer/author.
+In most cases, it gives you information of things you have to do to have the PR taken into consideration (for example a change is requested, a conflict is expected to be solved, some questions were asked). If you have a yellow, red flag of purple flag, don't expect to have your PR validated. You must first provide the answer the tag ask you. The majority of open PR are waiting an action of the author of the PR.
 
-Statistics on Dolibarr project shows that around 95% of submitted PR are reviewed and tagged. This is one of the most important ratio of answered PR in Open Source world. Don't expect the core team to reach the 100%. With the increasing popularity of Dolibarr, this ratio will probably decrease in future.
+Statistics on Dolibarr project shows that 95% of submitted PR are reviewed and tagged. Average answer delay is also one of the best among Open source projects (just few days before having the Answer Tag set). This is one of the most important ratio of answered PR in Open Source world for a major project. Don't expect the core team to reach the 100%. A so high ratio is very rare on a so popular project and with the increasing popularity of Dolibarr, this ratio will probably decrease in future to a more common level.
 
 
 ### Resources
-[Developer documentation](http://wiki.dolibarr.org/index.php/Developer_documentation)
+[Developer documentation](https://wiki.dolibarr.org/index.php/Developer_documentation)
 
 Translations
 ------------
@@ -138,15 +141,15 @@ Translations done on transifex are available in the next major release.
 
 Note: Sometimes, the source text (english) is modified. In such a case, the translation is reset. Transifex assume that if the original source
 has changed, the translation is surely no more correct so must be done again. But old translation is not lost and you can use the tab "History"
-to retreive all old translation of a source text, and restore the translation in one click with no need to retranslate it if there is no need to. 
+to retrieve all old translation of a source text, and restore the translation in one click with no need to retranslate it if there is no need to.
 
 
 ### Resources
-[Translator documentation](http://wiki.dolibarr.org/index.php/Translator_documentation)
+[Translator documentation](https://wiki.dolibarr.org/index.php/Translator_documentation)
 
 Documentation
 -------------
-The project's documentation is maintained on the [Wiki](http://wiki.dolibarr.org/index.php).
+The project's documentation is maintained on the [Wiki](https://wiki.dolibarr.org/index.php).
 
 *Note*: to help prevent spam, you need to create an account before being able to edit. Everybody is welcome to contribute to its content.
 

+ 0 - 10
.github/ISSUE_TEMPLATE/custom.md

@@ -1,10 +0,0 @@
----
-name: Custom issue template
-about: Describe this issue template's purpose here.
-title: ''
-labels: ''
-assignees: ''
-
----
-
-

+ 17 - 0
.github/workflows/exakat.yml

@@ -0,0 +1,17 @@
+# See syntax file on https://help.github.com/en/actions/reference/workflow-syntax-for-github-actions
+name: "Exakat analysis"
+
+on:
+  schedule:
+  - cron: "0 20 * * *"
+
+jobs:
+  exakat:
+    runs-on: ubuntu-latest
+    steps:
+    - uses: actions/checkout@v2
+    - name: Exakat
+      uses: docker://exakat/exakat-ga
+      with:
+        ignore_rules: 'Classes/UseInstanceof,Performances/PrePostIncrement,Functions/WrongNumberOfArguments,Variables/UndefinedVariable,Classes/DontUnsetProperties,Classes/NonPpp,Classes/StaticMethodsCalledFromObject,Classes/UseClassOperator,Functions/UsesDefaultArguments,Php/NoClassInGlobal,Php/ShouldUseCoalesce,Structures/MergeIfThen,Structures/ElseIfElseif,Structures/RepeatedPrint,Structures/UselessParenthesis,Structures/SwitchWithoutDefault,Structures/ShouldMakeTernary,Structures/UseConstant' 
+        ignore_dirs: '/htdocs/includes,/htdocs/build,/htdocs/dev,/htdocs/doc,/htdocs/scripts,/htdocs/test'        

+ 13 - 0
.github/workflows/greetings-pr.yml.disabled

@@ -0,0 +1,13 @@
+# See syntax file on https://help.github.com/en/actions/reference/workflow-syntax-for-github-actions
+name: Greetings PR
+
+on: [pull_request]
+
+jobs:
+  greeting:
+    runs-on: ubuntu-latest
+    steps:
+    - uses: actions/first-interaction@v1
+      with:
+        repo-token: ${{ secrets.GITHUB_TOKEN }}
+        pr-message: 'Welcome to the Dolibarr army. You are on the road to become an Admiral (see https://wiki.dolibarr.org/index.php/Dolibarr_Project)'

+ 24 - 0
.github/workflows/stale-issues-safe.yml

@@ -0,0 +1,24 @@
+# See syntax file on https://help.github.com/en/actions/reference/workflow-syntax-for-github-actions
+name: "Close stale issues (bugs and feature requests)"
+
+on:
+  schedule:
+  - cron: "0 21 * * *"
+  issue_comment:
+    types: [created]
+
+jobs:
+  stale:
+    runs-on: ubuntu-latest
+    steps:
+    - uses: Dolibarr/stale@staleunstale
+      with:
+        repo-token: ${{ secrets.GITHUB_TOKEN }}
+        stale-message: 'This issue is stale because it has been open 1 year with no activity. If this is a bug, please comment to confirm it is still present on latest stable version. if this is a feature request, please comment to notify the request is still relevant and not yet covered by latest stable version. This issue may be closed automatically by stale bot in 10 days (you should still be able to re-open it if required).'
+        stale-label: 'Issue Stale (automatic label)'
+        exempt-labels: 'Priority High / Blocking,Priority Top Strategic,Priority Medium,hacktoberfest,hacktoberfest-accepted,good first issue,Bug Security (CVE),Analysis of PR in progress'
+        days-before-stale: 365
+        days-before-close: 10
+        operations-per-run: 100
+        dry-run: false
+        

+ 25 - 0
.github/workflows/stale-issues.yml.disabled

@@ -0,0 +1,25 @@
+# See syntax file on https://help.github.com/en/actions/reference/workflow-syntax-for-github-actions
+name: "Close stale issues (bugs and feature requests)"
+
+on:
+  schedule:
+  - cron: "0 20 * * *"
+
+jobs:
+  stale:
+    runs-on: ubuntu-latest
+    steps:
+    - uses: Dolibarr/stale@master
+      with:
+        repo-token: ${{ secrets.GITHUB_TOKEN }}
+        stale-issue-message: 'This issue is stale because it has been open 1 year with no activity. If this is a bug, please comment to confirm it is still present on latest stable version. if this is a feature request, please comment to notify the request is still relevant and not yet covered by latest stable version. This issue may be closed automatically by stale bot in 15 days (you should still be able to re-open it if required).'
+        stale-issue-label: 'Issue Stale (automatic label)'
+        exempt-issue-label: 'Priority High / Blocking'
+        days-before-stale: 365
+        days-before-close: -1
+        operations-per-run: 100
+        #stale-pr-message: 'This PR is stale because it has been open 1 year with no activity. If this PR is still mergeable (no conflict, nor Continuous Integration errors), please comment to confirm this merge is still expected. Without comment, this issue will be closed automatically by stale bot in 15 days.'
+        stale-pr-label: 'PR Stale (automatic label)'
+        stale-pr-message: 
+        exempt-pr-label: 'Priority Top Strategic'
+        

+ 15 - 1
.gitignore

@@ -36,7 +36,21 @@ htdocs/includes/jakub-onderka/
 htdocs/includes/phpdocumentor/
 htdocs/includes/phpspec/
 htdocs/includes/phpunit/
+htdocs/includes/php-parallel-lint/
 htdocs/includes/sebastian/
 htdocs/includes/squizlabs/
-htdocs/includes/symfony/
 htdocs/includes/webmozart/
+htdocs/.well-known/apple-developer-merchantid-domain-association
+
+# Node Modules
+build/yarn-error.log
+build/node_modules/
+node_modules/
+
+#yarn
+yarn.lock
+
+#package-lock
+package-lock.json
+
+doc/install.lock

+ 3 - 17
.scrutinizer.yml

@@ -17,8 +17,10 @@ filter:
         - build/*
         - dev/*
         - doc/*
-        - test/*
+        - documents/*
         - htdocs/includes/*
+        - node_modules/*
+        - test/*
     paths: 
         - htdocs/*
         - scripts/*
@@ -194,22 +196,6 @@ tools:
                 - 'test/*'
                 - 'htdocs/includes/*'
             paths: {  }
-
-    php_changetracking:
-        enabled: false
-        bug_patterns:
-            - '\bfix(?:es|ed)?\b'
-        feature_patterns:
-            - '\badd(?:s|ed)?\b'
-            - '\bimplement(?:s|ed)?\b'
-        filter:
-            excluded_paths:
-                - 'build/*'
-                - 'dev/*'
-                - 'doc/*'
-                - 'test/*'
-                - 'htdocs/includes/*'
-            paths: {  }
             
     # Coding-Style / Bug Detection
     js_hint:

+ 45 - 23
.travis.yml

@@ -3,8 +3,11 @@
 # For syntax, see http://about.travis-ci.org/docs/user/languages/php/
 
 # We use dist: xenial to have php 5.6+ available
+os: linux
 dist: xenial
-sudo: required
+#dist: bionic
+# Deprecated: The key sudo has no effect anymore.
+#sudo: required
 
 language: php
 
@@ -43,7 +46,7 @@ env:
   global:
   # Set to true for very verbose output
   - DEBUG=false
-  matrix:
+  jobs:
   # MariaDB overrides MySQL installation so it's not possible to test both yet
   #- DB=mariadb
   - DB=mysql
@@ -53,7 +56,7 @@ env:
   # See https://github.com/DracoBlue/travis-ci-nginx-php-fpm-test
   #- WS=nginx
 
-matrix:
+jobs:
   fast_finish: true
   allow_failures:
   - php: nightly
@@ -117,26 +120,32 @@ install:
   echo
 
 - |
-  echo "Installing Composer dependencies (PHP Unit, Parallel Lint & PHP CodeSniffer"
-  if [ "$TRAVIS_PHP_VERSION" = '5.4' ] || [ "$TRAVIS_PHP_VERSION" = '5.5' ]; then
-    composer -n require phpunit/phpunit ^4 \
-                        jakub-onderka/php-parallel-lint ^0 \
-                        jakub-onderka/php-console-highlighter ^0 \
+  echo "Installing Composer dependencies - PHP Unit, Parallel Lint, PHP CodeSniffer - for $TRAVIS_PHP_VERSION"
+  if [ "$TRAVIS_PHP_VERSION" = '5.6' ]; then
+    composer -n require phpunit/phpunit ^5 \
+                        php-parallel-lint/php-parallel-lint ^1 \
+                        php-parallel-lint/php-console-highlighter ^0 \
                         squizlabs/php_codesniffer ^3
   fi
-  if [ "$TRAVIS_PHP_VERSION" = '5.6' ] || [ "$TRAVIS_PHP_VERSION" = '7.0' ] || [ "$TRAVIS_PHP_VERSION" = '7.1' ] \
-     [ "$TRAVIS_PHP_VERSION" = '7.2' ] || [ "$TRAVIS_PHP_VERSION" = '7.3' ] || [ "$TRAVIS_PHP_VERSION" = '7.4' ]; then
-    composer -n require phpunit/phpunit ^5 \
-                        jakub-onderka/php-parallel-lint ^0 \
-                        jakub-onderka/php-console-highlighter ^0 \
+  if [ "$TRAVIS_PHP_VERSION" = '7.0' ] || [ "$TRAVIS_PHP_VERSION" = '7.1' ] || [ "$TRAVIS_PHP_VERSION" = '7.2' ]; then
+    composer -n require phpunit/phpunit ^6 \
+                        php-parallel-lint/php-parallel-lint ^1 \
+                        php-parallel-lint/php-console-highlighter ^0 \
+                        squizlabs/php_codesniffer ^3
+  fi
+  if [ "$TRAVIS_PHP_VERSION" = '7.3' ] || [ "$TRAVIS_PHP_VERSION" = '7.4' ]; then
+    composer -n require phpunit/phpunit ^7 \
+                        php-parallel-lint/php-parallel-lint ^1.2 \
+                        php-parallel-lint/php-console-highlighter ^0 \
                         squizlabs/php_codesniffer ^3
   fi
+  # phpunit 9 is required for php 8
   if [ "$TRAVIS_PHP_VERSION" = 'nightly' ]; then
-      composer -n require --ignore-platform-reqs phpunit/phpunit ^5 \
-                                                 jakub-onderka/php-parallel-lint ^0 \
-                                                 jakub-onderka/php-console-highlighter ^0 \
+      composer -n require --ignore-platform-reqs phpunit/phpunit ^7 \
+                                                 php-parallel-lint/php-parallel-lint ^1.2 \
+                                                 php-parallel-lint/php-console-highlighter ^0 \
                                                  squizlabs/php_codesniffer ^3
-    fi
+  fi
   echo
 
 - |
@@ -168,15 +177,20 @@ before_script:
 
   - |
     echo "Versions information"
+    echo
     # Check PHP
     echo "PHP version"
     php -i | head -
-    # Check PHP CodeSniffer installation
+    # Check Parallel-lin version
+    echo "Parallel-lint version"
+    which parallel-lint
+    parallel-lint -V
+    # Check PHP CodeSniffer version
     echo "PHPCS version"
     which phpcs
     phpcs --version | head -
     phpcs -i | head -
-    # Check PHPUnit installation
+    # Check PHPUnit version
     echo "PHPUnit version"
     which phpunit
     phpunit --version | head -
@@ -281,7 +295,11 @@ script:
   # Ensure we catch errors
   set -e
   #parallel-lint --exclude htdocs/includes --blame .
-  parallel-lint --exclude dev/namespacemig --exclude dev/initdata/dbf/includes --exclude htdocs/includes/sabre --exclude htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared --exclude htdocs/includes/phpoffice/PhpSpreadsheet --exclude htdocs/includes/sebastian --exclude htdocs/includes/squizlabs/php_codesniffer --exclude htdocs/includes/jakub-onderka --exclude htdocs/includes/mike42/escpos-php/example --exclude htdocs/includes/phpunit/ --exclude htdocs/includes/composer/autoload_static.php --blame .
+  parallel-lint --exclude dev/namespacemig --exclude htdocs/includes/composer --exclude htdocs/includes/myclabs --exclude htdocs/includes/phpspec --exclude dev/initdata/dbf/includes \
+  	--exclude htdocs/includes/sabre --exclude htdocs/includes/phpoffice/phpexcel --exclude htdocs/includes/phpoffice/PhpSpreadsheet --exclude htdocs/includes/sebastian \
+  	--exclude htdocs/includes/squizlabs/php_codesniffer --exclude htdocs/includes/jakub-onderka --exclude htdocs/includes/php-parallel-lint --exclude htdocs/includes/symfony \
+  	--exclude htdocs/includes/mike42/escpos-php/example --exclude htdocs/includes/maximebf \
+  	--exclude htdocs/includes/phpunit/ --exclude htdocs/includes/tecnickcom/tcpdf/include/barcodes --exclude htdocs/includes/webmozart --blame .
   set +e
   echo
 
@@ -290,7 +308,7 @@ script:
   # Ensure we catch errors
   set -e
   # Exclusions are defined in the ruleset.xml file
-  #phpcs -s -n -p -d memory_limit=-1 --colors --tab-width=4 --standard=dev/setup/codesniffer/ruleset.xml --encoding=utf-8 .
+  #phpcs -s -p -d memory_limit=-1 --extensions=php --colors --tab-width=4 --standard=dev/setup/codesniffer/ruleset.xml --encoding=utf-8 --runtime-set ignore_warnings_on_exit true .
   if [ "$TRAVIS_PULL_REQUEST" = "false" ]; then phpcs -s -p -d memory_limit=-1 --extensions=php --colors --tab-width=4 --standard=dev/setup/codesniffer/ruleset.xml --encoding=utf-8 --runtime-set ignore_warnings_on_exit true .; fi
   set +e
   echo
@@ -403,8 +421,12 @@ script:
   php upgrade.php 11.0.0 12.0.0 ignoredbversion > $TRAVIS_BUILD_DIR/upgrade11001200.log
   php upgrade2.php 11.0.0 12.0.0 > $TRAVIS_BUILD_DIR/upgrade11001200-2.log
   php step5.php 11.0.0 12.0.0 > $TRAVIS_BUILD_DIR/upgrade11001200-3.log
+  php upgrade.php 12.0.0 13.0.0 ignoredbversion > $TRAVIS_BUILD_DIR/upgrade12001300.log
+  php upgrade2.php 12.0.0 13.0.0 > $TRAVIS_BUILD_DIR/upgrade12001300-2.log
+  php step5.php 12.0.0 13.0.0 > $TRAVIS_BUILD_DIR/upgrade12001300-3.log
+
   # Enable modules not enabled into original dump
-  php upgrade2.php 0.0.0 0.0.0 MAIN_MODULE_API,MAIN_MODULE_SUPPLIERPROPOSAL,MAIN_MODULE_WEBSITE,MAIN_MODULE_TICKETSUP,MAIN_MODULE_ACCOUNTING > $TRAVIS_BUILD_DIR/enablemodule.log
+  php upgrade2.php 0.0.0 0.0.0 MAIN_MODULE_API,MAIN_MODULE_SUPPLIERPROPOSAL,MAIN_MODULE_WEBSITE,MAIN_MODULE_TICKET,MAIN_MODULE_ACCOUNTING,MAIN_MODULE_MRP > $TRAVIS_BUILD_DIR/enablemodule.log
   echo $?
   cd -
   set +e
@@ -423,7 +445,7 @@ script:
 
 after_script:
 - |
-  echo "After script - Output lines of dolibarr.log"
+  echo "After script - Output last lines of dolibarr.log"
   ls $TRAVIS_BUILD_DIR/documents
   #cat $TRAVIS_BUILD_DIR/documents/dolibarr.log
   sudo tail -n 50 $TRAVIS_BUILD_DIR/documents/dolibarr.log

+ 12 - 0
.tx/config

@@ -164,6 +164,12 @@ source_file = htdocs/langs/en_US/hrm.lang
 source_lang = en_US
 type = MOZILLAPROPERTIES
 
+[dolibarr.intracommreport]
+file_filter = htdocs/langs/<lang>/intracommreport.lang
+source_file = htdocs/langs/en_US/intracommreport.lang
+source_lang = en_US
+type = MOZILLAPROPERTIES
+
 [dolibarr.install]
 file_filter = htdocs/langs/<lang>/install.lang
 source_file = htdocs/langs/en_US/install.lang
@@ -326,6 +332,12 @@ source_file = htdocs/langs/en_US/receptions.lang
 source_lang = en_US
 type = MOZILLAPROPERTIES
 
+[dolibarr.recruitment]
+file_filter = htdocs/langs/<lang>/recruitment.lang
+source_file = htdocs/langs/en_US/recruitment.lang
+source_lang = en_US
+type = MOZILLAPROPERTIES
+
 [dolibarr.resource]
 file_filter = htdocs/langs/<lang>/resource.lang
 source_file = htdocs/langs/en_US/resource.lang

+ 10 - 9
COPYRIGHT

@@ -16,12 +16,13 @@ AdoDb-Date             0.36          Modified BSD License        Yes
 CKEditor               4.12.1        LGPL-2.1+                   Yes             Editor WYSIWYG
 EvalMath               1.0           BSD                         Yes             Safe math expressions evaluation
 Escpos-php             2.2           MIT License                 Yes             Thermal receipt printer library, for use with ESC/POS compatible printers
-GeoIP                  1.4           LGPL-2.1+                   Yes             Sample code to make geoip convert (not into deb package)
-Mobiledetect           2.8.33        MIT License                 Yes             Detect mobile devices browsers
+GeoIP2                 0.2.0         LGPL-2.1+                   Yes             Lib to make geoip convert
+Mobiledetect           2.8.34        MIT License                 Yes             Detect mobile devices browsers
 NuSoap                 0.9.5         LGPL 2.1+                   Yes             Library to develop SOAP Web services (not into rpm and deb package)
 PEAR Mail_MIME         1.8.9         BSD                         Yes             NuSoap dependency
 ParseDown              1.6           MIT License                 Yes             Markdown parser
-PHPDebugBar            1.15.0        MIT License	             Yes             Used only by the module "debugbar" for developers
+PCLZip                 2.8.4         LGPL-3+                     Yes             Library to zip/unzip files             
+PHPDebugBar            1.15.1        MIT License	             Yes             Used only by the module "debugbar" for developers
 PHPExcel               1.8.1         LGPL-2.1+                   Yes             Read/Write XLS files, read ODS files
 PHPSpreadSheet         ?             LGPL-2.1+                   Yes             Read/Write XLS files, read ODS files
 php-iban               1.4.7         LGPL-3+                     Yes             Parse and validate IBAN (and IIBAN) bank account information in PHP
@@ -32,18 +33,18 @@ PSR/simple-cache	   ?										                 Library for cache (used by PHPSp
 Restler                3.0.0RC6      LGPL-3+                     Yes             Library to develop REST Web services (+ swagger-ui js lib into dir explorer)
 Sabre                  3.2.2         BSD                         Yes             DAV support
 Swift Mailer           5.4.2-DEV     MIT license                 Yes             Comprehensive mailing tools for PHP
-Stripe                 6.41          MIT licence                 Yes             Library for Stripe module
+Stripe                 6.43.1        MIT licence                 Yes             Library for Stripe module
 TCPDF                  6.3.2         LGPL-3+                     Yes             PDF generation
 TCPDI                  1.0.0         LGPL-3+ / Apache 2.0        Yes             FPDI replacement
 
 JS libraries:
-Ace                    1.4.6         BSD                         Yes             JS library to get code syntaxique coloration in a textarea.
-jQuery                 3.4.1         MIT License                 Yes             JS library
+Ace                    1.4.8         BSD                         Yes             JS library to get code syntaxique coloration in a textarea.
+ChartJS				   2.9.3         MIT License                 Yes             JS library for graph
+jQuery                 3.5.1         MIT License                 Yes             JS library
 jQuery UI              1.12.1        GPL and MIT License         Yes             JS library plugin UI
-jQuery select2         4.0.5         GPL and Apache License      Yes             JS library plugin for sexier multiselect
+jQuery select2         4.0.13         GPL and Apache License      Yes             JS library plugin for sexier multiselect. Warning: 4.0.6+ create troubles without patching css
 jQuery blockUI         2.70.0        GPL and MIT License         Yes             JS library plugin blockUI (to use ajax popups)
 jQuery Colorpicker     1.1           MIT License                 Yes             JS library for color picker for a defined list of colors
-jQuery Flot            0.8.3         MIT License                 Yes             JS library to build graph
 jQuery JCrop           0.9.8         GPL and MIT License         Yes             JS library plugin Crop (to crop images)
 jQuery Jeditable       1.7.1         GPL and MIT License         Yes             JS library plugin jeditable (to edit in place)
 jQuery jNotify         1.1.00        Apache Software License 2.0 Yes             JS library plugin jNotify (to use ajax popups)
@@ -60,7 +61,7 @@ Image libraries:
 Octicons               8.1           MIT                         Yes
 
 Font libraries:
-Fontawesome            5.7.2         Font Awesome Free licence   Yes
+Fontawesome            5.13          Font Awesome Free licence   Yes
 
 
 For licenses compatibility informations:

File diff suppressed because it is too large
+ 978 - 9
ChangeLog


+ 1 - 0
README-FR.md

@@ -151,6 +151,7 @@ La documentation utilisateur, développeur et traducteur est disponible sous for
 ## CONTRIBUER
 
 Ce projet existe grâce à ses nombreux contributeurs [[Contribuer](https://github.com/Dolibarr/dolibarr/blob/develop/.github/CONTRIBUTING.md)].
+
 <a href="https://github.com/Dolibarr/dolibarr/graphs/contributors"><img src="https://opencollective.com/dolibarr/contributors.svg?width=890&button=false" /></a>
 
 ## CREDITS

+ 43 - 28
README.md

@@ -2,14 +2,18 @@
 
 ![Downloads per day](https://img.shields.io/sourceforge/dw/dolibarr.svg)
 ![Build status](https://img.shields.io/travis/Dolibarr/dolibarr/develop.svg)
+[![Minimum PHP Version](https://img.shields.io/badge/php-%3E%3D%205.6-8892BF.svg?style=flat-square)](https://php.net/)
+[![GitHub release](https://img.shields.io/github/v/release/Dolibarr/dolibarr)](https://github.com/Dolibarr/dolibarr)
 
-Dolibarr ERP & CRM is a modern software package to manage your organization's activity (contacts, suppliers, invoices, orders, stocks, agenda…).
+Dolibarr ERP & CRM is a modern software package that helps manage your organization's activity (contacts, suppliers, invoices, orders, stocks, agenda…).
 
-It's an Open Source Software (written in PHP language) designed for small, medium or large companies, foundations and freelances.
+It's an Open Source Software suite (written in PHP with optional JavaScript enhancements) designed for small, medium or large companies, foundations and freelancers.
 
-You can freely use, study, modify or distribute it according to its Free Software licence.
+You can freely use, study, modify or distribute it according to its licence.
 
-You can use it as a standalone application or as a web application to be able to access it from the Internet or a LAN.
+You can use it as a standalone application or as a web application to access it from the Internet or a LAN.
+
+Dolibarr has a large community ready to help you, free forums and [oficially preferred partners ready to offer commercial support should you need it](https://partners.dolibarr.org)
 
 ![ScreenShot](https://www.dolibarr.org/images/dolibarr_screenshot1_1920x1080.jpg)
 
@@ -27,17 +31,23 @@ Other licenses apply for some included dependencies. See [COPYRIGHT](https://git
 
 If you have low technical skills and you're looking to install Dolibarr ERP/CRM in just a few clicks, you can use one of the packaged versions:
 
-- DoliWamp for Windows
-- DoliDeb for Debian or Ubuntu
+- [DoliWamp for Windows](https://wiki.dolibarr.org/index.php/Dolibarr_for_Windows_DoliWamp)
+- [DoliDeb for Debian](https://wiki.dolibarr.org/index.php/Dolibarr_for_Ubuntu_or_Debian)
 - DoliRpm for Redhat, Fedora, OpenSuse, Mandriva or Mageia
 
 Releases can be downloaded from [official website](https://www.dolibarr.org/).
 
 ### Advanced setup
 
-You can use a Web server and a supported database (MariaDB, MySQL or PostgreSQL) to install the standard version.
+You can use a web server and a supported database (MariaDB, MySQL or PostgreSQL) to install the standard version.
+
+On GNU/Linux, first check if your distribution has already packaged Dolibarr.
+
+#### Generic install steps:
+
+- Check that your installed PHP version is supported [see PHP support](https://wiki.dolibarr.org/index.php/Versions).
 
-- Uncompress the downloaded .zip archive to copy the "dolibarr/htdocs" directory and all its files inside your web server root or get the files directly from GitHub (recommanded if you known git):
+- Uncompress the downloaded .zip archive to copy the "dolibarr/htdocs" directory and all its files inside your web server root or get the files directly from GitHub (recommanded if you know git as it makes it easier if you want to upgrade later):
 
   `git clone https://github.com/dolibarr/dolibarr -b x.y`     (where x.y is main version like 3.6, 9.0, ...)
 
@@ -65,14 +75,16 @@ You can use a Web server and a supported database (MariaDB, MySQL or PostgreSQL)
 
 If you don't have time to install it yourself, you can try some commercial 'ready to use' Cloud offers (See https://saas.dolibarr.org). However, this third solution is not free.
 
+
 ## UPGRADING
 
-- At first make a backup of your Dolibarr files & than see https://wiki.dolibarr.org/index.php/Installation_-_Upgrade#Upgrade_Dolibarr
+Dolibarr supports upgrading usually wihtout the need for any (commercial) support (depending on if you use any commercial extensions) and supports upgrading all the way from any version after 2.8 without breakage. This is unique in the ERP ecosystem and a benefit our users highly appreciate!
+ 
+- At first make a backup of your Dolibarr files & than [see](https://wiki.dolibarr.org/index.php/Installation_-_Upgrade#Upgrade_Dolibarr)
+- Check that your installed PHP version is supported by the new version [see PHP support](./doc/phpmatrix.md).
 - Overwrite all old files from 'dolibarr' directory with files provided into the new version's package.
-- At first next access, Dolibarr will redirect your to the "install/" page to follow the upgrade process.
-  If an `install.lock` file exists to lock any other upgrade process, the application will ask you to remove the file manually (you should find the `install.lock` file into the directory used to store generated and uploaded documents, in most cases, it is the directory called "*documents*").
-
-*Note: migration process can be safely done multiple times by calling the `/install/index.php` page*
+- At first next access, Dolibarr will redirect you to the "install/" page to follow the upgrade process.
+  If an `install.lock` file exists to lock any other upgrade process, the application will ask you to remove the file manually (you should find the `install.lock` file in the directory used to store generated and uploaded documents, in most cases, it is the directory called "*documents*").
 
 ## WHAT'S NEW
 
@@ -82,28 +94,28 @@ See the [ChangeLog](https://github.com/Dolibarr/dolibarr/blob/develop/ChangeLog)
 
 ### Main application/modules (all optional)
 
-- Customers, Prospects (Leads) and/or Suppliers directory
+- Customers, Prospects (Leads) and/or Suppliers directory + Contacts
+- Members management 
 - Products and/or Services catalog
 - Commercial proposals management
-- Customer and Supplier Orders management
+- Customer & Supplier Orders management
 - Invoices and payment management
-- Standing orders management (European SEPA)
+- Shipping management
+- Warehouse/Stock management
+- Manufacturing Orders
 - Bank accounts management
+- Direct debit orders management (European SEPA)
 - Accounting management
 - Shared calendar/agenda (with ical and vcal export for third party tools integration)
-- Opportunities and/or project management
-- Projects management
+- Opportunities or Leads management
+- Projects & Tasks management
 - Contracts management
-- Warehouse/Stock management
-- Shipping management
 - Interventions management
 - Employee's leave requests management
 - Expense reports
 - Timesheets
 - Electronic Document Management (EDM)
 - Foundations members management
-- Mass emailing
-- Surveys
 - Point of Sale (POS)
 - …
 
@@ -112,11 +124,13 @@ See the [ChangeLog](https://github.com/Dolibarr/dolibarr/blob/develop/ChangeLog)
 - Bookmarks management
 - Donations management
 - Reporting
+- Surveys
 - Data export/import
 - Barcodes support
 - Margin calculations
 - LDAP connectivity
 - ClickToDial integration
+- Mass emailing
 - RSS integration
 - Skype integration
 - Payment platforms integration (PayPal, Stripe, Paybox...)
@@ -133,7 +147,7 @@ See the [ChangeLog](https://github.com/Dolibarr/dolibarr/blob/develop/ChangeLog)
 - Highly customizable: enable only the modules you need, add user personalized fields, choose your skin, several menu managers (can be used by internal users as a back-office with a particular menu, or by external users as a front-office with another one)
 
 - APIs
-- An easy to understand, maintain and develop code (PHP with no heavy framework; trigger and hook architecture)
+- Code that is easy to understand, maintain and develop (PHP with no heavy framework; trigger and hook architecture)
 - Support a lot of country specific features:
   - Spanish Tax RE and ISPF
   - French NPR VAT rate (VAT called "Non Perçue Récupérable" for DOM-TOM)
@@ -143,7 +157,7 @@ See the [ChangeLog](https://github.com/Dolibarr/dolibarr/blob/develop/ChangeLog)
   - Compatible with [European directives](http://europa.eu/legislation_summaries/taxation/l31057_en.htm) (2006/112/CE ... 2010/45/UE)
   - Compatible with European GDPR rules
   - ...
-- PDF or ODT generation for invoice, proposals, orders...
+- Flexible PDF & ODT generation for invoices, proposals, orders...
 - …
 
 ### System Environment / Requirements
@@ -161,21 +175,22 @@ These are features that Dolibarr does **not** yet fully support:
 
 - Tasks dependencies in projects
 - Payroll module
-- No native embedded Webmail
+- No native embedded Webmail, but you can send email to contacts in Dolibarr with e.g. offers, invoices, etc.
 - Dolibarr can't do coffee (yet)
 
 ## DOCUMENTATION
 
-Administrator, user, developer and translator's documentations are available along with other community resources on the [Wiki](https://wiki.dolibarr.org).
+Administrator, user, developer and translator's documentations are available along with other community resources in the [Wiki](https://wiki.dolibarr.org).
 
 ## CONTRIBUTING
 
-This project exists thanks to all the people who contribute. [[Contribute](https://github.com/Dolibarr/dolibarr/blob/develop/.github/CONTRIBUTING.md)].
+This project exists thanks to all the people who contribute. [[Contribute](https://github.com/Dolibarr/dolibarr/blob/develop/.github/CONTRIBUTING.md)]
+
 <a href="https://github.com/Dolibarr/dolibarr/graphs/contributors"><img src="https://opencollective.com/dolibarr/contributors.svg?width=890&button=false" /></a>
 
 ## CREDITS
 
-Dolibarr is the work of many contributors over the years and uses some fine libraries.
+Dolibarr is the work of many contributors over the years and uses some fine PHP libraries.
 
 See [COPYRIGHT](https://github.com/Dolibarr/dolibarr/blob/develop/COPYRIGHT) file.
 

+ 107 - 5
SECURITY.md

@@ -1,13 +1,115 @@
 # Security Policy
 
-## Supported Versions
+This file contains some policies about the security reports on Dolibarr ERP CRM project, one of the most popular Open Source ERP and CRM in the world.
+
+## Supported Versions for security reports
+
+| Version   | Supported          |
+| --------- | ------------------ |
+| <= 9.0.*  | :x:                |
+| >= 10.0.* | :white_check_mark: |
 
-| Version  | Supported          |
-| -------- | ------------------ |
-| <= 8.0.* | :x: |
-| >= 9.0.* | :white_check_mark: |
 
 ## Reporting a Vulnerability
 
 To report a vulnerability, please send an email to security@dolibarr.org
 In most cases, after fixing the security, we make an answer by email to say the issue has been fixed.
+
+
+## Hunting vulnerabilities on Dolibarr
+
+We believe that future of software is online SaaS. This means software are more and more critical and no technology is perfect. Working with skilled security researchers is crucial in identifying weaknesses in our technology.
+
+If you believe you've found a security bug in our service, we are happy to work with you to resolve the issue promptly and ensure you are fairly rewarded for your discovery.
+
+Any type of denial of service attacks is strictly forbidden, as well as any interference with network equipment and Dolibarr infrastructure.
+
+We recommand to install Dolibarr ERP CRM on you own server (as most Open Source software, download and use is free: https://www.dolibarr.org/download) to get access on every side of application.
+
+### User Agent
+
+If you try to find bug on Dolibarr, we recommend to append to your user-agent header the following value: '-BugHunting-dolibarr'.
+
+### Account access
+
+You can install the web application yourself on your own platform/server so you get full access to application and sources. Download the zip of the files to put into your own web server virtual host from https://www.dolibarr.org/download
+
+
+## Eligibility and Responsible Disclosure
+
+We are happy to thank everyone who submits valid reports which help us improve the security of Dolibarr however, only those that meet the following eligibility requirements may receive a monetary reward:
+
+You must be the first reporter of a vulnerability.
+
+The vulnerability must be a qualifying vulnerability (see below)
+
+Any vulnerability found must be reported no later than 24 hours after discovery
+
+You must send a clear textual description of the report along with steps to reproduce the issue, include attachments such as screenshots or proof of concept code as necessary.
+
+You must avoid tests that could cause degradation or interruption of our service (refrain from using automated tools, and limit yourself about requests per second), that's why we recommand to install softwate on your own platform.
+
+You must not leak, manipulate, or destroy any user data.
+
+You must not be a former or current employee of Dolibarr or one of its contractor.
+
+Reports about vulnerabilities are examined by our security analysts.
+
+Our analysis is always based on worst case exploitation of the vulnerability, as is the reward we pay.
+
+No vulnerability disclosure, including partial is allowed for the moment.
+
+
+## Scope for qualified vulnerabilities
+
+ONLY vulnerabilities discovered, when the following setup on test platform is used, are accepted:
+
+* $dolibarr_main_prod must be set to 1 into conf.php
+* $dolibarr_nocsrfcheck must be kept to the value 0 into conf.php (this is the default value)
+* $dolibarr_main_force_https must be set to something else than 0.
+* The constant MAIN_SECURITY_CSRF_WITH_TOKEN must be set to 1 into backoffice menu Home - Setup - Other (this protection should be enabled soon by default)
+* The module DebugBar must NOT be enabled (by default, this module is not enabled. This is a developer tool)
+* The module ModuleBuilder must NOT be enabled (by default, this module is not enabled. This is a developer tool)
+* ONLY security reports on modules provided by default and with the "stable" status are allowed (troubles into "experimental", "developement" or external modules are not accepted).
+* The root of web server must link to htdocs and the documents directory must be outside of the web server root (this is the default when using the default installer but may differs with external installer).
+* The web server setup must be done so only the documents directory is in write mode. The root directory called htdocs must be readonly.
+* CSRF attacks are accepted for all when using a POST URL, but are accepted only for creating or updating data resctricted to the admin user when using GET URL.
+* Ability for a high level user to edit web site pages in the CMS by including javascript is an expected feature.
+
+Scope is the web application (back office) and the APIs.
+
+
+## Qualifying vulnerabilities for Bug bounty programs
+* Remote code execution (RCE)
+* Local files access and manipulation (LFI, RFI, XXE, SSRF, XSPA)
+* Code injections (HTML, JS, SQL, PHP, ...)
+* Cross-Site Scripting (XSS)
+* Cross-Site Requests Forgery (CSRF) with real security impact
+* Open redirect
+* Broken authentication & session management
+* Insecure direct object references
+* CORS with real security impact
+* Horizontal and vertical privilege escalation
+* "HTTP Host Header" XSS
+* Software version disclosure (for non admin users only)
+* Stack traces or path disclosure (for non admin users only)
+
+
+## Non-qualifying vulnerabilities for Bug bounty programs, but qualified for reporting
+* "Self" XSS
+* SSL/TLS best practices
+* Denial of Service attacks
+* Clickjacking/UI redressing
+* Physical or social engineering attempts or issues that require physical access to a victim’s computer/device
+* Presence of autocomplete attribute on web forms
+* Vulnerabilities affecting outdated browsers or platforms
+* Logout and other instances of low-severity Cross-Site Request Forgery
+* Missing cookie flags
+* Missing security-related HTTP headers which do not lead directly to a vulnerability
+* Reports from automated web vulnerability scanners (Acunetix, Vega, etc.) that have not been validated
+* Invalid or missing SPF (Sender Policy Framework) records (Incomplete or missing SPF/DKIM/DMARC)
+* Reports on features flagged as "experimental" or "development"
+* Software version or private IP disclosure when logged user is admin
+* Stack traces or path disclosure when logged user is admin
+* Any vulnerabilities due to a configuration different than the one defined into chapter "Scope for qualified vulnerabilities".
+

+ 28 - 15
build/README

@@ -19,35 +19,42 @@ Note: Prerequisites to build autoexe DoliWamp package:
 > Launch "wine cmd" to check a drive Z: pointing to / exists.
 > Install InnoSetup
    For example by running isetup-5.3.9.exe (http://www.jrsoftware.org)
-> Install WampServer into "C:\Program Files\Wamp"
-   For example by running wampserver2.5-Apache-2.4.9-Mysql-5.6.17-php5.5.12-32b.exe (http://www.wampserver.com)
-> Install WampServer addon to have versions: Mysql5.0.45
-   For example by running WampServer2-MYSQL5045.exe (http://www.wampserver.com)
-> To build from Windows (running from makepack-dolibarr.pl script is however
-  recommanded), open file build/exe/doliwamp.iss and click on button "Compile".
-  The .exe file will be build into directory build.
+> Install WampServer into "C:\wamp64" to have Apache, PHP and MariaDB
+   For example by running wampserver3.2.0_x64.exe (http://www.wampserver.com). See file build/exe/doliwamp.iss to know the doliwamp version currently setup.
 > Add path to ISCC into PATH windows var:
   Launch wine cmd, then regedit and add entry int HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\Environment\PATH
+> To build manually the .exe from Windows (running from makepack-dolibarr.pl script is however recommanded), 
+  open file build/exe/doliwamp.iss and click on button "Compile".
+  The .exe file will be build into directory build.
+
+
   
 - To build a theme package, launch the script
 > perl makepack-dolibarrtheme.pl
 
+
+
 - To build a package for a module, launch the script
 > perl makepack-dolibarrmodule.pl
 
+
+
 - To build developper documentation, launch the script
 > perl dolibarr-doxygen-build.pl
 
 
+
 Note: 
-The build directory and all its contents is absolutely not required to make
-Dolibarr working. It is here only to build Dolibarr packages, and those
-generated packages will not contains this "build" directory.
+The build directory and all its contents is absolutely not required to make Dolibarr working. 
+It is here only to build Dolibarr packages, and those generated packages will not contains this "build" directory.
 
 
-We can find in "build", following sub-directories:
+You can find in "build", following sub-directories:
 
-* debian:
+* composer
+To test an upgrade of a lib.
+
+* debian
 To build Debian package.
 
 * dmg:
@@ -56,6 +63,9 @@ To build Mac OS package (not ready yet).
 * doap:
 To build Doap descriptor to promote/describe Dolibarr releases.
 
+* docker:
+To deploy Dolibarr with docker.
+
 * doxygen:
 Dir with config file to build doxygen documentation.
 
@@ -63,12 +73,12 @@ Dir with config file to build doxygen documentation.
 To build exe package for Windows that distribute Dolibarr sources or
 to build the complete DoliWamp package.
 
+* gource:
+To build the video of history of git changes.
+
 * launchpad:
 Doc file to explain how to use launchpad.
 
-* live:
-Doc file to explain how to create a demo live CD.
-
 * obs:
 Doc file to explain how to push release onto OBS.
 
@@ -87,5 +97,8 @@ To build Redhat, Opensuse or Mandriva package.
 * tgz:
 To build a tgz package.
 
+* travis-ci:
+Used by travis to make CI.
+
 * zip:
 To build a zip package.

+ 2 - 2
build/debian/conf.php.install

@@ -232,7 +232,7 @@ $dolibarr_main_prod='0';
 # Examples:
 # $dolibarr_mailing_limit_sendbycli='0';
 
-# dolibarr_distrib
+# dolibarr_main_distrib
 # A key to identify the distribution used for first installation
-$dolibarr_distrib = 'deb';
+$dolibarr_main_distrib = 'debian';
 

+ 1 - 1
build/debian/control

@@ -14,7 +14,7 @@ Architecture: all
 Depends: libapache2-mod-php5 | libapache2-mod-php5filter | php5-cgi | php5-fpm | php5 | libapache2-mod-php | libapache2-mod-phpfilter | php-cgi | php-fpm | php,
     php5-cli | php-cli,
 # Required PHP extensions
-    php5-mysql | php5-mysqli | php-mysql | php-mysqli, php5-curl | php-curl, php5-gd | php-gd, php5-ldap | php-gd,
+    php5-mysql | php5-mysqli | php-mysql | php-mysqli, php5-curl | php-curl, php5-gd | php-gd, php5-ldap | php-gd, php5-zip | php-zip,
 # Required PHP libraries
     php-pear, php-mail-mime,
 #    php-tcpdf,

+ 1 - 0
build/debian/install.forced.php.install

@@ -24,6 +24,7 @@ $force_install_databaserootpass='__SUPERUSERPASSWORD__';
 $force_install_dolibarrlogin='admin';
 $force_install_nophpinfo='1';
 $force_install_lockinstall='444';
+$force_install_distrib='debian';
 
 // Value to overwrite path to use shared libraries/fonts instead of embedded one.
 // If during install, we enable/disable declaration to use non embedded libraries, we must also check they are 

+ 50 - 25
build/docker/Dockerfile

@@ -1,38 +1,63 @@
-FROM php:7.2-apache
+FROM php:7.3-apache
 
-ENV HOST_USER_ID 33
 ENV PHP_INI_DATE_TIMEZONE 'UTC'
+ENV PHP_INI_MEMORY_LIMIT 256M
 
-RUN apt-get update && apt-get install -y libpng-dev libjpeg-dev libldap2-dev libzip-dev zlib1g-dev libicu-dev g++\
-	&& rm -rf /var/lib/apt/lists/* \
-	&& docker-php-ext-configure gd --with-png-dir=/usr --with-jpeg-dir=/usr \
-	&& docker-php-ext-install gd \
-	&& docker-php-ext-install zip \
-	&& docker-php-ext-configure ldap --with-libdir=lib/x86_64-linux-gnu/ \
-        && docker-php-ext-install ldap \
-        && docker-php-ext-install mysqli \
-        && docker-php-ext-install calendar \
-        && docker-php-ext-configure intl \
-        && docker-php-ext-install intl \
-        && apt-get autoremove --purge -y libjpeg-dev libldap2-dev zlib1g-dev libicu-dev g++
+RUN apt-get update -y \
+    && apt-get install -y --no-install-recommends \
+        libfreetype6-dev \
+        libjpeg62-turbo-dev \
+        libjpeg62-turbo \
+        libpng-dev \
+        libpng16-16 \
+        libldap2-dev \
+        libxml2-dev \
+        libzip-dev \
+        zlib1g-dev \
+        libicu-dev \
+        g++ \
+        default-mysql-client \
+        unzip \
+        curl \
+        apt-utils \
+        msmtp \
+        msmtp-mta \
+        mailutils \
+    && apt-get autoremove -y \
+    && rm -rf /var/lib/apt/lists/* \
+    && docker-php-ext-configure gd --with-png-dir=/usr --with-jpeg-dir=/usr \
+    && docker-php-ext-install -j$(nproc) calendar intl mysqli pdo_mysql gd soap zip \
+    && docker-php-ext-configure ldap --with-libdir=lib/x86_64-linux-gnu/ \
+    && docker-php-ext-install -j$(nproc) ldap && \
+    mv ${PHP_INI_DIR}/php.ini-development ${PHP_INI_DIR}/php.ini
 
 RUN mkdir /var/documents
-RUN chown www-data /var/documents
+RUN chown www-data:www-data /var/documents
 
 COPY docker-run.sh /usr/local/bin/
 RUN chmod +x /usr/local/bin/docker-run.sh
 
 RUN pecl install xdebug && docker-php-ext-enable xdebug
-RUN echo 'zend_extension="/usr/local/lib/php/extensions/no-debug-non-zts-20151012/xdebug.so"' >> /usr/local/etc/php/php.ini
-RUN echo 'xdebug.remote_autostart=0' >> /usr/local/etc/php/php.ini
-RUN echo 'xdebug.remote_enable=1' >> /usr/local/etc/php/php.ini
-RUN echo 'xdebug.default_enable=0' >> /usr/local/etc/php/php.ini
-RUN echo 'xdebug.remote_host=docker.host' >> /usr/local/etc/php/php.ini
-RUN echo 'xdebug.remote_port=9000' >> /usr/local/etc/php/php.ini
-RUN echo 'xdebug.remote_connect_back=0' >> /usr/local/etc/php/php.ini
-RUN echo 'xdebug.profiler_enable=0' >> /usr/local/etc/php/php.ini
-RUN echo 'xdebug.remote_log="/tmp/xdebug.log"' >> /usr/local/etc/php/php.ini
-RUN echo '172.17.0.1 docker.host' >> /etc/hosts
+RUN echo 'zend_extension="/usr/local/lib/php/extensions/no-debug-non-zts-20180731/xdebug.so"' >> ${PHP_INI_DIR}/php.ini
+RUN echo 'xdebug.remote_autostart=1' >> ${PHP_INI_DIR}/php.ini
+RUN echo 'xdebug.remote_enable=1' >> ${PHP_INI_DIR}/php.ini
+RUN echo 'xdebug.default_enable=1' >> ${PHP_INI_DIR}/php.ini
+#RUN echo 'xdebug.remote_host=docker.host' >> ${PHP_INI_DIR}/php.ini
+RUN echo 'xdebug.remote_port=9000' >> ${PHP_INI_DIR}/php.ini
+RUN echo 'xdebug.remote_connect_back=1' >> ${PHP_INI_DIR}/php.ini
+RUN echo 'xdebug.profiler_enable=0' >> ${PHP_INI_DIR}/php.ini
+RUN echo 'xdebug.remote_log="/tmp/xdebug.log"' >> ${PHP_INI_DIR}/php.ini
+#RUN echo 'localhost docker.host' >> /etc/hosts
+
+# set up sendmail config, to use maildev
+RUN echo "account default" > /etc/msmtprc
+RUN echo "auth off" >> /etc/msmtprc
+RUN echo "port 25" >> /etc/msmtprc
+RUN echo "host mail" >> /etc/msmtprc
+RUN echo "from local@localdomain.com" >> /etc/msmtprc
+RUN echo "domain localhost.localdomain" >> /etc/msmtprc
+RUN echo "sendmail_path=/usr/bin/msmtp -t" >> /usr/local/etc/php/conf.d/php-sendmail.ini
+RUN echo "localhost localhost.localdomain" >> /etc/hosts
 
 EXPOSE 80
 

+ 9 - 3
build/docker/README.md

@@ -1,6 +1,8 @@
 # How to use it ?
 
 The docker-compose.yml file is used to build and run Dolibarr in the current workspace.
+This docker image intended for developpement usage.
+For production usage you should consider other contributor reference like https://hub.docker.com/r/tuxgasy/dolibarr 
 
 Before build/run, define the variable HOST_USER_ID as following:
 
@@ -14,7 +16,7 @@ And then, you can run :
 
         docker-compose up
 
-This will run 3 container Docker : Dolibarr, MariaDB and PhpMyAdmin.
+This will run 4 containers Docker : Dolibarr, MariaDB, PhpMyAdmin and MailDev.
 
 The URL to go to the Dolibarr is :
 
@@ -23,6 +25,10 @@ The URL to go to the Dolibarr is :
 The URL to go to PhpMyAdmin is (login/password is root/root) :
 
         http://0.0.0.0:8080
+        
+In Dolibarr configuration Email let PHP mail function, To see all mail send by Dolibarr go to maildev
 
-Setup the database connection during the installation process, please use mariad
-b (name of the database container) as database host.
+        http://0.0.0.0:8081
+
+Setup the database connection during the installation process, please use mariadb (name of the database container) as database host.
+Setup documents folder, during the installation process, to /var/documents

+ 55 - 23
build/docker/docker-compose.yml

@@ -1,25 +1,57 @@
-mariadb:
-    build: mariadb
-    environment:
-        MYSQL_ROOT_PASSWORD: root
-        MYSQL_DATABASE: dolibarr
+version: '3'
 
-phpmyadmin:
-    image: phpmyadmin/phpmyadmin
-    environment:
-        PMA_HOST: mariadb
-    links:
-        - mariadb
-    ports:
-        - "8080:80"
+networks:
+    internal-pod:
+        internal: true
+    external-pod:
+        internal: false
 
-web:
-    build: .
-    environment:
-        HOST_USER_ID: $HOST_USER_ID
-    volumes:
-        - ../../htdocs:/var/www/html
-    links:
-        - mariadb
-    ports:
-        - "80:80"
+services:
+    mariadb:
+        image: mariadb:latest
+        environment:
+            MYSQL_ROOT_PASSWORD: root
+            MYSQL_DATABASE: dolibarr
+        ports:
+            - "3306:3306"
+        networks:
+            - internal-pod
+            - external-pod
+
+    phpmyadmin:
+        image: phpmyadmin/phpmyadmin
+        environment:
+            PMA_HOST: mariadb
+        depends_on:
+            - mariadb
+        ports:
+            - "8080:80"
+        networks:
+            - internal-pod
+            - external-pod
+
+    web:
+        build: .
+        environment:
+            HOST_USER_ID: $HOST_USER_ID
+        volumes:
+            - ../../htdocs:/var/www/html/
+            - ../../documents:/var/documents
+        ports:
+            - "80:80"
+            - "9000:9000"
+        depends_on:
+            - mariadb
+            - mail
+        networks:
+            - internal-pod
+            - external-pod
+
+    mail:
+        image: maildev/maildev
+        ports:
+            - "8081:80"
+            - "25:25"
+        networks:
+            - internal-pod
+            - external-pod

+ 9 - 3
build/docker/docker-run.sh

@@ -1,15 +1,21 @@
 #!/bin/bash
 
-usermod -u $HOST_USER_ID www-data
-groupmod -g $HOST_USER_ID www-data
+usermod -u ${HOST_USER_ID} www-data
+groupmod -g ${HOST_USER_ID} www-data
 
 chgrp -hR www-data /var/www/html
 chmod g+rwx /var/www/html/conf
 
+if [ ! -d /var/documents ]; then
+	echo "[docker-run] => create volume directory /var/documents ..."
+  	mkdir -p /var/documents
+fi
+echo "[docker-run] => Set Permission to www-data for /var/documents"
+chown -R www-data:www-data /var/documents
+
 if [ ! -f /usr/local/etc/php/php.ini ]; then
   cat <<EOF > /usr/local/etc/php/php.ini
 date.timezone = $PHP_INI_DATE_TIMEZONE
-display_errors = On
 EOF
 fi
 

+ 1 - 27
build/doxygen/doxygen_footer.html

@@ -5,7 +5,7 @@ File added into doxygen generated documentation
 
 
 <hr class="footer" />
-<address class="footer"><small>Generated on $datetime for <a href="https://www.dolibarr.org">$projectname</a> by Doxygen $doxygenversion </small></address>
+<address class="footer"><small>Generated on $datetime for <a href="https://www.dolibarr.org" title="ERP and CRM open source software">$projectname</a> by Doxygen $doxygenversion </small></address>
 
 
 <br>
@@ -22,31 +22,5 @@ File added into doxygen generated documentation
   gtag('config', 'UA-9049390-16');
 </script>
 
-
-<!-- Facebook Pixel Code -->
-<script>
-!function(f,b,e,v,n,t,s){if(f.fbq)return;n=f.fbq=function(){n.callMethod?
-n.callMethod.apply(n,arguments):n.queue.push(arguments)};if(!f._fbq)f._fbq=n;
-n.push=n;n.loaded=!0;n.version='2.0';n.queue=[];t=b.createElement(e);t.async=!0;
-t.src=v;s=b.getElementsByTagName(e)[0];s.parentNode.insertBefore(t,s)}(window,
-document,'script','//connect.facebook.net/en_US/fbevents.js');
-
-fbq('init', '1998533953704960');
-fbq('track', "PageView");</script>
-<noscript><img height="1" width="1" style="display:none"
-src="https://www.facebook.com/tr?id=1998533953704960&ev=PageView&noscript=1"
-/></noscript>
-<!-- End Facebook Pixel Code -->
-
-
-<!-- Twitter ad collector -->
-<script src="//static.ads-twitter.com/oct.js" type="text/javascript"></script>
-<script type="text/javascript">twttr.conversion.trackPid('ntm4n', { tw_sale_amount: 0, tw_order_quantity: 0 });</script>
-<noscript>
-<img height="1" width="1" style="display:none;" alt="" src="https://analytics.twitter.com/i/adsct?txn_id=ntm4n&p_id=Twitter&tw_sale_amount=0&tw_order_quantity=0" />
-<img height="1" width="1" style="display:none;" alt="" src="//t.co/i/adsct?txn_id=ntm4n&p_id=Twitter&tw_sale_amount=0&tw_order_quantity=0" />
-</noscript>
-
-
 </body>
 </html>

+ 0 - 24
build/doxygen/doxygen_header.html

@@ -12,21 +12,6 @@
 <link href="tabs.css" rel="stylesheet" type="text/css" />
 <link href="doxygen.css" rel="stylesheet" type="text/css" />
 <!-- End from dolibarr.org -->
-
-<!-- Facebook Pixel Code -->
-<script>
-!function(f,b,e,v,n,t,s){if(f.fbq)return;n=f.fbq=function(){n.callMethod?
-n.callMethod.apply(n,arguments):n.queue.push(arguments)};if(!f._fbq)f._fbq=n;
-n.push=n;n.loaded=!0;n.version='2.0';n.queue=[];t=b.createElement(e);t.async=!0;
-t.src=v;s=b.getElementsByTagName(e)[0];s.parentNode.insertBefore(t,s)}(window,
-document,'script','//connect.facebook.net/en_US/fbevents.js');
-
-fbq('init', '1998533953704960');
-fbq('track', "PageView");</script>
-<noscript><img height="1" width="1" style="display:none"
-src="https://www.facebook.com/tr?id=1998533953704960&ev=PageView&noscript=1"
-/></noscript>
-<!-- End Facebook Pixel Code -->
 </head>
 
 <body>
@@ -48,15 +33,6 @@ src="https://www.facebook.com/tr?id=1998533953704960&ev=PageView&noscript=1"
 				<div class="bannergroupmybanner">
 
 				<div class="banneritemmybanner">
-<script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
-<!-- BAN_728x90_DOXYGEN -->
-<ins class="adsbygoogle"
-     style="display:inline-block;width:728px;height:90px"
-     data-ad-client="ca-pub-1465985984238664"
-     data-ad-slot="4297390217"></ins>
-<script>
-(adsbygoogle = window.adsbygoogle || []).push({});
-</script>
 				<div class="clr"></div>
 				</div>
 

+ 28 - 26
build/exe/doliwamp/Languages/MyCatalan.isl

@@ -1,45 +1,47 @@
 
 [CustomMessages]
 
-NameAndVersion=%1 versió %2
+NameAndVersion=%1 versió %2
 AdditionalIcons=Icones addicionals:
 CreateDesktopIcon=Crea una icona a l'&Escriptori
 CreateQuickLaunchIcon=Crea una icona a la &Barra de tasques
 ProgramOnTheWeb=%1 a Internet
-UninstallProgram=Desinstal·la %1
+UninstallProgram=Desinstal·la %1
 LaunchProgram=Obre %1
-AssocFileExtension=&Associa %1 amb l'extensió de fitxer %2
-AssocingFileExtension=Associant %1 amb l'extensió de fitxer %2...
+AssocFileExtension=&Associa %1 amb l'extensió de fitxer %2
+AssocingFileExtension=Associant %1 amb l'extensió de fitxer %2...
 
-YouWillInstallDoliWamp=Va a instal·lar o actualitzar (Apache + Mysql + PHP + Dolibarr) al seu ordinador.
-ThisAssistantInstallOrUpgrade=Aquest assistent instal·la o actualitza Dolibarr ERP-CRM i tots els seus requisits (Apache, Mysql i PHP) optimitzats per a l'ús de Dolibarr.
-IfYouHaveTechnicalKnowledge=Si teniu coneixements tècnics i necessita usar la seva Apache, Mysql i PHP amb altres aplicacions a part de Dolibarr, no utilitzeu aquest assistent, hauria lació manual d'Dolibarr sobre un Apache, Mysql i PHP existent.
-ButIfYouLook=Però si busca una instal·lació automàtica, es troba en el bon camí...
-DoYouWantToStart=Vol iniciar el procés d'instal·lació/actualització?
+YouWillInstallDoliWamp=Instal·laràs DoliWamp (Dolibarr i altres programaris com Apache, Mysql i PHP) al teu ordinador.
+ThisAssistantInstallOrUpgrade=ALERTA: Utilitzar un ERP CRM instal·lat en un ordinador en local pot ser perillós: si l'ordinador s'espatlla, pots perdre totes les teves dades. Fes-ho si estàs preparat per autogestionar-te còpies de seguretat. Si no, pots utilitzar una instal·lació Saas (pots veure https://saas.dolibarr.org).
+IfYouHaveTechnicalKnowledge=Si tens coneixements tècnics i vols autogestionar el teu Apache, Mysql i PHP, no utilitzis aquest assistent i fes una instal·lació manual de Dolibarr sobre un servidor existent d'Apache, Mysql i PHP.
+ButIfYouLook=Però si busques una instal·lació automàtica en el teu propi ordinador, et trobes en el bon camí...
+DoYouWantToStart=Vols iniciar el procés d'instal·lació?
 
-TechnicalParameters=Paràmetres tècnics
-IfFirstInstall=Si es tracta de la primera instal lació, haurà d'especificar alguns paràmetres tècnics. Si no els entén, no sabeu o va a procedir a una actualització, deixi els camps amb els valors proposats per defecte.
+TechnicalParameters=Paràmetres tècnics
+IfFirstInstall=Si es tracta de la primera instal·lació, hauràs d'especificar alguns paràmetres tècnics. Si no els entens, no n'estàs segur, o estàs fent una actualització, pots deixar els valors per defecte.
 
-; WARNING !!! STRINGS HERE MUST BE LOWER THAN 70 CHARACTERS
-SMTPServer=Servidor SMTP (El seu o el del seu ISP, únicament primera instal.lació) :
-ApachePort=Puerto Apache (únicament primera instal.lació, normalment és el 80) :
-MySqlPort=Puerto Mysql (únicament primera instal.lació, normalment és el 3306) :
-MySqlPassword=Contrasenya del servidor i la base de dades MySQL de root (únicament primera instal.lació):
+; WARNING !!! STRINGS HERE MUST BE LOWER THAN 60 CHARACTERS
+SMTPServer=Servidor SMTP (propi o ISP, només primera instal·lació) :
+ApachePort=Port Apache (només primera instal·lació, normalment el 80) :
+MySqlPort=Port MySql (només primera instal·lació, normalment el 3306) :
+MySqlPassword=Contrasenya del servidor i base de dades MySql de root (només primera instal·lació):
 
-FailedToDeleteLock=FailedToDeleteLock=Error en l'eliminació del fitxer %1/www/dolibarr/install.lock. Pot ignorar l'avís però és possible que hagi de eliminar-lo manualment més tard. En aquest cas, serà informat. Feu clic a OK per continuar...
+FailedToDeleteLock=FailedToDeleteLock=Error en l'eliminació del fitxer %1/www/dolibarr/install.lock. Pots ignorar l'avís però és possible que hagis d'eliminar-lo manualment més tard. En aquest cas, serà informat. Fes clic a OK per continuar...
 
-PortAlreadyInUse=Sembla que el port %1 ja està sent utilitzat. Es recomana cancel·lar, tornar enrere i especificar un altre valor per al port% 2. Cancel·lar i escollir un altre valor?
+PortAlreadyInUse=Sembla que el port %1 ja està sent utilitzat. Es recomana cancel·lar, tornar enrere i especificar un altre valor per al port% 2. Vols cancel·lar i escollir un altre valor?
 
-FirefoxDetected=S'ha detectat Firefox al seu ordinador. Voleu activar per defecte com a navegador per Dolibarr?
-ChromeDetected=S'ha detectat Chrome al seu ordinador. Voleu activar per defecte com a navegador per Dolibarr?
-ChooseDefaultBrowser=Esculli el seu navegador per defecte. Si no està segur, simplement feu clic a Obrir:
+FirefoxDetected=S'ha detectat Firefox al teu ordinador. El vols utilitzar com a navegador per defecte per Dolibarr?
+ChromeDetected=S'ha detectat Chrome al teu ordinador. El vols utilitzar com a navegador per defecte per Dolibarr?
+ChooseDefaultBrowser=Escull el teu navegador per defecte (iexplore.exe, firefox.exe, chrome.exe, MicrosoftEdge.exe...).. Si no estàs segur, simplement fes clic a Obre:
 
-LaunchNow=Llançar ara Dolibarr
+LaunchNow=Obre ara el Dolibarr
 
-ProgramHasBeenRemoved=Els arxius del programa Dolibarr han estat eliminats. No obstant això tots els seus arxius de dades es troben encara al directori %1. Haurà eliminar aquest directori manualment per a una desinstal completa.
+ProgramHasBeenRemoved=Els arxius del programa Dolibarr han estat eliminats. No obstant això tots els seus arxius de dades es troben encara al directori %1. Hauràs d'eliminar aquest directori manualment per a una desinstal·lació completa.
 
-DoliWampWillStartApacheMysql=L'instal·lador DoliWamp intentarà iniciar o reiniciar Apache i MySQL, això pot durar des de diversos segons a un minut després de la confirmació. Iniciar la instal·lació o actualització dels servidors web i bases de dades requerides per Dolibarr?
+DoliWampWillStartApacheMysql=L'instal·lador DoliWamp intentarà iniciar o reiniciar Apache i MySQL, això pot durar des de diversos segons a un minut després de la confirmació. Vols iniciar la instal·lació o actualització dels servidors web i de base de dades requerides per Dolibarr?
 
-OldVersionFoundAndMoveInNew=S'ha trobat una versió antiga de base de dades i ha estat moguda per a ser utilitzada per la nova versió de Dolibarr
-OldVersionFoundButFailedToMoveInNew=S'ha trobat una versió antiga de base de dades, però no es pot moure per a ser utilitzada per la nova versió de Dolibarr
+OldVersionFoundAndMoveInNew=S'ha trobat una versió antiga de base de dades i ha estat moguda per a ser utilitzada per la nova versió de Dolibarr
+OldVersionFoundButFailedToMoveInNew=S'ha trobat una versió antiga de base de dades, però no es pot moure per a ser utilitzada per la nova versió de Dolibarr
 
+DLLMissing=La teva instal·lació windows no té el component "Microsoft Visual C++ Redistributable for Visual Studio 2012". Instal·la primer la versió de 32-bit (vcredist_x86.exe) (pots trobar-la a https://www.microsoft.com/en-us/download/) i reiniciar després la instal·lació/actualització de DoliWamp.
+ContinueAnyway=Continua igualment (el procés d'instal·lació podria fallar sense aquest prerequisit)

+ 3 - 2
build/exe/doliwamp/Languages/MyEnglish.isl

@@ -11,11 +11,11 @@ LaunchProgram=Launch %1
 AssocFileExtension=&Associate %1 with the %2 file extension
 AssocingFileExtension=Associating %1 with the %2 file extension...
 
-YouWillInstallDoliWamp=You will install or upgrade DoliWamp (so Dolibarr + all required third party software like Apache, Mysql and PHP) on your computer.
+YouWillInstallDoliWamp=You will install DoliWamp (so Dolibarr + all required third party software like Apache, Mysql and PHP) on your computer.
 ThisAssistantInstallOrUpgrade=WARNING: Using an ERP CRM installed on a local computer can be dangerous: if your computer break down, you can lose all your data. Do this if you are ready to manage backup yourself seriously. If not, use an installation in Saas instead (see https://saas.dolibarr.org).
 IfYouHaveTechnicalKnowledge=Moreover, if you have technical knowledges and want to manage your Apache, Mysql and PHP yourself, you should not use this assistant and make a manual installation of Dolibarr on your existing server with Apache, Mysql and PHP.
 ButIfYouLook=But if you look for an automatic setup on your local computer, you''re on the good way...
-DoYouWantToStart=Do you want to start installation/upgrade process ?
+DoYouWantToStart=Do you want to start installation process ?
 
 TechnicalParameters=Technical parameters
 IfFirstInstall=If first install, please specify some technical parameters. If you don't understand, are not sure, or are doing an upgrade, just leave the default values.
@@ -32,6 +32,7 @@ PortAlreadyInUse=Port %1 seems to be already in use. You should cancel to go bac
 
 FirefoxDetected=Firefox has been detected on your computer. Would you like to use it as the default browser for Dolibarr ?
 ChromeDetected=Chrome has been detected on your computer. Would you like to use it as the default browser for Dolibarr ?
+MicrosoftEdgeDetected=Microsoft Edge has been detected on your computer. Would you like to use it as the default browser for Dolibarr ?
 ChooseDefaultBrowser=Please choose your default browser (iexplore.exe, firefox.exe, chrome.exe, MicrosoftEdge.exe...). If you are not sure, just click Open :
 
 LaunchNow=Launch Dolibarr now

+ 2 - 2
build/exe/doliwamp/Languages/MyFrench.isl

@@ -11,11 +11,11 @@ LaunchProgram=Ex
 AssocFileExtension=&Associer %1 avec l'extension de fichier %2
 AssocingFileExtension=Associe %1 avec l'extension de fichier %2...
 
-YouWillInstallDoliWamp=Vous allez installer ou mettre à jour DoliWamp sur votre ordinateur (donc Dolibarr + tous ses composants prérequis comme Apache, Mysql et PHP).
+YouWillInstallDoliWamp=Vous allez installer DoliWamp sur votre ordinateur (donc Dolibarr + tous ses composants prérequis comme Apache, Mysql et PHP).
 ThisAssistantInstallOrUpgrade=AVERTISSEMENT: L'utilisation d'un ERP CRM installé sur un ordinateur local peut être dangereuse: si votre ordinateur tombe en panne, vous pouvez perdre toutes vos données. Faites-le si vous êtes prêt à gérer les sauvegardes vous-même sérieusement. Sinon, utilisez plutôt une installation en Saas (voir https://saas.dolibarr.org).
 IfYouHaveTechnicalKnowledge=De plus, si vous avez des compétences techniques et envisagez de partager votre Apache, Mysql et PHP avec d''autres applications que Dolibarr, vous ne devriez pas utiliser cet assistant mais faire plutôt une installation manuelle de Dolibarr sur un serveur existant équipé de Apache, Mysql et PHP.
 ButIfYouLook=Mais si vous recherchez une installation clé en main automatisée sur une poste local, vous êtes sur la bonne voie...
-DoYouWantToStart=Voulez-vous démarrer le processus d'installation/mise à jour ?
+DoYouWantToStart=Voulez-vous démarrer le processus d'installation ?
 
 TechnicalParameters=Paramètres techniques
 IfFirstInstall=S'il s'agit de la première installation, merci de spécifier ces quelques paramètres techniques. Si vous ne les comprennez pas, êtes non sûr, ou procédez à une mise à jour, laissez les champs avec les valeurs proposées par défaut.

+ 36 - 1
build/exe/doliwamp/Languages/MyGerman.isl

@@ -2,7 +2,7 @@
 [CustomMessages]
 
 NameAndVersion=%1 Version %2
-AdditionalIcons=Zusätzliche Symbole:
+AdditionalIcons=Zusätzliche Symbole:
 CreateDesktopIcon=&Desktop-Symbol erstellen
 CreateQuickLaunchIcon=Symbol in der Schnellstartleiste erstellen
 ProgramOnTheWeb=%1 im Internet
@@ -10,3 +10,38 @@ UninstallProgram=%1 entfernen
 LaunchProgram=%1 starten
 AssocFileExtension=&Registriere %1 mit der %2-Dateierweiterung
 AssocingFileExtension=%1 wird mit der %2-Dateierweiterung registriert...
+
+
+YouWillInstallDoliWamp=Sie installieren DoliWamp (also Dolibarr + alle erforderliche Software von Drittanbietern wie Apache, MySQL und PHP) auf Ihrem Computer.
+ThisAssistantInstallOrUpgrade=WARNUNG: Die Verwendung eines auf einem lokalen Computer installierten ERP-CRM kann gefährlich sein: Wenn Ihr Computer ausfällt, können Sie alle Ihre Daten verlieren. Tun Sie dies, wenn Sie bereit sind, das Backup selbst ernsthaft zu verwalten. Wenn nicht, verwenden Sie stattdessen eine Installation in Saas (siehe https://saas.dolibarr.org).
+IfYouHaveTechnicalKnowledge=Wenn Sie über technische Kenntnisse verfügen und Apache, MySQL und PHP selbst verwalten möchten, sollten Sie diesen Assistenten nicht verwenden und eine manuelle Installation von Dolibarr auf Ihrem vorhandenen Server mit Apache, MySQL und PHP durchführen.
+ButIfYouLook=Aber wenn Sie auf Ihrem lokalen Computer nach einer automatischen Einrichtung suchen, sind Sie auf dem besten Weg ...
+DoYouWantToStart=Möchten Sie den Installationsprozess starten?
+
+TechnicalParameters=technische Parameter
+IfFirstInstall=Geben Sie bei der Erstinstallation einige technische Parameter an. Wenn Sie nicht verstehen, sich nicht sicher sind oder ein Upgrade durchführen, belassen Sie einfach die Standardwerte.
+
+; WARNING !!! STRINGS HERE MUST BE LOWER THAN 60 CHARACTERS 
+SMTPServer=SMTP Server (your own or ISP SMTP server, first install only) :
+ApachePort=Apache Port (first install only, Standard ist 80) :
+MySqlPort=MySQL Port (first install only, Standard ist 3306) :
+MySqlPassword=MySQL Server und Datenbank Passwort für root (first install only):
+
+FailedToDeleteLock=Fehler beim Löschen der Datei %1/www/dolibarr/install.lock. Sie können die Warnung ignorieren, müssen sie jedoch möglicherweise später manuell entfernen, wenn Sie dazu aufgefordert werden. Klicken Sie auf OK, um fortzufahren ...
+
+PortAlreadyInUse=Port %1 scheint bereits verwendet zu werden. Sie sollten zurückgehen und einen anderen Wert für %2 Port wählen.  Auswahl abbrechen und einen anderen Wert wählen ? 
+
+FirefoxDetected=Firefox wurde auf Ihrem Computer erkannt. Möchten Sie ihn als Standardbrowser für Dolibarr verwenden?
+ChromeDetected=Chrome wurde auf Ihrem Computer erkannt. Möchten Sie ihn als Standardbrowser für Dolibarr verwenden?
+ChooseDefaultBrowser=Bitte wählen Sie Ihren Standardbrowser (iexplore.exe, firefox.exe, chrome.exe, MicrosoftEdge.exe...). Wenn Sie sich nicht sicher sind, klicken Sie einfach auf Öffnen:
+
+LaunchNow=Starten Sie jetzt Dolibarr
+
+ProgramHasBeenRemoved=Die Dolibarr-Programmdateien wurden entfernt. Alle Ihre Daten befinden sich jedoch noch im Verzeichnis %1. Für eine vollständige Deinstallation, müssen Sie dieses Verzeichnis manuell entfernen.
+DoliWampWillStartApacheMysql=Die DoliWamp-Installation wird nun starten oder Apache und MySQL neu starten. Dies kann nach dieser Bestätigung einige Sekunden bis eine Minute dauern. Wollen Sie mit der Installation oder Aktualisierung des von Dolibarr benötigten Web- und Datenbankservers starten ?
+
+OldVersionFoundAndMoveInNew=Eine alte Datenbankversion wurde gefunden und verschoben, um von der neuen Dolibarr-Version verwendet zu werden.
+OldVersionFoundButFailedToMoveInNew=Eine alte Datenbankversion wurde gefunden, konnte jedoch nicht verschoben werden, um mit der neuen Dolibarr-Version verwendet zu werden.
+
+DLLMissing=Your Windows installation is missing The "Micrsoft Visual C++ Redistributable for Visual Studio 2012" component. Please install the 32-bit version (vcredist_x86.exe) first (you can find it at https://www.microsoft.com/en-us/download/) and restart DoliWamp installation/upgrade after.
+ContinueAnyway=Fahren Sie trotzdem fort (der Installationsvorgang kann ohne diese Voraussetzung fehlschlagen).

+ 26 - 24
build/exe/doliwamp/Languages/MySpanish.isl

@@ -1,45 +1,47 @@
 
 [CustomMessages]
 
-NameAndVersion=%1 versión %2
+NameAndVersion=%1 versión %2
 AdditionalIcons=Iconos adicionales:
 CreateDesktopIcon=Crear un icono en el &escritorio
-CreateQuickLaunchIcon=Crear un icono de Inicio Rápido
+CreateQuickLaunchIcon=Crear un icono de Inicio Rápido
 ProgramOnTheWeb=%1 en la Web
 UninstallProgram=Desinstalar %1
 LaunchProgram=Ejecutar %1
-AssocFileExtension=&Asociar %1 con la extensión de archivo %2
-AssocingFileExtension=Asociando %1 con la extensión de archivo %2...
+AssocFileExtension=&Asociar %1 con la extensión de archivo %2
+AssocingFileExtension=Asociando %1 con la extensión de archivo %2...
 
-YouWillInstallDoliWamp=Va a instalar o actualizar (Apache+Mysql+PHP+Dolibarr) en su ordenador.
-ThisAssistantInstallOrUpgrade=Este asistente instala o actualiza Dolibarr ERP-CRM y todos sus requisitos (Apache, Mysql y PHP) optimizados para el uso de  Dolibarr.
-IfYouHaveTechnicalKnowledge=Si tiene conocimientos técnicos y necesita usar su Apache, Mysql y PHP con otras aplicaciones aparte de Dolibarr, no debería usar este asistente, debería realizar una instalación manual de Dolibarr sobre un Apache, Mysql y PHP existente.
-ButIfYouLook=Pero si busca una instalación automática, se encuentra en el buen camino...
-DoYouWantToStart=¿Quiere iniciar el proceso de instalación/actualización?
+YouWillInstallDoliWamp=Va a instalar DoliWamp (Dolibarr y otro software como Apache, Mysql y PHP) en su ordenador.
+ThisAssistantInstallOrUpgrade=ALERTA: Utilizar un ERP CRM instalado en un ordenador en local puede ser peligroso: si el ordenador se estropea, puede perder todos sus datos. Hágalo si está preparado para autogestionar sus copias de seguridad. Si no, puede utilizar una instalacion Saas (puede ver https://saas.dolibarr.org).
+IfYouHaveTechnicalKnowledge=Si tiene conocimientos técnicos y necesita usar su Apache, Mysql y PHP con otras aplicaciones aparte de Dolibarr, no debería usar este asistente, debería realizar una instalación manual de Dolibarr sobre un Apache, Mysql y PHP existente.
+ButIfYouLook=Pero si busca una instalación automática en tu propio ordenador, se encuentra en el buen camino...
+DoYouWantToStart=¿Quiere iniciar el proceso de instalación?
 
-TechnicalParameters=Parámetros técnicos
-IfFirstInstall=Si se trata de la primera instalación, deberá especificar algunos parámetros técnicos. Si no los entiende, no está seguro o va a proceder a una actualización, deje los campos con los valores propuestos por defecto.
+TechnicalParameters=Parámetros técnicos
+IfFirstInstall=Si se trata de la primera instalación, deberá especificar algunos parámetros técnicos. Si no los entiende, no está seguro o va a proceder a una actualización, deje los campos con los valores propuestos por defecto.
 
-; WARNING !!! STRINGS HERE MUST BE LOWER THAN 70 CHARACTERS
-SMTPServer=Servidor SMTP (El suyo o el de su ISP, únicamente primera instalación) :
-ApachePort=Puerto Apache (únicamente primera instalación, normalmente es el 80) :
-MySqlPort=Puerto Mysql (únicamente primera instalación, normalmente es el 3306) :
-MySqlPassword=Contraseña del servidor y la base de datos MySQL de root (únicamente primera instalación):
+; WARNING !!! STRINGS HERE MUST BE LOWER THAN 60 CHARACTERS
+SMTPServer=Servidor SMTP (propio o su ISP, sólo primera instalación) :
+ApachePort=Puerto Apache (sólo primera instalación, normalmente el 80) :
+MySqlPort=Puerto Mysql (sólo primera instalación, normalmente el 3306) :
+MySqlPassword=Contraseña del servidor y la base de datos MySQL de root (sólo primera instalación):
 
-FailedToDeleteLock=Error en la eliminación del archivo %1/www/dolibarr/install.lock. Puede ignorar el aviso pero es posible que deba eliminarlo manualmente más tarde. En este caso, será informado. Haga clic en OK para continuar...
+FailedToDeleteLock=Error en la eliminación del archivo %1/www/dolibarr/install.lock. Puede ignorar el aviso pero es posible que deba eliminarlo manualmente más tarde. En este caso, será informado. Haga clic en OK para continuar...
 
-PortAlreadyInUse=Parece que el puerto %1 ya esta siendo usado. Se recomienda cancelar, volver atras y especificar otro valor para el puerto %2. ¿Cancelar y escojer otro valor?
+PortAlreadyInUse=Parece que el puerto %1 ya esta siendo usado. Se recomienda cancelar, volver atras y especificar otro valor para el puerto %2. ¿Cancelar y escojer otro valor?
 
 FirefoxDetected=Se ha detectado Firefox en su ordenador. Desea activarlo por defecto como navegador para Dolibarr ?
 ChromeDetected=Se ha detectado Chrome en su ordenador. Desea activarlo por defecto como navegador para Dolibarr ?
-ChooseDefaultBrowser=Escoja su navegador por defecto. Si no está seguro, simplementa haga clic en Abrir :
+ChooseDefaultBrowser=Escoja su navegador por defecto (iexplore.exe, firefox.exe, chrome.exe, MicrosoftEdge.exe...). Si no está seguro, simplementa haga clic en Abrir :
 
 LaunchNow=Lanzar ahora Dolibarr
 
-ProgramHasBeenRemoved=Los archivos del programa Dolibarr han sido eliminados. Sin embargo todos sus archivos de datos se encuentran todavía en el directorio %1. Deberá eliminar este directorio manualmente para una desinstalación completa.
+ProgramHasBeenRemoved=Los archivos del programa Dolibarr han sido eliminados. Sin embargo todos sus archivos de datos se encuentran todavía en el directorio %1. Deberá eliminar este directorio manualmente para una desinstalación completa.
 
-DoliWampWillStartApacheMysql=El instalador DoliWamp intentará iniciar o reiniciar Apache y MySQL, esto puede durar desde varios segundos a un minuto después de la confirmación. ¿Iniciar la instalación o actualización de los servidores Web y bases de datos requeridas por Dolibarr?
+DoliWampWillStartApacheMysql=El instalador DoliWamp intentará iniciar o reiniciar Apache y MySQL, esto puede durar desde varios segundos a un minuto después de la confirmación. ¿Iniciar la instalación o actualización de los servidores Web y bases de datos requeridas por Dolibarr?
 
-OldVersionFoundAndMoveInNew=Se ha encontrado una versión antigua de base de datos y ha sido movida para ser utilizada por la nueva versión de Dolibarr
-OldVersionFoundButFailedToMoveInNew=Se ha encontrado una versión antigua de base de datos, pero no se pudo mover para ser utilizada por la nueva versión de Dolibarr
- 	  	 
+OldVersionFoundAndMoveInNew=Se ha encontrado una versión antigua de base de datos y ha sido movida para ser utilizada por la nueva versión de Dolibarr
+OldVersionFoundButFailedToMoveInNew=Se ha encontrado una versión antigua de base de datos, pero no se pudo mover para ser utilizada por la nueva versión de Dolibarr
+ 	  	 
+DLLMissing=Su instalación Windows no tiene el componente "Microsoft Visual C++ Redistributable for Visual Studio 2012". Instale primero la versión de 32-bit (vcredist_x86.exe) (puedes encontrarlo en https://www.microsoft.com/en-us/download/) y reiniciar después la instalación/actualización de DoliWamp.
+ContinueAnyway=Continua igualmente (el proceso de instalación podría fallar sin este prerequisito)

+ 1 - 0
build/exe/doliwamp/README.md

@@ -5,6 +5,7 @@ It's a dedicated Dolibarr version for Windows newbies with no technical knowledg
 
 This directory contains files used by *makepack-dolibarr.pl* script to build the all-in-on .EXE package DoliWamp, ready
 to be distributed (for Windows).
+The build of .exe files need to have some windows executable files already installed (Apache, MariaDb). The package to install to get this files are defined into the file *doliwamp.iss* (searhc line starting with "; Value OK:")
 
 If you have technical knowledge in web administration and plan to share your server instance (Apache, Mysql or PHP) with other projects than Dolibarr or want to use Dolibarr other components (PostgreSQL), you should not use this assistant and make a manual installation of Dolibarr on your existing server by downloading the standard package (.tgz or .zip file).
 

+ 76 - 51
build/exe/doliwamp/doliwamp.iss

@@ -32,7 +32,7 @@ AppPublisherURL=https://www.nltechno.com
 AppSupportURL=https://www.dolibarr.org
 AppUpdatesURL=https://www.dolibarr.org
 AppComments=DoliWamp includes Dolibarr, Apache, PHP and Mysql software.
-AppCopyright=Copyright (C) 2008-2019 Laurent Destailleur (NLTechno), Fabian Rodriguez (Le Goût du Libre)
+AppCopyright=Copyright (C) 2008-2020 Laurent Destailleur (NLTechno), Fabian Rodriguez (Le Goût du Libre)
 DefaultDirName=c:\dolibarr
 DefaultGroupName=Dolibarr
 ;LicenseFile=COPYING
@@ -41,7 +41,7 @@ Compression=lzma
 SolidCompression=yes
 WizardImageFile=build\exe\doliwamp\doliwamp.bmp
 WizardSmallImageFile=build\exe\doliwamp\doliwampsmall.bmp
-SetupIconFile=doc\images\dolibarr.ico
+SetupIconFile=doc\images\dolibarr_favicon.ico
 ;To say the installer must be ran as admin
 PrivilegesRequired=admin
 DisableProgramGroupPage=yes
@@ -81,7 +81,7 @@ Name: "desktopicon"; Description: {cm:CreateDesktopIcon}; GroupDescription: {cm:
 Name: "{app}\logs"
 Name: "{app}\tmp"
 Name: "{app}\dolibarr_documents"
-Name: "{app}\bin\apache\apache2.4.9\logs"
+Name: "{app}\bin\apache\apache2.4.41\logs"
 
 [Files]
 ; Stop/start
@@ -98,35 +98,48 @@ Source: "build\exe\doliwamp\mysqltestinstall.bat.install"; DestDir: "{app}\"; Fl
 Source: "build\exe\doliwamp\startdoliwamp_manual_donotuse.bat.install"; DestDir: "{app}\"; Flags: ignoreversion;
 Source: "build\exe\doliwamp\builddemosslfiles.bat.install"; DestDir: "{app}\"; Flags: ignoreversion;
 Source: "build\exe\doliwamp\UsedPort.exe"; DestDir: "{app}\"; Flags: ignoreversion;
+
 ; PhpMyAdmin, Apache, Php, Mysql
 ; Put here path of Wampserver applications
 ; Value OK: apache 2.2.6,  php 5.2.5 (5.2.11, 5.3.0 and 5.3.1 fails if php_exif, php_pgsql, php_zip is on), mysql 5.0.45
 ; Value OK: apache 2.2.11, php 5.3.0 (if no php_exif, php_pgsql, php_zip), mysql 5.0.45
-; Value OK: apache 2.4.19, php 5.5.12, mysql 5.0.45 instead of 5.6.17 (wampserver2.5-Apache-2.4.9-Mysql-5.6.17-php5.5.12-32b.exe)
-Source: "C:\Program Files\Wamp\apps\phpmyadmin4.1.14\*.*"; DestDir: "{app}\apps\phpmyadmin4.1.14"; Flags: ignoreversion recursesubdirs; Excludes: "config.inc.php,wampserver.conf,*.log,*_log,darkblue_orange"
-Source: "C:\Program Files\Wamp\bin\apache\apache2.4.9\*.*"; DestDir: "{app}\bin\apache\apache2.4.9"; Flags: ignoreversion recursesubdirs; Excludes: "php.ini,httpd.conf,wampserver.conf,*.log,*_log"
-Source: "C:\Program Files\Wamp\bin\php\php5.5.12\*.*"; DestDir: "{app}\bin\php\php5.5.12"; Flags: ignoreversion recursesubdirs; Excludes: "php.ini,phpForApache.ini,wampserver.conf,*.log,*_log"
-Source: "C:\Program Files\Wamp\bin\mysql\mysql5.0.45\*.*"; DestDir: "{app}\bin\mysql\mysql5.0.45"; Flags: ignoreversion recursesubdirs; Excludes: "my.ini,data\*,wampserver.conf,*.log,*_log,MySQLInstanceConfig.exe"
+; Value OK: apache 2.4.9,  php 5.5.12, mysql 5.0.45 instead of 5.6.17 (wampserver2.5-Apache-2.4.9-Mysql-5.6.17-php5.5.12-32b.exe)
+; Value OK: apache 2.4.41, php 7.3.12, mariadb10.4.10 (wampserver3.2.0_x64.exe)
+Source: "C:\wamp64\apps\phpmyadmin4.9.2\*.*"; DestDir: "{app}\apps\phpmyadmin4.9.2"; Flags: ignoreversion recursesubdirs; Excludes: "config.inc.php,wampserver.conf,*.log,*_log,darkblue_orange"
+;Source: "C:\Program Files\Wamp\bin\apache\apache2.4.9\*.*"; DestDir: "{app}\bin\apache\apache2.4.9"; Flags: ignoreversion recursesubdirs; Excludes: "php.ini,httpd.conf,wampserver.conf,*.log,*_log"
+Source: "C:\wamp64\bin\apache\apache2.4.41\*.*"; DestDir: "{app}\bin\apache\apache2.4.41"; Flags: ignoreversion recursesubdirs; Excludes: "php.ini,httpd.conf,wampserver.conf,*.log,*_log"
+;Source: "C:\Program Files\Wamp\bin\php\php5.5.12\*.*"; DestDir: "{app}\bin\php\php5.5.12"; Flags: ignoreversion recursesubdirs; Excludes: "php.ini,phpForApache.ini,wampserver.conf,*.log,*_log"
+Source: "C:\wamp64\bin\php\php7.3.12\*.*"; DestDir: "{app}\bin\php\php7.3.12"; Flags: ignoreversion recursesubdirs; Excludes: "php.ini,phpForApache.ini,wampserver.conf,*.log,*_log"
+;Source: "C:\Program Files\Wamp\bin\mysql\mysql5.0.45\*.*"; DestDir: "{app}\bin\mysql\mysql5.0.45"; Flags: ignoreversion recursesubdirs; Excludes: "my.ini,data\*,wampserver.conf,*.log,*_log,MySQLInstanceConfig.exe"
+Source: "C:\wamp64\bin\mariadb\mariadb10.4.10\*.*"; DestDir: "{app}\bin\mariadb\mariadb10.4.10"; Flags: ignoreversion recursesubdirs; Excludes: "my.ini,data\*,wampserver.conf,*.log,*_log,MySQLInstanceConfig.exe"
+
 ; Mysql data files (does not overwrite if exists)
-Source: "build\exe\doliwamp\mysql\*.*"; DestDir: "{app}\bin\mysql\data\mysql"; Flags: onlyifdoesntexist ignoreversion recursesubdirs; Excludes: ".gitignore,.project,CVS\*,Thumbs.db"
+; We must copy them because the tool mysql_install_db.exe to generate them at first install does not return to prompt so make install hang
+;Source: "build\exe\doliwamp\mysql\*.*"; DestDir: "{app}\bin\mariadb\data\mysql"; Flags: onlyifdoesntexist ignoreversion recursesubdirs; Excludes: ".gitignore,.project,CVS\*,Thumbs.db"
+
 ; Dolibarr
 Source: "htdocs\*.*"; DestDir: "{app}\www\dolibarr\htdocs"; Flags: ignoreversion recursesubdirs; Excludes: ".gitignore,.project,CVS\*,Thumbs.db,custom\*,custom2\*,documents\*,includes\ckeditor\_source\*,includes\savant\*,includes\phpmailer\*,jquery\plugins\template\*,nltechno*\*,sabre\sabre\*\tests,PHPExcel\Shared\PDF\*,PHPExcel\Shared\PCLZip\*,tcpdf\fonts\dejavu-fonts-ttf-2.33\*,tcpdf\fonts\freefont-20100919\*,tcpdf\fonts\utils\*,*\conf.php,*\conf.php.mysql,*\conf.php.old,*\conf.php.postgres,*\conf.php.sav,*\install.forced.php"
 Source: "dev\*.*"; DestDir: "{app}\www\dolibarr\dev"; Flags: ignoreversion recursesubdirs; Excludes: ".gitignore,.project,CVS\*,Thumbs.db,dbmodel\*,fpdf\*,initdata\*,initdemo\*,iso-normes\*,licence\*,phpcheckstyle\*,phpunit\*,samples\*,test\*,uml\*,vagrant\*,xdebug\*"
 Source: "doc\*.*"; DestDir: "{app}\www\dolibarr\doc"; Flags: ignoreversion recursesubdirs; Excludes: ".gitignore,.project,CVS\*,Thumbs.db,wiki\*,plaquette\*,dev\*,images\dolibarr_screenshot2.png,images\dolibarr_screenshot3.png,images\dolibarr_screenshot4.png,images\dolibarr_screenshot5.png,images\dolibarr_screenshot6.png,images\dolibarr_screenshot7.png,images\dolibarr_screenshot8.png,images\dolibarr_screenshot9.png,images\dolibarr_screenshot10.png,images\dolibarr_screenshot11.png,images\dolibarr_screenshot12.png"
 Source: "scripts\*.*"; DestDir: "{app}\www\dolibarr\scripts"; Flags: ignoreversion recursesubdirs; Excludes: ".gitignore,.project,CVS\*,Thumbs.db,product\materiel.net.php,product\import-product.php"
 Source: "*.*"; DestDir: "{app}\www\dolibarr"; Flags: ignoreversion; Excludes: ".gitignore,.project,CVS\*,Thumbs.db,default.properties,install.lock"
+
 ; Config files
 Source: "build\exe\doliwamp\phpmyadmin.conf.install"; DestDir: "{app}\alias"; Flags: ignoreversion;
 Source: "build\exe\doliwamp\dolibarr.conf.install"; DestDir: "{app}\alias"; Flags: ignoreversion;
 Source: "build\exe\doliwamp\config.inc.php.install"; DestDir: "{app}\apps\phpmyadmin4.1.14"; Flags: ignoreversion;
-Source: "build\exe\doliwamp\httpd.conf.install"; DestDir: "{app}\bin\apache\apache2.4.9\conf"; Flags: ignoreversion;
+;Source: "build\exe\doliwamp\httpd.conf.install"; DestDir: "{app}\bin\apache\apache2.4.9\conf"; Flags: ignoreversion;
+Source: "build\exe\doliwamp\httpd.conf.install"; DestDir: "{app}\bin\apache\apache2.4.41\conf"; Flags: ignoreversion;
 Source: "build\exe\doliwamp\my.ini.install"; DestDir: "{app}\bin\mysql\mysql5.0.45"; Flags: ignoreversion;
-Source: "build\exe\doliwamp\php.ini.install"; DestDir: "{app}\bin\php\php5.5.12"; Flags: ignoreversion;
+Source: "build\exe\doliwamp\my.ini.install"; DestDir: "{app}\bin\mariadb\mariadb10.4.10"; Flags: ignoreversion;
+;Source: "build\exe\doliwamp\php.ini.install"; DestDir: "{app}\bin\php\php5.5.12"; Flags: ignoreversion;
+Source: "build\exe\doliwamp\php.ini.install"; DestDir: "{app}\bin\php\php7.3.12"; Flags: ignoreversion;
 Source: "build\exe\doliwamp\index.php.install"; DestDir: "{app}\www"; Flags: ignoreversion;
 Source: "build\exe\doliwamp\install.forced.php.install"; DestDir: "{app}\www\dolibarr\htdocs\install"; Flags: ignoreversion;
 Source: "build\exe\doliwamp\openssl.conf"; DestDir: "{app}"; Flags: ignoreversion;
 Source: "build\exe\doliwamp\ca_demo_dolibarr.crt"; DestDir: "{app}"; Flags: ignoreversion;
 Source: "build\exe\doliwamp\ca_demo_dolibarr.key"; DestDir: "{app}"; Flags: ignoreversion;
+
 ; Licence
 Source: "COPYRIGHT"; DestDir: "{app}"; Flags: ignoreversion;
 
@@ -227,9 +240,12 @@ procedure InitializeWizard();
 begin
 
   //version des applis, a modifier pour chaque version de WampServer 2
-  apacheVersion := '2.4.9';
-  phpVersion := '5.5.12' ;
-  mysqlVersion := '5.0.45';
+  //apacheVersion := '2.4.9';
+  //phpVersion := '5.5.12' ;
+  apacheVersion := '2.4.41';
+  phpVersion := '7.3.12' ;
+  //mysqlVersion := '5.0.45';
+  mysqlVersion := '10.4.10';
   phpmyadminVersion := '4.1.14';
 
   smtpServer := 'localhost';
@@ -361,18 +377,19 @@ begin
     winPath := ExpandConstant('{win}');
     pathWithSlashes := path;
     StringChange (pathWithSlashes, '\','/');
-    datadir := pathWithSlashes+'/bin/mysql/data';
-    exedirold := pathWithSlashes+'/bin/mysql/mysql5.0.45';
-    exedirnew := pathWithSlashes+'/bin/mysql/mysql5.0.45';
 
 	
-	
+	// Migration of database
+//	datadir := pathWithSlashes+'/bin/mariadb/marradb10.4.10/data';
+//    exedirold := pathWithSlashes+'/bin/mariadb/marradb10.4.10/';
+//    exedirnew := pathWithSlashes+'/bin/mariadb/marradb10.4.10/';
+		
     // If we have a new database version, we should only copy old my.ini file into new directory
     // and change only all basedir= strings to use new version. Like this, data dir is still correct.
     // Install of service and stop/start scripts are already rebuild by installer.
 //      FileCopy(exedirold+'/my.ini',exedirnew+'/my.ini', true);
 
-//    We should not need this, also databases may not be called dolibarr
+	// We should not need this, also databases may not be called dolibarr
 //      res := RenameFile(ibdata1dirold+'/dolibarr',ibdata1dirnew+'/dolibarr');
 //      if res then
 //      begin
@@ -392,39 +409,21 @@ begin
     //----------------------------------------------
 	// TODO Update this list when changing PHP/Apache versions
 	
-    phpDllCopy := 'fdftk.dll';
-    filecopy (pathWithSlashes+'/bin/php/php'+phpVersion+'/'+phpDllCopy, pathWithSlashes+'/bin/apache/apache'+apacheVersion+'/bin/'+phpDllCopy, False);
-    phpDllCopy := 'fribidi.dll';
-    filecopy (pathWithSlashes+'/bin/php/php'+phpVersion+'/'+phpDllCopy, pathWithSlashes+'/bin/apache/apache'+apacheVersion+'/bin/'+phpDllCopy, False);
-    phpDllCopy := 'gds32.dll';
+    phpDllCopy := 'libssh2.dll';
     filecopy (pathWithSlashes+'/bin/php/php'+phpVersion+'/'+phpDllCopy, pathWithSlashes+'/bin/apache/apache'+apacheVersion+'/bin/'+phpDllCopy, False);
-    phpDllCopy := 'libeay32.dll';
+    phpDllCopy := 'icuuc64.dll';
     filecopy (pathWithSlashes+'/bin/php/php'+phpVersion+'/'+phpDllCopy, pathWithSlashes+'/bin/apache/apache'+apacheVersion+'/bin/'+phpDllCopy, False);
-    phpDllCopy := 'libmhash.dll';
+    phpDllCopy := 'icuin64.dll';
     filecopy (pathWithSlashes+'/bin/php/php'+phpVersion+'/'+phpDllCopy, pathWithSlashes+'/bin/apache/apache'+apacheVersion+'/bin/'+phpDllCopy, False);
-    phpDllCopy := 'libmysql.dll';
+    phpDllCopy := 'icuio64.dll';
     filecopy (pathWithSlashes+'/bin/php/php'+phpVersion+'/'+phpDllCopy, pathWithSlashes+'/bin/apache/apache'+apacheVersion+'/bin/'+phpDllCopy, False);
-    phpDllCopy := 'libpq.dll';
+    phpDllCopy := 'icudt64.dll';
     filecopy (pathWithSlashes+'/bin/php/php'+phpVersion+'/'+phpDllCopy, pathWithSlashes+'/bin/apache/apache'+apacheVersion+'/bin/'+phpDllCopy, False);
-    phpDllCopy := 'msql.dll';
+    phpDllCopy := 'libsasl.dll';
     filecopy (pathWithSlashes+'/bin/php/php'+phpVersion+'/'+phpDllCopy, pathWithSlashes+'/bin/apache/apache'+apacheVersion+'/bin/'+phpDllCopy, False);
-    phpDllCopy := 'libmcrypt.dll';
-    filecopy (pathWithSlashes+'/bin/php/php'+phpVersion+'/'+phpDllCopy, pathWithSlashes+'/bin/apache/apache'+apacheVersion+'/bin/'+phpDllCopy, False);
-    phpDllCopy := 'libmysqli.dll';
-    filecopy (pathWithSlashes+'/bin/php/php'+phpVersion+'/'+phpDllCopy, pathWithSlashes+'/bin/apache/apache'+apacheVersion+'/bin/'+phpDllCopy, False);
-    phpDllCopy := 'ntwdblib.dll';
-    filecopy (pathWithSlashes+'/bin/php/php'+phpVersion+'/'+phpDllCopy, pathWithSlashes+'/bin/apache/apache'+apacheVersion+'/bin/'+phpDllCopy, False);
-
-    phpDllCopy := 'php5activescript.dll';
-    filecopy (pathWithSlashes+'/bin/php/php'+phpVersion+'/'+phpDllCopy, pathWithSlashes+'/bin/apache/apache'+apacheVersion+'/bin/'+phpDllCopy, False);
-    phpDllCopy := 'php5nsapi.dll';
-    filecopy (pathWithSlashes+'/bin/php/php'+phpVersion+'/'+phpDllCopy, pathWithSlashes+'/bin/apache/apache'+apacheVersion+'/bin/'+phpDllCopy, False);
-    phpDllCopy := 'php5ts.dll';
-    filecopy (pathWithSlashes+'/bin/php/php'+phpVersion+'/'+phpDllCopy, pathWithSlashes+'/bin/apache/apache'+apacheVersion+'/bin/'+phpDllCopy, False);
-
-    phpDllCopy := 'ssleay32.dll';
+    phpDllCopy := 'php7apache2_4.dll';
     filecopy (pathWithSlashes+'/bin/php/php'+phpVersion+'/'+phpDllCopy, pathWithSlashes+'/bin/apache/apache'+apacheVersion+'/bin/'+phpDllCopy, False);
-    phpDllCopy := 'yaz.dll';
+    phpDllCopy := 'php7ts.dll';
     filecopy (pathWithSlashes+'/bin/php/php'+phpVersion+'/'+phpDllCopy, pathWithSlashes+'/bin/apache/apache'+apacheVersion+'/bin/'+phpDllCopy, False);
 
 
@@ -516,6 +515,17 @@ begin
 		then
 		begin
 		    
+	    //----------------------------------------------
+	    // check that we don't try an upgrade (mysql upgrade no supported)
+	    //----------------------------------------------
+
+	    if FileExists (pathWithSlashes+'/bin/mysql/mysql5.0.45/bin/mysqld-nt.exe') then
+	    begin
+	      MsgBox('An existing installation using an old version of Mysql exists. Sorry, upgrade with this installer is not possible.', mbInformation, MB_OK);
+	      Abort();
+	    end;
+
+
 	    //----------------------------------------------
 	    // Rename file c:/windows/php.ini (we don't want it)
 	    //----------------------------------------------
@@ -578,15 +588,26 @@ begin
 		    end;
 		  end;
 	      
+	      if browser = 'iexplore.exe' then
+	      begin
+		    if FileExists (winPath+'/SystemApps/Microsoft.MicrosoftEdge_8wekyb3d8bbwe/MicrosoftEdge.exe')  then
+		    begin
+		      if MsgBox(CustomMessage('MicrosoftEdgeDetected'),mbConfirmation,MB_YESNO) = IDYES then
+		      begin
+		        browser := winPath+'/SystemApps/Microsoft.MicrosoftEdge_8wekyb3d8bbwe/MicrosoftEdge.exe';
+		      end;
+		    end;
+		  end;
+
 	      if browser = 'iexplore.exe' then
 	      begin
             if FileExists (pfPath+'/Internet Explorer/iexplore.exe')  then
             begin
-               GetOpenFileName(CustomMessage('ChooseDefaultBrowser'), browser, pfPath+'/Internet Explorer','exe files (*.exe)|*.exe|All files (*.*)|*.*' ,'exe');
+               GetOpenFileName(CustomMessage('ChooseDefaultBrowser'), browser, pfPath+'/Internet Explorer', 'exe files (*.exe)|*.exe|All files (*.*)|*.*' ,'exe');
 	        end
 	        else
 	        begin
-               GetOpenFileName(CustomMessage('ChooseDefaultBrowser'), browser, winPath,'exe files (*.exe)|*.exe|All files (*.*)|*.*' ,'exe');
+               GetOpenFileName(CustomMessage('ChooseDefaultBrowser'), browser, winPath, 'exe files (*.exe)|*.exe|All files (*.*)|*.*' ,'exe');
 	        end;
 	      end;
 	
@@ -727,8 +748,8 @@ begin
 		    // Create file my.ini (if not exists)
 		    //----------------------------------------------
 		
-		    destFile := pathWithSlashes+'/bin/mysql/mysql'+mysqlVersion+'/my.ini';
-		    srcFile := pathWithSlashes+'/bin/mysql/mysql'+mysqlVersion+'/my.ini.install';
+		    destFile := pathWithSlashes+'/bin/mariadb/mariadb'+mysqlVersion+'/my.ini';
+		    srcFile := pathWithSlashes+'/bin/mariadb/mariadb'+mysqlVersion+'/my.ini.install';
 		
 		    if not FileExists (destFile) then
 		    begin
@@ -814,6 +835,8 @@ begin
 		      StringChangeEx (srcContents, 'WAMPROOT', pathWithSlashes, True);
 		      StringChangeEx (srcContents, 'WAMPMYSQLVERSION', mysqlVersion, True);
 		      StringChangeEx (srcContents, 'WAMPAPACHEVERSION', apacheVersion, True);
+		      StringChangeEx (srcContents, 'WAMPMYSQLPORT', myport, True);
+		      StringChangeEx (srcContents, 'WAMPMYSQLNEWPASSWORD', mypass, True);
 		
 		      SaveStringToFile(destFile,srcContents, False);
 		    end;
@@ -956,9 +979,11 @@ begin
 		
 		
 		
-	   		// Uninstall and Install services
+	   		// Uninstall services
 		  	batFile := path+'\uninstall_services.bat';
         Exec(batFile, '',path+'\', SW_HIDE, ewWaitUntilTerminated, myResult);
+  			
+  			// Install services
   			batFile := path+'\install_services.bat';
   			Exec(batFile, '',path+'\', SW_HIDE, ewWaitUntilTerminated, myResult);
 			
@@ -1057,7 +1082,7 @@ Filename: "{app}\rundoliwamp.bat"; Description: {cm:LaunchNow}; Flags: shellexec
 
 [UninstallDelete]
 Type: files; Name: "{app}\*.*"
-Type: files; Name: "{app}\bin\mysql\mysql5.0.45\*.*"
+Type: files; Name: "{app}\bin\mariadb\mariadb10.4.10\*.*"
 Type: filesandordirs; Name: "{app}\alias"
 Type: filesandordirs; Name: "{app}\apps"
 Type: filesandordirs; Name: "{app}\bin\apache"

+ 202 - 222
build/exe/doliwamp/httpd.conf.install

@@ -1,55 +1,74 @@
 #
 # This is the main Apache HTTP server configuration file.  It contains the
 # configuration directives that give the server its instructions.
-# See <URL:http://httpd.apache.org/docs/2.2/> for detailed information.
-# In particular, see 
-# <URL:http://httpd.apache.org/docs/2.2/mod/directives.html>
+# See <URL:http://httpd.apache.org/docs/2.4/> for detailed information.
+# In particular, see
+# <URL:http://httpd.apache.org/docs/2.4/mod/directives.html>
 # for a discussion of each configuration directive.
 #
 # Do NOT simply read the instructions in here without understanding
 # what they do.  They're here only as hints or reminders.  If you are unsure
-# consult the online docs. You have been warned.  
+# consult the online docs. You have been warned.
 #
 # Configuration and logfile names: If the filenames you specify for many
 # of the server's control files begin with "/" (or "drive:/" for Win32), the
 # server will use that explicit path.  If the filenames do *not* begin
-# with "/", the value of ServerRoot is prepended -- so "logs/foo.log"
-# with ServerRoot set to "C:/Program Files/Apache Software Foundation/Apache2.2" will be interpreted by the
-# server as "C:/Program Files/Apache Software Foundation/Apache2.2/logs/foo.log".
+# with "/", the value of ServerRoot is prepended -- so "logs/access_log"
+# with ServerRoot set to "/usr/local/apache2" will be interpreted by the
+# server as "/usr/local/apache2/logs/access_log", whereas "/logs/access_log"
+# will be interpreted as '/logs/access_log'.
 #
 # NOTE: Where filenames are specified, you must use forward slashes
 # instead of backslashes (e.g., "c:/apache" instead of "c:\apache").
-# If a drive letter is omitted, the drive on which Apache.exe is located
+# If a drive letter is omitted, the drive on which httpd.exe is located
 # will be used by default.  It is recommended that you always supply
-# an explicit drive letter in absolute paths, however, to avoid
-# confusion.
-#
-
-# ThreadsPerChild: constant number of worker threads in the server process
-# MaxRequestsPerChild: maximum  number of requests a server process serves
-ThreadsPerChild 250
-MaxRequestsPerChild  0
+# an explicit drive letter in absolute paths to avoid confusion.
+ServerSignature On
+ServerTokens Full
 
 #
 # ServerRoot: The top of the directory tree under which the server's
 # configuration, error, and log files are kept.
 #
 # Do not add a slash at the end of the directory path.  If you point
-# ServerRoot at a non-local disk, be sure to point the LockFile directive
-# at a local disk.  If you wish to share the same ServerRoot for multiple
-# httpd daemons, you will need to change at least LockFile and PidFile.
-#
+# ServerRoot at a non-local disk, be sure to specify a local disk on the
+# Mutex directive, if file-based mutexes are used.  If you wish to share the
+# same ServerRoot for multiple httpd daemons, you will need to change at
+# least PidFile.
+#
+# Apache variable names used by Apache conf files:
+# The names and contents of variables:
+# APACHE24, VERSION_APACHE, INSTALL_DIR, APACHE_DIR, SRVROOT
+# should never be changed.
+Define APACHE24 Apache2.4
+Define VERSION_APACHE WAMPAPACHEVERSION
+Define INSTALL_DIR WAMPROOT
+Define APACHE_DIR ${INSTALL_DIR}/bin/apache/apache${VERSION_APACHE}
+Define SRVROOT ${INSTALL_DIR}/bin/apache/apache${VERSION_APACHE}
+
 ServerRoot "WAMPROOT/bin/apache/apacheWAMPAPACHEVERSION"
 
+#
+# Mutex: Allows you to set the mutex mechanism and mutex file directory
+# for individual mutexes, or change the global defaults
+#
+# Uncomment and change the directory if mutexes are file-based and the default
+# mutex file directory is not on a local disk or is not appropriate for some
+# other reason.
+#
+# Mutex default:logs
+
 #
 # Listen: Allows you to bind Apache to specific IP addresses and/or
 # ports, instead of the default. See also the <VirtualHost>
 # directive.
 #
-# Change this to Listen on specific IP addresses as shown below to 
-# prevent Apache from glomming onto all bound IP addresses (0.0.0.0)
+# Change this to Listen on specific IP addresses as shown below to
+# prevent Apache from glomming onto all bound IP addresses.
 #
 #Listen 12.34.56.78:80
+#Listen 0.0.0.0:80
+#Listen [::0]:80
 Listen WAMPAPACHEPORT
 
 #
@@ -64,40 +83,72 @@ Listen WAMPAPACHEPORT
 # Example:
 # LoadModule foo_module modules/mod_foo.so
 #
+LoadModule access_compat_module modules/mod_access_compat.so
 LoadModule actions_module modules/mod_actions.so
 LoadModule alias_module modules/mod_alias.so
 LoadModule allowmethods_module modules/mod_allowmethods.so
 LoadModule asis_module modules/mod_asis.so
 LoadModule auth_basic_module modules/mod_auth_basic.so
-#LoadModule auth_digest_module modules/mod_auth_digest.so
+LoadModule auth_digest_module modules/mod_auth_digest.so
+#LoadModule auth_form_module modules/mod_auth_form.so
 #LoadModule authn_anon_module modules/mod_authn_anon.so
+LoadModule authn_core_module modules/mod_authn_core.so
+#LoadModule authn_dbd_module modules/mod_authn_dbd.so
 #LoadModule authn_dbm_module modules/mod_authn_dbm.so
 LoadModule authn_file_module modules/mod_authn_file.so
+#LoadModule authn_socache_module modules/mod_authn_socache.so
+#LoadModule authnz_fcgi_module modules/mod_authnz_fcgi.so
+#LoadModule authnz_ldap_module modules/mod_authnz_ldap.so
 LoadModule authz_core_module modules/mod_authz_core.so
+#LoadModule authz_dbd_module modules/mod_authz_dbd.so
 #LoadModule authz_dbm_module modules/mod_authz_dbm.so
-#LoadModule authz_default_module modules/mod_authz_default.so
 LoadModule authz_groupfile_module modules/mod_authz_groupfile.so
 LoadModule authz_host_module modules/mod_authz_host.so
+#LoadModule authz_owner_module modules/mod_authz_owner.so
 LoadModule authz_user_module modules/mod_authz_user.so
 LoadModule autoindex_module modules/mod_autoindex.so
-LoadModule buffer_module modules/mod_buffer.so
+#LoadModule brotli_module modules/mod_brotli.so
+#LoadModule buffer_module modules/mod_buffer.so
 LoadModule cache_module modules/mod_cache.so
 LoadModule cache_disk_module modules/mod_cache_disk.so
+#LoadModule cache_socache_module modules/mod_cache_socache.so
 #LoadModule cern_meta_module modules/mod_cern_meta.so
 LoadModule cgi_module modules/mod_cgi.so
+#LoadModule charset_lite_module modules/mod_charset_lite.so
+#LoadModule data_module modules/mod_data.so
 #LoadModule dav_module modules/mod_dav.so
 #LoadModule dav_fs_module modules/mod_dav_fs.so
+#LoadModule dav_lock_module modules/mod_dav_lock.so
+#LoadModule dbd_module modules/mod_dbd.so
 #LoadModule deflate_module modules/mod_deflate.so
 LoadModule dir_module modules/mod_dir.so
+#LoadModule dumpio_module modules/mod_dumpio.so
 LoadModule env_module modules/mod_env.so
-LoadModule expires_module modules/mod_expires.so
-#LoadModule file_cache_module modules/mod_file_cache.so
+#LoadModule expires_module modules/mod_expires.so
+#LoadModule ext_filter_module modules/mod_ext_filter.so
+LoadModule file_cache_module modules/mod_file_cache.so
+#LoadModule filter_module modules/mod_filter.so
+#LoadModule http2_module modules/mod_http2.so
 #LoadModule headers_module modules/mod_headers.so
-LoadModule imagemap_module modules/mod_imagemap.so
+#LoadModule heartbeat_module modules/mod_heartbeat.so
+#LoadModule heartmonitor_module modules/mod_heartmonitor.so
+#LoadModule ident_module modules/mod_ident.so
+#LoadModule imagemap_module modules/mod_imagemap.so
 LoadModule include_module modules/mod_include.so
 #LoadModule info_module modules/mod_info.so
 LoadModule isapi_module modules/mod_isapi.so
+#LoadModule lbmethod_bybusyness_module modules/mod_lbmethod_bybusyness.so
+#LoadModule lbmethod_byrequests_module modules/mod_lbmethod_byrequests.so
+#LoadModule lbmethod_bytraffic_module modules/mod_lbmethod_bytraffic.so
+#LoadModule lbmethod_heartbeat_module modules/mod_lbmethod_heartbeat.so
+#LoadModule ldap_module modules/mod_ldap.so
+#LoadModule logio_module modules/mod_logio.so
 LoadModule log_config_module modules/mod_log_config.so
+#LoadModule log_debug_module modules/mod_log_debug.so
+#LoadModule log_forensic_module modules/mod_log_forensic.so
+#LoadModule lua_module modules/mod_lua.so
+#LoadModule macro_module modules/mod_macro.so
+#LoadModule md_module modules/mod_md.so
 LoadModule mime_module modules/mod_mime.so
 #LoadModule mime_magic_module modules/mod_mime_magic.so
 LoadModule negotiation_module modules/mod_negotiation.so
@@ -105,33 +156,63 @@ LoadModule negotiation_module modules/mod_negotiation.so
 #LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
 #LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
 #LoadModule proxy_connect_module modules/mod_proxy_connect.so
-#LoadModule proxy_http_module modules/mod_proxy_http.so
+#LoadModule proxy_express_module modules/mod_proxy_express.so
+#LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so
 #LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
+#LoadModule proxy_hcheck_module modules/mod_proxy_hcheck.so
+#LoadModule proxy_html_module modules/mod_proxy_html.so
+#LoadModule proxy_http_module modules/mod_proxy_http.so
+#LoadModule proxy_http2_module modules/mod_proxy_http2.so
+#LoadModule proxy_scgi_module modules/mod_proxy_scgi.so
+#LoadModule proxy_uwsgi_module modules/mod_proxy_uwsgi.so
+#LoadModule proxy_wstunnel_module modules/mod_proxy_wstunnel.so
+#LoadModule ratelimit_module modules/mod_ratelimit.so
+#LoadModule reflector_module modules/mod_reflector.so
+#LoadModule remoteip_module modules/mod_remoteip.so
+#LoadModule request_module modules/mod_request.so
+#LoadModule reqtimeout_module modules/mod_reqtimeout.so
 LoadModule rewrite_module modules/mod_rewrite.so
+#LoadModule sed_module modules/mod_sed.so
+#LoadModule session_module modules/mod_session.so
+#LoadModule session_cookie_module modules/mod_session_cookie.so
+#LoadModule session_crypto_module modules/mod_session_crypto.so
+#LoadModule session_dbd_module modules/mod_session_dbd.so
 LoadModule setenvif_module modules/mod_setenvif.so
+#LoadModule slotmem_plain_module modules/mod_slotmem_plain.so
+#LoadModule slotmem_shm_module modules/mod_slotmem_shm.so
+#LoadModule socache_dbm_module modules/mod_socache_dbm.so
+#LoadModule socache_memcache_module modules/mod_socache_memcache.so
+#LoadModule socache_redis_module modules/mod_socache_redis.so
+#LoadModule socache_shmcb_module modules/mod_socache_shmcb.so
 #LoadModule speling_module modules/mod_speling.so
 #LoadModule ssl_module modules/mod_ssl.so
-LoadModule status_module modules/mod_status.so
+#LoadModule status_module modules/mod_status.so
+#LoadModule substitute_module modules/mod_substitute.so
 #LoadModule unique_id_module modules/mod_unique_id.so
 LoadModule userdir_module modules/mod_userdir.so
 #LoadModule usertrack_module modules/mod_usertrack.so
+#LoadModule version_module modules/mod_version.so
 LoadModule vhost_alias_module modules/mod_vhost_alias.so
-LoadModule php5_module "WAMPROOT/bin/php/phpWAMPPHPVERSION/php5apache2_4.dll"
+#LoadModule watchdog_module modules/mod_watchdog.so
+#LoadModule xml2enc_module modules/mod_xml2enc.so
 
+PHPIniDir "${APACHE_DIR}/bin"
+#LoadModule WAMPAPACHELOADMODULE "${INSTALL_DIR}/bin/php/phpWAMPPHPVERSIONWEB/WAMPPHPAPACHEDLL"
+LoadModule php7_module "WAMPROOT/bin/php/phpWAMPPHPVERSION/php7apache2_4.dll"
+
+<IfModule unixd_module>
 #
-# ExtendedStatus controls whether Apache will generate "full" status
-# information (ExtendedStatus On) or just basic information (ExtendedStatus
-# Off) when the "server-status" handler is called. The default is Off.
+# If you wish httpd to run as a different user or group, you must run
+# httpd as root initially and it will switch.
 #
-ExtendedStatus On
-
-<Location /server-status>
-SetHandler server-status
-Require local
-#Require ip 1.2.3.4
-#Require host 1.2.3.4
-</Location>
+# User/Group: The name (or #number) of the user/group to run httpd as.
+# It is usually good practice to create a dedicated user and group for
+# running httpd, as with most system services.
+#
+User daemon
+Group daemon
 
+</IfModule>
 
 # 'Main' server configuration
 #
@@ -162,59 +243,12 @@ ServerAdmin doliwamp@localhost
 ServerName localhost
 
 #
-# ServerTokens
-# This directive configures what you return as the Server HTTP response
-# Header. The default is 'Full' which sends information about the OS-Type
-# and compiled in modules.
-# Set to one of:  Full | OS | Minor | Minimal | Major | Prod
-# where Full conveys the most information, and Prod the least.
-#
-#ServerTokens Prod
-
-#
-# DocumentRoot: The directory out of which you will serve your
-# documents. By default, all requests are taken from this directory, but
-# symbolic links and aliases may be used to point to other locations.
-#
-DocumentRoot "WAMPROOT/www/"
-
-
-#
-# Timeout: The number of seconds before receives and sends time out.
-#
-Timeout 300
-
-#
-# KeepAlive: Whether or not to allow persistent connections (more than
-# one request per connection). Set to "Off" to deactivate.
-#
-KeepAlive On
-
-#
-# MaxKeepAliveRequests: The maximum number of requests to allow
-# during a persistent connection. Set to 0 to allow an unlimited amount.
-# We recommend you leave this number high, for maximum performance.
-#
-MaxKeepAliveRequests 500
-
-#
-# KeepAliveTimeout: Number of seconds to wait for the next request from the
-# same client on the same connection.
-#
-KeepAliveTimeout 30
-
-
-#
-# Each directory to which Apache has access can be configured with respect
-# to which services and features are allowed and/or disabled in that
-# directory (and its subdirectories). 
-#
-# First, we configure the "default" to be a very restrictive set of 
-# features.  
+# Deny access to the entirety of your server's filesystem. You must
+# explicitly permit access to web content directories in other
+# <Directory> blocks below.
 #
 <Directory />
-    Options FollowSymLinks
-    AllowOverride None
+    AllowOverride none
     Require all denied
 </Directory>
 
@@ -224,12 +258,15 @@ KeepAliveTimeout 30
 # you might expect, make sure that you have specifically enabled it
 # below.
 #
+HostnameLookups Off
 
 #
-# This should be changed to whatever you set DocumentRoot to.
+# DocumentRoot: The directory out of which you will serve your
+# documents. By default, all requests are taken from this directory, but
+# symbolic links and aliases may be used to point to other locations.
 #
-<Directory "WAMPROOT/www/">
-
+DocumentRoot "${INSTALL_DIR}/www"
+<Directory "${INSTALL_DIR}/www/">
     #
     # Possible values for the Options directive are "None", "All",
     # or any combination of:
@@ -239,30 +276,23 @@ KeepAliveTimeout 30
     # doesn't give it to you.
     #
     # The Options directive is both complicated and important.  Please see
-    # http://httpd.apache.org/docs/2.2/mod/core.html#options
+    # http://httpd.apache.org/docs/2.4/mod/core.html#options
     # for more information.
     #
-    Options Indexes FollowSymLinks
+    Options +Indexes +FollowSymLinks +Multiviews
 
     #
     # AllowOverride controls what directives may be placed in .htaccess files.
     # It can be "All", "None", or any combination of the keywords:
-    #   Options FileInfo AuthConfig Limit
+    #   AllowOverride FileInfo AuthConfig Limit
     #
     AllowOverride all
 
     #
     # Controls who can get stuff from this server.
     #
-#   onlineoffline tag - don't remove
-	
-	Require all granted
-    
-    <RequireAny>
-		Require ip 127.0.0.1
-		Require host localhost
-	</RequireAny>
-
+#   Don't modify this line - Instead modify Require of VirtualHost in httpd-vhost.conf
+    Require local
 </Directory>
 
 #
@@ -274,12 +304,12 @@ KeepAliveTimeout 30
 </IfModule>
 
 #
-# The following lines prevent .htaccess and .htpasswd files from being 
-# viewed by Web clients. 
+# The following lines prevent .htaccess and .htpasswd files from being
+# viewed by Web clients.
 #
-<FilesMatch "^\.ht">
+<Files ".ht*">
     Require all denied
-</FilesMatch>
+</Files>
 
 #
 # ErrorLog: The location of the error log file.
@@ -288,7 +318,8 @@ KeepAliveTimeout 30
 # logged here.  If you *do* define an error logfile for a <VirtualHost>
 # container, that host's errors will be logged there and not here.
 #
-ErrorLog "WAMPROOT/logs/apache_error.log"
+
+ErrorLog "${INSTALL_DIR}/logs/apache_error.log"
 
 #
 # LogLevel: Control the number of messages logged to the error_log.
@@ -317,22 +348,22 @@ LogLevel warn
     # define per-<VirtualHost> access logfiles, transactions will be
     # logged therein and *not* in this file.
     #
-    CustomLog "WAMPROOT/logs/access.log" common
+    CustomLog "${INSTALL_DIR}/logs/access.log" common
 
     #
     # If you prefer a logfile with access, agent, and referer information
     # (Combined Logfile Format) you can use the following directive.
     #
-    #CustomLog logs/access.log combined
+    #CustomLog "logs/access.log" combined
 </IfModule>
 
 <IfModule alias_module>
     #
-    # Redirect: Allows you to tell clients about documents that used to 
-    # exist in your server's namespace, but do not anymore. The client 
+    # Redirect: Allows you to tell clients about documents that used to
+    # exist in your server's namespace, but do not anymore. The client
     # will make a new request for the document at its new location.
     # Example:
-    # Redirect permanent /foo http://localhost/bar
+    # Redirect permanent /foo http://www.example.com/bar
 
     #
     # Alias: Maps web paths into filesystem paths and is used to
@@ -346,75 +377,43 @@ LogLevel warn
     # the filesystem path.
 
     #
-    # ScriptAlias: This controls which directories contain server scripts. 
+    # ScriptAlias: This controls which directories contain server scripts.
     # ScriptAliases are essentially the same as Aliases, except that
     # documents in the target directory are treated as applications and
     # run by the server when requested rather than as documents sent to the
     # client.  The same rules about trailing "/" apply to ScriptAlias
     # directives as to Alias.
     #
-    ScriptAlias /cgi-bin/ "cgi-bin/"
+    ScriptAlias /cgi-bin/ "${SRVROOT}/cgi-bin/"
 
 </IfModule>
 
+<IfModule cgid_module>
+    #
+    # ScriptSock: On threaded servers, designate the path to the UNIX
+    # socket used to communicate with the CGI daemon of mod_cgid.
+    #
+    #Scriptsock cgisock
+</IfModule>
+
 #
-# "C:/Program Files/Apache Software Foundation/Apache2.2/cgi-bin" should be changed to whatever your ScriptAliased
+# "${SRVROOT}/cgi-bin" should be changed to whatever your ScriptAliased
 # CGI directory exists, if you have that configured.
 #
-<Directory "cgi-bin">
+<Directory "${SRVROOT}/cgi-bin">
     AllowOverride None
     Options None
     Require all granted
 </Directory>
 
-# 
-# Apache parses all CGI scripts for the shebang line by default.
-# This comment line, the first line of the script, consists of the symbols
-# pound (#) and exclamation (!) followed by the path of the program that 
-# can execute this specific script.  For a perl script, with perl.exe in
-# the C:\Program Files\Perl directory, the shebang line should be:
-
-   #!c:/program files/perl/perl
-
-# Note you _must_not_ indent the actual shebang line, and it must be the
-# first line of the file.  Of course, CGI processing must be enabled by 
-# the appropriate ScriptAlias or Options ExecCGI directives for the files 
-# or directory in question.
-#
-# However, Apache on Windows allows either the Unix behavior above, or can
-# use the Registry to match files by extention.  The command to execute 
-# a file of this type is retrieved from the registry by the same method as 
-# the Windows Explorer would use to handle double-clicking on a file.
-# These script actions can be configured from the Windows Explorer View menu, 
-# 'Folder Options', and reviewing the 'File Types' tab.  Clicking the Edit
-# button allows you to modify the Actions, of which Apache 1.3 attempts to
-# perform the 'Open' Action, and failing that it will try the shebang line.
-# This behavior is subject to change in Apache release 2.0.
-#
-# Each mechanism has it's own specific security weaknesses, from the means
-# to run a program you didn't intend the website owner to invoke, and the
-# best method is a matter of great debate.
-#
-# To enable the this Windows specific behavior (and therefore -disable- the
-# equivilant Unix behavior), uncomment the following directive:
-#
-#ScriptInterpreterSource registry
-#
-# The directive above can be placed in individual <Directory> blocks or the
-# .htaccess file, with either the 'registry' (Windows behavior) or 'script' 
-# (Unix behavior) option, and will override this server default option.
-#
-
-#
-# DefaultType: the default MIME type the server will use for a document
-# if it cannot otherwise determine one, such as from filename extensions.
-# If your server contains mostly text or HTML documents, "text/plain" is
-# a good value.  If most of your content is binary, such as applications
-# or images, you may want to use "application/octet-stream" instead to
-# keep browsers from trying to display binary files as though they are
-# text.
-#
-#DefaultType text/plain
+<IfModule headers_module>
+    #
+    # Avoid passing HTTP_PROXY environment to CGI's on this or any proxied
+    # backend servers which have lingering "httpoxy" defects.
+    # 'Proxy' request header is undefined by the IETF, not listed by IANA
+    #
+    RequestHeader unset Proxy early
+</IfModule>
 
 <IfModule mime_module>
     #
@@ -432,8 +431,8 @@ LogLevel warn
     # AddEncoding allows you to have certain browsers uncompress
     # information on the fly. Note: Not all browsers support this.
     #
-    #AddEncoding x-compress .Z
-    #AddEncoding x-gzip .gz .tgz
+    AddEncoding x-compress .Z
+    AddEncoding x-gzip .gz .tgz
     #
     # If the AddEncoding directives above are commented-out, then you
     # probably should define those extensions to indicate media types:
@@ -481,25 +480,40 @@ LogLevel warn
 #ErrorDocument 500 "The server made a boo boo."
 #ErrorDocument 404 /missing.html
 #ErrorDocument 404 "/cgi-bin/missing_handler.pl"
-#ErrorDocument 402 http://localhost/subscription_info.html
+#ErrorDocument 402 http://www.example.com/subscription_info.html
 #
 
 #
-# EnableMMAP and EnableSendfile: On systems that support it, 
-# memory-mapping or the sendfile syscall is used to deliver
+# MaxRanges: Maximum number of Ranges in a request before
+# returning the entire resource, or one of the special
+# values 'default', 'none' or 'unlimited'.
+# Default setting is to accept 200 Ranges.
+#MaxRanges unlimited
+
+#
+# EnableMMAP and EnableSendfile: On systems that support it,
+# memory-mapping or the sendfile syscall may be used to deliver
 # files.  This usually improves server performance, but must
-# be turned off when serving from networked-mounted 
+# be turned off when serving from networked-mounted
 # filesystems or if support for these functions is otherwise
 # broken on your system.
+# Defaults: EnableMMAP On, EnableSendfile Off
 #
-#EnableMMAP off
-#EnableSendfile off
+EnableMMAP off
+EnableSendfile off
+
+# AcceptFilter: On Windows, none uses accept() rather than AcceptEx() and
+# will not recycle sockets between connections. This is useful for network
+# adapters with broken driver support, as well as some virtual network
+# providers such as vpn drivers, or spam, virus or spyware filters.
+AcceptFilter http none
+AcceptFilter https none
 
 # Supplemental configuration
 #
-# The configuration files in the conf/extra/ directory can be 
-# included to add extra features or to modify the default configuration of 
-# the server, or you may simply copy their contents here and change as 
+# The configuration files in the conf/extra/ directory can be
+# included to add extra features or to modify the default configuration of
+# the server, or you may simply copy their contents here and change as
 # necessary.
 
 # Server-pool management (MPM specific)
@@ -532,17 +546,19 @@ Include conf/extra/httpd-autoindex.conf
 # Various default settings
 #Include conf/extra/httpd-default.conf
 
-
+# Configure mod_proxy_html to understand HTML4/XHTML1
+<IfModule proxy_html_module>
+Include conf/extra/proxy-html.conf
+</IfModule>
 
 # Secure (SSL/TLS) connections
+#Include conf/extra/httpd-ssl.conf
 #
 # Note: The following must must be present to support
 #       starting without SSL on platforms with no /dev/random equivalent
 #       but a statically compiled-in mod_ssl.
 #
-
 <IfModule ssl_module>
-
 SSLRandomSeed startup builtin
 SSLRandomSeed connect builtin
 
@@ -733,44 +749,8 @@ SSLCertificateKeyFile "WAMPROOT/myserver.key"
 #         nokeepalive ssl-unclean-shutdown \
 #         downgrade-1.0 force-response-1.0
 
-</VirtualHost>  
+</VirtualHost> 
 
 </IfModule>
 
-
-
-# OPTIMIZE: To use gzip compression (for already compressed files).
-# Note that constant MAIN_OPTIMIZE_SPEED must have a value with bit 0 set. 
-#AddType text/javascript .jgz
-#AddEncoding gzip .jgz
-
-# OPTIMIZE: To use gzip compression (on the fly).
-# Note that you must also enable the module mod_deflate.
-# You can also set this with constant MAIN_OPTIMIZE_SPEED and bit 2 set. 
-#TODO
-
-# OPTIMIZE: To use cache on static pages (A259200 = 1 month, A7200 = 2 hours, A691600 = 8 days = recommanded for static resources).
-# Note that you must also enable the module mod_expires.
-#ExpiresActive On
-#ExpiresByType image/x-icon A2592000
-#ExpiresByType image/gif A2592000
-#ExpiresByType image/png A2592000
-#ExpiresByType image/jpeg A2592000
-#ExpiresByType text/css A2592000
-#ExpiresByType text/javascript A2592000
-#ExpiresByType application/x-javascript A2592000
-#ExpiresByType application/javascript A2592000
-    
-
-# To protect Dolibarr with HTTP Auth
-#<Location /dolibarr>
-#       Options +Indexes
-#       AuthUserFile /var/www/.htpasswd
-#       AuthName "Zone authent basic Dolibarr"
-#       AuthType Basic
-#       require user test
-#</Location>
-
-
-# Declare alias for Dolibarr, PHPMyAdmin and other software
-Include "WAMPROOT/alias/*.conf"
+Include "${INSTALL_DIR}/alias/*.conf"

+ 1 - 0
build/exe/doliwamp/install.forced.php.install

@@ -22,6 +22,7 @@ $force_install_databaserootpass='WAMPMYSQLNEWPASSWORD';
 $force_install_dolibarrlogin='admin';
 $force_install_nophpinfo='1';
 $force_install_lockinstall='644';
+$force_install_distrib='doliwamp';
 
 $force_install_module='';
 ?>

+ 8 - 3
build/exe/doliwamp/install_services.bat.install

@@ -11,14 +11,19 @@ REM NET STOP doliwampmysqld
 cd "WAMPROOT"
 
 REM Apache x.x
-.\bin\apache\apacheWAMPAPACHEVERSION\bin\httpd.exe -k install -n doliwampapache
+.\bin\apache\apacheWAMPAPACHEVERSION\bin\httpd.exe -k install -n doliwampapache >> doliwamp.log 2>>&1
 REM reg add HKLM\SYSTEM\CurrentControlSet\Services\doliwampapache /V Start /t REG_DWORD /d 3 /f
 
 REM Mysql 5.0-
-REM .\bin\mysql\mysqlWAMPMYSQLVERSION\bin\mysqld-nt.exe --install-manual doliwampmysqld
-.\bin\mysql\mysqlWAMPMYSQLVERSION\bin\mysqld-nt.exe --install doliwampmysqld
+REM .\bin\mysql\mysqlWAMPMYSQLVERSION\bin\mysqld.exe --install-manual doliwampmysqld
+REM .\bin\mysql\mysqlWAMPMYSQLVERSION\bin\mysqld.exe --install doliwampmysqld
 REM Mysql 5.1+
 REM .\bin\mysql\mysqlWAMPMYSQLVERSION\bin\mysqld.exe --install doliwampmysqld
+REM Mariadb
+REM The mysql_install_db allows to not provide files into mysql dir but does not return to prompt so install hangs
+REM .\bin\mariadb\mariadbWAMPMYSQLVERSION\bin\mysql_install_db.exe --datadir=WAMPROOT/bin/mariadb/data --port=WAMPMYSQLPORT --password=WAMPMYSQLXXX >> doliwamp.log 2>>&1
+.\bin\mariadb\mariadbWAMPMYSQLVERSION\bin\mysql_install_db.exe --datadir=WAMPROOT/bin/mariadb/data --port=WAMPMYSQLPORT >> doliwamp.log 2>>&1
+.\bin\mariadb\mariadbWAMPMYSQLVERSION\bin\mysqld.exe --install doliwampmysqld >> doliwamp.log 2>>&1
 
 echo ---- End script >> doliwamp.log 2>>&1
 

+ 4 - 4
build/exe/doliwamp/my.ini.install

@@ -69,13 +69,13 @@ port=WAMPMYSQLPORT
 
 
 #Path to installation directory. All paths are usually resolved relative to this.
-basedir=WAMPROOT/bin/mysql/mysqlWAMPMYSQLVERSION
+basedir=WAMPROOT/bin/mariadb/mariadbWAMPMYSQLVERSION
 
 #log file
 log-error=WAMPROOT/logs/mysql.log
 
 #Path to the database root
-datadir=WAMPROOT/bin/mysql/data
+datadir=WAMPROOT/bin/mariadb/data
 
 # The default storage engine that will be used when create new tables when
 default-storage-engine=INNODB
@@ -196,13 +196,13 @@ port=WAMPMYSQLPORT
 
 
 #Path to installation directory. All paths are usually resolved relative to this.
-basedir=WAMPROOT/bin/mysql/mysqlWAMPMYSQLVERSION
+basedir=WAMPROOT/bin/mariadb/mariadbWAMPMYSQLVERSION
 
 #log file
 log-error=WAMPROOT/logs/mysql.log
 
 #Path to the database root
-datadir=WAMPROOT/bin/mysql/data
+datadir=WAMPROOT/bin/mariadb/data
 
 # The default storage engine that will be used when create new tables when
 default-storage-engine=INNODB

+ 0 - 0
build/exe/doliwamp/mysql/columns_priv.MYD


BIN
build/exe/doliwamp/mysql/columns_priv.MYI


BIN
build/exe/doliwamp/mysql/columns_priv.frm


BIN
build/exe/doliwamp/mysql/db.MYD


BIN
build/exe/doliwamp/mysql/db.MYI


BIN
build/exe/doliwamp/mysql/db.frm


+ 0 - 0
build/exe/doliwamp/mysql/func.MYD


BIN
build/exe/doliwamp/mysql/func.MYI


BIN
build/exe/doliwamp/mysql/func.frm


BIN
build/exe/doliwamp/mysql/help_category.MYD


BIN
build/exe/doliwamp/mysql/help_category.MYI


BIN
build/exe/doliwamp/mysql/help_category.frm


BIN
build/exe/doliwamp/mysql/help_keyword.MYD


BIN
build/exe/doliwamp/mysql/help_keyword.MYI


BIN
build/exe/doliwamp/mysql/help_keyword.frm


BIN
build/exe/doliwamp/mysql/help_relation.MYD


BIN
build/exe/doliwamp/mysql/help_relation.MYI


BIN
build/exe/doliwamp/mysql/help_relation.frm


BIN
build/exe/doliwamp/mysql/help_topic.MYD


BIN
build/exe/doliwamp/mysql/help_topic.MYI


BIN
build/exe/doliwamp/mysql/help_topic.frm


+ 0 - 0
build/exe/doliwamp/mysql/host.MYD


BIN
build/exe/doliwamp/mysql/host.MYI


BIN
build/exe/doliwamp/mysql/host.frm


+ 0 - 0
build/exe/doliwamp/mysql/proc.MYD


BIN
build/exe/doliwamp/mysql/proc.MYI


BIN
build/exe/doliwamp/mysql/proc.frm


+ 0 - 0
build/exe/doliwamp/mysql/procs_priv.MYD


BIN
build/exe/doliwamp/mysql/procs_priv.MYI


BIN
build/exe/doliwamp/mysql/procs_priv.frm


+ 0 - 0
build/exe/doliwamp/mysql/tables_priv.MYD


BIN
build/exe/doliwamp/mysql/tables_priv.MYI


BIN
build/exe/doliwamp/mysql/tables_priv.frm


+ 0 - 0
build/exe/doliwamp/mysql/time_zone.MYD


BIN
build/exe/doliwamp/mysql/time_zone.MYI


BIN
build/exe/doliwamp/mysql/time_zone.frm


+ 0 - 0
build/exe/doliwamp/mysql/time_zone_leap_second.MYD


BIN
build/exe/doliwamp/mysql/time_zone_leap_second.MYI


BIN
build/exe/doliwamp/mysql/time_zone_leap_second.frm


+ 0 - 0
build/exe/doliwamp/mysql/time_zone_name.MYD


BIN
build/exe/doliwamp/mysql/time_zone_name.MYI


BIN
build/exe/doliwamp/mysql/time_zone_name.frm


+ 0 - 0
build/exe/doliwamp/mysql/time_zone_transition.MYD


BIN
build/exe/doliwamp/mysql/time_zone_transition.MYI


BIN
build/exe/doliwamp/mysql/time_zone_transition.frm


+ 0 - 0
build/exe/doliwamp/mysql/time_zone_transition_type.MYD


BIN
build/exe/doliwamp/mysql/time_zone_transition_type.MYI


BIN
build/exe/doliwamp/mysql/time_zone_transition_type.frm


BIN
build/exe/doliwamp/mysql/user.MYD


BIN
build/exe/doliwamp/mysql/user.MYI


BIN
build/exe/doliwamp/mysql/user.frm


+ 1 - 1
build/exe/doliwamp/mysqlinitpassword.bat.install

@@ -17,7 +17,7 @@ ping 1.1.1.1 -n 1 -w 5000 > nul
 echo ---- Execute mysqlinitpassword.bat to init mysql password >> doliwamp.log 2>>&1
 echo For a first installation, if an error is shown here, rerun the script manually. >> doliwamp.log 2>>&1
 echo For an update, you will get an "Access denied" error, ignore this error. >> doliwamp.log 2>>&1
-.\bin\mysql\mysqlWAMPMYSQLVERSION\bin\mysqladmin -v -w6 -P WAMPMYSQLPORT -u root password WAMPMYSQLNEWPASSWORD >> doliwamp.log 2>>&1
+.\bin\mariadb\mariadbWAMPMYSQLVERSION\bin\mysqladmin -v -w6 -P WAMPMYSQLPORT -u root password WAMPMYSQLNEWPASSWORD >> doliwamp.log 2>>&1
 
 echo ---- End script >> doliwamp.log 2>>&1
 

+ 2 - 2
build/exe/doliwamp/mysqltestinstall.bat.install

@@ -6,7 +6,7 @@ REM To change password, run following SQL command:
 REM GRANT ALL ON *.* TO login@localhost IDENTIFIED BY "newpassword"
 
 echo -----------------------------------------------------------
-echo This programm wil test a login on Mysql installed
+echo This programm will test a login on Mysql installed
 echo by DoliWamp.
 echo Version: WAMPMYSQLVERSION
 echo Port: WAMPMYSQLPORT
@@ -19,6 +19,6 @@ SET SAVES=
 SET /P SAVES=Enter password to test: 
 
 echo Try to connect to mysql with this password
-.\bin\mysql\mysqlWAMPMYSQLVERSION\bin\mysql -P WAMPMYSQLPORT -u root -p%SAVES%
+.\bin\mariadb\mariadbWAMPMYSQLVERSION\bin\mysql -P WAMPMYSQLPORT -u root -p%SAVES%
 
 pause

+ 31 - 48
build/exe/doliwamp/php.ini.install

@@ -304,7 +304,7 @@ expose_php = On
 max_execution_time = 30       ; Maximum execution time of each script, in seconds
 max_input_time = 60	          ; Maximum amount of time each script may spend parsing request data
 ;max_input_nesting_level = 64 ; Maximum input variable nesting level
-memory_limit = 64M            ; Maximum amount of memory a script may consume (128MB)
+memory_limit = 256M            ; Maximum amount of memory a script may consume (128MB)
 
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
@@ -644,53 +644,36 @@ default_socket_timeout = 60
 
 ; If an extension does not load, run  "deplister.exe php_xxx.dll" to get list of dependency dll missing.
 
-extension=php_bz2.dll
-extension=php_curl.dll
-;extension=php_dba.dll
-;extension=php_dbase.dll
-;extension=php_exif.dll
-;extension=php_fdf.dll
-extension=php_gd2.dll
-;extension=php_gettext.dll
-;extension=php_gmp.dll
-;extension=php_ifx.dll
-;extension=php_imap.dll
-;extension=php_interbase.dll
-extension=php_intl.dll
-extension=php_ldap.dll
-extension=php_mbstring.dll
-;extension=php_mcrypt.dll
-;extension=php_mhash.dll
-;extension=php_mime_magic.dll
-;extension=php_ming.dll
-;extension=php_msql.dll
-;extension=php_mssql.dll
-extension=php_mysql.dll
-extension=php_mysqli.dll
-;extension=php_oci8.dll
-extension=php_openssl.dll
-;extension=php_pdo.dll              ; for php 5.2.11
-;extension=php_pdo_firebird.dll
-;extension=php_pdo_mssql.dll
-extension=php_pdo_mysql.dll
-;extension=php_pdo_oci.dll
-;extension=php_pdo_oci8.dll
-;extension=php_pdo_odbc.dll
-;extension=php_pdo_pgsql.dll
-extension=php_pdo_sqlite.dll
-;extension=php_pgsql.dll
-;extension=php_pspell.dll
-;extension=php_shmop.dll
-;extension=php_snmp.dll
-extension=php_soap.dll
-extension=php_sockets.dll
-;extension=php_sqlite.dll
-;extension=php_sybase_ct.dll
-;extension=php_tidy.dll
-;extension=php_xmlrpc.dll
-;extension=php_xsl.dll
-;extension=php_zip.dll
-;extension=php_xdebug-2.0.5-5.2.dll
+extension=bz2
+extension=curl
+;extension=dba
+;extension=com_dotnet
+;extension=enchant
+;extension=fileinfo
+;extension=ftp
+extension=gd2
+;extension=gettext
+;extension=gmp
+extension=intl
+extension=imap
+;extension=interbase
+extension=ldap
+extension=mbstring
+extension=exif      ; Must be after mbstring as it depends on it
+extension=mysqli
+;extension=odbc
+extension=openssl
+;extension=pdo_firebird
+extension=pdo_mysql
+;extension=pdo_oci
+;extension=pdo_odbc
+;extension=pdo_pgsql
+;extension=pdo_sqlite
+;extension=pgsql
+;extension=phpdbg_webhelper
+;extension=shmop
+extension=soap
+extension=sockets
 
 
 ;;;;;;;;;;;;;;;;;;;

+ 2 - 1
build/exe/doliwamp/startdoliwamp_manual_donotuse.bat.install

@@ -12,7 +12,8 @@ start WAMPROOT\bin\apache\apacheWAMPAPACHEVERSION\bin\httpd.exe -f conf\httpd.co
 echo 
 
 echo Running Mysql as user process (this process does not return so we use "start")
-start WAMPROOT\bin\mysql\mysqlWAMPMYSQLVERSION\bin\mysqld-nt.exe --defaults-file=WAMPROOT\bin\mysql\mysqlWAMPMYSQLVERSION\my.ini --console
+REM start WAMPROOT\bin\mysql\mysqlWAMPMYSQLVERSION\bin\mysqld-nt.exe --defaults-file=WAMPROOT\bin\mysql\mysqlWAMPMYSQLVERSION\my.ini --console
 REM start WAMPROOT\bin\mysql\mysqlWAMPMYSQLVERSION\bin\mysqld.exe --defaults-file=WAMPROOT\bin\mysql\mysqlWAMPMYSQLVERSION\my.ini --console
+start WAMPROOT\bin\mariadb\mariadbWAMPMYSQLVERSION\bin\mysqld.exe --defaults-file=WAMPROOT\bin\mariadb\mariadbWAMPMYSQLVERSION\my.ini --console
 
 pause

+ 3 - 1
build/exe/doliwamp/uninstall_services.bat.install

@@ -11,9 +11,11 @@ NET STOP doliwampapache
 
 NET STOP doliwampmysqld 
 REM Mysql 5.0-
-.\bin\mysql\mysqlWAMPMYSQLVERSION\bin\mysqld-nt.exe --remove doliwampmysqld
+REM .\bin\mysql\mysqlWAMPMYSQLVERSION\bin\mysqld-nt.exe --remove doliwampmysqld
 REM Mysql 5.1+
 REM .\bin\mysql\mysqlWAMPMYSQLVERSION\bin\mysqld.exe --remove doliwampmysqld
+REM Maraiadb
+.\bin\mariadb\mariadbWAMPMYSQLVERSION\bin\mysqld.exe --remove doliwampmysqld
 
 REM wampmanager.exe -quit -id={doliwampserver}
 echo ---- End script >> doliwamp.log 2>>&1

+ 2 - 2
build/generate_filelist_xml.php

@@ -110,7 +110,7 @@ print "Working on files into          : ".DOL_DOCUMENT_ROOT."\n";
 print "Include custom in signature    : ".$includecustom."\n";
 print "Include constants in signature : ";
 foreach ($includeconstants as $countrycode => $tmp) {
-    foreach($tmp as $constname => $constvalue) {
+    foreach ($tmp as $constname => $constvalue) {
         print $constname.'='.$constvalue." ";
     }
 }
@@ -130,7 +130,7 @@ fputs($fp, '<checksum_list version="'.$release.'" date="'.dol_print_date(dol_now
 
 foreach ($includeconstants as $countrycode => $tmp) {
     fputs($fp, '<dolibarr_constants country="'.$countrycode.'">'."\n");
-    foreach($tmp as $constname => $constvalue) {
+    foreach ($tmp as $constname => $constvalue) {
         $valueforchecksum=(empty($constvalue)?'0':$constvalue);
         $checksumconcat[]=$valueforchecksum;
         fputs($fp, '    <constant name="'.$constname.'">'.$valueforchecksum.'</constant>'."\n");

+ 8 - 3
build/makepack-dolibarr.pl

@@ -2,7 +2,7 @@
 #----------------------------------------------------------------------------
 # \file         build/makepack-dolibarr.pl
 # \brief        Dolibarr package builder (tgz, zip, rpm, deb, exe, aps)
-# \author       (c)2004-2015 Laurent Destailleur  <eldy@users.sourceforge.net>
+# \author       (c)2004-2020 Laurent Destailleur  <eldy@users.sourceforge.net>
 #
 # This is list of constant you can set to have generated packages moved into a specific dir: 
 #DESTIBETARC='/media/HDDATA1_LD/Mes Sites/Web/Dolibarr/dolibarr.org/files/lastbuild'
@@ -19,7 +19,7 @@ use Term::ANSIColor;
 # Change this to defined target for option 98 and 99
 $PROJECT="dolibarr";
 $PUBLISHSTABLE="eldy,dolibarr\@frs.sourceforge.net:/home/frs/project/dolibarr";
-$PUBLISHBETARC="dolibarr\@vmprod1.dolibarr.org:/home/dolibarr/dolibarr.org/httpdocs/files";
+$PUBLISHBETARC="dolibarr\@vmprod1.dolibarr.org:/home/dolibarr/asso.dolibarr.org/dolibarr_documents/website/www.dolibarr.org/files";
 
 
 #@LISTETARGET=("TGZ","ZIP","RPM_GENERIC","RPM_FEDORA","RPM_MANDRIVA","RPM_OPENSUSE","DEB","EXEDOLIWAMP","SNAPSHOT");   # Possible packages
@@ -430,12 +430,14 @@ if ($nboftargetok) {
 				$ret=`git tag -a -f -m "$MAJOR.$MINOR.$BUILD" "$MAJOR.$MINOR.$BUILD"`;
 				print 'Run git push -f --tags'."\n";
 				$ret=`git push -f --tags`;
+				#$ret=`git push -f origin "$MAJOR.$MINOR.$BUILD"`;
 			}
 		}
 		else
 		{
 			print 'Run git push --tags'."\n";
 			$ret=`git push --tags`;
+			#$ret=`git push origin "$MAJOR.$MINOR.$BUILD"`;
 		}
 		chdir("$olddir");
 	}
@@ -618,6 +620,9 @@ if ($nboftargetok) {
         $ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/includes/tecnickcom/tcpdf/fonts/utils`;
         $ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/includes/tecnickcom/tcpdf/tools`;
         $ret=`rm -f  $BUILDROOT/$PROJECT/htdocs/includes/tecnickcom/tcpdf/LICENSE.TXT`;
+
+        $ret=`rm -f  $BUILDROOT/$PROJECT/htdocs/includes/autoload.php`;
+
         $ret=`rm -f  $BUILDROOT/$PROJECT/htdocs/theme/common/octicons/LICENSE`;
 	}
 
@@ -1065,7 +1070,7 @@ if ($nboftargetok) {
      		print "Remove target $NEWDESTI/$FILENAMEEXEDOLIWAMP.exe...\n";
     		unlink "$NEWDESTI/$FILENAMEEXEDOLIWAMP.exe";
  
- 			print "Check that in your Wine setup, you create a Z: drive that point to your / directory.\n";
+ 			print "Check that in your Wine setup, you have created a Z: drive that point to your / directory.\n";
 
  			$SOURCEBACK=$SOURCE;
  			$SOURCEBACK =~ s/\//\\/g;

+ 18 - 12
build/obs/README

@@ -1,20 +1,24 @@
 README (English)
 ##################################################
 OBS Package tools
+OBE - openSUSE Build Service 
 ##################################################
 
-This directory contains files to explain how to publish
-a package onto OBS
+This directory contains an instruction to explain 
+how to publish a package onto OBS.
 
 
-# Create a project onto OBS
-#----------------------------------
-https://build.opensuse.org
+# Create a project onto OBS 
+--------------------------- 
+https://build.opensuse.org 
 
-Packaging rules: http://en.opensuse.org/Portal:Packaging
+
+# Packaging rules: 
+------------------
+https://en.opensuse.org/Portal:Packaging
 
 Add attributes:
-OBS:Screenshots         URL of screenshot http://www.dolibarr.org/images/dolibarr_screenshot1.png
+OBS:Screenshots         URL of screenshot https://www.dolibarr.org/images/dolibarr_screenshot1.png
 OBS:QualityCategory     Development|Testing|Stable|Private
 OBS:Maintained          1
 
@@ -28,22 +32,24 @@ To submit a snapshot for building, we should have a service file with content
   </service>
 </services>
 
-How to have such a service file created automatically ?
 
-Go into project you want to update. It mught be:
+# How to have such a service file created automatically ?
+---------------------------------------------------------
+Go into project you want to update. It might be:
 - openSUSE Build Service > Projects > Application:ERP:Dolibarr > dolibarr
 - or your private project
 
 Once logged, click on "Add file" in section "Source Files", then select mode "Upload From: Remote URL"
 Keep empty for "Filename", choose "Remote URL" and enter into last field, URL that should looks like this:
-http://www.dolibarr.org/files/stable/package_rpm_generic/dolibarr-x.y.v-0.4.src.rpm
+https://www.dolibarr.org/files/stable/package_rpm_generic/dolibarr-x.y.v-0.4.src.rpm
 
 Then add into Advanded - Attributes
-OBS:Screenshots http://www.dolibarr.org/images/dolibarr_screenshot1.png
-OBS:QualityCategory Stable|Testing|Development|Private
+OBS:Screenshots       https://www.dolibarr.org/images/dolibarr_screenshot1.png
+OBS:QualityCategory   Stable|Testing|Development|Private
 
 
 # Move project into official directory
+--------------------------------------
 - Enter a bug to ask to be a maintener of a category or to add a new one.
 For example: https://bugzilla.novell.com/show_bug.cgi?id=848083 to be a maintener of category
 https://build.opensuse.org/project/show/Application:ERP

+ 7 - 6
build/pdf/README.txt

@@ -1,9 +1,10 @@
-To make htmldoc working from wiki.dolibarr.org, them must be modified to have
+To make htmldoc working from wiki.dolibarr.org, the wiki must be modified to have
 
-$_SERVER["HTTP_USER_AGENT"] is "HTMLDOC/x.y.z"
-$_COOKIE["htmldoc"] may also be defined if set on command line.
-
-To disable part, add 
-class="htmldoc-ignore" with css
+To disable part of content, add: 
+class="htmldoc-ignore" 
+with css
 .htmldoc-ignore { display: none; }
 
+Note:
+$_SERVER["HTTP_USER_AGENT"] is "HTMLDOC/x.y.z"
+$_COOKIE["htmldoc"] may also be defined if set on command line.

+ 16 - 4
build/perl/virtualmin/dolibarr.pl

@@ -1,7 +1,7 @@
 #----------------------------------------------------------------------------
 # \file         dolibarr.pl
 # \brief        Dolibarr script install for Virtualmin Pro
-# \author       (c)2009-2019 Regis Houssin  <regis.houssin@inodbox.com>
+# \author       (c)2009-2020 Regis Houssin  <regis.houssin@inodbox.com>
 #----------------------------------------------------------------------------
 
 
@@ -30,7 +30,7 @@ return "Regis Houssin";
 # script_dolibarr_versions()
 sub script_dolibarr_versions
 {
-return ( "10.0.0", "9.0.3", "8.0.5", "7.0.5", "6.0.8" );
+return ( "12.0.3", "11.0.5", "10.0.7", "9.0.4", "8.0.6", "7.0.5" );
 }
 
 sub script_dolibarr_release
@@ -77,6 +77,16 @@ if ($ver >= 3.6) {
 		push(@rv, "Dolibarr requires PHP version 5.3 or later");
 		}
 	}
+if ($ver >= 12.0) {
+	# Check for PHP 5.6+
+	local $phpv = &get_php_version($phpver || 5, $d);
+	if (!$phpv) {
+		push(@rv, "Could not work out exact PHP version");
+		}
+	elsif ($phpv < 5.6) {
+		push(@rv, "Dolibarr requires PHP version 5.6 or later");
+		}
+	}
 
 return @rv;
 }
@@ -376,7 +386,7 @@ sub script_dolibarr_realversion
 local ($d, $opts, $sinfo) = @_;
 local $lref = &read_file_lines("$opts->{'dir'}/filefunc.inc.php", 1);
 foreach my $l (@$lref) {
-		if ($l =~ /'DOL_VERSION','([0-9a-z\.\-]+)'/) {
+		if ($l =~ /'DOL_VERSION',\s?'([0-9a-z\.\-]+)'/) {
                 return $1;
                 }
         }
@@ -390,6 +400,8 @@ sub script_dolibarr_check_latest
 {
 local ($ver) = @_;
 local @vers = &osdn_package_versions("dolibarr",
+				$ver >= 12.0 ? "dolibarr\\-(12\\.0\\.[0-9\\.]+)\\.tgz" :
+				$ver >= 11.0 ? "dolibarr\\-(11\\.0\\.[0-9\\.]+)\\.tgz" :
 				$ver >= 10.0 ? "dolibarr\\-(10\\.0\\.[0-9\\.]+)\\.tgz" :
 				$ver >= 9.0 ? "dolibarr\\-(9\\.0\\.[0-9\\.]+)\\.tgz" :
 				$ver >= 8.0 ? "dolibarr\\-(8\\.0\\.[0-9\\.]+)\\.tgz" :
@@ -410,7 +422,7 @@ return $ver eq $vers[0] ? undef : $vers[0];
 
 sub script_dolibarr_site
 {
-return 'http://www.dolibarr.org/';
+return 'https://www.dolibarr.org/';
 }
 
 sub script_dolibarr_passmode

+ 3 - 2
build/rpm/dolibarr_fedora.spec

@@ -90,7 +90,7 @@ cui hai bisogno ed essere facile da usare.
 %{__install} -m 644 build/rpm/install.forced.php.fedora $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/install.forced.php
 
 %{__mkdir} -p $RPM_BUILD_ROOT%{_datadir}/pixmaps
-%{__install} -m 644 doc/images/dolibarr_48x48.png $RPM_BUILD_ROOT%{_datadir}/pixmaps/%{name}.png
+%{__install} -m 644 doc/images/appicon_64.png $RPM_BUILD_ROOT%{_datadir}/pixmaps/%{name}.png
 %{__mkdir} -p $RPM_BUILD_ROOT%{_datadir}/applications
 #desktop-file-install --delete-original --dir=$RPM_BUILD_ROOT%{_datadir}/applications build/rpm/%{name}.desktop
 %{__install} -m 644 build/rpm/dolibarr.desktop $RPM_BUILD_ROOT%{_datadir}/applications/%{name}.desktop
@@ -181,6 +181,7 @@ done >>%{name}.lang
 %_datadir/dolibarr/htdocs/datapolicy
 %_datadir/dolibarr/htdocs/dav
 %_datadir/dolibarr/htdocs/debugbar
+%_datadir/dolibarr/htdocs/delivery
 %_datadir/dolibarr/htdocs/don
 %_datadir/dolibarr/htdocs/ecm
 %_datadir/dolibarr/htdocs/emailcollector
@@ -196,8 +197,8 @@ done >>%{name}.lang
 %_datadir/dolibarr/htdocs/imports
 %_datadir/dolibarr/htdocs/includes
 %_datadir/dolibarr/htdocs/install
+%_datadir/dolibarr/htdocs/intracommreport
 %_datadir/dolibarr/htdocs/langs/HOWTO-Translation.txt
-%_datadir/dolibarr/htdocs/livraison
 %_datadir/dolibarr/htdocs/loan
 %_datadir/dolibarr/htdocs/mailmanspip
 %_datadir/dolibarr/htdocs/margin

+ 3 - 2
build/rpm/dolibarr_generic.spec

@@ -150,7 +150,7 @@ cui hai bisogno ed essere facile da usare.
 %endif
 
 %{__mkdir} -p $RPM_BUILD_ROOT%{_datadir}/pixmaps
-%{__install} -m 644 doc/images/dolibarr_48x48.png $RPM_BUILD_ROOT%{_datadir}/pixmaps/%{name}.png
+%{__install} -m 644 doc/images/appicon_64.png $RPM_BUILD_ROOT%{_datadir}/pixmaps/%{name}.png
 %{__mkdir} -p $RPM_BUILD_ROOT%{_datadir}/applications
 %{__install} -m 644 build/rpm/dolibarr.desktop $RPM_BUILD_ROOT%{_datadir}/applications/%{name}.desktop
 %if 0%{?fedora} || 0%{?rhel_version} || 0%{?centos_version} || 0%{?mdkversion} || 0%{?suse_version}
@@ -261,6 +261,7 @@ done >>%{name}.lang
 %_datadir/dolibarr/htdocs/datapolicy
 %_datadir/dolibarr/htdocs/dav
 %_datadir/dolibarr/htdocs/debugbar
+%_datadir/dolibarr/htdocs/delivery
 %_datadir/dolibarr/htdocs/don
 %_datadir/dolibarr/htdocs/ecm
 %_datadir/dolibarr/htdocs/emailcollector
@@ -276,8 +277,8 @@ done >>%{name}.lang
 %_datadir/dolibarr/htdocs/imports
 %_datadir/dolibarr/htdocs/includes
 %_datadir/dolibarr/htdocs/install
+%_datadir/dolibarr/htdocs/intracommreport
 %_datadir/dolibarr/htdocs/langs/HOWTO-Translation.txt
-%_datadir/dolibarr/htdocs/livraison
 %_datadir/dolibarr/htdocs/loan
 %_datadir/dolibarr/htdocs/mailmanspip
 %_datadir/dolibarr/htdocs/margin

Some files were not shown because too many files changed in this diff