···246246247247### Stable release branches {#submitting-changes-stable-release-branches}
248248249249-For cherry-picking a commit to a stable release branch (“backporting”), use `git cherry-pick -x <original commit>` so that the original commit id is included in the commit.
249249+The same staging workflow applies to stable release branches, but the main branch is called `release-*` instead of `master`.
250250251251-Add a reason for the backport by using `git cherry-pick -xe <original commit>` instead when it is not obvious from the original commit message. It is not needed when it's a minor version update that includes security and bug fixes but don't add new features or when the commit fixes an otherwise broken package.
251251+Example branch names: `release-21.11`, `staging-21.11`, `staging-next-21.11`.
252252253253-For backporting Pull Requests to stable branches, assign label `backport <branch>` to the original Pull Requests and automation should take care of the rest once the Pull Requests is merged.
253253+Most changes added to the stable release branches are cherry-picked (“backported”) from the `master` and staging branches.
254254+255255+#### Automatically backporting a Pull Request {#submitting-changes-stable-release-branches-automatic-backports}
256256+257257+Assign label `backport <branch>` (e.g. `backport release-21.11`) to the PR and a backport PR is automatically created after the PR is merged.
258258+259259+#### Manually backporting changes {#submitting-changes-stable-release-branches-manual-backports}
260260+261261+Cherry-pick changes via `git cherry-pick -x <original commit>` so that the original commit id is included in the commit message.
262262+263263+Add a reason for the backport when it is not obvious from the original commit message. You can do this by cherry picking with `git cherry-pick -xe <original commit>`, which allows editing the commit message. This is not needed for minor version updates that include security and bug fixes but don't add new features or when the commit fixes an otherwise broken package.
254264255265Here is an example of a cherry-picked commit message with good reason description:
256266
···105105 </listitem>
106106 <listitem>
107107 <para>
108108+ <literal>services.kubernetes.addons.dashboard</literal> was
109109+ removed due to it being an outdated version.
110110+ </para>
111111+ </listitem>
112112+ <listitem>
113113+ <para>
108114 The <literal>wafHook</literal> hook now honors
109115 <literal>NIX_BUILD_CORES</literal> when
110116 <literal>enableParallelBuilding</literal> is not set
···161167 benefit to reduce the closure size of
162168 <literal>ipython</literal> from ~400MB to ~160MB (including
163169 ~100MB for python itself).
170170+ </para>
171171+ </listitem>
172172+ <listitem>
173173+ <para>
174174+ <literal>documentation.man</literal> has been refactored to
175175+ support choosing a man implementation other than GNU’s
176176+ <literal>man-db</literal>. For this,
177177+ <literal>documentation.man.manualPages</literal> has been
178178+ renamed to
179179+ <literal>documentation.man.man-db.manualPages</literal>. If
180180+ you want to use the new alternative man implementation
181181+ <literal>mandoc</literal>, add
182182+ <literal>documentation.man = { enable = true; man-db.enable = false; mandoc.enable = true; }</literal>
183183+ to your configuration.
164184 </para>
165185 </listitem>
166186 <listitem>
+4
nixos/doc/manual/release-notes/rl-2205.section.md
···4141 org-contrib, refer to the ones in `pkgs.emacsPackages.elpaPackages` and
4242 `pkgs.emacsPackages.nongnuPackages` where the new versions will release.
43434444+- `services.kubernetes.addons.dashboard` was removed due to it being an outdated version.
4545+4446- The `wafHook` hook now honors `NIX_BUILD_CORES` when `enableParallelBuilding` is not set explicitly. Packages can restore the old behaviour by setting `enableParallelBuilding=false`.
45474648- `pkgs.claws-mail-gtk2`, representing Claws Mail's older release version three, was removed in order to get rid of Python 2.
···5961 This is closer to a non-Nix install of ipython.
6062 This has the added benefit to reduce the closure size of `ipython` from ~400MB to ~160MB
6163 (including ~100MB for python itself).
6464+6565+- `documentation.man` has been refactored to support choosing a man implementation other than GNU's `man-db`. For this, `documentation.man.manualPages` has been renamed to `documentation.man.man-db.manualPages`. If you want to use the new alternative man implementation `mandoc`, add `documentation.man = { enable = true; man-db.enable = false; mandoc.enable = true; }` to your configuration.
62666367- The iputils package, which is installed by default, no longer provides the
6468 legacy tools `tftpd` and `traceroute6`. More tools (`ninfod`, `rarpd`, and
+27-48
nixos/modules/misc/documentation.nix
···7474 ];
7575 };
76767777- # list of man outputs currently active intended for use as default values
7878- # for man-related options, thus "man" is included unconditionally.
7979- activeManOutputs = [ "man" ] ++ lib.optionals cfg.dev.enable [ "devman" ];
8080-8177in
82788379{
···107103 type = types.bool;
108104 default = true;
109105 description = ''
110110- Whether to install manual pages and the <command>man</command> command.
111111- This also includes "man" outputs.
106106+ Whether to install manual pages.
107107+ This also includes <literal>man</literal> outputs.
112108 '';
113109 };
114110···116112 type = types.bool;
117113 default = false;
118114 description = ''
119119- Whether to generate the manual page index caches using
120120- <literal>mandb(8)</literal>. This allows searching for a page or
121121- keyword using utilities like <literal>apropos(1)</literal>.
122122- '';
123123- };
124124-125125- man.manualPages = mkOption {
126126- type = types.path;
127127- default = pkgs.buildEnv {
128128- name = "man-paths";
129129- paths = config.environment.systemPackages;
130130- pathsToLink = [ "/share/man" ];
131131- extraOutputsToInstall = activeManOutputs;
132132- ignoreCollisions = true;
133133- };
134134- defaultText = literalDocBook "all man pages in <option>config.environment.systemPackages</option>";
135135- description = ''
136136- The manual pages to generate caches for if <option>generateCaches</option>
137137- is enabled. Must be a path to a directory with man pages under
138138- <literal>/share/man</literal>; see the source for an example.
139139- Advanced users can make this a content-addressed derivation to save a few rebuilds.
115115+ Whether to generate the manual page index caches.
116116+ This allows searching for a page or
117117+ keyword using utilities like
118118+ <citerefentry>
119119+ <refentrytitle>apropos</refentrytitle>
120120+ <manvolnum>1</manvolnum>
121121+ </citerefentry>
122122+ and the <literal>-k</literal> option of
123123+ <citerefentry>
124124+ <refentrytitle>man</refentrytitle>
125125+ <manvolnum>1</manvolnum>
126126+ </citerefentry>.
140127 '';
141128 };
142129···220207 };
221208222209 config = mkIf cfg.enable (mkMerge [
210210+ {
211211+ assertions = [
212212+ {
213213+ assertion = !(cfg.man.man-db.enable && cfg.man.mandoc.enable);
214214+ message = ''
215215+ man-db and mandoc can't be used as the default man page viewer at the same time!
216216+ '';
217217+ }
218218+ ];
219219+ }
223220221221+ # The actual implementation for this lives in man-db.nix or mandoc.nix,
222222+ # depending on which backend is active.
224223 (mkIf cfg.man.enable {
225225- environment.systemPackages = [ pkgs.man-db ];
226224 environment.pathsToLink = [ "/share/man" ];
227227- environment.extraOutputsToInstall = activeManOutputs;
228228- environment.etc."man_db.conf".text =
229229- let
230230- manualCache = pkgs.runCommandLocal "man-cache" { } ''
231231- echo "MANDB_MAP ${cfg.man.manualPages}/share/man $out" > man.conf
232232- ${pkgs.man-db}/bin/mandb -C man.conf -psc >/dev/null 2>&1
233233- '';
234234- in
235235- ''
236236- # Manual pages paths for NixOS
237237- MANPATH_MAP /run/current-system/sw/bin /run/current-system/sw/share/man
238238- MANPATH_MAP /run/wrappers/bin /run/current-system/sw/share/man
239239-240240- ${optionalString cfg.man.generateCaches ''
241241- # Generated manual pages cache for NixOS (immutable)
242242- MANDB_MAP /run/current-system/sw/share/man ${manualCache}
243243- ''}
244244- # Manual pages caches for NixOS
245245- MANDB_MAP /run/current-system/sw/share/man /var/cache/man/nixos
246246- '';
225225+ environment.extraOutputsToInstall = [ "man" ] ++ optional cfg.dev.enable "devman";
247226 })
248227249228 (mkIf cfg.info.enable {
+73
nixos/modules/misc/man-db.nix
···11+{ config, pkgs, lib, ... }:
22+33+let
44+ cfg = config.documentation.man.man-db;
55+in
66+77+{
88+ options = {
99+ documentation.man.man-db = {
1010+ enable = lib.mkEnableOption "man-db as the default man page viewer" // {
1111+ default = config.documentation.man.enable;
1212+ defaultText = lib.literalExpression "config.documentation.man.enable";
1313+ example = false;
1414+ };
1515+1616+ manualPages = lib.mkOption {
1717+ type = lib.types.path;
1818+ default = pkgs.buildEnv {
1919+ name = "man-paths";
2020+ paths = config.environment.systemPackages;
2121+ pathsToLink = [ "/share/man" ];
2222+ extraOutputsToInstall = [ "man" ]
2323+ ++ lib.optionals config.documentation.dev.enable [ "devman" ];
2424+ ignoreCollisions = true;
2525+ };
2626+ defaultText = lib.literalDocBook "all man pages in <option>config.environment.systemPackages</option>";
2727+ description = ''
2828+ The manual pages to generate caches for if <option>documentation.man.generateCaches</option>
2929+ is enabled. Must be a path to a directory with man pages under
3030+ <literal>/share/man</literal>; see the source for an example.
3131+ Advanced users can make this a content-addressed derivation to save a few rebuilds.
3232+ '';
3333+ };
3434+3535+ package = lib.mkOption {
3636+ type = lib.types.package;
3737+ default = pkgs.man-db;
3838+ defaultText = lib.literalExpression "pkgs.man-db";
3939+ description = ''
4040+ The <literal>man-db</literal> derivation to use. Useful to override
4141+ configuration options used for the package.
4242+ '';
4343+ };
4444+ };
4545+ };
4646+4747+ imports = [
4848+ (lib.mkRenamedOptionModule [ "documentation" "man" "manualPages" ] [ "documentation" "man" "man-db" "manualPages" ])
4949+ ];
5050+5151+ config = lib.mkIf cfg.enable {
5252+ environment.systemPackages = [ cfg.package ];
5353+ environment.etc."man_db.conf".text =
5454+ let
5555+ manualCache = pkgs.runCommandLocal "man-cache" { } ''
5656+ echo "MANDB_MAP ${cfg.manualPages}/share/man $out" > man.conf
5757+ ${cfg.package}/bin/mandb -C man.conf -psc >/dev/null 2>&1
5858+ '';
5959+ in
6060+ ''
6161+ # Manual pages paths for NixOS
6262+ MANPATH_MAP /run/current-system/sw/bin /run/current-system/sw/share/man
6363+ MANPATH_MAP /run/wrappers/bin /run/current-system/sw/share/man
6464+6565+ ${lib.optionalString config.documentation.man.generateCaches ''
6666+ # Generated manual pages cache for NixOS (immutable)
6767+ MANDB_MAP /run/current-system/sw/share/man ${manualCache}
6868+ ''}
6969+ # Manual pages caches for NixOS
7070+ MANDB_MAP /run/current-system/sw/share/man /var/cache/man/nixos
7171+ '';
7272+ };
7373+}
+61
nixos/modules/misc/mandoc.nix
···11+{ config, lib, pkgs, ... }:
22+33+let
44+ makewhatis = "${lib.getBin cfg.package}/bin/makewhatis";
55+66+ cfg = config.documentation.man.mandoc;
77+88+in {
99+ meta.maintainers = [ lib.maintainers.sternenseemann ];
1010+1111+ options = {
1212+ documentation.man.mandoc = {
1313+ enable = lib.mkEnableOption "mandoc as the default man page viewer";
1414+1515+ manPath = lib.mkOption {
1616+ type = with lib.types; listOf str;
1717+ default = [ "share/man" ];
1818+ example = lib.literalExpression "[ \"share/man\" \"share/man/fr\" ]";
1919+ description = ''
2020+ Change the manpath, i. e. the directories where
2121+ <citerefentry><refentrytitle>man</refentrytitle><manvolnum>1</manvolnum></citerefentry>
2222+ looks for section-specific directories of man pages.
2323+ You only need to change this setting if you want extra man pages
2424+ (e. g. in non-english languages). All values must be strings that
2525+ are a valid path from the target prefix (without including it).
2626+ The first value given takes priority.
2727+ '';
2828+ };
2929+3030+ package = lib.mkOption {
3131+ type = lib.types.package;
3232+ default = pkgs.mandoc;
3333+ defaultText = lib.literalExpression "pkgs.mandoc";
3434+ description = ''
3535+ The <literal>mandoc</literal> derivation to use. Useful to override
3636+ configuration options used for the package.
3737+ '';
3838+ };
3939+ };
4040+ };
4141+4242+ config = lib.mkIf cfg.enable {
4343+ environment = {
4444+ systemPackages = [ cfg.package ];
4545+4646+ # tell mandoc about man pages
4747+ etc."man.conf".text = lib.concatMapStrings (path: ''
4848+ manpath /run/current-system/sw/${path}
4949+ '') cfg.manPath;
5050+5151+ # create mandoc.db for whatis(1), apropos(1) and man(1) -k
5252+ # TODO(@sternenseemman): fix symlinked directories not getting indexed,
5353+ # see: https://inbox.vuxu.org/mandoc-tech/20210906171231.GF83680@athene.usta.de/T/#e85f773c1781e3fef85562b2794f9cad7b2909a3c
5454+ extraSetup = lib.mkIf config.documentation.man.generateCaches ''
5555+ ${makewhatis} -T utf8 ${
5656+ lib.concatMapStringsSep " " (path: "\"$out/${path}\"") cfg.manPath
5757+ }
5858+ '';
5959+ };
6060+ };
6161+}
···297297 cp -u --no-preserve=mode,owner "$TBB_IN_STORE/TorBrowser/Data/Browser/profile.default/bookmarks.html" \
298298 "\$HOME/TorBrowser/Data/Browser/profile.default/bookmarks.html"
299299300300- # Clear out some files that tend to capture store references but are
301301- # easily generated by firefox at startup.
302302- rm -f "\$HOME/TorBrowser/Data/Browser/profile.default"/{addonStartup.json.lz4,compatibility.ini,extensions.ini,extensions.json}
303303- rm -f "\$HOME/TorBrowser/Data/Browser/profile.default"/startupCache/*
300300+ # Clear some files if the last known store path is different from the new one
301301+ : "\''${KNOWN_STORE_PATH:=\$HOME/known-store-path}"
302302+ if ! [ "\$KNOWN_STORE_PATH" -ef $out ]; then
303303+ echo "Cleanup files with outdated store references"
304304+ ln -Tsf $out "\$KNOWN_STORE_PATH"
305305+306306+ # Clear out some files that tend to capture store references but are
307307+ # easily generated by firefox at startup.
308308+ rm -f "\$HOME/TorBrowser/Data/Browser/profile.default"/{addonStartup.json.lz4,compatibility.ini,extensions.ini,extensions.json}
309309+ rm -f "\$HOME/TorBrowser/Data/Browser/profile.default"/startupCache/*
310310+ fi
304311305312 # XDG
306313 : "\''${XDG_RUNTIME_DIR:=/run/user/\$(id -u)}"
···55 /* Do not use "dev" as a version. If you do, Tilt will consider itself
66 running in development environment and try to serve assets from the
77 source tree, which is not there once build completes. */
88- version = "0.23.3";
88+ version = "0.23.4";
991010 src = fetchFromGitHub {
1111 owner = "tilt-dev";
1212 repo = pname;
1313 rev = "v${version}";
1414- sha256 = "sha256:1612yrlsajl1j95zh057k82nzz492a9p1cgamph4m84zpm0v67jc";
1414+ sha256 = "sha256-SWofXsbkuirPvqgU639W8IQklafLKbThoZUzOzfYwdQ=";
1515 };
1616 vendorSha256 = null;
1717
···7788 # Please keep the version x.y.0.z and do not update to x.y.76.z because the
99 # source of the latter disappears much faster.
1010- version = "8.79.0.92";
1010+ version = "8.79.0.95";
11111212 rpath = lib.makeLibraryPath [
1313 alsa-lib
···6969 "https://mirror.cs.uchicago.edu/skype/pool/main/s/skypeforlinux/skypeforlinux_${version}_amd64.deb"
7070 "https://web.archive.org/web/https://repo.skype.com/deb/pool/main/s/skypeforlinux/skypeforlinux_${version}_amd64.deb"
7171 ];
7272- sha256 = "sha256-wGt0zNBmJf5NJGGOopWNUoBoy8sr4jWp8UKLd8AudnM=";
7272+ sha256 = "sha256-a6ZtgA0cMAuNVQWAeiIDJ2noPhXjV8KPE8ibkGR7Dns=";
7373 }
7474 else
7575 throw "Skype for linux is not supported on ${stdenv.hostPlatform.system}";
···4747 };
48484949 patches = [
5050+ # fix timeouts when docbuilding with >= 64 cpus
5151+ # https://github.com/Singular/Singular/issues/1117
5252+ ./vspace-MAX_PROCESS.patch
5353+5054 # add aarch64 support to cpu-check.m4. copied from redhat.
5155 ./redhat-aarch64.patch
5252-5353- # vspace causes hangs in modstd and other libraries on aarch64
5454- ./disable-vspace-on-aarch64.patch
55565657 # the newest version of ax-prog-cc-for-build.m4 seems to trigger
5758 # linker errors. see
···11+diff --git a/kernel/GBEngine/kChinese.cc b/kernel/GBEngine/kChinese.cc
22+index 829a66609..84655caf2 100644
33+--- a/kernel/GBEngine/kChinese.cc
44++++ b/kernel/GBEngine/kChinese.cc
55+@@ -209,6 +209,8 @@ ideal id_ChineseRemainder_0(ideal *xx, number *q, int rl, const ring r)
66+ return NULL;
77+ }
88+ int cpus=(int)(long)feOptValue(FE_OPT_CPUS);
99++ if (cpus>=vspace::internals::MAX_PROCESS)
1010++ cpus=vspace::internals::MAX_PROCESS-1;
1111+ if ((cpus==1) || (2*cpus>=cnt))
1212+ /* at least 2 polys for each process, or switch to seriell version */
1313+ return id_ChineseRemainder(xx,q,rl,r);
1414+@@ -295,6 +297,8 @@ ideal id_Farey_0(ideal x, number N, const ring r)
1515+ {
1616+ int cnt=IDELEMS(x)*x->nrows;
1717+ int cpus=(int)(long)feOptValue(FE_OPT_CPUS);
1818++ if (cpus>=vspace::internals::MAX_PROCESS)
1919++ cpus=vspace::internals::MAX_PROCESS-1;
2020+ if (2*cpus>=cnt) /* at least 2 polys for each process,
2121+ or switch to seriell version */
2222+ return id_Farey(x,N,r);
2323+diff --git a/kernel/GBEngine/kverify.cc b/kernel/GBEngine/kverify.cc
2424+index 909d84994..aa06d6624 100644
2525+--- a/kernel/GBEngine/kverify.cc
2626++++ b/kernel/GBEngine/kverify.cc
2727+@@ -176,6 +176,8 @@ BOOLEAN kVerify2(ideal F, ideal Q)
2828+ /*---------------------------------------------------------------------*/
2929+ BOOLEAN all_okay=TRUE;
3030+ int cpus=(int)(long)feOptValue(FE_OPT_CPUS);
3131++ if (cpus>=vspace::internals::MAX_PROCESS)
3232++ cpus=vspace::internals::MAX_PROCESS-1;
3333+ int parent_pid=getpid();
3434+ using namespace vspace;
3535+ vmem_init();
···11-diff --git a/xtmpl_js.ml b/xtmpl_js.ml
22-index e0d3894..991d1b3 100644
33---- a/xtmpl_js.ml
44-+++ b/xtmpl_js.ml
55-@@ -25,6 +25,8 @@
66-77- (** *)
88-99-+open Js_of_ocaml
1010-+
1111- let log s = Firebug.console##log (Js.string s);;
1212-1313- module X = Xtmpl_rewrite
1414-diff --git a/xtmpl_js.mli b/xtmpl_js.mli
1515-index d709896..5ed471c 100644
1616---- a/xtmpl_js.mli
1717-+++ b/xtmpl_js.mli
1818-@@ -25,6 +25,8 @@
1919-2020- (** Convenient functions to use in JS code *)
2121-2222-+open Js_of_ocaml
2323-+
2424- (** Create a new tree of DOM nodes from a given XML tree.
2525- Errors are logged to the firebug console.
2626- @param doc Default is [Dom_html.document].
···37373838 patches = [ ./0001-Re-add-entrypoint.patch ];
3939 postPatch = ''
4040- sed -i -e '/alembic>/d' requirements.txt
4140 substituteInPlace requirements.txt \
4241 --replace "telethon>=1.22,<1.23" "telethon"
4342 '';
···6362 pycryptodome
6463 unpaddedbase64
6564 ]) ++ dbDrivers;
6666-6767- # `alembic` (a database migration tool) is only needed for the initial setup,
6868- # and not needed during the actual runtime. However `alembic` requires `mautrix-telegram`
6969- # in its environment to create a database schema from all models.
7070- #
7171- # Hence we need to patch away `alembic` from `mautrix-telegram` and create an `alembic`
7272- # which has `mautrix-telegram` in its environment.
7373- passthru.alembic = python.pkgs.alembic.overrideAttrs (old: {
7474- propagatedBuildInputs = old.propagatedBuildInputs ++ dbDrivers ++ [
7575- mautrix-telegram
7676- ];
7777- });
78657966 # Tests are broken and throw the following for every test:
8067 # TypeError: 'Mock' object is not subscriptable
···11-{ lib, stdenv, fetchurl, zlib, perl }:
11+{ lib, stdenv, fetchurl, zlib, perl, nixosTests }:
2233let
44 # check if we can execute binaries for the host platform on the build platform
···6161 checkTarget = "regress";
6262 checkInputs = [ perl ];
6363 preCheck = "patchShebangs --build regress/regress.pl";
6464+6565+ passthru.tests = {
6666+ nixos = nixosTests.man;
6767+ };
64686569 meta = with lib; {
6670 homepage = "https://mandoc.bsd.lv/";
+1-1
pkgs/tools/misc/miniserve/default.nix
···4141 description = "For when you really just want to serve some files over HTTP right now!";
4242 homepage = "https://github.com/svenstaro/miniserve";
4343 license = with licenses; [ mit ];
4444- maintainers = with maintainers; [ zowoq ];
4444+ maintainers = with maintainers; [ ];
4545 platforms = platforms.unix;
4646 };
4747}
+5-4
pkgs/tools/misc/vector/default.nix
···1414, coreutils
1515, CoreServices
1616, tzdata
1717+, cmake
1718 # kafka is optional but one of the most used features
1819, enableKafka ? true
1920 # TODO investigate adding "api" "api-client" "vrl-cli" and various "vendor-*"
···28292930let
3031 pname = "vector";
3131- version = "0.18.1";
3232+ version = "0.19.0";
3233in
3334rustPlatform.buildRustPackage {
3435 inherit pname version;
···3738 owner = "timberio";
3839 repo = pname;
3940 rev = "v${version}";
4040- sha256 = "sha256-OD7lYoTlQNdrWT1f+BAp6zI0N+9W2LOHNNgpvAMXKDM=";
4141+ sha256 = "sha256-A+Ok/BNEs0V00B8P6ghSHZ2pQ8tumfpkurplnvjpWZ8=";
4142 };
42434343- cargoSha256 = "sha256-BqnXXTNE1TmrF7pSOCQpnHHve0lCb9W6MbJXk2QHAOs=";
4444- nativeBuildInputs = [ pkg-config ];
4444+ cargoSha256 = "sha256-B9z+8TqAl0yFaou1LfNcFsDJjw7qGti6MakDPhz49tc=";
4545+ nativeBuildInputs = [ pkg-config cmake ];
4546 buildInputs = [ oniguruma openssl protobuf rdkafka zstd ]
4647 ++ lib.optionals stdenv.isDarwin [ Security libiconv coreutils CoreServices ];
4748
+3-3
pkgs/tools/misc/vial/default.nix
···11{ lib, fetchurl, appimageTools }:
22let
33 name = "vial-${version}";
44- version = "0.4.1";
44+ version = "0.4.2";
55 pname = "Vial";
6677 src = fetchurl {
88 url = "https://github.com/vial-kb/vial-gui/releases/download/v${version}/${pname}-v${version}-x86_64.AppImage";
99- sha256 = "sha256-aN0wvgahWPNSXP/JmV1JWaEnARIOTyRdz1ko6eC7Y5s=";
99+ sha256 = "sha256-T3aSwv/qTJHR/Fa6qU1fWbp3duvny4lC+9jBwQzpw2w=";
1010 };
11111212 appimageContents = appimageTools.extractType2 { inherit name src; };
···2424 '';
25252626 meta = with lib; {
2727- description = "An Open-source cross-platform (Windows, Linux and Mac) GUI and a QMK fork for configuring your keyboard in real time";
2727+ description = "An Open-source QMK GUI fork for configuring your keyboard in real time";
2828 homepage = "https://get.vial.today";
2929 license = licenses.gpl2Plus;
3030 maintainers = with maintainers; [ kranzes ];