Add `wrapGAppsHook3` to `nativeBuildInputs` to ensure `sfwbar` can
successfully locate the `gdk-pixbuf` loaders required to render SVG symbolic
icons in default GTK widgets (such as the battery, bluez, and volume
modules).
The inclusion of this hook automatically generates a unified `loaders.cache`
and wraps the resulting binary with the correct `GDK_PIXBUF_MODULE_FILE`
environment variable. Furthermore, it automatically handles the population
of `XDG_DATA_DIRS`, rendering the previous manual `wrapProgram` execution in
`postFixup` redundant.
This commit adds a new NixOS service for the linkding package. This
NixOS service runs 3 systemd services:
1. linkding-setup: this one-shot service bootstraps the creation of the
runtime data directory and sets up the SQL database by running
migrations, creating users, etc.
2. linkding: this is the main service, which runs linkding inside of
uwsgi.
3. linkding-background-tasks: this is a sidecar service that runs
`huey`, a task manager, which linkding uses to generate previews,
downloads favicons, etc for your bookmarks.
Wherever possible, the NixOS service mirrors the configuration from the
upstream scripts/Docker compose.
I've validated that following configurations work on my own machines:
1. linkding with the sqlite3: this is the simplest way to run the
linkding service, storing all DB data in the data directory. Task
runner is confirmed working and favicons/previews are correctly
generated.
2. linkding with postgresql: this is a trickier configuration that needs
to pull in an optional-dependency. This is also confirmed working
even against a non-local postgres instance.
Signed-off-by: squat <lserven@gmail.com>
This commit introduces a new package: https://linkding.link, a popular
and simple bookmark manager written in Django. The package has a fairly
complex build-process and needs several patches to successfully
build-run outside of a Docker container. I will be submitting PRs
upstream for better support for customized runtime data directories to
eliminate the need for lots of patching. Wherever possible, the
derivation mirrors build steps from the upstream Dockerfiles.
I have confirmed this package works exactly as expected when running:
```shell
nix build .#linkding
./result/bin/linkding-bootstrap
./result/bin/linkding runserver
```
Signed-off-by: squat <lserven@gmail.com>
scripts/test/lld.py adds --enable-memory64 --bigint when '64' appears
anywhere in the input path. The full Nix build directory is included,
and its nonce digits can contain '64' — non-deterministically triggering
the memory64 flags on unrelated tests (e.g. lld/duplicate_imports.wat)
and causing output mismatches. Match on basename instead.