Summary
As of v0.444.0, the SA360 service contains a generated file whose name is 145 bytes long:
src/SA360/GoogleAdsSearchads360V23ResourcesCustomerSkAdNetworkConversionValueSchemaSkAdNetworkConversionValueSchemaCoarseGrainedConversionValueMappings.php
This exceeds the 143-byte limit for a single filename component on eCryptfs-encrypted filesystems (the default "encrypt home folder" option on Ubuntu / Linux Mint, which encrypts file names). The kernel rejects creating the file with ENAMETOOLONG, so composer install fails outright — the package cannot be installed at all on such systems:
Failed to extract google/apiclient-services: (50) ... unzip ...
error: cannot create .../src/SA360/GoogleAdsSearchads360V23...ConversionValueMappings.php
File name too long
ZipArchive::extractTo(...): Failed to open stream: File name too long
Install of google/apiclient-services failed
When it was introduced
| Version |
Longest file name in src/SA360/ |
| v0.443.0 and earlier |
98 bytes (fine) |
| v0.444.0 |
145 bytes (breaks eCryptfs) |
The second-longest name in v0.444.0 is already 143 bytes (...FineGrainedConversionValueMappings.php), i.e. exactly at the limit — so further growth will break even more environments.
Root cause
The name is built by concatenating the nested resource hierarchy, with a redundant repetition of SkAdNetworkConversionValueSchema:
Customer + SkAdNetworkConversionValueSchema + SkAdNetworkConversionValueSchema + CoarseGrainedConversionValueMappings
Since these names are auto-generated, the fix belongs in the generator.
Request
Please keep generated file/class names within a filesystem-portable length (≤ 143 bytes per component). Options:
- de-duplicate repeated path segments,
- abbreviate or hash overly long generated names above a threshold,
- or otherwise cap component length.
This also mitigates the long-standing Windows MAX_PATH (260) concern for deep vendor/ paths.
Reproduction
On a Linux home encrypted with eCryptfs (Ubuntu / Mint "encrypt home folder"):
composer require google/apiclient-services:0.444.0
→ extraction fails with "File name too long".
Environment
- google/apiclient-services v0.444.0
- Linux (kernel 6.8), eCryptfs-encrypted home (143-byte filename limit)
- PHP 8.x / Composer 2.x
Related: #595 (package size).
Summary
As of v0.444.0, the SA360 service contains a generated file whose name is 145 bytes long:
This exceeds the 143-byte limit for a single filename component on eCryptfs-encrypted filesystems (the default "encrypt home folder" option on Ubuntu / Linux Mint, which encrypts file names). The kernel rejects creating the file with
ENAMETOOLONG, socomposer installfails outright — the package cannot be installed at all on such systems:When it was introduced
src/SA360/The second-longest name in v0.444.0 is already 143 bytes (
...FineGrainedConversionValueMappings.php), i.e. exactly at the limit — so further growth will break even more environments.Root cause
The name is built by concatenating the nested resource hierarchy, with a redundant repetition of
SkAdNetworkConversionValueSchema:Customer+SkAdNetworkConversionValueSchema+SkAdNetworkConversionValueSchema+CoarseGrainedConversionValueMappingsSince these names are auto-generated, the fix belongs in the generator.
Request
Please keep generated file/class names within a filesystem-portable length (≤ 143 bytes per component). Options:
This also mitigates the long-standing Windows
MAX_PATH(260) concern for deepvendor/paths.Reproduction
On a Linux home encrypted with eCryptfs (Ubuntu / Mint "encrypt home folder"):
→ extraction fails with "File name too long".
Environment
Related: #595 (package size).