Hi, I'm [https://bugzilla.redhat.com/show_bug.cgi?id=sbt-package packaging sbt], the simple build tool for Scala, and it requires itself to compile. The upstream sbt binaries depend on other libraries that, in turn, depend on sbt to build. The upstream binaries also depend on Apache Ivy 2.3.0-rc1, which is source- and binary-incompatible with Apache Ivy 2.3.0 (as shipped in recent Fedoras).
I would like a bundling exception so that I could use the upstream sbt binaries (and their sbt-dependent or Fedora-incompatible dependencies) to build a sbt binary for Fedora. My build is patched to work with the current Ivy release and eliminate parts of the sbt build and test process that introduce circular dependencies. (All non-Fedora-specific patches are upstream, just not released yet. More details on sbt's build process as it relates to Fedora are available: https://fedoraproject.org/wiki/SIGs/bigdata/packaging/Scala and http://chapeau.freevariable.com/2013/08/making-fedora-a-better-place-for-scala.html .)
Such a bundling exception would be the most convenient way to proceed, but I could also use upstream binaries to produce a sbt binary with my modifications and bundle that in a bootstrap package if that would be more appropriate.
Thanks for your consideration!
Some clarifications after discussing this in the FPC meeting:
I'll plan on using the upstream binaries (and not binaries bootstrapped from upstream binaries) as bootstrap binaries in order to get repeatable and auditable builds.
I think this is complete enough to vote in ticket.
+1 to an ongoing bootstrapping exception for me.
We generally allow one-time bootstrapping using: https://fedoraproject.org/wiki/Packaging:Guidelines#Exceptions
I believe we've occasionally allowed ongoing bootstrapping in the past (where the bootstrap phase is needed because of a new, incompatible, upstream release) but I didn't find any specific instances (those instances would have pre-dated approving the current policy). The clarifications in https://fedorahosted.org/fpc/ticket/389#comment:1 satisfy me that every effort will be made to do one-time bootstrapping but that ongoing bootstrapping when upstream updates to a new major version would be acceptable in cases where the package maintainer can't get the new version to build with the old one. The reporter understands that the packages that ship in the yum repos cannot contain the bootstrap binaries but must have been rebuilt once the bootstrap has completed.
Bootstrapping from upstream binaries would be turned on only when an incompatibility prevents rebuilding from previous Fedora packages.
+1 for an ongoing bootstrapping exception.
Is there anything else I need to do before I can build sbt, or is the fact that this was voted on in the FPC meeting (http://meetbot.fedoraproject.org/fedora-meeting-1/2014-02-13/fpc.2014-02-13-17.00.html) sufficient?
As this is a bootstrapping exception, there won't be a need for a virtual Provide. You have been approved to go ahead with building this package using a bundled sbt for bootstrapping purposes.
to comment on this ticket.