<html>
<head>
<meta content="text/html; charset=ISO-8859-1"
http-equiv="Content-Type">
</head>
<body text="#000000" bgcolor="#FFFFFF">
<div class="moz-cite-prefix">On 10/26/2013 07:32 PM, Teddy Hogeborn
wrote:<br>
</div>
<blockquote cite="mid:87li1fa47m.fsf@tower.recompile.se" type="cite">
<pre wrap="">Nathanael Noblet <a class="moz-txt-link-rfc2396E" href="mailto:nathanael@gnat.ca"><nathanael@gnat.ca></a> writes:
</pre>
<blockquote type="cite">
<pre wrap="">Now onto systemd service file creation
</pre>
</blockquote>
<pre wrap="">
Actually, I've been working on that. I just committed support of
systemd to trunk.
</pre>
</blockquote>
Good stuff, I think Erik's rpm also included a systemd file. I
haven't looked at either but that's one less thing to worry about.
<blockquote cite="mid:87li1fa47m.fsf@tower.recompile.se" type="cite">
<blockquote type="cite">
<pre wrap="">and dracut integration.
</pre>
</blockquote>
<pre wrap="">
I've yet to look seriously into this.</pre>
</blockquote>
<br>
I'll take a look at it this week. I've never dug too deeply in there
however I can't imagine its overly more complicated than any other
initramfs type system.<br>
<br>
<br>
<blockquote cite="mid:87li1fa47m.fsf@tower.recompile.se" type="cite">
<blockquote type="cite">
<pre wrap="">One of the things I know we'll have problems with is your Makefile
hardcodes the lib directory to /usr/lib,
</pre>
</blockquote>
<pre wrap="">
Um, say what? We do? Where? Do you mean the /usr/lib/mandos
directory? Note that we do not actually install *libraries* as such, we
only want a application-specific directory for Mandos client binaries to
be installed into the initramfs image. They *are* binaries, so they
cannot go into /usr/share.</pre>
</blockquote>
<br>
So I think in this case I think they belong in fedora in
/usr/libexec. Either way I would expect /usr/lib is against Fedora
packaging for a 64bit build. It may be fine for 32 but definitely
not 64. Though I'm pretty sure that in Fedora they use libexec for
programs that aren't ever really meant to be called by a user. They
have a draft guideline here:
<meta http-equiv="content-type" content="text/html;
charset=ISO-8859-1">
<a
href="http://fedoraproject.org/wiki/Libexecdir_clarification_packaging_draft">http://fedoraproject.org/wiki/Libexecdir_clarification_packaging_draft</a>
<br>
<br>
<br>
<blockquote cite="mid:87li1fa47m.fsf@tower.recompile.se" type="cite">
<blockquote type="cite">
<pre wrap="">and in a multi-lib situation x86_64 arches for fedora are /usr/lib64,
</pre>
</blockquote>
<pre wrap="">
If I read the Debian standards correctly, they *prohibit* /usr/lib64,
and mandate /usr/lib instead, and *permits* /usr/lib/x86_64-linux-gnu as
an option. How should a mere Makefile detect where to install stuff?
What do others do?</pre>
</blockquote>
So I think in most cases projects have a configure script that auto
generates the Makefile. Distros can pass all their directory paths
for everything to configure knows where to place it all. In a
compiled distro this often results in compile time definitions
passed through gcc or other compilation software.<br>
<br>
<blockquote cite="mid:87li1fa47m.fsf@tower.recompile.se" type="cite">
<pre wrap="">
(Note that the initramfs creation hook script would also need to be
updated to copy the files from the right place.)</pre>
</blockquote>
Good to know, though I'm sure I would have run into the issue.<br>
<br>
So to include mandos in Fedora there are already some Makefile
patches that will be required (for example the way the buildsystem
works the installation of the /var/lib/mandos directory with install
--user=x --group=y fails. The rpm system has a method for setting
desired ownership and mode in the file manifest. In anycase, here's
how I basically modified the Makefile. Once I have all the changes
Fedora would require we can go over the required patches to see if
we can have a system that uses your defaults but can be overridden
for other distros easily.<br>
<br>
In the meantime I did this as one patch to the Makefile<br>
<br>
ifndef LIBDIR<br>
LIBDIR=lib<br>
endif<br>
<br>
then in your install-server and install-client where it has
$(PREFIX)/lib/ I've changed them to $(PREFIX)/$(LIBDIR)...<br>
<br>
That way your default remains however I can do in the build spec<br>
<br>
LIBDIR=%{_libexec} make install and it installs to /usr/libexec <br>
<br>
The other solution would be to modify the project to use a configure
file and makefile with definition creation for any files needing
compilation, python setup files or what not. At the moment it
doesn't matter to me which way you'd prefer to go but if you are
amenable to either option would be awesome.<br>
<br>
Sincerely,<br>
-- <br>
Nathanael<br>
<br>
</body>
</html>