The current package setup has two issues:
* You can only access `pkgs.zathura` which is the "final" derivation,
i.e. a wrapper. This is a problem if you want to apply a patch to
`zathura(1)` in an overlay. To make this a bit easier, I decided to
expose `zathuraPkgs` entirely and `zathura` is now
`zathuraPkgs.zathuraWrapper`.
With this change, patches can now be added like this:
```
with import ./. {
overlays = [
(self: super: {
zathura = super.zathura.override {
zathura_core = super.zathuraPkgs.zathura_core.overrideAttrs (_: {
patches = [
~/Projects/zathura/0001-Fix-remote-link-resolution-in-zathura.patch
];
});
};
})
];
};
zathura
```
* As soon as you open another window in `zathura` from `zathura` (e.g.
to follow a PDF-embedded link to another PDF), it currently fails
because `--plugins-dir=` isn't passed along. This is because `zathura`
uses `argv[0]`[1] to open another process and the GApps-wrapper inside
`zathuraPkgs.zathura_core` does a `exec -a "$0"` which isn't the
`bin/zathura` from the wrapper that appends `--plugins-dir=`:
```
execve("/nix/var/nix/profiles/per-user/ma27/home-manager-140-link/home-path/bin/zathura", ["/nix/var/nix/profiles/per-user/ma27/home-manager-140-link/home-path/bin/zathura", "/home/ma27/Documents/Uni/Studium/Notepad/Aktuell/Index.pdf"], 0x7ffd7a4bf4b0 /* 108 vars */) = 0
execve("/nix/store/2wjhxbgzcnn0qqdwqy0m01hw39dxwfmk-zathura-0.4.8-bin/bin/zathura", ["/nix/store/2wjhxbgzcnn0qqdwqy0m01hw39dxwfmk-zathura-0.4.8-bin/bin/zathura", "--plugins-dir=/nix/store/wcch63yzwykc9x5393dzjfdxsf80mrb8-zathura-with-plugins-0.4.8/lib/zathura", "/home/ma27/Documents/Uni/Studium/Notepad/Aktuell/Index.pdf"], 0x1442010 /* 107 vars */) = 0
execve("/nix/store/2wjhxbgzcnn0qqdwqy0m01hw39dxwfmk-zathura-0.4.8-bin/bin/.zathura-wrapped", ["/nix/store/2wjhxbgzcnn0qqdwqy0m01hw39dxwfmk-zathura-0.4.8-bin/bin/zathura", "--plugins-dir=/nix/store/wcch63yzwykc9x5393dzjfdxsf80mrb8-zathura-with-plugins-0.4.8/lib/zathura", "/home/ma27/Documents/Uni/Studium/Notepad/Aktuell/Index.pdf"], 0x81d010 /* 108 vars */) = 0
```
I figured it's way simpler to actually use the environment variable
`ZATHURA_PLUGINS_PATH` for that purpose as the environment is
inherited when a new process is started.
[1] 242329b534/zathura/links.c (L205-215)
- Update to unstable-2022-02-04
- Optionally install grub theme
- Move to pkgs/data/themes/graphite-gtk-theme, as there is also graphite-kde-theme in nixpkgs
* rewrite autoPatchelfHook in python
* Update pkgs/build-support/setup-hooks/auto-patchelf.py
Co-authored-by: aszlig <aszlig@redmoonstudios.org>
* Update pkgs/build-support/setup-hooks/auto-patchelf.py
Co-authored-by: aszlig <aszlig@redmoonstudios.org>
* Apply suggestions from code review
Co-authored-by: aszlig <aszlig@redmoonstudios.org>
* Fix issues discovered during tests
* Apply suggestions from code review
Co-authored-by: aszlig <aszlig@redmoonstudios.org>
* fixup line wrapping
* autoPatchelfHook: Improve compatibility with bash version
* autoPatchelfHook: Fix symlink-reated issues
* autoPatchelfHook: Revert dubious patchelf invocation test
* autoPatchelfHook: Untangle the executable detection logic
* fixup! autoPatchelfHook: Untangle the executable detection logic
* autoPatchelfHook: Fix invalid borrow issue
* autoPatchelfHook: Handle runtimeDependencies as the bare string it is
* autoPatchelfHook: add bintools dependency
For the very rare cases where it is not included by default.
* autoPatchelfHook: replace old hook with the rewrite
* autoPatchelfHook: get rid of the old hook content
* autoPatchelfHook: fix wrong ordering of debug info
* autoPatchelfHook: persist extra search path across incovations
* autoPatchelfHook: fix wrong usage of global variables
* Update auto-patchelf.py
PEP8: ignoreMissing -> ignore_missing
* Apply suggestions from code review
Co-authored-by: aszlig <aszlig@redmoonstudios.org>
* autoPatchelfHook: remove imprecise and incorrect warning
* Apply explicit types from code review
Co-authored-by: Jörg Thalheim <Mic92@users.noreply.github.com>
* Complement and polish types and snake_casing
Co-authored-by: aszlig <aszlig@redmoonstudios.org>
Co-authored-by: Jörg Thalheim <Mic92@users.noreply.github.com>
The go 1.18 beta1 is out. It appears to be building fully (and
suprisingly quickly too - :) ).
I trimmed a couple patches which referenced golang issues which had been
closed.