Open OlgaTPark opened 6 years ago
The fork Riccardo is working on is also an Intel build. Based on our previous conversation, I didn't inform him of your work. If you want, I can connect you both together.
As far as the second idea, I'm not opposed in theory, but I'd need to see a diff before saying okay, of course. Whatever you do should still keep the PPC/gcc
4.8 configuration as the "baseline." I'd prefer to accept this once FPR6 is live (around March 12).
So I'm not alone anymore… As I said, if Riccardo wants help (at least what I could provide) he could freely ask me. I could also send you a contact e-mail address, if you want.
I'll try to upload (later) some diffs for what I did to the build toolchain…
@rmottola See comments above, if you're interested in collabourating.
my "fork" tries to be an as-close-as-possibile Intel build of TenFourFox. Right now I am duplicating the same toolchain on 10.5/Intel. If feasible, I maintain my fork only as staging area, for continuous pullable requests as well as to share code with other people helping out. In the future I want to explore moving beyond gcc 4.8 (either with gcc or clang or even trying both, but starting as close as possible with head is useful. The current status of my project is: 99% (except one glitch) build, font-endiannes are fixed and the application starts. Most of these changes are pulled in, some are ready to be. The big issue is currently breakage of the JavaScript engine.
On my side, I'm working on an Intel build for Mac OS X 10.5 (principally) and 10.6 (and they run but I didn't published yet all changes I made to TenFourFox source code). It's build with Clang (Xcode 4.6.3) on Mac OS X 10.8.
For JavaScript, you can see (and freely use): https://github.com/OlgaTPark/tenfourfox/commit/ecb899273b5d8759d73a4f6b7f3fdecc1cc39e99 (And in particular, the explosive file: https://github.com/OlgaTPark/tenfourfox/commit/ecb899273b5d8759d73a4f6b7f3fdecc1cc39e99#diff-9ee5c9b147cebb05dd71337ed1207b9f) (Please note that I compared unchanged Firefox source code files against TenFourFox ones and reverted everything who seemed to be PowerPC-specific. The JIT in my build works very well on 10.5.) I hope this could help you!
Concerning an 10.4 Intel version, I tried to build it last week-end but I've got a strange linker bug…
I am working on 10.5 with 10.4 as a target, 32bit. From there I plan to work up, but I want to be as close as possible to Cameron, maybe then work upwards. If you keep up-to-date with master, you might already get some "fixes"
the changes to CodeGenerator scare me, can we discuss them? The rest of changes I 99% have them written with slightly different #ifdef's and do not have good (nor bad) effects on the tests
As I said, I just reverted with #ifdef
's most of the changes made to TenFourFox to match the original Firefox's source code. (More info on my methodology here.)
In fact, I nearly understand nothing to what's happens in this complicated source code but I supposed that all changes were PowerPC-specific (but I tried to document what I understood).
The "nitric acid" change is just to avoid a crash (who could happens in less than one minute when the JIT is enabled). Simply, if https://github.com/OlgaTPark/tenfourfox/blob/ecb899273b5d8759d73a4f6b7f3fdecc1cc39e99/js/src/jit/CodeGenerator.cpp#L3737 is called before the end of CodeGenerator::emitAllocateSpaceForApply
, the JIT crashes (that's explains my bad joke about chemistry).
I don't know if this answers you question or if you want more information ?
Some new questions:
MOZ_PLUGINS
define but adds questions about localizations. I don't know if I have to leave your plugins-specific strings as they are and update release notes accordingly or if I have to revert/add the old mozilla ones. This is particularly problematic since I'm still working on an old version and old non-updated langpacks could break down. Can I suggest to add a new string in /toolkit/locales/en-US/chrome/mozapps/extensions/extensions.dtd and /toolkit/locales/en-US/chrome/pluginproblem/pluginproblem.dtd that is intended for TenSixFox with plugins support and who will be included in langpacks for TenFourFox versions with and without plugins support, then use some conditional macros who will do the remainder in xul
files (so that, each TenFourFox variant will be langpack-independent)?Dunno about font BE tags. Whatever works for you guys that doesn't break PPC is fine with me.
For plugins, couldn't you just make your own "TenSixFox" DTD and reference that? That way our localizers don't have to worry about it. You can conditionally compile it or something.
@OlgaTPark Fonts display correctly in my fork. Several fixes have been already pulled in by Cameron, the last one being being pending in my last pull request. I cannot "USE" ttf but through navigating certain links, I can prove that text is correctly displayed. Maybe you should try to update. I don't know about pluings and other things. As you noticed I fixed some minor warnings, but my first goal is to reproduce a 1:1 TenFourFox version on intel. Any "enhancements" I will do later, otherwise too many things change at one. Currently TTF/Intel is not usable for me.
For the plugin DTD, I could use conditional compilation in order to switch between TenFourFox|Firefox strings in function of the MOZ_PLUGINS
macro but this is particularly dirty and fixes nothing if a new translation is installed…
The good way to install translations is particularly tricky since I'm modifying too many things:
.jar
files. Fortunately, installing localization files who aren't bundled into a .jar
works;
.manifest
files who have to be modified since the installer installs a manifest for non-jar-bundled resources;firefox.js
) since I also made modifications in it;I have two solutions in mind:
chrome.manifest
and firefox.js
files) and remove chrome.manifest
files and firefox.js
from the installation tarball. I join with this message the diffs I made to this script and successfully tested on 10.4.9 Server (emulated in VirtualBox 3.2.12 — building TFX for 10.4 now works for me), 10.5.8 and 10.8.5. If you want, I can re-package myself all langpack installers with the modifications I said;.dtd
file and bundle it for all languages in TenSixFox;Of course, we do not need to achieve this ASAP since I'm really slow and many of my changes are debatable…
@OlgaTPark I see you have an official release. Okay to post about it on the TenFourFox blog?
(Okay, you broke my plans, I was ready to put a comment on it when I saw you were faster than me!)
Hello,
No, I haven't ran out-of-business, I'm just getting slower thant ever!
The good news of the day is that I'm releasing my first builds of TenFourFox. My builds are available here. As promised, there's a build for Tiger (named TenFourFox
), for Leopard (named TenFiveFox
) and for Snow Leopard up to Mountain Lion (named TenSixFox
). Differences are explained here (I mainly have re-enabled some features that were disabled due to incompatibilites with older OSes). In particular, I have re-enabled hardware acceleration and 64-bit support on TenSixFox and, on TenFiveFox, WebRTC screen capture, native themes and H264 playback with FFmpeg (this insane feature is made possible by some hacking to the way FFmpeg is loaded by Firefox - feel free to copy it in your tree).
I also wrote some documentation about my variant of TenFourFox and translations are already bundled into the browser (so, I do not enter in conflict with your translations).
Unfortunately, this build is still based on the old TenFourFox 45.9 but the (my) adventure doesn't end here (maybe, after a few centuries millenaries, when I'll release the FPR1). You can freely inforn the world that my builds are available but they are provided as is and without any support (not before being up-to-date with your version).
Concerning a possible merge, I don't think I'll make it because I cannot prove that my modifications won't brick something on PowerPC. If someone can prove it doesn't break the PowerPC version he (or she) could negociate a merge with the main repository.
And, also, feel free to correct my orthographical mistakes or I'll never forgive myself about it! ;-)
Anyway, good continuation with TenFourFox and happy new year 2019 (with some delays, as usual with mel).
I pondered this for a couple days. Ordinarily I would ask that forks use a different name if their functionality is different (I can't demand this legally, but I usually ask so that I don't get spurious support requests). However, I'm just going to go with the same name here since it's hopefully well-known by now that no Intel version of TenFourFox is supported by me.
I'm going to cherry pick your correctness fix for minimp3
and I think the scheme you have is workable enough to go into mainline TenFourFox. Does the Enabler have a Tiger-compatible version?
Here's the blog post, for your reference: https://tenfourfox.blogspot.com/2019/03/another-choice-for-intel-tenfourfox.html
Thank you for your help and support with this Intel fork.
About FFmpeg Enabler, I tried to build it with ppc
+x86
+x64
support in the case you would like to use it too. Unfortunately, my build never succeeded to play H264 content with it on Mac OS X 10.4.9 Server in emulator (but it works on 10.5) — I can't explain why and the toolchain got crazy when I tried to build FFmpeg with the 10.4 SDK.
As my wiki says, FFmpeg dylib
s aren't bundled into the browser due to license concerns but it could be bundled into the browser for release (and this should be easier for users — but it's just an idea).
Anyway, happy browsing with TenFourFork !
Okay, I tried putting the integration into 10.4Fx. It compiles, but it won't load the dylibs. Some debugging with dlerror()
shows that you have a dependency on a later version of libiconv.2.dylib
than the one Tiger provides. This jibes with some passing reports I got that the FFmpeg Enabler doesn't do anything against your 10.4-compatible browser.
The libiconv
built by MacPorts is compatible, but I couldn't use change_name_tool
to monkeypatch your libraries to use a copy of that library instead because you apparently built FFmpeg on a later OS X, even when I thin them to just ppc7400
(it barfs on the load commands).
How do you want to handle this?
I could upload the PPC libiconv
that I know works with Tiger, but I don't have an x86 or x86_64 one.
Actually, I changed my mind here. I was able to get both 2.8 and 3.4 to compile on 10.4 PPC with full AltiVec under Xcode 2.5 (3.4 required a tiny tweak to one of the vectorizers). These work and I verified no dependencies other than system dylibs. 3.4 seems to perform a little better especially on Vimeo which has high bandwidth movies, so I'm going to use libavcodec.57.dylib
instead of your 56. I also stripped them down to remove networking, not build unused libraries and disable their VP8/VP9 decoder in lieu of the faster custom AltiVec libvpx
we use. So I'll distribute sets of these libraries separately built for 7400, 7450, G5 and maybe G3 if I'm feeling masochistic. Still, the comment above is why yours don't work on 10.4.9, and it looks like FFmpeg will work just fine with the old libiconv
on Tiger if you can build it on a Tiger system.
On my side, I spent my whole day trying to rebuild FFmpeg on 10.5 for 10.4. I found a way to link it against the libiconv
version furnished with the MacOSX10.4u.sdk
but it then fails to link due to 404-not-found$UNIX2003-symbols (argh)!
I tried various ways to counter that (#define __DARWIN_UNIX03 0
, trying to build with 10.4 SDK with -sysroot
(stuck on not found float.h due to an #include_next <float.h>
inside float.h or try to link with crt1.10.5.o
who isn't in 10.4 SDK), -alias _close _close$UNIX2003
or even -L/Developer/SDKs/MacOSX10.4u.sdk/usr/lib
and -I/Developer/SDKs/MacOSX10.4u.sdk/usr/include
) and none of those evil-and-dirty hacks worked. So, the toolchain hates me!
Anyway, I'm happy to see that it works for you (so now, I can go to sleep)!
Struggling with the toolchain: round 2.
I tried another way to be able to link FFmpeg libraries which can be loader on Tiger. The trick (explained on the updated wiki) was to create dummy-forward functions for the $UNIX2003-functions that doesn't exist on Tiger.
I uploaded an updated build here that works on my emulated configuration. I hope it will work for you too.
Yes, this does appear to work on my 10.4 PPC machine, though I'll probably still distribute 3.4 (libavcodec.57) separately since it looks like they improved the AltiVec in it. But it does work fine on Tiger now, so excellent!
This issue is for my questions about TenFourFox. (There's no hurry to answer them!)
CROSS_COMPILE=1
and with a different toolchain than yours. I had to patch someconfigure.in
files in order to have something adapted. I want to submit these changes in order to have something compatible with both toolchains (so that, anyone could build TenFourFox it's own way — this is possible by addingexport STRIP=/opt/local/bin/strip
,MOZ_ENABLE_SHARED_ICU=1
,export PATH=/path/to/python2.7/:$PATH
in.mozconfig
and by removing your changes in configuration files). What's your opinion on that?