lists.torproject.org
Sign In Sign Up
Manage this list Sign In Sign Up

Keyboard Shortcuts

Thread View

  • j: Next unread message
  • k: Previous unread message
  • j a: Jump to all threads
  • j l: Jump to MailingList overview

tbb-commits

Thread Start a new thread
Threads by month
  • ----- 2026 -----
  • July
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2025 -----
  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2024 -----
  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2023 -----
  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2022 -----
  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2021 -----
  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2020 -----
  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2019 -----
  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2018 -----
  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2017 -----
  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2016 -----
  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2015 -----
  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2014 -----
  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
tbb-commits@lists.torproject.org

  • 1 participants
  • 20633 discussions
[Git][tpo/applications/mullvad-browser][mullvad-browser-147.0a1-16.0-2] fixup! Firefox preference overrides.
by Pier Angelo Vendrame (@pierov) 10 Feb '26

10 Feb '26
Pier Angelo Vendrame pushed to branch mullvad-browser-147.0a1-16.0-2 at The Tor Project / Applications / Mullvad Browser Commits: f410b034 by june wilde at 2026-02-10T09:12:09+01:00 fixup! Firefox preference overrides. - - - - - 1 changed file: - browser/app/profile/001-base-profile.js Changes: ===================================== browser/app/profile/001-base-profile.js ===================================== @@ -560,6 +560,11 @@ pref("browser.display.use_system_colors", false); pref("widget.non-native-theme.use-theme-accent", false); // tor-browser#43236: Disable vsync on Wayland to prevent refresh rate leaks. pref("widget.wayland.vsync.enabled", false); +// tor-browser#44571: Disable HTML rating attribute for filtering web content. +// This could potentially be used as a fingerprinting vector based on if content +// marked with a specific rating is loaded or not. +pref("security.restrict_to_adults.always", false); +pref("security.restrict_to_adults.respect_platform", false); // tor-browser#41943: defense-in-depth, but do not lock anymore (enabled in Firefox 119, http://bugzil.la/1851162) pref("javascript.options.spectre.disable_for_isolated_content", false); @@ -738,6 +743,8 @@ pref("browser.menu.share_url.allow", false, locked); // Disable special URL bar behaviors pref("browser.urlbar.suggest.topsites", false); pref("browser.urlbar.quicksuggest.enabled", false); +pref("browser.urlbar.quicksuggest.online.available", false); +pref("browser.urlbar.quicksuggest.online.enabled", false); pref("browser.urlbar.richSuggestions.featureGate", false); pref("browser.urlbar.yelp.featureGate", false); pref("browser.urlbar.mdn.featureGate", false); View it on GitLab: https://gitlab.torproject.org/tpo/applications/mullvad-browser/-/commit/f41… -- View it on GitLab: https://gitlab.torproject.org/tpo/applications/mullvad-browser/-/commit/f41… You're receiving this email because of your account on gitlab.torproject.org.
1 0
0 0
[Git][tpo/applications/tor-browser][base-browser-147.0a1-16.0-2] fixup! Firefox preference overrides.
by Pier Angelo Vendrame (@pierov) 10 Feb '26

10 Feb '26
Pier Angelo Vendrame pushed to branch base-browser-147.0a1-16.0-2 at The Tor Project / Applications / Tor Browser Commits: 083b1843 by june wilde at 2026-02-10T09:11:42+01:00 fixup! Firefox preference overrides. - - - - - 1 changed file: - browser/app/profile/001-base-profile.js Changes: ===================================== browser/app/profile/001-base-profile.js ===================================== @@ -560,6 +560,11 @@ pref("browser.display.use_system_colors", false); pref("widget.non-native-theme.use-theme-accent", false); // tor-browser#43236: Disable vsync on Wayland to prevent refresh rate leaks. pref("widget.wayland.vsync.enabled", false); +// tor-browser#44571: Disable HTML rating attribute for filtering web content. +// This could potentially be used as a fingerprinting vector based on if content +// marked with a specific rating is loaded or not. +pref("security.restrict_to_adults.always", false); +pref("security.restrict_to_adults.respect_platform", false); // tor-browser#41943: defense-in-depth, but do not lock anymore (enabled in Firefox 119, http://bugzil.la/1851162) pref("javascript.options.spectre.disable_for_isolated_content", false); @@ -742,6 +747,8 @@ pref("browser.menu.share_url.allow", false, locked); // Disable special URL bar behaviors pref("browser.urlbar.suggest.topsites", false); pref("browser.urlbar.quicksuggest.enabled", false); +pref("browser.urlbar.quicksuggest.online.available", false); +pref("browser.urlbar.quicksuggest.online.enabled", false); pref("browser.urlbar.richSuggestions.featureGate", false); pref("browser.urlbar.yelp.featureGate", false); pref("browser.urlbar.mdn.featureGate", false); View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/commit/083b184… -- View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/commit/083b184… You're receiving this email because of your account on gitlab.torproject.org.
1 0
0 0
[Git][tpo/applications/tor-browser][tor-browser-147.0a1-16.0-2] fixup! Firefox preference overrides.
by Pier Angelo Vendrame (@pierov) 10 Feb '26

