On Sunday, March 20, 2016 at 3:05:25 AM UTC-7, Henri Sivonen wrote:
> On Fri, Mar 18, 2016 at 6:45 PM, Mike Hommey <m...@glandium.org> wrote:
> > On Fri, Mar 18, 2016 at 05:23:21PM +0200, Henri Sivonen wrote:
> >> You say you don't see #5 happening. Do you see #4 happening? If not,
> >> what do you see happening?
> >
> > At this point, I'm wondering if the best outcome wouldn't be 6) Distros
> > die. I'm almost not joking.
> 
> Non-jokingly, though, what resolution do you see?
> 
> >> Looking at 
> >> https://www.debian.org/releases/stable/amd64/release-notes/ch-information.en.html#browser-security
> >> , it seems that Debian users get a more up-to-date Blink than Gecko.
> >> If that policy is any indication, if ESR didn't exist, Gecko would get
> >> the same deal as Blink... In other words, it looks like Debian
> >> penalizes Gecko relative to Blink because ESR exists. :-(
> >
> > Well, at some point Blink wasn't even in stable. I'm actually surprised
> > that it is now.
> 
> The key thing is that it is now and updating it in a way that's an
> exception to Debian's general policy is now itself stated policy. So
> Debian has explicitly granted our main competitor the sort of policy
> exception that would be the best suited to resolving the problem at
> hand arising from Debian policy.
> 
> How do we get for rustc (as a build dependency of Firefox) the sort of
> policy exception that our main competitor already got?
> 
> > But as a matter of fact, Debian's old stable is not
> > receiving Blink/Chromium updates (it's stuck on 37), while it receives
> > updates for Iceweasel (it has 38.7 as or writing, will receive 38.8, and
> > 45.2 after that)
> 
> It appears that 45 ESR compiles with the GCC version that's in
> oldstable. What would have happened if that wasn't the case? What's
> the plan if during the support cycle of the current stable the next
> ESR doesn't build with the GCC version that shipped in current stable?
> 
> The comments on https://bugzilla.mozilla.org/show_bug.cgi?id=1175546
> suggest that Mozilla deferred relying on GCC bug fixes until after 45
> ESR in order for Debian not to have to backport a compiler for
> oldstable. Is that the case? That is, is Debian's policy already
> hindering Mozilla's ability to avoid C++ compiler bugs that the
> compiler upstream has fixed?
> 
> >> On Fri, Mar 18, 2016 at 1:01 PM, Sylvestre Ledru <sle...@mozilla.com> 
> >> wrote:
> >> > One dirty solution would be to ship rustc+llvm sources into Firefox 
> >> > sources when targeting stable distros.
> >> > But this increases the load on the maintainers by an order of magnitude 
> >> > (maintainers will have to manage rust & llvm)
> >> > and might not work if llvm starts requiring a more recent of gcc to 
> >> > build.
> >>
> >> Surely llvm can be built with clang, so you could include not only the
> >> source of every rustc release since Debian's freeze but the source
> >> code of every llvm and clang release since Debian's freeze... Except
> >> then you'd need a policy exception for the anti-bundling policy. If
> >> you need *some* policy exception no matter what, surely going for the
> >> most sensible exception (letting both the Firefox package and the
> >> rustc package update every six weeks within the LTS cycle) would make
> >> the most sense.
> >
> > A 6GB source tarball, for a build taking 200 hours just for one
> > architecture (I'm making up numbers, but I'm probably in the right
> > ballpark). Times 10 supported architectures. You'd better not have a
> > one-liner patch to apply on top of that.
> 
> Right. That would be an absurd outcome caused by Debian's policy. So
> how do we go about getting a policy exception to avoid absurdity?
> 
> > Note that this is why Blink/Chromium can get away with very frequent updates
> > in stable and not Iceweasel/Firefox:
> >
> > $ grep-dctrl -sPackage -FDepends chromium --and --not -FSource 
> > chromium-browser 
> > /var/lib/apt/lists/ftp.jp.debian.org_debian_dists_jessie_main_binary-amd64_Packages
> > | wc -l
> > 2
> >
> > (one is http://chromium-bsu.sourceforge.net/, the other is mozplugger,
> > which... sounds like a mistake... I think it's an NPAPI plugin)
> >
> >
> > $ grep-dctrl -sPackage -FDepends iceweasel --and --not -FSource iceweasel 
> > /var/lib/apt/lists/ftp.jp.debian.org_debian_dists_jessie_main_binary-amd64_Packages
> > | wc -l
> > 64
> 
> Are the dependent packages Firefox extensions? Now that Debian has
> already accepted upgrading to the next ESR during the lifecycle of
> stable, how are those dependent packages expected to survive that
> upgrade without being themselves updated?
> 
> On Fri, Mar 18, 2016 at 9:05 PM,  <bander...@mozilla.com> wrote:
> > One could similarly make distro packages of rustc specifically for building 
> > firefox (called 'rustc-fx' for example), and put them on the same ESR 
> > upgrade schedule as Firefox.
> 
> This is the approach Ubuntu takes with GCC in order rapid-release
> (non-ESR) Firefox for Ubuntu LTS.
> 
> > As another idea: Rust could maintain an LTS branch designed to be upgraded 
> > in conjunction with Firefox, that both keeps the language on a stable 
> > revision while also exposing backported features that Firefox needs in a 
> > controlled way. So Firefox would commit to being on e.g. 1.12 for 3 years, 
> > but could import 'future' features. Then LTS distros would put rustc LTS 
> > point releases on the same upgrade schedule as Firefox ESR upgrades.
> >
> > For Firefox this would require a lot of discipline. For Rust it would be a 
> > massive challenge coming up with a maintainable scheme. I'm actually 
> > thinking Rust could support multiple language revisions with a single 
> > compiler in a way that would allow old revisions to receive continual 
> > bugfixes and integrate 'future' features; and that would be reliable enough 
> > that LTS distros could make major version bumps to rustc alongside Firefox 
> > while still deploying the language revision compatible with their LTS. 
> > Difficult and crazy.
> 
> Indeed difficult and crazy. Moreover, this would mean that Debian
> policy would inflict a significant negative externality borne by Gecko
> developers and Firefox's competitiveness in the sense of Gecko being
> unable to benefit from Rust improvements and improvements to the crate
> ecosystem in a timely fashion. In order to be able to allocate
> resources into Gecko's competitiveness, I think Gecko developers must
> refuse to bear the cost of Debian policy like this. Even Windows XP
> doesn't inflict this kind of hindrance on us.
> 
> I think the Mozilla-side discipline should be limited to:
>  1) (The Rust parts of) Firefox on the release channel compiling with
> the then-current stable channel rustc and Rust standard library.
>  2) Stable channel rustc being able to compile its corresponding
> standard library.
>  3) Stable channel rustc being able to compile itself.
>  4) Stable channel rustc being able to be compiled with the previous
> stable channel rustc.
> 
> Extra cost arising from distro policies should be internalized by the
> distros. Mike already said that internalizing the cost of Debian's
> policy in the case of (Rustless) Firefox is intractable. Especially in
> the light of the policy exception Debian has for Chromium, the
> reasonable conclusion is that Debian should grant such an exception to
> Firefox + rustc.
> 
> On Sat, Mar 19, 2016 at 2:27 PM,  <cosinusoida...@gmail.com> wrote:
> > On Thursday, 17 March 2016 12:23:32 UTC, Henri Sivonen  wrote:
> >> (rustc originally bootstrapped with OCaml, but
> >> building the whole history of Rust from the OCaml days to present
> >> every time Fedora builds Firefox seems excessively impractical.)
> >
> > Out of interest, would that actually involve building every single Linux 
> > snapshot from 
> > https://github.com/rust-lang/rust/blob/master/src/snapshots.txt in 
> > sequence? All 319 of them?
> 
> Presumably, yes, if you want to bootstrap from OCaml. Maybe you could
> skip some snapshots, but you don't know which ones in advance.
> Fortunately, e.g. the Fedora policy doesn't require bootstrapping all
> the way from OCaml.
> 
> On Sun, Mar 20, 2016 at 6:18 AM, Cameron Kaiser <ckai...@floodgap.com> wrote:
> > And are those the steps you'd actually have to take to bring Rust up from
> > scratch on a new platform?
> 
> That's the definition of "from scratch", isn't it? But ignoring that:
> No, unless you want to go full-tinfoil against the Trusting Trust
> attack and chances are you didn't do that with GCC, either.
> 
> Realistically, the way to bring up Rust on a new platform is to
> cross-compile on an existing platform. I'm guessing that you are
> thinking of OS X 10.4 on (32-bit big-endian) PowerPC. OS X 10.7+ on
> x86 and x86_64 is a tier-1 Rust platform and Linux on 32-bit
> big-endian PowerPC is a tier-3 Rust platform, so the basic ingredients
> are roughly there. The main obstacle will probably be the same as with
> OS X 10.6: thread-local storage.

