Re: [Guidelines Change] Changes to the Packaging Guidelines

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

 



Tom Callaway wrote:
> The Naming Guidelines for python modules has been updated to remove the
> exception for packages which have a "py" prefix in the upstream name.
> This change comes at a time when python2 and python3 modules are
> commonly built from the same package and all python3 modules are
> required to have a "python3" in their name. This change makes it easier
> for users to identify that the python3-foo module is part of the
> python-foo package for filing bugs and searching for the python3 version
> of a package they use in python2.

IMHO this is really unhelpful. What is next, are we going to adopt that
silly "lib*" naming policy/requirement for libraries next? I sure hope not.

Everyone knows PyQt4 as PyQt4, not python-qt4 or the impressively redundant
python-PyQt4. The naming rules for the Python 3 version should have been
relaxed instead, allowing something like Py3Qt4 or PyQt4-python3.

> The prohibition against packages installing files into /bin, /sbin,
> /lib, and /lib4 has been removed and a section explaining how Fedora's
> UsrMove? feature interacts with the rpm %files section has been added.
> Packagers who maintain software that installs into /bin, /sbin, /lib,
> and /lib64 historically or in upstream are encouraged to read that
> section to understand what's best for their package: ​
> 
> https://fedoraproject.org/wiki/Packaging:Guidelines#Effect_of_the_UsrMove_Fedora_Feature

Together with:
http://akozumpl.github.io/dnf/cli_vs_yum.html#dnf-provides-bin-file-does-not-find-any-packages-on-fedora
doesn't that mean that users will have to run BOTH:
dnf provides /usr/bin/foo
AND
dnf provides /bin/foo
to check what package owns that particular file? That strikes me as
extremely user-unfriendly.

> Added an additional allowed use of Conflicts to the packaging guidelines
> on Conflicts. This usage is for a package which is split into multiple
> packages with files that may conflict with files in the older version of
> the base package. See the Conflicts Guidelines if you think you may be
> able to make use of this:
> 
> ​https://fedoraproject.org/wiki/Packaging:Conflicts#Splitting_Packages

The use of <= (resp. > for the Requires part) there is very problematic in
the presence of disttags (Conflicts: foo <= 1.2.3-4 does NOT match
1.2.3-4.fc21) or also in the case of stable branches
(Conflicts: kdefoo <= 4.12.4 and then KDE releases kdefoo-4.12.5). IMHO,
this should be amended to use < (resp. >=) versioning
(Conflicts: foo < 1.2.3-5 resp. Conflicts: kdefoo < 4.12.80, for most other
upstreams you'd even use < 4.13).

> A method of handling noarch packages which have dependencies that are
> not present on some architectures was made official. ​
> https://fedoraproject.org/wiki/Packaging:Guidelines#Noarch_with_unported_dependencies
> 
> 
> These methods are a change from the common practice in, for instance,
> node.js packaging. Packagers should think about updating their packages
> to the new guidelines as they make other updates.
> 
> Please see ​https://fedorahosted.org/fpc/ticket/355#comment:8 or the
> meeting log for that date if you want more information than is in the
> Guidelines. The possibility of enhancing rpm or koji to deal with this
> in a better manner is being looked into by the packaging-team and
> rel-eng. When those features eventually are available to Fedora, we'll
> update the Guidelines to take advantage of them.

Hmmm, I know I'm late to the discussion (and I hadn't thought of it when the
discussion first came up) couldn't we use something like this
(foo-dummymain.spec):

Name: foo-dummymain
ExclusiveArch: %{ix86}
…
# the actual noarch package built as a noarch subpackage:
%package -n foo
BuildArch: noarch
…
%files
# empty list so that foo-dummymain does not get generated
%files -n foo
# the actual file list

? That should give us the best of both worlds.

> Changes to python-setuptools in F20 cause easy_install to install egg
> files instead of egg directories by default. This sometimes causes
> problems for rpms of multi-version python modules as the egg filenames
> are the same if the version of the package hasn't been increased and rpm
> is unable to replace the directory with a file. To fix this, the ​
> https://fedoraproject.org/wiki/Packaging:Python_Eggs#Multiple_Versions
> guideline has been updated to pass the "-Z" switch to easy_install which
> restores the former behaviour of installing eggs as a directory.
> 
> If you package a backwards or forwards compat python module that makes
> use of the Multiple_Versions guideline (or easy_install in some other
> way), please update your spec file to include the -Z switch.

Couldn't we %pretrans-hack that?

And with all the issues this and the related symlink problem have caused,
IMHO, it's really time to fix RPM to support these cases without hacks!

        Kevin Kofler

-- 
devel mailing list
devel@xxxxxxxxxxxxxxxxxxxxxxx
https://admin.fedoraproject.org/mailman/listinfo/devel
Fedora Code of Conduct: http://fedoraproject.org/code-of-conduct





[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Fedora Announce]     [Fedora Kernel]     [Fedora Testing]     [Fedora Formulas]     [Fedora PHP Devel]     [Kernel Development]     [Fedora Legacy]     [Fedora Maintainers]     [Fedora Desktop]     [PAM]     [Red Hat Development]     [Gimp]     [Yosemite News]
  Powered by Linux