Issue #9207
Updated by pulpbot over 2 years ago
**Ticket moved to GitHub**: "pulp/pulp_file/630":https://github.com/pulp/pulp_file/issues/630 ---- There are no errors thrown when adding file content to a repository where the file name/relative path contains a comma. The PULP_MANIFEST is then updated to include a comma in the relative_path field thus breaking deserialization of the PULP_MANIFEST when referenced as the file remote target (URL) of an external pulp repository. Example: ~~~ text All/bison-3.7.6,1.txz,6c7d3a44ef1f8dc77a1ff8b6df38c4a41b4b443e6ea433e662805a5e006268ec,489308 ~~~ Commas are valid filename characters in both Linux and Windows filesystems. FreeBSD specifically uses a versioning schema that utilizes commas in the filenames of packages to denote [PORTEPOCH](https://docs.freebsd.org/en/books/porters-handbook/makefiles/#:~:text=5.2.3.2.-,PORTEPOCH,-From%20time%20to) The fix should be either to serialize the fields using double quotes in accordance with [RFC4180](https://datatracker.ietf.org/doc/html/rfc4180#:~:text=6.%20%20Fields%20containing%20line%20breaks%20(CRLF)%2C%20double%20quotes%2C%20and%20commas%0A%20%20%20%20%20%20%20should%20be%20enclosed%20in%20double-quotes.%20%20For%20example%3A%0A%0A%20%20%20%20%20%20%20%22aaa%22%2C%22b%20CRLF%0A%20%20%20%20%20%20%20bb%22%2C%22ccc%22%20CRLF%0A%20%20%20%20%20%20%20zzz%2Cyyy%2Cxxx), URL encode commas in the field, or choose a different serialization format (e.g. YAML, JSON, XML, etc...). I tested using URL encoding of the commas ```%2C``` which allowed the PULP_MANIFEST to successfully be validated and files to be synced but then prevented files from being downloaded from the sync'd repository due to how the file distribution serves file artifacts.