diff options
6 files changed, 51 insertions, 41 deletions
diff --git a/apps/files_external/3rdparty/composer.json b/apps/files_external/3rdparty/composer.json index 6af1429aa7f..3ae9569c3f2 100644 --- a/apps/files_external/3rdparty/composer.json +++ b/apps/files_external/3rdparty/composer.json @@ -9,6 +9,6 @@ }, "require": { "icewind/smb": "3.7.0", - "icewind/streams": "0.7.7" + "icewind/streams": "0.7.8" } } diff --git a/apps/files_external/3rdparty/composer.lock b/apps/files_external/3rdparty/composer.lock index b0cf919de9c..7e44f13bcca 100644 --- a/apps/files_external/3rdparty/composer.lock +++ b/apps/files_external/3rdparty/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "1b75bb2715ed2dae7d090ae40b9843a2", + "content-hash": "565bb9d1046efbd95b08a2b4df1a4efb", "packages": [ { "name": "icewind/smb", @@ -55,17 +55,11 @@ }, { "name": "icewind/streams", - "version": "v0.7.7", + "version": "v0.7.8", "source": { "type": "git", - "url": "https://github.com/icewind1991/Streams.git", - "reference": "64200fd7cfcc7f550c3c695c48d8fd8bba97fecb" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/icewind1991/Streams/zipball/64200fd7cfcc7f550c3c695c48d8fd8bba97fecb", - "reference": "64200fd7cfcc7f550c3c695c48d8fd8bba97fecb", - "shasum": "" + "url": "https://codeberg.org/icewind/streams", + "reference": "cb2bd3ed41b516efb97e06e8da35a12ef58ba48b" }, "require": { "php": ">=7.1" @@ -92,11 +86,7 @@ } ], "description": "A set of generic stream wrappers", - "support": { - "issues": "https://github.com/icewind1991/Streams/issues", - "source": "https://github.com/icewind1991/Streams/tree/v0.7.7" - }, - "time": "2023-03-16T14:52:25+00:00" + "time": "2024-12-05T14:36:22+00:00" } ], "packages-dev": [], diff --git a/apps/files_external/3rdparty/composer/InstalledVersions.php b/apps/files_external/3rdparty/composer/InstalledVersions.php index 51e734a774b..6d29bff66aa 100644 --- a/apps/files_external/3rdparty/composer/InstalledVersions.php +++ b/apps/files_external/3rdparty/composer/InstalledVersions.php @@ -33,6 +33,11 @@ class InstalledVersions private static $installed; /** + * @var bool + */ + private static $installedIsLocalDir; + + /** * @var bool|null */ private static $canGetVendors; @@ -309,6 +314,12 @@ class InstalledVersions { self::$installed = $data; self::$installedByVendor = array(); + + // when using reload, we disable the duplicate protection to ensure that self::$installed data is + // always returned, but we cannot know whether it comes from the installed.php in __DIR__ or not, + // so we have to assume it does not, and that may result in duplicate data being returned when listing + // all installed packages for example + self::$installedIsLocalDir = false; } /** @@ -322,19 +333,27 @@ class InstalledVersions } $installed = array(); + $copiedLocalDir = false; if (self::$canGetVendors) { + $selfDir = strtr(__DIR__, '\\', '/'); foreach (ClassLoader::getRegisteredLoaders() as $vendorDir => $loader) { + $vendorDir = strtr($vendorDir, '\\', '/'); if (isset(self::$installedByVendor[$vendorDir])) { $installed[] = self::$installedByVendor[$vendorDir]; } elseif (is_file($vendorDir.'/composer/installed.php')) { /** @var array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array<string, array{pretty_version?: string, version?: string, reference?: string|null, type?: string, install_path?: string, aliases?: string[], dev_requirement: bool, replaced?: string[], provided?: string[]}>} $required */ $required = require $vendorDir.'/composer/installed.php'; - $installed[] = self::$installedByVendor[$vendorDir] = $required; - if (null === self::$installed && strtr($vendorDir.'/composer', '\\', '/') === strtr(__DIR__, '\\', '/')) { - self::$installed = $installed[count($installed) - 1]; + self::$installedByVendor[$vendorDir] = $required; + $installed[] = $required; + if (self::$installed === null && $vendorDir.'/composer' === $selfDir) { + self::$installed = $required; + self::$installedIsLocalDir = true; } } + if (self::$installedIsLocalDir && $vendorDir.'/composer' === $selfDir) { + $copiedLocalDir = true; + } } } @@ -350,7 +369,7 @@ class InstalledVersions } } - if (self::$installed !== array()) { + if (self::$installed !== array() && !$copiedLocalDir) { $installed[] = self::$installed; } diff --git a/apps/files_external/3rdparty/composer/installed.json b/apps/files_external/3rdparty/composer/installed.json index 275a586f4fb..9d24d06a777 100644 --- a/apps/files_external/3rdparty/composer/installed.json +++ b/apps/files_external/3rdparty/composer/installed.json @@ -52,18 +52,12 @@ }, { "name": "icewind/streams", - "version": "v0.7.7", - "version_normalized": "0.7.7.0", + "version": "v0.7.8", + "version_normalized": "0.7.8.0", "source": { "type": "git", - "url": "https://github.com/icewind1991/Streams.git", - "reference": "64200fd7cfcc7f550c3c695c48d8fd8bba97fecb" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/icewind1991/Streams/zipball/64200fd7cfcc7f550c3c695c48d8fd8bba97fecb", - "reference": "64200fd7cfcc7f550c3c695c48d8fd8bba97fecb", - "shasum": "" + "url": "https://codeberg.org/icewind/streams", + "reference": "cb2bd3ed41b516efb97e06e8da35a12ef58ba48b" }, "require": { "php": ">=7.1" @@ -73,9 +67,9 @@ "phpstan/phpstan": "^0.12", "phpunit/phpunit": "^9" }, - "time": "2023-03-16T14:52:25+00:00", + "time": "2024-12-05T14:36:22+00:00", "type": "library", - "installation-source": "dist", + "installation-source": "source", "autoload": { "psr-4": { "Icewind\\Streams\\": "src/" @@ -92,10 +86,6 @@ } ], "description": "A set of generic stream wrappers", - "support": { - "issues": "https://github.com/icewind1991/Streams/issues", - "source": "https://github.com/icewind1991/Streams/tree/v0.7.7" - }, "install-path": "../icewind/streams" } ], diff --git a/apps/files_external/3rdparty/composer/installed.php b/apps/files_external/3rdparty/composer/installed.php index 12058ec9474..81b98dacaba 100644 --- a/apps/files_external/3rdparty/composer/installed.php +++ b/apps/files_external/3rdparty/composer/installed.php @@ -3,7 +3,7 @@ 'name' => 'files_external/3rdparty', 'pretty_version' => 'dev-master', 'version' => 'dev-master', - 'reference' => '101c7575ae7684a572e53740c63635cd12685995', + 'reference' => '05e64418a77134e55824fc8c1a91125805428f3f', 'type' => 'library', 'install_path' => __DIR__ . '/../', 'aliases' => array(), @@ -13,7 +13,7 @@ 'files_external/3rdparty' => array( 'pretty_version' => 'dev-master', 'version' => 'dev-master', - 'reference' => '101c7575ae7684a572e53740c63635cd12685995', + 'reference' => '05e64418a77134e55824fc8c1a91125805428f3f', 'type' => 'library', 'install_path' => __DIR__ . '/../', 'aliases' => array(), @@ -29,9 +29,9 @@ 'dev_requirement' => false, ), 'icewind/streams' => array( - 'pretty_version' => 'v0.7.7', - 'version' => '0.7.7.0', - 'reference' => '64200fd7cfcc7f550c3c695c48d8fd8bba97fecb', + 'pretty_version' => 'v0.7.8', + 'version' => '0.7.8.0', + 'reference' => 'cb2bd3ed41b516efb97e06e8da35a12ef58ba48b', 'type' => 'library', 'install_path' => __DIR__ . '/../icewind/streams', 'aliases' => array(), diff --git a/apps/files_external/3rdparty/icewind/streams/src/CountWrapper.php b/apps/files_external/3rdparty/icewind/streams/src/CountWrapper.php index d1427dd97af..eb2ba9a9296 100644 --- a/apps/files_external/3rdparty/icewind/streams/src/CountWrapper.php +++ b/apps/files_external/3rdparty/icewind/streams/src/CountWrapper.php @@ -60,6 +60,17 @@ class CountWrapper extends Wrapper { return true; } + public function stream_seek($offset, $whence = SEEK_SET) { + if ($whence === SEEK_SET) { + $this->readCount = $offset; + $this->writeCount = $offset; + } else if ($whence === SEEK_CUR) { + $this->readCount += $offset; + $this->writeCount += $offset; + } + return parent::stream_seek($offset, $whence); + } + public function dir_opendir($path, $options) { return $this->open(); } |