Skip to content
 
 

Latest commit

 

History

174 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

archlinux-pkgs-debloated

Previously known as 'llvm-libs-debloated'


This repo makes modified versiones of Archlinux packages, these are intended for AppImages to reduce final size, like:

  • mesa-mini and vulkan-{radeon,intel,etc}-mini remove linking to libLLVM.so, making any hardware accelerated app tiny as result.

  • mesa-nano and vulkan-{radeon,intel,etc}-nano similar to mesa-mini, built with -Os which makes it ~30% smaller. Note -Os can have a performance and even stability issue so do not use this package in apps like emulators where this is critical.

  • llvm-libs-mini smaller version of libLLVM.so which is a 150+ MiB library, this version is reduced down to 99 MiB.

  • llvm-libs-nano, similar to mini, but with the llvm targets limited (x86_64 or aarch64) + AMDGPU, this reduces the size of the library to less than 70 MiB. Note this will cause issues if application depends on more llvm targets like compilers.

  • qt6-base-mini and libxml2-mini, remove 30 MiB libicudata lib dependency.

  • ffmpeg-mini which removes 20 MiB libx265.so dependency, also removes AV1 enconding support (decoding still works).

  • ffmpeg-nano a much more stripped down ffmpeg that only decodes mp3, opus, vorbis, png and jpeg (no encoders, no hardware acceleration, no external codec libraries).

  • sdl2_image-mini removes AVIF and JPEG-XL support from SDL2_image. AVIF pulls in libavif plus the whole AV1 codec family (libaom, SvtAv1Enc, rav1e, dav1d) and JPEG-XL pulls libjxl — ~23 MiB combined that most apps never use. PNG/JPG/TIFF/WEBP still work.

  • opus-mini I have no idea why Archlinux makes this lib 5 MiB when both ubuntu and alpine make it <500 KiB

  • gdk-pixbuf2-mini, librsvg-mini These remove the glycin dependency, ~20 MiB of bloat. (glycin is also super buggy and depends on bwrap which is problematic for running appimages in very old kernels).

  • glycin-mini Builds glycin-ng, alternative to glycin that does not have the many problems that GNOME glycin has.

  • icu-mini Much smaller version of libicudata.so that is less than 3 MIB in size (10x reduction in size).

  • gtk2-mini Builds gtk2-ng-git, a community-maintained fork of GTK2.

  • libdecor-mini Builds libdecor-rs, rust implementation of libdecor without GTK/D-Bus dependencies (Ideal for SDL apps).

Projects using these packages

CI

Build jobs run inside ghcr.io/pkgforge-dev/archlinux-builder:<arch>, an image that bakes in base-devel, ccache, clang, cmake, curl, git, mold, ninja and wget plus the initialized pacman keyring. The real wins are the foreign-arch (qemu) legs on blacksmith, which cache images by digest, and keeping the toolchain in one place instead of installing it per job. On the GitHub-hosted native legs the ~2 GB image is pulled fresh on every job, so wall time there is roughly a wash versus installing the toolchain.

The image is built per arch by the build builder image workflow and refreshed weekly, so its package database can be up to a week old; prepare-build falls back to the old pacman -Syu install when the toolchain is missing, which also keeps the workflow usable with a plain ghcr.io/pkgforge-dev/archlinux base.

Run build builder image manually once before the first build after merging (and whenever the Dockerfile changes). That first run pushes the package as private; the build jobs have packages: read and build-emulated logs in to ghcr, so they can still pull it. Making the package public in its settings is optional but matches the other pkgforge images.

About

Stripped down versions of several archlinux packages, former name llvm-libs-debloated. [Maintainer=@Samueru-sama]

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages