It appears the manifest/digest command of ebuild will ignore files in the files directory that have @ symbols. @ symbols are used in Systemd template services. Right now the workaround seems to be to use systemd_newunit and give the @ character in the renamed file (second argument). http://www.freedesktop.org/software/systemd/man/systemd.unit.html#Description Optionally, units may be instantiated from a template file at runtime. This allows creation of multiple units from a single configuration file. If systemd looks for a unit configuration file, it will first search for the literal unit name in the file system. If that yields no success and the unit name contains an "@" character, systemd will look for a unit template that shares the same name but with the instance string (i.e. the part between the "@" character and the suffix) removed. Example: if a service getty@tty3.service is requested and no file by that name is found, systemd will look for getty@.service and instantiate a service from that configuration file if it is found. Reproducible: Always Steps to Reproduce: 1. Create a new ebuild that uses the systemd eclass EAPI=5 inherit systemd src_install() { systemd_dounit "template@.service" } 2. Make a files directory and create template@.service inside mkdir files && touch files/template@.service 3. ebuild ebuild-name.ebuild manifest Actual Results: $ cat Manifest Only the ebuild is listed. Expected Results: The service file should be listed from the files directory as an AUX entry. You can run ebuild ebuild-name.ebuild install, and note how you will get this error: !!! A file is not listed in the Manifest: 'name-of-file@...'
In repoman's file.name check, we only allow the characters [a-zA-Z0-9._\-+:] due to long-standing QA policy.
*** This bug has been marked as a duplicate of bug 411127 ***