Skip to content

Generated file name (145 bytes) exceeds the 143-byte limit on eCryptfs, breaking composer install #8831

@tegger86

Description

@tegger86

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).

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions