Thorium Building Discussion #28
Replies: 27 comments 41 replies
-
@gz83 @midzer @pierro78 Just added these new icons. > https://github.com/Alex313031/Thorium/tree/main/logos/NEW/webui and > https://github.com/Alex313031/Thorium/tree/main/ui/webui/resources/images |
Beta Was this translation helpful? Give feedback.
-
@gz83 Figured out why you were getting the "Cannot rebase-update with detached head + uncommitted changes." error. Fixed it in trunk.sh > de7c934 It was because of an untracked file that thorium uses that's not in the chromium tree. |
Beta Was this translation helpful? Give feedback.
-
@gz83 I have made a little batch file called thor_compat_mode.bat in the misc folder here and in the root of the thorium-win and thorium-avx2 repos, as well as added it to the latest win and win avx2 releases, and a note on how to use it. |
Beta Was this translation helpful? Give feedback.
-
@Alex313031 There is a problem with the trunk.sh file and needs to be repaired. The specific error is as follows. Added: Error when running trunk.sh for the first time. |
Beta Was this translation helpful? Give feedback.
-
@gz83 @midzer Also, Im working on a tentative fix for the compat mode bug. See > https://bugs.chromium.org/p/chromium/issues/detail?id=803591 Also, new VS artifacts zip will be uploaded soon based on latest VS 2022 and 10.0.20348.0 Win SDK + Debugging Tools. I will put the new .zip in the snippets, and update the build scripts and windows instructions files to reflect this. I will also package windbg for native debugging on a win machine if you dont want to install the whole thing on a target test machine if you are only building on linux. |
Beta Was this translation helpful? Give feedback.
-
@gz83 @midzer Attention Thorium Contributors: See the new DEBUG dir in infra. It has a readme, and *.gn files and scripts to make debug builds of Thorium for Linux/Windows, it also has a script to build the standalone Thorium UI Debug Shell. It also contains a new document describing the gn arguments, (me and @gz83 talked about this). >https://github.com/Alex313031/Thorium/blob/main/infra/DEBUG/ABOUT_GN_ARGS.md If you do nothing else, please at least read this file. |
Beta Was this translation helpful? Give feedback.
-
@midzer Here is readme and the files/scripts to make the .icns files for Mac. |
Beta Was this translation helpful? Give feedback.
-
@gz83 @yochananmarqos @midzer Attention Thorium contributors, the naming scheme for Thorium .deb, .zip, .appimage, and .exe and MacOS .dmgs is being changed and standardized, both in source code, and in what is expected when making release files or pkgbuild/.yml files for Arch and AppImages respectively. For Linux, see these commits > fd7d55d 68d9a3d 59c8517 and 46b3566 I.E. a package should now be named like For Windows, the installer should always be lower case, EXCEPT if it is an AVX2 version. I.E. a regular version should be named like For the Windows portable .zips, it should show the version and be in uppercase like For MacOS, the name should now include the version number, as well as the arch, like This is being done to standardize the naming scheme across platforms, and so that contributors and users know exactly the version and architecture they have. For example, I have had multiple files downloaded with the same name, and forgot which one was which. Users might encounter the same when trying different versions/architectures. This also makes it easier on me when I am doing releases on GitHub. For some of these, you will have to manually rename the file. For example, Windows AVX2 releases, Mac releases, and portable .zips. |
Beta Was this translation helpful? Give feedback.
-
Nothing has changed with the Debian package name nor folder structure. Not sure what you think I should change. EDIT: Ah, seems the subject was already addressed. |
Beta Was this translation helpful? Give feedback.
-
@midzer @gz83 Attention Thorium contributers: I have created a seperate testing account for Thorium. It is [email protected] and the password is ThoriumRocks1. This account should be used for testing Sync, as well as making bugs or posting in the Chromium Dev Group. If I find a bug, I will probably use my personal account, and you guys can use your personal accounts too, but if you use this account, this way we can all access it in one central location and collaborate. Fun facts: The first name is Thorium and the Last name is Browser. The birthday is September 8, 2008, Chromium's birthday, and the gender is "Machina" lolol |
Beta Was this translation helpful? Give feedback.
-
@yochananmarqos @midzer @gz83 Attention Thorium contributors: This same text box and link is also in the latest linux release, and will be added to the latest release for all platforms. (Also midzer could you upload the new .deb to dl.thorium.rocks?) |
Beta Was this translation helpful? Give feedback.
-
@midzer @gz83 Attention Thorium contributors, I am proposing a change to |
Beta Was this translation helpful? Give feedback.
-
@yochananmarqos @midzer @gz83 Attention Thorium contributors: There are new flags for the trunk.sh and setup.sh scripts. For trunk.sh, use the --shallow flag to do a shallow gclient sync. This should be done after deleting your chromium tree and using For setup.sh, use the --mac flag to copy cdm_registration from //infra to the proper place, needed to overcome a discrepancy in the Widevine patches (which work for Linux & Windows, but not MacOS & ChromiumOS). This will be used as a replacement for the setup_mac.sh script, following further testing and verification by Midzer. I have solved the thorium_shell issues with the main setup.sh, meaning only this file needs to be changed for MacOS, hence the new flag. This also means we can start building Thorium Shell for Mac, although it will need to be distributed as a .app file, and won't be included in the main installation package, like the other platforms do. If you have questions or want to propose changes, you know what to do ;). |
Beta Was this translation helpful? Give feedback.
-
@yochananmarqos @midzer @gz83 Attention Thorium contributers: Script updates!! (And other updates) All the scripts have been updated with new colours. The LLVM The The
The Chromium Dash and the new, updated/fixed copy of GitHubStat (now called GitHubStat2) is now on the Thorium website > Here, and both of these are in the thor_developer_bookmarks.html. These are good for tracking release milestones as well as the schedule for different platforms, and githubstat2 will now be the place to track download counts for Thorium releases (or any other repo, including your own). Lemme know what you guys think 😁 |
Beta Was this translation helpful? Give feedback.
-
@midzer @gz83 Attention Thorium contributors: Scripts have been updated again.
The The setup, and build scripts now show new ascii art. Trunk still shows the chromium ascii art, but setup now shows either thorium, raspi logo, or apple logo, and all the build scripts now show thorium logo. I will also be adding a BUILDING_WIN_CROSS.md document soon, to complement the linux and windows ones, once again modeled after the upstream chromium ones. |
Beta Was this translation helpful? Give feedback.
-
@midzer @gz83 @tomByrer @yochananmarqos Attention Thorium contributors. I have added a new script Also, the "--shallow" flag appears to be broken in trunk.sh for now, and it seems to only work once, but subsequent uses of it will still download the whole repo. IDK. 🤦🏼 Also, there is finally a working HEVC/H.265 patch. > Here Let me know if you have issues building with it, or if HEVC still doesn't seem to work. You can test HEVC playback directly (link to a h.265 video file) on woolyss tester with this link. Also, update your args.gn, as is_chancie_wancie_build = true is being disabled for now. However, after further testing and verification, I will add the HEVC patches to the "ChromeOS" subdir of //third_party/ffmpeg, and then we can go back to using the ChromeOS version of ffmpeg for linux. I also want to eventually get MacOS using the CrOS version of ffmpeg. Windows will never be able to use it, but that's okay because the Windows ffmpeg already includes some of the extra formats that the CrOS version enables. Until now, it has been kind of a mystery what exactly the ChromeOS version has over the Chrome version, but after looking in the source while adding these patches, I can now share what exactly it does. Here is a comparison of all of them: Chromium FFmpeg : MPEG4, OGG, WebM, WAV, FLAC, MP3, Opus, PCM, Vorbis, VP8, VP9, Theora (Open Source, except for MP3, but Chromium has a special license to be able to use it and include it in FOSS builds.) Chrome FFmpeg : All of the above, + HLS, AAC, AV1, H.264, GIFV, H.265 (Hardware Only, Unencrypted only) ChromeOS (CrOS) FFmpeg: All of the above, + AVI, MOV, AMR, H.263, MPEG-DASH, H.265 (Hardware Only, but can play encrypted i.e. Widevine media streams) In addition, the Windows FFmpeg also supports AVI and MOV, and larger libvpx profiles. In addition, the Mac FFmpeg also supports QuickTime and MOV The patch will add software H.265 Decoding, and using the ChromeOS version will bring those additional formats as well as encrypted H.265 content to Linux and Mac. |
Beta Was this translation helpful? Give feedback.
-
@midzer @gz83 Attention Thorium contributors! Three things.
|
Beta Was this translation helpful? Give feedback.
-
@midzer @gz83 Attention Thorium contributers. Three things.
|
Beta Was this translation helpful? Give feedback.
-
@StarterX4 Can you please update the AUR repo based on this new folder. You can use meld or something to see the changes I made. Main thing is that going forward, thorium will be built to stable, so the deb and wrappers will be thorium-browser-stable instead of unstable. Another thing is that I added the thorium_shell.png logo to the pkgbuild, and updated the copyrights and maintaners header. > https://github.com/Alex313031/Thorium/tree/main/infra/Arch_Linux |
Beta Was this translation helpful? Give feedback.
-
@midzer @gz83 Attention Thorium Contributors: Midzer discovered that the Mac PGO profiles are now split into regular ( As such, I have added the V8 PGO download script and bash aliases to the VERSION.sh script. I have also added Please see commit > 59ad921 and update your notes/bashrc accordingly. On a side note: Using the beta WinSDK breaks windows builds. Midzer also seems to have had issues on MacOS with the latest XCode, but we are seeing if maybe it is a Thorium source code issue. |
Beta Was this translation helpful? Give feedback.
-
@midzer @gz83 Attention Thorium Contributors:Just some stuff to be aware of -
As a side note, I would like @midzer to provide me with an HEVC + AC3 .mp4 file to put on thorium rocks, so that I can test each release to make sure it actually works and plays the video. Can you guys plz respond so I know you read this? |
Beta Was this translation helpful? Give feedback.
-
@gz83 @midzer Attention Thorium Contributors: See notice in thorium special > https://github.com/Alex313031/Thorium-Special/releases/tag/migrate |
Beta Was this translation helpful? Give feedback.
-
@midzer @gz83 Attention Thorium Contributors:
|
Beta Was this translation helpful? Give feedback.
-
@midzer @gz83 Attention Thorium Contributors: After ./setup.sh, you should also run ./patch_ac3.sh before building. This patches FFMPEG to allow AC3/E-AC3 audio. The reason this is separated out, is because Android and arm32/arm64 targets do not support AC3. So, unless you are making an Android build or a MacOS ARM64 build (this means you @midzer lol), you should use this script after setup.sh. |
Beta Was this translation helpful? Give feedback.
-
@gz83 @midzer Attention Thorium Contributors: Due to an upstream bug in how search engine resource ID's are handled, since Thorium adds Ask.com as one of the default search engines, but Chromium does not, you must take the following actions after everything else, but before actually starting the compile.
Without doing this, compilation will fail with an error saying something like This will need to be done for Linux, Windows (cross building), MacOS, and ThoriumOS. Please respond so I know you all read this. You know what to do if you have issues or questions 😄 Oh, and I'm unsure if the image cache state will persist between trunk.sh and/or version.sh invocations, so you might have to run this for each build produced. |
Beta Was this translation helpful? Give feedback.
-
@midzer @gz83 Attention Thorium Contributors:
The Line 95 in fb07b7f The The Please confirm you guys have read this, and if you have any issues (like missing build stuff) with the "thorium_all" target, let me know. EDIT: The reason for the patch_ac3.sh thing, is that we don't want to run it on Android, or ARM/ARM64 platforms like Raspi or MacOS arm64. The setup.sh script only applies it if the commandline flag is valid. However, this means that it was not being run when the script was run without arguments. Until I find a way to tell bash "if there are no command line arguments at all, run this code block", it has to be run manually. TODO: This may be easier to do in Python, which me and @gz83 have discussed migrating some of the main scripts from bash to python, to allow better OS interoperability (particularly for Windows). |
Beta Was this translation helpful? Give feedback.
-
@midzer @gz83 Attention Thorium Contributors: 2 things
What it ended up being is a bug in LLVM that only showed up when these two conditions are true:
Until this bug is fixed, the thinLTO optimization level will be set to 2 instead of 3, because 2 is still good (and the Chromium default for official builds), and it is better to lower the LTO opt level than to remove SIMD optimizations like AVX, etc.
Get your machines out, hot and ready, cause' it's about time to start making some public releases! LOL. I will let you all know when the final commit is made tonight. As usual, respond so I know you read this. |
Beta Was this translation helpful? Give feedback.
-
@gz83 Alex313031/Thorium-Win-AVX2#9
Beta Was this translation helpful? Give feedback.
All reactions