···163163If `fetchSubmodules` is `true`, `fetchFromSourcehut` uses `fetchgit`
164164or `fetchhg` with `fetchSubmodules` or `fetchSubrepos` set to `true`,
165165respectively. Otherwise, the fetcher uses `fetchzip`.
166166+167167+## `requireFile` {#requirefile}
168168+169169+`requireFile` allows requesting files that cannot be fetched automatically, but whose content is known.
170170+This is a useful last-resort workaround for license restrictions that prohibit redistribution, or for downloads that are only accessible after authenticating interactively in a browser.
171171+If the requested file is present in the Nix store, the resulting derivation will not be built, because its expected output is already available.
172172+Otherwise, the builder will run, but fail with a message explaining to the user how to provide the file. The following code, for example:
173173+174174+```
175175+requireFile {
176176+ name = "jdk-${version}_linux-x64_bin.tar.gz";
177177+ url = "https://www.oracle.com/java/technologies/javase-jdk11-downloads.html";
178178+ sha256 = "94bd34f85ee38d3ef59e5289ec7450b9443b924c55625661fffe66b03f2c8de2";
179179+}
180180+```
181181+results in this error message:
182182+```
183183+***
184184+Unfortunately, we cannot download file jdk-11.0.10_linux-x64_bin.tar.gz automatically.
185185+Please go to https://www.oracle.com/java/technologies/javase-jdk11-downloads.html to download it yourself, and add it to the Nix store
186186+using either
187187+ nix-store --add-fixed sha256 jdk-11.0.10_linux-x64_bin.tar.gz
188188+or
189189+ nix-prefetch-url --type sha256 file:///path/to/jdk-11.0.10_linux-x64_bin.tar.gz
190190+191191+***
192192+```
···4455Man pages are written in [`mdoc(7)` format](https://mandoc.bsd.lv/man/mdoc.7.html) and should be portable between mandoc and groff for rendering (though minor differences may occur, mandoc and groff seem to have slightly different spacing rules.)
6677+For previewing edited files, you can just run `man -l path/to/file.8` and you will see it rendered.
88+79Being written in `mdoc` these manpages use semantic markup. This file provides a guideline on where to apply which of the semantic elements of `mdoc`.
810911### Command lines and arguments
+19-5
nixos/modules/programs/sway.nix
···2626 };
2727 };
28282929- swayPackage = pkgs.sway.override {
2929+ defaultSwayPackage = pkgs.sway.override {
3030 extraSessionCommands = cfg.extraSessionCommands;
3131 extraOptions = cfg.extraOptions;
3232 withBaseWrapper = cfg.wrapperFeatures.base;
···4141 ~/.config/sway/config to modify the default configuration. See
4242 <https://github.com/swaywm/sway/wiki> and
4343 "man 5 sway" for more information'');
4444+4545+ package = mkOption {
4646+ type = with types; nullOr package;
4747+ default = defaultSwayPackage;
4848+ defaultText = literalExpression "pkgs.sway";
4949+ description = lib.mdDoc ''
5050+ Sway package to use. Will override the options
5151+ 'wrapperFeatures', 'extraSessionCommands', and 'extraOptions'.
5252+ Set to <code>null</code> to not add any Sway package to your
5353+ path. This should be done if you want to use the Home Manager Sway
5454+ module to install Sway.
5555+ '';
5656+ };
44574558 wrapperFeatures = mkOption {
4659 type = wrapperOptions;
···121134 }
122135 ];
123136 environment = {
124124- systemPackages = [ swayPackage ] ++ cfg.extraPackages;
137137+ systemPackages = optional (cfg.package != null) cfg.package ++ cfg.extraPackages;
125138 # Needed for the default wallpaper:
126126- pathsToLink = [ "/share/backgrounds/sway" ];
139139+ pathsToLink = optionals (cfg.package != null) [ "/share/backgrounds/sway" ];
127140 etc = {
128128- "sway/config".source = mkOptionDefault "${swayPackage}/etc/sway/config";
129141 "sway/config.d/nixos.conf".source = pkgs.writeText "nixos.conf" ''
130142 # Import the most important environment variables into the D-Bus and systemd
131143 # user environments (e.g. required for screen sharing and Pinentry prompts):
132144 exec dbus-update-activation-environment --systemd DISPLAY WAYLAND_DISPLAY SWAYSOCK XDG_CURRENT_DESKTOP
133145 '';
146146+ } // optionalAttrs (cfg.package != null) {
147147+ "sway/config".source = mkOptionDefault "${cfg.package}/etc/sway/config";
134148 };
135149 };
136150 security.polkit.enable = true;
···139153 fonts.enableDefaultFonts = mkDefault true;
140154 programs.dconf.enable = mkDefault true;
141155 # To make a Sway session available if a display manager like SDDM is enabled:
142142- services.xserver.displayManager.sessionPackages = [ swayPackage ];
156156+ services.xserver.displayManager.sessionPackages = optionals (cfg.package != null) [ cfg.package ];
143157 programs.xwayland.enable = mkDefault true;
144158 # For screen sharing (this option only has an effect with xdg.portal.enable):
145159 xdg.portal.extraPortals = [ pkgs.xdg-desktop-portal-wlr ];
···304304 forceSSL = cfg.singleNode.enableTLS;
305305 locations."/" = {
306306 proxyPass = "http://127.0.0.1:${toString cfg.settings.port}";
307307+ # We need to pass the Host header that matches the original Host header. Otherwise,
308308+ # Hawk authentication will fail (because it assumes that the client and server see
309309+ # the same value of the Host header).
310310+ recommendedProxySettings = true;
307311 };
308312 };
309313 };
···4455let
66 pkgDescription = "A digital logic designer and circuit simulator.";
77- version = "0.29";
88- buildDate = "2022-02-11T18:10:34+01:00"; # v0.29 commit date
77+ version = "0.30";
88+ buildDate = "2023-02-03T08:00:56+01:00"; # v0.30 commit date
991010 desktopItem = makeDesktopItem {
1111 type = "Application";
···2424 # inspect the .git folder to find the version number we are building, we then
2525 # provide that version number manually as a property.
2626 # (see https://github.com/hneemann/Digital/issues/289#issuecomment-513721481)
2727- mvnOptions = "-Pno-git-rev -Dgit.commit.id.describe=${version} -Dproject.build.outputTimestamp=${buildDate}";
2727+ # Also use the commit date as a build and output timestamp.
2828+ mvnOptions = "-Pno-git-rev -Dgit.commit.id.describe=${version} -Dproject.build.outputTimestamp=${buildDate} -DbuildTimestamp=${buildDate}";
2829in
2930stdenv.mkDerivation rec {
3031 pname = "digital";
···3334 src = fetchFromGitHub {
3435 owner = "hneemann";
3536 repo = "Digital";
3636- rev = "287dd939d6f2d4d02c0d883c6178c3425c28d39c";
3737- sha256 = "o5gaExUTTbk6WgQVw7/IeXhpNkj1BLkwD752snQqjIg=";
3737+ rev = "932791eb6486d04f2ea938d83bcdb71b56d3a3f6";
3838+ sha256 = "cDykYlcFvDLFBy9UnX07iCR2LCq28SNU+h9vRT/AoJM=";
3839 };
39404040- # Use fixed dates in the pom.xml and upgrade the jar and assembly plugins to
4141- # a version where they support reproducible builds
4242- patches = [ ./pom.xml.patch ];
4343-4441 # Fetching maven dependencies from "central" needs the network at build phase,
4542 # we do that in this extra derivation that explicitely specifies its
4643 # outputHash to ensure determinism.
4744 mavenDeps = stdenv.mkDerivation {
4845 name = "${pname}-${version}-maven-deps";
4949- inherit src nativeBuildInputs version patches postPatch;
4646+ inherit src nativeBuildInputs version;
5047 dontFixup = true;
5148 buildPhase = ''
5249 mvn package ${mvnOptions} -Dmaven.repo.local=$out
···6259 '';
6360 outputHashAlgo = "sha256";
6461 outputHashMode = "recursive";
6565- outputHash = "X5ppGUVwNQrMnjzD4Kin1Xmt4O3x+qr7jK4jr6E8tCI=";
6262+ outputHash = "1Cgw+5V2E/RENMRMm368+2yvY7y6v9gTlo+LRgrCXcE=";
6663 };
67646865 nativeBuildInputs = [ copyDesktopItems maven makeWrapper ];
6969-7070- postPatch = ''
7171- substituteInPlace pom.xml --subst-var-by buildDate "${buildDate}"
7272- '';
73667467 buildPhase = ''
7568 mvn package --offline ${mvnOptions} -Dmaven.repo.local=${mavenDeps}
···1414}:
15151616let
1717- version = "1.17.2";
1717+ version = "1.17.3";
1818 # Using two URLs as the first one will break as soon as a new version is released
1919 src_bin = fetchurl {
2020 urls = [
2121 "http://www.makemkv.com/download/makemkv-bin-${version}.tar.gz"
2222 "http://www.makemkv.com/download/old/makemkv-bin-${version}.tar.gz"
2323 ];
2424- sha256 = "sha256-gACMzJ7oZCk/INSeJaV7GnF9hy/6F9d0QDLp5jPiF4k=";
2424+ sha256 = "1cd633bfb381faa4f22ab57f6b75053c1b18997c223ed7988896c8c15cd1bee0";
2525 };
2626 src_oss = fetchurl {
2727 urls = [
2828 "http://www.makemkv.com/download/makemkv-oss-${version}.tar.gz"
2929 "http://www.makemkv.com/download/old/makemkv-oss-${version}.tar.gz"
3030 ];
3131- sha256 = "sha256-qD+Kuz8j3vDch4PlNQYqdbffL3YSKRqKg6IfkLk/LaQ=";
3131+ sha256 = "16be3ee29c1dd3d5292f793e9f5efbcd30a59bf035de79586e9afbfa98a6a4cb";
3232 };
33333434in mkDerivation {
+4-2
pkgs/build-support/fetchmavenartifact/default.nix
···4343 (lib.replaceStrings ["."] ["_"] artifactId) "-"
4444 version
4545 ];
4646+ suffix = if isNull classifier then "" else "-${classifier}";
4747+ filename = "${artifactId}-${version}${suffix}.jar";
4648 mkJarUrl = repoUrl:
4749 lib.concatStringsSep "/" [
4850 (lib.removeSuffix "/" repoUrl)
4951 (lib.replaceStrings ["."] ["/"] groupId)
5052 artifactId
5153 version
5252- "${artifactId}-${version}${lib.optionalString (!isNull classifier) "-${classifier}"}.jar"
5454+ filename
5355 ];
5456 urls_ =
5557 if url != "" then [url]
···6870 # packages packages that mention this derivation in their buildInputs.
6971 installPhase = ''
7072 mkdir -p $out/share/java
7171- ln -s ${jar} $out/share/java/${artifactId}-${version}.jar
7373+ ln -s ${jar} $out/share/java/${filename}
7274 '';
7375 # We also add a `jar` attribute that can be used to easily obtain the path
7476 # to the downloaded jar file.
+2-2
pkgs/build-support/trivial-builders.nix
···509509 ''
510510 mkdir -p $out
511511 for i in $(cat $pathsPath); do
512512- ${lndir}/bin/lndir -silent $i $out
513513- done
512512+ ${lndir}/bin/lndir $i $out
513513+ done 2>&1 | sed 's/^/symlinkJoin: warning: keeping existing file: /'
514514 ${postBuild}
515515 '';
516516
+36
pkgs/data/fonts/blackout/default.nix
···11+{ lib, fetchFromGitHub, stdenvNoCC }:
22+33+stdenvNoCC.mkDerivation (self: {
44+ pname = "blackout";
55+ version = "2014-07-29";
66+77+ src = fetchFromGitHub {
88+ owner = "theleagueof";
99+ repo = self.pname;
1010+ rev = "4864cfc1749590e9f78549c6e57116fe98480c0f";
1111+ hash = "sha256-UmJVmtuPQYW/w+mdnJw9Ql4R1xf/07l+/Ky1wX9WKqw=";
1212+ };
1313+1414+ installPhase = ''
1515+ runHook preInstall
1616+1717+ install -D -m444 -t $out/share/fonts/truetype $src/*.ttf
1818+1919+ runHook postInstall
2020+ '';
2121+2222+ meta = {
2323+ description = "A bad-ass, unholy-mother-shut-your-mouth stencil sans-serif";
2424+ longDescription = ''
2525+ Eats holes for breakfast lunch and dinner. Inspired by filling in
2626+ sans-serif newspaper headlines. Continually updated with coffee and
2727+ music. Makes your work louder than the next person’s.
2828+2929+ Comes in three styles: Midnight (solid), 2AM (reversed), & Sunrise
3030+ (stroked).
3131+ '';
3232+ homepage = "https://www.theleagueofmoveabletype.com/blackout";
3333+ license = lib.licenses.ofl;
3434+ maintainers = with lib.maintainers; [ minijackson ];
3535+ };
3636+})
+38
pkgs/data/fonts/chunk/default.nix
···11+{ lib, fetchFromGitHub, stdenvNoCC }:
22+33+stdenvNoCC.mkDerivation (self: {
44+ pname = "chunk";
55+ version = "2021-03-03";
66+77+ src = fetchFromGitHub {
88+ owner = "theleagueof";
99+ repo = self.pname;
1010+ rev = "12a243f3fb7c7a68844901023f7d95d6eaf14104";
1111+ hash = "sha256-NMkRvrUgy9yzOT3a1rN6Ch/p8Cr902CwL4G0w7jVm1E=";
1212+ };
1313+1414+ installPhase = ''
1515+ runHook preInstall
1616+1717+ install -D -m444 -t $out/share/fonts/truetype $src/*.ttf
1818+ install -D -m444 -t $out/share/fonts/opentype $src/*.otf
1919+2020+ runHook postInstall
2121+ '';
2222+2323+ meta = {
2424+ description = "An ultra-bold, ultra-awesome slab serif typeface";
2525+ longDescription = ''
2626+ Chunk is an ultra-bold slab serif typeface that is reminiscent of old
2727+ American Western woodcuts, broadsides, and newspaper headlines. Used
2828+ mainly for display, the fat block lettering is unreserved yet refined for
2929+ contemporary use.
3030+3131+ In 2014, a new textured style was created by Tyler Finck called Chunk
3232+ Five Print. It contains the same glyphs as the original.
3333+ '';
3434+ homepage = "https://www.theleagueofmoveabletype.com/chunk";
3535+ license = lib.licenses.ofl;
3636+ maintainers = with lib.maintainers; [ minijackson ];
3737+ };
3838+})
+32
pkgs/data/fonts/fanwood/default.nix
···11+{ lib, fetchFromGitHub, stdenvNoCC }:
22+33+stdenvNoCC.mkDerivation (self: {
44+ pname = "fanwood";
55+ version = "2011-05-11";
66+77+ src = fetchFromGitHub {
88+ owner = "theleagueof";
99+ repo = self.pname;
1010+ rev = "cbaaed9704e7d37d3dcdbdf0b472e9efd0e39432";
1111+ hash = "sha256-OroFhhb4RxPHkx+/8PtFnxs1GQVXMPiYTd+2vnRbIjg=";
1212+ };
1313+1414+ installPhase = ''
1515+ runHook preInstall
1616+1717+ install -D -m444 -t $out/share/fonts/opentype $src/*.otf
1818+1919+ runHook postInstall
2020+ '';
2121+2222+ meta = {
2323+ description = "A serif based on the work of a famous Czech-American type designer of yesteryear";
2424+ longDescription = ''
2525+ Based on work of a famous Czech-American type designer of yesteryear. The
2626+ package includes roman and italic.
2727+ '';
2828+ homepage = "https://www.theleagueofmoveabletype.com/fanwood";
2929+ license = lib.licenses.ofl;
3030+ maintainers = with lib.maintainers; [ minijackson ];
3131+ };
3232+})
···11+{ lib, fetchzip, stdenvNoCC }:
22+33+stdenvNoCC.mkDerivation (self: {
44+ pname = "league-gothic";
55+ version = "1.601";
66+77+ src = fetchzip {
88+ url = "https://github.com/theleagueof/league-gothic/releases/download/${self.version}/LeagueGothic-${self.version}.tar.xz";
99+ hash = "sha256-emkXKyQw4R0Zgg02oJsvBkqV0jmczP0tF0K2IKqJHMA=";
1010+ };
1111+1212+ installPhase = ''
1313+ runHook preInstall
1414+1515+ install -D -m444 -t $out/share/fonts/truetype $src/static/TTF/*.ttf
1616+ install -D -m444 -t $out/share/fonts/opentype $src/static/OTF/*.otf
1717+1818+ runHook postInstall
1919+ '';
2020+2121+ meta = {
2222+ description = "A revival of an old classic, Alternate Gothic #1";
2323+ longDescription = ''
2424+ League Gothic is a revival of an old classic, and one of our favorite
2525+ typefaces, Alternate Gothic #1. It was originally designed by Morris
2626+ Fuller Benton for the American Type Founders Company in 1903. The company
2727+ went bankrupt in 1993, and since the original typeface was created before
2828+ 1923, the typeface is in the public domain.
2929+3030+ We decided to make our own version, and contribute it to the Open Source
3131+ Type Movement. Thanks to a commission from the fine & patient folks over
3232+ at WND.com, it’s been revised & updated with contributions from Micah
3333+ Rich, Tyler Finck, and Dannci, who contributed extra glyphs.
3434+ '';
3535+ homepage = "https://www.theleagueofmoveabletype.com/league-gothic";
3636+ license = lib.licenses.ofl;
3737+ maintainers = with lib.maintainers; [ minijackson ];
3838+ };
3939+})
···11-#!/usr/bin/env bash
22-33-SITE=https://www.theleagueofmoveabletype.com
44-55-# since there is no nice way to get all the fonts,
66-# this fetches the homepage and extracts their names from the html …
77-fonts=$(curl "$SITE" 2>/dev/null | \
88- sed -ne 's/<img.*cloudfront.*images\/\(.*\)-[[:digit:]-]\..*$/\1/p')
99-1010-# build an ad-hoc nixexpr list with the files & hashes
1111-echo "["
1212-for f in $fonts; do
1313- url="$SITE/$f/download"
1414- hash=$(nix-prefetch-url --type sha256 "$url" 2>/dev/null)
1515- cat <<EOF
1616- {
1717- url = "$url";
1818- sha256 = "$hash";
1919- name = "$f.zip";
2020- }
2121-EOF
2222-done
2323-echo "]"
2424-2525-
···11+{ lib, fetchFromGitHub, stdenvNoCC }:
22+33+stdenvNoCC.mkDerivation (self: {
44+ pname = "league-script-number-one";
55+ version = "2011-05-25";
66+77+ src = fetchFromGitHub {
88+ owner = "theleagueof";
99+ repo = self.pname;
1010+ rev = "225add0b37cf8268759ba4572e02630d9fb54ecf";
1111+ hash = "sha256-Z3Zrp0Os3On0tESVical1Qh6wY1H2Hc0OPTlkbtsrCI=";
1212+ };
1313+1414+ installPhase = ''
1515+ runHook preInstall
1616+1717+ install -D -m444 -t $out/share/fonts/opentype $src/*.otf
1818+1919+ runHook postInstall
2020+ '';
2121+2222+ meta = {
2323+ description = "A modern, coquettish script font";
2424+ longDescription = ''
2525+ This ain’t no Lucinda. League Script #1 is a modern, coquettish script
2626+ font that sits somewhere between your high school girlfriend’s love notes
2727+ and handwritten letters from the ’20s. Designed exclusively for the
2828+ League of Moveable Type, it includes ligatures and will act as the
2929+ framework for future script designs.
3030+ '';
3131+ homepage = "https://www.theleagueofmoveabletype.com/league-script";
3232+ license = lib.licenses.ofl;
3333+ maintainers = with lib.maintainers; [ minijackson ];
3434+ };
3535+})
+40
pkgs/data/fonts/league-spartan/default.nix
···11+{ lib, fetchzip, stdenvNoCC }:
22+33+stdenvNoCC.mkDerivation (self: {
44+ pname = "league-spartan";
55+ version = "2.220";
66+77+ src = fetchzip {
88+ url = "https://github.com/theleagueof/league-spartan/releases/download/${self.version}/LeagueSpartan-${self.version}.tar.xz";
99+ hash = "sha256-dkvWRYli8vk+E0DkZ2NWCJKfSfdo4jEcGo0puQpFVVc=";
1010+ };
1111+1212+ installPhase = ''
1313+ runHook preInstall
1414+1515+ install -D -m444 -t $out/share/fonts/truetype $src/static/TTF/*.ttf
1616+ install -D -m444 -t $out/share/fonts/opentype $src/static/OTF/*.otf
1717+1818+ runHook postInstall
1919+ '';
2020+2121+ meta = {
2222+ description = "A fantastic new revival of ATF's classic Spartan, a geometric sans-serif that has no problem kicking its enemies in the chest.";
2323+ longDescription = ''
2424+ A new classic, this is a bold, modern, geometric sans-serif that has no
2525+ problem kicking its enemies in the chest.
2626+2727+ Taking a strong influence from ATF's classic Spartan family, we're
2828+ starting our own family out with a single strong weight. We've put a few
2929+ unique touches into a beautiful, historical typeface, and made sure to
3030+ include an extensive characterset – currently totaling over 300 glyphs.
3131+3232+ Over time, the open-source license will allow us expand League Spartan
3333+ into a full family, with multiple weights and styles, and we're starting
3434+ by releasing our first Bold style for this exciting, modern classic now.
3535+ '';
3636+ homepage = "https://www.theleagueofmoveabletype.com/league-spartan";
3737+ license = lib.licenses.ofl;
3838+ maintainers = with lib.maintainers; [ minijackson ];
3939+ };
4040+})
+32
pkgs/data/fonts/linden-hill/default.nix
···11+{ lib, fetchFromGitHub, stdenvNoCC }:
22+33+stdenvNoCC.mkDerivation (self: {
44+ pname = "linden-hill";
55+ version = "2011-05-25";
66+77+ src = fetchFromGitHub {
88+ owner = "theleagueof";
99+ repo = self.pname;
1010+ rev = "a3f7ae6c4cac1b7e5ce5269e1fcc6a2fbb9e31ee";
1111+ hash = "sha256-EjXcLjzVQeOJgLxGua8t0oMc+APOsONGGpG6VJVCgFw=";
1212+ };
1313+1414+ installPhase = ''
1515+ runHook preInstall
1616+1717+ install -D -m444 -t $out/share/fonts/opentype $src/*.otf
1818+1919+ runHook postInstall
2020+ '';
2121+2222+ meta = {
2323+ description = "A digital version of Frederic Goudy’s Deepdene";
2424+ longDescription = ''
2525+ Linden Hill is a digital version of Frederic Goudy’s Deepdene. The
2626+ package includes roman and italic.
2727+ '';
2828+ homepage = "https://www.theleagueofmoveabletype.com/linden-hill";
2929+ license = lib.licenses.ofl;
3030+ maintainers = with lib.maintainers; [ minijackson ];
3131+ };
3232+})
···11+{ lib, fetchFromGitHub, stdenvNoCC }:
22+33+stdenvNoCC.mkDerivation (self: {
44+ pname = "ostrich-sans";
55+ version = "2014-04-18";
66+77+ src = fetchFromGitHub {
88+ owner = "theleagueof";
99+ repo = self.pname;
1010+ rev = "a949d40d0576d12ba26e2a45e19c91fd0228c964";
1111+ hash = "sha256-vvTNtl+fO2zWooH1EvCmO/dPYYgCkj8Ckg5xfg1gtnw=";
1212+ };
1313+1414+ installPhase = ''
1515+ runHook preInstall
1616+1717+ install -D -m444 -t $out/share/fonts/opentype $src/*.otf
1818+1919+ runHook postInstall
2020+ '';
2121+2222+ meta = {
2323+ description = "A gorgeous modern sans-serif with a very long neck";
2424+ longDescription = ''
2525+ A gorgeous modern sans-serif with a very long neck. With a whole slew of
2626+ styles & weights.
2727+ '';
2828+ homepage = "https://www.theleagueofmoveabletype.com/ostrich-sans";
2929+ license = lib.licenses.ofl;
3030+ maintainers = with lib.maintainers; [ minijackson ];
3131+ };
3232+})
+34
pkgs/data/fonts/prociono/default.nix
···11+{ lib, fetchFromGitHub, stdenvNoCC }:
22+33+stdenvNoCC.mkDerivation (self: {
44+ pname = "prociono";
55+ version = "2011-05-25";
66+77+ src = fetchFromGitHub {
88+ owner = "theleagueof";
99+ repo = self.pname;
1010+ rev = "f9d9680de6d6f0c13939f23c9dd14cd7853cf844";
1111+ hash = "sha256-gC5E0Z0O2cnthoBEu+UOQLsr3/a/3/JPIx3WCPsXXtk=";
1212+ };
1313+1414+ installPhase = ''
1515+ runHook preInstall
1616+1717+ install -D -m444 -t $out/share/fonts/truetype $src/*.ttf
1818+ install -D -m444 -t $out/share/fonts/opentype $src/*.otf
1919+2020+ runHook postInstall
2121+ '';
2222+2323+ meta = {
2424+ description = "A roman serif with blackletter elements";
2525+ longDescription = ''
2626+ "Prociono" (pro-tsee-O-no) is an Esperanto word meaning either the star
2727+ Procyon or the animal species known as the raccoon. It is a roman serif
2828+ with blackletter elements.
2929+ '';
3030+ homepage = "https://www.theleagueofmoveabletype.com/prociono";
3131+ license = lib.licenses.ofl;
3232+ maintainers = with lib.maintainers; [ minijackson ];
3333+ };
3434+})
+17-21
pkgs/data/fonts/raleway/default.nix
···11-{ lib, stdenvNoCC, fetchFromGitHub }:
11+{ lib, fetchzip, stdenvNoCC }:
2233-stdenvNoCC.mkDerivation {
33+stdenvNoCC.mkDerivation (self: {
44 pname = "raleway";
55- version = "2016-08-30";
55+ version = "4.101";
6677- src = fetchFromGitHub {
88- owner = "impallari";
99- repo = "Raleway";
1010- rev = "fa27f47b087fc093c6ae11cfdeb3999ac602929a";
1111- hash = "sha256-mcIpE+iqG6M43I5TT95oV+5kNgphunmyxC+Jaj0JysQ=";
77+ src = fetchzip {
88+ url = "https://github.com/theleagueof/raleway/releases/download/${self.version}/Raleway-${self.version}.tar.xz";
99+ hash = "sha256-itNHIMoRjiaqYAJoDNetkCquv47VAfel8MAzwsd//Ww=";
1210 };
13111412 installPhase = ''
1513 runHook preInstall
16141717- find . -name "*-Original.otf" -exec install -Dt $out/share/fonts/opentype {} \;
1515+ install -D -m444 -t $out/share/fonts/truetype $src/static/TTF/*.ttf
1616+ install -D -m444 -t $out/share/fonts/opentype $src/static/OTF/*.otf
18171918 runHook postInstall
2019 '';
21202221 meta = {
2322 description = "Raleway is an elegant sans-serif typeface family";
2424-2523 longDescription = ''
2624 Initially designed by Matt McInerney as a single thin weight, it was
2725 expanded into a 9 weight family by Pablo Impallari and Rodrigo Fuenzalida
2828- in 2012 and iKerned by Igino Marini. In 2013 the Italics where added.
2626+ in 2012 and iKerned by Igino Marini. In 2013 the Italics where added, and
2727+ most recently — a variable version.
29283030- It is a display face and the download features both old style and lining
3131- numerals, standard and discretionary ligatures, a pretty complete set of
3232- diacritics, as well as a stylistic alternate inspired by more geometric
3333- sans-serif typefaces than its neo-grotesque inspired default character
3434- set.
2929+ It features both old style and lining numerals, standard and
3030+ discretionary ligatures, a pretty complete set of diacritics, as well as
3131+ a stylistic alternate inspired by more geometric sans-serif typefaces
3232+ than its neo-grotesque inspired default character set.
35333634 It also has a sister display family, Raleway Dots.
3735 '';
3838-3939- homepage = "https://github.com/impallari/Raleway";
3636+ homepage = "https://www.theleagueofmoveabletype.com/raleway";
4037 license = lib.licenses.ofl;
4141-4242- maintainers = with lib.maintainers; [ Profpatsch ];
3838+ maintainers = with lib.maintainers; [ minijackson Profpatsch ];
4339 };
4444-}
4040+})
+33
pkgs/data/fonts/sniglet/default.nix
···11+{ lib, fetchFromGitHub, stdenvNoCC }:
22+33+stdenvNoCC.mkDerivation (self: {
44+ pname = "sniglet";
55+ version = "2011-05-25";
66+77+ src = fetchFromGitHub {
88+ owner = "theleagueof";
99+ repo = self.pname;
1010+ rev = "5c6b0860bdd0d8c4f16222e4de3918c384db17c4";
1111+ hash = "sha256-fLT2hZT9o1Ka30EB/6oWwmalhVJ+swXLRFG99yRWd2c=";
1212+ };
1313+1414+ installPhase = ''
1515+ runHook preInstall
1616+1717+ install -D -m444 -t $out/share/fonts/truetype $src/*.ttf
1818+ install -D -m444 -t $out/share/fonts/opentype $src/*.otf
1919+2020+ runHook postInstall
2121+ '';
2222+2323+ meta = {
2424+ description = "A fun rounded display face that’s great for headlines";
2525+ longDescription = ''
2626+ A rounded display face that’s great for headlines. It comes with a full
2727+ character set, so you can type in Icelandic or even French!
2828+ '';
2929+ homepage = "https://www.theleagueofmoveabletype.com/sniglet";
3030+ license = lib.licenses.ofl;
3131+ maintainers = with lib.maintainers; [ minijackson ];
3232+ };
3333+})
+36
pkgs/data/fonts/sorts-mill-goudy/default.nix
···11+{ lib, fetchFromGitHub, stdenvNoCC }:
22+33+stdenvNoCC.mkDerivation (self: {
44+ pname = "sorts-mill-goudy";
55+ version = "2011-05-25";
66+77+ src = fetchFromGitHub {
88+ owner = "theleagueof";
99+ repo = self.pname;
1010+ rev = "06072890c7b05f274215a24f17449655ccb2c8af";
1111+ hash = "sha256-NEfLBJatUmdUL5gJEimJHZfOd1OtI7pxTN97eWMODyM=";
1212+ };
1313+1414+ installPhase = ''
1515+ runHook preInstall
1616+1717+ install -D -m444 -t $out/share/fonts/truetype $src/*.ttf
1818+ install -D -m444 -t $out/share/fonts/opentype $src/*.otf
1919+2020+ runHook postInstall
2121+ '';
2222+2323+ meta = {
2424+ description = "A ‘revival’ of Goudy Oldstyle and Italic";
2525+ longDescription = ''
2626+ A 'revival' of Goudy Oldstyle and Italic, with features including small
2727+ capitals (in the roman only), oldstyle and lining figures, superscripts
2828+ and subscripts, fractions, ligatures, class-based kerning, case-sensitive
2929+ forms, and capital spacing. There is support for many languages using
3030+ latin scripts.
3131+ '';
3232+ homepage = "https://www.theleagueofmoveabletype.com/sorts-mill-goudy";
3333+ license = lib.licenses.ofl;
3434+ maintainers = with lib.maintainers; [ minijackson ];
3535+ };
3636+})
+33
pkgs/data/fonts/the-neue-black/default.nix
···11+{ lib, fetchzip, stdenvNoCC }:
22+33+stdenvNoCC.mkDerivation (self: {
44+ pname = "the-neue-black";
55+ version = "1.007";
66+77+ src = fetchzip {
88+ url = "https://github.com/theleagueof/the-neue-black/releases/download/${self.version}/TheNeueBlack-${self.version}.tar.xz";
99+ hash = "sha256-AsB6w1000xdl+pOPDXqqzQhru1T/VD0hIJ4gFec7mU4=";
1010+ };
1111+1212+ installPhase = ''
1313+ runHook preInstall
1414+1515+ install -D -m444 -t $out/share/fonts/truetype $src/static/TTF/*.ttf
1616+ install -D -m444 -t $out/share/fonts/opentype $src/static/OTF/*.otf
1717+1818+ runHook postInstall
1919+ '';
2020+2121+ meta = {
2222+ description = "Tré Seals’ first open-source font, a typeface based on the Chicago Freedom Movement";
2323+ longDescription = ''
2424+ The open-source release of The Neue Black is in partnership with designer
2525+ Tré Seals of Vocal Type Co. The Neue Black is a display sans serif with a
2626+ robust character set that has over 25 ligatures and various inktrap
2727+ alternates.
2828+ '';
2929+ homepage = "https://www.theleagueofmoveabletype.com/the-neue-black";
3030+ license = lib.licenses.ofl;
3131+ maintainers = with lib.maintainers; [ minijackson ];
3232+ };
3333+})
···2020 ]
2121 },
2222 "contacts": {
2323- "sha256": "1996f97w74slmh7ihv8p1lxl32rri5nnzp90mbb1imclpgac2i63",
2424- "url": "https://github.com/nextcloud-releases/contacts/releases/download/v4.2.4/contacts-v4.2.4.tar.gz",
2525- "version": "4.2.4",
2323+ "sha256": "0qv3c7wmf9j74562xbjvhk6kbpna6ansiw3724dh4w8j5sldqysd",
2424+ "url": "https://github.com/nextcloud-releases/contacts/releases/download/v4.2.3/contacts-v4.2.3.tar.gz",
2525+ "version": "4.2.3",
2626 "description": "The Nextcloud contacts app is a user interface for Nextcloud's CardDAV server. Easily sync contacts from various devices with your Nextcloud and edit them online.\n\n* 🚀 **Integration with other Nextcloud apps!** Currently Mail and Calendar – more to come.\n* 🎉 **Never forget a birthday!** You can sync birthdays and other recurring events with your Nextcloud Calendar.\n* 👥 **Sharing of Adressbooks!** You want to share your contacts with your friends or coworkers? No problem!\n* 🙈 **We’re not reinventing the wheel!** Based on the great and open SabreDAV library.",
2727 "homepage": "https://github.com/nextcloud/contacts#readme",
2828 "licenses": [
···110110 ]
111111 },
112112 "news": {
113113- "sha256": "0iz1yrl7h60yhc1d1gkalkzc5vlj8sq6lff0ggns6a6qpsdpn9c5",
114114- "url": "https://github.com/nextcloud/news/releases/download/20.0.1/news.tar.gz",
115115- "version": "20.0.1",
113113+ "sha256": "0pnriarr2iqci2v2hn6vpvszf4m4pkcxsd2i13bp7n1zqkg6swd7",
114114+ "url": "https://github.com/nextcloud/news/releases/download/20.0.0/news.tar.gz",
115115+ "version": "20.0.0",
116116 "description": "📰 A RSS/Atom Feed reader App for Nextcloud\n\n- 📲 Synchronize your feeds with multiple mobile or desktop [clients](https://nextcloud.github.io/news/clients/)\n- 🔄 Automatic updates of your news feeds\n- 🆓 Free and open source under AGPLv3, no ads or premium functions\n\n**System Cron is currently required for this app to work**\n\nRequirements can be found [here](https://nextcloud.github.io/news/install/#dependencies)\n\nThe Changelog is available [here](https://github.com/nextcloud/news/blob/master/CHANGELOG.md)\n\nCreate a [bug report](https://github.com/nextcloud/news/issues/new/choose)\n\nCreate a [feature request](https://github.com/nextcloud/news/discussions/new)\n\nReport a [feed issue](https://github.com/nextcloud/news/discussions/new)",
117117 "homepage": "https://github.com/nextcloud/news",
118118 "licenses": [
···140140 ]
141141 },
142142 "polls": {
143143- "sha256": "0qdm0hnljkv0df1s929awyjj1gsp3d6xv9llr52cxv66kkfx086y",
144144- "url": "https://github.com/nextcloud/polls/releases/download/v3.8.4/polls.tar.gz",
145145- "version": "3.8.4",
143143+ "sha256": "b6ef0e8b34cdb5169341e30340bc9cefaa1254a1a6020e951f86e828f8591a11",
144144+ "url": "https://github.com/nextcloud/polls/releases/download/v3.8.3/polls.tar.gz",
145145+ "version": "3.8.3",
146146 "description": "A polls app, similar to Doodle/Dudle with the possibility to restrict access (members, certain groups/users, hidden and public).",
147147 "homepage": "https://github.com/nextcloud/polls",
148148 "licenses": [
···160160 ]
161161 },
162162 "spreed": {
163163- "sha256": "0c5b46g5vi8fsjcd2r0wqza7iqyvbgznwww5zcyajf29a32950c6",
164164- "url": "https://github.com/nextcloud-releases/spreed/releases/download/v14.0.8/spreed-v14.0.8.tar.gz",
165165- "version": "14.0.8",
163163+ "sha256": "0frilxny4mvp34fxw0k8al3r5apy3q6vq7z35jkph3vaq1889m9k",
164164+ "url": "https://github.com/nextcloud-releases/spreed/releases/download/v14.0.7/spreed-v14.0.7.tar.gz",
165165+ "version": "14.0.7",
166166 "description": "Chat, video & audio-conferencing using WebRTC\n\n* 💬 **Chat integration!** Nextcloud Talk comes with a simple text chat. Allowing you to share files from your Nextcloud and mentioning other participants.\n* 👥 **Private, group, public and password protected calls!** Just invite somebody, a whole group or send a public link to invite to a call.\n* 💻 **Screen sharing!** Share your screen with participants of your call. You just need to use Firefox version 66 (or newer), latest Edge or Chrome 72 (or newer, also possible using Chrome 49 with this [Chrome extension](https://chrome.google.com/webstore/detail/screensharing-for-nextclo/kepnpjhambipllfmgmbapncekcmabkol)).\n* 🚀 **Integration with other Nextcloud apps** like Files, Contacts and Deck. More to come.\n\nAnd in the works for the [coming versions](https://github.com/nextcloud/spreed/milestones/):\n* ✋ [Federated calls](https://github.com/nextcloud/spreed/issues/21), to call people on other Nextclouds",
167167 "homepage": "https://github.com/nextcloud/spreed",
168168 "licenses": [
+15-15
pkgs/servers/nextcloud/packages/25.json
···1010 ]
1111 },
1212 "calendar": {
1313- "sha256": "0yqpfp5nbzd7zar2rbcx3bhfgjxrp1sy6a57fdagndfi4y0r56hq",
1414- "url": "https://github.com/nextcloud-releases/calendar/releases/download/v4.2.2/calendar-v4.2.2.tar.gz",
1515- "version": "4.2.2",
1313+ "sha256": "04g1xm3q46j7harxr0n56r7kkkqjxvah7xijddyq5fj7icr6qf5d",
1414+ "url": "https://github.com/nextcloud-releases/calendar/releases/download/v4.2.1/calendar-v4.2.1.tar.gz",
1515+ "version": "4.2.1",
1616 "description": "The Calendar app is a user interface for Nextcloud's CalDAV server. Easily sync events from various devices with your Nextcloud and edit them online.\n\n* 🚀 **Integration with other Nextcloud apps!** Currently Contacts - more to come.\n* 🌐 **WebCal Support!** Want to see your favorite team’s matchdays in your calendar? No problem!\n* 🙋 **Attendees!** Invite people to your events\n* ⌚️ **Free/Busy!** See when your attendees are available to meet\n* ⏰ **Reminders!** Get alarms for events inside your browser and via email\n* 🔍 Search! Find your events at ease\n* ☑️ Tasks! See tasks with a due date directly in the calendar\n* 🙈 **We’re not reinventing the wheel!** Based on the great [c-dav library](https://github.com/nextcloud/cdav-library), [ical.js](https://github.com/mozilla-comm/ical.js) and [fullcalendar](https://github.com/fullcalendar/fullcalendar) libraries.",
1717 "homepage": "https://github.com/nextcloud/calendar/",
1818 "licenses": [
···2020 ]
2121 },
2222 "contacts": {
2323- "sha256": "181lycyz4v7v1yir6ylmblgha625sn23nf3661g3izq1whi0wgr9",
2424- "url": "https://github.com/nextcloud-releases/contacts/releases/download/v5.0.3/contacts-v5.0.3.tar.gz",
2525- "version": "5.0.3",
2323+ "sha256": "097a71if6kkc7nphfc8b6llqlsskjwp1vg83134hzgfscvllvaj8",
2424+ "url": "https://github.com/nextcloud-releases/contacts/releases/download/v5.0.2/contacts-v5.0.2.tar.gz",
2525+ "version": "5.0.2",
2626 "description": "The Nextcloud contacts app is a user interface for Nextcloud's CardDAV server. Easily sync contacts from various devices with your Nextcloud and edit them online.\n\n* 🚀 **Integration with other Nextcloud apps!** Currently Mail and Calendar – more to come.\n* 🎉 **Never forget a birthday!** You can sync birthdays and other recurring events with your Nextcloud Calendar.\n* 👥 **Sharing of Adressbooks!** You want to share your contacts with your friends or coworkers? No problem!\n* 🙈 **We’re not reinventing the wheel!** Based on the great and open SabreDAV library.",
2727 "homepage": "https://github.com/nextcloud/contacts#readme",
2828 "licenses": [
···9090 ]
9191 },
9292 "news": {
9393- "sha256": "0iz1yrl7h60yhc1d1gkalkzc5vlj8sq6lff0ggns6a6qpsdpn9c5",
9494- "url": "https://github.com/nextcloud/news/releases/download/20.0.1/news.tar.gz",
9595- "version": "20.0.1",
9393+ "sha256": "0pnriarr2iqci2v2hn6vpvszf4m4pkcxsd2i13bp7n1zqkg6swd7",
9494+ "url": "https://github.com/nextcloud/news/releases/download/20.0.0/news.tar.gz",
9595+ "version": "20.0.0",
9696 "description": "📰 A RSS/Atom Feed reader App for Nextcloud\n\n- 📲 Synchronize your feeds with multiple mobile or desktop [clients](https://nextcloud.github.io/news/clients/)\n- 🔄 Automatic updates of your news feeds\n- 🆓 Free and open source under AGPLv3, no ads or premium functions\n\n**System Cron is currently required for this app to work**\n\nRequirements can be found [here](https://nextcloud.github.io/news/install/#dependencies)\n\nThe Changelog is available [here](https://github.com/nextcloud/news/blob/master/CHANGELOG.md)\n\nCreate a [bug report](https://github.com/nextcloud/news/issues/new/choose)\n\nCreate a [feature request](https://github.com/nextcloud/news/discussions/new)\n\nReport a [feed issue](https://github.com/nextcloud/news/discussions/new)",
9797 "homepage": "https://github.com/nextcloud/news",
9898 "licenses": [
···120120 ]
121121 },
122122 "polls": {
123123- "sha256": "0mqc9zmxrm98byy6v13si3hwii8hx85998c4kv91vk6ad0sfxjhb",
124124- "url": "https://github.com/nextcloud/polls/releases/download/v4.1.2/polls.tar.gz",
125125- "version": "4.1.2",
123123+ "sha256": "1amywiw91acp4g90wazmqmnw51s7z6rf27bdrzxrcqryd8igsniq",
124124+ "url": "https://github.com/nextcloud/polls/releases/download/v4.1.0-beta4/polls.tar.gz",
125125+ "version": "4.1.0-beta4",
126126 "description": "A polls app, similar to Doodle/Dudle with the possibility to restrict access (members, certain groups/users, hidden and public).",
127127 "homepage": "https://github.com/nextcloud/polls",
128128 "licenses": [
···140140 ]
141141 },
142142 "spreed": {
143143- "sha256": "07nh7nlz8di69ms1156fklj29526i3phlvki5vf2mxnlcz8ihg27",
144144- "url": "https://github.com/nextcloud-releases/spreed/releases/download/v15.0.3/spreed-v15.0.3.tar.gz",
145145- "version": "15.0.3",
143143+ "sha256": "1w5v866lkd0skv666vhz75zwalr2w83shrhdvv354kill9k53awh",
144144+ "url": "https://github.com/nextcloud-releases/spreed/releases/download/v15.0.2/spreed-v15.0.2.tar.gz",
145145+ "version": "15.0.2",
146146 "description": "Chat, video & audio-conferencing using WebRTC\n\n* 💬 **Chat integration!** Nextcloud Talk comes with a simple text chat. Allowing you to share files from your Nextcloud and mentioning other participants.\n* 👥 **Private, group, public and password protected calls!** Just invite somebody, a whole group or send a public link to invite to a call.\n* 💻 **Screen sharing!** Share your screen with participants of your call. You just need to use Firefox version 66 (or newer), latest Edge or Chrome 72 (or newer, also possible using Chrome 49 with this [Chrome extension](https://chrome.google.com/webstore/detail/screensharing-for-nextclo/kepnpjhambipllfmgmbapncekcmabkol)).\n* 🚀 **Integration with other Nextcloud apps** like Files, Contacts and Deck. More to come.\n\nAnd in the works for the [coming versions](https://github.com/nextcloud/spreed/milestones/):\n* ✋ [Federated calls](https://github.com/nextcloud/spreed/issues/21), to call people on other Nextclouds",
147147 "homepage": "https://github.com/nextcloud/spreed",
148148 "licenses": [
-62
pkgs/servers/nextcloud/packages/26.json
···11-{
22- "calendar": {
33- "sha256": "0yqpfp5nbzd7zar2rbcx3bhfgjxrp1sy6a57fdagndfi4y0r56hq",
44- "url": "https://github.com/nextcloud-releases/calendar/releases/download/v4.2.2/calendar-v4.2.2.tar.gz",
55- "version": "4.2.2",
66- "description": "The Calendar app is a user interface for Nextcloud's CalDAV server. Easily sync events from various devices with your Nextcloud and edit them online.\n\n* 🚀 **Integration with other Nextcloud apps!** Currently Contacts - more to come.\n* 🌐 **WebCal Support!** Want to see your favorite team’s matchdays in your calendar? No problem!\n* 🙋 **Attendees!** Invite people to your events\n* ⌚️ **Free/Busy!** See when your attendees are available to meet\n* ⏰ **Reminders!** Get alarms for events inside your browser and via email\n* 🔍 Search! Find your events at ease\n* ☑️ Tasks! See tasks with a due date directly in the calendar\n* 🙈 **We’re not reinventing the wheel!** Based on the great [c-dav library](https://github.com/nextcloud/cdav-library), [ical.js](https://github.com/mozilla-comm/ical.js) and [fullcalendar](https://github.com/fullcalendar/fullcalendar) libraries.",
77- "homepage": "https://github.com/nextcloud/calendar/",
88- "licenses": [
99- "agpl"
1010- ]
1111- },
1212- "files_texteditor": {
1313- "sha256": "0rmk14iw34pd81snp3lm01k07wm5j2nh9spcd4j0m43l20b7kxss",
1414- "url": "https://github.com/nextcloud-releases/files_texteditor/releases/download/v2.15.0/files_texteditor.tar.gz",
1515- "version": "2.15.0",
1616- "description": "This application enables Nextcloud users to open, save and edit text files in the web browser. If enabled, an entry called \"Text file\" in the \"New\" button menu at the top of the web browser appears. When clicked, a new text file opens in the browser and the file can be saved into the current Nextcloud directory. Further, when a text file is clicked in the web browser, it will be opened and editable. If the privileges allow, a user can also edit shared files and save these changes back into the web browser.\nMore information is available in the text editor documentation.",
1717- "homepage": "https://github.com/nextcloud/files_texteditor",
1818- "licenses": [
1919- "agpl"
2020- ]
2121- },
2222- "mail": {
2323- "sha256": "",
2424- "url": "https://github.com/nextcloud-releases/mail/releases/download/v2.2.2/mail-v2.2.2.tar.gz",
2525- "version": "2.2.2",
2626- "description": "**💌 A mail app for Nextcloud**\n\n- **🚀 Integration with other Nextcloud apps!** Currently Contacts, Calendar & Files – more to come.\n- **📥 Multiple mail accounts!** Personal and company account? No problem, and a nice unified inbox. Connect any IMAP account.\n- **🔒 Send & receive encrypted mails!** Using the great [Mailvelope](https://mailvelope.com) browser extension.\n- **🙈 We’re not reinventing the wheel!** Based on the great [Horde](https://horde.org) libraries.\n- **📬 Want to host your own mail server?** We do not have to reimplement this as you could set up [Mail-in-a-Box](https://mailinabox.email)!",
2727- "homepage": "https://github.com/nextcloud/mail#readme",
2828- "licenses": [
2929- "agpl"
3030- ]
3131- },
3232- "notes": {
3333- "sha256": "1jcgv3awr45jq3n3qv851qlpbdl2plixba0iq2s54dmhciypdckl",
3434- "url": "https://github.com/nextcloud/notes/releases/download/v4.6.0/notes.tar.gz",
3535- "version": "4.6.0",
3636- "description": "The Notes app is a distraction free notes taking app for [Nextcloud](https://www.nextcloud.com/). It provides categories for better organization and supports formatting using [Markdown](https://en.wikipedia.org/wiki/Markdown) syntax. Notes are saved as files in your Nextcloud, so you can view and edit them with every Nextcloud client. Furthermore, a separate [REST API](https://github.com/nextcloud/notes/blob/master/docs/api/README.md) allows for an easy integration into third-party apps (currently, there are notes apps for [Android](https://github.com/stefan-niedermann/nextcloud-notes), [iOS](https://github.com/owncloud/notes-iOS-App) and the [console](https://git.danielmoch.com/nncli/about) which allow convenient access to your Nextcloud notes). Further features include marking notes as favorites.",
3737- "homepage": "https://github.com/nextcloud/notes",
3838- "licenses": [
3939- "agpl"
4040- ]
4141- },
4242- "tasks": {
4343- "sha256": "0jm13d6nm7cfsw27yfiq1il9xjlh0qrq8xby2yz9dmggn7lk1dx5",
4444- "url": "https://github.com/nextcloud/tasks/releases/download/v0.14.5/tasks.tar.gz",
4545- "version": "0.14.5",
4646- "description": "Once enabled, a new Tasks menu will appear in your Nextcloud apps menu. From there you can add and delete tasks, edit their title, description, start and due dates and mark them as important. Tasks can be shared between users. Tasks can be synchronized using CalDav (each task list is linked to an Nextcloud calendar, to sync it to your local client: Thunderbird, Evolution, KDE Kontact, iCal … - just add the calendar as a remote calendar in your client). You can download your tasks as ICS files using the download button for each calendar.",
4747- "homepage": "https://github.com/nextcloud/tasks/",
4848- "licenses": [
4949- "agpl"
5050- ]
5151- },
5252- "unsplash": {
5353- "sha256": "17qqn6kwpvkq21c92jyy3pfvjaj5xms1hr07fnn39zxg0nmwjdd8",
5454- "url": "https://github.com/nextcloud/unsplash/releases/download/v2.1.1/unsplash.tar.gz",
5555- "version": "2.1.1",
5656- "description": "Show a new random featured nature photo in your nextcloud. Now with choosable motives!",
5757- "homepage": "https://github.com/nextcloud/unsplash/",
5858- "licenses": [
5959- "agpl"
6060- ]
6161- }
6262-}
···11-From fc3e14155b3c4300b691ab46579830e725457a54 Mon Sep 17 00:00:00 2001
22-From: Maximilian Bosch <maximilian@mbosch.me>
33-Date: Sat, 10 Sep 2022 15:18:05 +0200
44-Subject: [PATCH] Setup: remove custom dbuser creation behavior
55-66-Both PostgreSQL and MySQL can be authenticated against from Nextcloud by
77-supplying a database password. Now, during setup the following things
88-happen:
99-1010-* When using postgres and the db user has elevated permissions, a new
1111- unprivileged db user is created and the settings `dbuser`/`dbpass` are
1212- altered in `config.php`.
1313-1414-* When using MySQL, the password is **always** regenerated since
1515- 24.0.5/23.0.9[1].
1616-1717-I consider both cases problematic: the reason why people do configuration
1818-management is to have it as single source of truth! So, IMHO any
1919-application that silently alters config and thus causes deployed
2020-nodes to diverge from the configuration is harmful for that.
2121-2222-I guess it was sheer luck that it worked for so long in NixOS because
2323-nobody has apparently used password authentication with a privileged
2424-user to operate Nextcloud (which is a good thing in fact).
2525-2626-[1] https://github.com/nextcloud/server/pull/33513
2727----
2828- lib/private/Setup/MySQL.php | 53 --------------------------------
2929- lib/private/Setup/PostgreSQL.php | 37 ----------------------
3030- 2 files changed, 90 deletions(-)
3131-3232-diff --git a/lib/private/Setup/MySQL.php b/lib/private/Setup/MySQL.php
3333-index e3004c269bc..bc958e84e44 100644
3434---- a/lib/private/Setup/MySQL.php
3535-+++ b/lib/private/Setup/MySQL.php
3636-@@ -141,62 +141,6 @@
3737- $rootUser = $this->dbUser;
3838- $rootPassword = $this->dbPassword;
3939-4040-- //create a random password so we don't need to store the admin password in the config file
4141-- $saveSymbols = str_replace(['\"', '\\', '\'', '`'], '', ISecureRandom::CHAR_SYMBOLS);
4242-- $password = $this->random->generate(22, ISecureRandom::CHAR_ALPHANUMERIC . $saveSymbols)
4343-- . $this->random->generate(2, ISecureRandom::CHAR_UPPER)
4444-- . $this->random->generate(2, ISecureRandom::CHAR_LOWER)
4545-- . $this->random->generate(2, ISecureRandom::CHAR_DIGITS)
4646-- . $this->random->generate(2, $saveSymbols)
4747-- ;
4848-- $this->dbPassword = str_shuffle($password);
4949--
5050-- try {
5151-- //user already specified in config
5252-- $oldUser = $this->config->getValue('dbuser', false);
5353--
5454-- //we don't have a dbuser specified in config
5555-- if ($this->dbUser !== $oldUser) {
5656-- //add prefix to the admin username to prevent collisions
5757-- $adminUser = substr('oc_' . $username, 0, 16);
5858--
5959-- $i = 1;
6060-- while (true) {
6161-- //this should be enough to check for admin rights in mysql
6262-- $query = 'SELECT user FROM mysql.user WHERE user=?';
6363-- $result = $connection->executeQuery($query, [$adminUser]);
6464--
6565-- //current dbuser has admin rights
6666-- $data = $result->fetchAll();
6767-- $result->closeCursor();
6868-- //new dbuser does not exist
6969-- if (count($data) === 0) {
7070-- //use the admin login data for the new database user
7171-- $this->dbUser = $adminUser;
7272-- $this->createDBUser($connection);
7373--
7474-- break;
7575-- } else {
7676-- //repeat with different username
7777-- $length = strlen((string)$i);
7878-- $adminUser = substr('oc_' . $username, 0, 16 - $length) . $i;
7979-- $i++;
8080-- }
8181-- }
8282-- } else {
8383-- // Reuse existing password if a database config is already present
8484-- $this->dbPassword = $rootPassword;
8585-- }
8686-- } catch (\Exception $ex) {
8787-- $this->logger->info('Can not create a new MySQL user, will continue with the provided user.', [
8888-- 'exception' => $ex,
8989-- 'app' => 'mysql.setup',
9090-- ]);
9191-- // Restore the original credentials
9292-- $this->dbUser = $rootUser;
9393-- $this->dbPassword = $rootPassword;
9494-- }
9595--
9696- $this->config->setValues([
9797- 'dbuser' => $this->dbUser,
9898- 'dbpassword' => $this->dbPassword,
9999-diff --git a/lib/private/Setup/PostgreSQL.php b/lib/private/Setup/PostgreSQL.php
100100-index af816c7ad04..e49e5508e15 100644
101101---- a/lib/private/Setup/PostgreSQL.php
102102-+++ b/lib/private/Setup/PostgreSQL.php
103103-@@ -45,43 +45,6 @@ class PostgreSQL extends AbstractDatabase {
104104- $connection = $this->connect([
105105- 'dbname' => 'postgres'
106106- ]);
107107-- //check for roles creation rights in postgresql
108108-- $builder = $connection->getQueryBuilder();
109109-- $builder->automaticTablePrefix(false);
110110-- $query = $builder
111111-- ->select('rolname')
112112-- ->from('pg_roles')
113113-- ->where($builder->expr()->eq('rolcreaterole', new Literal('TRUE')))
114114-- ->andWhere($builder->expr()->eq('rolname', $builder->createNamedParameter($this->dbUser)));
115115--
116116-- try {
117117-- $result = $query->execute();
118118-- $canCreateRoles = $result->rowCount() > 0;
119119-- } catch (DatabaseException $e) {
120120-- $canCreateRoles = false;
121121-- }
122122--
123123-- if ($canCreateRoles) {
124124-- $connectionMainDatabase = $this->connect();
125125-- //use the admin login data for the new database user
126126--
127127-- //add prefix to the postgresql user name to prevent collisions
128128-- $this->dbUser = 'oc_' . strtolower($username);
129129-- //create a new password so we don't need to store the admin config in the config file
130130-- $this->dbPassword = \OC::$server->getSecureRandom()->generate(30, ISecureRandom::CHAR_ALPHANUMERIC);
131131--
132132-- $this->createDBUser($connection);
133133--
134134-- // Go to the main database and grant create on the public schema
135135-- // The code below is implemented to make installing possible with PostgreSQL version 15:
136136-- // https://www.postgresql.org/docs/release/15.0/
137137-- // From the release notes: For new databases having no need to defend against insider threats, granting CREATE permission will yield the behavior of prior releases
138138-- // Therefore we assume that the database is only used by one user/service which is Nextcloud
139139-- // Additional services should get installed in a separate database in order to stay secure
140140-- // Also see https://www.postgresql.org/docs/15/ddl-schemas.html#DDL-SCHEMAS-PATTERNS
141141-- $connectionMainDatabase->executeQuery('GRANT CREATE ON SCHEMA public TO ' . addslashes($this->dbUser));
142142-- $connectionMainDatabase->close();
143143-- }
144144-145145- $this->config->setValues([
146146- 'dbuser' => $this->dbUser,
147147---
148148-2.38.1
149149-
···991010stdenv.mkDerivation rec {
1111 pname = "outline";
1212- version = "0.67.1";
1212+ version = "0.67.2";
13131414 src = fetchFromGitHub {
1515 owner = "outline";
1616 repo = "outline";
1717 rev = "v${version}";
1818- sha256 = "sha256-oc9rG1dHi5YEU8VdwldHDv1qporMk8K7wpXOrCgcc0w=";
1818+ sha256 = "sha256-O5t//UwF+AVFxeBQHRIZM5RSf4+DgUE5LHWVRKxJLfc=";
1919 };
20202121 nativeBuildInputs = [ makeWrapper yarn2nix-moretea.fixup_yarn_lock ];
···5656 runHook preInstall
57575858 mkdir -p $out/bin $out/share/outline
5959- mv public node_modules build $out/share/outline/
5959+ mv node_modules build $out/share/outline/
6060+ # On NixOS the WorkingDirectory is set to the build directory, as
6161+ # this contains files needed in the onboarding process. This folder
6262+ # must also contain the `public` folder for mail notifications to
6363+ # work, as it contains the mail templates.
6464+ mv public $out/share/outline/build
60656166 node_modules=$out/share/outline/node_modules
6267 build=$out/share/outline/build
···126126 bazel_1 = throw "bazel 1 is past end of life as it is not an lts version"; # Added 2022-05-09
127127 bazel_3 = throw "bazel 3 is past end of life as it is not an lts version"; # Added 2023-02-02
128128 bcat = throw "bcat has been removed because upstream is dead"; # Added 2021-08-22
129129+ bedup = throw "bedup was removed because it was broken and abandoned upstream"; # added 2023-02-04
129130 beetsExternalPlugins = throw "beetsExternalPlugins has been deprecated, use beetsPackages.$pluginname"; # Added 2022-05-07
130131 beret = throw "beret has been removed"; # Added 2021-11-16
131132 bin_replace_string = throw "bin_replace_string has been removed: deleted by upstream"; # Added 2022-01-07
···4141 asyncio-nats-client = nats-py; # added 2022-02-08
4242 awkward0 = throw "awkward0 has been removed, use awkward instead"; # added 2022-12-13
4343 Babel = babel; # added 2022-05-06
4444+ bedup = throw "bedup was removed because it was broken and abandoned upstream"; # added 2023-02-04
4445 bitcoin-price-api = throw "bitcoin-price-api has been removed, it was using setuptools 2to3 translation feautre, which has been removed in setuptools 58"; # added 2022-02-15
4546 blockdiagcontrib-cisco = throw "blockdiagcontrib-cisco is not compatible with blockdiag 2.0.0 and has been removed."; # added 2020-11-29
4647 bsblan = python-bsblan; # added 2022-11-04