diff --git a/Makefile b/Makefile index 032e3f03f1da..13fee863c1c0 100644 --- a/Makefile +++ b/Makefile @@ -67,7 +67,7 @@ core_vendor=core/vendor core_doc_files=AUTHORS COPYING README.md CHANGELOG.md core_src_files=$(wildcard *.php) index.html db_structure.xml .htaccess .user.ini robots.txt -core_src_dirs=apps apps-external core l10n lib occ ocs ocs-provider ocm-provider resources settings +core_src_dirs=apps core l10n lib occ ocs ocs-provider ocm-provider resources settings core_test_dirs=tests core_all_src=$(core_src_files) $(core_src_dirs) $(core_doc_files) core_config_files=config/config.sample.php config/config.apps.sample.php @@ -262,7 +262,7 @@ $(dist_dir)/owncloud: $(composer_deps) $(core_vendor) $(core_all_src) rm -Rf $@/core/vendor/*/{.bower.json,bower.json,package.json,testem.json} rm -Rf $@/l10n/ find $@/core/ -iname \*.sh -delete - find $@/{apps/,apps-external/,lib/composer/,core/vendor/} \( \ + find $@/{apps/,lib/composer/,core/vendor/} \( \ -name bin -o \ -name test -o \ -name tests -o \ @@ -273,7 +273,7 @@ $(dist_dir)/owncloud: $(composer_deps) $(core_vendor) $(core_all_src) -name travis -o \ -iname \*.sh \ \) -print | xargs rm -Rf - find $@/{apps/,apps-external/,lib/composer/} -iname \*.exe -delete + find $@/{apps/,lib/composer/} -iname \*.exe -delete # Set build $(eval _BUILD="$(shell date -u --iso-8601=seconds) $(shell git rev-parse HEAD)") # Replace channel in version.php @@ -313,7 +313,7 @@ $(dist_dir)/qa/owncloud: $(composer_dev_deps) $(core_vendor) $(core_all_src) $(c rm -Rf $@/core/vendor/*/{.bower.json,bower.json,package.json,testem.json} rm -Rf $@/l10n/ find $@/core/ -iname \*.sh -delete - find $@/{apps/,apps-external/,lib/composer/,core/vendor/} \( \ + find $@/{apps/,lib/composer/,core/vendor/} \( \ -name test -o \ -name examples -o \ -name demo -o \ @@ -322,7 +322,7 @@ $(dist_dir)/qa/owncloud: $(composer_dev_deps) $(core_vendor) $(core_all_src) $(c -name travis -o \ -iname \*.sh \ \) -print | xargs rm -Rf - find $@/{apps/,apps-external/,lib/composer/} -iname \*.exe -delete + find $@/{apps/,lib/composer/} -iname \*.exe -delete # Set build $(eval _BUILD="$(shell date -u --iso-8601=seconds) $(shell git rev-parse HEAD)") # Replace channel in version.php diff --git a/apps-external/.gitkeep b/apps-external/.gitkeep deleted file mode 100644 index e69de29bb2d1..000000000000 diff --git a/lib/private/Setup.php b/lib/private/Setup.php index e25dd363bc83..17fb7cbe0c2e 100644 --- a/lib/private/Setup.php +++ b/lib/private/Setup.php @@ -285,7 +285,22 @@ public function install($options) { ) { $error[] = $l->t("Can't create or write into the data directory %s", [$dataDir]); } - + + // create the apps-external directory only during installation + $appsExternalDir = \OC::$SERVERROOT.'/apps-external'; + if (!\file_exists($appsExternalDir)) { + @\mkdir($appsExternalDir); + } + + // validate the apps-external directory + if ( + (!\is_dir($appsExternalDir) and !\mkdir($appsExternalDir)) or + !\is_writable($appsExternalDir) + ) { + $htmlAppsExternalDir = \htmlspecialchars_decode($appsExternalDir); + $error[] = $l->t("Can't create or write into the apps-external directory %s", $htmlAppsExternalDir); + } + if (\count($error) != 0) { return $error; } @@ -383,10 +398,10 @@ public function install($options) { $config->setSystemValue('logtimezone', \date_default_timezone_get()); } - // adding the apps-external directory by default using apps_path + // add the apps-external directory to config using apps_path + // add the key only if it does not exist (protect against overwriting) $apps2Key = \OC::$server->getSystemConfig()->getValue('apps_paths', false); - // add the key only if it does not exist (protect against overwriting) if ($apps2Key === false) { $defaultAppsPaths = [ 'apps_paths' => [