firefox nightly for alpine linux

recently firefox configure script has changed,

it come with python, i think this is no good.

vi ../firefox/build/moz.configure/rust.configure

# target_arg = ‘–target=’ + rustc_target.alias
target_arg = ‘–target=x86_64-alpine-linux-musl’

#set_config(‘RUST_TARGET’, rust_target_triple)
#set_config(‘RUST_HOST_TARGET’, rust_host_triple)

set_config(‘RUST_HOST_TARGET’, ‘x86_64-alpine-linux-musl’)

vi ../firefox/mozconfig

# My first mozilla config
ac_add_options –host=x86_64-alpine-linux-musl
ac_add_options –target=x86_64-alpine-linux-musl
mk_add_options MOZ_MAKE_FLAGS=”-j4″
ac_add_options BINDGEN_CFLAGS=’-I/usr/include/nspr -I/usr/include/pixman-1′

vi ../firefox/security/manager/ssl/nsNSSIOLayer.cpp +49



export SHELL=/bin/sh
export CXXFLAGS=”-fno-delete-null-pointer-checks -fno-schedule-insns2″
export LDFLAGS=”$LDFLAGS -Wl,-rpath,/usr/lib/firefox-59.0a1″

../firefox/configure \
–prefix=/usr \
–disable-crashreporter \
–disable-elf-hack \
–disable-gold \
–disable-install-strip \
–disable-jemalloc \
–disable-profiling \
–disable-pulseaudio \
–disable-strip \
–disable-tests \
–disable-updater \
–enable-alsa \
–enable-default-toolkit=cairo-gtk3 \
–enable-official-branding \
–enable-optimize=”$CFLAGS” \
–enable-pie \
–enable-startup-notification \
–enable-system-ffi \
–enable-system-hunspell \
–enable-system-sqlite \
–with-pthreads \
–with-system-bz2 \
–with-system-icu \
–with-system-jpeg \
–with-system-libevent \
–with-system-libvpx \
–with-system-nspr \
–with-system-nss \
–with-system-pixman \
–with-system-png \
–with-system-zlib \
–with-clang-path=/usr/bin/clang \

paxmark -msp dist/bin/xpcshell



Librem 5 – A Security and Privacy Focused Phone

Freedom of Choice

We believe phones should not track you nor exploit your digital life. We are in the middle of a digital rights revolution where you get to decide the future. We at Purism are building a phone that does not run Android nor iOS, but runs PureOS or any GNU/Linux distribution where all the source code is available.

Note that the visual design of the phone is a work in progress and is subject to evolve based on technical requirements and people’s feedback.

Peace of Mind

Our phone will not wholesale gather your data for profit. It will not lock you into an ecosystem that controls you. It will not require you to enter banking details to simply get an app from an app store.

Does Not Track You

Our phone will be built to protect you by default. It will never exploit you for profit. It will be a phone for the people, by the people.

High Quality

We know how to build products that are convenient, privacy and security focused. Our phone will give you peace of mind knowing it does not track you.


Quick facts

  • Does not run Google Android
  • Does not run Apple iOS
  • Runs PureOS by default, can run most GNU+Linux distributions
  • World’s first ever IP-native mobile handset
  • End-to-end encrypted decentralized communications via Matrix
  • 5″ screen
  • Security focused by design
  • Privacy protection by default
  • Works with 2G/3G/4G, GSM, UMTS, and LTE networks
  • CPU separate from Baseband
  • Hardware Kill Switches for Camera, Microphone, WiFi/Bluetooth, and Baseband



Good smartphone killed

by $-oriented HW.

more expensive but less quality.

Don’t buy smartphone because it is released today.

Just buy Good old day phone.

– it  should have headphone jack.

– it should have detachable battery.

– it should have sd-card.

my recommendation is any phones from xiaomi or nexus 5 or lg v20.


“The lack of a headphone jack gets all the attention. I think Google left off the headphone jack as a distraction. The real story is that Clips camera. It decides when to take pictures of what is “interesting”? How is that done? Does everything potentially interesting get streamed to the mother ship so that Google’s algorithm can determine if it is “interesting” or not? And what exactly is the definition of “interesting”?

Maybe Google has two different “interesting” filters. One that the consumer sees the results of. And one that Google privately keeps the results of. … ”








qbe on alpine linux (musl libc)

// file.ssa

function w $add(w %a, w %b) { # Define a function add
%c =w add %a, %b # Adds the 2 arguments
ret %c # Return the result
export function w $main() { # Main function
%r =w call $add(w 1, w 1) # Call add(1, 1)
call $printf(l $fmt, w %r, …) # Show the result
ret 0
data $fmt = { b “One and one make %d!\n”, b 0 }

./qbe -o asm.s file.ssa

// asm.s

pushq %rbp
movq %rsp, %rbp
movl %edi, %eax
addl %esi, %eax
/* end function add */

.globl main
pushq %rbp
movq %rsp, %rbp
movl $1, %esi
movl $1, %edi
callq add
movl %eax, %esi
leaq fmt(%rip), %rdi
movl $0, %eax
callq printf
movl $0, %eax
/* end function main */

.align 8
.ascii “One and one make %d!\n”
.byte 0
/* end data */


– callq printf // need to be fixed!

+ callq printf@plt