I am struggling hard to get CEWE Fotobuch (a proprietary software to layout and order printed photo albums) to run on NixOS. Yes, it’s “proprietary garbage” as Tony would put it, please no discussions whether it’s good to use it or not. ![]()
It can be downloaded from this landing page, or the tarball directly from here. Apparently, there is only this one tarball link, which always points to the latest version, there are no stable links to old versions as confirmed in this thread. It contains a install.pl script, which can be executed with perl install.pl (not ./install.pl due to DOS line endings!?) and by default it’ll put and download files into ~/CEWE (ugh…). It seems to be somewhat scriptable as its --help documents a --installDir option. A .desktop file is put in ~/.local/share/applications, but of course it doesn’t launch due to missing libraries. With some ldd I was able to pinpoint the missing libraries:
❯ ldd ~/CEWE/CEWE\ Fotowelt/CEWE\ Fotowelt &| grep found | sort -u
libbrotlidec.so.1 => not found
libdbus-1.so.3 => not found
libdrm.so.2 => not found
libEGL.so.1 => not found
libexpat.so.1 => not found
libfontconfig.so.1 => not found
libfreetype.so.6 => not found
libgbm.so.1 => not found
libglib-2.0.so.0 => not found
libGLX.so.0 => not found
libgomp.so.1 => not found
liblzma.so.5 => not found
libnspr4.so => not found
libnss3.so => not found
libnssutil3.so => not found
libOpenGL.so.0 => not found
libpng16.so.16 => not found
libsmime3.so => not found
libstdc++.so.6 => not found
libX11.so.6 => not found
libxcb.so.1 => not found
libXext.so.6 => not found
libxkbcommon.so.0 => not found
libxkbfile.so.1 => not found
libz.so.1 => not found
Now the farthest I was able to push it was to use nix-ld like this:
programs = {
nix-ld = {
enable = true;
libraries = with pkgs; [
stdenv.cc.cc.lib
zlib
file
fontconfig # for libfontconfig
libGL # for libEGL
libx11 # for libX11
glib # for libglib2.0.so
libdrm # for libdrm.so
expat # for libexpat.so
freetype # for libfreetype.so
libpng # for libpng16.so
nss # for libnss3.so
nspr # for libnspr4.so
brotli # for libbrotlidec.so
dbus # for libdbus
libxcb # for libxcb.so
libxext # for libXext.so
libgbm # for libgbm.so
libxkbfile # for libxkbfile.so
xorg.libxcb
xorg.xcbutilwm
xorg.xcbutilimage
xorg.xcbutilkeysyms
xorg.xcbutilrenderutil
xcb-util-cursor
libxkbcommon # for libxkbcommon.so
];
};
};
Launching ./CEWE\ Fotowelt in ~/CEWE/CEWE Fotowelt then opens a loading screen
and these logs
"Using resource path: /home/yann/CEWE/CEWE Fotowelt/Resources"
I (2025-12-05T00:09:31.393) [void CWLogMessageHandler::writeLogHeader() 263] ==> Compiled: Oct 29 2025 12:49:13 <==
[1205/000932.685882:WARNING:resource_bundle_qt.cpp(83)] locale_file_path.empty() for locale
The following paths were searched for Qt WebEngine locales:
/home/yann/CEWE/CEWE Fotowelt/translations/qtwebengine_locales
/home/yann/.QtWebEngineProcess
but could not find the translation file for the current locale: en-US.pak
You may override the default search paths by using QTWEBENGINE_LOCALES_PATH environment variable.
Translations WILL NOT be correct.
Path override failed for key base::DIR_APP_DICTIONARIES and path '/home/yann/CEWE/CEWE Fotowelt/qtwebengine_dictionaries'
[1205/000932.711788:WARNING:resource_bundle_qt.cpp(83)] locale_file_path.empty() for locale
The following paths were searched for Qt WebEngine locales:
/home/yann/CEWE/CEWE Fotowelt/translations/qtwebengine_locales
/home/yann/.QtWebEngineProcess
but could not find the translation file for the current locale: en-US.pak
You may override the default search paths by using QTWEBENGINE_LOCALES_PATH environment variable.
Translations WILL NOT be correct.
Path override failed for key base::DIR_APP_DICTIONARIES and path '/home/yann/CEWE/CEWE Fotowelt/qtwebengine_dictionaries'
[1205/000932.714686:WARNING:resource_bundle_qt.cpp(83)] locale_file_path.empty() for locale
but nothing else happens. Prepending strace ends up at an infinite amount of
ppoll([{fd=6, events=POLLIN}, {fd=29, events=POLLIN}, {fd=114, events=POLLIN}], 3, {tv_sec=0, tv_nsec=0}, NULL, 8) = 0 (Timeout)
A buildFHSEnv with the same packages as above doesn’t open that window, but eventually errors out:
❯ ./CEWE\ Fotowelt
"Using resource path: /home/yann/CEWE/CEWE Fotowelt/Resources"
I (2025-12-05T00:14:52.880) [void CWLogMessageHandler::writeLogHeader() 263] ==> Compiled: Oct 29 2025 12:49:13 <==
[1205/001454.163849:WARNING:resource_bundle_qt.cpp(83)] locale_file_path.empty() for locale
The following paths were searched for Qt WebEngine locales:
/home/yann/CEWE/CEWE Fotowelt/translations/qtwebengine_locales
/home/yann/.QtWebEngineProcess
but could not find the translation file for the current locale: en-US.pak
You may override the default search paths by using QTWEBENGINE_LOCALES_PATH environment variable.
Translations WILL NOT be correct.
Path override failed for key base::DIR_APP_DICTIONARIES and path '/home/yann/CEWE/CEWE Fotowelt/qtwebengine_dictionaries'
[1205/001454.188639:WARNING:resource_bundle_qt.cpp(83)] locale_file_path.empty() for locale
The following paths were searched for Qt WebEngine locales:
/home/yann/CEWE/CEWE Fotowelt/translations/qtwebengine_locales
/home/yann/.QtWebEngineProcess
but could not find the translation file for the current locale: en-US.pak
You may override the default search paths by using QTWEBENGINE_LOCALES_PATH environment variable.
Translations WILL NOT be correct.
Path override failed for key base::DIR_APP_DICTIONARIES and path '/home/yann/CEWE/CEWE Fotowelt/qtwebengine_dictionaries'
[1205/001454.192146:WARNING:resource_bundle_qt.cpp(83)] locale_file_path.empty() for locale
fish: Job 1, './CEWE\ Fotowelt' terminated by signal SIGTRAP (Aufzeichnungs- oder Haltepunkt erreicht)
SIGTRAP. Aha. I didn’t even bother trying to write a derivation for this thing. ![]()
Concerning the locale warnings, an LLM (sorry…) suggested this, which of course didn’t help:
export QTWEBENGINE_LOCALES_PATH=$(nix build --no-link nixpkgs#qt6.qtwebengine --print-out-paths)/resources/qtwebengine_locales
export QTWEBENGINE_DICTIONARIES_PATH=$(nix build --no-link nixpkgs#qt6.qtwebengine --print-out-paths)/resources/qtwebengine_dictionaries
The .desktop file actually launches ./CEWE Fotoschau, not ./CEWE Fotowelt, but ./CEWE Fotoschau doesn’t even open the loading window.
EDIT: steam-run (from nixpkgs.steam-run-free) has it error out due to a missing libnss3 or something similar IIRC).
I don’t really know what to do now, any pointers are appreciated. Ideally, I’d like a proper reproducible derivation, probably with an FHSEnv if necessary, but anything that gets this beast to run - preferably natively - is good for now. I guess distrobox, apptainers might work somehow, or even a full-blown VM of something like Linux Mint, but I feel this should definitely be possible on NixOS natively.
Thanks in advance!
