This aims to make the `weechat` package even more configurable. It
allows to specify scripts and commands using the `configure` function
inside a `weechat.override` expression.
The package can be configured like this:
```
with import <nixpkgs> { };
weechat.override {
plugins = { availablePlugins, ... }: {
plugins = builtins.attrValues availablePlugins;
init = ''
/set foo bar
/server add freenode chat.freenode.org
'';
scripts = [ "/path/to/script.py" ];
};
}
```
All commands are passed to `weechat --run-command "/set foo bar;/server ..."`.
The `plugins' attribute is not necessarily required anymore, if it's
sufficient to add `init' commands, the `plugins' will be
`builtins.attrValues availablePlugins' by default.
Additionally the result contains `weechat` and `weechat-headless`
(introduced in WeeChat 2.1) now.
Intuitively, one cares mainly about the host platform: Platforms differ
in meaningful ways but compilation is morally a pure process and
probably doesn't care, or those difference are already abstracted away.
@Dezgeg also empirically confirmed that > 95% of checks are indeed of
the host platform.
Yet these attributes in the old cross infrastructure were defined to be
the build platform, for expediency. And this was never before changed.
(For native builds build and host coincide, so it isn't clear what the
intention was.)
Fixing this doesn't affect native builds, since again they coincide. It
also doesn't affect cross builds of anything in Nixpkgs, as these are no
longer used. It could affect external cross builds, but I deem that
unlikely as anyone thinking about cross would use more explicit
attributes for clarity, all the more so because the rarity of inspecting
the build platform.
Introduce a `skawarePackages.buildPackage` function that contains the
common setup, removing a lot of duplication.
In particular, we require that the build directory has to be empty
after the `fixupPhase`, to make sure every relevant file is moved to
the outputs.
A next step would be to deduplicate the `configureFlags` attributes
and only require a `skawareInputs` field.
I don't know when we can/should remove them, but this at least gets
people to stop using them. The preferred alternatives also date back to
17.09 so writing forward-compatable code without extra conditions is
easy.
Beginning with these as they are the least controversial.
* libreoffice-still: -> 6.0.6.2
* (newer than our current 'fresh!')
* libreoffice-fresh: -> 6.1.0.3
* 6.1.1(.1) is currently pre-release, FWIW
* Use normal gcc, not gcc5
* dropping 'glibc' from buildInputs fixed this (?)
* remove many fixes/touchups/workarounds/hacks
* hopefully everything still works for everyone
* disable online update since that seems unlikely to work anyway
* fix autogen/configure invocations
* disable libnumbertext in 6.1.x since not packaged
* drop 'touch solenv/inc/target.mk' as unclear what it was for
and doesn't seem to be currently needed
* cleanup link gen a bit[1]
* split checks to check phase
[1]
primary motivation was to stop creating links like:
'libreoffice-6.0.5.2/src/-libxslt-1.1.32.tar.gz' -> '/nix/store/503v5hmhm430bld0h078gacmkniwdllr-libxslt-1.1.32.tar.gz'
'libreoffice-6.0.5.2/src/libxslt-1.1.32.tar.gz' -> '/nix/store/503v5hmhm430bld0h078gacmkniwdllr-libxslt-1.1.32.tar.gz'
This is mostly accomplished by simply using the 'md5name' field
which the python script kindly generates for us
(including the use of non-md5 if md5 is not set or empty).