On Saturday, October 27, 2012 12:25 AM, Sourav Basu wrote:
I came up with a few more checks that I couldn't understand. Hope
someone can help me out.
*Package is not relocatable.(all i could find about it from wikis is
that its strongly discouraged)
The guidelines explain why this is discouraged:
But indeed they don't explain what a relocatable package is.
However, a quick search on your favorite search engine for the words «
Linux relocatable » leads to this page:
Which I believe makes it clearer.
*Useful -debuginfo package or justification otherwise.
To understand that you will need to understand how binaries work on Linux.
First, this only applies to packages containing binaries, i.e when the
source code gets actually compiled.
When building with GCC, you can build with the optional argument `-g`.
This adds all the debugging informations to the binary. THat's very
useful for developers, as it helps locating the part of the program
which is misbehaving. So Fedora packages are always built with that option.
But that makes a bigger binary, which can have an impact on the
performance of the program at run time. The debugging informations are
only used in **some** cases (when needing to debug the program), so the
idea is to avoid having a negative impact on **all** users of the program.
So the debug informations are « stripped » from the binary, and put in a
separate -debuginfo package. (this is done automatically by rpmbuild)
This package must contain the correct files to help developers debug the
program. It must not be empty, and the spec file must not contain any
directive telling rpmbuild to not build the -debuginfo subpackage...
... Or, the packager must justify why they are disabling the -debuginfo
subpackage, with a comment in the spec file. Because sometimes,
disabling it is the only option.
*If the source package does not include license text(s) as a separate
from upstream, the packager SHOULD query upstream to include it.
What is unclear about that?
The source code that is being packaged must be in a Free/Open Source
license acceptable for Fedora:
When you download a source tarball, you need to be able to tell what the
Usually, the author will indicate that in the README, or in a header for
each source code file.
The best practice (I think it might even be a requirement for the GPL)
is to also include a file, containing the full text of the license. This
file is usually called COPYING or LICENSE.
Fedora prefers this file to be included in every source package.
However, because this is a legal matter, only upstream should add this
file. The Fedora packager MUST NOT add the file themselves. Instead,
they SHOULD ask upstream to add the file to their source tarball.
Also I wanted to ask that is it necessary that the package has to be
valid on every SHOULD item?
Well, they are SHOULD, not MUST.
The meanings of the words SHOULD and MUST are even explained on the
relevant wiki page:
All in all, it seems to me (and accept my apologies if that is not the
case) that you might lack some more basic knowledge about the workings
of Linux and/or how binaries are built and linked. Fortunately, every
knowledge can be learnt. :)
I would strongly suggest that you try and understand a bit more about
these things. Maybe try writing a simple « hello world » in C, and
compile it. Try understanding some `gcc` options like `-g`, `-l`
(lower-case L) or `-I` (upper-case i). Try understanding the basics of
This will all help make much more sense of the packaging guidelines, and
especially why they are this way.
And of course, continue asking specific questions when in doubt! :)
However, the questions you asked above are IMHO much more suited to the