[Mageia-dev] Adding tmpfiles.d support to packages (was: Re: rpmlint)
Colin Guthrie
mageia at colin.guthr.ie
Thu Nov 22 11:20:21 CET 2012
'Twas brillig, and Remco Rijnders at 22/11/12 08:17 did gyre and gimble:
> On Wed, Nov 21, 2012 at 11:43:24PM +0000, Colin wrote in
> <50AD671C.2060409 at colin.guthr.ie>:
>> So I've added a few tests to rpmlint for stuff previously discussed.
>>
>> I'm aware of lots of packages that will fail but will try and fix them
>> over the weekend.
>
>> If anyone wants to help with the "known-to-break" list, please fix up
>> the following packages to add tmpfiles support rather than shipping the
>> actual files/folders:
>
> Colin,
>
> You'll probably be tired of repeating yourself over and over, but do you
> have a few pointers (maybe on the packaging wiki?), what to change and
> where? Is it a general approach for all packages, if so perhaps point to
> a commit on SVN having the needed changes for a package?
I should write up a wiki page, but here is the details:
1. Add a file like: %{name}-tmpfiles.conf to the SOURCES tree containing:
D /run/my-package 0710 my-user my-group -
(this will create a folder call /run/my-package owned by
my-user:my-group in /run. You should likely use /run or /run/lock
directly rather than /var/run or /var/lock which are just symlinks to that).
You can also create files, links, named pipes etc. too. See "man
tmpfiles.d" for full syntax.
2. Add the source to the SPEC:
SourceN: %{name}-tmpfiles.conf
3. Install the tmpfile snippet:
# create tmpfiles directory
install -d -m0755 %{buildroot}%{_prefix}/lib/tmpfiles.d
install -m0644 %{SOURCEN}
%{buildroot}%{_prefix}/lib/tmpfiles.d/%{name}.conf
Make sure it's included in the %files section too:
%{_prefix}/lib/tmpfiles.d/*.conf
4. Add Requires:
Requires(post): systemd
5. Add/add to %post:
systemd-tmpfiles --create %{name}.conf
(note, passing in the file basename here is very important! Don't just
run "systemd-tmpfiles --create" as it has unexpected consequences!)
That's about it.
We could go around %ghosting the files created, but to be perfectly
honest, I don't think it's worth the effort. Files in /run should be
considered generally volatile and they should all be pretty self
explanatory generally IMO.
HTHs
Col
--
Colin Guthrie
colin(at)mageia.org
http://colin.guthr.ie/
Day Job:
Tribalogic Limited http://www.tribalogic.net/
Open Source:
Mageia Contributor http://www.mageia.org/
PulseAudio Hacker http://www.pulseaudio.org/
Trac Hacker http://trac.edgewall.org/
More information about the Mageia-dev
mailing list