10 Feb '26
Pier Angelo Vendrame pushed to branch tor-browser-147.0a1-16.0-2 at The Tor Project / Applications / Tor Browser Commits: 7359f9f5 by june wilde at 2026-02-10T09:04:10+01:00 fixup! Firefox preference overrides. - - - - - 1 changed file: - browser/app/profile/001-base-profile.js Changes: ===================================== browser/app/profile/001-base-profile.js ===================================== @@ -560,6 +560,11 @@ pref("browser.display.use_system_colors", false); pref("widget.non-native-theme.use-theme-accent", false); // tor-browser#43236: Disable vsync on Wayland to prevent refresh rate leaks. pref("widget.wayland.vsync.enabled", false); +// tor-browser#44571: Disable HTML rating attribute for filtering web content. +// This could potentially be used as a fingerprinting vector based on if content +// marked with a specific rating is loaded or not. +pref("security.restrict_to_adults.always", false); +pref("security.restrict_to_adults.respect_platform", false); // tor-browser#41943: defense-in-depth, but do not lock anymore (enabled in Firefox 119, http://bugzil.la/1851162) pref("javascript.options.spectre.disable_for_isolated_content", false); @@ -742,6 +747,8 @@ pref("browser.menu.share_url.allow", false, locked); // Disable special URL bar behaviors pref("browser.urlbar.suggest.topsites", false); pref("browser.urlbar.quicksuggest.enabled", false); +pref("browser.urlbar.quicksuggest.online.available", false); +pref("browser.urlbar.quicksuggest.online.enabled", false); pref("browser.urlbar.richSuggestions.featureGate", false); pref("browser.urlbar.yelp.featureGate", false); pref("browser.urlbar.mdn.featureGate", false); View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/commit/7359f9f… -- View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/commit/7359f9f… You're receiving this email because of your account on gitlab.torproject.org.
1 0
0 0
[Git][tpo/applications/tor-browser][tor-browser-147.0a1-16.0-2] TB 43349 [android]: Add feedback for successful bootstrap
by Dan Ballard (@dan) 10 Feb '26

10 Feb '26
Dan Ballard pushed to branch tor-browser-147.0a1-16.0-2 at The Tor Project / Applications / Tor Browser Commits: 371573fc by clairehurst at 2026-02-09T18:08:52-08:00 TB 43349 [android]: Add feedback for successful bootstrap - - - - - 2 changed files: - mobile/android/fenix/app/src/main/java/org/mozilla/fenix/tor/TorControllerGV.kt - mobile/android/fenix/app/src/main/res/values/torbrowser_strings.xml Changes: ===================================== mobile/android/fenix/app/src/main/java/org/mozilla/fenix/tor/TorControllerGV.kt ===================================== @@ -3,6 +3,7 @@ package org.mozilla.fenix.tor import android.content.Context import android.util.Log +import android.widget.Toast import androidx.lifecycle.LifecycleCoroutineScope import mozilla.components.browser.engine.gecko.GeckoEngine import org.mozilla.fenix.ext.components @@ -191,6 +192,11 @@ class TorControllerGV( runOnceBootstrappedHandlers.remove(it) } } + Toast.makeText( + context, + context.getString(org.mozilla.fenix.R.string.connection_assist_bootstrap_succeeded_toast_message), + Toast.LENGTH_LONG, + ).show() } } ===================================== mobile/android/fenix/app/src/main/res/values/torbrowser_strings.xml ===================================== @@ -124,6 +124,8 @@ <string name="connection_assist_connect_to_tor_before_opening_links_confirmation">CONNECT</string> <!-- Connection assist. Content Description for back button. Button will start the connection assist process again --> <string name="connection_assist_back_button_content_description_start_again">Start again</string> + <!-- Connection assist. Bootstrap succeeded toast message--> + <string name="connection_assist_bootstrap_succeeded_toast_message">Connected to Tor</string> <!-- Notification title for closing browser tabs. "%s" will be replaced with the localised application name, such as "Tor Browser". --> <string name="notification_close_tor_browser_tabs">Close %s’s tabs?</string> View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/commit/371573f… -- View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/commit/371573f… You're receiving this email because of your account on gitlab.torproject.org.
1 0
0 0
[Git][tpo/applications/tor-browser][tor-browser-147.0a1-16.0-2] fixup! TB 42247: Android helpers for the TorProvider
by clairehurst (@clairehurst) 10 Feb '26

