#5894: git branches for SCL packages
Fedora Release Engineering
rel-eng at fedoraproject.org
Mon May 5 18:25:07 UTC 2014
#5894: git branches for SCL packages
------------------------------+-----------------------
Reporter: mmaslano | Owner: rel-eng@…
Type: task | Status: new
Milestone: Fedora 21 Alpha | Component: git
Resolution: | Keywords:
Blocked By: | Blocking:
------------------------------+-----------------------
Comment (by toshio):
@mattdm: A FAD is a fine idea. There have been FADs for packaging of many
sets of packages. (The CMS that docs was looking at using, the Merge
Review FAD that dgilmore is presently looking at doing, etc).
The re-review for rename is a good example. You can take it as a lower
boundary on changes that require a new review. (there could be an even
lower boundary -- but none has ever been presented to fesco). There are
many more changes needed to create an scl version of a package than the
changes to create a package rename. More of those changes are totally new
to the package maintainer (for a rename, the only change that they likely
haven't encountered before is the Obsoletes/Provides additions. For SCLs,
there are many things not encountered outside of SCL packaging. For
example, Addition of %_scl_prefix, filtering of autoprovides and
autorequires, manual specification of dependencies on things that rpm
autodeps would pick up in a non-scl package, changes to the install dir
macros and when to use the %root_*dir macros instead of the scl overridden
ones.)
The effect of failure is also slightly higher here than in the rename
case. When a package rename does obsoletes and provides wrong it
generally means that the renamed package fails to remove the pre-rename
version of that package. In many cases, the end users' systems continue
to function in that case but the package in question stays at the old
version until someone realizes the provides and obsoletes need to be
adjusted. For SCLs, getting things wrong means that the SCL could replace
a system package or a system package could replace an SCL. Either one
will lead to breakage of apps which depend on the other version of that
package.
Other examples that we could take a look at in increasing order of
difference from the already reviewed package are:
* parallel installable packages: (python3, gtk2/gtk3, python-mako0.4)
these currently undergo new package review.
* mingw packages: these currently undergo new package review. This is
also the most comparable to what SCLs do so we likely would want to
revisit whether reviews are needed for parallel installable and mingw
packages if we say that reviews are not needed for SCLs.
* Forks of existing packages: (libreoffice, icecat, etc) these currently
undergo new package review. In some cases, the forks remain very close to
what we previously had. In other cases they quickly diverge.
As for fesco ticket -- I'm not sure -- it's in the grey area between FPC
and FESCo. I think it's probably a "what to package" question rather than
a "how to package" question so it probably belongs to fesco. However, FPC
has been assuming that the packages would undergo new package review as
normal (we've talked about which things in the guidelines would belong
with reviewing of the SCL for approval vs which things would belong in the
review of the packages themselves) so we might want to have a
recommendation from the FPC. From previous discussions close to the
topic, though, I think they're likely to recommend that the packages
undergo new package review.
@pfrields: Having created SCLs, the differences between the non-SCL and
the SCL packages are non-trivial and prone to errors. Someone fluent in
creating non-SCL packages will have to learn a large amount of new
information in order to create a proper SCL. Two separate python modules
have spec files that are more similar than an SCL and non-SCL version of
the same and the knowledge that applies to one python module will carry
over to the other python module whereas the knowledge of how to create an
SCL is in addition to the knowledge needed to create the python module.
The license, checksums, and other factors do change as well. Just last
month people on devel list were complaining that packages don't get
reviewed once they are built. New upstream releases are just as likely to
introduce changes that break licensing, require new dependencies, For
SCLs we're very deliberately shipping separate upstream versions of
software to our users. Different build dependencies, different build
flags, different included files, different installed files, or even
different build scripts will come into play with these different versions.
Since we already need to review the packages for the changes that being an
SCL introduces, we will also be able to review to catch these issues as
well.
The example SCL in the documentation is a simplistic case (it's also
wrong. The less.sh and less.csh files are configuring bash, not less.
Therefore they have to be renamed and placed in
%{_root_sysconfdir}/profile.d/ rather than in the SCL's private
%{_sysconfdir}. The example also doesn't make clear that the code inside
of less.sh and less.csh has to be modified from the non-SCL package [If
you take a look at /etc/profile.d/less.sh on your system, you'll see that
it hardcodes /usr/bin/lesspipe.sh and sets an env variable. The SCL
version would need to detect the lesspipe from the SCL. There would have
to be some thought put into how to handle the env variable. Perhaps, the
upstream code would have to be patched to use a different env var.
Perhaps the env var could be set to lesspipe without a full path (so that
if the user scl enabled the less SCL then they would get the SCL lesspipe,
otherwise they would get the non-scl lesspipe) See why SCL packages should
get reviewed? ;-) Here's a diff between an scl and non-scl version of
python2.4 to show some of the other issues that could arise with SCLs:
http://toshio.fedorapeople.org/scls/python-scl.diff
--
Ticket URL: <https://fedorahosted.org/rel-eng/ticket/5894#comment:17>
Fedora Release Engineering <http://fedorahosted.org/rel-eng>
Release Engineering for the Fedora Project
More information about the rel-eng
mailing list