tbb-commits
Threads by month
- ----- 2026 -----
- 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
- 1 participants
- 20600 discussions
[Git][tpo/applications/tor-browser][tor-browser-128.7.0esr-14.5-1] fixup! Add CI for Tor Browser
by Pier Angelo Vendrame (@pierov) 12 Feb '25
by Pier Angelo Vendrame (@pierov) 12 Feb '25
12 Feb '25
Pier Angelo Vendrame pushed to branch tor-browser-128.7.0esr-14.5-1 at The Tor Project / Applications / Tor Browser
Commits:
ed5dc003 by Henry Wilkes at 2025-02-12T09:37:46+00:00
fixup! Add CI for Tor Browser
TB 43481: Revert d9df89b1f48781d78847976d2cb48748bf864f7c to re-enable
translation CI in tor-browser branch.
- - - - -
1 changed file:
- .gitlab-ci.yml
Changes:
=====================================
.gitlab-ci.yml
=====================================
@@ -13,3 +13,4 @@ include:
- local: '.gitlab/ci/jobs/lint/lint.yml'
- local: '.gitlab/ci/jobs/startup-test/startup-test.yml'
- local: '.gitlab/ci/jobs/update-containers.yml'
+ - local: '.gitlab/ci/jobs/update-translations.yml'
View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/commit/ed5dc00…
--
View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/commit/ed5dc00…
You're receiving this email because of your account on gitlab.torproject.org.
1
0
[Git][tpo/applications/tor-browser][tor-browser-128.7.0esr-14.5-1] fixup! Add CI for Base Browser
by Pier Angelo Vendrame (@pierov) 12 Feb '25
by Pier Angelo Vendrame (@pierov) 12 Feb '25
12 Feb '25
Pier Angelo Vendrame pushed to branch tor-browser-128.7.0esr-14.5-1 at The Tor Project / Applications / Tor Browser
Commits:
1d4c9a12 by Beatriz Rizental at 2025-02-12T10:17:24+01:00
fixup! Add CI for Base Browser
Extend CI to support listing changes from rapid-release branches
- - - - -
1 changed file:
- .gitlab/ci/jobs/lint/helpers.py
Changes:
=====================================
.gitlab/ci/jobs/lint/helpers.py
=====================================
@@ -42,18 +42,27 @@ def get_firefox_tag(reference):
else:
raise ValueError(f"Failed to extract version from reference '{reference}'.")
- tag = f"FIREFOX_{firefox_version.replace('.', '_')}_"
+ major_version = firefox_version.split(".")[0]
+ minor_patch_version = "_".join(firefox_version.split(".")[1:])
+
remote_tags = git("ls-remote --tags origin")
# Each line looks like:
# 9edd658bfd03a6b4743ecb75fd4a9ad968603715 refs/tags/FIREFOX_91_9_0esr_BUILD1
- pattern = rf"(.*){re.escape(tag)}(.*)$"
+ pattern = (
+ rf"(.*)FIREFOX_{re.escape(major_version)}_{re.escape(minor_patch_version)}(.*)$"
+ )
match = re.search(pattern, remote_tags, flags=re.MULTILINE)
+ if not match:
+ # Attempt to match with a nightly tag, in case the ESR tag is not found
+ pattern = rf"(.*)FIREFOX_NIGHTLY_{re.escape(major_version)}(.*)$"
+ match = re.search(pattern, remote_tags, flags=re.MULTILINE)
+
if match:
return match.group(0).split()[0]
else:
raise ValueError(
- f"Failed to find reference specifier for Firefox tag '{tag}' from '{reference}'."
+ f"Failed to find reference specifier for Firefox tag of version '{firefox_version}' from '{reference}'."
)
View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/commit/1d4c9a1…
--
View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/commit/1d4c9a1…
You're receiving this email because of your account on gitlab.torproject.org.
1
0
[Git][tpo/applications/tor-browser][tor-browser-128.7.0esr-14.5-1] 4 commits: fixup! TB 40041 [android]: Implement Tor Network Settings
by Dan Ballard (@dan) 11 Feb '25
by Dan Ballard (@dan) 11 Feb '25
11 Feb '25
Dan Ballard pushed to branch tor-browser-128.7.0esr-14.5-1 at The Tor Project / Applications / Tor Browser
Commits:
4f30e0a4 by clairehurst at 2025-02-11T11:37:13-07:00
fixup! TB 40041 [android]: Implement Tor Network Settings
tor-browser#43408
- - - - -
6877b274 by clairehurst at 2025-02-11T12:06:17-07:00
fixup! TB 42247: Android helpers for the TorProvider
tor-browser#43408
- - - - -
d95f26e0 by clairehurst at 2025-02-11T12:06:18-07:00
fixup! [android] Implement Android-native Connection Assist UI
tor-browser#43408
- - - - -
881f522b by clairehurst at 2025-02-11T12:06:18-07:00
fixup! TB 41878: [android] Add standalone Tor Bootstrap
tor-browser#43408
- - - - -
12 changed files:
- mobile/android/fenix/app/src/main/java/org/mozilla/fenix/settings/SettingsFragment.kt
- − mobile/android/fenix/app/src/main/java/org/mozilla/fenix/tor/QuickStartPreference.kt
- + mobile/android/fenix/app/src/main/java/org/mozilla/fenix/tor/QuickstartViewModel.kt
- mobile/android/fenix/app/src/main/java/org/mozilla/fenix/tor/TorConnectionAssistFragment.kt
- mobile/android/fenix/app/src/main/java/org/mozilla/fenix/tor/TorConnectionAssistViewModel.kt
- mobile/android/fenix/app/src/main/java/org/mozilla/fenix/tor/TorController.kt
- mobile/android/fenix/app/src/main/java/org/mozilla/fenix/tor/TorControllerGV.kt
- mobile/android/fenix/app/src/main/res/xml/preferences.xml
- mobile/android/geckoview/src/main/java/org/mozilla/geckoview/TorIntegrationAndroid.java
- mobile/android/geckoview/src/main/java/org/mozilla/geckoview/TorSettings.java
- mobile/android/geckoview/src/main/java/org/mozilla/geckoview/androidlegacysettings/TorLegacyAndroidSettings.java
- toolkit/modules/TorAndroidIntegration.sys.mjs
Changes:
=====================================
mobile/android/fenix/app/src/main/java/org/mozilla/fenix/settings/SettingsFragment.kt
=====================================
@@ -13,7 +13,6 @@ import android.os.Build
import android.os.Bundle
import android.os.Handler
import android.os.Looper
-import android.util.Log
import android.view.LayoutInflater
import android.view.WindowManager
import android.widget.Toast
@@ -65,16 +64,12 @@ import org.mozilla.fenix.ext.openSetDefaultBrowserOption
import org.mozilla.fenix.ext.requireComponents
import org.mozilla.fenix.ext.settings
import org.mozilla.fenix.ext.showToolbar
-import org.mozilla.fenix.gecko.GeckoProvider
import org.mozilla.fenix.nimbus.FxNimbus
import org.mozilla.fenix.perf.ProfilerViewModel
import org.mozilla.fenix.settings.account.AccountUiView
-import org.mozilla.fenix.tor.QuickStartPreference
import org.mozilla.fenix.tor.SecurityLevel
-import org.mozilla.fenix.tor.TorBridgeTransportConfig
-import org.mozilla.fenix.tor.TorEvents
+import org.mozilla.fenix.tor.QuickstartViewModel
import org.mozilla.fenix.utils.Settings
-import org.mozilla.geckoview.BuildConfig
import kotlin.system.exitProcess
import org.mozilla.fenix.GleanMetrics.Settings as SettingsMetrics
@@ -86,6 +81,8 @@ class SettingsFragment : PreferenceFragmentCompat(), UserInteractionHandler {
private lateinit var addonFilePicker: AddonFilePicker
private val profilerViewModel: ProfilerViewModel by activityViewModels()
+ private val quickstartViewModel: QuickstartViewModel by activityViewModels()
+
@VisibleForTesting
internal val accountObserver = object : AccountObserver {
private fun updateAccountUi(profile: Profile? = null) {
@@ -776,10 +773,12 @@ class SettingsFragment : PreferenceFragmentCompat(), UserInteractionHandler {
}
}
- requirePreference<QuickStartPreference>(R.string.pref_key_quick_start).apply {
+ requirePreference<SwitchPreference>(R.string.pref_key_quick_start).apply {
+ isChecked = quickstartViewModel.quickstart().value == true
setOnPreferenceClickListener {
- context.components.torController.quickstart = !context.components.torController.quickstart
- updateSwitch()
+ quickstartViewModel.quickstartSet(
+ isChecked,
+ )
true
}
}
=====================================
mobile/android/fenix/app/src/main/java/org/mozilla/fenix/tor/QuickStartPreference.kt deleted
=====================================
@@ -1,32 +0,0 @@
-package org.mozilla.fenix.tor
-
-import android.content.Context
-import android.util.AttributeSet
-import androidx.preference.PreferenceViewHolder
-import androidx.preference.SwitchPreference
-import com.google.android.material.switchmaterial.SwitchMaterial
-import org.mozilla.fenix.R
-import org.mozilla.fenix.ext.components
-
-class QuickStartPreference @JvmOverloads constructor(
- context: Context,
- attrs: AttributeSet? = null,
-) : SwitchPreference(context, attrs) {
-
- private var switchView: SwitchMaterial? = null
-
- init {
- widgetLayoutResource = R.layout.preference_quick_start
- }
-
- override fun onBindViewHolder(holder: PreferenceViewHolder) {
- super.onBindViewHolder(holder)
- switchView = holder.findViewById(R.id.switch_widget) as SwitchMaterial
-
- updateSwitch()
- }
-
- fun updateSwitch() {
- switchView?.isChecked = context.components.torController.quickstart
- }
-}
=====================================
mobile/android/fenix/app/src/main/java/org/mozilla/fenix/tor/QuickstartViewModel.kt
=====================================
@@ -0,0 +1,41 @@
+package org.mozilla.fenix.tor
+
+import android.app.Application
+import androidx.lifecycle.AndroidViewModel
+import androidx.lifecycle.LiveData
+import androidx.lifecycle.MutableLiveData
+import mozilla.components.browser.engine.gecko.GeckoEngine
+import org.mozilla.fenix.ext.components
+
+class QuickstartViewModel(
+ application: Application,
+) : AndroidViewModel(application) {
+
+ private val torIntegrationAndroid =
+ (getApplication<Application>().components.core.engine as GeckoEngine).getTorIntegrationController()
+
+ /**
+ * NOTE: Whilst the initial value for _quickstart is fetched from
+ * TorIntegrationAndroid.quickstartGet (which is surfaced from TorConnect.quickstart), and we
+ * pass on any changes in value up to TorConnect.quickstart (via quickstartSet()), we do not
+ * listen for any changes to the TorConnect.quickstart value via "QuickstartChange" because we
+ * do not expect anything outside of TorConnectViewModel to change its value, so we expect its
+ * value to remain in sync with our local value.
+ */
+ init {
+ torIntegrationAndroid.quickstartGet {
+ _quickstart.value = it
+ }
+ }
+
+ private val _quickstart = MutableLiveData<Boolean>()
+ fun quickstart(): LiveData<Boolean> {
+ return _quickstart
+ }
+
+ fun quickstartSet(value: Boolean) {
+ torIntegrationAndroid.quickstartSet(value)
+ _quickstart.value = value
+ }
+
+}
=====================================
mobile/android/fenix/app/src/main/java/org/mozilla/fenix/tor/TorConnectionAssistFragment.kt
=====================================
@@ -20,6 +20,7 @@ import android.view.ViewGroup
import androidx.appcompat.content.res.AppCompatResources
import androidx.fragment.app.Fragment
import androidx.fragment.app.activityViewModels
+import androidx.fragment.app.viewModels
import androidx.lifecycle.Lifecycle
import androidx.lifecycle.lifecycleScope
import androidx.lifecycle.repeatOnLifecycle
@@ -38,6 +39,8 @@ class TorConnectionAssistFragment : Fragment(), UserInteractionHandler {
private var _binding: FragmentTorConnectionAssistBinding? = null
private val binding get() = _binding!!
+ private val quickstartViewModel: QuickstartViewModel by activityViewModels()
+
override fun onCreateView(
inflater: LayoutInflater,
container: ViewGroup?,
@@ -78,10 +81,10 @@ class TorConnectionAssistFragment : Fragment(), UserInteractionHandler {
setProgressBarCompat(progress)
}
- viewModel.quickstartToggle().observe(
+ quickstartViewModel.quickstart().observe(
viewLifecycleOwner,
) {
- binding.quickstartSwitch.isChecked = it == true
+ binding.quickstartSwitch.isChecked = it
}
viewModel.shouldOpenHome().observe(
@@ -185,9 +188,8 @@ class TorConnectionAssistFragment : Fragment(), UserInteractionHandler {
private fun setQuickStart(screen: ConnectAssistUiState) {
binding.quickstartSwitch.visibility =
if (screen.quickstartSwitchVisible) View.VISIBLE else View.GONE
- binding.quickstartSwitch.isChecked = viewModel.quickstartToggle().value == true
binding.quickstartSwitch.setOnCheckedChangeListener { _, isChecked ->
- viewModel.handleQuickstartChecked(isChecked)
+ quickstartViewModel.quickstartSet(isChecked)
}
}
=====================================
mobile/android/fenix/app/src/main/java/org/mozilla/fenix/tor/TorConnectionAssistViewModel.kt
=====================================
@@ -27,13 +27,6 @@ class TorConnectionAssistViewModel(
private val _torConnectScreen = MutableStateFlow(ConnectAssistUiState.Splash)
internal val torConnectScreen: StateFlow<ConnectAssistUiState> = _torConnectScreen
- private val _quickStartToggle = MutableLiveData<Boolean>() // don't initialize with quickstart off the bat
- fun quickstartToggle(): LiveData<Boolean?> {
- _quickStartToggle.value = _torController.quickstart // quickstart isn't ready until torSettings is ready
- return _quickStartToggle
- }
-
-
private val _shouldOpenHome = MutableLiveData(false)
fun shouldOpenHome(): LiveData<Boolean> {
return _shouldOpenHome
@@ -66,11 +59,6 @@ class TorConnectionAssistViewModel(
}
}
- fun handleQuickstartChecked(checked: Boolean) {
- _torController.quickstart = checked
- _quickStartToggle.value = checked
- }
-
fun handleButton1Pressed(
screen: ConnectAssistUiState,
lifecycleScope: LifecycleCoroutineScope?,
=====================================
mobile/android/fenix/app/src/main/java/org/mozilla/fenix/tor/TorController.kt
=====================================
@@ -40,7 +40,6 @@ interface TorController: TorEvents {
var bridgesEnabled: Boolean
var bridgeTransport: TorBridgeTransportConfig
var userProvidedBridges: String?
- var quickstart: Boolean
fun start()
fun stop()
=====================================
mobile/android/fenix/app/src/main/java/org/mozilla/fenix/tor/TorControllerGV.kt
=====================================
@@ -73,17 +73,6 @@ class TorControllerGV(
override val isBootstrapped get() = isTorBootstrapped
override val isConnected get() = (_lastKnownStatus.value.isStarted() && !isTorRestarting)
- override var quickstart: Boolean
- get() {
- return getTorSettings()?.quickstart ?: false
- }
- set(value) {
- getTorSettings()?.let {
- it.quickstart = value
- getTorIntegration().setSettings(it)
- }
- }
-
private fun getTorIntegration(): TorIntegrationAndroid {
return (context.components.core.engine as GeckoEngine).getTorIntegrationController()
}
=====================================
mobile/android/fenix/app/src/main/res/xml/preferences.xml
=====================================
@@ -176,7 +176,7 @@
android:title="@string/preferences_tor_network_settings_bridge_config"
android:summary="@string/preferences_tor_network_settings_bridge_config_description" />
- <org.mozilla.fenix.tor.QuickStartPreference
+ <SwitchPreference
android:key="@string/pref_key_quick_start"
android:summary="@string/connection_assist_always_connect_automatically_toggle_description"
android:title="@string/tor_bootstrap_quick_start_label"
=====================================
mobile/android/geckoview/src/main/java/org/mozilla/geckoview/TorIntegrationAndroid.java
=====================================
@@ -52,6 +52,8 @@ public class TorIntegrationAndroid implements BundleEventListener {
private static final String EVENT_BOOTSTRAP_BEGIN_AUTO = "GeckoView:Tor:BootstrapBeginAuto";
private static final String EVENT_BOOTSTRAP_CANCEL = "GeckoView:Tor:BootstrapCancel";
private static final String EVENT_BOOTSTRAP_GET_STATE = "GeckoView:Tor:BootstrapGetState";
+ private static final String EVENT_QUICKSTART_GET = "GeckoView:Tor:QuickstartGet";
+ private static final String EVENT_QUICKSTART_SET = "GeckoView:Tor:QuickstartSet";
private static final String CONTROL_PORT_FILE = "/control-ipc";
private static final String SOCKS_FILE = "/socks-ipc";
@@ -682,6 +684,23 @@ public class TorIntegrationAndroid implements BundleEventListener {
return EventDispatcher.getInstance().queryVoid(EVENT_SETTINGS_SET, bundle);
}
+ public interface QuickstartGetter {
+ void onValue(boolean enabled);
+ }
+
+ public void quickstartGet(QuickstartGetter quickstartGetter) {
+ EventDispatcher.getInstance().queryBoolean(EVENT_QUICKSTART_GET).then(enabled -> {
+ quickstartGetter.onValue(Boolean.TRUE.equals(enabled));
+ return new GeckoResult<Void>();
+ });
+ }
+
+ public @NonNull GeckoResult<Void> quickstartSet(boolean enabled) {
+ final GeckoBundle bundle = new GeckoBundle(1);
+ bundle.putBoolean("enabled", enabled);
+ return EventDispatcher.getInstance().queryVoid(EVENT_QUICKSTART_SET, bundle);
+ }
+
public @NonNull GeckoResult<Void> beginBootstrap() {
return EventDispatcher.getInstance().queryVoid(EVENT_BOOTSTRAP_BEGIN);
}
=====================================
mobile/android/geckoview/src/main/java/org/mozilla/geckoview/TorSettings.java
=====================================
@@ -101,8 +101,6 @@ public class TorSettings {
public boolean enabled = true;
- public boolean quickstart = false;
-
// bridges section
public boolean bridgesEnabled = false;
public BridgeSource bridgesSource = BridgeSource.Invalid;
@@ -125,7 +123,6 @@ public class TorSettings {
public TorSettings(GeckoBundle bundle) {
try {
- GeckoBundle qs = bundle.getBundle("quickstart");
GeckoBundle bridges = bundle.getBundle("bridges");
GeckoBundle proxy = bundle.getBundle("proxy");
GeckoBundle firewall = bundle.getBundle("firewall");
@@ -135,8 +132,6 @@ public class TorSettings {
bridgesBuiltinType = BridgeBuiltinType.fromString(bridges.getString("builtin_type"));
bridgeBridgeStrings = bridges.getStringArray("bridge_strings");
- quickstart = qs.getBoolean("enabled");
-
firewallEnabled = firewall.getBoolean("enabled");
firewallAllowedPorts = firewall.getIntArray("allowed_ports");
@@ -156,7 +151,6 @@ public class TorSettings {
public GeckoBundle asGeckoBundle() {
GeckoBundle bundle = new GeckoBundle();
- GeckoBundle qs = new GeckoBundle();
GeckoBundle bridges = new GeckoBundle();
GeckoBundle proxy = new GeckoBundle();
GeckoBundle firewall = new GeckoBundle();
@@ -166,8 +160,6 @@ public class TorSettings {
bridges.putString("builtin_type", bridgesBuiltinType.toString());
bridges.putStringArray("bridge_strings", bridgeBridgeStrings);
- qs.putBoolean("enabled", quickstart);
-
firewall.putBoolean("enabled", firewallEnabled);
firewall.putIntArray("allowed_ports", firewallAllowedPorts);
@@ -178,7 +170,6 @@ public class TorSettings {
proxy.putInt("port", proxyPort);
proxy.putInt("type", proxyType.toInt());
- bundle.putBundle("quickstart", qs);
bundle.putBundle("bridges", bridges);
bundle.putBundle("proxy", proxy);
bundle.putBundle("firewall", firewall);
=====================================
mobile/android/geckoview/src/main/java/org/mozilla/geckoview/androidlegacysettings/TorLegacyAndroidSettings.java
=====================================
@@ -24,9 +24,6 @@ public class TorLegacyAndroidSettings {
// always true, tor is enabled in TB
settings.enabled = true;
- // firefox-android disconnected quick start a while ago so it's untracked
- settings.quickstart = false;
-
settings.bridgesEnabled = Prefs.bridgesEnabled();
// tor-android-service CustomTorInstaller.java
=====================================
toolkit/modules/TorAndroidIntegration.sys.mjs
=====================================
@@ -41,12 +41,19 @@ const ListenedEvents = Object.freeze({
bootstrapBeginAuto: "GeckoView:Tor:BootstrapBeginAuto",
bootstrapCancel: "GeckoView:Tor:BootstrapCancel",
bootstrapGetState: "GeckoView:Tor:BootstrapGetState",
+ quickstartGet: "GeckoView:Tor:QuickstartGet",
+ quickstartSet: "GeckoView:Tor:QuickstartSet",
});
class TorAndroidIntegrationImpl {
#initialized = false;
- async init() {
+ /**
+ * Register our listeners.
+ * We want this function to block GeckoView initialization, so it should not be
+ * async. Any async task should be moved to #deferredInit, instead.
+ */
+ init() {
if (this.#initialized) {
logger.warn("Something tried to initilize us again.");
return;
@@ -74,6 +81,14 @@ class TorAndroidIntegrationImpl {
// by TorProviderBuilder.init.
lazy.TorProviderBuilder.firstWindowLoaded();
+ this.#deferredInit();
+ }
+
+ /**
+ * Perform our init tasks that should not block the initialization of
+ * GeckoView. This function will not be awaited, so errors can only be logged.
+ */
+ async #deferredInit() {
try {
await lazy.TorSettings.init();
await lazy.TorConnect.init();
@@ -82,24 +97,6 @@ class TorAndroidIntegrationImpl {
}
}
- /**
- * Combine the current TorSettings settings with the TorConnect settings.
- *
- * @returns {object} The TorSettings in an object, which also has a
- * `quickstart.enabled` property.
- */
- // This is added for backward compatibility with TorSettings.getSettings prior
- // to tor-browser#41921, when it used to control the quickstart setting.
- // TODO: Have android separate out the request for TorConnect.quickstart. In
- // principle, this would allow android tor connect UI to be loaded before
- // TorSettings has initialized (the SettingsReady signal), similar to desktop.
- // See tor-browser#43408.
- #getAllSettings() {
- const settings = lazy.TorSettings.getSettings();
- settings.quickstart = { enabled: lazy.TorConnect.quickstart };
- return settings;
- }
-
observe(subj, topic) {
switch (topic) {
// TODO: Replace with StageChange.
@@ -142,7 +139,7 @@ class TorAndroidIntegrationImpl {
case lazy.TorSettingsTopics.Ready:
lazy.EventDispatcher.instance.sendRequest({
type: EmittedEvents.settingsReady,
- settings: this.#getAllSettings(),
+ settings: lazy.TorSettings.getSettings(),
});
break;
case lazy.TorSettingsTopics.SettingsChanged:
@@ -151,20 +148,7 @@ class TorAndroidIntegrationImpl {
lazy.EventDispatcher.instance.sendRequest({
type: EmittedEvents.settingsChanged,
changes: subj.wrappedJSObject.changes ?? [],
- settings: this.#getAllSettings(),
- });
- break;
- case lazy.TorConnectTopics.QuickstartChange:
- // We also include the TorSettings, and a `changes` Array similar to
- // SettingsChanged signal. This is for backward compatibility with
- // TorSettings.getSettings prior to tor-browser#41921, when it used to
- // control the quickstart setting.
- // TODO: Have android separate out the request for TorConnect.quickstart.
- // See tor-browser#43408.
- lazy.EventDispatcher.instance.sendRequest({
- type: EmittedEvents.settingsChanged,
- changes: ["quickstart.enabled"],
- settings: this.#getAllSettings(),
+ settings: lazy.TorSettings.getSettings(),
});
break;
}
@@ -175,19 +159,9 @@ class TorAndroidIntegrationImpl {
try {
switch (event) {
case ListenedEvents.settingsGet:
- callback?.onSuccess(this.#getAllSettings());
+ callback?.onSuccess(lazy.TorSettings.getSettings());
return;
case ListenedEvents.settingsSet:
- // TODO: Set quickstart via a separate event. See tor-browser#43408.
- // NOTE: Currently this may trigger GeckoView:Tor:SettingsChanged
- // twice: once for quickstart.enabled, and again for the other
- // settings.
- if (
- "quickstart" in data.settings &&
- "enabled" in data.settings.quickstart
- ) {
- lazy.TorConnect.quickstart = data.settings.quickstart.enabled;
- }
// TODO: Handle setting throw? This can throw if data.settings is
// incorrectly formatted, but more like it can throw when the settings
// fail to be passed onto the TorProvider. tor-browser#43405.
@@ -211,6 +185,12 @@ class TorAndroidIntegrationImpl {
return;
// TODO: Expose TorConnect.startAgain() to allow users to begin
// from the start again.
+ case ListenedEvents.quickstartGet:
+ callback?.onSuccess(lazy.TorConnect.quickstart);
+ return;
+ case ListenedEvents.quickstartSet:
+ lazy.TorConnect.quickstart = data.enabled;
+ break;
}
callback?.onSuccess();
} catch (e) {
View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/compare/86b24f…
--
View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/compare/86b24f…
You're receiving this email because of your account on gitlab.torproject.org.
1
0
[Git][tpo/applications/tor-browser-update-responses][main] alpha: new version, 14.5a3
by morgan (@morgan) 11 Feb '25
by morgan (@morgan) 11 Feb '25
11 Feb '25
morgan pushed to branch main at The Tor Project / Applications / Tor Browser update responses
Commits:
99bb4b56 by Morgan at 2025-02-11T18:10:31+00:00
alpha: new version, 14.5a3
- - - - -
39 changed files:
- update_3/alpha/.htaccess
- − update_3/alpha/14.0a8-14.5a2-windows-i686-ALL.xml
- − update_3/alpha/14.0a8-14.5a2-windows-x86_64-ALL.xml
- − update_3/alpha/14.0a9-14.5a2-windows-i686-ALL.xml
- − update_3/alpha/14.0a9-14.5a2-windows-x86_64-ALL.xml
- update_3/alpha/14.0a8-14.5a2-linux-i686-ALL.xml → update_3/alpha/14.0a9-14.5a3-linux-i686-ALL.xml
- update_3/alpha/14.0a8-14.5a2-linux-x86_64-ALL.xml → update_3/alpha/14.0a9-14.5a3-linux-x86_64-ALL.xml
- update_3/alpha/14.0a9-14.5a2-macos-ALL.xml → update_3/alpha/14.0a9-14.5a3-macos-ALL.xml
- + update_3/alpha/14.0a9-14.5a3-windows-i686-ALL.xml
- + update_3/alpha/14.0a9-14.5a3-windows-x86_64-ALL.xml
- − update_3/alpha/14.5a1-14.5a2-windows-i686-ALL.xml
- − update_3/alpha/14.5a1-14.5a2-windows-x86_64-ALL.xml
- update_3/alpha/14.0a9-14.5a2-linux-i686-ALL.xml → update_3/alpha/14.5a1-14.5a3-linux-i686-ALL.xml
- update_3/alpha/14.0a9-14.5a2-linux-x86_64-ALL.xml → update_3/alpha/14.5a1-14.5a3-linux-x86_64-ALL.xml
- update_3/alpha/14.5a1-14.5a2-macos-ALL.xml → update_3/alpha/14.5a1-14.5a3-macos-ALL.xml
- + update_3/alpha/14.5a1-14.5a3-windows-i686-ALL.xml
- + update_3/alpha/14.5a1-14.5a3-windows-x86_64-ALL.xml
- update_3/alpha/14.5a1-14.5a2-linux-i686-ALL.xml → update_3/alpha/14.5a2-14.5a3-linux-i686-ALL.xml
- update_3/alpha/14.5a1-14.5a2-linux-x86_64-ALL.xml → update_3/alpha/14.5a2-14.5a3-linux-x86_64-ALL.xml
- update_3/alpha/14.0a8-14.5a2-macos-ALL.xml → update_3/alpha/14.5a2-14.5a3-macos-ALL.xml
- + update_3/alpha/14.5a2-14.5a3-windows-i686-ALL.xml
- + update_3/alpha/14.5a2-14.5a3-windows-x86_64-ALL.xml
- − update_3/alpha/14.5a2-windows-i686-ALL.xml
- − update_3/alpha/14.5a2-windows-x86_64-ALL.xml
- update_3/alpha/14.5a2-linux-i686-ALL.xml → update_3/alpha/14.5a3-linux-i686-ALL.xml
- update_3/alpha/14.5a2-linux-x86_64-ALL.xml → update_3/alpha/14.5a3-linux-x86_64-ALL.xml
- update_3/alpha/14.5a2-macos-ALL.xml → update_3/alpha/14.5a3-macos-ALL.xml
- + update_3/alpha/14.5a3-windows-i686-ALL.xml
- + update_3/alpha/14.5a3-windows-x86_64-ALL.xml
- update_3/alpha/download-android-aarch64.json
- update_3/alpha/download-android-armv7.json
- update_3/alpha/download-android-x86.json
- update_3/alpha/download-android-x86_64.json
- update_3/alpha/download-linux-i686.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
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
[Git][tpo/applications/tor-browser] Pushed new branch tor-browser-129.0a1-15.0-2
by Pier Angelo Vendrame (@pierov) 11 Feb '25
by Pier Angelo Vendrame (@pierov) 11 Feb '25
11 Feb '25
Pier Angelo Vendrame pushed new branch tor-browser-129.0a1-15.0-2 at The Tor Project / Applications / Tor Browser
--
View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/tree/tor-brows…
You're receiving this email because of your account on gitlab.torproject.org.
1
0
[Git][tpo/applications/mullvad-browser-update-responses][main] alpha: new version, 14.5a3
by morgan (@morgan) 11 Feb '25
by morgan (@morgan) 11 Feb '25
11 Feb '25
morgan pushed to branch main at The Tor Project / Applications / mullvad-browser-update-responses
Commits:
c2964d4c by Morgan at 2025-02-11T17:16:25+00:00
alpha: new version, 14.5a3
- - - - -
29 changed files:
- update_1/alpha/.htaccess
- − update_1/alpha/14.0a10-14.5a2-linux-x86_64-ALL.xml
- − update_1/alpha/14.0a10-14.5a2-macos-ALL.xml
- − update_1/alpha/14.0a10-14.5a2-windows-x86_64-ALL.xml
- + update_1/alpha/14.0a10-14.5a3-linux-x86_64-ALL.xml
- + update_1/alpha/14.0a10-14.5a3-macos-ALL.xml
- + update_1/alpha/14.0a10-14.5a3-windows-x86_64-ALL.xml
- − update_1/alpha/14.0a9-14.5a2-linux-x86_64-ALL.xml
- − update_1/alpha/14.0a9-14.5a2-macos-ALL.xml
- − update_1/alpha/14.0a9-14.5a2-windows-x86_64-ALL.xml
- − update_1/alpha/14.5a1-14.5a2-linux-x86_64-ALL.xml
- − update_1/alpha/14.5a1-14.5a2-macos-ALL.xml
- − update_1/alpha/14.5a1-14.5a2-windows-x86_64-ALL.xml
- + update_1/alpha/14.5a1-14.5a3-linux-x86_64-ALL.xml
- + update_1/alpha/14.5a1-14.5a3-macos-ALL.xml
- + update_1/alpha/14.5a1-14.5a3-windows-x86_64-ALL.xml
- + update_1/alpha/14.5a2-14.5a3-linux-x86_64-ALL.xml
- + update_1/alpha/14.5a2-14.5a3-macos-ALL.xml
- + update_1/alpha/14.5a2-14.5a3-windows-x86_64-ALL.xml
- − update_1/alpha/14.5a2-linux-x86_64-ALL.xml
- − update_1/alpha/14.5a2-macos-ALL.xml
- − update_1/alpha/14.5a2-windows-x86_64-ALL.xml
- + update_1/alpha/14.5a3-linux-x86_64-ALL.xml
- + update_1/alpha/14.5a3-macos-ALL.xml
- + update_1/alpha/14.5a3-windows-x86_64-ALL.xml
- update_1/alpha/download-linux-x86_64.json
- update_1/alpha/download-macos.json
- update_1/alpha/download-windows-x86_64.json
- update_1/alpha/downloads.json
Changes:
=====================================
update_1/alpha/.htaccess
=====================================
@@ -1,22 +1,22 @@
RewriteEngine On
-RewriteRule ^[^/]+/14.5a2/ no-update.xml [last]
-RewriteRule ^Linux_x86_64-gcc3/14.0a10/ALL 14.0a10-14.5a2-linux-x86_64-ALL.xml [last]
-RewriteRule ^Linux_x86_64-gcc3/14.0a9/ALL 14.0a9-14.5a2-linux-x86_64-ALL.xml [last]
-RewriteRule ^Linux_x86_64-gcc3/14.5a1/ALL 14.5a1-14.5a2-linux-x86_64-ALL.xml [last]
-RewriteRule ^Linux_x86_64-gcc3/[^/]+/ALL 14.5a2-linux-x86_64-ALL.xml [last]
-RewriteRule ^Linux_x86_64-gcc3/ 14.5a2-linux-x86_64-ALL.xml [last]
-RewriteRule ^Darwin_x86_64-gcc3/14.0a10/ALL 14.0a10-14.5a2-macos-ALL.xml [last]
-RewriteRule ^Darwin_x86_64-gcc3/14.0a9/ALL 14.0a9-14.5a2-macos-ALL.xml [last]
-RewriteRule ^Darwin_x86_64-gcc3/14.5a1/ALL 14.5a1-14.5a2-macos-ALL.xml [last]
-RewriteRule ^Darwin_x86_64-gcc3/[^/]+/ALL 14.5a2-macos-ALL.xml [last]
-RewriteRule ^Darwin_x86_64-gcc3/ 14.5a2-macos-ALL.xml [last]
-RewriteRule ^Darwin_aarch64-gcc3/14.0a10/ALL 14.0a10-14.5a2-macos-ALL.xml [last]
-RewriteRule ^Darwin_aarch64-gcc3/14.0a9/ALL 14.0a9-14.5a2-macos-ALL.xml [last]
-RewriteRule ^Darwin_aarch64-gcc3/14.5a1/ALL 14.5a1-14.5a2-macos-ALL.xml [last]
-RewriteRule ^Darwin_aarch64-gcc3/[^/]+/ALL 14.5a2-macos-ALL.xml [last]
-RewriteRule ^Darwin_aarch64-gcc3/ 14.5a2-macos-ALL.xml [last]
-RewriteRule ^WINNT_x86_64-gcc3-x64/14.0a10/ALL 14.0a10-14.5a2-windows-x86_64-ALL.xml [last]
-RewriteRule ^WINNT_x86_64-gcc3-x64/14.0a9/ALL 14.0a9-14.5a2-windows-x86_64-ALL.xml [last]
-RewriteRule ^WINNT_x86_64-gcc3-x64/14.5a1/ALL 14.5a1-14.5a2-windows-x86_64-ALL.xml [last]
-RewriteRule ^WINNT_x86_64-gcc3-x64/[^/]+/ALL 14.5a2-windows-x86_64-ALL.xml [last]
-RewriteRule ^WINNT_x86_64-gcc3-x64/ 14.5a2-windows-x86_64-ALL.xml [last]
+RewriteRule ^[^/]+/14.5a3/ no-update.xml [last]
+RewriteRule ^Linux_x86_64-gcc3/14.0a10/ALL 14.0a10-14.5a3-linux-x86_64-ALL.xml [last]
+RewriteRule ^Linux_x86_64-gcc3/14.5a1/ALL 14.5a1-14.5a3-linux-x86_64-ALL.xml [last]
+RewriteRule ^Linux_x86_64-gcc3/14.5a2/ALL 14.5a2-14.5a3-linux-x86_64-ALL.xml [last]
+RewriteRule ^Linux_x86_64-gcc3/[^/]+/ALL 14.5a3-linux-x86_64-ALL.xml [last]
+RewriteRule ^Linux_x86_64-gcc3/ 14.5a3-linux-x86_64-ALL.xml [last]
+RewriteRule ^Darwin_x86_64-gcc3/14.0a10/ALL 14.0a10-14.5a3-macos-ALL.xml [last]
+RewriteRule ^Darwin_x86_64-gcc3/14.5a1/ALL 14.5a1-14.5a3-macos-ALL.xml [last]
+RewriteRule ^Darwin_x86_64-gcc3/14.5a2/ALL 14.5a2-14.5a3-macos-ALL.xml [last]
+RewriteRule ^Darwin_x86_64-gcc3/[^/]+/ALL 14.5a3-macos-ALL.xml [last]
+RewriteRule ^Darwin_x86_64-gcc3/ 14.5a3-macos-ALL.xml [last]
+RewriteRule ^Darwin_aarch64-gcc3/14.0a10/ALL 14.0a10-14.5a3-macos-ALL.xml [last]
+RewriteRule ^Darwin_aarch64-gcc3/14.5a1/ALL 14.5a1-14.5a3-macos-ALL.xml [last]
+RewriteRule ^Darwin_aarch64-gcc3/14.5a2/ALL 14.5a2-14.5a3-macos-ALL.xml [last]
+RewriteRule ^Darwin_aarch64-gcc3/[^/]+/ALL 14.5a3-macos-ALL.xml [last]
+RewriteRule ^Darwin_aarch64-gcc3/ 14.5a3-macos-ALL.xml [last]
+RewriteRule ^WINNT_x86_64-gcc3-x64/14.0a10/ALL 14.0a10-14.5a3-windows-x86_64-ALL.xml [last]
+RewriteRule ^WINNT_x86_64-gcc3-x64/14.5a1/ALL 14.5a1-14.5a3-windows-x86_64-ALL.xml [last]
+RewriteRule ^WINNT_x86_64-gcc3-x64/14.5a2/ALL 14.5a2-14.5a3-windows-x86_64-ALL.xml [last]
+RewriteRule ^WINNT_x86_64-gcc3-x64/[^/]+/ALL 14.5a3-windows-x86_64-ALL.xml [last]
+RewriteRule ^WINNT_x86_64-gcc3-x64/ 14.5a3-windows-x86_64-ALL.xml [last]
=====================================
update_1/alpha/14.0a10-14.5a2-linux-x86_64-ALL.xml deleted
=====================================
@@ -1,2 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<updates><update type="minor" displayVersion="14.5a2" appVersion="14.5a2" platformVersion="128.6.0" buildID="20250113190000" detailsURL="https://github.com/mullvad/mullvad-browser/releases/14.5a2" actions="showURL" openURL="https://github.com/mullvad/mullvad-browser/releases/14.5a2" minSupportedInstructionSet="SSE2"><patch URL="https://cdn.mullvad.net/browser/14.5a2/mullvad-browser-linux-x86_64-14.5a2_…" size="114333352" type="complete"></patch><patch URL="https://cdn.mullvad.net/browser/14.5a2/mullvad-browser-linux-x86_64--14.0a1…" size="11287432" type="partial"></patch></update></updates>
=====================================
update_1/alpha/14.0a10-14.5a2-macos-ALL.xml deleted
=====================================
@@ -1,2 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<updates><update type="minor" displayVersion="14.5a2" appVersion="14.5a2" platformVersion="128.6.0" buildID="20250113190000" detailsURL="https://github.com/mullvad/mullvad-browser/releases/14.5a2" actions="showURL" openURL="https://github.com/mullvad/mullvad-browser/releases/14.5a2" minSupportedOSVersion="19.0.0"><patch URL="https://cdn.mullvad.net/browser/14.5a2/mullvad-browser-macos-14.5a2_ALL.mar" size="129444826" type="complete"></patch><patch URL="https://cdn.mullvad.net/browser/14.5a2/mullvad-browser-macos--14.0a10-14.5a…" size="16169041" type="partial"></patch></update></updates>
=====================================
update_1/alpha/14.0a10-14.5a2-windows-x86_64-ALL.xml deleted
=====================================
@@ -1,2 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<updates><update type="minor" displayVersion="14.5a2" appVersion="14.5a2" platformVersion="128.6.0" buildID="20250113190000" detailsURL="https://github.com/mullvad/mullvad-browser/releases/14.5a2" actions="showURL" openURL="https://github.com/mullvad/mullvad-browser/releases/14.5a2" minSupportedOSVersion="10.0"><patch URL="https://cdn.mullvad.net/browser/14.5a2/mullvad-browser-windows-x86_64-14.5a…" size="97749356" type="complete"></patch><patch URL="https://cdn.mullvad.net/browser/14.5a2/mullvad-browser-windows-x86_64--14.0…" size="11795240" type="partial"></patch></update></updates>
=====================================
update_1/alpha/14.0a10-14.5a3-linux-x86_64-ALL.xml
=====================================
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<updates><update type="minor" displayVersion="14.5a3" appVersion="14.5a3" platformVersion="128.7.0" buildID="20250210181825" detailsURL="https://github.com/mullvad/mullvad-browser/releases/14.5a3" actions="showURL" openURL="https://github.com/mullvad/mullvad-browser/releases/14.5a3" minSupportedInstructionSet="SSE2"><patch URL="https://cdn.mullvad.net/browser/14.5a3/mullvad-browser-linux-x86_64-14.5a3_…" size="114067120" type="complete"></patch><patch URL="https://cdn.mullvad.net/browser/14.5a3/mullvad-browser-linux-x86_64--14.0a1…" size="11862440" type="partial"></patch></update></updates>
=====================================
update_1/alpha/14.0a10-14.5a3-macos-ALL.xml
=====================================
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<updates><update type="minor" displayVersion="14.5a3" appVersion="14.5a3" platformVersion="128.7.0" buildID="20250210181825" detailsURL="https://github.com/mullvad/mullvad-browser/releases/14.5a3" actions="showURL" openURL="https://github.com/mullvad/mullvad-browser/releases/14.5a3" minSupportedOSVersion="19.0.0"><patch URL="https://cdn.mullvad.net/browser/14.5a3/mullvad-browser-macos-14.5a3_ALL.mar" size="129181586" type="complete"></patch><patch URL="https://cdn.mullvad.net/browser/14.5a3/mullvad-browser-macos--14.0a10-14.5a…" size="17101005" type="partial"></patch></update></updates>
=====================================
update_1/alpha/14.0a10-14.5a3-windows-x86_64-ALL.xml
=====================================
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<updates><update type="minor" displayVersion="14.5a3" appVersion="14.5a3" platformVersion="128.7.0" buildID="20250210181825" detailsURL="https://github.com/mullvad/mullvad-browser/releases/14.5a3" actions="showURL" openURL="https://github.com/mullvad/mullvad-browser/releases/14.5a3" minSupportedOSVersion="10.0"><patch URL="https://cdn.mullvad.net/browser/14.5a3/mullvad-browser-windows-x86_64-14.5a…" size="97454876" type="complete"></patch><patch URL="https://cdn.mullvad.net/browser/14.5a3/mullvad-browser-windows-x86_64--14.0…" size="12388836" type="partial"></patch></update></updates>
=====================================
update_1/alpha/14.0a9-14.5a2-linux-x86_64-ALL.xml deleted
=====================================
@@ -1,2 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<updates><update type="minor" displayVersion="14.5a2" appVersion="14.5a2" platformVersion="128.6.0" buildID="20250113190000" detailsURL="https://github.com/mullvad/mullvad-browser/releases/14.5a2" actions="showURL" openURL="https://github.com/mullvad/mullvad-browser/releases/14.5a2" minSupportedInstructionSet="SSE2"><patch URL="https://cdn.mullvad.net/browser/14.5a2/mullvad-browser-linux-x86_64-14.5a2_…" size="114333352" type="complete"></patch><patch URL="https://cdn.mullvad.net/browser/14.5a2/mullvad-browser-linux-x86_64--14.0a9…" size="13533872" type="partial"></patch></update></updates>
=====================================
update_1/alpha/14.0a9-14.5a2-macos-ALL.xml deleted
=====================================
@@ -1,2 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<updates><update type="minor" displayVersion="14.5a2" appVersion="14.5a2" platformVersion="128.6.0" buildID="20250113190000" detailsURL="https://github.com/mullvad/mullvad-browser/releases/14.5a2" actions="showURL" openURL="https://github.com/mullvad/mullvad-browser/releases/14.5a2" minSupportedOSVersion="19.0.0"><patch URL="https://cdn.mullvad.net/browser/14.5a2/mullvad-browser-macos-14.5a2_ALL.mar" size="129444826" type="complete"></patch><patch URL="https://cdn.mullvad.net/browser/14.5a2/mullvad-browser-macos--14.0a9-14.5a2…" size="19049341" type="partial"></patch></update></updates>
=====================================
update_1/alpha/14.0a9-14.5a2-windows-x86_64-ALL.xml deleted
=====================================
@@ -1,2 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<updates><update type="minor" displayVersion="14.5a2" appVersion="14.5a2" platformVersion="128.6.0" buildID="20250113190000" detailsURL="https://github.com/mullvad/mullvad-browser/releases/14.5a2" actions="showURL" openURL="https://github.com/mullvad/mullvad-browser/releases/14.5a2" minSupportedOSVersion="10.0"><patch URL="https://cdn.mullvad.net/browser/14.5a2/mullvad-browser-windows-x86_64-14.5a…" size="97749356" type="complete"></patch><patch URL="https://cdn.mullvad.net/browser/14.5a2/mullvad-browser-windows-x86_64--14.0…" size="17370808" type="partial"></patch></update></updates>
=====================================
update_1/alpha/14.5a1-14.5a2-linux-x86_64-ALL.xml deleted
=====================================
@@ -1,2 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<updates><update type="minor" displayVersion="14.5a2" appVersion="14.5a2" platformVersion="128.6.0" buildID="20250113190000" detailsURL="https://github.com/mullvad/mullvad-browser/releases/14.5a2" actions="showURL" openURL="https://github.com/mullvad/mullvad-browser/releases/14.5a2" minSupportedInstructionSet="SSE2"><patch URL="https://cdn.mullvad.net/browser/14.5a2/mullvad-browser-linux-x86_64-14.5a2_…" size="114333352" type="complete"></patch><patch URL="https://cdn.mullvad.net/browser/14.5a2/mullvad-browser-linux-x86_64--14.5a1…" size="6787525" type="partial"></patch></update></updates>
=====================================
update_1/alpha/14.5a1-14.5a2-macos-ALL.xml deleted
=====================================
@@ -1,2 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<updates><update type="minor" displayVersion="14.5a2" appVersion="14.5a2" platformVersion="128.6.0" buildID="20250113190000" detailsURL="https://github.com/mullvad/mullvad-browser/releases/14.5a2" actions="showURL" openURL="https://github.com/mullvad/mullvad-browser/releases/14.5a2" minSupportedOSVersion="19.0.0"><patch URL="https://cdn.mullvad.net/browser/14.5a2/mullvad-browser-macos-14.5a2_ALL.mar" size="129444826" type="complete"></patch><patch URL="https://cdn.mullvad.net/browser/14.5a2/mullvad-browser-macos--14.5a1-14.5a2…" size="11557520" type="partial"></patch></update></updates>
=====================================
update_1/alpha/14.5a1-14.5a2-windows-x86_64-ALL.xml deleted
=====================================
@@ -1,2 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<updates><update type="minor" displayVersion="14.5a2" appVersion="14.5a2" platformVersion="128.6.0" buildID="20250113190000" detailsURL="https://github.com/mullvad/mullvad-browser/releases/14.5a2" actions="showURL" openURL="https://github.com/mullvad/mullvad-browser/releases/14.5a2" minSupportedOSVersion="10.0"><patch URL="https://cdn.mullvad.net/browser/14.5a2/mullvad-browser-windows-x86_64-14.5a…" size="97749356" type="complete"></patch><patch URL="https://cdn.mullvad.net/browser/14.5a2/mullvad-browser-windows-x86_64--14.5…" size="7252942" type="partial"></patch></update></updates>
=====================================
update_1/alpha/14.5a1-14.5a3-linux-x86_64-ALL.xml
=====================================
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<updates><update type="minor" displayVersion="14.5a3" appVersion="14.5a3" platformVersion="128.7.0" buildID="20250210181825" detailsURL="https://github.com/mullvad/mullvad-browser/releases/14.5a3" actions="showURL" openURL="https://github.com/mullvad/mullvad-browser/releases/14.5a3" minSupportedInstructionSet="SSE2"><patch URL="https://cdn.mullvad.net/browser/14.5a3/mullvad-browser-linux-x86_64-14.5a3_…" size="114067120" type="complete"></patch><patch URL="https://cdn.mullvad.net/browser/14.5a3/mullvad-browser-linux-x86_64--14.5a1…" size="9562375" type="partial"></patch></update></updates>
=====================================
update_1/alpha/14.5a1-14.5a3-macos-ALL.xml
=====================================
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<updates><update type="minor" displayVersion="14.5a3" appVersion="14.5a3" platformVersion="128.7.0" buildID="20250210181825" detailsURL="https://github.com/mullvad/mullvad-browser/releases/14.5a3" actions="showURL" openURL="https://github.com/mullvad/mullvad-browser/releases/14.5a3" minSupportedOSVersion="19.0.0"><patch URL="https://cdn.mullvad.net/browser/14.5a3/mullvad-browser-macos-14.5a3_ALL.mar" size="129181586" type="complete"></patch><patch URL="https://cdn.mullvad.net/browser/14.5a3/mullvad-browser-macos--14.5a1-14.5a3…" size="14817809" type="partial"></patch></update></updates>
=====================================
update_1/alpha/14.5a1-14.5a3-windows-x86_64-ALL.xml
=====================================
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<updates><update type="minor" displayVersion="14.5a3" appVersion="14.5a3" platformVersion="128.7.0" buildID="20250210181825" detailsURL="https://github.com/mullvad/mullvad-browser/releases/14.5a3" actions="showURL" openURL="https://github.com/mullvad/mullvad-browser/releases/14.5a3" minSupportedOSVersion="10.0"><patch URL="https://cdn.mullvad.net/browser/14.5a3/mullvad-browser-windows-x86_64-14.5a…" size="97454876" type="complete"></patch><patch URL="https://cdn.mullvad.net/browser/14.5a3/mullvad-browser-windows-x86_64--14.5…" size="10069248" type="partial"></patch></update></updates>
=====================================
update_1/alpha/14.5a2-14.5a3-linux-x86_64-ALL.xml
=====================================
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<updates><update type="minor" displayVersion="14.5a3" appVersion="14.5a3" platformVersion="128.7.0" buildID="20250210181825" detailsURL="https://github.com/mullvad/mullvad-browser/releases/14.5a3" actions="showURL" openURL="https://github.com/mullvad/mullvad-browser/releases/14.5a3" minSupportedInstructionSet="SSE2"><patch URL="https://cdn.mullvad.net/browser/14.5a3/mullvad-browser-linux-x86_64-14.5a3_…" size="114067120" type="complete"></patch><patch URL="https://cdn.mullvad.net/browser/14.5a3/mullvad-browser-linux-x86_64--14.5a2…" size="7840189" type="partial"></patch></update></updates>
=====================================
update_1/alpha/14.5a2-14.5a3-macos-ALL.xml
=====================================
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<updates><update type="minor" displayVersion="14.5a3" appVersion="14.5a3" platformVersion="128.7.0" buildID="20250210181825" detailsURL="https://github.com/mullvad/mullvad-browser/releases/14.5a3" actions="showURL" openURL="https://github.com/mullvad/mullvad-browser/releases/14.5a3" minSupportedOSVersion="19.0.0"><patch URL="https://cdn.mullvad.net/browser/14.5a3/mullvad-browser-macos-14.5a3_ALL.mar" size="129181586" type="complete"></patch><patch URL="https://cdn.mullvad.net/browser/14.5a3/mullvad-browser-macos--14.5a2-14.5a3…" size="12896373" type="partial"></patch></update></updates>
=====================================
update_1/alpha/14.5a2-14.5a3-windows-x86_64-ALL.xml
=====================================
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<updates><update type="minor" displayVersion="14.5a3" appVersion="14.5a3" platformVersion="128.7.0" buildID="20250210181825" detailsURL="https://github.com/mullvad/mullvad-browser/releases/14.5a3" actions="showURL" openURL="https://github.com/mullvad/mullvad-browser/releases/14.5a3" minSupportedOSVersion="10.0"><patch URL="https://cdn.mullvad.net/browser/14.5a3/mullvad-browser-windows-x86_64-14.5a…" size="97454876" type="complete"></patch><patch URL="https://cdn.mullvad.net/browser/14.5a3/mullvad-browser-windows-x86_64--14.5…" size="8331502" type="partial"></patch></update></updates>
=====================================
update_1/alpha/14.5a2-linux-x86_64-ALL.xml deleted
=====================================
@@ -1,2 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<updates><update type="minor" displayVersion="14.5a2" appVersion="14.5a2" platformVersion="128.6.0" buildID="20250113190000" detailsURL="https://github.com/mullvad/mullvad-browser/releases/14.5a2" actions="showURL" openURL="https://github.com/mullvad/mullvad-browser/releases/14.5a2" minSupportedInstructionSet="SSE2"><patch URL="https://cdn.mullvad.net/browser/14.5a2/mullvad-browser-linux-x86_64-14.5a2_…" size="114333352" type="complete"></patch></update></updates>
=====================================
update_1/alpha/14.5a2-macos-ALL.xml deleted
=====================================
@@ -1,2 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<updates><update type="minor" displayVersion="14.5a2" appVersion="14.5a2" platformVersion="128.6.0" buildID="20250113190000" detailsURL="https://github.com/mullvad/mullvad-browser/releases/14.5a2" actions="showURL" openURL="https://github.com/mullvad/mullvad-browser/releases/14.5a2" minSupportedOSVersion="19.0.0"><patch URL="https://cdn.mullvad.net/browser/14.5a2/mullvad-browser-macos-14.5a2_ALL.mar" size="129444826" type="complete"></patch></update></updates>
=====================================
update_1/alpha/14.5a2-windows-x86_64-ALL.xml deleted
=====================================
@@ -1,2 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<updates><update type="minor" displayVersion="14.5a2" appVersion="14.5a2" platformVersion="128.6.0" buildID="20250113190000" detailsURL="https://github.com/mullvad/mullvad-browser/releases/14.5a2" actions="showURL" openURL="https://github.com/mullvad/mullvad-browser/releases/14.5a2" minSupportedOSVersion="10.0"><patch URL="https://cdn.mullvad.net/browser/14.5a2/mullvad-browser-windows-x86_64-14.5a…" size="97749356" type="complete"></patch></update></updates>
=====================================
update_1/alpha/14.5a3-linux-x86_64-ALL.xml
=====================================
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<updates><update type="minor" displayVersion="14.5a3" appVersion="14.5a3" platformVersion="128.7.0" buildID="20250210181825" detailsURL="https://github.com/mullvad/mullvad-browser/releases/14.5a3" actions="showURL" openURL="https://github.com/mullvad/mullvad-browser/releases/14.5a3" minSupportedInstructionSet="SSE2"><patch URL="https://cdn.mullvad.net/browser/14.5a3/mullvad-browser-linux-x86_64-14.5a3_…" size="114067120" type="complete"></patch></update></updates>
=====================================
update_1/alpha/14.5a3-macos-ALL.xml
=====================================
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<updates><update type="minor" displayVersion="14.5a3" appVersion="14.5a3" platformVersion="128.7.0" buildID="20250210181825" detailsURL="https://github.com/mullvad/mullvad-browser/releases/14.5a3" actions="showURL" openURL="https://github.com/mullvad/mullvad-browser/releases/14.5a3" minSupportedOSVersion="19.0.0"><patch URL="https://cdn.mullvad.net/browser/14.5a3/mullvad-browser-macos-14.5a3_ALL.mar" size="129181586" type="complete"></patch></update></updates>
=====================================
update_1/alpha/14.5a3-windows-x86_64-ALL.xml
=====================================
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<updates><update type="minor" displayVersion="14.5a3" appVersion="14.5a3" platformVersion="128.7.0" buildID="20250210181825" detailsURL="https://github.com/mullvad/mullvad-browser/releases/14.5a3" actions="showURL" openURL="https://github.com/mullvad/mullvad-browser/releases/14.5a3" minSupportedOSVersion="10.0"><patch URL="https://cdn.mullvad.net/browser/14.5a3/mullvad-browser-windows-x86_64-14.5a…" size="97454876" type="complete"></patch></update></updates>
=====================================
update_1/alpha/download-linux-x86_64.json
=====================================
@@ -1 +1 @@
-{"binary":"https://cdn.mullvad.net/browser/14.5a2/mullvad-browser-linux-x86_64-14.5a2.…","git_tag":"mb-14.5a2-build2","sig":"https://cdn.mullvad.net/browser/14.5a2/mullvad-browser-linux-x86_64-14.5a2.…","version":"14.5a2"}
\ No newline at end of file
+{"binary":"https://cdn.mullvad.net/browser/14.5a3/mullvad-browser-linux-x86_64-14.5a3.…","git_tag":"mb-14.5a3-build1","sig":"https://cdn.mullvad.net/browser/14.5a3/mullvad-browser-linux-x86_64-14.5a3.…","version":"14.5a3"}
\ No newline at end of file
=====================================
update_1/alpha/download-macos.json
=====================================
@@ -1 +1 @@
-{"binary":"https://cdn.mullvad.net/browser/14.5a2/mullvad-browser-macos-14.5a2.dmg","git_tag":"mb-14.5a2-build2","sig":"https://cdn.mullvad.net/browser/14.5a2/mullvad-browser-macos-14.5a2.dmg.asc","version":"14.5a2"}
\ No newline at end of file
+{"binary":"https://cdn.mullvad.net/browser/14.5a3/mullvad-browser-macos-14.5a3.dmg","git_tag":"mb-14.5a3-build1","sig":"https://cdn.mullvad.net/browser/14.5a3/mullvad-browser-macos-14.5a3.dmg.asc","version":"14.5a3"}
\ No newline at end of file
=====================================
update_1/alpha/download-windows-x86_64.json
=====================================
@@ -1 +1 @@
-{"binary":"https://cdn.mullvad.net/browser/14.5a2/mullvad-browser-windows-x86_64-14.5a…","git_tag":"mb-14.5a2-build2","sig":"https://cdn.mullvad.net/browser/14.5a2/mullvad-browser-windows-x86_64-14.5a…","version":"14.5a2"}
\ No newline at end of file
+{"binary":"https://cdn.mullvad.net/browser/14.5a3/mullvad-browser-windows-x86_64-14.5a…","git_tag":"mb-14.5a3-build1","sig":"https://cdn.mullvad.net/browser/14.5a3/mullvad-browser-windows-x86_64-14.5a…","version":"14.5a3"}
\ No newline at end of file
=====================================
update_1/alpha/downloads.json
=====================================
@@ -1 +1 @@
-{"downloads":{"linux-x86_64":{"ALL":{"binary":"https://cdn.mullvad.net/browser/14.5a2/mullvad-browser-linux-x86_64-14.5a2.…","sig":"https://cdn.mullvad.net/browser/14.5a2/mullvad-browser-linux-x86_64-14.5a2.…"}},"macos":{"ALL":{"binary":"https://cdn.mullvad.net/browser/14.5a2/mullvad-browser-macos-14.5a2.dmg","sig":"https://cdn.mullvad.net/browser/14.5a2/mullvad-browser-macos-14.5a2.dmg.asc"}},"win64":{"ALL":{"binary":"https://cdn.mullvad.net/browser/14.5a2/mullvad-browser-windows-x86_64-14.5a…","sig":"https://cdn.mullvad.net/browser/14.5a2/mullvad-browser-windows-x86_64-14.5a…"}}},"tag":"mb-14.5a2-build2","version":"14.5a2"}
\ No newline at end of file
+{"downloads":{"linux-x86_64":{"ALL":{"binary":"https://cdn.mullvad.net/browser/14.5a3/mullvad-browser-linux-x86_64-14.5a3.…","sig":"https://cdn.mullvad.net/browser/14.5a3/mullvad-browser-linux-x86_64-14.5a3.…"}},"macos":{"ALL":{"binary":"https://cdn.mullvad.net/browser/14.5a3/mullvad-browser-macos-14.5a3.dmg","sig":"https://cdn.mullvad.net/browser/14.5a3/mullvad-browser-macos-14.5a3.dmg.asc"}},"win64":{"ALL":{"binary":"https://cdn.mullvad.net/browser/14.5a3/mullvad-browser-windows-x86_64-14.5a…","sig":"https://cdn.mullvad.net/browser/14.5a3/mullvad-browser-windows-x86_64-14.5a…"}}},"tag":"mb-14.5a3-build1","version":"14.5a3"}
\ No newline at end of file
View it on GitLab: https://gitlab.torproject.org/tpo/applications/mullvad-browser-update-respo…
--
View it on GitLab: https://gitlab.torproject.org/tpo/applications/mullvad-browser-update-respo…
You're receiving this email because of your account on gitlab.torproject.org.
1
0
[Git][tpo/applications/tor-browser-build][maint-13.5] 4 commits: Bug 41314: Add tools/setup-martools and tools/mar
by morgan (@morgan) 11 Feb '25
by morgan (@morgan) 11 Feb '25
11 Feb '25
morgan pushed to branch maint-13.5 at The Tor Project / Applications / tor-browser-build
Commits:
01306970 by Nicolas Vigier at 2025-02-10T17:37:34+01:00
Bug 41314: Add tools/setup-martools and tools/mar
tools/setup-martools will download and extract mar-tools to
tools/local/mar-tools (if not already present).
tools/mar will run mar after running tools/setup-martools.
- - - - -
ed149149 by Nicolas Vigier at 2025-02-10T17:50:53+01:00
Bug 41314: Use setup-martools in update_responses
- - - - -
8626181d by Nicolas Vigier at 2025-02-10T17:51:32+01:00
Bug 41314: Update mar-tools version in projects/mar-tools/config
- - - - -
6867368f by Nicolas Vigier at 2025-02-10T17:51:43+01:00
Bug 41314: Use setup-martools in dmg2mar
- - - - -
8 changed files:
- projects/mar-tools/config
- tools/dmg2mar
- + tools/mar
- + tools/setup-martools
- tools/signing/machines-setup/setup-signing-machine
- tools/signing/machines-setup/upload-tbb-to-signing-machine
- + tools/signmar
- tools/update-responses/update_responses
Changes:
=====================================
projects/mar-tools/config
=====================================
@@ -1,20 +1,22 @@
# vim: filetype=yaml sw=2
#
# Used by tools/signing/machines-setup/upload-tbb-to-signing-machine
-# to fetch mar-tools for signing machine setup
+# to fetch mar-tools for signing machine setup, and by tools/setup-martools
+# to allow running `mar` as `tools/mar`.
#
-version: 12.0.4
-filename: 'mar-tools-linux64.zip'
+version: 14.0.4
+filename: 'mar-tools.zip'
container:
use_container: 0
gpg_keyring: torbrowser.gpg
tag_gpg_id: 1
input_files:
- - URL: 'https://archive.torproject.org/tor-package-archive/torbrowser/[% c("version") %]/mar-tools-linux64.zip'
- sha256sum: 726ec4192de61a9342b3262c7ac722cbd59eaba07879be9589c65599d2d69584
+ - URL: 'https://archive.torproject.org/tor-package-archive/torbrowser/[% c("version") %]/mar-tools-linux-x86_64-[% c("version") %].zip'
+ sha256sum: 414254d2471c7f0bcc25de955dbbe716c416d0b80e7688dc2dd48ac6e7fdbf0a
steps:
fetch_martools:
fetch_martools: |
#!/bin/bash
- echo ok
+ mkdir -p '[% dest_dir %]'
+ cp -f mar-tools-linux-x86_64-[% c("version") %].zip '[% dest_dir %]/mar-tools.zip'
=====================================
tools/dmg2mar
=====================================
@@ -34,6 +34,7 @@ use File::Slurp;
use File::Find;
use Parallel::ForkManager;
use Cwd;
+use FindBin;
# If the application is not TorBrowser (for instance, TorMessenger)
# set the application name in the TOR_APPNAME_BUNDLE_OSX,
@@ -70,25 +71,18 @@ sub osname {
exit_error 'Unknown OS';
}
-my $martools_tmpdir;
-sub extract_martools {
- my $osname = osname;
- my $marzip = glob(getcwd . "/mar-tools-$osname-*.zip");
- exit_error "Could not find mar-tools zip" unless $marzip;
- $martools_tmpdir = File::Temp->newdir();
- my $old_cwd = getcwd;
- chdir $martools_tmpdir;
- my (undef, undef, $success) = capture_exec('unzip', $marzip);
- chdir $old_cwd;
- exit_error "Error extracting $marzip" unless $success;
- $ENV{PATH} = "$martools_tmpdir/mar-tools:$ENV{PATH}";
- if ($ENV{LD_LIBRARY_PATH}) {
- $ENV{LD_LIBRARY_PATH} .= ":$martools_tmpdir/mar-tools";
- } else {
- $ENV{LD_LIBRARY_PATH} = "$martools_tmpdir/mar-tools";
- }
- $ENV{MAR} = "$martools_tmpdir/mar-tools/mar";
- $ENV{MSBDIFF} = "$martools_tmpdir/mar-tools/mbsdiff";
+sub setup_martools {
+ my ($out, $err, $exit) = capture {
+ system("$FindBin::Bin/setup-martools");
+ };
+ exit_error "Error setting up mar-tools: $err" if $exit;
+ my $martoolsdir = "$FindBin::Bin/local/mar-tools";
+ if ($ENV{LD_LIBRARY_PATH}) {
+ $ENV{LD_LIBRARY_PATH} = "$ENV{LD_LIBRARY_PATH}:$martoolsdir";
+ } else {
+ $ENV{LD_LIBRARY_PATH} = "$martoolsdir/mar-tools";
+ }
+ $ENV{PATH} = "$martoolsdir:$ENV{PATH}";
}
sub get_nbprocs {
@@ -192,6 +186,6 @@ $ENV{LC_ALL} = 'C';
exit_error "Please specify the mar channel id" unless @ARGV == 1;
my $mar_channel_id = $ARGV[0];
-extract_martools;
+setup_martools;
convert_files $mar_channel_id;
remove_incremental_mars;
=====================================
tools/mar
=====================================
@@ -0,0 +1,8 @@
+#!/bin/bash
+set -e
+
+script_dir=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )
+cmdname=$(basename -- "${BASH_SOURCE[0]}")
+setupmt=$("$script_dir/setup-martools")
+eval "$setupmt"
+exec "$MARTOOLSDIR/$cmdname" "$@"
=====================================
tools/setup-martools
=====================================
@@ -0,0 +1,49 @@
+#!/bin/bash
+set -e
+
+script_dir=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )
+
+localdir="$script_dir/local"
+test $# -eq 1 && localdir="$1"
+
+cd "$script_dir/.."
+
+function download_extract_martools {
+ make submodule-update > /dev/null
+ martools_version=$(./rbm/rbm showconf --step fetch_martools mar-tools version)
+ if test -h "$localdir/mar-tools"; then
+ test "$(readlink $localdir/mar-tools)" = "mar-tools-$martools_version" && return 0
+ rm -f "$localdir/mar-tools"
+ fi
+ if test -d "$localdir/mar-tools"; then
+ echo "Error: $localdir/mar-tools already exists and is not a symlink"
+ exit 1
+ fi
+ echo "Setting up mar-tools"
+ mkdir -p "$localdir"
+ cd "$localdir"
+ if ! test -d "mar-tools-$martools_version"; then
+ cd "$script_dir/.."
+ ./rbm/rbm build --step fetch_martools mar-tools
+ martools_zip="$(pwd)/out/mar-tools/mar-tools.zip"
+ cd "$localdir"
+ test -f "$martools_zip"
+ unzip -jd "mar-tools-$martools_version" "$martools_zip"
+ fi
+ ln -sf "mar-tools-$martools_version" mar-tools
+ echo "mar-tools have been set up in $localdir/mar-tools"
+}
+
+function print_martools_vars {
+ mardir="$localdir/mar-tools"
+ if test -z "$LD_LIBRARY_PATH"; then
+ echo "export LD_LIBRARY_PATH=$mardir"
+ else
+ echo "export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$mardir"
+ fi
+ echo "export MARTOOLSDIR=$mardir"
+ echo "export MAR=$mardir/mar"
+}
+
+download_extract_martools >&2
+print_martools_vars
=====================================
tools/signing/machines-setup/setup-signing-machine
=====================================
@@ -137,7 +137,7 @@ fi
# install mar-tools
if ! test -d /home/signing-mar/mar-tools; then
tmpdir=$(mktemp -d)
- unzip -d "$tmpdir" /signing/mar-tools-linux64.zip
+ unzip -d "$tmpdir" /signing/mar-tools.zip
chown -R signing-mar:signing-mar "$tmpdir/mar-tools"
chmod go+rX "$tmpdir/mar-tools"/*
mv "$tmpdir/mar-tools" /home/signing-mar/mar-tools
=====================================
tools/signing/machines-setup/upload-tbb-to-signing-machine
=====================================
@@ -25,7 +25,7 @@ git archive --prefix=rbm/ --output="$tmpdir/rbm.tar" HEAD .
echo "Created rbm.tar"
cd ..
-martools_filename=mar-tools-linux64.zip
+martools_filename=mar-tools.zip
if ! test -f "./out/mar-tools/$martools_filename"; then
./rbm/rbm build --step fetch_martools mar-tools
echo "Downloaded $martools_filename"
=====================================
tools/signmar
=====================================
@@ -0,0 +1 @@
+mar
\ No newline at end of file
=====================================
tools/update-responses/update_responses
=====================================
@@ -33,8 +33,6 @@ my %htdocsfiles;
my $releases_dir = $config->{releases_dir};
$releases_dir = "$FindBin::Bin/$releases_dir" unless $releases_dir =~ m/^\//;
my @check_errors;
-my $initPATH = $ENV{PATH};
-my $initLD_LIBRARY_PATH = $ENV{LD_LIBRARY_PATH};
sub exit_error {
print STDERR "Error: ", $_[0], "\n";
@@ -63,6 +61,20 @@ sub get_nbprocs {
return 4;
}
+sub setup_martools {
+ my ($out, $err, $exit) = capture {
+ system("$FindBin::Bin/../setup-martools");
+ };
+ exit_error "Error setting up mar-tools: $err" if $exit;
+ my $martoolsdir = "$FindBin::Bin/../local/mar-tools";
+ if ($ENV{LD_LIBRARY_PATH}) {
+ $ENV{LD_LIBRARY_PATH} = "$ENV{LD_LIBRARY_PATH}:$martoolsdir";
+ } else {
+ $ENV{LD_LIBRARY_PATH} = "$martoolsdir/mar-tools";
+ }
+ $ENV{PATH} = "$martoolsdir:$ENV{PATH}";
+}
+
sub write_htdocs {
my ($channel, $file, $content) = @_;
mkdir $htdocsdir unless -d $htdocsdir;
@@ -320,7 +332,7 @@ sub channel_to_version {
sub get_buildinfos {
my ($config, $version) = @_;
return if exists $config->{versions}{$version}{buildID};
- extract_martools($config, $version);
+ setup_martools;
my $files = $config->{versions}{$version}{files};
foreach my $os (keys %$files) {
foreach my $lang (keys %{$files->{$os}}) {
@@ -474,37 +486,6 @@ sub write_downloads_json {
}
}
-sub marzip_path {
- my ($config, $version) = @_;
- for my $osname (qw/linux-x86_64 linux-i686 macos-x86_64 windows-x86_64 windows-i686/) {
- my $marzip = glob(version_dir($config, $version) . "/mar-tools-$osname-*.zip");
- if ($marzip && -f $marzip) {
- return $marzip;
- }
- }
- exit_error 'Could not find mar-tools';
-}
-
-my $martools_tmpdir;
-sub extract_martools {
- my ($config, $version) = @_;
- my $marzip = marzip_path($config, $version);
- $martools_tmpdir = get_tmpdir($config);
- my $old_cwd = getcwd;
- chdir $martools_tmpdir;
- my (undef, undef, $exit) = capture {
- system('unzip', $marzip);
- };
- chdir $old_cwd;
- exit_error "Error extracting $marzip" if $exit;
- $ENV{PATH} = "$martools_tmpdir/mar-tools:$initPATH";
- if ($initLD_LIBRARY_PATH) {
- $ENV{LD_LIBRARY_PATH} = "$initLD_LIBRARY_PATH:$martools_tmpdir/mar-tools";
- } else {
- $ENV{LD_LIBRARY_PATH} = "$martools_tmpdir/mar-tools";
- }
-}
-
sub log_step {
my ($url, $step, $status, $details) = @_;
state $u;
@@ -673,9 +654,9 @@ my %actions = (
},
gen_incrementals => sub {
my ($config) = @_;
+ setup_martools;
foreach my $channel (@ARGV) {
my ($version) = channel_to_version($config, $channel);
- extract_martools($config, $version);
get_version_files($config, $version);
create_incremental_mars_for_version($config, $version, $channel);
}
View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser-build/-/compare/…
--
View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser-build/-/compare/…
You're receiving this email because of your account on gitlab.torproject.org.
1
0
[Git][tpo/applications/tor-browser][tor-browser-128.7.0esr-14.5-1] TB 42669: [android] Use custom no-op app-services
by Pier Angelo Vendrame (@pierov) 11 Feb '25
by Pier Angelo Vendrame (@pierov) 11 Feb '25
11 Feb '25
Pier Angelo Vendrame pushed to branch tor-browser-128.7.0esr-14.5-1 at The Tor Project / Applications / Tor Browser
Commits:
86b24fa4 by Beatriz Rizental at 2025-02-11T11:21:27+01:00
TB 42669: [android] Use custom no-op app-services
Fetch the custom built no-op application services library
from tor-browser-build when building for Android.
- - - - -
12 changed files:
- .gitignore
- build.gradle
- mobile/android/android-components/components/browser/engine-gecko/build.gradle
- mobile/android/android-components/components/browser/storage-sync/src/main/java/mozilla/components/browser/storage/sync/Types.kt
- mobile/android/android-components/components/feature/fxsuggest/build.gradle
- mobile/android/android-components/components/service/firefox-accounts/src/main/java/mozilla/components/service/fxa/Types.kt
- mobile/android/android-components/components/service/firefox-accounts/src/main/java/mozilla/components/service/fxa/sync/WorkManagerSyncManager.kt
- mobile/android/android-components/components/service/nimbus/build.gradle
- mobile/android/android-components/components/support/rustlog/src/main/java/mozilla/components/support/rustlog/RustLog.kt
- mobile/android/android-components/plugins/dependencies/src/main/java/ApplicationServices.kt
- mobile/android/fenix/tools/tba-fetch-deps.sh
- tools/geckoview/build-fenix.sh
Changes:
=====================================
.gitignore
=====================================
@@ -359,6 +359,7 @@ media/libvpx/config/**/config.log
mobile/android/.experimenter.json
# Tor libraries for local builds
+mobile/android/fenix/app/nimbus-fml
mobile/android/fenix/app/tor-expert-bundle.aar
mobile/android/fenix/app/src/main/assets/extensions/{73a6fe31-595d-460b-a920-fcc0f8843232}.xpi
=====================================
build.gradle
=====================================
@@ -4,6 +4,8 @@ import org.tomlj.TomlTable
buildscript {
repositories {
+ mavenLocal()
+
gradle.mozconfig.substs.GRADLE_MAVEN_REPOSITORIES.each { repository ->
maven {
url repository
@@ -136,6 +138,8 @@ allprojects {
}
repositories {
+ mavenLocal()
+
gradle.mozconfig.substs.GRADLE_MAVEN_REPOSITORIES.each { repository ->
maven {
url repository
=====================================
mobile/android/android-components/components/browser/engine-gecko/build.gradle
=====================================
@@ -4,6 +4,8 @@
buildscript {
repositories {
+ mavenLocal()
+
gradle.mozconfig.substs.GRADLE_MAVEN_REPOSITORIES.each { repository ->
maven {
url repository
=====================================
mobile/android/android-components/components/browser/storage-sync/src/main/java/mozilla/components/browser/storage/sync/Types.kt
=====================================
@@ -71,6 +71,7 @@ internal fun mozilla.appservices.places.uniffi.VisitType.into() = when (this) {
mozilla.appservices.places.uniffi.VisitType.REDIRECT_TEMPORARY -> VisitType.REDIRECT_TEMPORARY
mozilla.appservices.places.uniffi.VisitType.DOWNLOAD -> VisitType.DOWNLOAD
mozilla.appservices.places.uniffi.VisitType.FRAMED_LINK -> VisitType.FRAMED_LINK
+ mozilla.appservices.places.uniffi.VisitType.__NOOP -> VisitType.LINK
}
internal fun mozilla.appservices.places.uniffi.HistoryVisitInfo.into(): VisitInfo {
@@ -129,6 +130,18 @@ internal fun BookmarkItem.asBookmarkNode(): BookmarkNode {
null,
)
}
+ is BookmarkItem.__NOOP -> {
+ BookmarkNode(
+ BookmarkNodeType.ITEM,
+ "",
+ "",
+ null,
+ null,
+ null,
+ 0L,
+ null,
+ )
+ }
}
}
@@ -152,6 +165,7 @@ internal fun mozilla.appservices.places.uniffi.DocumentType.into(): DocumentType
return when (this) {
mozilla.appservices.places.uniffi.DocumentType.REGULAR -> DocumentType.Regular
mozilla.appservices.places.uniffi.DocumentType.MEDIA -> DocumentType.Media
+ mozilla.appservices.places.uniffi.DocumentType.__NOOP -> DocumentType.Regular
}
}
=====================================
mobile/android/android-components/components/feature/fxsuggest/build.gradle
=====================================
@@ -6,6 +6,8 @@ import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
buildscript {
repositories {
+ mavenLocal()
+
maven {
url "https://maven.mozilla.org/maven2"
}
=====================================
mobile/android/android-components/components/service/firefox-accounts/src/main/java/mozilla/components/service/fxa/Types.kt
=====================================
@@ -128,7 +128,7 @@ internal fun RustDeviceType.into(): DeviceType {
RustDeviceType.TABLET -> DeviceType.TABLET
RustDeviceType.TV -> DeviceType.TV
RustDeviceType.VR -> DeviceType.VR
- RustDeviceType.UNKNOWN -> DeviceType.UNKNOWN
+ else-> DeviceType.UNKNOWN
}
}
@@ -165,7 +165,7 @@ fun DeviceCapability.into(): RustDeviceCapability {
fun RustDeviceCapability.into(): DeviceCapability {
return when (this) {
RustDeviceCapability.SEND_TAB -> DeviceCapability.SEND_TAB
- RustDeviceCapability.CLOSE_TABS -> DeviceCapability.CLOSE_TABS
+ else -> DeviceCapability.CLOSE_TABS
}
}
@@ -250,7 +250,7 @@ fun AccountEvent.into(): mozilla.components.concept.sync.AccountEvent {
deviceId = this.deviceId,
isLocalDevice = this.isLocalDevice,
)
- is AccountEvent.Unknown -> mozilla.components.concept.sync.AccountEvent.Unknown
+ else -> mozilla.components.concept.sync.AccountEvent.Unknown
}
}
@@ -258,6 +258,7 @@ fun IncomingDeviceCommand.into(): mozilla.components.concept.sync.DeviceCommandI
return when (this) {
is IncomingDeviceCommand.TabReceived -> this.into()
is IncomingDeviceCommand.TabsClosed -> this.into()
+ is IncomingDeviceCommand.__NOOP -> this.into()
}
}
=====================================
mobile/android/android-components/components/service/firefox-accounts/src/main/java/mozilla/components/service/fxa/sync/WorkManagerSyncManager.kt
=====================================
@@ -484,6 +484,9 @@ internal class WorkManagerSyncWorker(
// Finally, declare success, failure or request a retry based on 'sync status'.
return when (syncResult.status) {
+ ServiceStatus.__NOOP -> {
+ Result.success()
+ }
// Happy case.
ServiceStatus.OK -> {
// Worker should set the "last-synced" timestamp, and since we have a single timestamp,
=====================================
mobile/android/android-components/components/service/nimbus/build.gradle
=====================================
@@ -4,6 +4,8 @@
buildscript {
repositories {
+ mavenLocal()
+
gradle.mozconfig.substs.GRADLE_MAVEN_REPOSITORIES.each { repository ->
maven {
url repository
=====================================
mobile/android/android-components/components/support/rustlog/src/main/java/mozilla/components/support/rustlog/RustLog.kt
=====================================
@@ -86,6 +86,6 @@ internal fun Level.asLogPriority(): Log.Priority {
Level.DEBUG -> Log.Priority.DEBUG
Level.INFO -> Log.Priority.INFO
Level.WARN -> Log.Priority.WARN
- Level.ERROR -> Log.Priority.ERROR
+ else -> Log.Priority.ERROR
}
}
=====================================
mobile/android/android-components/plugins/dependencies/src/main/java/ApplicationServices.kt
=====================================
@@ -3,7 +3,7 @@
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
// These lines are generated by android-components/automation/application-services-nightly-bump.py
-val VERSION = "128.0.1"
+val VERSION = "128.0.1-TORBROWSER"
val CHANNEL = ApplicationServicesChannel.RELEASE
object ApplicationServicesConfig {
=====================================
mobile/android/fenix/tools/tba-fetch-deps.sh
=====================================
@@ -19,3 +19,65 @@ mkdir -p "app/src/main/assets/extensions"
if [ -f "$noscript" ]; then
cp "$noscript" "app/src/main/assets/extensions/{73a6fe31-595d-460b-a920-fcc0f8843232}.xpi"
fi
+
+if [ -z "$GRADLE_MAVEN_REPOSITORIES" ]; then
+ GRADLE_MAVEN_REPOSITORIES="$HOME/.m2/repository"
+fi
+
+os="$(uname -s)"
+case "${os}" in
+ Linux*) os=unknown-linux;;
+ Darwin*) os=apple-darwin;;
+ # This is not quite correct, however the only option for the nimbus-fml
+ # build are these three... so if it's not Linux or Darwin it's very likely
+ # we are building from Windows. I apologize in advance to all the BSD users.
+ *) os="pc-windows";;
+esac
+
+arch="$(uname -m)"
+case "${arch}" in
+ # Also no quite correct, but again these are the only options for nimbus-fml.
+ aarch64) arch=aarch64;;
+ arm64) arch=aarch64;;
+ *) arch="x86_64";;
+esac
+
+if [ "$os" = "unsupported" ] || [ "$arch" = "unsupported" ]; then
+ echo "Android builds from $os-$arch are not supported."
+ exit 2
+fi
+
+app_services="$(find "$TOR_BROWSER_BUILD/out/application-services" -name 'application-services*.tar.zst' -print | sort | tail -1)"
+mkdir -p "$GRADLE_MAVEN_REPOSITORIES/org/mozilla"
+if [ -f "$app_services" ]; then
+ tar -C /tmp -xf "$app_services"
+ cp -r /tmp/application-services/maven/org/mozilla/* "$GRADLE_MAVEN_REPOSITORIES/org/mozilla"
+
+ # Over on tor-browser-build all build tools are built for x86_64-linux.
+ # If we are not building from that platform, we need to fetch the correct
+ # nimbus-fml binary.
+ #
+ # Even though we do modify nimbus-fml in tbb, all the changes are made to
+ # support reproducibility and are not necessary for development builds.
+ if [ "$os" != "unknown-linux" ] || [ "$arch" != "x86_64" ]; then
+ echo "Downloading nimbus-fml binary for $arch-$os"
+ app_services_version=$(echo "$app_services" | grep -oE 'application-services-[0-9]+\.[0-9]+\.[0-9]+' | grep -oE '[0-9]+\.[0-9]+\.[0-9]+')
+
+ curl -L -o /tmp/nimbus-fml.zip "https://archive.mozilla.org/pub/app-services/releases/$app_services_version…"
+ unzip -d /tmp/nimbus-fml /tmp/nimbus-fml.zip
+ nimbus_fml="$(find "/tmp/nimbus-fml/" -name 'nimbus-fml*' | grep "$arch-$os")"
+ echo "Using nimbus-fml binary: $nimbus_fml"
+ cp $nimbus_fml app/
+
+ rm -rf /tmp/nimbus-fml
+ rm /tmp/nimbus-fml.zip
+ else
+ cp /tmp/application-services/nimbus-fml app/
+ fi
+ chmod +x app/nimbus-fml
+
+ rm -rf /tmp/application-services
+else
+ echo "Cannot find application-services artifacts!"
+ exit 2
+fi
=====================================
tools/geckoview/build-fenix.sh
=====================================
@@ -6,6 +6,8 @@ VARIANT=$3
source android-env.sh
+export NIMBUS_FML=$DEV_ROOT/mobile/android/fenix/app/nimbus-fml
+
cd $DEV_ROOT/mobile/android/fenix
MOZCONFIG=mozconfig-android-$ARCH $GRADLE_HOME/bin/gradle --no-daemon -Dorg.gradle.jvmargs=-Xmx20g -PdisableOptimization assemble$VARIANT
tools/tba-sign-devbuilds.sh
View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/commit/86b24fa…
--
View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/commit/86b24fa…
You're receiving this email because of your account on gitlab.torproject.org.
1
0
[Git][tpo/applications/tor-browser-build][main] 2 commits: Bug 42669: [Part 1] Add uniffi-rs project
by Pier Angelo Vendrame (@pierov) 11 Feb '25
by Pier Angelo Vendrame (@pierov) 11 Feb '25
11 Feb '25
Pier Angelo Vendrame pushed to branch main at The Tor Project / Applications / tor-browser-build
Commits:
f701f1df by Beatriz Rizental at 2025-02-11T11:55:20+01:00
Bug 42669: [Part 1] Add uniffi-rs project
Apps team forks uniffi and applies a patch to make the Kotlin
bindings no-op.
- - - - -
9345a6ea by Beatriz Rizental at 2025-02-11T14:31:15+01:00
Bug 42669: [Part 2] Use custom uniffi-rs in application-services
The apps team custom uniffi-rs implementation removes
the dependecy on application-services Rust libraries.
Therefore, this commit also include changes to skip
building and including these libs (aka libmegazord)
in the final Android application.
- - - - -
15 changed files:
- Makefile
- projects/application-services/README.md
- + projects/application-services/a-s-noop.diff
- − projects/application-services/apply-bug-13028.diff
- projects/application-services/bug40485.diff → projects/application-services/bug40485-nimbus-fml-reproducibility.diff
- − projects/application-services/bug_13028.patch
- projects/application-services/build
- + projects/application-services/cargo-no-build.sh
- projects/application-services/config
- + projects/application-services/glean-noop.diff
- projects/application-services/list_toolchain_updates_checks
- − projects/application-services/no-ndk-lookup.diff
- + projects/uniffi-rs/build
- + projects/uniffi-rs/config
- rbm.conf
Changes:
=====================================
Makefile
=====================================
@@ -669,6 +669,9 @@ cargo_vendor-wasm-bindgen: submodule-update
cargo_vendor-lox: submodule-update
$(rbm) build lox-wasm --step cargo_vendor --target alpha --target torbrowser-linux-x86_64
+cargo_vendor-uniffi-rs: submodule-update
+ $(rbm) build uniffi-rs --step cargo_vendor --target alpha --target torbrowser-linux-x86_64
+
go_vendor-snowflake: submodule-update
$(rbm) build snowflake --step go_vendor --target alpha --target torbrowser-linux-x86_64
=====================================
projects/application-services/README.md
=====================================
@@ -1,6 +1,13 @@
Application Services is a collection of Rust components to enable integration
with Mozilla online services, such as the Mozilla account, sync, etc...
+Since all of the application-services features are disabled by the Tor Project browsers,
+we don't build or include these Rust libraries in them. Even though these libraries
+are written in Rust, they are consumed by Kotlin. Application Services uses uniffi
+to auto-generate the Kotlin code that communicates with Rust. We have developed a
+custom generator for uniffi (see `projects/uniffi-rs`) to generate no-op bindings,
+i.e., bindings that don't call the Rust code and are therefore a dead-end.
+
We do not fork this project, because we apply a minimal set of patches mainly
needed for offline builds.
@@ -13,8 +20,12 @@ References:
## Vendored Rust dependencies
-Application Services is written mainly in Rust and it mnanages external
+Application Services is written mainly in Rust and it manages external
dependencies through cargo.
+
+Although most Rust libraries aren't built by this project, the `nimbus-fml`
+project -- a command line tool used by other projects -- is still built.
+
Reproduciblity is guaranteed by the provided `Cargo.lock`.
We run offline builds, so we create the dependency archive in a separate step
@@ -35,16 +46,6 @@ We keep the list of files to download in `gradle-dependencies-list.txt`.
A procedure to create this file is documented in
[tor-browser-build#40855](https://gitlab.torproject.org/tpo/applications/tor….
-## Other dependencies
-
-Finally, Application Services depends on two C libraries:
-[NSS](https://firefox-source-docs.mozilla.org/security/nss/index.html) and
-[SQLCipher](https://www.zetetic.net/sqlcipher/).
-We used to have separate tor-browser-build projects for them, but they were
-almost an exact copy of the scripts included in this repository.
-Keeping them updated wasn't trivial, so we decided to run Mozilla's scripts
-instead.
-
# Caveats
## Git repository information
=====================================
projects/application-services/a-s-noop.diff
=====================================
@@ -0,0 +1,61 @@
+diff --git a/components/fxa-client/android/src/main/java/mozilla/appservices/fxaclient/Config.kt b/components/fxa-client/android/src/main/java/mozilla/appservices/fxaclient/Config.kt
+index 78c16dd0..d2615fa7 100644
+--- a/components/fxa-client/android/src/main/java/mozilla/appservices/fxaclient/Config.kt
++++ b/components/fxa-client/android/src/main/java/mozilla/appservices/fxaclient/Config.kt
+@@ -13,4 +13,5 @@ fun FxaServer.contentUrl() = when (this) {
+ is FxaServer.China -> "https://accounts.firefox.com.cn"
+ is FxaServer.LocalDev -> "http://127.0.0.1:3030"
+ is FxaServer.Custom -> this.url
++ is FxaServer.__NOOP -> ""
+ }
+diff --git a/components/nimbus/android/src/main/java/org/mozilla/experiments/nimbus/Nimbus.kt b/components/nimbus/android/src/main/java/org/mozilla/experiments/nimbus/Nimbus.kt
+index 8c05be9c..6bf2ec15 100644
+--- a/components/nimbus/android/src/main/java/org/mozilla/experiments/nimbus/Nimbus.kt
++++ b/components/nimbus/android/src/main/java/org/mozilla/experiments/nimbus/Nimbus.kt
+@@ -532,6 +532,8 @@ open class Nimbus(
+ ),
+ )
+ }
++
++ EnrollmentChangeEventType.__NOOP -> {}
+ }
+ }
+ }
+diff --git a/components/places/android/src/main/java/mozilla/appservices/places/PlacesConnection.kt b/components/places/android/src/main/java/mozilla/appservices/places/PlacesConnection.kt
+index 282f4e90..db8b00a3 100644
+--- a/components/places/android/src/main/java/mozilla/appservices/places/PlacesConnection.kt
++++ b/components/places/android/src/main/java/mozilla/appservices/places/PlacesConnection.kt
+@@ -289,6 +289,7 @@ internal fun VisitType.toInt(): Int {
+ VisitType.FRAMED_LINK -> 8
+ VisitType.RELOAD -> 9
+ VisitType.UPDATE_PLACE -> 10
++ VisitType.__NOOP -> -1
+ }
+ }
+
+diff --git a/megazords/full/android/build.gradle b/megazords/full/android/build.gradle
+index 822ce180..ccdc6c8a 100644
+--- a/megazords/full/android/build.gradle
++++ b/megazords/full/android/build.gradle
+@@ -54,6 +54,8 @@ configurations {
+ }
+
+ cargo {
++ cargoCommand = "${rootDir}/megazords/full/android/cargo-no-build.sh"
++
+ // The directory of the Cargo.toml to build.
+ module = '..'
+
+diff --git a/publish.gradle b/publish.gradle
+index 71f5d55b..027665ff 100644
+--- a/publish.gradle
++++ b/publish.gradle
+@@ -194,7 +194,7 @@ ext.configureUniFFIBindgen = { udlFilePath ->
+ def uniffiGeneratedPath = "generated/source/uniffi/${variant.name}/java"
+ def t = tasks.register("generate${variant.name.capitalize()}UniFFIBindings", Exec) {
+ workingDir project.rootDir
+- commandLine '/usr/bin/env', 'cargo', 'uniffi-bindgen', 'generate', "${project.projectDir}/${udlFilePath}", '--language', 'kotlin', '--out-dir', "${buildDir}/${uniffiGeneratedPath}"
++ commandLine '/usr/bin/env', "${rootProject.projectDir}/uniffi-rs/uniffi-bindgen", 'generate', "${project.projectDir}/${udlFilePath}", '--language', 'kotlin', '--out-dir', "${buildDir}/${uniffiGeneratedPath}"
+ outputs.dir "${buildDir}/${uniffiGeneratedPath}"
+ // Re-generate if the interface definition changes.
+ inputs.file "${project.projectDir}/${udlFilePath}"
=====================================
projects/application-services/apply-bug-13028.diff deleted
=====================================
@@ -1,20 +0,0 @@
-diff --git a/libs/build-all.sh b/libs/build-all.sh
-index 650c1299..6c4e5404 100755
---- a/libs/build-all.sh
-+++ b/libs/build-all.sh
-@@ -128,6 +128,15 @@ echo $'\
- fi
- ' | patch "${NSS_SRC_PATH}/nspr/configure"
-
-+rm -f python
-+ln -s /usr/bin/python3 python
-+export PATH=$(pwd):$PATH
-+patch_13028=$(realpath bug_13028.patch)
-+pushd $NSS_SRC_PATH
-+# Apply our proxy bypass defense-in-depth here as well to be on the safe side.
-+patch -p2 < $patch_13028
-+popd
-+
- if [[ "${PLATFORM}" == "ios" ]]
- then
- ./build-all-ios.sh "${SQLCIPHER_SRC_PATH}" "${NSS_SRC_PATH}"
=====================================
projects/application-services/bug40485.diff → projects/application-services/bug40485-nimbus-fml-reproducibility.diff
=====================================
@@ -4,16 +4,16 @@ index 97d545672..249406a0c 100644
+++ b/components/support/nimbus-fml/src/intermediate_representation.rs
@@ -237,10 +237,10 @@ pub struct FeatureManifest {
pub(crate) about: AboutBlock,
-
+
#[serde(default)]
- pub(crate) imported_features: HashMap<ModuleId, BTreeSet<String>>,
+ pub(crate) imported_features: BTreeMap<ModuleId, BTreeSet<String>>,
-
+
#[serde(default)]
- pub(crate) all_imports: HashMap<ModuleId, FeatureManifest>,
+ pub(crate) all_imports: BTreeMap<ModuleId, FeatureManifest>,
}
-
+
impl TypeFinder for FeatureManifest {
diff --git a/components/support/nimbus-fml/src/parser.rs b/components/support/nimbus-fml/src/parser.rs
index 49cace525..cdf692b86 100644
@@ -34,7 +34,7 @@ index 49cace525..cdf692b86 100644
// We associate only the feature ids with the manifest we're loading in this method.
- let mut imported_feature_id_map = HashMap::new();
+ let mut imported_feature_id_map = BTreeMap::new();
-
+
for block in &frontend.imports {
// 1. Load the imported manifests in to the hash map.
@@ -328,7 +328,7 @@ impl Parser {
=====================================
projects/application-services/bug_13028.patch deleted
=====================================
@@ -1,79 +0,0 @@
-From 2f0888c348561249d3083555db33c5619840dbfa Mon Sep 17 00:00:00 2001
-From: Mike Perry <mikeperry-git(a)torproject.org>
-Date: Mon, 29 Sep 2014 14:30:19 -0700
-Subject: [PATCH] Bug 13028: Prevent potential proxy bypass cases.
-
-It looks like these cases should only be invoked in the NSS command line
-tools, and not the browser, but I decided to patch them anyway because there
-literally is a maze of network function pointers being passed around, and it's
-very hard to tell if some random code might not pass in the proper proxied
-versions of the networking code here by accident.
-
-diff --git a/security/nss/lib/certhigh/ocsp.c b/security/nss/lib/certhigh/ocsp.c
-index cea8456606bf..86fa971cfbef 100644
---- a/security/nss/lib/certhigh/ocsp.c
-+++ b/security/nss/lib/certhigh/ocsp.c
-@@ -2932,6 +2932,14 @@ ocsp_ConnectToHost(const char *host, PRUint16 port)
- PRNetAddr addr;
- char *netdbbuf = NULL;
-
-+ // XXX: Do we need a unittest ifdef here? We don't want to break the tests, but
-+ // we want to ensure nothing can ever hit this code in production.
-+#if 1
-+ printf("Tor Browser BUG: Attempted OSCP direct connect to %s, port %u\n", host,
-+ port);
-+ goto loser;
-+#endif
-+
- sock = PR_NewTCPSocket();
- if (sock == NULL)
- goto loser;
-diff --git a/security/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c b/security/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c
-index e8698376b5be..85791d84a932 100644
---- a/security/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c
-+++ b/security/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c
-@@ -1334,6 +1334,13 @@ pkix_pl_Socket_Create(
- plContext),
- PKIX_COULDNOTCREATESOCKETOBJECT);
-
-+ // XXX: Do we need a unittest ifdef here? We don't want to break the tests, but
-+ // we want to ensure nothing can ever hit this code in production.
-+#if 1
-+ printf("Tor Browser BUG: Attempted pkix direct socket connect\n");
-+ PKIX_ERROR(PKIX_PRNEWTCPSOCKETFAILED);
-+#endif
-+
- socket->isServer = isServer;
- socket->timeout = timeout;
- socket->clientSock = NULL;
-@@ -1433,6 +1440,13 @@ pkix_pl_Socket_CreateByName(
-
- localCopyName = PL_strdup(serverName);
-
-+ // XXX: Do we need a unittest ifdef here? We don't want to break the tests, but
-+ // we want to ensure nothing can ever hit this code in production.
-+#if 1
-+ printf("Tor Browser BUG: Attempted pkix direct connect to %s\n", serverName);
-+ PKIX_ERROR(PKIX_PRNEWTCPSOCKETFAILED);
-+#endif
-+
- sepPtr = strchr(localCopyName, ':');
- /* First strip off the portnum, if present, from the end of the name */
- if (sepPtr) {
-@@ -1582,6 +1596,13 @@ pkix_pl_Socket_CreateByHostAndPort(
- PKIX_ENTER(SOCKET, "pkix_pl_Socket_CreateByHostAndPort");
- PKIX_NULLCHECK_THREE(hostname, pStatus, pSocket);
-
-+ // XXX: Do we need a unittest ifdef here? We don't want to break the tests, but
-+ // we want to ensure nothing can ever hit this code in production.
-+#if 1
-+ printf("Tor Browser BUG: Attempted pkix direct connect to %s, port %u\n", hostname,
-+ portnum);
-+ PKIX_ERROR(PKIX_PRNEWTCPSOCKETFAILED);
-+#endif
-
- prstatus = PR_GetHostByName(hostname, buf, sizeof(buf), &hostent);
-
---
-2.27.0
-
=====================================
projects/application-services/build
=====================================
@@ -66,13 +66,21 @@ directory = "/var/tmp/build/application-services/vendor"
offline=true
EOF
-pushd libs
-ln -s $rootdir/[% c("input_files_by_name/nss") %] ./
-ln -s $rootdir/bug_13028.patch
-patch -p2 < $rootdir/apply-bug-13028.diff
-patch -p2 < $rootdir/no-ndk-lookup.diff
-./build-all.sh desktop
-./build-all.sh android
+tar -xf $rootdir/[% c('input_files_by_name/uniffi-rs') %]
+
+# We add a suffix to the version to make it super specific.
+# This is useful for developer builds, which seem to try to fetch
+# latest versions of dependencies sometimes.
+sed -i '$ s/$/-TORBROWSER/' version.txt
+
+cp $rootdir/cargo-no-build.sh megazords/full/android/
+chmod +x megazords/full/android/cargo-no-build.sh
+patch -p1 < $rootdir/a-s-noop.diff
+
+pushd components/external/glean
+cp $rootdir/cargo-no-build.sh glean-core/android-native/
+cp $builddir/uniffi-rs/uniffi-bindgen glean-core/android-native/
+patch -p1 < $rootdir/glean-noop.diff
popd
[% IF c('var/fetch_gradle_dependencies') %]
@@ -88,7 +96,7 @@ popd
export LANG=C.UTF-8
patch -p1 < $rootdir/local-repository.diff
patch -p1 < $rootdir/ohttp-no-git.diff
- patch -p1 < $rootdir/bug40485.diff
+ patch -p1 < $rootdir/bug40485-nimbus-fml-reproducibility.diff
patch -p1 < $rootdir/offline-nimbus-fml.diff
gradle_flags="--offline --no-daemon"
gradle $gradle_flags assembleRelease
=====================================
projects/application-services/cargo-no-build.sh
=====================================
@@ -0,0 +1,8 @@
+#!/bin/bash
+
+if [[ "$1" == "build" ]]; then
+ echo "cargo build is disabled."
+ exit 0
+else
+ command cargo "$@"
+fi
=====================================
projects/application-services/config
=====================================
@@ -11,8 +11,8 @@ var:
gradle_dependencies_version: 11
gradle_version: 8.8
glean_parser: 14.0.1
- nss_version: '3.101'
- nspr_version: '4.35'
+ # This is the only project for which the rust lib will actually be built
+ cargo_vendor_subdir: components/support/nimbus-fml
steps:
build:
@@ -22,9 +22,6 @@ steps:
# builds when build time differ a lot, we need to do periodic rebuilds:
# https://gitlab.torproject.org/tpo/applications/tor-browser-build/-/merge_re…
rebuild_date: '2024-09-12'
- arch_deps:
- # Needed to build NSS
- - gyp
input_files:
- project: container-image
pkg_type: build
@@ -40,16 +37,15 @@ steps:
- project: ninja
name: ninja
pkg_type: build
+ - project: uniffi-rs
+ name: uniffi-rs
+ pkg_type: build
# Only Application Services currently requires build tools 30.0.3.
# So, download them only here, rather than adding them to the shared
# toolchain.
- URL: 'https://dl.google.com/android/repository/build-tools_r30.0.3-linux.zip'
name: build_tools_30
sha256sum: 24593500aa95d2f99fb4f10658aae7e65cb519be6cd33fa164f15f27f3c4a2d6
- # NSS version ans sha256 are in libs/build-all.sh.
- - 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: 566faa9283ff3d9a7d6c44272df6e4330e3e06ca4e841a68840d31b27c9161c4
- filename: 'gradle-dependencies-[% c("var/gradle_dependencies_version") %]'
name: gradle-dependencies
exec: '[% INCLUDE "fetch-gradle-dependencies" %]'
@@ -67,15 +63,17 @@ steps:
enable: '[% !c("var/fetch_gradle_dependencies") %]'
- filename: gen_gradle_deps_file.sh
enable: '[% c("var/fetch_gradle_dependencies") %]'
- - filename: bug_13028.patch
- - filename: apply-bug-13028.diff
- # Delete when this patch is included upstream
- - filename: bug40485.diff
- - filename: no-ndk-lookup.diff
+ # tor-browser-build#40485: Make sure the Kotlin output of nimbus-fml
+ # has deterministic order for reproducibility.
+ # Delete when this patch is included upstream.
+ - filename: bug40485-nimbus-fml-reproducibility.diff
# as-ohttp-client lists both the version for ohttp and a git repo + rev,
# but this breaks the vendoring for offline builds.
- filename: ohttp-no-git.diff
- filename: offline-nimbus-fml.diff
+ - filename: glean-noop.diff
+ - filename: a-s-noop.diff
+ - filename: cargo-no-build.sh
list_toolchain_updates:
git_hash: 'v[% c("version") %]'
=====================================
projects/application-services/glean-noop.diff
=====================================
@@ -0,0 +1,26 @@
+diff --git a/glean-core/android-native/build.gradle b/glean-core/android-native/build.gradle
+index 48769651..ade00ec3 100644
+--- a/glean-core/android-native/build.gradle
++++ b/glean-core/android-native/build.gradle
+@@ -57,6 +57,8 @@ android {
+ }
+
+ cargo {
++ cargoCommand = "${rootDir}/glean-core/android-native/cargo-no-build.sh"
++
+ // The directory of the Cargo.toml to build.
+ module = '../bundle-android'
+
+diff --git a/glean-core/android/build.gradle b/glean-core/android/build.gradle
+index 3568e40b..05f28296 100644
+--- a/glean-core/android/build.gradle
++++ b/glean-core/android/build.gradle
+@@ -221,7 +221,7 @@ android.libraryVariants.all { variant ->
+ def udlFilePath = "../src/glean.udl"
+ def t = tasks.register("generate${variant.name.capitalize()}UniFFIBindings", Exec) {
+ workingDir project.rootDir
+- commandLine 'cargo', 'uniffi-bindgen', 'generate', '--no-format', "${project.projectDir}/${udlFilePath}", '--language', 'kotlin', '--out-dir', "${buildDir}/${uniffiGeneratedPath}"
++ commandLine '${rootDir}/glean-core/android-native/uniffi-bindgen', 'generate', '--no-format', "${project.projectDir}/${udlFilePath}", '--language', 'kotlin', '--out-dir', "${buildDir}/${uniffiGeneratedPath}"
+ outputs.dir "${buildDir}/${uniffiGeneratedPath}"
+ // Re-generate if the interface definition changes.
+ inputs.file "${project.projectDir}/../src/glean.udl"
=====================================
projects/application-services/list_toolchain_updates_checks
=====================================
@@ -36,13 +36,13 @@ current='[% c("var/gradle_version") %]'
check_update_needed gradle "$needed" "$current"
-# nss-nspr
+# uniffi
read -d '' p << 'EOF' || true
-if (m/NSS_ARCHIVE="nss-(.*-with-nspr-.*)\\.tar\\.gz"/) {
+if (m/^\\s*uniffi\\s*=\\s*"([^"]*)"/) {
print $1;
exit;
}
EOF
-needed=$(cat libs/build-all.sh | perl -ne "$p")
-current='[% c("var/nss_version") %]-with-nspr-[% c("var/nspr_version") %]'
-check_update_needed nss-nspr "$needed" "$current"
+needed=$(cat Cargo.toml | perl -ne "$p")
+current='[% pc("uniffi-rs", "version") %]'
+check_update_needed uniffi "$needed" "$current"
=====================================
projects/application-services/no-ndk-lookup.diff deleted
=====================================
@@ -1,18 +0,0 @@
-diff --git a/libs/android_defaults.sh b/libs/android_defaults.sh
-index 2cfcc4206..9e3d3de97 100755
---- a/libs/android_defaults.sh
-+++ b/libs/android_defaults.sh
-@@ -1,11 +1,7 @@
- #!/usr/bin/env bash
-
--# Find the NDK.
--pushd ..
--NDK_VERSION=$(./gradlew -q printNdkVersion | tail -1)
--export ANDROID_NDK_HOME="$ANDROID_HOME/ndk/$NDK_VERSION"
--export ANDROID_NDK_ROOT="$ANDROID_NDK_HOME"
--popd || exit
-+# Do not try to find the NDK, as it does not work offline.
-+# We already define the needed variables in our environment.
-
- if [[ -z "${ANDROID_NDK_API_VERSION:-}" ]]; then
- export ANDROID_NDK_API_VERSION=21
=====================================
projects/uniffi-rs/build
=====================================
@@ -0,0 +1,34 @@
+#!/bin/bash
+[% c("var/set_default_env") -%]
+distdir=/var/tmp/dist
+builddir=/var/tmp/build/[% project %]
+mkdir -p $distdir/[% project %]
+tar -C /var/tmp/dist -xf $rootdir/[% c('input_files_by_name/rust') %]
+export PATH="/var/tmp/dist/rust/bin:$PATH"
+[% IF c("var/linux") -%]
+ export LD_LIBRARY_PATH="/var/tmp/dist/rust/lib:$LD_LIBRARY_PATH"
+[% END -%]
+mkdir -p /var/tmp/build
+tar -C /var/tmp/build -xf [% project %]-[% c('version') %].tar.[% c('compress_tar') %]
+
+# Now prepare the offline build
+# Move the directory for hardcoding the path in .cargo/config
+mv /var/tmp/build/[% project %]-[% c('version') %] $builddir
+tar -C $builddir -xf $rootdir/[% c('input_files_by_name/cargo_vendor') %]
+cd $builddir
+cat >> .cargo/config << 'EOF'
+[source.crates-io]
+replace-with = "vendored-sources"
+
+[source.vendored-sources]
+directory = "/var/tmp/build/uniffi-rs/vendor"
+EOF
+
+cargo build --release --frozen --target x86_64-unknown-linux-gnu
+mv target/x86_64-unknown-linux-gnu/release/uniffi-bindgen $distdir/[% project %]
+
+cd $distdir
+[% c('tar', {
+ tar_src => [ project ],
+ tar_args => '-caf ' _ dest_dir _ '/' _ c('filename'),
+ }) %]
=====================================
projects/uniffi-rs/config
=====================================
@@ -0,0 +1,20 @@
+# vim: filetype=yaml sw=2
+version: 0.27.1
+git_hash: bfb52effb0292f16d4c030d622887781639cbd1f
+git_url: https://gitlab.torproject.org/tpo/applications/uniffi-rs.git
+container:
+ use_container: 1
+
+steps:
+ build:
+ filename: '[% project %]-[% c("version") %]-[% c("var/build_id") %].tar.[% c("compress_tar") %]'
+ input_files:
+ - project: container-image
+ pkg_type: build
+ - project: rust
+ name: rust
+ - name: cargo_vendor
+ project: uniffi-rs
+ pkg_type: cargo_vendor
+ norec:
+ sha256sum: 12a61a3dbe65a3946ed58fff3d849d11c9ade5818e2ef5771d2a2a531e25f553
=====================================
rbm.conf
=====================================
@@ -30,7 +30,7 @@ steps:
export PATH="/var/tmp/dist/rust/bin:$PATH"
tar -xf [% project %]-[% c('version') %].tar.[% c('compress_tar') %]
cd [% project %]-[% c('version') %]
- cargo vendor --locked vendor
+ cargo vendor --locked vendor --manifest-path [% IF c('var/cargo_vendor_subdir') %][% c('var/cargo_vendor_subdir') %]/[% END %]Cargo.toml
[% c('tar', {
tar_src => [ 'vendor' ],
tar_args => '-caf ' _ dest_dir _ '/' _ c('filename'),
View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser-build/-/compare/…
--
View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser-build/-/compare/…
You're receiving this email because of your account on gitlab.torproject.org.
1
0
[Git][tpo/applications/tor-browser] Pushed new tag tor-browser-129.0a1-15.0-1-build2
by Pier Angelo Vendrame (@pierov) 11 Feb '25
by Pier Angelo Vendrame (@pierov) 11 Feb '25
11 Feb '25
Pier Angelo Vendrame pushed new tag tor-browser-129.0a1-15.0-1-build2 at The Tor Project / Applications / Tor Browser
--
View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/tree/tor-brows…
You're receiving this email because of your account on gitlab.torproject.org.
1
0