Remove unneeded checks if it runs on a Windows machine
* the setup check is still there
This commit is contained in:
parent
48f9e4ed03
commit
c2d88a08b7
|
@ -90,13 +90,10 @@ class Application extends App implements IBackendProvider, IAuthMechanismProvide
|
|||
$container->query('OCA\Files_External\Lib\Backend\Google'),
|
||||
$container->query('OCA\Files_External\Lib\Backend\Swift'),
|
||||
$container->query('OCA\Files_External\Lib\Backend\SFTP_Key'),
|
||||
$container->query('OCA\Files_External\Lib\Backend\SMB'),
|
||||
$container->query('OCA\Files_External\Lib\Backend\SMB_OC'),
|
||||
];
|
||||
|
||||
if (!\OC_Util::runningOnWindows()) {
|
||||
$backends[] = $container->query('OCA\Files_External\Lib\Backend\SMB');
|
||||
$backends[] = $container->query('OCA\Files_External\Lib\Backend\SMB_OC');
|
||||
}
|
||||
|
||||
return $backends;
|
||||
}
|
||||
|
||||
|
|
26
console.php
26
console.php
|
@ -59,20 +59,18 @@ try {
|
|||
|
||||
set_exception_handler('exceptionHandler');
|
||||
|
||||
if (!OC_Util::runningOnWindows()) {
|
||||
if (!function_exists('posix_getuid')) {
|
||||
echo "The posix extensions are required - see http://php.net/manual/en/book.posix.php" . PHP_EOL;
|
||||
exit(0);
|
||||
}
|
||||
$user = posix_getpwuid(posix_getuid());
|
||||
$configUser = posix_getpwuid(fileowner(OC::$configDir . 'config.php'));
|
||||
if ($user['name'] !== $configUser['name']) {
|
||||
echo "Console has to be executed with the user that owns the file config/config.php" . PHP_EOL;
|
||||
echo "Current user: " . $user['name'] . PHP_EOL;
|
||||
echo "Owner of config.php: " . $configUser['name'] . PHP_EOL;
|
||||
echo "Try adding 'sudo -u " . $configUser['name'] . " ' to the beginning of the command (without the single quotes)" . PHP_EOL;
|
||||
exit(0);
|
||||
}
|
||||
if (!function_exists('posix_getuid')) {
|
||||
echo "The posix extensions are required - see http://php.net/manual/en/book.posix.php" . PHP_EOL;
|
||||
exit(0);
|
||||
}
|
||||
$user = posix_getpwuid(posix_getuid());
|
||||
$configUser = posix_getpwuid(fileowner(OC::$configDir . 'config.php'));
|
||||
if ($user['name'] !== $configUser['name']) {
|
||||
echo "Console has to be executed with the user that owns the file config/config.php" . PHP_EOL;
|
||||
echo "Current user: " . $user['name'] . PHP_EOL;
|
||||
echo "Owner of config.php: " . $configUser['name'] . PHP_EOL;
|
||||
echo "Try adding 'sudo -u " . $configUser['name'] . " ' to the beginning of the command (without the single quotes)" . PHP_EOL;
|
||||
exit(0);
|
||||
}
|
||||
|
||||
$oldWorkingDir = getcwd();
|
||||
|
|
24
cron.php
24
cron.php
|
@ -84,19 +84,17 @@ try {
|
|||
set_time_limit(0);
|
||||
|
||||
// the cron job must be executed with the right user
|
||||
if (!OC_Util::runningOnWindows()) {
|
||||
if (!function_exists('posix_getuid')) {
|
||||
echo "The posix extensions are required - see http://php.net/manual/en/book.posix.php" . PHP_EOL;
|
||||
exit(0);
|
||||
}
|
||||
$user = posix_getpwuid(posix_getuid());
|
||||
$configUser = posix_getpwuid(fileowner(OC::$SERVERROOT . '/config/config.php'));
|
||||
if ($user['name'] !== $configUser['name']) {
|
||||
echo "Console has to be executed with the same user as the web server is operated" . PHP_EOL;
|
||||
echo "Current user: " . $user['name'] . PHP_EOL;
|
||||
echo "Web server user: " . $configUser['name'] . PHP_EOL;
|
||||
exit(0);
|
||||
}
|
||||
if (!function_exists('posix_getuid')) {
|
||||
echo "The posix extensions are required - see http://php.net/manual/en/book.posix.php" . PHP_EOL;
|
||||
exit(0);
|
||||
}
|
||||
$user = posix_getpwuid(posix_getuid());
|
||||
$configUser = posix_getpwuid(fileowner(OC::$SERVERROOT . '/config/config.php'));
|
||||
if ($user['name'] !== $configUser['name']) {
|
||||
echo "Console has to be executed with the same user as the web server is operated" . PHP_EOL;
|
||||
echo "Current user: " . $user['name'] . PHP_EOL;
|
||||
echo "Web server user: " . $configUser['name'] . PHP_EOL;
|
||||
exit(0);
|
||||
}
|
||||
|
||||
// We call ownCloud from the CLI (aka cron)
|
||||
|
|
|
@ -489,25 +489,7 @@ abstract class Common implements Storage, ILockingStorage {
|
|||
}
|
||||
|
||||
// NOTE: $path will remain unverified for now
|
||||
if (\OC_Util::runningOnWindows()) {
|
||||
$this->verifyWindowsPath($fileName);
|
||||
} else {
|
||||
$this->verifyPosixPath($fileName);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* https://msdn.microsoft.com/en-us/library/windows/desktop/aa365247%28v=vs.85%29.aspx
|
||||
* @param string $fileName
|
||||
* @throws InvalidPathException
|
||||
*/
|
||||
protected function verifyWindowsPath($fileName) {
|
||||
$fileName = trim($fileName);
|
||||
$this->scanForInvalidCharacters($fileName, "\\/<>:\"|?*");
|
||||
$reservedNames = ['CON', 'PRN', 'AUX', 'NUL', 'COM1', 'COM2', 'COM3', 'COM4', 'COM5', 'COM6', 'COM7', 'COM8', 'COM9', 'LPT1', 'LPT2', 'LPT3', 'LPT4', 'LPT5', 'LPT6', 'LPT7', 'LPT8', 'LPT9'];
|
||||
if (in_array(strtoupper($fileName), $reservedNames)) {
|
||||
throw new ReservedWordException();
|
||||
}
|
||||
$this->verifyPosixPath($fileName);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -299,8 +299,7 @@ class PreviewManager implements IPreview {
|
|||
}
|
||||
|
||||
if (count($checkImagick->queryFormats('PDF')) === 1) {
|
||||
// Office previews are currently not supported on Windows
|
||||
if (!\OC_Util::runningOnWindows() && \OC_Helper::is_function_enabled('shell_exec')) {
|
||||
if (\OC_Helper::is_function_enabled('shell_exec')) {
|
||||
$officeFound = is_string($this->config->getSystemValue('preview_libreoffice_path', null));
|
||||
|
||||
if (!$officeFound) {
|
||||
|
@ -324,9 +323,8 @@ class PreviewManager implements IPreview {
|
|||
}
|
||||
}
|
||||
|
||||
// Video requires avconv or ffmpeg and is therefor
|
||||
// currently not supported on Windows.
|
||||
if (in_array('OC\Preview\Movie', $this->getEnabledDefaultProvider()) && !\OC_Util::runningOnWindows()) {
|
||||
// Video requires avconv or ffmpeg
|
||||
if (in_array('OC\Preview\Movie', $this->getEnabledDefaultProvider())) {
|
||||
$avconvBinary = \OC_Helper::findBinaryPath('avconv');
|
||||
$ffmpegBinary = ($avconvBinary) ? null : \OC_Helper::findBinaryPath('ffmpeg');
|
||||
|
||||
|
|
|
@ -305,10 +305,6 @@ class Setup {
|
|||
$trustedDomains = [$request->getInsecureServerHost()];
|
||||
}
|
||||
|
||||
if (\OC_Util::runningOnWindows()) {
|
||||
$dataDir = rtrim(realpath($dataDir), '\\');
|
||||
}
|
||||
|
||||
//use sqlite3 when available, otherwise sqlite2 will be used.
|
||||
if($dbType=='sqlite' and class_exists('SQLite3')) {
|
||||
$dbType='sqlite3';
|
||||
|
|
|
@ -534,7 +534,7 @@ class OC_Helper {
|
|||
return $memcache->get($program);
|
||||
}
|
||||
$result = null;
|
||||
if (!\OC_Util::runningOnWindows() && self::is_function_enabled('exec')) {
|
||||
if (self::is_function_enabled('exec')) {
|
||||
$exeSniffer = new ExecutableFinder();
|
||||
// Returns null if nothing is found
|
||||
$result = $exeSniffer->find($program);
|
||||
|
|
|
@ -902,22 +902,18 @@ class OC_Util {
|
|||
public static function checkDataDirectoryPermissions($dataDirectory) {
|
||||
$l = \OC::$server->getL10N('lib');
|
||||
$errors = array();
|
||||
if (self::runningOnWindows()) {
|
||||
//TODO: permissions checks for windows hosts
|
||||
} else {
|
||||
$permissionsModHint = $l->t('Please change the permissions to 0770 so that the directory'
|
||||
. ' cannot be listed by other users.');
|
||||
$permissionsModHint = $l->t('Please change the permissions to 0770 so that the directory'
|
||||
. ' cannot be listed by other users.');
|
||||
$perms = substr(decoct(@fileperms($dataDirectory)), -3);
|
||||
if (substr($perms, -1) != '0') {
|
||||
chmod($dataDirectory, 0770);
|
||||
clearstatcache();
|
||||
$perms = substr(decoct(@fileperms($dataDirectory)), -3);
|
||||
if (substr($perms, -1) != '0') {
|
||||
chmod($dataDirectory, 0770);
|
||||
clearstatcache();
|
||||
$perms = substr(decoct(@fileperms($dataDirectory)), -3);
|
||||
if (substr($perms, 2, 1) != '0') {
|
||||
$errors[] = array(
|
||||
'error' => $l->t('Data directory (%s) is readable by other users', array($dataDirectory)),
|
||||
'hint' => $permissionsModHint
|
||||
);
|
||||
}
|
||||
if (substr($perms, 2, 1) != '0') {
|
||||
$errors[] = array(
|
||||
'error' => $l->t('Data directory (%s) is readable by other users', array($dataDirectory)),
|
||||
'hint' => $permissionsModHint
|
||||
);
|
||||
}
|
||||
}
|
||||
return $errors;
|
||||
|
@ -933,7 +929,7 @@ class OC_Util {
|
|||
public static function checkDataDirectoryValidity($dataDirectory) {
|
||||
$l = \OC::$server->getL10N('lib');
|
||||
$errors = [];
|
||||
if (!self::runningOnWindows() && $dataDirectory[0] !== '/') {
|
||||
if ($dataDirectory[0] !== '/') {
|
||||
$errors[] = [
|
||||
'error' => $l->t('Data directory (%s) must be an absolute path', [$dataDirectory]),
|
||||
'hint' => $l->t('Check the value of "datadirectory" in your configuration')
|
||||
|
@ -1203,11 +1199,6 @@ class OC_Util {
|
|||
* @return bool
|
||||
*/
|
||||
public static function isSetLocaleWorking() {
|
||||
// setlocale test is pointless on Windows
|
||||
if (OC_Util::runningOnWindows()) {
|
||||
return true;
|
||||
}
|
||||
|
||||
\Patchwork\Utf8\Bootup::initLocale();
|
||||
if ('' === basename('§')) {
|
||||
return false;
|
||||
|
|
|
@ -154,9 +154,6 @@ $template->assign('cronErrors', $appConfig->getValue('core', 'cronErrors'));
|
|||
$path = getenv('PATH');
|
||||
$template->assign('getenvServerNotWorking', empty($path));
|
||||
|
||||
// warn if Windows is used
|
||||
$template->assign('WindowsWarning', OC_Util::runningOnWindows());
|
||||
|
||||
// warn if outdated version of a memcache module is used
|
||||
$caches = [
|
||||
'apcu' => ['name' => $l->t('APCu'), 'version' => '4.0.6'],
|
||||
|
|
|
@ -106,15 +106,6 @@ if ($_['invalidTransactionIsolationLevel']) {
|
|||
<?php
|
||||
}
|
||||
|
||||
// Windows Warning
|
||||
if ($_['WindowsWarning']) {
|
||||
?>
|
||||
<li>
|
||||
<?php p($l->t('Your server is running on Microsoft Windows. We highly recommend Linux for optimal user experience.')); ?>
|
||||
</li>
|
||||
<?php
|
||||
}
|
||||
|
||||
// Warning if memcache is outdated
|
||||
foreach ($_['OutdatedCacheWarning'] as $php_module => $data) {
|
||||
?>
|
||||
|
|
|
@ -12,14 +12,6 @@ namespace Test\Archive;
|
|||
use OC\Archive\TAR;
|
||||
|
||||
class TARTest extends TestBase {
|
||||
protected function setUp() {
|
||||
parent::setUp();
|
||||
|
||||
if (\OC_Util::runningOnWindows()) {
|
||||
$this->markTestSkipped('[Windows] tar archives are not supported on Windows');
|
||||
}
|
||||
}
|
||||
|
||||
protected function getExisting() {
|
||||
$dir = \OC::$SERVERROOT . '/tests/data';
|
||||
return new TAR($dir . '/data.tar.gz');
|
||||
|
|
|
@ -12,14 +12,6 @@ namespace Test\Archive;
|
|||
use OC\Archive\ZIP;
|
||||
|
||||
class ZIPTest extends TestBase {
|
||||
protected function setUp() {
|
||||
parent::setUp();
|
||||
|
||||
if (\OC_Util::runningOnWindows()) {
|
||||
$this->markTestSkipped('[Windows] ');
|
||||
}
|
||||
}
|
||||
|
||||
protected function getExisting() {
|
||||
$dir = \OC::$SERVERROOT . '/tests/data';
|
||||
return new ZIP($dir . '/data.zip');
|
||||
|
|
|
@ -272,28 +272,6 @@ class FilesystemTest extends \Test\TestCase {
|
|||
$this->assertSame($expected, \OC\Files\Filesystem::isFileBlacklisted($path));
|
||||
}
|
||||
|
||||
public function normalizePathWindowsAbsolutePathData() {
|
||||
return array(
|
||||
array('C:/', 'C:\\'),
|
||||
array('C:/', 'C:\\', false),
|
||||
array('C:/tests', 'C:\\tests'),
|
||||
array('C:/tests', 'C:\\tests', false),
|
||||
array('C:/tests', 'C:\\tests\\'),
|
||||
array('C:/tests/', 'C:\\tests\\', false),
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider normalizePathWindowsAbsolutePathData
|
||||
*/
|
||||
public function testNormalizePathWindowsAbsolutePath($expected, $path, $stripTrailingSlash = true) {
|
||||
if (!\OC_Util::runningOnWindows()) {
|
||||
$this->markTestSkipped('This test is Windows only');
|
||||
}
|
||||
|
||||
$this->assertEquals($expected, \OC\Files\Filesystem::normalizePath($path, $stripTrailingSlash, true));
|
||||
}
|
||||
|
||||
public function testNormalizePathUTF8() {
|
||||
if (!class_exists('Patchwork\PHP\Shim\Normalizer')) {
|
||||
$this->markTestSkipped('UTF8 normalizer Patchwork was not found');
|
||||
|
|
|
@ -48,10 +48,6 @@ class LocalTest extends Storage {
|
|||
}
|
||||
|
||||
public function testStableEtag() {
|
||||
if (\OC_Util::runningOnWindows()) {
|
||||
$this->markTestSkipped('[Windows] On Windows platform we have no stable etag generation - yet');
|
||||
}
|
||||
|
||||
$this->instance->file_put_contents('test.txt', 'foobar');
|
||||
$etag1 = $this->instance->getETag('test.txt');
|
||||
$etag2 = $this->instance->getETag('test.txt');
|
||||
|
@ -59,10 +55,6 @@ class LocalTest extends Storage {
|
|||
}
|
||||
|
||||
public function testEtagChange() {
|
||||
if (\OC_Util::runningOnWindows()) {
|
||||
$this->markTestSkipped('[Windows] On Windows platform we have no stable etag generation - yet');
|
||||
}
|
||||
|
||||
$this->instance->file_put_contents('test.txt', 'foo');
|
||||
$this->instance->touch('test.txt', time() - 2);
|
||||
$etag1 = $this->instance->getETag('test.txt');
|
||||
|
|
|
@ -80,10 +80,6 @@ class DetectionTest extends \Test\TestCase {
|
|||
}
|
||||
|
||||
public function testDetectString() {
|
||||
if (\OC_Util::runningOnWindows()) {
|
||||
$this->markTestSkipped('[Windows] Strings have mimetype application/octet-stream on Windows');
|
||||
}
|
||||
|
||||
$result = $this->detection->detectString("/data/data.tar.gz");
|
||||
$expected = 'text/plain; charset=us-ascii';
|
||||
$this->assertEquals($expected, $result);
|
||||
|
|
|
@ -104,7 +104,7 @@ class ViewTest extends \Test\TestCase {
|
|||
$cache->clear();
|
||||
}
|
||||
|
||||
if ($this->tempStorage && !\OC_Util::runningOnWindows()) {
|
||||
if ($this->tempStorage) {
|
||||
system('rm -rf ' . escapeshellarg($this->tempStorage->getDataDir()));
|
||||
}
|
||||
|
||||
|
@ -761,14 +761,10 @@ class ViewTest extends \Test\TestCase {
|
|||
/*
|
||||
* 4096 is the maximum path length in file_cache.path in *nix
|
||||
* 1024 is the max path length in mac
|
||||
* 228 is the max path length in windows
|
||||
*/
|
||||
$folderName = 'abcdefghijklmnopqrstuvwxyz012345678901234567890123456789';
|
||||
$tmpdirLength = strlen(\OC::$server->getTempManager()->getTemporaryFolder());
|
||||
if (\OC_Util::runningOnWindows()) {
|
||||
$this->markTestSkipped('[Windows] ');
|
||||
$depth = ((260 - $tmpdirLength) / 57);
|
||||
} elseif (\OC_Util::runningOnMac()) {
|
||||
if (\OC_Util::runningOnMac()) {
|
||||
$depth = ((1024 - $tmpdirLength) / 57);
|
||||
} else {
|
||||
$depth = ((4000 - $tmpdirLength) / 57);
|
||||
|
|
|
@ -75,10 +75,6 @@ class ImageTest extends \Test\TestCase {
|
|||
$img = new \OC_Image(null);
|
||||
$this->assertEquals('', $img->mimeType());
|
||||
|
||||
if (\OC_Util::runningOnWindows()) {
|
||||
$this->markTestSkipped('[Windows] Images created with imagecreate() are pngs on windows');
|
||||
}
|
||||
|
||||
$img = new \OC_Image(file_get_contents(OC::$SERVERROOT.'/tests/data/testimage.jpg'));
|
||||
$this->assertEquals('image/jpeg', $img->mimeType());
|
||||
|
||||
|
|
|
@ -28,12 +28,10 @@ class LargeFileHelperGetFileSizeTest extends TestCase {
|
|||
public function dataFileNameProvider() {
|
||||
$path = dirname(__DIR__) . DIRECTORY_SEPARATOR . 'data' . DIRECTORY_SEPARATOR;
|
||||
|
||||
$filePaths = array(array($path . 'lorem.txt', 446));
|
||||
if (!\OC_Util::runningOnWindows()) {
|
||||
$filePaths[] = array($path . 'strängé filename (duplicate #2).txt', 446);
|
||||
}
|
||||
|
||||
return $filePaths;
|
||||
return [
|
||||
[ $path . 'lorem.txt', 446 ],
|
||||
[ $path . 'strängé filename (duplicate #2).txt', 446 ],
|
||||
];
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -138,9 +138,6 @@ class TempManagerTest extends \Test\TestCase {
|
|||
}
|
||||
|
||||
public function testLogCantCreateFile() {
|
||||
if (\OC_Util::runningOnWindows()) {
|
||||
$this->markTestSkipped('[Windows] chmod() does not work as intended on Windows.');
|
||||
}
|
||||
$this->markTestSkipped('TODO: Disable because fails on drone');
|
||||
|
||||
$logger = $this->getMock('\Test\NullLogger');
|
||||
|
@ -153,9 +150,6 @@ class TempManagerTest extends \Test\TestCase {
|
|||
}
|
||||
|
||||
public function testLogCantCreateFolder() {
|
||||
if (\OC_Util::runningOnWindows()) {
|
||||
$this->markTestSkipped('[Windows] chmod() does not work as intended on Windows.');
|
||||
}
|
||||
$this->markTestSkipped('TODO: Disable because fails on drone');
|
||||
|
||||
$logger = $this->getMock('\Test\NullLogger');
|
||||
|
|
|
@ -145,9 +145,6 @@ class UtilCheckServerTest extends \Test\TestCase {
|
|||
* Tests an error is given when the datadir is not writable
|
||||
*/
|
||||
public function testDataDirNotWritable() {
|
||||
if (\OC_Util::runningOnWindows()) {
|
||||
$this->markTestSkipped('[Windows] chmod() does not work as intended on Windows.');
|
||||
}
|
||||
$this->markTestSkipped('TODO: Disable because fails on drone');
|
||||
|
||||
chmod($this->datadir, 0300);
|
||||
|
|
|
@ -396,10 +396,8 @@ class UtilTest extends \Test\TestCase {
|
|||
$this->assertNotEmpty($errors);
|
||||
\OCP\Files::rmdirr($dataDir);
|
||||
|
||||
if (!\OC_Util::runningOnWindows()) {
|
||||
$errors = \OC_Util::checkDataDirectoryValidity('relative/path');
|
||||
$this->assertNotEmpty($errors);
|
||||
}
|
||||
$errors = \OC_Util::checkDataDirectoryValidity('relative/path');
|
||||
$this->assertNotEmpty($errors);
|
||||
}
|
||||
|
||||
protected function setUp() {
|
||||
|
|
Loading…
Reference in New Issue