Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 548246 - Files with @ symbol ignored by ebuild <> manifest
Summary: Files with @ symbol ignored by ebuild <> manifest
Status: RESOLVED DUPLICATE of bug 411127
Alias: None
Product: Portage Development
Classification: Unclassified
Component: Core (show other bugs)
Hardware: All Linux
: Normal normal (vote)
Assignee: Portage team
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2015-04-30 12:47 UTC by Andrew Udvare
Modified: 2015-05-02 17:12 UTC (History)
1 user (show)

See Also:
Package list:
Runtime testing required: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Andrew Udvare 2015-04-30 12:47:11 UTC
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@...'
Comment 1 Zac Medico gentoo-dev 2015-05-02 17:09:48 UTC
In repoman's file.name check, we only allow the characters [a-zA-Z0-9._\-+:] due to long-standing QA policy.
Comment 2 Zac Medico gentoo-dev 2015-05-02 17:12:28 UTC

*** This bug has been marked as a duplicate of bug 411127 ***