This is a large scale rework of the package, here's a change summary:
* Organized inputs (1/line, except conditionals)
* Introduced alsaSupport, pulseaudioSupport, waylandSupport
* enableGTK3 -> gtk3Support
* enableCalendar -> calendarSupport
* Organized buildInputs, nativeBuildInputs (1/line)
* Corrected native/buildInputs separation
* Ported over fixes/changes from Firefox
* Enabled sound, webp, vpx, rust-SIMD, necko-wifi
* Removed manual wrapping
* Lifted makeDesktopItem out of string section, into Nix
* Correctly set bindgen options
* Added lovesegfault as maintainer
* New url which uses https
This is non-authoritative, look at the diff for further info.
Using a function in an if condition when set -e is set doesn't seem to
break out or return false which means the workaround from 41ca86129f
never gets triggered.
This adds a new utility to intelligently convert Nix records to
command line options to reduce boilerplate for simple use cases and to
also reduce the likelihood of malformed command lines
The previous lines were only different in the kind of dependencies but
otherwise exactly the same. It makes the entire thing a bit more
readable by moving this into a function that takes care of this.
We can get rid of a bunch of workarounds that were in the build script
before by just passing on the `crateBin` attribute.
Before we converted the list of attributes to a string only to convert
it back in bash during the build phase. We can do the entire looping
through builds in Nix and thus need no conversion and parsing of
attributes over and over again.
The big part that still remains bash is the heuristic that cargo
introduced and that we can't do at eval time.
That code had been in the derivation for a while but no explanation was
given why that is needed. It might be helpful to our future selfs to
document why things are done the way they are.
The expression is already long and confusing enough without the color
stuff sprinkled in. Moving it to a dedicated file makes sense.
I switched a bit of the color support code to pure Nix since there
wasn't much point in doing that in bash while we can just do it in Nix.
We can just use `lib` instead of `builtins` in all cases but the
`hashString` case. Also changed a few lines to make use of some optional
helpers from lib.
+ Fixing interrupted descriptions
+ Added more verbose descriptions
+ Addded <literal> to the descriptions
+ uniformly reformated descriptions to break at 80 chars
(cherry picked from commit c7945c8a97df52a468cf32155154cdec021561bc)