2 minutes
Recipes to make Tor,Burp Suite,Android Studio… works on Guix
Hey quick post on how I managed to get some of these apps running on my machine:
Android Studio
guix shell --container --network --emulate-fhs -e $'(list (@@ (gnu packages gcc) gcc) "lib")' --development ungoogled-chromium nss nss-certs libgccjit alsa-lib bash grep sed file libcxx libxkbfile openjdk fuse gtk gtk+ cups --preserve='^DISPLAY$' --share=/tmp --preserve='^DBUS_' --expose=/var/run/dbus --expose=/sys/dev --expose=/sys/devices --expose=/dev/dri --share=/home/user --share=/dev/kvm
Then I run the emulator with the following flags, they are needed otherwise it crashes.
user@linux ~/Android/Sdk/emulator [env]$ ./emulator -avd Pixel_6_Pro_API_33 -feature -Vulkan -writable-system
Burp Suite
# launch this with shell positionned in $HOME/
guix shell --container --network --emulate-fhs --preserve='DISPLAY|_JAVA.*|DBUS.*|QT.*|SDL.*|XDG.*' --expose=/var/run/dbus --expose=/run/user/$(id -u) --expose=/sys/dev --expose=/sys/devices --expose=/dev/dri --share=/dev/kvm --development ungoogled-chromium --expression='(list (@@ (gnu packages gcc) gcc) "lib")' coreutils bash grep sed gcc-toolchain patchelf gtk+ dbus-glib libxt libevent openssl glibc file alsa-lib nss nss-certs cups openjdk gzip tar zlib freetype file fontconfig openssh libxext libx11 libxrender libxtst dbus
I think I must have given up on trying to make it work with Guix I don’t remember exactly why, I think it had to do with the embedded chromium browser not working fine, so I ended up just using nix IIRC.
NIXPKGS_ALLOW_UNFREE=1 nix profile install –impure nixpkgs#burpsuite
Bellard’s TextSynth
guix shell --check --pure --expression='(list (@@ (gnu packages gcc) gcc) "lib")' coreutils bash grep sed gcc-toolchain patchelf gtk+ dbus-glib libxt libevent openssl glibc file alsa-lib libmicrohttpd libjpeg cuda-toolkit@12.3.2 nvidia-driver
FIRST_PART=$(echo "$LIBRARY_PATH" | cut -d ":" -f1)
SECOND_PART=$(echo "$LIBRARY_PATH" | cut -d ":" -f2)
patchelf --set-interpreter $FIRST_PART/ld-linux-x86-64.so.2 ts_server
patchelf --add-needed $FIRST_PART/libjpeg.so.62 ts_server
patchelf --add-needed $FIRST_PART/libmicrohttpd.so.12 ts_server
patchelf --add-needed $FIRST_PART/libstdc++.so.6 ts_server
patchelf --add-needed $FIRST_PART/libgcc_s.so.1 ts_server
patchelf --add-needed $FIRST_PART/libcublasLt.so.12 libnc_cuda.so
patchelf --add-needed $FIRST_PART/libcuda.so.1 libnc_cuda.so
./ts_sd --cuda -m sd_v2.1.bin -o out.jpg "an astronaut riding a horse"
./ts_sd --cuda -m sd_v2.1.bin -o out.jpg "an astronaut riding a horse" -t bf16
Tor Browser
cd Browser
guix shell --check --pure --expression='(list (@@ (gnu packages gcc) gcc) "lib")' coreutils bash grep sed gcc-toolchain patchelf gtk+ dbus-glib libxt libevent openssl glibc file alsa-lib
patchelf --set-interpreter $LIBRARY_PATH/ld-linux-x86-64.so.2 firefox.real
patchelf --set-interpreter $LIBRARY_PATH/ld-linux-x86-64.so.2 updater
patchelf --set-interpreter $LIBRARY_PATH/ld-linux-x86-64.so.2 TorBrowser/Tor/tor
LD_LIBRARY_PATH=$LIBRARY_PATH ./start-tor-browser
See https://gitlab.com/nonguix/nonguix/-/issues/112
Building a kernel
guix shell -D gcc-toolchain ncurses bison bc flex openssl@1.1.1l util-linux make autoconf coreutils sed diffutils bash grep libelf findutils elfutils gawk crypto++ perl gzip kmod
Don't forget to make clean if somethings weird
VSCodium
https://gitlab.com/nonguix/nonguix/-/issues/51
guix shell --container --network --emulate-fhs \
-e $'(list (@@ (gnu packages gcc) gcc) "lib")' \
--development ungoogled-chromium \
nss nss-certs libgccjit alsa-lib bash grep sed file \
libcxx libxkbfile openjdk fuse gtk gtk+ cups \
--preserve='^DISPLAY$' \
--share=/tmp \
--preserve='^DBUS_' --expose=/var/run/dbus \
--expose=/sys/dev --expose=/sys/devices --expose=/dev/dri
./VSCodium-1.78.2.23132.glibc2.17-x86_64.AppImage --appimage-extract-and-run