10 Feb '26
clairehurst pushed to branch tor-browser-147.0a1-16.0-2 at The Tor Project / Applications / Tor Browser Commits: 5f102b4d by Pier Angelo Vendrame at 2026-02-09T15:32:21+01:00 fixup! TB 42247: Android helpers for the TorProvider TB 44620: Move the Android IPC directory. Move the the files we use to communicate with the tor process from the cache directory to the data directory, as some OEMs might be doing some strange things in the cache directory, which might result in proxy errors for users. - - - - - 1 changed file: - mobile/android/geckoview/src/main/java/org/mozilla/geckoview/TorAndroidIntegration.java Changes: ===================================== mobile/android/geckoview/src/main/java/org/mozilla/geckoview/TorAndroidIntegration.java ===================================== @@ -19,6 +19,8 @@ import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.InterruptedIOException; +import java.nio.file.Files; +import java.nio.file.attribute.PosixFilePermissions; import java.util.ArrayList; import java.util.Arrays; import java.util.HashMap; @@ -100,7 +102,7 @@ public class TorAndroidIntegration implements BundleEventListener { /* package */ TorAndroidIntegration(Context context) { mLibraryDir = context.getApplicationInfo().nativeLibraryDir; mCacheDir = context.getCacheDir().getAbsolutePath(); - mIpcDirectory = mCacheDir + "/tor-private"; + mIpcDirectory = new File(context.getFilesDir(), "tor-ipc").getAbsolutePath(); mDataDir = new File(context.getFilesDir(), "tor"); registerListener(); } @@ -357,15 +359,8 @@ public class TorAndroidIntegration implements BundleEventListener { return; } try { - // First remove the permissions for everybody... - directory.setReadable(false, false); - directory.setWritable(false, false); - directory.setExecutable(false, false); - // ... then add them back, but only for the owner. - directory.setReadable(true, true); - directory.setWritable(true, true); - directory.setExecutable(true, true); - } catch (SecurityException e) { + Files.setPosixFilePermissions(directory.toPath(), PosixFilePermissions.fromString("rwx------")); + } catch (IOException | SecurityException e) { Log.e(TAG, "Could not set the permissions to the IPC directory.", e); } return; View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/commit/5f102b4… -- View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/commit/5f102b4… You're receiving this email because of your account on gitlab.torproject.org.
1 0
0 0
[Git][tpo/applications/tor-browser-build][main] Bug 41718 - Fix github URL for Pyidaungsu font
by Pier Angelo Vendrame (@pierov) 09 Feb '26

09 Feb '26
Pier Angelo Vendrame pushed to branch main at The Tor Project / Applications / tor-browser-build Commits: e3b6c773 by june wilde at 2026-02-09T22:10:13+01:00 Bug 41718 - Fix github URL for Pyidaungsu font - - - - - 1 changed file: - projects/fonts/config Changes: ===================================== projects/fonts/config ===================================== @@ -196,6 +196,6 @@ input_files: sha256sum: 3a5f3f26f40d5698b3c62dd085d48d6663696a3f80825aab8b553d5097518e8c name: stix enable: '[% c("var/have_stix") %]' - - URL: 'https://github.com/mcfnlp/Pyidaungsu/raw/refs/heads/ff1cd8dfe8c451244329d7a…' + - URL: 'https://github.com/mcfnlp/Pyidaungsu/raw/ff1cd8dfe8c451244329d7a6181c83e769…' sha256sum: df7106c15da76f6a24c10821b43da51f54961f6bc6791fb1fcf21c6c60bb2e10 name: Pyidaungsu View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser-build/-/commit/e… -- View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser-build/-/commit/e… You're receiving this email because of your account on gitlab.torproject.org.
1 0
0 0
[Git][tpo/applications/tor-browser-build][maint-15.0] Bug 41720: Switch back from cp -l to mv.
by Pier Angelo Vendrame (@pierov) 09 Feb '26

09 Feb '26
Pier Angelo Vendrame pushed to branch maint-15.0 at The Tor Project / Applications / tor-browser-build Commits: 032c4cfd by Pier Angelo Vendrame at 2026-02-09T19:35:14+01:00 Bug 41720: Switch back from cp -l to mv. We switched to cp -l to avoid errors when trying to move an inode to itself (case we might enocunter when re-running projects/release/build, since we hard-link release files when possible). However, `cp -l` does not fall back to a copy when hard link is not possible, instead it fails. So, go back to `mv`, but run `rm -f` before running mv, to avoid the error when trying to move the file to itself. - - - - - 1 changed file: - projects/release/build Changes: ===================================== projects/release/build ===================================== @@ -5,53 +5,64 @@ destdir="[% dest_dir _ '/' _ c("var/publish_dir") %]" mkdir -p "$destdir" +function merge_directory { + pushd $1 + find -type d -exec mkdir -p $destdir/{} \; + # tor-browser-build#40338: Try to remove any existing destination, as it might + # be the same inode when re-running this script, which makes mv fail. + find -type f -exec rm -f $destdir/{} \; + find -type f -exec mv {} $destdir/{} \; + popd +} + [% IF c("var/browser_platforms/android-armv7") -%] - cp -alf "[% c('input_files_by_name/android-armv7') %]"/* "$destdir"/ + merge_directory "[% c('input_files_by_name/android-armv7') %]" [% END -%] [% IF c("var/browser_platforms/android-x86") -%] mv_files "[% c('input_files_by_name/android-x86') %]" [% END -%] [% IF c("var/browser_platforms/android-x86_64") -%] - cp -alf "[% c('input_files_by_name/android-x86_64') %]"/* "$destdir"/ + merge_directory "[% c('input_files_by_name/android-x86_64') %]" [% END -%] [% IF c("var/browser_platforms/android-aarch64") -%] - cp -alf "[% c('input_files_by_name/android-aarch64') %]"/* "$destdir"/ + merge_directory "[% c('input_files_by_name/android-aarch64') %]" [% END -%] [% IF c("var/browser_platforms/windows-i686") -%] - cp -alf "[% c('input_files_by_name/windows-i686') %]"/* "$destdir"/ + merge_directory "[% c('input_files_by_name/windows-i686') %]" [% END -%] [% IF c("var/browser_platforms/windows-x86_64") -%] - cp -alf "[% c('input_files_by_name/windows-x86_64') %]"/* "$destdir"/ + merge_directory "[% c('input_files_by_name/windows-x86_64') %]" [% END -%] [% IF c("var/browser_platforms/macos") -%] - cp -alf "[% c('input_files_by_name/macos') %]"/* "$destdir"/ + merge_directory "[% c('input_files_by_name/macos') %]" [% END -%] [% IF c("var/browser_platforms/macos-x86_64") -%] - cp -alf "[% c('input_files_by_name/macos-x86_64') %]"/* "$destdir"/ + merge_directory "[% c('input_files_by_name/macos-x86_64') %]" [% END -%] [% IF c("var/browser_platforms/macos-aarch64") -%] - cp -alf "[% c('input_files_by_name/macos-aarch64') %]"/* "$destdir"/ + merge_directory "[% c('input_files_by_name/macos-aarch64') %]" [% END -%] [% IF c("var/browser_platforms/linux-i686") -%] mv_files "[% c('input_files_by_name/linux-i686') %]" [% END -%] [% IF c("var/browser_platforms/linux-x86_64") -%] - cp -alf "[% c('input_files_by_name/linux-x86_64') %]"/* "$destdir"/ + merge_directory "[% c('input_files_by_name/linux-x86_64') %]" [% END -%] [% IF c("var/browser_platforms/linux-aarch64") -%] - cp -alf "[% c('input_files_by_name/linux-aarch64') %]"/* "$destdir"/ + merge_directory "[% c('input_files_by_name/linux-aarch64') %]" [% END -%] [% IF c("var/linux-packages") || c("var/linux-packages-aarch64") -%] [% IF c("var/linux-packages") -%] - cp -alf "[% c('input_files_by_name/deb-packages') %]"/* "$destdir"/ + merge_directory "[% c('input_files_by_name/deb-packages') %]" [% END -%] [% IF c("var/linux-packages-aarch64") -%] - cp -alf "[% c('input_files_by_name/deb-packages-aarch64') %]"/* "$destdir"/ + merge_directory "[% c('input_files_by_name/deb-packages-aarch64') %]" [% END -%] - cp -alf "[% c('input_files_by_name/rpm-packages') %]"/* "$destdir"/ + merge_directory "[% c('input_files_by_name/rpm-packages') %]" [% END -%] [% IF c("var/browser-src") -%] - cp -alf "[% c('input_files_by_name/src-firefox') %]" "$destdir"/ + rm -f "$destdir/[% c('input_files_by_name/src-firefox') %]" + mv [% c('input_files_by_name/src-firefox') %] "$destdir"/ [% END -%] cd "$destdir" cat > .htaccess <<'EOF' View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser-build/-/commit/0… -- View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser-build/-/commit/0… You're receiving this email because of your account on gitlab.torproject.org.
1 0
0 0
[Git][tpo/applications/tor-browser-build][main] Bug 41720: Switch back from cp -l to mv.
by boklm (@boklm) 09 Feb '26

09 Feb '26
boklm pushed to branch main at The Tor Project / Applications / tor-browser-build Commits: 6bb082cb by Pier Angelo Vendrame at 2026-02-09T19:24:54+01:00 Bug 41720: Switch back from cp -l to mv. We switched to cp -l to avoid errors when trying to move an inode to itself (case we might enocunter when re-running projects/release/build, since we hard-link release files when possible). However, `cp -l` does not fall back to a copy when hard link is not possible, instead it fails. So, go back to `mv`, but run `rm -f` before running mv, to avoid the error when trying to move the file to itself. - - - - - 1 changed file: - projects/release/build Changes: ===================================== projects/release/build ===================================== @@ -5,47 +5,58 @@ destdir="[% dest_dir _ '/' _ c("var/publish_dir") %]" mkdir -p "$destdir" +function merge_directory { + pushd $1 + find -type d -exec mkdir -p $destdir/{} \; + # tor-browser-build#40338: Try to remove any existing destination, as it might + # be the same inode when re-running this script, which makes mv fail. + find -type f -exec rm -f $destdir/{} \; + find -type f -exec mv {} $destdir/{} \; + popd +} + [% IF c("var/browser_platforms/android-armv7") -%] - cp -alf "[% c('input_files_by_name/android-armv7') %]"/* "$destdir"/ + merge_directory "[% c('input_files_by_name/android-armv7') %]" [% END -%] [% IF c("var/browser_platforms/android-x86_64") -%] - cp -alf "[% c('input_files_by_name/android-x86_64') %]"/* "$destdir"/ + merge_directory "[% c('input_files_by_name/android-x86_64') %]" [% END -%] [% IF c("var/browser_platforms/android-aarch64") -%] - cp -alf "[% c('input_files_by_name/android-aarch64') %]"/* "$destdir"/ + merge_directory "[% c('input_files_by_name/android-aarch64') %]" [% END -%] [% IF c("var/browser_platforms/windows-i686") -%] - cp -alf "[% c('input_files_by_name/windows-i686') %]"/* "$destdir"/ + merge_directory "[% c('input_files_by_name/windows-i686') %]" [% END -%] [% IF c("var/browser_platforms/windows-x86_64") -%] - cp -alf "[% c('input_files_by_name/windows-x86_64') %]"/* "$destdir"/ + merge_directory "[% c('input_files_by_name/windows-x86_64') %]" [% END -%] [% IF c("var/browser_platforms/macos") -%] - cp -alf "[% c('input_files_by_name/macos') %]"/* "$destdir"/ + merge_directory "[% c('input_files_by_name/macos') %]" [% END -%] [% IF c("var/browser_platforms/macos-x86_64") -%] - cp -alf "[% c('input_files_by_name/macos-x86_64') %]"/* "$destdir"/ + merge_directory "[% c('input_files_by_name/macos-x86_64') %]" [% END -%] [% IF c("var/browser_platforms/macos-aarch64") -%] - cp -alf "[% c('input_files_by_name/macos-aarch64') %]"/* "$destdir"/ + merge_directory "[% c('input_files_by_name/macos-aarch64') %]" [% END -%] [% IF c("var/browser_platforms/linux-x86_64") -%] - cp -alf "[% c('input_files_by_name/linux-x86_64') %]"/* "$destdir"/ + merge_directory "[% c('input_files_by_name/linux-x86_64') %]" [% END -%] [% IF c("var/browser_platforms/linux-aarch64") -%] - cp -alf "[% c('input_files_by_name/linux-aarch64') %]"/* "$destdir"/ + merge_directory "[% c('input_files_by_name/linux-aarch64') %]" [% END -%] [% IF c("var/linux-packages") || c("var/linux-packages-aarch64") -%] [% IF c("var/linux-packages") -%] - cp -alf "[% c('input_files_by_name/deb-packages') %]"/* "$destdir"/ + merge_directory "[% c('input_files_by_name/deb-packages') %]" [% END -%] [% IF c("var/linux-packages-aarch64") -%] - cp -alf "[% c('input_files_by_name/deb-packages-aarch64') %]"/* "$destdir"/ + merge_directory "[% c('input_files_by_name/deb-packages-aarch64') %]" [% END -%] - cp -alf "[% c('input_files_by_name/rpm-packages') %]"/* "$destdir"/ + merge_directory "[% c('input_files_by_name/rpm-packages') %]" [% END -%] [% IF c("var/browser-src") -%] - cp -alf "[% c('input_files_by_name/src-firefox') %]" "$destdir"/ + rm -f "$destdir/[% c('input_files_by_name/src-firefox') %]" + mv [% c('input_files_by_name/src-firefox') %] "$destdir"/ [% END -%] cd "$destdir" cat > .htaccess <<'EOF' View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser-build/-/commit/6… -- View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser-build/-/commit/6… You're receiving this email because of your account on gitlab.torproject.org.
1 0
0 0
[Git][tpo/applications/tor-browser-build][main] Bug 28595: Remove the need to update var/gradle_dependencies_version
by boklm (@boklm) 09 Feb '26

09 Feb '26
boklm pushed to branch main at The Tor Project / Applications / tor-browser-build Commits: 7c8ce499 by Nicolas Vigier at 2026-02-09T19:00:44+01:00 Bug 28595: Remove the need to update var/gradle_dependencies_version - - - - - 12 changed files: - doc/how-to-update-gradle-dependencies-list.md - projects/application-services/config - projects/application-services/gradle-dependencies-list.txt - projects/geckoview/config - projects/geckoview/gradle-dependencies-list.txt - projects/glean/config - projects/glean/gradle-dependencies-list.txt - projects/oss-licenses-plugin/config - projects/oss-licenses-plugin/gradle-dependencies-list.txt - rbm - rbm.conf - tools/fix_gradle_deps.py Changes: ===================================== doc/how-to-update-gradle-dependencies-list.md ===================================== @@ -13,8 +13,6 @@ 5. Extract it. 6. Move the `gradle-dependencies-list.txt` you just extracted to `projects/<project name>/`. -7. Bump `var/gradle_dependencies_version`. - The preferred format is `<project version>-<list version>`. Theoretically, it should be also possible to set `generate_gradle_dependencies_list: 1` in `rbm.local.conf`, run a full build and @@ -68,13 +66,8 @@ from the output artifact. New Android projects should be setup to do this. -> **Important**: dependencies are keyed and cached. So, after updating the list, -> you must also bump `var/gradle_dependencies_version`. - -This used to be an integer, but to avoid clashes between the main and -maintenance branches, we decided to switch to a -`<project version>-<list version>` format. -Usually, the list version will be `1`. +Dependencies are keyed and cached. The key is a checksum of the +gradle-dependencies-list.txt file. ## Consuming the list @@ -86,6 +79,8 @@ hashes of all the other artifacts. You can wire it in your project with code that looks like this: ```yaml +- filename: gradle-dependencies-list.txt + name: gradle-dependencies-list - filename: 'gradle-dependencies-[% c("var/gradle_dependencies_version") %]' name: gradle-dependencies exec: '[% INCLUDE "fetch-gradle-dependencies" %]' ===================================== projects/application-services/config ===================================== @@ -20,8 +20,6 @@ container: var: build_number: 1 - # This should be updated when the list of gradle dependencies is changed. - gradle_dependencies_version: 147.0-1 gradle_version: 8.14.3 nss_version: '3.118.1' nspr_version: '4.37' @@ -73,6 +71,8 @@ steps: - URL: 'https://ftp.mozilla.org/pub/security/nss/releases/NSS_[% c("var/nss_version") | replace("\\.", "_") %]_RTM/src/nss-[% c("var/nss_version") %]-with-nspr-[% c("var/nspr_version") %].tar.gz' name: nss sha256sum: 9e1f7da9f4e5e3bdfd73f7dc2c618d6125a12354aadaeedbb35af3699bc03e15 + - filename: gradle-dependencies-list.txt + name: gradle-dependencies-list - filename: 'gradle-dependencies-[% c("var/gradle_dependencies_version") %]' name: gradle-dependencies exec: '[% INCLUDE "fetch-gradle-dependencies" %]' ===================================== projects/application-services/gradle-dependencies-list.txt ===================================== @@ -1,4 +1,3 @@ -# Don't forget to update var/gradle_dependencies_version when modifying this file sha256sum | url 6bd4c7c7476f8260cd3bdbb81183583e93fc9f790c27dea7dc314181cbf87aa0 | https://dl.google.com/dl/android/maven2/androidx/annotation/annotation-expe… 2ac2f7106e12f263425b4a4dfc80989447fb895675fe902d86759aa74fd12b7d | https://dl.google.com/dl/android/maven2/androidx/annotation/annotation-expe… ===================================== projects/geckoview/config ===================================== @@ -36,9 +36,6 @@ var: - python3-zstandard - pkg-config - openjdk-17-jdk-headless - # this should be updated when the list of gradle dependencies is changed - # see doc/how-to-create-gradle-dependencies-list.txt - gradle_dependencies_version: 147-1 gradle_version: 8.14.3 glean_parser: 14.0.1 # python/mozboot/mozboot/android.py @@ -181,6 +178,8 @@ input_files: enable: '[% c("var/rlbox") %]' - project: application-services name: application-services + - filename: gradle-dependencies-list.txt + name: gradle-dependencies-list - filename: 'gradle-dependencies-[% c("var/gradle_dependencies_version") %]' name: gradle-dependencies exec: '[% INCLUDE "fetch-gradle-dependencies" %]' ===================================== projects/geckoview/gradle-dependencies-list.txt ===================================== @@ -1,4 +1,3 @@ -# Don't forget to update var/gradle_dependencies_version when modifying this file sha256sum | url 1ed13a50edbb885962751e1bcb5b8a4207a20cb780ea248ffa653aab3fb10fe9 | https://maven.google.com/androidx/activity/activity-compose/1.10.1/activity… e64db6b7126fb512394bc3cf4332a38828009daa8dd56ecbe6c0c7300b2127f5 | https://maven.google.com/androidx/activity/activity-compose/1.10.1/activity… ===================================== projects/glean/config ===================================== @@ -10,8 +10,6 @@ container: build: '[% !c("var/generate_gradle_dependencies_list") %]' var: - # This should be updated when the list of gradle dependencies is changed. - gradle_dependencies_version: 66.1.1-1 gradle_version: 8.14.3 # Uncomment this to run an online build to grab an updated # gradle-dependencies-list.txt. @@ -49,6 +47,8 @@ steps: pkg_type: cargo_vendor norec: sha256sum: 417e8e09a7fbe3205827dfa518bfc4a7a08f1869e6d4fd9edf5d8f3f1f48061a + - filename: gradle-dependencies-list.txt + name: gradle-dependencies-list - filename: 'gradle-dependencies-[% c("var/gradle_dependencies_version") %]' name: gradle-dependencies exec: '[% INCLUDE "fetch-gradle-dependencies" %]' ===================================== projects/glean/gradle-dependencies-list.txt ===================================== @@ -1,4 +1,3 @@ -# Don't forget to update var/gradle_dependencies_version when modifying this file sha256sum | url 6bd4c7c7476f8260cd3bdbb81183583e93fc9f790c27dea7dc314181cbf87aa0 | https://dl.google.com/dl/android/maven2/androidx/annotation/annotation-expe… 2ac2f7106e12f263425b4a4dfc80989447fb895675fe902d86759aa74fd12b7d | https://dl.google.com/dl/android/maven2/androidx/annotation/annotation-expe… ===================================== projects/oss-licenses-plugin/config ===================================== @@ -4,8 +4,6 @@ git_hash: 185216f8268f8b1f8bfe2377ed3e57aa73b1121c # oss-licenses-plugin-v0.10.7 git_url: https://github.com/google/play-services-plugins.git var: - # This should be updated when the list of gradle dependencies is changed. - gradle_dependencies_version: 2 gradle_version: 8.14.3 container: @@ -15,6 +13,8 @@ input_files: - project: container-image - project: gradle name: gradle + - filename: gradle-dependencies-list.txt + name: gradle-dependencies-list - filename: 'gradle-dependencies-[% c("var/gradle_dependencies_version") %]' name: gradle-dependencies exec: '[% INCLUDE "fetch-gradle-dependencies" %]' ===================================== projects/oss-licenses-plugin/gradle-dependencies-list.txt ===================================== @@ -1,5 +1,4 @@ # On how to update dependencies see doc/how-to-create-gradle-dependencies-list.txt -# Don't forget to update var/gradle_dependencies_version when modifying this file sha256sum | url 33c839e4236eabde3896c154d120d651e72064f393e456297c92041d00cc058e | https://dl.google.com/dl/android/maven2/com/android/tools/build/apksig/7.1.… 67a8f20626121a8e4f48fc63a392c0459173a9992eb35cc9c9c3ec82b882862c | https://dl.google.com/dl/android/maven2/com/android/tools/build/apksig/7.1.… ===================================== rbm ===================================== @@ -1 +1 @@ -Subproject commit 36608a50ccf8feedcd03eb846c606718f5ef2d6b +Subproject commit 4c881eb45291e323dcf4e4f1ae7eabed045ea8a3 ===================================== rbm.conf ===================================== @@ -155,7 +155,7 @@ var: input_files: [% c("input_files_id") %] build: [% SET step = c("step") -%] - [% c(step, { filename => 'f', output_dir => '/out', norec => {} }) %] + [% c(step, { filename => 'f', getting_id => 1, norec => {} }) %] display_name: '[% c("var/Project_Name") %] [% c("var/channel") FILTER ucfirst %]' exe_name: firefox @@ -300,6 +300,8 @@ var: # be enabled in rbm.local.conf. dev_artifacts: 0 + gradle_dependencies_version: '[% c("input_files_ids_by_name/gradle-dependencies-list").split(":").1.substr(0, 15) %]' + targets: notarget: linux-x86_64 noint: ===================================== tools/fix_gradle_deps.py ===================================== @@ -14,13 +14,12 @@ import requests # See https://gitlab.torproject.org/tpo/tpa/team/-/issues/41654. requests.packages.urllib3.util.connection.HAS_IPV6 = False -if len(sys.argv) < 3: +if len(sys.argv) < 2: print( - f"Usage: {sys.argv[0]} project-name gradle-dep-num" + f"Usage: {sys.argv[0]} project-name" ) sys.exit(1) target = sys.argv[1] -target_ver = sys.argv[2] # We assume the script is in tor-browser-build/tools tbbuild = Path(__file__).parent.parent @@ -38,14 +37,18 @@ for p in java_projects: parser = re.compile(r"^([0-9a-fA-F]+)\s+\|\s+(\S+)\s*$") pairs = [] +h = hashlib.sha256() with open(tbbuild / "projects" / target / "gradle-dependencies-list.txt") as f: for line in f.readlines(): + h.update(line.encode("utf-8")) line = line.strip() if line[0] == '#' or line == 'sha256sum | url': continue m = parser.match(line) pairs.append((m.group(2), m.group(1))) +target_ver = h.hexdigest()[:15] + dest_dir = tbbuild / "out" / target / f"gradle-dependencies-{target_ver}" dest_dir.mkdir(parents=True, exist_ok=True) os.chdir(str(dest_dir)) View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser-build/-/commit/7… -- View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser-build/-/commit/7… You're receiving this email because of your account on gitlab.torproject.org.
1 0
0 0
[Git][tpo/applications/rbm][main] Bug 40093: Add option to get the checksum of an input file
by boklm (@boklm) 09 Feb '26

09 Feb '26
boklm pushed to branch main at The Tor Project / Applications / RBM Commits: 4c881eb4 by Nicolas Vigier at 2026-01-28T09:51:39+01:00 Bug 40093: Add option to get the checksum of an input file input_files_ids_by_name/$name can be used to get the id (sha256sum or sha512sum) of an input file. At the same time we remove the notmpl option for simplification, which we have not used. We can add it back later in case it is useful. - - - - - 5 changed files: - doc/rbm_config.asc - doc/rbm_input_files.asc - doc/rbm_templates.asc - lib/RBM.pm - lib/RBM/DefaultConfig.pm Changes: ===================================== doc/rbm_config.asc ===================================== @@ -246,8 +246,17 @@ input_files_by_name:: with their +name+ as index. The input files without a +name+ are not in this hash. +input_files_ids_by_name:: + This option contains the ids (hashes) of all the +input_files+, + with their +name+ as index. The id of an input file will be the + value of the option +input_file_id+ if it is defined, or + +filename:hash+, where +filename+ is the filename of the file, + and +hash+ is the sha512sum if the +sha512sum+ option is defined, + the sha256sum otherwise. This option does not work for input + files of type +project+, +exec+ or +content+. + input_files_id:: - The value of this option is an identifier of the input_files. + The value of this option is a single identifier of all the input_files. When any of the input files is changed, the identifier changes. This identifier is something that can be used in a project's filename to trigger a rebuild when any of its input files is @@ -280,11 +289,6 @@ timestamp:: commit time of the commit used. If set to 0 it will use the current time. -notmpl:: - An array containing a list of options that should not be - processed as template (see the +template+ section below for - details). - step:: The value of this option is the name of the build script we are going to be running (by default 'build', but you could have an ===================================== doc/rbm_input_files.asc ===================================== @@ -53,7 +53,7 @@ filename:: name:: Optionaly the input_file can have a name. This name is used as - key in the +input_files_by_name+ option. + key in the +input_files_by_name+ and +input_files_ids_by_name+ options. content:: The content of the file. ===================================== doc/rbm_templates.asc ===================================== @@ -15,10 +15,7 @@ however, for the options that are needed to process templates, so they can't be templated themself. The following options are not templated : - projects_dir - -If you want to make other options not templated, add them to the -+notmpl+ config option, which is an array. All the other options are -automatically processed as template. + - modules_dir The template are made using perl Template Toolkit. You can read more about the syntax on the http://www.template-toolkit.org/[Template ===================================== lib/RBM.pm ===================================== @@ -237,11 +237,8 @@ sub config { } sub notmpl { - my ($name, $project) = @_; - return 1 if $name eq 'notmpl'; - my @n = (@{$config->{default}{notmpl}}, - @{project_config($project, 'notmpl')}); - return grep { $name eq $_ } @n; + my ($name) = @_; + return grep { $name eq $_ } @{$config->{default}{notmpl}}; } sub confkey_str { @@ -282,9 +279,13 @@ sub project_config { ['run'], $project_path, ['local'], [], @modules, ['system'], ['default']); if (!$options->{no_tmpl} && defined($res) && !ref $res - && !notmpl(confkey_str($name), $project)) { - $res = process_template($project, $res, - confkey_str($name) eq 'output_dir' ? '.' : undef); + && !notmpl(confkey_str($name))) { + my $output_dir = undef; + if (confkey_str($name) eq 'output_dir' || + confkey_str($name) eq 'getting_id_value/output_dir') { + $output_dir = '.'; + } + $res = process_template($project, $res, $output_dir); } $config_cache{$project}{$step}{$name_str}{$cache_id} = $res; $config->{opt} = $opt_save; @@ -733,7 +734,7 @@ sub process_template { } return $res; } - $dest_dir //= rbm_path(project_config($project, 'output_dir')); + $dest_dir //= rbm_path(project_config($project, 'getting_id_value/output_dir')); my $project_dir = modules_project_dir($project); my $common_dirs = join(':', modules_common_dirs($project)); my $template = Template->new( @@ -823,7 +824,7 @@ sub input_file_need_dl { $fname = undef; } } - if ($action eq 'input_files_id') { + if ($action eq 'input_files_id' || $action eq 'getfids') { return undef if $input_file->{input_file_id}; for my $checksum (qw/sha512sum sha256sum/) { if ( ($input_file->{$checksum} || $input_file->{norec}{$checksum}) @@ -861,7 +862,7 @@ sub input_file_id { return $filename . ':' . $t->($checksum); } } - my $opts = { norec => { output_dir => '/out', getting_id => 1, }}; + my $opts = { norec => { getting_id => 1, }}; return $filename . ':' . sha256_hex($t->('exec', $opts)) if $input_file->{exec}; shafile('sha256sum', $fname, { remove_cache => 1 }) if $t->('refresh_input'); @@ -923,6 +924,7 @@ sub input_files { my @res_copy; my %res_getfnames; my @res_getfpaths; + my %res_getfids; my $getfnames_noname = 0; my $input_files_id = ''; $options = {$options ? %$options : ()}; @@ -1016,6 +1018,11 @@ sub input_files { }; next; } + if ($action eq 'getfids') { + next if $input_file->{project}; + next if $input_file->{exec}; + next if $input_file->{content}; + } my $proj_out_dir; if ($input_file->{project}) { $proj_out_dir = rbm_path(project_step_config($t->('project'), 'output_dir', @@ -1038,38 +1045,51 @@ sub input_files { my ($fname) = file_in_dir($name, $src_dir, $proj_out_dir, @modules_common_dirs); my $file_gpg_id = gpg_id($t->('file_gpg_id')); + my $dl_file = sub {}; if (input_file_need_dl($input_file, $t, $fname, $action)) { - if ($t->('content')) { - my $dname = dirname("$proj_out_dir/$name"); - make_path($dname) unless -d $dname; - path("$proj_out_dir/$name")->spew_utf8($t->('content')); - } elsif ($t->('URL')) { - urlget($project, {%$options, %$input_file, filename => $name}, 1); - } elsif ($t->('exec')) { - my $exec_script = project_config($project, 'exec', - { $options ? %$options : (), %$input_file }); - if (run_script($project, $exec_script, - sub { system(@_) }) != 0) { - exit_error "Error creating $name"; + $dl_file = sub { + if ($t->('content')) { + my $dname = dirname("$proj_out_dir/$name"); + make_path($dname) unless -d $dname; + path("$proj_out_dir/$name")->spew_utf8($t->('content')); + } elsif ($t->('URL')) { + urlget($project, {%$options, %$input_file, filename => $name}, 1); + } elsif ($t->('exec')) { + my $exec_script = project_config($project, 'exec', + { $options ? %$options : (), %$input_file }); + if (run_script($project, $exec_script, + sub { system(@_) }) != 0) { + exit_error "Error creating $name"; + } + } elsif ($input_file->{project} && $t->('project')) { + my $p = $t->('project'); + print "Building project $p - $name\n"; + my $run_save = $config->{run}; + $config->{run} = { target => $input_file->{target} }; + $config->{run}{target} //= $run_save->{target}; + build_pkg($p, {%$options, origin_project => $project, + %$input_file}); + $config->{run} = $run_save; + print "Finished build of project $p - $name\n"; + } else { + dd $input_file; + exit_error "Missing file $name"; } - } elsif ($input_file->{project} && $t->('project')) { - my $p = $t->('project'); - print "Building project $p - $name\n"; - my $run_save = $config->{run}; - $config->{run} = { target => $input_file->{target} }; - $config->{run}{target} //= $run_save->{target}; - build_pkg($p, {%$options, origin_project => $project, - %$input_file}); - $config->{run} = $run_save; - print "Finished build of project $p - $name\n"; - } else { - dd $input_file; - exit_error "Missing file $name"; + ($fname) = file_in_dir($name, $src_dir, $proj_out_dir, + @modules_common_dirs); + exit_error "Error getting file $name" unless $fname; } - ($fname) = file_in_dir($name, $src_dir, $proj_out_dir, - @modules_common_dirs); - exit_error "Error getting file $name" unless $fname; } + if ($action eq 'getfids') { + my $if_name = $t->('name') if $input_file->{name}; + next unless $if_name; + $res_getfids{$if_name} = sub { + $dl_file->(); + return input_file_id($input_file, $t, $fname, $name); + }; + next; + } + $dl_file->(); if ($action eq 'input_files_id') { $input_files_id .= input_file_id($input_file, $t, $fname, $name); $input_files_id .= "\n"; @@ -1145,6 +1165,7 @@ sub input_files { return @res_copy if ($action eq 'copy' || $action eq 'link'); return \%res_getfnames if $action eq 'getfnames'; return \@res_getfpaths if $action eq 'getfpaths'; + return \%res_getfids if $action eq 'getfids'; } sub system_log { ===================================== lib/RBM/DefaultConfig.pm ===================================== @@ -114,6 +114,12 @@ our %default_config = ( projects_dir => 'projects', modules_dir => 'modules', output_dir => 'out', + # `getting_id_value/output_dir` is used as `output_dir` when processing + # template. To avoid having ids being affected by changing `output_dir`, + # a fixed value is returned when `getting_id` is set. + getting_id_value => { + output_dir => '[% IF c("getting_id"); GET "/out"; ELSE; GET c("output_dir"); END %]', + }, git_clone_dir => 'git_clones', hg_clone_dir => 'hg_clones', hg_clone_subdir => '.', @@ -122,7 +128,7 @@ our %default_config = ( build => '[% INCLUDE build -%]', build_log => '-', build_log_append => '1', - notmpl => [ qw(projects_dir modules_dir) ], + notmpl => [ qw(projects_dir modules_dir getting_id) ], abbrev_length => '12', abbrev => '[% IF c("git_url"); @@ -626,6 +632,7 @@ ZIP_END touch => "[% USE date %]touch -m -t [% date.format(c('timestamp'), format = '%Y%m%d%H%M') %]", arch => \&get_arch, input_files_by_name => sub { RBM::input_files('getfnames', @_); }, + input_files_ids_by_name => sub { RBM::input_files('getfids', @_); }, input_files_id => sub { RBM::input_files('input_files_id', @_); }, input_files_paths => sub { RBM::input_files('getfpaths', @_); }, link_input_files => '[% IF c("remote_exec") %]1[% END %]', View it on GitLab: https://gitlab.torproject.org/tpo/applications/rbm/-/commit/4c881eb45291e32… -- View it on GitLab: https://gitlab.torproject.org/tpo/applications/rbm/-/commit/4c881eb45291e32… You're receiving this email because of your account on gitlab.torproject.org.
1 0
0 0
  • ← Newer
  • 1
  • ...
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • ...
  • 2064
  • Older →

HyperKitty Powered by HyperKitty version 1.3.12.