[Fedora-packaging] Ada guidelines changes for Comfignat and runpaths
Pavel Zhukov
pavel at zhukoff.net
Sun Dec 8 18:15:39 UTC 2013
On Sunday, December 08, 2013 06:36:17 PM Björn Persson wrote:
> Pavel Zhukov wrote:
> > On Thursday, December 05, 2013 11:12:41 PM Björn Persson wrote:
> > > Comfignat is a new build system built around the GNAT tools and
> > > designed to make packaging easy. The RPM macro Comfignat_make
> > > handles building a Comfignat-using package with the right
> > > configuration for Fedora. This macro needs to be mentioned in the
> > > Ada guidelines.
> >
> > Is comfignat packaged in Fedora?
>
> Comfignat consists of a generic makefile foundation and a template of an
> abstract GNAT project that will be bundled with the source packages
> that use it. The files need to be in the source tree so that Make will
> find them, so there's no point in packaging Comfignat.
>
> Comfignat is here by the way, for anyone who is interested:
> https://www.rombobjörn.se/Comfignat/
>
> > Is anyone going to use it?
>
> I've been helping Tero Koskinen to remake Ahven's build system around
> Comfignat, and he says he'll make a new release soon. I want to package
> Ahven to be able to run the test suites of Anet, Alog and the Trusted
> Key Manager. Anet is already packaged but without a %check section.
>
> I also use Comfignat in some projects of my own that will hopefully be
> ready to be packaged some day.
>
Bjorn, I can understand your point here but comfignat is just one more project
It can invoked (using fedora-gnat-project-common) some macroses but I'd not
like to change Guidelines. In that case we'll introduce %{awsmake}
%{awsmake_install}, %{matreshkamake} %{mynicepackagemake} macroses soon (and
yes. matreshka uses its own nice configuration syste).
Gnatmake and gprbuild is the standard and should be documented comfignat is not
(yet).
> > > A macro named GNAT_add_rpath can be defined in spec files to allow a
> > > runpath to be added, for example in test suites or auxiliary
> > > programs that aren't installed but run during the build. This
> > > should also be explained in the Ada guidelines.
> >
> > Is it really needed? We can use LD_LIBRARY_PATH in the %check
> > section to make it. For example matreshka works fine with it.
>
> You can do it that way if it works for you. The GNAT_add_rpath
> mechanism is there if you need it. Setting LD_LIBRARY_PATH to
> "%{buildroot}/%{_libdir}" is reasonably clean. templates_parser.spec does
> «LD_LIBRARY_PATH="`pwd`/.build/native/release/relocatable/lib/" make doc».
> In that case the spec file must know the internal structure of the
> build directory just to work around a problem that Gnatmake_optflags
The maintainer must know the structure of the build directory anyway.
> has introduced, which is a bit messy. GNAT_add_rpath would be a cleaner
> solution there.
It's not a problem that Gnatmake_optflags has introduced. It's the policy [1]
In you case maintainer must use chrpath to remove Rpath in $install section
and this is last resort[1].
>
> Björn Persson
--
Pavel
[1] http://fedoraproject.org/wiki/Packaging:Guidelines#Beware_of_Rpath
More information about the Ada
mailing list