Re: Ada guidelines changes for Comfignat and runpaths

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Pavel Zhukov wrote:
> 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). 

I'm not sure I understand what you're trying to say here. Do you mean
that it's okay to use Comfignat_make but it should be undocumented?
That's actually forbidden by the current policy which says that either
Gnatmake_optflags or GPRbuild_optflags must be used. Or do you mean that
you want Comfignat_make to remain forbidden?

Yes, Matreshka has its own build system and AWS has its own. Every Ada
package has its own custom build system (except for those that have no
build system at all and leave it to the users to compile the source
code as they see fit). Each one has its own names for options variables
and directory variables, and most are inflexible and have to be hacked
to support Fedora's packaging standards. This slows us packagers down
and leads to packaging bugs – like the missing optflags in Matreshka
that you just fixed. I've had to wrestle a lot with GTKada's build
system even though it uses Autoconf. I'm trying to improve the situation
by establishing some conventions and a build system foundation that
helps developers follow the conventions.

It's true that Comfignat isn't popular yet. It's only been four months
since I released the first version. So how many Comfignat-using
packages do you think there should be before it's worthy of a macro?

> > 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. 

Information hiding is important to keep software maintainable. The code
in one module should only use the APIs of other modules and not depend
on their internals, even though the programmer often knows the
internals of all the modules.

Now, makefiles don't usually have very well-defined APIs, but we can try
not to make it worse.

> In you case maintainer must use chrpath to remove Rpath in
> $install section and this is last resort[1]. 

The example programs in Templates Parser's manual are never installed.
They are compiled and run during the build, and their output is
included in the manual along with the input and the source code, but
the compiled programs exist only in the build directory. There's no
need to use chrpath on them. It's the same with test suites. It's not a
problem if they have runpaths because they aren't included in the built
packages.

Björn Persson

Attachment: signature.asc
Description: PGP signature

--
packaging mailing list
packaging@xxxxxxxxxxxxxxxxxxxxxxx
https://admin.fedoraproject.org/mailman/listinfo/packaging

[Index of Archives]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite Forum]     [KDE Users]

  Powered by Linux