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 -----
  • 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
  • 20450 discussions
[Git][tpo/applications/tor-browser][tor-browser-147.0a1-16.0-2] 2 commits: fixup! Temporary changes to about:torconnect for Android.
by clairehurst (@clairehurst) 05 Feb '26

05 Feb '26
clairehurst pushed to branch tor-browser-147.0a1-16.0-2 at The Tor Project / Applications / Tor Browser Commits: 12387757 by clairehurst at 2026-02-05T12:20:55-07:00 fixup! Temporary changes to about:torconnect for Android. This reverts commit aed2663396d9fe060829290ac9e64774131ac1c3. - - - - - cd8bcb6e by clairehurst at 2026-02-05T12:20:55-07:00 fixup! [android] Implement Android-native Connection Assist UI - - - - - 9 changed files: - mobile/android/fenix/app/src/main/java/org/mozilla/fenix/HomeActivity.kt - mobile/android/fenix/app/src/main/java/org/mozilla/fenix/browser/BaseBrowserFragment.kt - mobile/android/fenix/app/src/main/java/org/mozilla/fenix/settings/SettingsFragment.kt - mobile/android/fenix/app/src/main/java/org/mozilla/fenix/utils/Settings.kt - mobile/android/fenix/app/src/main/res/values/preference_keys.xml - mobile/android/fenix/app/src/main/res/xml/preferences.xml - toolkit/components/torconnect/content/aboutTorConnect.css - toolkit/components/torconnect/content/aboutTorConnect.html - toolkit/components/torconnect/content/aboutTorConnect.js Changes: ===================================== mobile/android/fenix/app/src/main/java/org/mozilla/fenix/HomeActivity.kt ===================================== @@ -185,7 +185,6 @@ import org.mozilla.fenix.compose.core.Action import org.mozilla.fenix.compose.snackbar.SnackbarState import org.mozilla.fenix.compose.snackbar.Snackbar import org.mozilla.fenix.tor.UrlQuickLoadViewModel -import org.mozilla.geckoview.TorAndroidIntegration import org.mozilla.geckoview.TorAndroidIntegration.BootstrapStateChangeListener import org.mozilla.geckoview.TorConnectStage import kotlin.system.exitProcess @@ -197,7 +196,7 @@ import kotlin.system.exitProcess * - browser screen */ @SuppressWarnings("TooManyFunctions", "LargeClass", "LongMethod") -open class HomeActivity : LocaleAwareAppCompatActivity(), NavHostActivity, TorAndroidIntegration.BootstrapStateChangeListener { +open class HomeActivity : LocaleAwareAppCompatActivity(), NavHostActivity { @VisibleForTesting internal lateinit var binding: ActivityHomeBinding lateinit var themeManager: ThemeManager @@ -611,14 +610,6 @@ open class HomeActivity : LocaleAwareAppCompatActivity(), NavHostActivity, TorAn onBackPressedCallback = onBackPressedCallback, ) - if (settings().useHtmlConnectionUi) { - val engine = components.core.engine - if (engine is GeckoEngine) { - val torIntegration = engine.getTorIntegrationController() - torIntegration.registerBootstrapStateChangeListener(this) - } - } - StartupTimeline.onActivityCreateEndHome(this) // DO NOT MOVE ANYTHING BELOW HERE. } @@ -1388,20 +1379,7 @@ open class HomeActivity : LocaleAwareAppCompatActivity(), NavHostActivity, TorAn @VisibleForTesting internal fun navigateToHome(navController: NavController) { - // if (this is ExternalAppBrowserActivity) { - // return - // } - - if (!settings().useHtmlConnectionUi) { - navController.navigate(NavGraphDirections.actionStartupTorConnectionAssist()) - } else { - navController.navigate(NavGraphDirections.actionStartupHome()) - openToBrowserAndLoad( - searchTermOrURL = "about:torconnect", - newTab = true, - from = BrowserDirection.FromHome, - ) - } + navController.navigate(NavGraphDirections.actionStartupTorConnectionAssist()) } final override fun attachBaseContext(base: Context) { @@ -1610,14 +1588,4 @@ open class HomeActivity : LocaleAwareAppCompatActivity(), NavHostActivity, TorAn finishAndRemoveTask() exitProcess(0) } - - override fun onBootstrapStageChange(stage: TorConnectStage) { - if (stage.isBootstrapped) { - if (settings().useHtmlConnectionUi) { - components.useCases.tabsUseCases.removeAllTabs() - navHost.navController.navigate(NavGraphDirections.actionStartupHome()) - } - } - } - override fun onBootstrapProgress(progress: Double, hasWarnings: Boolean) = Unit } ===================================== mobile/android/fenix/app/src/main/java/org/mozilla/fenix/browser/BaseBrowserFragment.kt ===================================== @@ -1954,10 +1954,6 @@ abstract class BaseBrowserFragment : @Suppress("DEPRECATION") it.announceForAccessibility(selectedTab.toDisplayTitle()) - if (getCurrentTab()?.content?.url == "about:torconnect") { - // FIXME: view is not available anymore. - // browserToolbarView.view.visibility = View.GONE - } } } else { view?.let { view -> initializeUI(view) } @@ -1991,26 +1987,6 @@ abstract class BaseBrowserFragment : ), ) } - - handleBetaHtmlTorConnect() - } - - private fun handleBetaHtmlTorConnect() { - val currentTab = getCurrentTab() ?: return - if (currentTab.content.url == "about:torconnect") { - if (!requireActivity().settings().useHtmlConnectionUi) { - requireContext().components.useCases.tabsUseCases.removeTab(currentTab.id) - (requireActivity() as HomeActivity).navigateToHome( - findNavController(), - ) - } else { - // This just makes it not flash (be visible for a split second) before handleTabSelected() hides it again - // FIXME: view is not available anymore. - // browserToolbarView.view.visibility = View.GONE - } - } else if (currentTab.content.url == "about:tor") { - requireContext().components.useCases.tabsUseCases.removeTab(currentTab.id) - } } private fun evaluateMessagesForMicrosurvey(components: Components) = ===================================== mobile/android/fenix/app/src/main/java/org/mozilla/fenix/settings/SettingsFragment.kt ===================================== @@ -10,7 +10,6 @@ import android.os.Bundle import android.os.Handler import android.os.Looper import android.os.StrictMode -import android.util.Log import android.view.LayoutInflater import android.view.View import android.widget.Toast @@ -31,7 +30,6 @@ import androidx.preference.SwitchPreference import androidx.recyclerview.widget.RecyclerView import com.google.android.material.dialog.MaterialAlertDialogBuilder import kotlinx.coroutines.CoroutineScope -import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.delay import kotlinx.coroutines.launch import mozilla.components.browser.state.state.selectedOrDefaultSearchEngine @@ -732,20 +730,6 @@ class SettingsFragment : PreferenceFragmentCompat(), UserInteractionHandler { @VisibleForTesting internal fun setupHomepagePreference(settings: Settings) { - /*with(requirePreference<Preference>(R.string.pref_key_home)) { - summary = when { - settings.alwaysOpenTheHomepageWhenOpeningTheApp -> - getString(R.string.opening_screen_homepage_summary) - - settings.openHomepageAfterFourHoursOfInactivity -> - getString(R.string.opening_screen_after_four_hours_of_inactivity_summary) - - settings.alwaysOpenTheLastTabWhenOpeningTheApp -> - getString(R.string.opening_screen_last_tab_summary) - - else -> null - } - }*/ } @VisibleForTesting @@ -804,11 +788,6 @@ class SettingsFragment : PreferenceFragmentCompat(), UserInteractionHandler { } } - requirePreference<Preference>(R.string.pref_key_use_html_connection_ui).apply { - onPreferenceChangeListener = object : SharedPreferenceUpdater() {} - isVisible = Config.channel != ReleaseChannel.Release - } - requirePreference<Preference>(R.string.pref_key_tor_logs).apply { setOnPreferenceClickListener { val directions = ===================================== mobile/android/fenix/app/src/main/java/org/mozilla/fenix/utils/Settings.kt ===================================== @@ -2899,11 +2899,6 @@ class Settings( return sharedPreferences.getBoolean(cleanupPreferenceKey, false) } - var useHtmlConnectionUi by booleanPreference( - key = appContext.getPreferenceKey(R.string.pref_key_use_html_connection_ui), - default = false, - ) - var quickStart by booleanPreference( appContext.getPreferenceKey(R.string.pref_key_quick_start), default = false, ===================================== mobile/android/fenix/app/src/main/res/values/preference_keys.xml ===================================== @@ -538,7 +538,6 @@ <string name="pref_key_tor_network_settings_explanation" translatable="false">pref_key_tor_network_settings_explanation</string> <string name="pref_key_tor_network_settings_bridge_config" translatable="false">pref_key_tor_network_settings_bridge_config</string> <string name="pref_key_tor_logs" translatable="false">pref_key_tor_logs</string> - <string name="pref_key_use_html_connection_ui" translatable="false">pref_key_use_html_connection_ui</string> <!-- Changing the pref_key should reset it to off for users that had it enabled --> <string name="pref_key_about_config_shortcut" translatable="false">pref_key_about_config_shortcut</string> <string name="pref_key_tor_network_settings_bridge_config_explanation" translatable="false">pref_key_tor_network_settings_bridge_config_explanation</string> <string name="pref_key_tor_network_settings_bridge_config_toggle" translatable="false">pref_key_tor_network_settings_bridge_config_toggle</string> ===================================== mobile/android/fenix/app/src/main/res/xml/preferences.xml ===================================== @@ -181,13 +181,6 @@ android:title="@string/tor_connect_automatically_label" app:iconSpaceReserved="false" /> - <SwitchPreference - android:defaultValue="false" - android:key="@string/pref_key_use_html_connection_ui" - android:summary="Recommended only for debugging" - android:title="Enable HTML connection UI" - app:iconSpaceReserved="false" /> - <Preference android:key="@string/pref_key_tor_logs" app:iconSpaceReserved="false" ===================================== toolkit/components/torconnect/content/aboutTorConnect.css ===================================== @@ -4,11 +4,6 @@ @import url("chrome://global/skin/tor-colors.css"); @import url("chrome://global/skin/onion-pattern.css"); -html { - width: 100%; - height: 100%; -} - body:not(.loaded) { /* Keep blank whilst loading. */ display: none; @@ -275,147 +270,3 @@ body.aboutTorConnect .title.location { background-image: url("chrome://global/content/torconnect/connection-location.svg"); stroke: var(--icon-color-warning); } - -/* Android-specific CSS, to be removed when we use only the native UI. */ -:root { - --android-dark-accents-buttons: #9059ff; - --android-dark-background-secondary: #e1e0e7; - --android-dark-text-primary: #fbfbfe; - --android-light-text-primary: #15141a; -} - -[hidden="true"] { - display: none !important; -} - -body.android { - width: 100%; - height: 100%; - box-sizing: border-box; - margin: 0; - padding: 0 24px !important; - color: var(--android-dark-text-primary); - background: linear-gradient(194deg, #692e9d -0.93%, #393270 48.91%); - font: menu; - font-size: var(--font-size-small); - display: flex; -} - -.android #connectPageContainer { - max-width: none; - display: flex; - flex-direction: column; - flex: 1; -} - -.android #breadcrumbs { - display: none; -} - -.android #text-container { - display: flex; - flex-direction: column; - flex: 1; -} - -.android .title { - background-position: left 0; - background-repeat: no-repeat; - background-size: 40px; - padding-top: 64px; - font-size: var(--font-size-xlarge); - line-height: 28px; -} - -.android h1 { - font-weight: var(--font-weight); - font-size: inherit; - margin: 0 0 16px 0; -} - -.android p { - margin: 0; - padding-bottom: 8px; - line-height: 20px; -} - -.android #quickstartContainer { - margin-top: 24px; -} - -.android .button-container { - display: flex; - flex: 1; - flex-direction: column; -} - -.android #locationDropdown { - width: 100%; - max-width: none; - margin: 0; -} - -.android select { - background: transparent; - border: none; - /* stylelint-disable-next-line stylelint-plugin-mozilla/use-border-color-tokens */ - border-bottom: 1px solid var(--android-dark-text-primary); - color: var(--android-dark-text-primary); - display: block; - width: 100%; - margin-top: 10px; - padding: 8px; -} - -.android #buttonPadding { - flex: 1; -} - -body:not(.android) #connectButtonContainer { - /* Use the .button-container context */ - display: contents; -} - -.android #connectButtonContainer { - width: 100%; - padding-bottom: 18px; - display: grid; -} - -/* Be sure not to match the togglee */ -.android #connectButtonContainer button { - display: block; - width: 100%; - margin: 4px 0; - padding: 11px 30px; - font-size: var(--font-size-small); - font-weight: var(--font-weight); - border: none; - border-radius: var(--border-radius-small); -} - -.android #connectButton, -.android #tryBridgeButton, -.android #configureButton.primary { - color: var(--android-dark-text-primary); - background-color: var(--android-dark-accents-buttons); -} - -.android #configureButton { - order: 1; -} - -.android #restartButton { - order: 2; -} - -.android #restartButton, -.android #cancelButton, -.android #configureButton { - color: var(--android-light-text-primary); - background-color: var(--android-dark-background-secondary); -} - -.android .onion-pattern-container { - display: none; -} ===================================== toolkit/components/torconnect/content/aboutTorConnect.html ===================================== @@ -6,7 +6,6 @@ http-equiv="Content-Security-Policy" content="default-src chrome:; object-src 'none'" /> - <meta name="viewport" content="width=device-width" /> <link rel="stylesheet" href="chrome://global/content/torconnect/aboutTorConnect.css" @@ -65,7 +64,11 @@ <moz-toggle id="quickstartToggle"></moz-toggle> </div> - <div class="button-container"> + <div id="connectButtonContainer" class="button-container"> + <button id="restartButton" hidden="true"></button> + <button id="configureButton" hidden="true"></button> + <button id="cancelButton" hidden="true"></button> + <button id="connectButton" hidden="true" class="tor-button"></button> <label id="locationDropdownLabel" for="countries"></label> <form id="locationDropdown" hidden="true"> <select id="regions-select"> @@ -74,22 +77,11 @@ <optgroup id="full-regions-option-group"></optgroup> </select> </form> - <span id="buttonPadding"></span> - <span id="connectButtonContainer"> - <button id="restartButton" hidden="true"></button> - <button id="configureButton" hidden="true"></button> - <button id="cancelButton" hidden="true"></button> - <button - id="connectButton" - hidden="true" - class="tor-button" - ></button> - <button - id="tryBridgeButton" - hidden="true" - class="tor-button" - ></button> - </span> + <button + id="tryBridgeButton" + hidden="true" + class="tor-button" + ></button> </div> </div> </div> ===================================== toolkit/components/torconnect/content/aboutTorConnect.js ===================================== @@ -66,7 +66,7 @@ class AboutTorConnect { connect: "button#connectButton", tryBridge: "button#tryBridgeButton", locationDropdownLabel: "#locationDropdownLabel", - locationDropdown: "#locationDropdown", + locationDropdown: "form#locationDropdown", locationDropdownSelect: "#regions-select", }, }); @@ -757,9 +757,6 @@ class AboutTorConnect { } initElements(direction) { - const isAndroid = navigator.userAgent.includes("Android"); - document.body.classList.toggle("android", isAndroid); - document.documentElement.setAttribute("dir", direction); this.elements.connectToTorLink.addEventListener("click", () => { View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/compare/e2e816… -- View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/compare/e2e816… 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] 2 commits: Bug 2013390: Test file extension before testing zip and tarfiles.r=ahal
by brizental (@brizental) 05 Feb '26

05 Feb '26
brizental pushed to branch tor-browser-147.0a1-16.0-2 at The Tor Project / Applications / Tor Browser Commits: bd2b83d9 by Beatriz Rizental at 2026-02-05T19:38:10+01:00 Bug 2013390: Test file extension before testing zip and tarfiles.r=ahal The tarfile check specifically has been returning false positives on DMG files. Differential Revision: https://phabricator.services.mozilla.com/D281070 - - - - - e2e81683 by Beatriz Rizental at 2026-02-05T19:38:10+01:00 Bug 2013358: Drop Python <3.13 requirement from manifestparser.r=ahal Differential Revision: https://phabricator.services.mozilla.com/D281036 - - - - - 2 changed files: - testing/mozbase/manifestparser/setup.py - testing/mozbase/mozinstall/mozinstall/mozinstall.py Changes: ===================================== testing/mozbase/manifestparser/setup.py ===================================== @@ -25,6 +25,7 @@ setup( "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", + "Programming Language :: Python :: 3.13", ], # Get strings from http://pypi.python.org/pypi?%3Aaction=list_classifiers keywords="mozilla manifests", @@ -39,5 +40,5 @@ setup( [console_scripts] manifestparser = manifestparser.cli:main """, - python_requires=">=3.8, <3.13", + python_requires=">=3.8", ) ===================================== testing/mozbase/mozinstall/mozinstall/mozinstall.py ===================================== @@ -121,12 +121,12 @@ def install(src, dest): if src.lower().endswith(".msix"): # MSIX packages _are_ ZIP files, so we need to look for them first. install_dir = _install_msix(src) - elif zipfile.is_zipfile(src) or tarfile.is_tarfile(src): - install_dir = mozfile.extract(src, dest)[0] elif src.lower().endswith(".dmg"): install_dir = _install_dmg(src, dest) elif src.lower().endswith(".exe"): install_dir = _install_exe(src, dest) + elif zipfile.is_zipfile(src) or tarfile.is_tarfile(src): + install_dir = mozfile.extract(src, dest)[0] else: raise InvalidSource(f"{src} is not a valid installer file") View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/compare/ffe41b… -- View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/compare/ffe41b… 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! BB 42683: Create script to generate issue triage csv file from bugzilla query and git logs
by Pier Angelo Vendrame (@pierov) 05 Feb '26

05 Feb '26
Pier Angelo Vendrame pushed to branch base-browser-147.0a1-16.0-2 at The Tor Project / Applications / Tor Browser Commits: f54e79d0 by Pier Angelo Vendrame at 2026-02-05T19:14:32+01:00 fixup! BB 42683: Create script to generate issue triage csv file from bugzilla query and git logs Delete the script that has been moved to tor-browser-build:tools/browser. - - - - - 1 changed file: - − tools/torbrowser/generate-bugzilla-triage-csv.sh Changes: ===================================== tools/torbrowser/generate-bugzilla-triage-csv.sh deleted ===================================== @@ -1,239 +0,0 @@ -#!/usr/bin/env bash - -# prints to stderr -function echoerr() { echo "$@" 1>&2; } - -# help dialog -if [ "$#" -lt 5 ]; then - echoerr "Usage: $0 ff-version begin-commit end-commit gitlab-audit-issue reviewers..." - echoerr "" - echoerr "Writes a CSV to stdout of Bugzilla issues to triage for a particular Firefox version. This" - echoerr "script performs a union of the labeled Bugzilla issues in Mozilla's issue tracker and the" - echoerr "labeled commits in the provided commit range" - echoerr - echoerr " ff-version rapid-release Firefox version to audit" - echoerr " begin-commit starting gecko-dev commit of this Firefox version" - echoerr " end-commit ending gecko-dev commit of this Firefox version" - echoerr " gitlab-audit-issue tor-browser-spec Gitlab issue number for this audit" - echoerr " reviewers... space-separated list of reviewers responsible for this audit" - echoerr "" - echoerr "Example:" - echoerr "" - echoerr "$0 116 FIREFOX_ESR_115_BASE FIREFOX_116_0_3_RELEASE 40064 richard pierov henry" - exit 1 -fi - -# set -x -set -e - - -# Ensure various required tools are available -function check_exists() { - local cmd=$1 - if ! which ${cmd} > /dev/null ; then - echoerr "missing ${cmd} dependency" - exit 1 - fi -} - -check_exists git -check_exists jq -check_exists mktemp -check_exists perl -check_exists printf -check_exists sed -check_exists sort -check_exists touch -check_exists uniq -check_exists wget - -# Assign arguments to named variables -firefox_version=$1 -git_begin=$2 -git_end=$3 -audit_issue=$4 -reviewers="${@:5}" - -# Check valid Firefox version -if ! [[ "${firefox_version}" =~ ^[1-9][0-9]{2}$ ]]; then - echoerr "invalid Firefox version (probably)" - exit 1 -fi - -# Check valid Gitlab issue number -if ! [[ "${audit_issue}" =~ ^[1-9][0-9]{4}$ ]]; then - echoerr "invalid gitlab audit issue number (probably)" - exit 1 -fi - -# -# Encoding/Decoding Functions -# - -# escape " and \ -function json_escape() { - local input="$1" - echo "${input}" | sed 's/["\]/\\"/g' -} - - -# un-escape \" -function jq_unescape() { - local input="$1" - echo "${input}" | sed 's/\\"/"/g' -} - -# change quotes to double-quotes -function csv_escape() { - local input="$1" - echo "${input}" | sed 's/"/""/g' -} - -# we need to urlencode the strings used in the new issue link -function url_encode() { - local input="$1" - echo "${input}" | perl -MURI::Escape -wlne 'print uri_escape $_' -} - - -# -# Create temp json files -# -git_json=$(mktemp -t git-audit-${firefox_version}-XXXXXXXXXXX.json) -bugzilla_json=$(mktemp -t bugzilla-audit-${firefox_version}-XXXXXXXXXXX.json) -union_json=$(mktemp -t union-audit-${firefox_version}-XXXXXXXXXXX.json) -touch "${git_json}" -touch "${bugzilla_json}" -touch "${union_json}" - -function json_cleanup { - rm -f "${git_json}" - rm -f "${bugzilla_json}" - rm -f "${union_json}" -} -trap json_cleanup EXIT - -# -# Generate Git Commit Triage List -# - -# Try and extract bug id and summary from git log -# Mozilla's commits are not always 100% consistently named, so this -# regex is a bit flexible to handle various inputs such as: -# "Bug 1234 -", "Bug 1234:", "Bug Bug 1234 -", "[Bug 1234] -", " bug 1234 -". -sed_extract_id_summary="s/^[[ ]*[bug –-]+ ([1-9][0-9]*)[]:\., –-]*(.*)\$/\\1 \\2/pI" - -# Generate a json array of objects in the same format as bugzilla: {id: number, summary: string} -printf "[\n" >> "${git_json}" - -first_object=true -git log --format='%s' $git_begin..$git_end \ -| sed -En "${sed_extract_id_summary}" \ -| sort -h \ -| uniq \ -| while IFS= read -r line; do - read -r id summary <<< "${line}" - summary=$(json_escape "${summary}") - - # json does not allow trailing commas - if [[ "${first_object}" = true ]]; then - first_object=false - else - printf ",\n" >> "${git_json}" - fi - - printf " { \"id\": %s, \"summary\": \"%s\" }" ${id} "${summary}" >> "${git_json}" -done -printf "\n]\n" >> "${git_json}" - -# -# Download Bugzilla Triage List -# - -# search for: -# + Product is NOT "Thunderbird,Calander,Chat Core,MailNews Core" (&f1=product&n1=1&o1=anyexact&v1=Thunderbird%2CCalendar%2CChat%20Core%2CMailNews%20Core). AND -# + Target Milestone contains "${firefox_version}" (115 Branch or Firefox 115) (&f2=target_milestone&o2=substring&v2=${firefox_version}). -# "&limit=0" shows all matching bugs. - -query_tail="&f1=product&n1=1&o1=anyexact&v1=Thunderbird%2CCalendar%2CChat%20Core%2CMailNews%20Core&f2=target_milestone&o2=substring&v2=${firefox_version}&limit=0" - -bugzilla_query="https://bugzilla.mozilla.org/buglist.cgi?${query_tail}" -bugzilla_json_query="https://bugzilla.mozilla.org/rest/bug?include_fields=id,component,summary${…" - -wget "${bugzilla_json_query}" -O ${bugzilla_json} - - -# -# Create Union of these two sets of issues -# - -# bugzilla array is actually on a root object: { bugs: [...] } -jq -s '[ (.[0].bugs)[], (.[1])[] ] | group_by(.id) | map(.[0])' "${bugzilla_json}" "${git_json}" > "${union_json}" - -# -# Generate Triage CSV -# - -echo "\"Review\",,\"Bugzilla Component\",\"Bugzilla Bug\"" - -jq '. | sort_by([.component, .id])[] | "\(.id)|\(.component)|\(.summary)"' ${union_json} \ -| while IFS='|' read -r id component summary; do - - # bugzilla info - id="${id:1}" - component="${component:0}" - summary="${summary:0:-1}" - summary=$(jq_unescape "${summary}") - # short summary for gitlab issue title - [[ ${#summary} -gt 80 ]] && summary_short="${summary:0:77}..." || summary_short="${summary}" - - # filter out some issue types that we never care about - skip_issue=false - - # skip `[wpt-sync] Sync PR` - if [[ "${summary}" =~ ^\[wpt-sync\]\ Sync\ PR.*$ ]]; then - skip_issue=true - # skip `Crash in [@` and variants - elif [[ "${summary}" =~ ^Crash[esin\ ]*\ \[\@.*$ ]]; then - skip_issue=true - # skip `Assertion failuire: ` - elif [[ "${summary}" =~ ^Assertion\ failure:\ .*$ ]]; then - skip_issue=true - # skip `Hit MOZ_CRASH` - elif [[ "${summary}" =~ ^Hit\ MOZ_CRASH.*$ ]]; then - skip_issue=true - fi - - if [[ "${skip_issue}" = true ]]; then - echoerr "Skipped Bugzilla ${id}: ${summary_short}" - else - csv_summary=$(csv_escape "${summary}") - csv_component=$(csv_escape "${component}") - - # parent issue - bugzilla_url="https://bugzilla.mozilla.org/show_bug.cgi?id=${id}" - # review issue title - new_issue_title=$(url_encode "Review Mozilla ${id}: ${summary_short}") - # review issue description + labeling (14.0 stable, FF128-esr, Next) - new_issue_description=$(url_encode "### Bugzilla: ${bugzilla_url}")%0A$(url_encode "/label ~\"14.0 stable\" ~FF128-esr ~Next")%0A$(url_encode "/relate tpo/applications/tor-browser-spec#${audit_issue}")%0A%0A$(url_encode "<!-- briefly describe why this issue needs further review -->")%0A - # url which create's new issue with title and description pre-populated - new_issue_url="https://gitlab.torproject.org/tpo/applications/tor-browser/-/issues/new?iss…" - - # this link will start the creation of a new gitlab issue to review - create_issue=$(csv_escape "=HYPERLINK(\"${new_issue_url}\", \"New Issue\")") - bugzilla_link=$(csv_escape "=HYPERLINK(\"${bugzilla_url}\", \"Bugzilla ${id}: ${csv_summary}\")") - - echo "FALSE,\"${create_issue}\",\"${csv_component}\",\"${bugzilla_link}\"," - fi -done - -echo -echo "\"Triaged by:\"" -for reviewer in $reviewers; do - reviewer=$(csv_escape "${reviewer}") - echo "\"FALSE\",\"${reviewer}\"" -done -echo - -bugzilla_query="=HYPERLINK(\"${bugzilla_query}\", \"Bugzilla query\")" -echo \"$(csv_escape "${bugzilla_query}")\" View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/commit/f54e79d… -- View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/commit/f54e79d… You're receiving this email because of your account on gitlab.torproject.org.
1 0
0 0
[Git][tpo/applications/mullvad-browser][mullvad-browser-147.0a1-16.0-2] fixup! BB 42683: Create script to generate issue triage csv file from bugzilla query and git logs
by Pier Angelo Vendrame (@pierov) 05 Feb '26

05 Feb '26
Pier Angelo Vendrame pushed to branch mullvad-browser-147.0a1-16.0-2 at The Tor Project / Applications / Mullvad Browser Commits: 6e6f9b68 by Pier Angelo Vendrame at 2026-02-05T19:13:47+01:00 fixup! BB 42683: Create script to generate issue triage csv file from bugzilla query and git logs Delete the script that has been moved to tor-browser-build:tools/browser. - - - - - 1 changed file: - − tools/torbrowser/generate-bugzilla-triage-csv.sh Changes: ===================================== tools/torbrowser/generate-bugzilla-triage-csv.sh deleted ===================================== @@ -1,239 +0,0 @@ -#!/usr/bin/env bash - -# prints to stderr -function echoerr() { echo "$@" 1>&2; } - -# help dialog -if [ "$#" -lt 5 ]; then - echoerr "Usage: $0 ff-version begin-commit end-commit gitlab-audit-issue reviewers..." - echoerr "" - echoerr "Writes a CSV to stdout of Bugzilla issues to triage for a particular Firefox version. This" - echoerr "script performs a union of the labeled Bugzilla issues in Mozilla's issue tracker and the" - echoerr "labeled commits in the provided commit range" - echoerr - echoerr " ff-version rapid-release Firefox version to audit" - echoerr " begin-commit starting gecko-dev commit of this Firefox version" - echoerr " end-commit ending gecko-dev commit of this Firefox version" - echoerr " gitlab-audit-issue tor-browser-spec Gitlab issue number for this audit" - echoerr " reviewers... space-separated list of reviewers responsible for this audit" - echoerr "" - echoerr "Example:" - echoerr "" - echoerr "$0 116 FIREFOX_ESR_115_BASE FIREFOX_116_0_3_RELEASE 40064 richard pierov henry" - exit 1 -fi - -# set -x -set -e - - -# Ensure various required tools are available -function check_exists() { - local cmd=$1 - if ! which ${cmd} > /dev/null ; then - echoerr "missing ${cmd} dependency" - exit 1 - fi -} - -check_exists git -check_exists jq -check_exists mktemp -check_exists perl -check_exists printf -check_exists sed -check_exists sort -check_exists touch -check_exists uniq -check_exists wget - -# Assign arguments to named variables -firefox_version=$1 -git_begin=$2 -git_end=$3 -audit_issue=$4 -reviewers="${@:5}" - -# Check valid Firefox version -if ! [[ "${firefox_version}" =~ ^[1-9][0-9]{2}$ ]]; then - echoerr "invalid Firefox version (probably)" - exit 1 -fi - -# Check valid Gitlab issue number -if ! [[ "${audit_issue}" =~ ^[1-9][0-9]{4}$ ]]; then - echoerr "invalid gitlab audit issue number (probably)" - exit 1 -fi - -# -# Encoding/Decoding Functions -# - -# escape " and \ -function json_escape() { - local input="$1" - echo "${input}" | sed 's/["\]/\\"/g' -} - - -# un-escape \" -function jq_unescape() { - local input="$1" - echo "${input}" | sed 's/\\"/"/g' -} - -# change quotes to double-quotes -function csv_escape() { - local input="$1" - echo "${input}" | sed 's/"/""/g' -} - -# we need to urlencode the strings used in the new issue link -function url_encode() { - local input="$1" - echo "${input}" | perl -MURI::Escape -wlne 'print uri_escape $_' -} - - -# -# Create temp json files -# -git_json=$(mktemp -t git-audit-${firefox_version}-XXXXXXXXXXX.json) -bugzilla_json=$(mktemp -t bugzilla-audit-${firefox_version}-XXXXXXXXXXX.json) -union_json=$(mktemp -t union-audit-${firefox_version}-XXXXXXXXXXX.json) -touch "${git_json}" -touch "${bugzilla_json}" -touch "${union_json}" - -function json_cleanup { - rm -f "${git_json}" - rm -f "${bugzilla_json}" - rm -f "${union_json}" -} -trap json_cleanup EXIT - -# -# Generate Git Commit Triage List -# - -# Try and extract bug id and summary from git log -# Mozilla's commits are not always 100% consistently named, so this -# regex is a bit flexible to handle various inputs such as: -# "Bug 1234 -", "Bug 1234:", "Bug Bug 1234 -", "[Bug 1234] -", " bug 1234 -". -sed_extract_id_summary="s/^[[ ]*[bug –-]+ ([1-9][0-9]*)[]:\., –-]*(.*)\$/\\1 \\2/pI" - -# Generate a json array of objects in the same format as bugzilla: {id: number, summary: string} -printf "[\n" >> "${git_json}" - -first_object=true -git log --format='%s' $git_begin..$git_end \ -| sed -En "${sed_extract_id_summary}" \ -| sort -h \ -| uniq \ -| while IFS= read -r line; do - read -r id summary <<< "${line}" - summary=$(json_escape "${summary}") - - # json does not allow trailing commas - if [[ "${first_object}" = true ]]; then - first_object=false - else - printf ",\n" >> "${git_json}" - fi - - printf " { \"id\": %s, \"summary\": \"%s\" }" ${id} "${summary}" >> "${git_json}" -done -printf "\n]\n" >> "${git_json}" - -# -# Download Bugzilla Triage List -# - -# search for: -# + Product is NOT "Thunderbird,Calander,Chat Core,MailNews Core" (&f1=product&n1=1&o1=anyexact&v1=Thunderbird%2CCalendar%2CChat%20Core%2CMailNews%20Core). AND -# + Target Milestone contains "${firefox_version}" (115 Branch or Firefox 115) (&f2=target_milestone&o2=substring&v2=${firefox_version}). -# "&limit=0" shows all matching bugs. - -query_tail="&f1=product&n1=1&o1=anyexact&v1=Thunderbird%2CCalendar%2CChat%20Core%2CMailNews%20Core&f2=target_milestone&o2=substring&v2=${firefox_version}&limit=0" - -bugzilla_query="https://bugzilla.mozilla.org/buglist.cgi?${query_tail}" -bugzilla_json_query="https://bugzilla.mozilla.org/rest/bug?include_fields=id,component,summary${…" - -wget "${bugzilla_json_query}" -O ${bugzilla_json} - - -# -# Create Union of these two sets of issues -# - -# bugzilla array is actually on a root object: { bugs: [...] } -jq -s '[ (.[0].bugs)[], (.[1])[] ] | group_by(.id) | map(.[0])' "${bugzilla_json}" "${git_json}" > "${union_json}" - -# -# Generate Triage CSV -# - -echo "\"Review\",,\"Bugzilla Component\",\"Bugzilla Bug\"" - -jq '. | sort_by([.component, .id])[] | "\(.id)|\(.component)|\(.summary)"' ${union_json} \ -| while IFS='|' read -r id component summary; do - - # bugzilla info - id="${id:1}" - component="${component:0}" - summary="${summary:0:-1}" - summary=$(jq_unescape "${summary}") - # short summary for gitlab issue title - [[ ${#summary} -gt 80 ]] && summary_short="${summary:0:77}..." || summary_short="${summary}" - - # filter out some issue types that we never care about - skip_issue=false - - # skip `[wpt-sync] Sync PR` - if [[ "${summary}" =~ ^\[wpt-sync\]\ Sync\ PR.*$ ]]; then - skip_issue=true - # skip `Crash in [@` and variants - elif [[ "${summary}" =~ ^Crash[esin\ ]*\ \[\@.*$ ]]; then - skip_issue=true - # skip `Assertion failuire: ` - elif [[ "${summary}" =~ ^Assertion\ failure:\ .*$ ]]; then - skip_issue=true - # skip `Hit MOZ_CRASH` - elif [[ "${summary}" =~ ^Hit\ MOZ_CRASH.*$ ]]; then - skip_issue=true - fi - - if [[ "${skip_issue}" = true ]]; then - echoerr "Skipped Bugzilla ${id}: ${summary_short}" - else - csv_summary=$(csv_escape "${summary}") - csv_component=$(csv_escape "${component}") - - # parent issue - bugzilla_url="https://bugzilla.mozilla.org/show_bug.cgi?id=${id}" - # review issue title - new_issue_title=$(url_encode "Review Mozilla ${id}: ${summary_short}") - # review issue description + labeling (14.0 stable, FF128-esr, Next) - new_issue_description=$(url_encode "### Bugzilla: ${bugzilla_url}")%0A$(url_encode "/label ~\"14.0 stable\" ~FF128-esr ~Next")%0A$(url_encode "/relate tpo/applications/tor-browser-spec#${audit_issue}")%0A%0A$(url_encode "<!-- briefly describe why this issue needs further review -->")%0A - # url which create's new issue with title and description pre-populated - new_issue_url="https://gitlab.torproject.org/tpo/applications/tor-browser/-/issues/new?iss…" - - # this link will start the creation of a new gitlab issue to review - create_issue=$(csv_escape "=HYPERLINK(\"${new_issue_url}\", \"New Issue\")") - bugzilla_link=$(csv_escape "=HYPERLINK(\"${bugzilla_url}\", \"Bugzilla ${id}: ${csv_summary}\")") - - echo "FALSE,\"${create_issue}\",\"${csv_component}\",\"${bugzilla_link}\"," - fi -done - -echo -echo "\"Triaged by:\"" -for reviewer in $reviewers; do - reviewer=$(csv_escape "${reviewer}") - echo "\"FALSE\",\"${reviewer}\"" -done -echo - -bugzilla_query="=HYPERLINK(\"${bugzilla_query}\", \"Bugzilla query\")" -echo \"$(csv_escape "${bugzilla_query}")\" View it on GitLab: https://gitlab.torproject.org/tpo/applications/mullvad-browser/-/commit/6e6… -- View it on GitLab: https://gitlab.torproject.org/tpo/applications/mullvad-browser/-/commit/6e6… 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! BB 42683: Create script to generate issue triage csv file from bugzilla query and git logs
by Pier Angelo Vendrame (@pierov) 05 Feb '26

05 Feb '26
Pier Angelo Vendrame pushed to branch tor-browser-147.0a1-16.0-2 at The Tor Project / Applications / Tor Browser Commits: ffe41bf4 by Pier Angelo Vendrame at 2026-02-05T19:11:01+01:00 fixup! BB 42683: Create script to generate issue triage csv file from bugzilla query and git logs Delete the script that has been moved to tor-browser-build:tools/browser. - - - - - 1 changed file: - − tools/torbrowser/generate-bugzilla-triage-csv.sh Changes: ===================================== tools/torbrowser/generate-bugzilla-triage-csv.sh deleted ===================================== @@ -1,239 +0,0 @@ -#!/usr/bin/env bash - -# prints to stderr -function echoerr() { echo "$@" 1>&2; } - -# help dialog -if [ "$#" -lt 5 ]; then - echoerr "Usage: $0 ff-version begin-commit end-commit gitlab-audit-issue reviewers..." - echoerr "" - echoerr "Writes a CSV to stdout of Bugzilla issues to triage for a particular Firefox version. This" - echoerr "script performs a union of the labeled Bugzilla issues in Mozilla's issue tracker and the" - echoerr "labeled commits in the provided commit range" - echoerr - echoerr " ff-version rapid-release Firefox version to audit" - echoerr " begin-commit starting gecko-dev commit of this Firefox version" - echoerr " end-commit ending gecko-dev commit of this Firefox version" - echoerr " gitlab-audit-issue tor-browser-spec Gitlab issue number for this audit" - echoerr " reviewers... space-separated list of reviewers responsible for this audit" - echoerr "" - echoerr "Example:" - echoerr "" - echoerr "$0 116 FIREFOX_ESR_115_BASE FIREFOX_116_0_3_RELEASE 40064 richard pierov henry" - exit 1 -fi - -# set -x -set -e - - -# Ensure various required tools are available -function check_exists() { - local cmd=$1 - if ! which ${cmd} > /dev/null ; then - echoerr "missing ${cmd} dependency" - exit 1 - fi -} - -check_exists git -check_exists jq -check_exists mktemp -check_exists perl -check_exists printf -check_exists sed -check_exists sort -check_exists touch -check_exists uniq -check_exists wget - -# Assign arguments to named variables -firefox_version=$1 -git_begin=$2 -git_end=$3 -audit_issue=$4 -reviewers="${@:5}" - -# Check valid Firefox version -if ! [[ "${firefox_version}" =~ ^[1-9][0-9]{2}$ ]]; then - echoerr "invalid Firefox version (probably)" - exit 1 -fi - -# Check valid Gitlab issue number -if ! [[ "${audit_issue}" =~ ^[1-9][0-9]{4}$ ]]; then - echoerr "invalid gitlab audit issue number (probably)" - exit 1 -fi - -# -# Encoding/Decoding Functions -# - -# escape " and \ -function json_escape() { - local input="$1" - echo "${input}" | sed 's/["\]/\\"/g' -} - - -# un-escape \" -function jq_unescape() { - local input="$1" - echo "${input}" | sed 's/\\"/"/g' -} - -# change quotes to double-quotes -function csv_escape() { - local input="$1" - echo "${input}" | sed 's/"/""/g' -} - -# we need to urlencode the strings used in the new issue link -function url_encode() { - local input="$1" - echo "${input}" | perl -MURI::Escape -wlne 'print uri_escape $_' -} - - -# -# Create temp json files -# -git_json=$(mktemp -t git-audit-${firefox_version}-XXXXXXXXXXX.json) -bugzilla_json=$(mktemp -t bugzilla-audit-${firefox_version}-XXXXXXXXXXX.json) -union_json=$(mktemp -t union-audit-${firefox_version}-XXXXXXXXXXX.json) -touch "${git_json}" -touch "${bugzilla_json}" -touch "${union_json}" - -function json_cleanup { - rm -f "${git_json}" - rm -f "${bugzilla_json}" - rm -f "${union_json}" -} -trap json_cleanup EXIT - -# -# Generate Git Commit Triage List -# - -# Try and extract bug id and summary from git log -# Mozilla's commits are not always 100% consistently named, so this -# regex is a bit flexible to handle various inputs such as: -# "Bug 1234 -", "Bug 1234:", "Bug Bug 1234 -", "[Bug 1234] -", " bug 1234 -". -sed_extract_id_summary="s/^[[ ]*[bug –-]+ ([1-9][0-9]*)[]:\., –-]*(.*)\$/\\1 \\2/pI" - -# Generate a json array of objects in the same format as bugzilla: {id: number, summary: string} -printf "[\n" >> "${git_json}" - -first_object=true -git log --format='%s' $git_begin..$git_end \ -| sed -En "${sed_extract_id_summary}" \ -| sort -h \ -| uniq \ -| while IFS= read -r line; do - read -r id summary <<< "${line}" - summary=$(json_escape "${summary}") - - # json does not allow trailing commas - if [[ "${first_object}" = true ]]; then - first_object=false - else - printf ",\n" >> "${git_json}" - fi - - printf " { \"id\": %s, \"summary\": \"%s\" }" ${id} "${summary}" >> "${git_json}" -done -printf "\n]\n" >> "${git_json}" - -# -# Download Bugzilla Triage List -# - -# search for: -# + Product is NOT "Thunderbird,Calander,Chat Core,MailNews Core" (&f1=product&n1=1&o1=anyexact&v1=Thunderbird%2CCalendar%2CChat%20Core%2CMailNews%20Core). AND -# + Target Milestone contains "${firefox_version}" (115 Branch or Firefox 115) (&f2=target_milestone&o2=substring&v2=${firefox_version}). -# "&limit=0" shows all matching bugs. - -query_tail="&f1=product&n1=1&o1=anyexact&v1=Thunderbird%2CCalendar%2CChat%20Core%2CMailNews%20Core&f2=target_milestone&o2=substring&v2=${firefox_version}&limit=0" - -bugzilla_query="https://bugzilla.mozilla.org/buglist.cgi?${query_tail}" -bugzilla_json_query="https://bugzilla.mozilla.org/rest/bug?include_fields=id,component,summary${…" - -wget "${bugzilla_json_query}" -O ${bugzilla_json} - - -# -# Create Union of these two sets of issues -# - -# bugzilla array is actually on a root object: { bugs: [...] } -jq -s '[ (.[0].bugs)[], (.[1])[] ] | group_by(.id) | map(.[0])' "${bugzilla_json}" "${git_json}" > "${union_json}" - -# -# Generate Triage CSV -# - -echo "\"Review\",,\"Bugzilla Component\",\"Bugzilla Bug\"" - -jq '. | sort_by([.component, .id])[] | "\(.id)|\(.component)|\(.summary)"' ${union_json} \ -| while IFS='|' read -r id component summary; do - - # bugzilla info - id="${id:1}" - component="${component:0}" - summary="${summary:0:-1}" - summary=$(jq_unescape "${summary}") - # short summary for gitlab issue title - [[ ${#summary} -gt 80 ]] && summary_short="${summary:0:77}..." || summary_short="${summary}" - - # filter out some issue types that we never care about - skip_issue=false - - # skip `[wpt-sync] Sync PR` - if [[ "${summary}" =~ ^\[wpt-sync\]\ Sync\ PR.*$ ]]; then - skip_issue=true - # skip `Crash in [@` and variants - elif [[ "${summary}" =~ ^Crash[esin\ ]*\ \[\@.*$ ]]; then - skip_issue=true - # skip `Assertion failuire: ` - elif [[ "${summary}" =~ ^Assertion\ failure:\ .*$ ]]; then - skip_issue=true - # skip `Hit MOZ_CRASH` - elif [[ "${summary}" =~ ^Hit\ MOZ_CRASH.*$ ]]; then - skip_issue=true - fi - - if [[ "${skip_issue}" = true ]]; then - echoerr "Skipped Bugzilla ${id}: ${summary_short}" - else - csv_summary=$(csv_escape "${summary}") - csv_component=$(csv_escape "${component}") - - # parent issue - bugzilla_url="https://bugzilla.mozilla.org/show_bug.cgi?id=${id}" - # review issue title - new_issue_title=$(url_encode "Review Mozilla ${id}: ${summary_short}") - # review issue description + labeling (14.0 stable, FF128-esr, Next) - new_issue_description=$(url_encode "### Bugzilla: ${bugzilla_url}")%0A$(url_encode "/label ~\"14.0 stable\" ~FF128-esr ~Next")%0A$(url_encode "/relate tpo/applications/tor-browser-spec#${audit_issue}")%0A%0A$(url_encode "<!-- briefly describe why this issue needs further review -->")%0A - # url which create's new issue with title and description pre-populated - new_issue_url="https://gitlab.torproject.org/tpo/applications/tor-browser/-/issues/new?iss…" - - # this link will start the creation of a new gitlab issue to review - create_issue=$(csv_escape "=HYPERLINK(\"${new_issue_url}\", \"New Issue\")") - bugzilla_link=$(csv_escape "=HYPERLINK(\"${bugzilla_url}\", \"Bugzilla ${id}: ${csv_summary}\")") - - echo "FALSE,\"${create_issue}\",\"${csv_component}\",\"${bugzilla_link}\"," - fi -done - -echo -echo "\"Triaged by:\"" -for reviewer in $reviewers; do - reviewer=$(csv_escape "${reviewer}") - echo "\"FALSE\",\"${reviewer}\"" -done -echo - -bugzilla_query="=HYPERLINK(\"${bugzilla_query}\", \"Bugzilla query\")" -echo \"$(csv_escape "${bugzilla_query}")\" View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/commit/ffe41bf… -- View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/commit/ffe41bf… You're receiving this email because of your account on gitlab.torproject.org.
1 0
0 0
[Git][tpo/applications/mullvad-browser][mullvad-browser-147.0a1-16.0-2] fixup! MB 1: Mullvad Browser branding
by Pier Angelo Vendrame (@pierov) 05 Feb '26

05 Feb '26
Pier Angelo Vendrame pushed to branch mullvad-browser-147.0a1-16.0-2 at The Tor Project / Applications / Mullvad Browser Commits: a6a3a657 by Pier Angelo Vendrame at 2026-02-03T12:03:21+01:00 fixup! MB 1: Mullvad Browser branding BB 44050: Use net.mullvad rather than org.mozilla for D-bus. - - - - - 2 changed files: - toolkit/components/remote/nsDBusRemoteClient.cpp - toolkit/components/remote/nsDBusRemoteServer.cpp Changes: ===================================== toolkit/components/remote/nsDBusRemoteClient.cpp ===================================== @@ -77,7 +77,7 @@ bool nsDBusRemoteClient::GetRemoteDestinationName(const char* aProgram, mozilla::XREAppData::SanitizeNameForDBus(profileName); aDestinationName = - nsPrintfCString("org.mozilla.%s.%s", aProgram, profileName.get()); + nsPrintfCString("net.mullvad.%s.%s", aProgram, profileName.get()); if (aDestinationName.Length() > DBUS_MAXIMUM_NAME_LENGTH) aDestinationName.Truncate(DBUS_MAXIMUM_NAME_LENGTH); @@ -91,7 +91,7 @@ bool nsDBusRemoteClient::GetRemoteDestinationName(const char* aProgram, if (!sDBusValidateBusName(aDestinationName.get(), nullptr)) { // We don't have a valid busName yet - try to create a default one. aDestinationName = - nsPrintfCString("org.mozilla.%s.%s", aProgram, "default"); + nsPrintfCString("net.mullvad.%s.%s", aProgram, "default"); if (!sDBusValidateBusName(aDestinationName.get(), nullptr)) { // We failed completelly to get a valid bus name - just quit // to prevent crash at dbus_bus_request_name(). @@ -122,7 +122,7 @@ nsresult nsDBusRemoteClient::DoSendDBusCommandLine(const char* aProfile, } nsAutoCString pathName; - pathName = nsPrintfCString("/org/mozilla/%s/Remote", appName.get()); + pathName = nsPrintfCString("/net/mullvad/%s/Remote", appName.get()); static auto sDBusValidatePathName = (bool (*)(const char*, DBusError*))dlsym( RTLD_DEFAULT, "dbus_validate_path"); @@ -133,7 +133,7 @@ nsresult nsDBusRemoteClient::DoSendDBusCommandLine(const char* aProfile, } nsAutoCString remoteInterfaceName; - remoteInterfaceName = nsPrintfCString("org.mozilla.%s", appName.get()); + remoteInterfaceName = nsPrintfCString("net.mullvad.%s", appName.get()); LOG(" DBus destination: %s\n", destinationName.get()); LOG(" DBus path: %s\n", pathName.get()); ===================================== toolkit/components/remote/nsDBusRemoteServer.cpp ===================================== @@ -28,7 +28,7 @@ static const char* introspect_template = "1.0//EN\"\n" "\"http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd\">\n" "<node>\n" - " <interface name=\"org.mozilla.%s\">\n" + " <interface name=\"net.mullvad.%s\">\n" " <method name=\"OpenURL\">\n" " <arg name=\"url\" direction=\"in\" type=\"ay\"/>\n" " </method>\n" @@ -38,7 +38,7 @@ static const char* introspect_template = bool nsDBusRemoteServer::HandleOpenURL(const gchar* aInterfaceName, const gchar* aMethodName, Span<const gchar> aParam) { - nsPrintfCString ourInterfaceName("org.mozilla.%s", mAppName.get()); + nsPrintfCString ourInterfaceName("net.mullvad.%s", mAppName.get()); if ((strcmp("OpenURL", aMethodName) != 0) || (strcmp(ourInterfaceName.get(), aInterfaceName) != 0)) { @@ -131,7 +131,7 @@ static const GDBusInterfaceVTable gInterfaceVTable = { HandleMethodCall, HandleGetProperty, HandleSetProperty}; void nsDBusRemoteServer::OnBusAcquired(GDBusConnection* aConnection) { - mPathName = nsPrintfCString("/org/mozilla/%s/Remote", mAppName.get()); + mPathName = nsPrintfCString("/net/mullvad/%s/Remote", mAppName.get()); static auto sDBusValidatePathName = (bool (*)(const char*, DBusError*))dlsym( RTLD_DEFAULT, "dbus_validate_path"); if (!sDBusValidatePathName || @@ -205,7 +205,7 @@ nsresult nsDBusRemoteServer::Startup(const char* aAppName, mozilla::XREAppData::SanitizeNameForDBus(profileName); - nsPrintfCString busName("org.mozilla.%s.%s", mAppName.get(), + nsPrintfCString busName("net.mullvad.%s.%s", mAppName.get(), profileName.get()); if (busName.Length() > DBUS_MAXIMUM_NAME_LENGTH) { busName.Truncate(DBUS_MAXIMUM_NAME_LENGTH); @@ -220,7 +220,7 @@ nsresult nsDBusRemoteServer::Startup(const char* aAppName, // We don't have a valid busName yet - try to create a default one. if (!sDBusValidateBusName(busName.get(), nullptr)) { - busName = nsPrintfCString("org.mozilla.%s.%s", mAppName.get(), "default"); + busName = nsPrintfCString("net.mullvad.%s.%s", mAppName.get(), "default"); if (!sDBusValidateBusName(busName.get(), nullptr)) { // We failed completelly to get a valid bus name - just quit // to prevent crash at dbus_bus_request_name(). View it on GitLab: https://gitlab.torproject.org/tpo/applications/mullvad-browser/-/commit/a6a… -- View it on GitLab: https://gitlab.torproject.org/tpo/applications/mullvad-browser/-/commit/a6a… 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 2176: Rebrand Firefox to TorBrowser
by Pier Angelo Vendrame (@pierov) 05 Feb '26

05 Feb '26
Pier Angelo Vendrame pushed to branch tor-browser-147.0a1-16.0-2 at The Tor Project / Applications / Tor Browser Commits: 1d7f3225 by Pier Angelo Vendrame at 2026-02-05T14:41:51+00:00 fixup! TB 2176: Rebrand Firefox to TorBrowser BB 44050: Use org.torproject rather than org.mozilla for D-bus. - - - - - 2 changed files: - toolkit/components/remote/nsDBusRemoteClient.cpp - toolkit/components/remote/nsDBusRemoteServer.cpp Changes: ===================================== toolkit/components/remote/nsDBusRemoteClient.cpp ===================================== @@ -77,7 +77,7 @@ bool nsDBusRemoteClient::GetRemoteDestinationName(const char* aProgram, mozilla::XREAppData::SanitizeNameForDBus(profileName); aDestinationName = - nsPrintfCString("org.mozilla.%s.%s", aProgram, profileName.get()); + nsPrintfCString("org.torproject.%s.%s", aProgram, profileName.get()); if (aDestinationName.Length() > DBUS_MAXIMUM_NAME_LENGTH) aDestinationName.Truncate(DBUS_MAXIMUM_NAME_LENGTH); @@ -91,7 +91,7 @@ bool nsDBusRemoteClient::GetRemoteDestinationName(const char* aProgram, if (!sDBusValidateBusName(aDestinationName.get(), nullptr)) { // We don't have a valid busName yet - try to create a default one. aDestinationName = - nsPrintfCString("org.mozilla.%s.%s", aProgram, "default"); + nsPrintfCString("org.torproject.%s.%s", aProgram, "default"); if (!sDBusValidateBusName(aDestinationName.get(), nullptr)) { // We failed completelly to get a valid bus name - just quit // to prevent crash at dbus_bus_request_name(). @@ -122,7 +122,7 @@ nsresult nsDBusRemoteClient::DoSendDBusCommandLine(const char* aProfile, } nsAutoCString pathName; - pathName = nsPrintfCString("/org/mozilla/%s/Remote", appName.get()); + pathName = nsPrintfCString("/org/torproject/%s/Remote", appName.get()); static auto sDBusValidatePathName = (bool (*)(const char*, DBusError*))dlsym( RTLD_DEFAULT, "dbus_validate_path"); @@ -133,7 +133,7 @@ nsresult nsDBusRemoteClient::DoSendDBusCommandLine(const char* aProfile, } nsAutoCString remoteInterfaceName; - remoteInterfaceName = nsPrintfCString("org.mozilla.%s", appName.get()); + remoteInterfaceName = nsPrintfCString("org.torproject.%s", appName.get()); LOG(" DBus destination: %s\n", destinationName.get()); LOG(" DBus path: %s\n", pathName.get()); ===================================== toolkit/components/remote/nsDBusRemoteServer.cpp ===================================== @@ -28,7 +28,7 @@ static const char* introspect_template = "1.0//EN\"\n" "\"http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd\">\n" "<node>\n" - " <interface name=\"org.mozilla.%s\">\n" + " <interface name=\"org.torproject.%s\">\n" " <method name=\"OpenURL\">\n" " <arg name=\"url\" direction=\"in\" type=\"ay\"/>\n" " </method>\n" @@ -38,7 +38,7 @@ static const char* introspect_template = bool nsDBusRemoteServer::HandleOpenURL(const gchar* aInterfaceName, const gchar* aMethodName, Span<const gchar> aParam) { - nsPrintfCString ourInterfaceName("org.mozilla.%s", mAppName.get()); + nsPrintfCString ourInterfaceName("org.torproject.%s", mAppName.get()); if ((strcmp("OpenURL", aMethodName) != 0) || (strcmp(ourInterfaceName.get(), aInterfaceName) != 0)) { @@ -131,7 +131,7 @@ static const GDBusInterfaceVTable gInterfaceVTable = { HandleMethodCall, HandleGetProperty, HandleSetProperty}; void nsDBusRemoteServer::OnBusAcquired(GDBusConnection* aConnection) { - mPathName = nsPrintfCString("/org/mozilla/%s/Remote", mAppName.get()); + mPathName = nsPrintfCString("/org/torproject/%s/Remote", mAppName.get()); static auto sDBusValidatePathName = (bool (*)(const char*, DBusError*))dlsym( RTLD_DEFAULT, "dbus_validate_path"); if (!sDBusValidatePathName || @@ -205,7 +205,7 @@ nsresult nsDBusRemoteServer::Startup(const char* aAppName, mozilla::XREAppData::SanitizeNameForDBus(profileName); - nsPrintfCString busName("org.mozilla.%s.%s", mAppName.get(), + nsPrintfCString busName("org.torproject.%s.%s", mAppName.get(), profileName.get()); if (busName.Length() > DBUS_MAXIMUM_NAME_LENGTH) { busName.Truncate(DBUS_MAXIMUM_NAME_LENGTH); @@ -220,7 +220,8 @@ nsresult nsDBusRemoteServer::Startup(const char* aAppName, // We don't have a valid busName yet - try to create a default one. if (!sDBusValidateBusName(busName.get(), nullptr)) { - busName = nsPrintfCString("org.mozilla.%s.%s", mAppName.get(), "default"); + busName = + nsPrintfCString("org.torproject.%s.%s", mAppName.get(), "default"); if (!sDBusValidateBusName(busName.get(), nullptr)) { // We failed completelly to get a valid bus name - just quit // to prevent crash at dbus_bus_request_name(). View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/commit/1d7f322… -- View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/commit/1d7f322… You're receiving this email because of your account on gitlab.torproject.org.
1 0
0 0
[Git][tpo/applications/tor-browser-update-responses][main] 6 commits: alpha: new version, 16.0a2 (linux-aarch64)
by ma1 (@ma1) 04 Feb '26

04 Feb '26
ma1 pushed to branch main at The Tor Project / Applications / Tor Browser update responses Commits: ed405516 by hackademix at 2026-02-04T14:13:09+01:00 alpha: new version, 16.0a2 (linux-aarch64) - - - - - a8ed7442 by hackademix at 2026-02-04T14:13:09+01:00 alpha: new version, 16.0a2 (linux-x86_64) - - - - - 3082ced9 by hackademix at 2026-02-04T14:13:09+01:00 alpha: new version, 16.0a2 (macos) - - - - - a304a9a4 by hackademix at 2026-02-04T14:13:10+01:00 alpha: new version, 16.0a2 (windows-i686) - - - - - fecba34e by hackademix at 2026-02-04T14:13:10+01:00 alpha: new version, 16.0a2 (windows-x86_64) - - - - - 47986c6f by hackademix at 2026-02-04T14:13:10+01:00 alpha: new version, 16.0a2 - - - - - 49 changed files: - update_3/alpha/download-android-aarch64.json - update_3/alpha/download-android-armv7.json - update_3/alpha/download-android-x86_64.json - update_3/alpha/download-linux-aarch64.json - update_3/alpha/download-linux-x86_64.json - update_3/alpha/download-macos.json - update_3/alpha/download-windows-i686.json - update_3/alpha/download-windows-x86_64.json - update_3/alpha/downloads.json - update_3/alpha/linux-aarch64/.htaccess - + update_3/alpha/linux-aarch64/update-16.0a1-16.0a2-linux-aarch64.xml - − update_3/alpha/linux-aarch64/update-16.0a1-linux-aarch64.xml - + update_3/alpha/linux-aarch64/update-16.0a2-linux-aarch64.xml - update_3/alpha/linux-x86_64/.htaccess - − update_3/alpha/linux-x86_64/update-15.0a2-16.0a1-linux-x86_64.xml - − update_3/alpha/linux-x86_64/update-15.0a3-16.0a1-linux-x86_64.xml - + update_3/alpha/linux-x86_64/update-15.0a3-16.0a2-linux-x86_64.xml - − update_3/alpha/linux-x86_64/update-15.0a4-16.0a1-linux-x86_64.xml - + update_3/alpha/linux-x86_64/update-15.0a4-16.0a2-linux-x86_64.xml - + update_3/alpha/linux-x86_64/update-16.0a1-16.0a2-linux-x86_64.xml - − update_3/alpha/linux-x86_64/update-16.0a1-linux-x86_64.xml - + update_3/alpha/linux-x86_64/update-16.0a2-linux-x86_64.xml - update_3/alpha/macos/.htaccess - − update_3/alpha/macos/update-15.0a2-16.0a1-macos.xml - − update_3/alpha/macos/update-15.0a3-16.0a1-macos.xml - + update_3/alpha/macos/update-15.0a3-16.0a2-macos.xml - − update_3/alpha/macos/update-15.0a4-16.0a1-macos.xml - + update_3/alpha/macos/update-15.0a4-16.0a2-macos.xml - + update_3/alpha/macos/update-16.0a1-16.0a2-macos.xml - − update_3/alpha/macos/update-16.0a1-macos.xml - + update_3/alpha/macos/update-16.0a2-macos.xml - update_3/alpha/windows-i686/.htaccess - − update_3/alpha/windows-i686/update-15.0a2-16.0a1-windows-i686.xml - − update_3/alpha/windows-i686/update-15.0a3-16.0a1-windows-i686.xml - + update_3/alpha/windows-i686/update-15.0a3-16.0a2-windows-i686.xml - − update_3/alpha/windows-i686/update-15.0a4-16.0a1-windows-i686.xml - + update_3/alpha/windows-i686/update-15.0a4-16.0a2-windows-i686.xml - + update_3/alpha/windows-i686/update-16.0a1-16.0a2-windows-i686.xml - − update_3/alpha/windows-i686/update-16.0a1-windows-i686.xml - + update_3/alpha/windows-i686/update-16.0a2-windows-i686.xml - update_3/alpha/windows-x86_64/.htaccess - − update_3/alpha/windows-x86_64/update-15.0a2-16.0a1-windows-x86_64.xml - − update_3/alpha/windows-x86_64/update-15.0a3-16.0a1-windows-x86_64.xml - + update_3/alpha/windows-x86_64/update-15.0a3-16.0a2-windows-x86_64.xml - − update_3/alpha/windows-x86_64/update-15.0a4-16.0a1-windows-x86_64.xml - + update_3/alpha/windows-x86_64/update-15.0a4-16.0a2-windows-x86_64.xml - + update_3/alpha/windows-x86_64/update-16.0a1-16.0a2-windows-x86_64.xml - − update_3/alpha/windows-x86_64/update-16.0a1-windows-x86_64.xml - + update_3/alpha/windows-x86_64/update-16.0a2-windows-x86_64.xml The diff was not included because it is too large. View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser-update-responses… -- View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser-update-responses… 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 40338: Use cp -al instead of mv in projects/release.
by Pier Angelo Vendrame (@pierov) 04 Feb '26

04 Feb '26
Pier Angelo Vendrame pushed to branch maint-15.0 at The Tor Project / Applications / tor-browser-build Commits: 2c9daf78 by Pier Angelo Vendrame at 2026-02-04T11:59:09+01:00 Bug 40338: Use cp -al instead of mv in projects/release. Currently, we use mv in projects/release/build. However, since we also use hard links, re-running the release project might fail (because we end up trying to mv the same inode). Rather than checking stat, we can just use `cp -al`, which simplifies also the current mechanism we have to handle subdirectories. RBM will take care of deleting the temporary directory where the script runs, so we do not even need to remove the files after the copy. - - - - - 1 changed file: - projects/release/build Changes: ===================================== projects/release/build ===================================== @@ -5,65 +5,53 @@ destdir="[% dest_dir _ '/' _ c("var/publish_dir") %]" mkdir -p "$destdir" -function mv_files { - inputfile="$1" - if test -d "$inputfile"/artifacts - then - mkdir -p "$destdir"/artifacts - mv "$inputfile"/artifacts/* "$destdir"/artifacts - rmdir "$inputfile"/artifacts - fi - mv "$inputfile"/* "$destdir"/ -} - [% IF c("var/browser_platforms/android-armv7") -%] - mv_files "[% c('input_files_by_name/android-armv7') %]" + cp -alf "[% c('input_files_by_name/android-armv7') %]"/* "$destdir"/ [% 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") -%] - mv_files "[% c('input_files_by_name/android-x86_64') %]" + cp -alf "[% c('input_files_by_name/android-x86_64') %]"/* "$destdir"/ [% END -%] [% IF c("var/browser_platforms/android-aarch64") -%] - mv_files "[% c('input_files_by_name/android-aarch64') %]" + cp -alf "[% c('input_files_by_name/android-aarch64') %]"/* "$destdir"/ [% END -%] [% IF c("var/browser_platforms/windows-i686") -%] - mv_files "[% c('input_files_by_name/windows-i686') %]" + cp -alf "[% c('input_files_by_name/windows-i686') %]"/* "$destdir"/ [% END -%] [% IF c("var/browser_platforms/windows-x86_64") -%] - mv_files "[% c('input_files_by_name/windows-x86_64') %]" + cp -alf "[% c('input_files_by_name/windows-x86_64') %]"/* "$destdir"/ [% END -%] [% IF c("var/browser_platforms/macos") -%] - mv_files "[% c('input_files_by_name/macos') %]" + cp -alf "[% c('input_files_by_name/macos') %]"/* "$destdir"/ [% END -%] [% IF c("var/browser_platforms/macos-x86_64") -%] - mv_files "[% c('input_files_by_name/macos-x86_64') %]" + cp -alf "[% c('input_files_by_name/macos-x86_64') %]"/* "$destdir"/ [% END -%] [% IF c("var/browser_platforms/macos-aarch64") -%] - mv_files "[% c('input_files_by_name/macos-aarch64') %]" + cp -alf "[% c('input_files_by_name/macos-aarch64') %]"/* "$destdir"/ [% 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") -%] - mv_files "[% c('input_files_by_name/linux-x86_64') %]" + cp -alf "[% c('input_files_by_name/linux-x86_64') %]"/* "$destdir"/ [% END -%] [% IF c("var/browser_platforms/linux-aarch64") -%] - mv_files "[% c('input_files_by_name/linux-aarch64') %]" + cp -alf "[% c('input_files_by_name/linux-aarch64') %]"/* "$destdir"/ [% END -%] [% IF c("var/linux-packages") || c("var/linux-packages-aarch64") -%] [% IF c("var/linux-packages") -%] - mv_files "[% c('input_files_by_name/deb-packages') %]" + cp -alf "[% c('input_files_by_name/deb-packages') %]"/* "$destdir"/ [% END -%] [% IF c("var/linux-packages-aarch64") -%] - mv_files "[% c('input_files_by_name/deb-packages-aarch64') %]" + cp -alf "[% c('input_files_by_name/deb-packages-aarch64') %]"/* "$destdir"/ [% END -%] - mv_files "[% c('input_files_by_name/rpm-packages') %]" + cp -alf "[% c('input_files_by_name/rpm-packages') %]"/* "$destdir"/ [% END -%] [% IF c("var/browser-src") -%] - mv [% c('input_files_by_name/src-firefox') %] \ - "$destdir"/ + cp -alf "[% 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/2… -- View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser-build/-/commit/2… 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 40338: Use cp -al instead of mv in projects/release.
by Pier Angelo Vendrame (@pierov) 04 Feb '26

04 Feb '26
Pier Angelo Vendrame pushed to branch main at The Tor Project / Applications / tor-browser-build Commits: 0faf0e24 by Pier Angelo Vendrame at 2026-02-04T11:57:11+01:00 Bug 40338: Use cp -al instead of mv in projects/release. Currently, we use mv in projects/release/build. However, since we also use hard links, re-running the release project might fail (because we end up trying to mv the same inode). Rather than checking stat, we can just use `cp -al`, which simplifies also the current mechanism we have to handle subdirectories. RBM will take care of deleting the temporary directory where the script runs, so we do not even need to remove the files after the copy. - - - - - 1 changed file: - projects/release/build Changes: ===================================== projects/release/build ===================================== @@ -5,59 +5,47 @@ destdir="[% dest_dir _ '/' _ c("var/publish_dir") %]" mkdir -p "$destdir" -function mv_files { - inputfile="$1" - if test -d "$inputfile"/artifacts - then - mkdir -p "$destdir"/artifacts - mv "$inputfile"/artifacts/* "$destdir"/artifacts - rmdir "$inputfile"/artifacts - fi - mv "$inputfile"/* "$destdir"/ -} - [% IF c("var/browser_platforms/android-armv7") -%] - mv_files "[% c('input_files_by_name/android-armv7') %]" + cp -alf "[% c('input_files_by_name/android-armv7') %]"/* "$destdir"/ [% END -%] [% IF c("var/browser_platforms/android-x86_64") -%] - mv_files "[% c('input_files_by_name/android-x86_64') %]" + cp -alf "[% c('input_files_by_name/android-x86_64') %]"/* "$destdir"/ [% END -%] [% IF c("var/browser_platforms/android-aarch64") -%] - mv_files "[% c('input_files_by_name/android-aarch64') %]" + cp -alf "[% c('input_files_by_name/android-aarch64') %]"/* "$destdir"/ [% END -%] [% IF c("var/browser_platforms/windows-i686") -%] - mv_files "[% c('input_files_by_name/windows-i686') %]" + cp -alf "[% c('input_files_by_name/windows-i686') %]"/* "$destdir"/ [% END -%] [% IF c("var/browser_platforms/windows-x86_64") -%] - mv_files "[% c('input_files_by_name/windows-x86_64') %]" + cp -alf "[% c('input_files_by_name/windows-x86_64') %]"/* "$destdir"/ [% END -%] [% IF c("var/browser_platforms/macos") -%] - mv_files "[% c('input_files_by_name/macos') %]" + cp -alf "[% c('input_files_by_name/macos') %]"/* "$destdir"/ [% END -%] [% IF c("var/browser_platforms/macos-x86_64") -%] - mv_files "[% c('input_files_by_name/macos-x86_64') %]" + cp -alf "[% c('input_files_by_name/macos-x86_64') %]"/* "$destdir"/ [% END -%] [% IF c("var/browser_platforms/macos-aarch64") -%] - mv_files "[% c('input_files_by_name/macos-aarch64') %]" + cp -alf "[% c('input_files_by_name/macos-aarch64') %]"/* "$destdir"/ [% END -%] [% IF c("var/browser_platforms/linux-x86_64") -%] - mv_files "[% c('input_files_by_name/linux-x86_64') %]" + cp -alf "[% c('input_files_by_name/linux-x86_64') %]"/* "$destdir"/ [% END -%] [% IF c("var/browser_platforms/linux-aarch64") -%] - mv_files "[% c('input_files_by_name/linux-aarch64') %]" + cp -alf "[% c('input_files_by_name/linux-aarch64') %]"/* "$destdir"/ [% END -%] [% IF c("var/linux-packages") || c("var/linux-packages-aarch64") -%] [% IF c("var/linux-packages") -%] - mv_files "[% c('input_files_by_name/deb-packages') %]" + cp -alf "[% c('input_files_by_name/deb-packages') %]"/* "$destdir"/ [% END -%] [% IF c("var/linux-packages-aarch64") -%] - mv_files "[% c('input_files_by_name/deb-packages-aarch64') %]" + cp -alf "[% c('input_files_by_name/deb-packages-aarch64') %]"/* "$destdir"/ [% END -%] - mv_files "[% c('input_files_by_name/rpm-packages') %]" + cp -alf "[% c('input_files_by_name/rpm-packages') %]"/* "$destdir"/ [% END -%] [% IF c("var/browser-src") -%] - mv [% c('input_files_by_name/src-firefox') %] \ - "$destdir"/ + cp -alf "[% 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
  • ← Newer
  • 1
  • ...
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • ...
  • 2045
  • Older →

HyperKitty Powered by HyperKitty version 1.3.12.