Files
takana/recipes/firefox-patches/time64.patch
T
Sergio 428be5e8d1 firefox 154.0 — la cabeza de la familia Gecko (receta, sin construir todavía)
154 y no 155 pese a que Zen sigue 155.0.1 y Waterfox también va por release: los
parches de musl de Alpine son para 154.0, y son ONCE. Ese es el trabajo de
portabilidad que un import de nix pierde y sin el cual Firefox no compila contra
musl. Un Firefox que compila con el set probado vale más que uno con el número
correcto que no compila; y como Firefox se mueve cada 4 semanas, la paridad exacta
con Zen es una cinta de correr. Lo que se reutiliza entre los tres es la
PLATAFORMA (gtk3/nodejs/clang18/cbindgen, ya en el corpus) y este set de parches.
Subir a 155 después es un rebase, no un port.

Se traen los 11 de musl y NO los de ppc64le, loongarch ni Android: cada parche que
no hace falta es una forma más de que un rebase falle sin motivo.

TODO BUNDLEADO salvo GTK3. Alpine usa --with-system-{icu,nspr,nss,av1,libvpx,
webp,libevent} y de ésas el corpus tiene cero; Firefox las trae en el árbol.
Menos piezas móviles para el primer build, que es cuando conviene minimizar
variables.

SIN BRANDING OFICIAL, y no es descuido: el binario lleva once parches, y poner el
nombre y el logo de Firefox sobre un build modificado entra en la política de
marcas de Mozilla — es la historia de Iceweasel en Debian. Misma cautela que
dejavu-fonts-nerd con la licencia de Bitstream Vera: una fuente modificada no
puede llamarse como la original, y un navegador parcheado tampoco.

HERMÉTICO: --disable-bootstrap (su trabajo es descargar toolchains),
MACH_BUILD_PYTHON_NATIVE_PACKAGE_SOURCE=system (si no, mach arma un virtualenv con
pip y sale a la red) y MOZBUILD_STATE_PATH al árbol (por defecto escribe en $HOME,
que en el sandbox no es suyo). Los crates vienen vendorizados en el tarball.

Wayland-only heredado de gtk3 (-Dx11_backend=false) ⇒ este Firefox NO correrá como
cliente X11 ni bajo Xwayland. Escrito en las dos recetas.
2026-09-04 21:02:51 +00:00

67 lines
2.7 KiB
Diff

From 028fe668ae12ba3c8fec833778c31f6d5b6d318b Mon Sep 17 00:00:00 2001
From: Aelin <aelin@postmarketos.org>
Date: Wed, 24 Jun 2026 17:36:25 +0200
Subject: [PATCH] time64 compile fixes
---
third_party/rust/alsa/src/pcm.rs | 6 +++---
third_party/rust/wgpu-hal/src/vulkan/adapter.rs | 5 +----
third_party/rust/zeitstempel/src/unix.rs | 10 ++--------
3 files changed, 6 insertions(+), 15 deletions(-)
diff --git a/third_party/rust/alsa/src/pcm.rs b/third_party/rust/alsa/src/pcm.rs
index 16569b7..ca3517b 100644
--- a/third_party/rust/alsa/src/pcm.rs
+++ b/third_party/rust/alsa/src/pcm.rs
@@ -1110,19 +1110,19 @@ impl Status {
fn ptr(&self) -> *mut alsa::snd_pcm_status_t { self.0.as_ptr() as *const _ as *mut alsa::snd_pcm_status_t }
pub fn get_htstamp(&self) -> timespec {
- let mut h = timespec {tv_sec: 0, tv_nsec: 0};
+ let mut h = timespec::default();
unsafe { alsa::snd_pcm_status_get_htstamp(self.ptr(), &mut h) };
h
}
pub fn get_trigger_htstamp(&self) -> timespec {
- let mut h = timespec {tv_sec: 0, tv_nsec: 0};
+ let mut h = timespec::default();
unsafe { alsa::snd_pcm_status_get_trigger_htstamp(self.ptr(), &mut h) };
h
}
pub fn get_audio_htstamp(&self) -> timespec {
- let mut h = timespec {tv_sec: 0, tv_nsec: 0};
+ let mut h = timespec::default();
unsafe { alsa::snd_pcm_status_get_audio_htstamp(self.ptr(), &mut h) };
h
}
diff --git a/third_party/rust/zeitstempel/src/unix.rs b/third_party/rust/zeitstempel/src/unix.rs
index d2db5c6..874047b 100644
--- a/third_party/rust/zeitstempel/src/unix.rs
+++ b/third_party/rust/zeitstempel/src/unix.rs
@@ -12,10 +12,7 @@ fn timespec_to_ns(ts: libc::timespec) -> u64 {
///
/// [`clock_gettime`]: https://manpages.debian.org/buster/manpages-dev/clock_gettime.3.en.html
pub fn now_including_suspend() -> u64 {
- let mut ts = libc::timespec {
- tv_sec: 0,
- tv_nsec: 0,
- };
+ let mut ts = libc::timespec::default();
unsafe {
libc::clock_gettime(libc::CLOCK_BOOTTIME, &mut ts);
}
@@ -32,10 +29,7 @@ pub fn now_including_suspend() -> u64 {
/// [`clock_gettime`]: https://manpages.debian.org/buster/manpages-dev/clock_gettime.3.en.html
/// [`FreeBSD clock_gettime`]: https://man.freebsd.org/cgi/man.cgi?query=clock_gettime&manpath=FreeBSD+15.0-RELEASE
pub fn now_awake() -> u64 {
- let mut ts = libc::timespec {
- tv_sec: 0,
- tv_nsec: 0,
- };
+ let mut ts = libc::timespec::default();
#[cfg(any(target_os = "linux", target_os = "android"))]
let clock = libc::CLOCK_MONOTONIC;
#[cfg(any(target_os = "freebsd", target_os = "openbsd"))]