woofQ2 now generates devx sfs
I recently posted some pictures of the structure of woofQ2:
- WoofQ2 the next generation Woof? — June 18, 2025
There is a fundamental problem with the pups and pup-derivatives and pup-lookalikes; that they use a aufs/overlayfs layered filesystem, which traditional package managers such as APT do not recognise.
The "devx" squashfs file is an example. It has lots of packages. APT/dpkg maintains a database of installed packages in /var/lib/dpkg; in the case of EasyOS, that will be in the bottom layer, easy.sfs. Then you want to compile a source package and bootup with the devx .sfs layered on top; how can APT/dpkg be informed that there are a whole lot of new packages installed? Unfortunately, it is not a simple matter of having another layer of /var/lib/dpkg in the devx sfs.
There are some pup-lookalikes that just don't bother; they don't have a devx sfs. Instead, you have to install development packages directly into the read-write layer. It is very tedious to figure out what to install. Though, with APT, you can at least get started with:
# apt install build-essential
The great advantage of the devx sfs is that it has all the matching "-dev" packages for the packages in easy.sfs, plus heaps of tools such as git, gdb, cmake, etc.
In the new-generation of EasyOS, based on woofQ2, I have avoided the problem withe devx sfs, simply by, when it is loaded, just not telling APT/dpkg about the presence of all these new packages. APT/dpkg simply isn't aware of them. So if you remove the devx sfs, APT/dpkg can carry on as normal. There may be some gotchas with doing this, but it seems passable.
Regarding woofQ2, there is a new script, '2create-devx-sfs':
Have run it, and currently this is what is in it:
autoconf automake autopoint autotools-dev bin86 binutils
binutils-common binutils-dev binutils-x86-64-linux-gnu bison
build-essential cargo checkinstall clang clang-19 cmake
cmake-data comerr-dev cpp-14 curl cvs cvsps cython3 debhelper
devscripts devscripts-devuan dh-autoreconf
dh-strip-nondeterminism dictionaries-common-dev distro-info-data
docbook docbook-to-man docbook-xml docbook-xsl doxygen dpkg-dev
dwz flex fossil g++-14 g++ g++-14-x86-64-linux-gnu gcc-14 gcc
gcc-14-locales gcc-14-plugin-dev gcc-14-x86-64-linux-gnu
gcc-x86-64-linux-gnu gdb gettext gir1.2-freedesktop-dev
gir1.2-gdesktopenums-3.0 gir1.2-girepository-2.0-dev
gir1.2-glib-2.0-dev girepository-tools git git-all
git-buildpackage git-cvs git-doc git-email git-gui gitk git-man
git-mediawiki git-svn gitweb gnome-icon-theme gnu-efi groff
gsettings-desktop-schemas-dev guile-3.0 guile-3.0-libs
g++-x86-64-linux-gnu help2man highlight highlight-common
intltool-debian itstool jq krb5-multidev libaa1-dev libacl1-dev
libalgorithm-c3-perl libapr1t64 libaprutil1t64
libarchive-zip-perl libargon2-dev libasan8 libasound2-dev
libattr1-dev libbabeltrace1 libb-hooks-endofscope-perl
libb-hooks-op-check-perl libbinutils libblkid-dev
libboost1.83-dev libboost-dev libbrotli-dev libbz2-dev libc6-dev
libcairo2-dev libcc1-0 libcddb2-dev libc-dev-bin libcgi-pm-perl
libclang1 libclang1-19 libclang-common-19-dev libclang-cpp19
libclass-c3-perl libclass-data-inheritable-perl
libclass-inspector-perl libclass-method-modifiers-perl
libclass-singleton-perl libclass-xsaccessor-perl libcrypt-dev
libctf0 libctf-nobfd0 libcups2-dev libcupsimage2-dev
libcupsimage2t64 libcurl4-openssl-dev libdata-optlist-perl
libdatetime-format-builder-perl libdatetime-format-iso8601-perl
libdatetime-format-strptime-perl libdatetime-locale-perl
libdatetime-perl libdatetime-timezone-perl libdb5.3-dev
libdbd-sqlite3-perl libdbi-perl libdebconfclient0-dev
libdebhelper-perl libdebuginfod1t64 libdebuginfod-common
libdeflate-dev libdevel-callchecker-perl
libdevel-stacktrace-perl libdpkg-perl libdrm-dev libdv4-dev
libdynaloader-functions-perl liberror-perl libeval-closure-perl
libevent-2.1-7t64 libexception-class-perl libexpat1-dev
libffi-dev libfile-dirlist-perl libfile-homedir-perl
libfile-sharedir-perl libfile-stripnondeterminism-perl
libfile-touch-perl libfile-which-perl libflac-dev libfltk1.3-dev
libfltk-cairo1.3t64 libfltk-forms1.3t64 libfltk-gl1.3t64
libfltk-images1.3t64 libfmt10 libfontconfig1-dev
libfontconfig-dev libfontenc-dev libfreetype-dev libgcc-14-dev
libgcrypt20-dev libgio-2.0-dev libgio-2.0-dev-bin
libgirepository-2.0-0 libgit2-1.9 libgl-dev libglib2.0-dev
libglib2.0-dev-bin libglx-dev libgmp-dev libgmpxx4ldbl
libgnutls28-dev libgnutls-dane0t64 libgnutls-openssl27t64
libgpg-error-dev libgprofng0 libgsm1-dev libgssrpc4t64
libhttp-parser2.9 libhwasan0 libice-dev libidn2-dev
libimport-into-perl libinotifytools0-dev libipt2 libitm1
libjbig2dec0-dev libjbig-dev libjpeg62-turbo-dev libjpeg-dev
libjq1 libjs-jquery libjsoncpp26 libjson-perl libjs-sphinxdoc
libjs-underscore libkadm5clnt-mit12 libkadm5srv-mit12
libkdb5-10t64 libkrb5-dev libldap2-dev libldap-dev libldb-dev
liblerc-dev liblsan0 liblua5.4-0 liblzma-dev libmailtools-perl
libmbedtls21 libmbedx509-7 libmediawiki-api-perl
libmodule-implementation-perl libmodule-runtime-perl libmoo-perl
libmount-dev libmpc-dev libmpfr-dev libmpg123-dev
libmro-compat-perl libnamespace-autoclean-perl
libnamespace-clean-perl libncurses-dev libneon27-dev
libnet-smtp-ssl-perl libnghttp2-dev libnghttp3-dev libnpth0-dev
libnspr4-dev libnss3-dev libobjc-14-dev libobjc4 libogg-dev
libonig5 libopenjp2-7-dev libopus-dev libosp5 libout123-0t64
libp11-kit-dev libpackage-stash-perl libpam0g-dev
libparams-classify-perl libparams-util-perl
libparams-validate-perl libparams-validationcompiler-perl
libpciaccess-dev libpcre2-16-0 libpcre2-32-0 libpcre2-dev
libpcre2-posix3 libpfm4 libpixman-1-dev libpng-dev
libpod-parser-perl libpopt-dev libpsl-dev libpython3.13-dev
libpython3-all-dev libpython3-dev libraptor2-dev librasqal3-dev
librdf0-dev librhash1 librole-tiny-perl librtmp-dev
libsamplerate0-dev libselinux1-dev libsepol-dev libserf-1-1
libsframe1 libsharpyuv-dev libshout3-dev libshout-dev
libslang2-dev libsm-dev libsndfile1-dev libsource-highlight4t64
libsource-highlight-common libspecio-perl libspeex-dev
libssh2-1-dev libssl-dev libstartup-notification0-dev
libstdc++-14-dev libstd-rust-1.85 libstd-rust-dev
libsub-exporter-perl libsub-exporter-progressive-perl
libsub-identify-perl libsub-install-perl libsub-name-perl
libsub-quote-perl libsvn1 libsvn-perl libsyn123-0t64
libsyntax-keyword-try-perl libsysprof-capture-4-dev
libtalloc-dev libtasn1-6-dev libtcl8.6 libtdb-dev
libterm-readkey-perl libtevent-dev libtext-unidecode-perl
libtheora-dev libtiff-dev libtiffxx6 libtk8.6 libtool libtsan2
libubsan1 libunbound8 libusb-1.0-0-dev libutf8proc3 libuv1-dev
libvala-0.56-0 libvalacodegen-0.56-0 libvariable-magic-perl
libvorbis-dev libwbclient-dev libwebpdecoder3 libwebp-dev
libwrap0-dev libx11-dev libxapian30 libxau-dev libxaw7-dev
libxcb1-dev libxcb-damage0-dev libxcb-glx0-dev libxcb-icccm4-dev
libxcb-image0-dev libxcb-keysyms1-dev libxcb-randr0-dev
libxcb-render0-dev libxcb-render-util0-dev libxcb-shape0-dev
libxcb-shm0-dev libxcb-xfixes0-dev libxcb-xv0-dev libxcvt-dev
libxdmcp-dev libxext-dev libxfont-dev libxkbfile-dev libxml2-dev
libxmlsec1-dev libxmlsec1t64-gcrypt libxmlsec1t64-gnutls
libxmlsec1t64-openssl libxmu-dev libxmu-headers libxpm-dev
libxrender-dev libxslt1-dev libxs-parse-keyword-perl
libxstring-perl libxt-dev libyajl-dev libyaml-perl libzstd-dev
linux-libc-dev linux-libc-dev linux-libc-dev lld-19 llvm-19
llvm-19-linker-tools llvm-19-runtime m4 make man-db
mesa-common-dev meson nasm native-architecture nettle-dev
network-manager-dev ninja-build ntfs-3g-dev ocl-icd-dev
opencl-c-headers opensp patchutils po4a po-debconf
python3.13-dev python3-all python3-all-dev python3-cairo-dev
python3-dateutil python3-dev python3-jaraco.text python3-libxml2
python3-setuptools python3-yaml python3-zipp re2c rman
rpcsvc-proto rust-all rust-analyzer rustc rust-clippy rustfmt
rust-gdb rust-llvm samba-dev scons sgml-base sgml-data strace
subversion sysprofile tcl tcl8.6 tex-common texinfo texinfo-lib
tk tk8.6 uuid-dev valac valac-0.56-vapi valac-bin wdiff
x11proto-dev xdg-desktop-portal-dev xml-core xorg-sgml-doctools
xserver-xorg-dev xserver-xorg-input-evdev-dev
xserver-xorg-input-libinput-dev xserver-xorg-input-synaptics-dev
xtrans-dev xutils-dev yasm zlib1g-dev
I think that is enough to cover most compile needs, except not
for Qt5 or Qt6. The devx sfs is currently 420MB.
I'm going through radical revisions with woofQ2, and one thing will be simplification of how sfs files work. Will post about that.
A note about the variable $PKGS_SPECS_TABLE; that has been in
Woof* since the very beginning. Woof* developers and users will
know about it. It is now gone, replaced with simple lists of
required packages. Finding "-dev" packages for the devx sfs is
done automatically.
Tags: easy