diff options
33 files changed, 1040 insertions, 434 deletions
diff --git a/.gitignore b/.gitignore index c757210654..06f50e9c4e 100644 --- a/.gitignore +++ b/.gitignore @@ -4,9 +4,7 @@  /phpBB/cache/*.php  /phpBB/cache/*.lock  /phpBB/composer.phar -/phpBB/config.php -/phpBB/config_dev.php -/phpBB/config_test.php +/phpBB/config*.php  /phpBB/ext/*  /phpBB/files/*  /phpBB/images/avatars/gallery/* @@ -14,5 +12,5 @@  /phpBB/store/*  /phpBB/vendor  /tests/phpbb_unit_tests.sqlite2 -/tests/test_config.php +/tests/test_config*.php  /tests/tmp/* diff --git a/.travis.yml b/.travis.yml index 5e70ef97ec..0358500adc 100644 --- a/.travis.yml +++ b/.travis.yml @@ -22,10 +22,12 @@ before_script:    - sh -c "if [ '$TRAVIS_PHP_VERSION' != '5.2' ]; then php ../composer.phar install --dev --no-interaction --prefer-source; fi"    - cd ..    - sh -c "if [ `php -r "echo (int) version_compare(PHP_VERSION, '5.3.19', '>=');"` = "1" ]; then travis/setup-webserver.sh; fi" +  - sh -c "if [ '$TRAVIS_PHP_VERSION' = '5.5' -a '$DB' = 'mysql' ]; then sudo apt-get update; sudo apt-get install -y parallel libimage-exiftool-perl; fi"  script: -  - sh -c "if [ '$TRAVIS_PHP_VERSION' = '5.2' ]; then phpunit --configuration travis/phpunit-$DB-travis.xml; else phpBB/vendor/bin/phpunit --configuration travis/phpunit-$DB-travis.xml; fi" +  - sh -c "if [ '$TRAVIS_PHP_VERSION' = '5.2' ]; then phpunit --configuration travis/phpunit-$DB-5-2-travis.xml; else phpBB/vendor/bin/phpunit --configuration travis/phpunit-$DB-travis.xml; fi"    - sh -c "if [ '$TRAVIS_PHP_VERSION' = '5.5' -a '$DB' = 'mysql' -a '$TRAVIS_PULL_REQUEST' != 'false' ]; then git-tools/commit-msg-hook-range.sh origin/$TRAVIS_BRANCH..FETCH_HEAD; fi" +  - sh -c "if [ '$TRAVIS_PHP_VERSION' = '5.5' -a '$DB' = 'mysql' ]; then find . -type f -not -path './phpBB/vendor/*' -iregex '.*\.\(gif\|jpg\|jpeg\|png\)$' | parallel --gnu --keep-order 'phpBB/develop/strip_icc_profiles.sh {}' || exit 1; fi"  matrix:    include: @@ -35,3 +37,4 @@ matrix:        env: DB=postgres    allow_failures:      - php: hhvm +  fast_finish: true diff --git a/build/build.xml b/build/build.xml index a86cb9c36b..6873f48fab 100644 --- a/build/build.xml +++ b/build/build.xml @@ -67,7 +67,6 @@  		<exec dir="."  			command="phpBB/vendor/bin/phpunit  			--log-junit build/logs/phpunit.xml -			--configuration phpunit.xml.all  			--group slow  			--coverage-clover build/logs/clover-slow.xml  			--coverage-html build/coverage-slow" @@ -75,14 +74,8 @@  	</target>  	<target name="docs"> -		<!-- only works if you setup phpdoctor: -                     git clone https://github.com/peej/phpdoctor.git -                     and then create an executable phpdoctor in your path containing -                     #!/bin/sh -                     php -f /path/to/phpdoctor/phpdoc.php $@ -                --> -		<exec dir="build" -			command="phpdoctor phpdoc-phpbb.ini" +		<exec dir="." +			command="phpBB/vendor/bin/sami.php update build/sami.conf.php"  			passthru="true" />  	</target> diff --git a/build/phpdoc-phpbb.ini b/build/phpdoc-phpbb.ini deleted file mode 100644 index f1a7a4bee5..0000000000 --- a/build/phpdoc-phpbb.ini +++ /dev/null @@ -1,145 +0,0 @@ -; Default configuration file for PHPDoctor - -; This config file will cause PHPDoctor to generate API documentation of -; itself. - - -; PHPDoctor settings -; ----------------------------------------------------------------------------- - -; Names of files to parse. This can be a single filename, or a comma separated -; list of filenames. Wildcards are allowed. - -files = "*.php" - -; Names of files or directories to ignore. This can be a single filename, or a -; comma separated list of filenames. Wildcards are NOT allowed. - -;ignore = "CVS, .svn, .git, _compiled" -ignore = templates_c/,*HTML/default/*,spec/,*config.php*,*CVS/,test_chora.php,testupdate/,cache/,store/,*proSilver/,develop/,includes/utf/data/,includes/captcha/fonts/,install/update/,install/update.new/,files/,*phpinfo.php*,*update_script.php*,*upgrade.php*,*convert.php*,install/converter/,language/de/,script/,*swatch.php*,*test.php*,*test2.php*,*install.php*,*functions_diff.php*,*acp_update.php*,acm_xcache.php - -; The directory to look for files in, if not used the PHPDoctor will look in -; the current directory (the directory it is run from). - -source_path = "../phpBB/" - -; If you do not want PHPDoctor to look in each sub directory for files -; uncomment this line. - -;subdirs = off - -; Set how loud PHPDoctor is as it runs. Quiet mode suppresses all output other -; than warnings and errors. Verbose mode outputs additional messages during -; execution. - -quiet = on -;verbose = on - -; Select the doclet to use for generating output. - -doclet = standard -;doclet = debug - -; The directory to find the doclet in. Doclets control the HTML output of -; phpDoctor and can be modified to suit your needs. They are expected to be  -; in a directory named after themselves at the location given. - -;doclet_path = ./doclets - -; Select the formatter to use for generating output. - -;formatter = htmlStandardFormatter - -; The directory to find the formatter in. Formatters convert textual markup -; for use by the doclet. - -;formatter_path = ./formatters - -; The directory to find taglets in. Taglets allow you to make PHPDoctor handle -; new tags and to alter the behavour of existing tags and their output. - -;taglet_path = ./taglets - -; If the code you are parsing does not use package tags or not all elements -; have package tags, use this setting to place unbound elements into a -; particular package. - -default_package = "phpBB" - -use_class_path_as_package = off - -ignore_package_tags = off - -; Specifies the name of a HTML file containing text for the overview -; documentation to be placed on the overview page. The path is relative to -; "source_path" unless an absolute path is given. - -overview = ../README.md - -; Package comments will be looked for in a file named package.html in the same -; directory as the first source file parsed in that package or in the directory -; given below. If package comments are placed in the directory given below then -; they should be named "<packageName>.html". - -package_comment_dir = ./ - -; Parse out global variables and/or global constants? - -;globals = off -;constants = off - -; Generate documentation for all class members - -;private = on - -; Generate documentation for public and protected class members - -;protected = on - -; Generate documentation for only public class members - -;public = on - -; Use the PEAR compatible handling of the docblock first sentence - -;pear_compat = on - -; Standard doclet settings -; ----------------------------------------------------------------------------- - -; The directory to place generated documentation in. If the given path is -; relative to it will be relative to "source_path". - -d = "../build/api/" - -; Specifies the title to be placed in the HTML <title> tag. - -windowtitle = "phpBB3" - -; Specifies the title to be placed near the top of the overview summary file. - -doctitle = "phpBB3 Sourcecode Documentation" - -; Specifies the header text to be placed at the top of each output file. The -; header will be placed to the right of the upper navigation bar.  - -header = "phpBB3" - -; Specifies the footer text to be placed at the bottom of each output file. The -; footer will be placed to the right of the lower navigation bar. - -footer = "phpBB3" - -; Specifies the text to be placed at the bottom of each output file. The text -; will be placed at the bottom of the page, below the lower navigation bar. - -;bottom = "This document was generated by <a href="http://peej.github.com/phpdoctor/">PHPDoctor: The PHP Documentation Creator</a>" - -; Create a class tree? - -;tree = off - -; Use GeSHi to include formatted source files in the documentation. PHPDoctor will look in the current doclet directory for a /geshi subdirectory. Unpack the GeSHi archive from http://qbnz.com/highlighter to get this directory - it will contain a php script and a subdirectory with formatting files. - -include_source = off - diff --git a/build/sami.conf.php b/build/sami.conf.php new file mode 100644 index 0000000000..dd57ec8780 --- /dev/null +++ b/build/sami.conf.php @@ -0,0 +1,50 @@ +<?php +/** +* @copyright (c) 2014 phpBB Group +* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2 +*/ + +// Prevent 'Class "acm" does not exist.' exception on removeClass(). +class PhpbbArrayStore extends Sami\Store\ArrayStore +{ +	public function removeClass(Sami\Project $project, $name) +	{ +		unset($this->classes[$name]); +	} +} + +$iterator = Symfony\Component\Finder\Finder::create() +	->files() +	->name('*.php') +	->in(__DIR__ . '/../phpBB/') +	->notPath('#^cache/#') +	->notPath('#^develop/#') +	->notPath('#^ext/#') +	->notPath('#^vendor/#') +	->notPath('data') +; + +$versions = Sami\Version\GitVersionCollection::create(__DIR__ . '/../') +	/* +	This would be nice, but currently causes various problems that need +	debugging. +	->addFromTags('release-3.0.*') +	->add('develop-olympus', '3.0-next (olympus)') +	->addFromTags('release-3.1.*') +	->add('develop-ascraeus', '3.1-next (ascraeus)') +	->add('develop') +	*/ +	->add('develop-olympus') +	->add('develop-ascraeus') +; + +return new Sami\Sami($iterator, array( +	'theme'                => 'enhanced', +	'versions'             => $versions, +	'title'                => 'phpBB API Documentation', +	'build_dir'            => __DIR__.'/api/output/%version%', +	'cache_dir'            => __DIR__.'/api/cache/%version%', +	'default_opened_level' => 2, +	// Do not use JsonStore. See https://github.com/fabpot/Sami/issues/79 +	'store'                => new PhpbbArrayStore, +)); diff --git a/git-tools/hooks/commit-msg b/git-tools/hooks/commit-msg index b156d276df..136606252c 100755 --- a/git-tools/hooks/commit-msg +++ b/git-tools/hooks/commit-msg @@ -191,12 +191,12 @@ do  				err=$ERR_HEADER;  				echo "$line" | grep -Eq "^\[(ticket/[0-9]+|feature/$branch_regex|task/$branch_regex)\] .+$"  				result=$? -				if ! echo "$line" | grep -Eq "^\[(ticket/[0-9]+|feature/$branch_regex|task/$branch_regex)\] [A-Z].+$" +				if ! echo "$line" | grep -Eq "^\[(ticket/[0-9]+|feature/$branch_regex|task/$branch_regex)\] [a-zA-Z].+$"  				then  					# Don't be too strict.  					# Commits may be temporary, intended to be squashed later.  					# Just issue a warning here. -					complain "$severity: heading should be a sentence beginning with a capital letter." 1>&2 +					complain "$severity: heading should be a sentence beginning with a letter." 1>&2  					complain "You entered:" 1>&2  					complain "$line" 1>&2  				fi diff --git a/phpBB/.htaccess b/phpBB/.htaccess index 474f9774c2..ad5e24d642 100644 --- a/phpBB/.htaccess +++ b/phpBB/.htaccess @@ -8,12 +8,50 @@  #RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization},L]  #</IfModule> -<Files "config.php"> -Order Allow,Deny -Deny from All -</Files> - -<Files "common.php"> -Order Allow,Deny -Deny from All -</Files> +# With Apache 2.4 the "Order, Deny" syntax has been deprecated and moved from +# module mod_authz_host to a new module called mod_access_compat (which may be +# disabled) and a new "Require" syntax has been introduced to mod_authz_host. +# We could just conditionally provide both versions, but unfortunately Apache +# does not explicitly tell us its version if the module mod_version is not +# available. In this case, we check for the availability of module +# mod_authz_core (which should be on 2.4 or higher only) as a best guess. +<IfModule mod_version.c> +	<IfVersion < 2.4> +		<Files "config.php"> +			Order Allow,Deny +			Deny from All +		</Files> +		<Files "common.php"> +			Order Allow,Deny +			Deny from All +		</Files> +	</IfVersion> +	<IfVersion >= 2.4> +		<Files "config.php"> +			Require all denied +		</Files> +		<Files "common.php"> +			Require all denied +		</Files> +	</IfVersion> +</IfModule> +<IfModule !mod_version.c> +	<IfModule !mod_authz_core.c> +		<Files "config.php"> +			Order Allow,Deny +			Deny from All +		</Files> +		<Files "common.php"> +			Order Allow,Deny +			Deny from All +		</Files> +	</IfModule> +	<IfModule mod_authz_core.c> +		<Files "config.php"> +			Require all denied +		</Files> +		<Files "common.php"> +			Require all denied +		</Files> +	</IfModule> +</IfModule> diff --git a/phpBB/adm/images/phpbb_logo.png b/phpBB/adm/images/phpbb_logo.png Binary files differindex c3f9248ed7..2d76ef18cb 100644 --- a/phpBB/adm/images/phpbb_logo.png +++ b/phpBB/adm/images/phpbb_logo.png diff --git a/phpBB/composer.json b/phpBB/composer.json index 4b3fe8ebb3..966ff39fcc 100644 --- a/phpBB/composer.json +++ b/phpBB/composer.json @@ -1,8 +1,9 @@  {  	"require-dev": {  		"fabpot/goutte": "1.0.*", -		"phpunit/dbunit": "1.2.*", -		"phpunit/phpunit": "3.7.*", -		"phing/phing": "2.4.*" +		"phpunit/dbunit": "1.3.*", +		"phpunit/phpunit": "4.1.*", +		"phing/phing": "2.4.*", +		"sami/sami": "1.*"  	}  } diff --git a/phpBB/composer.lock b/phpBB/composer.lock index 61ba0fdebc..4dd6da46ed 100644 --- a/phpBB/composer.lock +++ b/phpBB/composer.lock @@ -3,7 +3,7 @@          "This file locks the dependencies of your project to a known state",          "Read more about it at http://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file"      ], -    "hash": "ec5fbbc971057677b452c4600e7501c6", +    "hash": "78d2a648f5519c8c5370017aaeba7731",      "packages": [      ], @@ -54,7 +54,9 @@              "authors": [                  {                      "name": "Fabien Potencier", -                    "email": "fabien@symfony.com" +                    "email": "fabien@symfony.com", +                    "homepage": "http://fabien.potencier.org", +                    "role": "Lead Developer"                  }              ],              "description": "A simple PHP Web Scraper", @@ -263,6 +265,101 @@              "time": "2013-07-30 22:07:23"          },          { +            "name": "michelf/php-markdown", +            "version": "1.4.1", +            "source": { +                "type": "git", +                "url": "https://github.com/michelf/php-markdown.git", +                "reference": "de9a19c7bf352d41cc99ed86c3c0ef17e87394b6" +            }, +            "dist": { +                "type": "zip", +                "url": "https://api.github.com/repos/michelf/php-markdown/zipball/de9a19c7bf352d41cc99ed86c3c0ef17e87394b6", +                "reference": "de9a19c7bf352d41cc99ed86c3c0ef17e87394b6", +                "shasum": "" +            }, +            "require": { +                "php": ">=5.3.0" +            }, +            "type": "library", +            "extra": { +                "branch-alias": { +                    "dev-lib": "1.4.x-dev" +                } +            }, +            "autoload": { +                "psr-0": { +                    "Michelf": "" +                } +            }, +            "notification-url": "https://packagist.org/downloads/", +            "license": [ +                "BSD-3-Clause" +            ], +            "authors": [ +                { +                    "name": "Michel Fortin", +                    "email": "michel.fortin@michelf.ca", +                    "homepage": "http://michelf.ca/", +                    "role": "Developer" +                }, +                { +                    "name": "John Gruber", +                    "homepage": "http://daringfireball.net/" +                } +            ], +            "description": "PHP Markdown", +            "homepage": "http://michelf.ca/projects/php-markdown/", +            "keywords": [ +                "markdown" +            ], +            "time": "2014-05-05 02:43:50" +        }, +        { +            "name": "nikic/php-parser", +            "version": "v0.9.4", +            "source": { +                "type": "git", +                "url": "https://github.com/nikic/PHP-Parser.git", +                "reference": "1e5e280ae88a27effa2ae4aa2bd088494ed8594f" +            }, +            "dist": { +                "type": "zip", +                "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/1e5e280ae88a27effa2ae4aa2bd088494ed8594f", +                "reference": "1e5e280ae88a27effa2ae4aa2bd088494ed8594f", +                "shasum": "" +            }, +            "require": { +                "php": ">=5.2" +            }, +            "type": "library", +            "extra": { +                "branch-alias": { +                    "dev-master": "0.9-dev" +                } +            }, +            "autoload": { +                "psr-0": { +                    "PHPParser": "lib/" +                } +            }, +            "notification-url": "https://packagist.org/downloads/", +            "license": [ +                "BSD-3-Clause" +            ], +            "authors": [ +                { +                    "name": "Nikita Popov" +                } +            ], +            "description": "A PHP parser written in PHP", +            "keywords": [ +                "parser", +                "php" +            ], +            "time": "2013-08-25 17:11:40" +        }, +        {              "name": "phing/phing",              "version": "2.4.14",              "source": { @@ -316,31 +413,32 @@          },          {              "name": "phpunit/dbunit", -            "version": "1.2.3", +            "version": "1.3.1",              "source": {                  "type": "git",                  "url": "https://github.com/sebastianbergmann/dbunit.git", -                "reference": "8386782a2d55153e44a06eb1a9d13d6ed35d9c2d" +                "reference": "a5891b7a9c4f21587a51f9bc4e8f7042b741b480"              },              "dist": {                  "type": "zip", -                "url": "https://api.github.com/repos/sebastianbergmann/dbunit/zipball/8386782a2d55153e44a06eb1a9d13d6ed35d9c2d", -                "reference": "8386782a2d55153e44a06eb1a9d13d6ed35d9c2d", +                "url": "https://api.github.com/repos/sebastianbergmann/dbunit/zipball/a5891b7a9c4f21587a51f9bc4e8f7042b741b480", +                "reference": "a5891b7a9c4f21587a51f9bc4e8f7042b741b480",                  "shasum": ""              },              "require": {                  "ext-pdo": "*",                  "ext-simplexml": "*",                  "php": ">=5.3.3", -                "phpunit/phpunit": ">=3.7.0@stable" +                "phpunit/phpunit": ">=3.7.0@stable", +                "symfony/yaml": ">=2.1.0"              },              "bin": [ -                "dbunit.php" +                "composer/bin/dbunit"              ],              "type": "library",              "extra": {                  "branch-alias": { -                    "dev-master": "1.2.x-dev" +                    "dev-master": "1.3.x-dev"                  }              },              "autoload": { @@ -370,44 +468,48 @@                  "testing",                  "xunit"              ], -            "time": "2013-03-01 11:50:46" +            "time": "2014-03-26 11:25:06"          },          {              "name": "phpunit/php-code-coverage", -            "version": "1.2.12", +            "version": "2.0.6",              "source": {                  "type": "git",                  "url": "https://github.com/sebastianbergmann/php-code-coverage.git", -                "reference": "0e9958c459d675fb497d8dc5001c91d335734e48" +                "reference": "bccecf50645068b44f49a84009e2a0499a500b99"              },              "dist": {                  "type": "zip", -                "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/0e9958c459d675fb497d8dc5001c91d335734e48", -                "reference": "0e9958c459d675fb497d8dc5001c91d335734e48", +                "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/bccecf50645068b44f49a84009e2a0499a500b99", +                "reference": "bccecf50645068b44f49a84009e2a0499a500b99",                  "shasum": ""              },              "require": {                  "php": ">=5.3.3", -                "phpunit/php-file-iterator": ">=1.3.0@stable", -                "phpunit/php-text-template": ">=1.1.1@stable", -                "phpunit/php-token-stream": ">=1.1.3@stable" +                "phpunit/php-file-iterator": "~1.3.1", +                "phpunit/php-text-template": "~1.2.0", +                "phpunit/php-token-stream": "~1.2.2", +                "sebastian/environment": "~1.0.0", +                "sebastian/version": "~1.0.3"              },              "require-dev": { -                "phpunit/phpunit": "3.7.*@dev" +                "ext-xdebug": ">=2.1.4", +                "phpunit/phpunit": "~4.0.14"              },              "suggest": {                  "ext-dom": "*", -                "ext-xdebug": ">=2.0.5" +                "ext-xdebug": ">=2.2.1", +                "ext-xmlwriter": "*"              },              "type": "library",              "extra": {                  "branch-alias": { -                    "dev-master": "1.2.x-dev" +                    "dev-master": "2.0.x-dev"                  }              },              "autoload": {                  "classmap": [ -                    "PHP/" +                    "src/"                  ]              },              "notification-url": "https://packagist.org/downloads/", @@ -431,20 +533,20 @@                  "testing",                  "xunit"              ], -            "time": "2013-07-06 06:26:16" +            "time": "2014-04-30 09:01:21"          },          {              "name": "phpunit/php-file-iterator", -            "version": "1.3.3", +            "version": "1.3.4",              "source": {                  "type": "git",                  "url": "https://github.com/sebastianbergmann/php-file-iterator.git", -                "reference": "16a78140ed2fc01b945cfa539665fadc6a038029" +                "reference": "acd690379117b042d1c8af1fafd61bde001bf6bb"              },              "dist": {                  "type": "zip", -                "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/16a78140ed2fc01b945cfa539665fadc6a038029", -                "reference": "16a78140ed2fc01b945cfa539665fadc6a038029", +                "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/acd690379117b042d1c8af1fafd61bde001bf6bb", +                "reference": "acd690379117b042d1c8af1fafd61bde001bf6bb",                  "shasum": ""              },              "require": { @@ -471,25 +573,25 @@                  }              ],              "description": "FilterIterator implementation that filters files based on a list of suffixes.", -            "homepage": "http://www.phpunit.de/", +            "homepage": "https://github.com/sebastianbergmann/php-file-iterator/",              "keywords": [                  "filesystem",                  "iterator"              ], -            "time": "2012-10-11 11:44:38" +            "time": "2013-10-10 15:34:57"          },          {              "name": "phpunit/php-text-template", -            "version": "1.1.4", +            "version": "1.2.0",              "source": {                  "type": "git",                  "url": "https://github.com/sebastianbergmann/php-text-template.git", -                "reference": "5180896f51c5b3648ac946b05f9ec02be78a0b23" +                "reference": "206dfefc0ffe9cebf65c413e3d0e809c82fbf00a"              },              "dist": {                  "type": "zip", -                "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/5180896f51c5b3648ac946b05f9ec02be78a0b23", -                "reference": "5180896f51c5b3648ac946b05f9ec02be78a0b23", +                "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/206dfefc0ffe9cebf65c413e3d0e809c82fbf00a", +                "reference": "206dfefc0ffe9cebf65c413e3d0e809c82fbf00a",                  "shasum": ""              },              "require": { @@ -520,7 +622,7 @@              "keywords": [                  "template"              ], -            "time": "2012-10-31 18:15:28" +            "time": "2014-01-30 17:20:04"          },          {              "name": "phpunit/php-timer", @@ -568,16 +670,16 @@          },          {              "name": "phpunit/php-token-stream", -            "version": "1.2.0", +            "version": "1.2.2",              "source": {                  "type": "git",                  "url": "https://github.com/sebastianbergmann/php-token-stream.git", -                "reference": "31babf400e5b5868573bf49a000a3519d3978233" +                "reference": "ad4e1e23ae01b483c16f600ff1bebec184588e32"              },              "dist": {                  "type": "zip", -                "url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/31babf400e5b5868573bf49a000a3519d3978233", -                "reference": "31babf400e5b5868573bf49a000a3519d3978233", +                "url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/ad4e1e23ae01b483c16f600ff1bebec184588e32", +                "reference": "ad4e1e23ae01b483c16f600ff1bebec184588e32",                  "shasum": ""              },              "require": { @@ -614,56 +716,56 @@              "keywords": [                  "tokenizer"              ], -            "time": "2013-08-04 05:57:48" +            "time": "2014-03-03 05:10:30"          },          {              "name": "phpunit/phpunit", -            "version": "3.7.24", +            "version": "4.1.0",              "source": {                  "type": "git",                  "url": "https://github.com/sebastianbergmann/phpunit.git", -                "reference": "af7b77ccb5c64458bdfca95665d29558d1df7d08" +                "reference": "efb1b1334605594417a3bd466477772d06d460a8"              },              "dist": {                  "type": "zip", -                "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/af7b77ccb5c64458bdfca95665d29558d1df7d08", -                "reference": "af7b77ccb5c64458bdfca95665d29558d1df7d08", +                "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/efb1b1334605594417a3bd466477772d06d460a8", +                "reference": "efb1b1334605594417a3bd466477772d06d460a8",                  "shasum": ""              },              "require": {                  "ext-dom": "*", +                "ext-json": "*",                  "ext-pcre": "*",                  "ext-reflection": "*",                  "ext-spl": "*",                  "php": ">=5.3.3", -                "phpunit/php-code-coverage": "~1.2.1", -                "phpunit/php-file-iterator": ">=1.3.1", -                "phpunit/php-text-template": ">=1.1.1", -                "phpunit/php-timer": ">=1.0.4", -                "phpunit/phpunit-mock-objects": "~1.2.0", +                "phpunit/php-code-coverage": "~2.0", +                "phpunit/php-file-iterator": "~1.3.1", +                "phpunit/php-text-template": "~1.2", +                "phpunit/php-timer": "~1.0.2", +                "phpunit/phpunit-mock-objects": "~2.1", +                "sebastian/comparator": "~1.0", +                "sebastian/diff": "~1.1", +                "sebastian/environment": "~1.0", +                "sebastian/exporter": "~1.0", +                "sebastian/version": "~1.0",                  "symfony/yaml": "~2.0"              }, -            "require-dev": { -                "pear-pear/pear": "1.9.4" -            },              "suggest": { -                "ext-json": "*", -                "ext-simplexml": "*", -                "ext-tokenizer": "*", -                "phpunit/php-invoker": ">=1.1.0,<1.2.0" +                "phpunit/php-invoker": "~1.1"              },              "bin": [ -                "composer/bin/phpunit" +                "phpunit"              ],              "type": "library",              "extra": {                  "branch-alias": { -                    "dev-master": "3.7.x-dev" +                    "dev-master": "4.1.x-dev"                  }              },              "autoload": {                  "classmap": [ -                    "PHPUnit/" +                    "src/"                  ]              },              "notification-url": "https://packagist.org/downloads/", @@ -688,33 +790,41 @@                  "testing",                  "xunit"              ], -            "time": "2013-08-09 06:58:24" +            "time": "2014-05-02 07:13:40"          },          {              "name": "phpunit/phpunit-mock-objects", -            "version": "1.2.3", +            "version": "2.1.0",              "source": {                  "type": "git",                  "url": "https://github.com/sebastianbergmann/phpunit-mock-objects.git", -                "reference": "5794e3c5c5ba0fb037b11d8151add2a07fa82875" +                "reference": "da0eb04d8ee95ec2898187e407e519c118d3d27c"              },              "dist": {                  "type": "zip", -                "url": "https://api.github.com/repos/sebastianbergmann/phpunit-mock-objects/zipball/5794e3c5c5ba0fb037b11d8151add2a07fa82875", -                "reference": "5794e3c5c5ba0fb037b11d8151add2a07fa82875", +                "url": "https://api.github.com/repos/sebastianbergmann/phpunit-mock-objects/zipball/da0eb04d8ee95ec2898187e407e519c118d3d27c", +                "reference": "da0eb04d8ee95ec2898187e407e519c118d3d27c",                  "shasum": ""              },              "require": {                  "php": ">=5.3.3", -                "phpunit/php-text-template": ">=1.1.1@stable" +                "phpunit/php-text-template": "~1.2" +            }, +            "require-dev": { +                "phpunit/phpunit": "~4.1"              },              "suggest": {                  "ext-soap": "*"              },              "type": "library", +            "extra": { +                "branch-alias": { +                    "dev-master": "2.1.x-dev" +                } +            },              "autoload": {                  "classmap": [ -                    "PHPUnit/" +                    "src/"                  ]              },              "notification-url": "https://packagist.org/downloads/", @@ -737,7 +847,381 @@                  "mock",                  "xunit"              ], -            "time": "2013-01-13 10:24:48" +            "time": "2014-05-02 07:04:11" +        }, +        { +            "name": "pimple/pimple", +            "version": "v1.0.2", +            "source": { +                "type": "git", +                "url": "https://github.com/fabpot/Pimple.git", +                "reference": "ae11e57e8c2bb414b2ff93396dbbfc0eb92feb94" +            }, +            "dist": { +                "type": "zip", +                "url": "https://api.github.com/repos/fabpot/Pimple/zipball/ae11e57e8c2bb414b2ff93396dbbfc0eb92feb94", +                "reference": "ae11e57e8c2bb414b2ff93396dbbfc0eb92feb94", +                "shasum": "" +            }, +            "require": { +                "php": ">=5.3.0" +            }, +            "type": "library", +            "extra": { +                "branch-alias": { +                    "dev-master": "1.0.x-dev" +                } +            }, +            "autoload": { +                "psr-0": { +                    "Pimple": "lib/" +                } +            }, +            "notification-url": "https://packagist.org/downloads/", +            "license": [ +                "MIT" +            ], +            "authors": [ +                { +                    "name": "Fabien Potencier", +                    "email": "fabien@symfony.com", +                    "homepage": "http://fabien.potencier.org", +                    "role": "Lead Developer" +                } +            ], +            "description": "Pimple is a simple Dependency Injection Container for PHP 5.3", +            "homepage": "http://pimple.sensiolabs.org", +            "keywords": [ +                "container", +                "dependency injection" +            ], +            "time": "2013-03-08 08:21:40" +        }, +        { +            "name": "sami/sami", +            "version": "v1.3", +            "source": { +                "type": "git", +                "url": "https://github.com/fabpot/Sami.git", +                "reference": "76f2ed80b3420f7e2f6dcd5b7218b5a5781f4110" +            }, +            "dist": { +                "type": "zip", +                "url": "https://api.github.com/repos/fabpot/Sami/zipball/76f2ed80b3420f7e2f6dcd5b7218b5a5781f4110", +                "reference": "76f2ed80b3420f7e2f6dcd5b7218b5a5781f4110", +                "shasum": "" +            }, +            "require": { +                "michelf/php-markdown": "~1.3", +                "nikic/php-parser": "0.9.*", +                "php": ">=5.3.0", +                "pimple/pimple": "1.0.*", +                "symfony/console": "~2.1", +                "symfony/filesystem": "~2.1", +                "symfony/finder": "~2.1", +                "symfony/process": "~2.1", +                "symfony/yaml": "~2.1", +                "twig/twig": "1.*" +            }, +            "bin": [ +                "sami.php" +            ], +            "type": "application", +            "extra": { +                "branch-alias": { +                    "dev-master": "1.3-dev" +                } +            }, +            "autoload": { +                "psr-0": { +                    "Sami": "." +                } +            }, +            "notification-url": "https://packagist.org/downloads/", +            "license": [ +                "MIT" +            ], +            "authors": [ +                { +                    "name": "Fabien Potencier", +                    "email": "fabien@symfony.com", +                    "homepage": "http://fabien.potencier.org", +                    "role": "Lead Developer" +                } +            ], +            "description": "Sami, an API documentation generator", +            "homepage": "http://sami.sensiolabs.org", +            "keywords": [ +                "phpdoc" +            ], +            "time": "2013-11-30 17:16:25" +        }, +        { +            "name": "sebastian/comparator", +            "version": "1.0.0", +            "source": { +                "type": "git", +                "url": "https://github.com/sebastianbergmann/comparator.git", +                "reference": "f7069ee51fa9fb6c038e16a9d0e3439f5449dcf2" +            }, +            "dist": { +                "type": "zip", +                "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/f7069ee51fa9fb6c038e16a9d0e3439f5449dcf2", +                "reference": "f7069ee51fa9fb6c038e16a9d0e3439f5449dcf2", +                "shasum": "" +            }, +            "require": { +                "php": ">=5.3.3", +                "sebastian/diff": "~1.1", +                "sebastian/exporter": "~1.0" +            }, +            "require-dev": { +                "phpunit/phpunit": "~4.1" +            }, +            "type": "library", +            "extra": { +                "branch-alias": { +                    "dev-master": "1.0.x-dev" +                } +            }, +            "autoload": { +                "classmap": [ +                    "src/" +                ] +            }, +            "notification-url": "https://packagist.org/downloads/", +            "license": [ +                "BSD-3-Clause" +            ], +            "authors": [ +                { +                    "name": "Sebastian Bergmann", +                    "email": "sebastian@phpunit.de", +                    "role": "lead" +                }, +                { +                    "name": "Jeff Welch", +                    "email": "whatthejeff@gmail.com" +                }, +                { +                    "name": "Volker Dusch", +                    "email": "github@wallbash.com" +                }, +                { +                    "name": "Bernhard Schussek", +                    "email": "bschussek@2bepublished.at" +                } +            ], +            "description": "Provides the functionality to compare PHP values for equality", +            "homepage": "http://www.github.com/sebastianbergmann/comparator", +            "keywords": [ +                "comparator", +                "compare", +                "equality" +            ], +            "time": "2014-05-02 07:05:58" +        }, +        { +            "name": "sebastian/diff", +            "version": "1.1.0", +            "source": { +                "type": "git", +                "url": "https://github.com/sebastianbergmann/diff.git", +                "reference": "1e091702a5a38e6b4c1ba9ca816e3dd343df2e2d" +            }, +            "dist": { +                "type": "zip", +                "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/1e091702a5a38e6b4c1ba9ca816e3dd343df2e2d", +                "reference": "1e091702a5a38e6b4c1ba9ca816e3dd343df2e2d", +                "shasum": "" +            }, +            "require": { +                "php": ">=5.3.3" +            }, +            "type": "library", +            "extra": { +                "branch-alias": { +                    "dev-master": "1.1-dev" +                } +            }, +            "autoload": { +                "classmap": [ +                    "src/" +                ] +            }, +            "notification-url": "https://packagist.org/downloads/", +            "license": [ +                "BSD-3-Clause" +            ], +            "authors": [ +                { +                    "name": "Sebastian Bergmann", +                    "email": "sebastian@phpunit.de", +                    "role": "lead" +                }, +                { +                    "name": "Kore Nordmann", +                    "email": "mail@kore-nordmann.de" +                } +            ], +            "description": "Diff implementation", +            "homepage": "http://www.github.com/sebastianbergmann/diff", +            "keywords": [ +                "diff" +            ], +            "time": "2013-08-03 16:46:33" +        }, +        { +            "name": "sebastian/environment", +            "version": "1.0.0", +            "source": { +                "type": "git", +                "url": "https://github.com/sebastianbergmann/environment.git", +                "reference": "79517609ec01139cd7e9fded0dd7ce08c952ef6a" +            }, +            "dist": { +                "type": "zip", +                "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/79517609ec01139cd7e9fded0dd7ce08c952ef6a", +                "reference": "79517609ec01139cd7e9fded0dd7ce08c952ef6a", +                "shasum": "" +            }, +            "require": { +                "php": ">=5.3.3" +            }, +            "require-dev": { +                "phpunit/phpunit": "4.0.*@dev" +            }, +            "type": "library", +            "extra": { +                "branch-alias": { +                    "dev-master": "1.0.x-dev" +                } +            }, +            "autoload": { +                "classmap": [ +                    "src/" +                ] +            }, +            "notification-url": "https://packagist.org/downloads/", +            "license": [ +                "BSD-3-Clause" +            ], +            "authors": [ +                { +                    "name": "Sebastian Bergmann", +                    "email": "sebastian@phpunit.de", +                    "role": "lead" +                } +            ], +            "description": "Provides functionality to handle HHVM/PHP environments", +            "homepage": "http://www.github.com/sebastianbergmann/environment", +            "keywords": [ +                "Xdebug", +                "environment", +                "hhvm" +            ], +            "time": "2014-02-18 16:17:19" +        }, +        { +            "name": "sebastian/exporter", +            "version": "1.0.1", +            "source": { +                "type": "git", +                "url": "https://github.com/sebastianbergmann/exporter.git", +                "reference": "1f9a98e6f5dfe0524cb8c6166f7c82f3e9ae1529" +            }, +            "dist": { +                "type": "zip", +                "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/1f9a98e6f5dfe0524cb8c6166f7c82f3e9ae1529", +                "reference": "1f9a98e6f5dfe0524cb8c6166f7c82f3e9ae1529", +                "shasum": "" +            }, +            "require": { +                "php": ">=5.3.3" +            }, +            "require-dev": { +                "phpunit/phpunit": "4.0.*@dev" +            }, +            "type": "library", +            "extra": { +                "branch-alias": { +                    "dev-master": "1.0.x-dev" +                } +            }, +            "autoload": { +                "classmap": [ +                    "src/" +                ] +            }, +            "notification-url": "https://packagist.org/downloads/", +            "license": [ +                "BSD-3-Clause" +            ], +            "authors": [ +                { +                    "name": "Sebastian Bergmann", +                    "email": "sebastian@phpunit.de", +                    "role": "lead" +                }, +                { +                    "name": "Jeff Welch", +                    "email": "whatthejeff@gmail.com" +                }, +                { +                    "name": "Volker Dusch", +                    "email": "github@wallbash.com" +                }, +                { +                    "name": "Adam Harvey", +                    "email": "aharvey@php.net" +                }, +                { +                    "name": "Bernhard Schussek", +                    "email": "bschussek@2bepublished.at" +                } +            ], +            "description": "Provides the functionality to export PHP variables for visualization", +            "homepage": "http://www.github.com/sebastianbergmann/exporter", +            "keywords": [ +                "export", +                "exporter" +            ], +            "time": "2014-02-16 08:26:31" +        }, +        { +            "name": "sebastian/version", +            "version": "1.0.3", +            "source": { +                "type": "git", +                "url": "https://github.com/sebastianbergmann/version.git", +                "reference": "b6e1f0cf6b9e1ec409a0d3e2f2a5fb0998e36b43" +            }, +            "dist": { +                "type": "zip", +                "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/b6e1f0cf6b9e1ec409a0d3e2f2a5fb0998e36b43", +                "reference": "b6e1f0cf6b9e1ec409a0d3e2f2a5fb0998e36b43", +                "shasum": "" +            }, +            "type": "library", +            "autoload": { +                "classmap": [ +                    "src/" +                ] +            }, +            "notification-url": "https://packagist.org/downloads/", +            "license": [ +                "BSD-3-Clause" +            ], +            "authors": [ +                { +                    "name": "Sebastian Bergmann", +                    "email": "sebastian@phpunit.de", +                    "role": "lead" +                } +            ], +            "description": "Library that helps with managing the version number of Git-hosted PHP projects", +            "homepage": "https://github.com/sebastianbergmann/version", +            "time": "2014-03-07 15:35:33"          },          {              "name": "symfony/browser-kit", @@ -783,7 +1267,9 @@              "authors": [                  {                      "name": "Fabien Potencier", -                    "email": "fabien@symfony.com" +                    "email": "fabien@symfony.com", +                    "homepage": "http://fabien.potencier.org", +                    "role": "Lead Developer"                  },                  {                      "name": "Symfony Community", @@ -795,6 +1281,61 @@              "time": "2013-07-21 12:12:18"          },          { +            "name": "symfony/console", +            "version": "v2.4.4", +            "target-dir": "Symfony/Component/Console", +            "source": { +                "type": "git", +                "url": "https://github.com/symfony/Console.git", +                "reference": "2e452005b1e1d003d23702d227e23614679eb5ca" +            }, +            "dist": { +                "type": "zip", +                "url": "https://api.github.com/repos/symfony/Console/zipball/2e452005b1e1d003d23702d227e23614679eb5ca", +                "reference": "2e452005b1e1d003d23702d227e23614679eb5ca", +                "shasum": "" +            }, +            "require": { +                "php": ">=5.3.3" +            }, +            "require-dev": { +                "symfony/event-dispatcher": "~2.1" +            }, +            "suggest": { +                "symfony/event-dispatcher": "" +            }, +            "type": "library", +            "extra": { +                "branch-alias": { +                    "dev-master": "2.4-dev" +                } +            }, +            "autoload": { +                "psr-0": { +                    "Symfony\\Component\\Console\\": "" +                } +            }, +            "notification-url": "https://packagist.org/downloads/", +            "license": [ +                "MIT" +            ], +            "authors": [ +                { +                    "name": "Fabien Potencier", +                    "email": "fabien@symfony.com", +                    "homepage": "http://fabien.potencier.org", +                    "role": "Lead Developer" +                }, +                { +                    "name": "Symfony Community", +                    "homepage": "http://symfony.com/contributors" +                } +            ], +            "description": "Symfony Console Component", +            "homepage": "http://symfony.com", +            "time": "2014-04-27 13:34:57" +        }, +        {              "name": "symfony/css-selector",              "version": "v2.3.4",              "target-dir": "Symfony/Component/CssSelector", @@ -830,7 +1371,9 @@              "authors": [                  {                      "name": "Fabien Potencier", -                    "email": "fabien@symfony.com" +                    "email": "fabien@symfony.com", +                    "homepage": "http://fabien.potencier.org", +                    "role": "Lead Developer"                  },                  {                      "name": "Symfony Community", @@ -887,7 +1430,9 @@              "authors": [                  {                      "name": "Fabien Potencier", -                    "email": "fabien@symfony.com" +                    "email": "fabien@symfony.com", +                    "homepage": "http://fabien.potencier.org", +                    "role": "Lead Developer"                  },                  {                      "name": "Symfony Community", @@ -941,7 +1486,9 @@              "authors": [                  {                      "name": "Fabien Potencier", -                    "email": "fabien@symfony.com" +                    "email": "fabien@symfony.com", +                    "homepage": "http://fabien.potencier.org", +                    "role": "Lead Developer"                  },                  {                      "name": "Symfony Community", @@ -953,6 +1500,55 @@              "time": "2013-07-21 12:12:18"          },          { +            "name": "symfony/filesystem", +            "version": "v2.4.4", +            "target-dir": "Symfony/Component/Filesystem", +            "source": { +                "type": "git", +                "url": "https://github.com/symfony/Filesystem.git", +                "reference": "a3af8294bcce4a7c1b2892363b0c9d8109affad4" +            }, +            "dist": { +                "type": "zip", +                "url": "https://api.github.com/repos/symfony/Filesystem/zipball/a3af8294bcce4a7c1b2892363b0c9d8109affad4", +                "reference": "a3af8294bcce4a7c1b2892363b0c9d8109affad4", +                "shasum": "" +            }, +            "require": { +                "php": ">=5.3.3" +            }, +            "type": "library", +            "extra": { +                "branch-alias": { +                    "dev-master": "2.4-dev" +                } +            }, +            "autoload": { +                "psr-0": { +                    "Symfony\\Component\\Filesystem\\": "" +                } +            }, +            "notification-url": "https://packagist.org/downloads/", +            "license": [ +                "MIT" +            ], +            "authors": [ +                { +                    "name": "Fabien Potencier", +                    "email": "fabien@symfony.com", +                    "homepage": "http://fabien.potencier.org", +                    "role": "Lead Developer" +                }, +                { +                    "name": "Symfony Community", +                    "homepage": "http://symfony.com/contributors" +                } +            ], +            "description": "Symfony Filesystem Component", +            "homepage": "http://symfony.com", +            "time": "2014-04-16 10:34:31" +        }, +        {              "name": "symfony/finder",              "version": "v2.3.4",              "target-dir": "Symfony/Component/Finder", @@ -988,7 +1584,9 @@              "authors": [                  {                      "name": "Fabien Potencier", -                    "email": "fabien@symfony.com" +                    "email": "fabien@symfony.com", +                    "homepage": "http://fabien.potencier.org", +                    "role": "Lead Developer"                  },                  {                      "name": "Symfony Community", @@ -1035,7 +1633,9 @@              "authors": [                  {                      "name": "Fabien Potencier", -                    "email": "fabien@symfony.com" +                    "email": "fabien@symfony.com", +                    "homepage": "http://fabien.potencier.org", +                    "role": "Lead Developer"                  },                  {                      "name": "Symfony Community", @@ -1048,17 +1648,17 @@          },          {              "name": "symfony/yaml", -            "version": "v2.3.4", +            "version": "v2.4.4",              "target-dir": "Symfony/Component/Yaml",              "source": {                  "type": "git",                  "url": "https://github.com/symfony/Yaml.git", -                "reference": "5a279f1b5f5e1045a6c432354d9ea727ff3a9847" +                "reference": "65539ecde838f9c0d18b006b2101e3deb4b5c9ff"              },              "dist": {                  "type": "zip", -                "url": "https://api.github.com/repos/symfony/Yaml/zipball/5a279f1b5f5e1045a6c432354d9ea727ff3a9847", -                "reference": "5a279f1b5f5e1045a6c432354d9ea727ff3a9847", +                "url": "https://api.github.com/repos/symfony/Yaml/zipball/65539ecde838f9c0d18b006b2101e3deb4b5c9ff", +                "reference": "65539ecde838f9c0d18b006b2101e3deb4b5c9ff",                  "shasum": ""              },              "require": { @@ -1067,7 +1667,7 @@              "type": "library",              "extra": {                  "branch-alias": { -                    "dev-master": "2.3-dev" +                    "dev-master": "2.4-dev"                  }              },              "autoload": { @@ -1082,7 +1682,9 @@              "authors": [                  {                      "name": "Fabien Potencier", -                    "email": "fabien@symfony.com" +                    "email": "fabien@symfony.com", +                    "homepage": "http://fabien.potencier.org", +                    "role": "Lead Developer"                  },                  {                      "name": "Symfony Community", @@ -1091,7 +1693,64 @@              ],              "description": "Symfony Yaml Component",              "homepage": "http://symfony.com", -            "time": "2013-08-24 15:26:22" +            "time": "2014-04-18 20:37:09" +        }, +        { +            "name": "twig/twig", +            "version": "v1.15.1", +            "source": { +                "type": "git", +                "url": "https://github.com/fabpot/Twig.git", +                "reference": "1fb5784662f438d7d96a541e305e28b812e2eeed" +            }, +            "dist": { +                "type": "zip", +                "url": "https://api.github.com/repos/fabpot/Twig/zipball/1fb5784662f438d7d96a541e305e28b812e2eeed", +                "reference": "1fb5784662f438d7d96a541e305e28b812e2eeed", +                "shasum": "" +            }, +            "require": { +                "php": ">=5.2.4" +            }, +            "type": "library", +            "extra": { +                "branch-alias": { +                    "dev-master": "1.15-dev" +                } +            }, +            "autoload": { +                "psr-0": { +                    "Twig_": "lib/" +                } +            }, +            "notification-url": "https://packagist.org/downloads/", +            "license": [ +                "BSD-3-Clause" +            ], +            "authors": [ +                { +                    "name": "Fabien Potencier", +                    "email": "fabien@symfony.com", +                    "homepage": "http://fabien.potencier.org", +                    "role": "Lead Developer" +                }, +                { +                    "name": "Armin Ronacher", +                    "email": "armin.ronacher@active-4.com", +                    "role": "Project Founder" +                }, +                { +                    "name": "Twig Team", +                    "homepage": "https://github.com/fabpot/Twig/graphs/contributors", +                    "role": "Contributors" +                } +            ], +            "description": "Twig, the flexible, fast, and secure template language for PHP", +            "homepage": "http://twig.sensiolabs.org", +            "keywords": [ +                "templating" +            ], +            "time": "2014-02-13 10:19:29"          }      ],      "aliases": [ diff --git a/phpBB/develop/strip_icc_profiles.sh b/phpBB/develop/strip_icc_profiles.sh new file mode 100755 index 0000000000..779c7ffca7 --- /dev/null +++ b/phpBB/develop/strip_icc_profiles.sh @@ -0,0 +1,26 @@ +#!/bin/sh +# +# @copyright (c) 2014 phpBB Group +# @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2 +# + +if [ "$#" -ne 1 ] +then +	SCRIPT=$(basename "$0") +	echo "Description: Finds and strips ICC Profiles from given image file." >&2 +	echo "Usage: $SCRIPT /path/to/image/file" >&2 +	echo "Exit Status: 0 if no ICC profiles have been stripped, otherwise 1." >&2 +	echo "Requires: exiftool" >&2 +	exit 1 +fi + +FILE=$1 +HASH_OLD=$(md5sum "$FILE") +exiftool -icc_profile"-<=" -overwrite_original_in_place "$FILE" > /dev/null 2>&1 +HASH_NEW=$(md5sum "$FILE") + +if [ "$HASH_OLD" != "$HASH_NEW" ] +then +	echo "Stripped ICC Profile from $FILE." +	exit 1 +fi diff --git a/phpBB/docs/AUTHORS b/phpBB/docs/AUTHORS index 465c4de397..36dd847e96 100644 --- a/phpBB/docs/AUTHORS +++ b/phpBB/docs/AUTHORS @@ -25,8 +25,9 @@ phpBB Lead Developer:  naderman (Nils Adermann)  phpBB Developers:      bantu (Andreas Fischer)                         dhruv.goel92 (Dhruv Goel)                         EXreaction (Nathan Guse) -                       imkingdavid (David King) +                       marc1706 (Marc Alexander)                         nickvergessen (Joas Schilling) +                       nicofuma (Tristan Darricau)                         prototech (Cesar Gallegos)  Contributions by:      leviatan21 (Gabriel Vazquez) @@ -52,8 +53,9 @@ phpBB Developers:      A_Jelly_Doughnut (Josh Woody) [01/2010 - 11/2010]                         DavidMJ (David M.)            [12/2005 - 08/2009]                         dhn (Dominik Dröscher)        [05/2007 - 01/2011]                         GrahamJE (Graham Eames)       [09/2005 - 11/2006] -                       kellanved (Henry Sudhof)      [04/2007 - 03/2011]                         igorw (Igor Wiedler)          [08/2010 - 02/2013] +                       imkingdavid (David King)      [11/2012 - 06/2014] +                       kellanved (Henry Sudhof)      [04/2007 - 03/2011]                         Oleg (Oleg Pudeyev)           [01/2011 - 05/2013]                         rxu (Ruslan Uzdenov)          [04/2010 - 12/2012]                         TerraFrost (Jim Wigginton)    [04/2009 - 01/2011] diff --git a/phpBB/feed.php b/phpBB/feed.php index 04bb0f40ea..9816f0f303 100644 --- a/phpBB/feed.php +++ b/phpBB/feed.php @@ -71,9 +71,6 @@ if ($feed === false)  	trigger_error('NO_FEED');  } -// Get attachments for this feed -$feed->fetch_attachments(); -  // Open Feed  $feed->open(); @@ -109,7 +106,7 @@ while ($row = $feed->get_item())  		'title'			=> censor_text($title),  		'category'		=> ($config['feed_item_statistics'] && !empty($row['forum_id'])) ? $board_url . '/viewforum.' . $phpEx . '?f=' . $row['forum_id'] : '',  		'category_name'	=> ($config['feed_item_statistics'] && isset($row['forum_name'])) ? $row['forum_name'] : '', -		'description'	=> censor_text(feed_generate_content($row[$feed->get('text')], $row[$feed->get('bbcode_uid')], $row[$feed->get('bitfield')], $options, $row['forum_id'], (($row['post_attachment']) ? $feed->attachments[$row['post_id']] : array()))), +		'description'	=> censor_text(feed_generate_content($row[$feed->get('text')], $row[$feed->get('bbcode_uid')], $row[$feed->get('bitfield')], $options)),  		'statistics'	=> '',  	); @@ -275,16 +272,8 @@ function feed_format_date($time)  /**  * Generate text content -* -* @param string $content is feed text content -* @param string $uid is bbcode_uid -* @param string $bitfield is bbcode bitfield -* @param int $options bbcode flag options -* @param int $forum_id is the forum id -* @param array $post_attachments is an array containing the attachments and their respective info -* @return string the html content to be printed for the feed  **/ -function feed_generate_content($content, $uid, $bitfield, $options, $forum_id, $post_attachments) +function feed_generate_content($content, $uid, $bitfield, $options)  {  	global $user, $config, $phpbb_root_path, $phpEx, $board_url; @@ -333,15 +322,8 @@ function feed_generate_content($content, $uid, $bitfield, $options, $forum_id, $  	// Remove some specials html tag, because somewhere there are a mod to allow html tags ;)  	$content	= preg_replace( '#<(script|iframe)([^[]+)\1>#siU', ' <strong>$1</strong> ', $content); -	// Parse inline images to display with the feed -	if (!empty($post_attachments)) -	{ -		$update_count = array(); -		parse_attachments($forum_id, $content, $post_attachments, $update_count); -	}	 -  	// Remove Comments from inline attachments [ia] -	$content = preg_replace('#<dd>(.*?)</dd>#','',$content); +	$content	= preg_replace('#<div class="(inline-attachment|attachtitle)">(.*?)<!-- ia(.*?) -->(.*?)<!-- ia(.*?) -->(.*?)</div>#si','$4',$content);  	// Replace some entities with their unicode counterpart  	$entities = array( @@ -359,9 +341,6 @@ function feed_generate_content($content, $uid, $bitfield, $options, $forum_id, $  	// Other control characters  	$content = preg_replace('#(?:[\x00-\x1F\x7F]+|(?:\xC2[\x80-\x9F])+)#', '', $content); -	// Convert attachments' relative path to absolute path -	$content = str_replace($phpbb_root_path . 'download/file.' . $phpEx, $board_url . '/download/file.' . $phpEx, $content); -  	return $content;  } @@ -681,7 +660,6 @@ class phpbb_feed_base  class phpbb_feed_post_base extends phpbb_feed_base  {  	var $num_items = 'feed_limit_post'; -	var $attachments = array();  	function set_keys()  	{ @@ -715,45 +693,6 @@ class phpbb_feed_post_base extends phpbb_feed_base  				. (($this->is_moderator_approve_forum($row['forum_id']) && !$row['post_approved']) ? ' ' . $this->separator_stats . ' ' . $user->lang['POST_UNAPPROVED'] : '');  		}  	} - -	function fetch_attachments() -	{ -		global $db; - -		$sql_array = array( -			'SELECT'	=> 'a.*', -			'FROM'		=> array( -				ATTACHMENTS_TABLE	=>	'a' -			), -			'WHERE'		=> 'a.in_message = 0 ', -			'ORDER_BY'	=> 'a.filetime DESC, a.post_msg_id ASC', -		); - -		if (isset($this->topic_id)) -		{ -			$sql_array['WHERE'] .= 'AND a.topic_id = ' . (int) $this->topic_id; -		} -		else if (isset($this->forum_id)) -		{ -			$sql_array['LEFT_JOIN'] = array( -				array( -					'FROM'  => array(TOPICS_TABLE => 't'), -					'ON'    => 'a.topic_id = t.topic_id', -				) -			); -			$sql_array['WHERE'] .= 'AND t.forum_id = ' . (int) $this->forum_id; -		} - -		$sql = $db->sql_build_query('SELECT', $sql_array); -		$result = $db->sql_query($sql); - -		// Set attachments in feed items -		while ($row = $db->sql_fetchrow($result)) -		{ -			$this->attachments[$row['post_msg_id']][] = $row; -		} -		$db->sql_freeresult($result); -	}  }  /** @@ -856,7 +795,7 @@ class phpbb_feed_overall extends phpbb_feed_post_base  		// Get the actual data  		$this->sql = array(  			'SELECT'	=>	'f.forum_id, f.forum_name, ' . -							'p.post_id, p.topic_id, p.post_time, p.post_edit_time, p.post_approved, p.post_subject, p.post_text, p.bbcode_bitfield, p.bbcode_uid, p.enable_bbcode, p.enable_smilies, p.enable_magic_url, p.post_attachment, ' . +							'p.post_id, p.topic_id, p.post_time, p.post_edit_time, p.post_approved, p.post_subject, p.post_text, p.bbcode_bitfield, p.bbcode_uid, p.enable_bbcode, p.enable_smilies, p.enable_magic_url, ' .  							'u.username, u.user_id',  			'FROM'		=> array(  				USERS_TABLE		=> 'u', @@ -988,7 +927,7 @@ class phpbb_feed_forum extends phpbb_feed_post_base  		}  		$this->sql = array( -			'SELECT'	=>	'p.post_id, p.topic_id, p.post_time, p.post_edit_time, p.post_approved, p.post_subject, p.post_text, p.bbcode_bitfield, p.bbcode_uid, p.enable_bbcode, p.enable_smilies, p.enable_magic_url, p.post_attachment, ' . +			'SELECT'	=>	'p.post_id, p.topic_id, p.post_time, p.post_edit_time, p.post_approved, p.post_subject, p.post_text, p.bbcode_bitfield, p.bbcode_uid, p.enable_bbcode, p.enable_smilies, p.enable_magic_url, ' .  							'u.username, u.user_id',  			'FROM'		=> array(  				POSTS_TABLE		=> 'p', @@ -1153,7 +1092,7 @@ class phpbb_feed_topic extends phpbb_feed_post_base  		global $auth, $db;  		$this->sql = array( -			'SELECT'	=>	'p.post_id, p.post_time, p.post_edit_time, p.post_approved, p.post_subject, p.post_text, p.bbcode_bitfield, p.bbcode_uid, p.enable_bbcode, p.enable_smilies, p.enable_magic_url, p.post_attachment, ' . +			'SELECT'	=>	'p.post_id, p.post_time, p.post_edit_time, p.post_approved, p.post_subject, p.post_text, p.bbcode_bitfield, p.bbcode_uid, p.enable_bbcode, p.enable_smilies, p.enable_magic_url, ' .  							'u.username, u.user_id',  			'FROM'		=> array(  				POSTS_TABLE		=> 'p', @@ -1318,7 +1257,7 @@ class phpbb_feed_news extends phpbb_feed_topic_base  		$this->sql = array(  			'SELECT'	=> 'f.forum_id, f.forum_name,  							t.topic_id, t.topic_title, t.topic_poster, t.topic_first_poster_name, t.topic_replies, t.topic_replies_real, t.topic_views, t.topic_time, t.topic_last_post_time, -							p.post_id, p.post_time, p.post_edit_time, p.post_text, p.bbcode_bitfield, p.bbcode_uid, p.enable_bbcode, p.enable_smilies, p.enable_magic_url, p.post_attachment', +							p.post_id, p.post_time, p.post_edit_time, p.post_text, p.bbcode_bitfield, p.bbcode_uid, p.enable_bbcode, p.enable_smilies, p.enable_magic_url',  			'FROM'		=> array(  				TOPICS_TABLE	=> 't',  				POSTS_TABLE		=> 'p', @@ -1391,7 +1330,7 @@ class phpbb_feed_topics extends phpbb_feed_topic_base  		$this->sql = array(  			'SELECT'	=> 'f.forum_id, f.forum_name,  							t.topic_id, t.topic_title, t.topic_poster, t.topic_first_poster_name, t.topic_replies, t.topic_replies_real, t.topic_views, t.topic_time, t.topic_last_post_time, -							p.post_id, p.post_time, p.post_edit_time, p.post_text, p.bbcode_bitfield, p.bbcode_uid, p.enable_bbcode, p.enable_smilies, p.enable_magic_url, p.post_attachment', +							p.post_id, p.post_time, p.post_edit_time, p.post_text, p.bbcode_bitfield, p.bbcode_uid, p.enable_bbcode, p.enable_smilies, p.enable_magic_url',  			'FROM'		=> array(  				TOPICS_TABLE	=> 't',  				POSTS_TABLE		=> 'p', @@ -1488,7 +1427,7 @@ class phpbb_feed_topics_active extends phpbb_feed_topic_base  			'SELECT'	=> 'f.forum_id, f.forum_name,  							t.topic_id, t.topic_title, t.topic_replies, t.topic_replies_real, t.topic_views,  							t.topic_last_poster_id, t.topic_last_poster_name, t.topic_last_post_time, -							p.post_id, p.post_time, p.post_edit_time, p.post_text, p.bbcode_bitfield, p.bbcode_uid, p.enable_bbcode, p.enable_smilies, p.enable_magic_url, p.post_attachment', +							p.post_id, p.post_time, p.post_edit_time, p.post_text, p.bbcode_bitfield, p.bbcode_uid, p.enable_bbcode, p.enable_smilies, p.enable_magic_url',  			'FROM'		=> array(  				TOPICS_TABLE	=> 't',  				POSTS_TABLE		=> 'p', diff --git a/phpBB/includes/acp/acp_board.php b/phpBB/includes/acp/acp_board.php index ebbf66657e..526d8e05da 100644 --- a/phpBB/includes/acp/acp_board.php +++ b/phpBB/includes/acp/acp_board.php @@ -123,7 +123,7 @@ class acp_board  						'avatar_filesize'		=> array('lang' => 'MAX_FILESIZE',			'validate' => 'int:0',	'type' => 'text:4:10', 'explain' => true, 'append' => ' ' . $user->lang['BYTES']),  						'avatar_min'			=> array('lang' => 'MIN_AVATAR_SIZE',		'validate' => 'int:0',	'type' => 'dimension:3:4', 'explain' => true, 'append' => ' ' . $user->lang['PIXEL']),  						'avatar_max'			=> array('lang' => 'MAX_AVATAR_SIZE',		'validate' => 'int:0',	'type' => 'dimension:3:4', 'explain' => true, 'append' => ' ' . $user->lang['PIXEL']), -						'avatar_path'			=> array('lang' => 'AVATAR_STORAGE_PATH',	'validate' => 'rwpath',	'type' => 'text:20:255', 'explain' => true), +						'avatar_path'			=> array('lang' => 'AVATAR_STORAGE_PATH',	'validate' => 'rpath',	'type' => 'text:20:255', 'explain' => true),  						'avatar_gallery_path'	=> array('lang' => 'AVATAR_GALLERY_PATH',	'validate' => 'rpath',	'type' => 'text:20:255', 'explain' => true)  					)  				); diff --git a/phpBB/includes/acp/acp_php_info.php b/phpBB/includes/acp/acp_php_info.php index 7dd345971a..88e2ac3f8d 100644 --- a/phpBB/includes/acp/acp_php_info.php +++ b/phpBB/includes/acp/acp_php_info.php @@ -47,7 +47,7 @@ class acp_php_info  		// for this was nabbed from the PHP annotated manual  		preg_match_all('#<body[^>]*>(.*)</body>#si', $phpinfo, $output); -		if (empty($phpinfo) || empty($output)) +		if (empty($phpinfo) || empty($output[1][0]))  		{  			trigger_error('NO_PHPINFO_AVAILABLE', E_USER_WARNING);  		} diff --git a/phpBB/includes/functions_install.php b/phpBB/includes/functions_install.php index 47f4eac627..21dd8bfebe 100644 --- a/phpBB/includes/functions_install.php +++ b/phpBB/includes/functions_install.php @@ -309,7 +309,7 @@ function connect_check_db($error_connect, &$error, $dbms_details, $table_prefix,  	if (is_array($db->sql_connect($dbhost, $dbuser, $dbpasswd, $dbname, $dbport, false, true)))  	{  		$db_error = $db->sql_error(); -		$error[] = $lang['INST_ERR_DB_CONNECT'] . '<br />' . (($db_error['message']) ? $db_error['message'] : $lang['INST_ERR_DB_NO_ERROR']); +		$error[] = $lang['INST_ERR_DB_CONNECT'] . '<br />' . (($db_error['message']) ? utf8_convert_message($db_error['message']) : $lang['INST_ERR_DB_NO_ERROR']);  	}  	else  	{ diff --git a/phpBB/includes/functions_upload.php b/phpBB/includes/functions_upload.php index 73ac1df2d2..69f10911ec 100644 --- a/phpBB/includes/functions_upload.php +++ b/phpBB/includes/functions_upload.php @@ -466,6 +466,9 @@ class fileupload  	var $max_height = 0;  	var $error_prefix = ''; +	/** @var int Timeout for remote upload */ +	var $upload_timeout = 6; +  	/**  	* Init file upload class.  	* @@ -795,13 +798,28 @@ class fileupload  		fputs($fsock, "HOST: " . $host . "\r\n");  		fputs($fsock, "Connection: close\r\n\r\n"); +		// Set a proper timeout for the socket +		socket_set_timeout($fsock, $this->upload_timeout); +  		$get_info = false;  		$data = ''; -		while (!@feof($fsock)) +		$length = false; +		$timer_stop = time() + $this->upload_timeout; + +		while ((!$length || $filesize < $length) && !@feof($fsock))  		{  			if ($get_info)  			{ -				$block = @fread($fsock, 1024); +				if ($length) +				{ +					// Don't attempt to read past end of file if server indicated length +					$block = @fread($fsock, min($length - $filesize, 1024)); +				} +				else +				{ +					$block = @fread($fsock, 1024); +				} +  				$filesize += strlen($block);  				if ($remote_max_filesize && $filesize > $remote_max_filesize) @@ -847,6 +865,15 @@ class fileupload  					}  				}  			} + +			$stream_meta_data = stream_get_meta_data($fsock); + +			// Cancel upload if we exceed timeout +			if (!empty($stream_meta_data['timed_out']) || time() >= $timer_stop) +			{ +				$file = new fileerror($user->lang[$this->error_prefix . 'REMOTE_UPLOAD_TIMEOUT']); +				return $file; +			}  		}  		@fclose($fsock); diff --git a/phpBB/includes/mcp/info/mcp_pm_reports.php b/phpBB/includes/mcp/info/mcp_pm_reports.php index 103f560597..84f15b7107 100644 --- a/phpBB/includes/mcp/info/mcp_pm_reports.php +++ b/phpBB/includes/mcp/info/mcp_pm_reports.php @@ -20,7 +20,7 @@ class mcp_pm_reports_info  			'title'		=> 'MCP_PM_REPORTS',  			'version'	=> '1.0.0',  			'modes'		=> array( -				'pm_reports'			=> array('title' => 'MCP_PM_REPORTS_OPEN', 'auth' => 'aclf_m_report', 'cat' => array('MCP_REPORTS')), +				'pm_reports'		=> array('title' => 'MCP_PM_REPORTS_OPEN', 'auth' => 'aclf_m_report', 'cat' => array('MCP_REPORTS')),  				'pm_reports_closed'	=> array('title' => 'MCP_PM_REPORTS_CLOSED', 'auth' => 'aclf_m_report', 'cat' => array('MCP_REPORTS')),  				'pm_report_details'	=> array('title' => 'MCP_PM_REPORT_DETAILS', 'auth' => 'aclf_m_report', 'cat' => array('MCP_REPORTS')),  			), diff --git a/phpBB/includes/mcp/mcp_post.php b/phpBB/includes/mcp/mcp_post.php index ba45037a18..df5dc27996 100644 --- a/phpBB/includes/mcp/mcp_post.php +++ b/phpBB/includes/mcp/mcp_post.php @@ -157,6 +157,7 @@ function mcp_post_details($id, $mode, $action)  		if (sizeof($attachments))  		{ +			$user->add_lang('viewtopic');  			$update_count = array();  			parse_attachments($post_info['forum_id'], $message, $attachments, $update_count);  		} diff --git a/phpBB/install/install_install.php b/phpBB/install/install_install.php index 0a100ae71b..cb63c70e11 100644 --- a/phpBB/install/install_install.php +++ b/phpBB/install/install_install.php @@ -273,8 +273,8 @@ class install_install extends module  			$checks = array(  				array('func_overload', '&', MB_OVERLOAD_MAIL|MB_OVERLOAD_STRING),  				array('encoding_translation', '!=', 0), -				array('http_input', '!=', 'pass'), -				array('http_output', '!=', 'pass') +				array('http_input', '!=', array('pass', '')), +				array('http_output', '!=', array('pass', ''))  			);  			foreach ($checks as $mb_checks) @@ -295,7 +295,8 @@ class install_install extends module  					break;  					case '!=': -						if ($ini_val != $mb_checks[2]) +						if (!is_array($mb_checks[2]) && $ini_val != $mb_checks[2] || +							is_array($mb_checks[2]) && !in_array($ini_val, $mb_checks[2]))  						{  							$result = '<strong style="color:red">' . $lang['NO'] . '</strong>';  							$passed['mbstring'] = false; @@ -1624,6 +1625,45 @@ class install_install extends module  				$_module->move_module_by($row, 'move_up', 5);  			} +			if ($module_class == 'mcp') +			{ +				// Move pm report details module 3 down... +				$sql = 'SELECT * +					FROM ' . MODULES_TABLE . " +					WHERE module_basename = 'pm_reports' +						AND module_class = 'mcp' +						AND module_mode = 'pm_report_details'"; +				$result = $db->sql_query($sql); +				$row = $db->sql_fetchrow($result); +				$db->sql_freeresult($result); + +				$_module->move_module_by($row, 'move_down', 3); + +				// Move closed pm reports module 3 down... +				$sql = 'SELECT * +					FROM ' . MODULES_TABLE . " +					WHERE module_basename = 'pm_reports' +						AND module_class = 'mcp' +						AND module_mode = 'pm_reports_closed'"; +				$result = $db->sql_query($sql); +				$row = $db->sql_fetchrow($result); +				$db->sql_freeresult($result); + +				$_module->move_module_by($row, 'move_down', 3); + +				// Move open pm reports module 3 down... +				$sql = 'SELECT * +					FROM ' . MODULES_TABLE . " +					WHERE module_basename = 'pm_reports' +						AND module_class = 'mcp' +						AND module_mode = 'pm_reports'"; +				$result = $db->sql_query($sql); +				$row = $db->sql_fetchrow($result); +				$db->sql_freeresult($result); + +				$_module->move_module_by($row, 'move_down', 3); +			} +  			if ($module_class == 'ucp')  			{  				// Move attachment module 4 down... diff --git a/phpBB/language/en/acp/board.php b/phpBB/language/en/acp/board.php index f9a40c2bc7..e109ea6d3a 100644 --- a/phpBB/language/en/acp/board.php +++ b/phpBB/language/en/acp/board.php @@ -104,7 +104,7 @@ $lang = array_merge($lang, array(  	'AVATAR_GALLERY_PATH'			=> 'Avatar gallery path',  	'AVATAR_GALLERY_PATH_EXPLAIN'	=> 'Path under your phpBB root directory for pre-loaded images, e.g. <samp>images/avatars/gallery</samp>.',  	'AVATAR_STORAGE_PATH'			=> 'Avatar storage path', -	'AVATAR_STORAGE_PATH_EXPLAIN'	=> 'Path under your phpBB root directory, e.g. <samp>images/avatars/upload</samp>.', +	'AVATAR_STORAGE_PATH_EXPLAIN'	=> 'Path under your phpBB root directory, e.g. <samp>images/avatars/upload</samp>.<br />Avatar uploading <strong>will not be available</strong> if this path is not writable.',  	'MAX_AVATAR_SIZE'				=> 'Maximum avatar dimensions',  	'MAX_AVATAR_SIZE_EXPLAIN'		=> 'Width x Height in pixels.',  	'MAX_FILESIZE'					=> 'Maximum avatar file size', diff --git a/phpBB/language/en/common.php b/phpBB/language/en/common.php index 0bf48eb841..2d3710e15c 100644 --- a/phpBB/language/en/common.php +++ b/phpBB/language/en/common.php @@ -88,9 +88,10 @@ $lang = array_merge($lang, array(  	'AVATAR_PARTIAL_UPLOAD'			=> 'The specified file was only partially uploaded.',  	'AVATAR_PHP_SIZE_NA'			=> 'The avatar’s filesize is too large.<br />The maximum allowed filesize set in php.ini could not be determined.',  	'AVATAR_PHP_SIZE_OVERRUN'		=> 'The avatar’s filesize is too large. The maximum allowed upload size is %1$d %2$s.<br />Please note this is set in php.ini and cannot be overridden.', +	'AVATAR_REMOTE_UPLOAD_TIMEOUT'		=> 'The specified avatar could not be uploaded because the request timed out.',  	'AVATAR_URL_INVALID'			=> 'The URL you specified is invalid.',  	'AVATAR_URL_NOT_FOUND'			=> 'The file specified could not be found.', -	'AVATAR_WRONG_FILESIZE'			=> 'The avatar’s filesize must be between 0 and %1d %2s.', +	'AVATAR_WRONG_FILESIZE'			=> 'The avatar’s filesize must be between 0 and %1$d %2$s.',  	'AVATAR_WRONG_SIZE'				=> 'The submitted avatar is %5$d pixels wide and %6$d pixels high. Avatars must be at least %1$d pixels wide and %2$d pixels high, but no larger than %3$d pixels wide and %4$d pixels high.',  	'BACK_TO_TOP'			=> 'Top', diff --git a/phpBB/language/en/posting.php b/phpBB/language/en/posting.php index dfc5065a05..5316011f4e 100644 --- a/phpBB/language/en/posting.php +++ b/phpBB/language/en/posting.php @@ -178,6 +178,7 @@ $lang = array_merge($lang, array(  	'QUOTE_DEPTH_EXCEEDED'		=> 'You may embed only %1$d quotes within each other.', +	'REMOTE_UPLOAD_TIMEOUT'		=> 'The specified file could not be uploaded because the request timed out.',  	'SAVE'						=> 'Save',  	'SAVE_DATE'					=> 'Saved at',  	'SAVE_DRAFT'				=> 'Save draft', @@ -219,7 +220,7 @@ $lang = array_merge($lang, array(  	'VIEW_MESSAGE'				=> '%sView your submitted message%s',  	'VIEW_PRIVATE_MESSAGE'		=> '%sView your submitted private message%s', -	'WRONG_FILESIZE'			=> 'The file is too big, maximum allowed size is %1d %2s.', +	'WRONG_FILESIZE'			=> 'The file is too big, maximum allowed size is %1$d %2$s.',  	'WRONG_SIZE'				=> 'The image must be at least %1$d pixels wide, %2$d pixels high and at most %3$d pixels wide and %4$d pixels high. The submitted image is %5$d pixels wide and %6$d pixels high.',  )); diff --git a/phpBB/language/en/ucp.php b/phpBB/language/en/ucp.php index ad11213052..641cf6a70a 100644 --- a/phpBB/language/en/ucp.php +++ b/phpBB/language/en/ucp.php @@ -266,7 +266,7 @@ $lang = array_merge($lang, array(  	'MOVE_DELETED_MESSAGES_TO'		=> 'Move messages from removed folder to',  	'MOVE_DOWN'						=> 'Move down',  	'MOVE_MARKED_TO_FOLDER'			=> 'Move marked to %s', -	'MOVE_PM_ERROR'					=> 'An error occurred while moving the messages to the new folder, only %1d from %2d messages were moved.', +	'MOVE_PM_ERROR'					=> 'An error occurred while moving the messages to the new folder, only %1$d from %2$d messages were moved.',  	'MOVE_TO_FOLDER'				=> 'Move to folder',  	'MOVE_UP'						=> 'Move up', diff --git a/phpunit.xml.all b/phpunit.xml.all deleted file mode 100644 index d91a614c97..0000000000 --- a/phpunit.xml.all +++ /dev/null @@ -1,33 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> - -<phpunit backupGlobals="true" -         backupStaticAttributes="true" -         colors="true" -         convertErrorsToExceptions="true" -         convertNoticesToExceptions="true" -         convertWarningsToExceptions="true" -         processIsolation="false" -         stopOnFailure="false" -         syntaxCheck="false" -         bootstrap="tests/bootstrap.php" -> -    <testsuites> -        <testsuite name="phpBB Test Suite"> -            <directory suffix="_test.php">./tests/</directory> -            <exclude>./tests/functional</exclude> -            <exclude>tests/lint_test.php</exclude> -        </testsuite> -        <testsuite name="phpBB Lint Test"> -            <file>tests/lint_test.php</file> -        </testsuite> -        <testsuite name="phpBB Functional Tests"> -            <directory suffix="_test.php" phpVersion="5.3.0" phpVersionOperator=">=">./tests/functional</directory> -        </testsuite> -    </testsuites> - -    <filter> -        <blacklist> -            <directory>./tests/</directory> -        </blacklist> -    </filter> -</phpunit> diff --git a/phpunit.xml.dist b/phpunit.xml.dist index 4c91f8e373..c4906e42fe 100644 --- a/phpunit.xml.dist +++ b/phpunit.xml.dist @@ -13,28 +13,27 @@  >      <testsuites>          <testsuite name="phpBB Test Suite"> -            <directory suffix="_test.php">./tests/</directory> +            <directory suffix="_test.php">./tests</directory>              <exclude>./tests/functional</exclude> -            <exclude>tests/lint_test.php</exclude> -        </testsuite> -        <testsuite name="phpBB Lint Test"> -            <file>tests/lint_test.php</file> +            <exclude>./tests/lint_test.php</exclude>          </testsuite>          <testsuite name="phpBB Functional Tests">              <directory suffix="_test.php" phpVersion="5.3.0" phpVersionOperator=">=">./tests/functional</directory>          </testsuite> +        <testsuite name="phpBB Lint Test"> +            <file>./tests/lint_test.php</file> +        </testsuite>      </testsuites>      <groups>          <exclude> -            <group>functional</group>              <group>slow</group>          </exclude>      </groups>      <filter>          <blacklist> -            <directory>./tests/</directory> +            <directory>./tests</directory>          </blacklist>      </filter>  </phpunit> diff --git a/phpunit.xml.functional b/phpunit.xml.functional deleted file mode 100644 index 919de74dec..0000000000 --- a/phpunit.xml.functional +++ /dev/null @@ -1,39 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> - -<phpunit backupGlobals="true" -         backupStaticAttributes="true" -         colors="true" -         convertErrorsToExceptions="true" -         convertNoticesToExceptions="true" -         convertWarningsToExceptions="true" -         processIsolation="false" -         stopOnFailure="false" -         syntaxCheck="false" -         bootstrap="tests/bootstrap.php" -> -    <testsuites> -        <testsuite name="phpBB Test Suite"> -            <directory suffix="_test.php">./tests/</directory> -            <exclude>./tests/functional</exclude> -            <exclude>tests/lint_test.php</exclude> -        </testsuite> -        <testsuite name="phpBB Lint Test"> -            <file>tests/lint_test.php</file> -        </testsuite> -        <testsuite name="phpBB Functional Tests"> -            <directory suffix="_test.php" phpVersion="5.3.0" phpVersionOperator=">=">./tests/functional</directory> -        </testsuite> -    </testsuites> - -    <groups> -        <include> -            <group>functional</group> -        </include> -    </groups> - -    <filter> -        <blacklist> -            <directory>./tests/</directory> -        </blacklist> -    </filter> -</phpunit> diff --git a/tests/RUNNING_TESTS.md b/tests/RUNNING_TESTS.md index 23c74f4411..d9306d78d7 100644 --- a/tests/RUNNING_TESTS.md +++ b/tests/RUNNING_TESTS.md @@ -110,12 +110,16 @@ Slow tests  --------------  Certain tests, such as the UTF-8 normalizer or the DNS tests tend to be slow. -Thus these tests are in the `slow` group, which is excluded by default. You can -enable slow tests by copying the phpunit.xml.all file to phpunit.xml. If you +Thus these tests are in the `slow` group, which is excluded by default. If you  only want the slow tests, run:      $ phpBB/vendor/bin/phpunit --group slow +If you want all tests, run: + +    $ phpBB/vendor/bin/phpunit --group __nogroup__,functional,slow + +  Functional tests  ----------------- @@ -136,10 +140,10 @@ on which to run tests.      $phpbb_functional_url = 'http://localhost/phpBB3/'; -To then run the tests, you run PHPUnit, but use the phpunit.xml.functional -config file instead of the default one. Specify this through the "-c" option: +Functional tests are automatically run, if '$phpbb_functional_url' is configured. +If you only want the functional tests, run: -    $ phpBB/vendor/bin/phpunit -c phpunit.xml.functional +    $ phpBB/vendor/bin/phpunit --group functional  This will change your board's config.php file, but it makes a backup at  config_dev.php, so you can restore it after the test run is complete. diff --git a/travis/phpunit-mariadb-travis.xml b/travis/phpunit-mariadb-travis.xml index 1eaee5b7d8..aa245a8224 100644 --- a/travis/phpunit-mariadb-travis.xml +++ b/travis/phpunit-mariadb-travis.xml @@ -13,9 +13,9 @@           bootstrap="../tests/bootstrap.php">  	<testsuites>  		<testsuite name="phpBB Test Suite"> -			<directory suffix="_test.php">../tests/</directory> -			<exclude>tests/functional</exclude> -			<exclude>tests/lint_test.php</exclude> +			<directory suffix="_test.php">../tests</directory> +			<exclude>../tests/functional</exclude> +			<exclude>../tests/lint_test.php</exclude>  		</testsuite>  		<testsuite name="phpBB Functional Tests">  			<directory suffix="_test.php" phpVersion="5.3.19" phpVersionOperator=">=">../tests/functional</directory> diff --git a/travis/phpunit-mysql-5-2-travis.xml b/travis/phpunit-mysql-5-2-travis.xml new file mode 100644 index 0000000000..e99f8d6cee --- /dev/null +++ b/travis/phpunit-mysql-5-2-travis.xml @@ -0,0 +1,44 @@ +<?xml version="1.0" encoding="UTF-8"?> +<phpunit backupGlobals="true" +         backupStaticAttributes="true" +         colors="true" +         convertErrorsToExceptions="true" +         convertNoticesToExceptions="true" +         convertWarningsToExceptions="true" +         processIsolation="false" +         stopOnFailure="false" +         syntaxCheck="true" +         strict="true" +         verbose="true" +         bootstrap="../tests/bootstrap.php"> +	<testsuites> +		<testsuite name="phpBB Test Suite"> +			<directory suffix="_test.php">../tests/</directory> +			<exclude>tests/functional</exclude> +			<exclude>tests/lint_test.php</exclude> +		</testsuite> +		<testsuite name="phpBB Lint Test"> +			<file>tests/lint_test.php</file> +		</testsuite> +		<testsuite name="phpBB Functional Tests"> +			<directory suffix="_test.php" phpVersion="5.3.19" phpVersionOperator=">=">../tests/functional</directory> +		</testsuite> +	</testsuites> + +	<groups> +		<exclude> +			<group>slow</group> +		</exclude> +	</groups> + +	<php> +		<server name="PHPBB_TEST_DBMS" value="mysqli" /> +		<server name="PHPBB_TEST_DBHOST" value="0.0.0.0" /> +		<server name="PHPBB_TEST_DBPORT" value="3306" /> +		<server name="PHPBB_TEST_DBNAME" value="phpbb_tests" /> +		<server name="PHPBB_TEST_DBUSER" value="root" /> +		<server name="PHPBB_TEST_DBPASSWD" value="" /> +		<server name="PHPBB_TEST_TABLE_PREFIX" value="phpbb_"/> +		<server name="PHPBB_FUNCTIONAL_URL" value="http://localhost/" /> +	</php> +</phpunit> diff --git a/travis/phpunit-mysql-travis.xml b/travis/phpunit-mysql-travis.xml index e99f8d6cee..3ad59747ff 100644 --- a/travis/phpunit-mysql-travis.xml +++ b/travis/phpunit-mysql-travis.xml @@ -13,12 +13,12 @@           bootstrap="../tests/bootstrap.php">  	<testsuites>  		<testsuite name="phpBB Test Suite"> -			<directory suffix="_test.php">../tests/</directory> -			<exclude>tests/functional</exclude> -			<exclude>tests/lint_test.php</exclude> +			<directory suffix="_test.php">../tests</directory> +			<exclude>../tests/functional</exclude> +			<exclude>../tests/lint_test.php</exclude>  		</testsuite>  		<testsuite name="phpBB Lint Test"> -			<file>tests/lint_test.php</file> +			<file>../tests/lint_test.php</file>  		</testsuite>  		<testsuite name="phpBB Functional Tests">  			<directory suffix="_test.php" phpVersion="5.3.19" phpVersionOperator=">=">../tests/functional</directory> diff --git a/travis/phpunit-postgres-travis.xml b/travis/phpunit-postgres-travis.xml index aa829f4d30..b4af7c5765 100644 --- a/travis/phpunit-postgres-travis.xml +++ b/travis/phpunit-postgres-travis.xml @@ -13,9 +13,9 @@           bootstrap="../tests/bootstrap.php">  	<testsuites>  		<testsuite name="phpBB Test Suite"> -			<directory suffix="_test.php">../tests/</directory> -			<exclude>tests/functional</exclude> -			<exclude>tests/lint_test.php</exclude> +			<directory suffix="_test.php">../tests</directory> +			<exclude>../tests/functional</exclude> +			<exclude>../tests/lint_test.php</exclude>  		</testsuite>  		<testsuite name="phpBB Functional Tests">  			<directory suffix="_test.php" phpVersion="5.3.19" phpVersionOperator=">=">../tests/functional</directory> diff --git a/travis/setup-webserver.sh b/travis/setup-webserver.sh index 6188d2c232..a6086bb9f9 100755 --- a/travis/setup-webserver.sh +++ b/travis/setup-webserver.sh @@ -28,10 +28,6 @@ then  	# Upgrade to a recent stable version of HHVM  	sudo apt-get -o Dpkg::Options::="--force-confnew" install -y hhvm-nightly -	# MySQLi is broken in HHVM 3.0.0~precise and still does not work for us in -	# 2014.03.28~saucy, i.e. needs more work. Use MySQL extension for now. -	sed -i "s/mysqli/mysql/" "$DIR/phpunit-mysql-travis.xml" -  	HHVM_LOG=$(realpath "$DIR")/hhvm.log  	sudo hhvm \ @@ -52,6 +48,7 @@ else  		user = $USER  		group = $USER  		listen = $APP_SOCK +		listen.mode = 0666  		pm = static  		pm.max_children = 2  | 
