The `dmenu` package includes two binary programs, `dmenu` and `stest`,
and two shell scripts, `dmenu_run` and `dmenu_path`. `dmenu_run`
invokes `dmenu` and `dmenu_path`, and `dmenu_path` invokes `stest`.
`dmenu_run`'s invocation of `dmenu` was patched to run it by its full
store path, but its invocation of `dmenu_path` and `dmenu_path`'s
invocation of `stest` were not.
If `dmenu_path` and `stest` were not in the set of system packages or
otherwise in the `PATH`, this situation would result in `dmenu_run`
opening a dmenu instance with no menu entries (which would normally be
generated by `dmenu_path`, which `dmenu_run` couldn't find, as it was
running it by `PATH` lookup).
This commit fixes the package to also patch the invocation of
`dmenu_path` in `dmenu_run` and the invocations of `stest` in
`dmenu_path` to invoke those programs by their full store paths.
I have tested this change on NixOS.
After #16017 there were a lot
of comments saying that `nix` would be better than `JSON`
for Go packages dependency sets.
As said in https://github.com/NixOS/nixpkgs/pull/16017#issuecomment-229624046
> Because of the content-addressable store, if two programs have the
> same dependency it will already result in the same derivation in
> the
> store. Git also has compression in the pack files so it won't make
> much difference to duplicate the dependencies on disk. And finally
> most users will just use the binary builds so it won't make any
> differences to them.
This PR removes `libs.json` file and puts all package dependencies in
theirs `deps.json`.
Darwin build fails from conflicts in libSystem:
In file included from altdom.c:1:
In file included from /private/var/folders/7t/4vz31njj37b8y_bg6z3t7tk00000gn/T/nix-build-LiE-2.2.2.drv-0/LiE/lie.h:34:
In file included from /nix/store/9ll4m9yx854hr64fn1w9ra3qimm3pzdk-Libsystem-osx-10.9.5/include/string.h:176:
/nix/store/9ll4m9yx854hr64fn1w9ra3qimm3pzdk-Libsystem-osx-10.9.5/include/strings.h:73:7: error: redefinition of 'index' as different kind of symbol
char *index(const char *, int) __POSIX_C_DEPRECATED(200112L);
^
/private/var/folders/7t/4vz31njj37b8y_bg6z3t7tk00000gn/T/nix-build-LiE-2.2.2.drv-0/LiE/lie.h:6:14: note: previous definition is here
typedef long index;
^
1 error generated.
This commit fixes 2 main problems:
- Android Studio comes with its own package manager. The current
packaging approach doesn't allow such management. As a result the
package is unusable (see
https://github.com/NixOS/nixpkgs/issues/8650 and
https://github.com/NixOS/nixpkgs/issues/14903). In this version,
$ANDROID_HOME is _not_ set, allowing Android Studio to deal with the
Android SDK as it pleases (typically in $HOME/Android/Sdk).
- Android Studio downloads prebuilt binaries as part of the SDK. These
tools (e.g. `mksdcard`) have `/lib/ld-linux.so.2` set as the
interpreter. An FHS environment is used as a work around for that.
It would error when a config file was missing. This patch comes from
github and can be removed once 4b944ac339312b642c6dc5d6b5a2f7be7503218f
is included in a release.
The Sage derivation had texLive, the old TeX Live packaging which
is now marked as broken, as a build input. This replaces it by the
current TeX Live packaging.
However, the build remains broken. One of the problems can be
solved by patching the hashbangs at the beginning of build scripts,
but the build still gets stuck while building ncurses.
When it's used from command line or as a i3 shortcut, i3lock-fancy works
without any issues. If you try to pass it as an argument to xss-lock or
xautolock running as a systemd user service, getopt and fc-match are not in
PATH and locking doesn't work as expected. This patch replaces non absolute
paths with stable ones and should fix the issue.