I'm surprised to hear that *10.4* is still expected to work. The oldest version 
I've heard Rust needed to support is 10.6.

Any any case, Rust is trying to build more and more binaries, to alleviate 
cross-compilation bootstrapping burden. We've got netbsd, freebsd, and arm 
linux compilers coming online soon. If more OS X support is needed from Rust we 
can build more OS X compilers.



> 
> AFAICT, you need approximately:
>  1) A host running OS X 10.7 or later on x86 or x86_64.
>  2) The PPC 10.4 SDK loaded onto that host to have the right PPC libc
> and pthreads libraries to link with.
>  3) A GCC build that runs on x86/x86_64 but can compile and link targeting 
> PPC.
>  4) Figure out how to disable thread-local storage given that
> according to https://github.com/rust-lang/rust/issues/32047 the old
> configuration option no longer works.
>  5) Follow a cross-compilation guide such as
> https://github.com/Ogeon/rust-on-raspberry-pi/blob/master/MANUAL.md
> but substituting the OS X 10.4 SDK and PPC-targeting GCC stuff in
> place of the Linaro stuff and powerpc-apple-darwin as the target
> triple.
>  6) Fix whatever doesn't work...
> 
> -- 
> Henri Sivonen
> hsivo...@hsivonen.fi
> https://hsivonen.fi/

_______________________________________________
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform

Reply via email to