···155 to work, the username used to connect to PostgreSQL must match the database name, that is
156 services.invidious.settings.db.user must match services.invidious.settings.db.dbname.
157 This is the default since NixOS 24.05. For older systems, it is normally safe to manually set
158- services.invidious.database.user to "invidious" as the new user will be created with permissions
159- for the existing database. `REASSIGN OWNED BY kemal TO invidious;` may also be needed.
0160 '';
161 }
162 ];
···155 to work, the username used to connect to PostgreSQL must match the database name, that is
156 services.invidious.settings.db.user must match services.invidious.settings.db.dbname.
157 This is the default since NixOS 24.05. For older systems, it is normally safe to manually set
158+ the user to "invidious" as the new user will be created with permissions
159+ for the existing database. `REASSIGN OWNED BY kemal TO invidious;` may also be needed, it can be
160+ run as `sudo -u postgres env psql --user=postgres --dbname=invidious -c 'reassign OWNED BY kemal to invidious;'`.
161 '';
162 }
163 ];
···78 # Please keep the version x.y.0.z and do not update to x.y.76.z because the
9 # source of the latter disappears much faster.
10- version = "8.108.0.205";
1112 rpath = lib.makeLibraryPath [
13 alsa-lib
···68 "https://mirror.cs.uchicago.edu/skype/pool/main/s/skypeforlinux/skypeforlinux_${version}_amd64.deb"
69 "https://web.archive.org/web/https://repo.skype.com/deb/pool/main/s/skypeforlinux/skypeforlinux_${version}_amd64.deb"
70 ];
71- sha256 = "sha256-9V+/tTFco69NkCeswbGobr3ZxcS3q+Zd7fiei4N8uTY=";
72 }
73 else
74 throw "Skype for linux is not supported on ${stdenv.hostPlatform.system}";
···78 # Please keep the version x.y.0.z and do not update to x.y.76.z because the
9 # source of the latter disappears much faster.
10+ version = "8.110.76.107";
1112 rpath = lib.makeLibraryPath [
13 alsa-lib
···68 "https://mirror.cs.uchicago.edu/skype/pool/main/s/skypeforlinux/skypeforlinux_${version}_amd64.deb"
69 "https://web.archive.org/web/https://repo.skype.com/deb/pool/main/s/skypeforlinux/skypeforlinux_${version}_amd64.deb"
70 ];
71+ sha256 = "sha256-ocXhISwEtwzPd1dOPjgIj5UQ/8sqq2gUtmZ8KZBAxKM=";
72 }
73 else
74 throw "Skype for linux is not supported on ${stdenv.hostPlatform.system}";
···1diff --git a/CMakeLists.txt b/CMakeLists.txt
2-index d87a7052d..837867551 100644
3--- a/CMakeLists.txt
4+++ b/CMakeLists.txt
5-@@ -153,19 +153,8 @@ endif()
67 mapnik_find_package(Freetype REQUIRED)
8···16- # It might be possible that in future version harfbuzz could only be found via pkg-config.
17- # harfbuzz related discussion: https://github.com/harfbuzz/harfbuzz/issues/2653
18- message(STATUS "harfbuzz not found via cmake. Searching via pkg-config...")
19-- pkg_check_modules(harfbuzz REQUIRED IMPORTED_TARGET harfbuzz>=${HARFBUZZ_MIN_VERSION})
20- list(APPEND MAPNIK_OPTIONAL_LIBS PkgConfig::harfbuzz)
21-endif()
22+pkg_check_modules(harfbuzz REQUIRED IMPORTED_TARGET harfbuzz)
···1diff --git a/CMakeLists.txt b/CMakeLists.txt
2+index ffb86d4ac..1775b986f 100644
3--- a/CMakeLists.txt
4+++ b/CMakeLists.txt
5+@@ -177,19 +177,8 @@ endif()
67 mapnik_find_package(Freetype REQUIRED)
8···16- # It might be possible that in future version harfbuzz could only be found via pkg-config.
17- # harfbuzz related discussion: https://github.com/harfbuzz/harfbuzz/issues/2653
18- message(STATUS "harfbuzz not found via cmake. Searching via pkg-config...")
19+- mapnik_pkg_check_modules(harfbuzz REQUIRED IMPORTED_TARGET harfbuzz>=${HARFBUZZ_MIN_VERSION})
20- list(APPEND MAPNIK_OPTIONAL_LIBS PkgConfig::harfbuzz)
21-endif()
22+pkg_check_modules(harfbuzz REQUIRED IMPORTED_TARGET harfbuzz)
···12 # as ssdfs-utils, not ssdfs-tools.
13 pname = "ssdfs-utils";
14 # The version is taken from `configure.ac`, there are no tags.
15- version = "4.35";
1617 src = fetchFromGitHub {
18 owner = "dubeyko";
19 repo = "ssdfs-tools";
20- rev = "fe18072c9b1a670c06d1819205ad12e08312838f";
21- hash = "sha256-eVduJa4ewkVDHkxZkj2GO2uNMcMubyGo+4RkhXb9KFA=";
22 };
2324 strictDeps = true;
···12 # as ssdfs-utils, not ssdfs-tools.
13 pname = "ssdfs-utils";
14 # The version is taken from `configure.ac`, there are no tags.
15+ version = "4.37";
1617 src = fetchFromGitHub {
18 owner = "dubeyko";
19 repo = "ssdfs-tools";
20+ rev = "f83f70409c5e4fa81e9a67f8ed7f824368aba063";
21+ hash = "sha256-OuGQ876HRjjSyxMbd/l8yySxmEjW1Yo1PTyO9zEt8+Q=";
22 };
2324 strictDeps = true;
···1+# This package provides `tectonic.passthru.tests`.
2+# It requires internet access to fetch tectonic's resource bundle on demand.
3+4+{ lib
5+, fetchFromGitHub
6+, runCommand
7+, tectonic
8+, curl
9+, cacert
10+, emptyFile
11+}:
12+13+let
14+ /*
15+ Currently, the test files are only fully available from the `dev` branch of
16+ `biber`. When https://github.com/plk/biber/pull/467 is eventually released,
17+ we can obtain the test files from `texlive.pkgs.biber.texsource`. For now,
18+ i.e. biber<=2.19, we fetch the test files directly from GitHub.
19+ */
20+ biber-dev-source = fetchFromGitHub {
21+ owner = "plk";
22+ repo = "biber";
23+ # curl https://api.github.com/repos/plk/biber/pulls/467 | jq .merge_commit_sha
24+ rev = "d43e352586f5c9f98f0331978ca9d0b908986e09";
25+ hash = "sha256-Z5BdMteBouiDQasF6GZXkS//YzrZkcX1eLvKIQIBkBs=";
26+ };
27+ testfiles = "${biber-dev-source}/testfiles";
28+29+ noNetNotice = builtins.toFile "tectonic-offline-notice" ''
30+ # To fetch tectonic's web bundle, the tests require internet access,
31+ # which is not available in the current environment.
32+ '';
33+ # `cacert` is required for tls connections
34+ nativeBuildInputs = [ curl cacert tectonic ];
35+ checkInternet = ''
36+ if curl --head "bing.com"; then
37+ set -e # continue to the tests defined below, fail on error
38+ else
39+ cat "${noNetNotice}"
40+ cp "${emptyFile}" "$out"
41+ exit # bail out gracefully when there is no internet, do not panic
42+ fi
43+ '';
44+45+ networkRequiringTestPkg = name: script: runCommand
46+ /*
47+ Introduce dependence on `tectonic` in the test package name. Note that
48+ adding `tectonic` to `nativeBuildInputs` is not enough to trigger
49+ rebuilds for a fixed-output derivation. One must update its name or
50+ output hash to induce a rebuild. This behavior is exactly the same as a
51+ standard nixpkgs "fetcher" such as `fetchurl`.
52+ */
53+ "test-${lib.removePrefix "${builtins.storeDir}/" tectonic.outPath}-${name}"
54+ {
55+ /*
56+ Make a fixed-output derivation, return an `emptyFile` with fixed hash.
57+ These derivations are allowed to access the internet from within a
58+ sandbox, which allows us to test the automatic download of resource
59+ files in tectonic, as a side effect. The `tectonic.outPath` is included
60+ in `name` to induce rebuild of this fixed-output derivation whenever
61+ the `tectonic` derivation is updated.
62+ */
63+ inherit (emptyFile)
64+ outputHashAlgo
65+ outputHashMode
66+ outputHash
67+ ;
68+ allowSubstitutes = false;
69+ inherit nativeBuildInputs;
70+ }
71+ ''
72+ ${checkInternet}
73+ ${script}
74+ cp "${emptyFile}" "$out"
75+ '';
76+77+in
78+lib.mapAttrs networkRequiringTestPkg {
79+ biber-compatibility = ''
80+ # import the test files
81+ cp "${testfiles}"/* .
82+83+ # tectonic caches in the $HOME directory, so set it to $PWD
84+ export HOME=$PWD
85+ tectonic -X compile ./test.tex
86+ '';
87+}
+2
pkgs/tools/typesetting/tectonic/wrapper.nix
···3, tectonic-unwrapped
4, biber-for-tectonic
5, makeWrapper
06}:
78symlinkJoin {
···14 passthru = {
15 unwrapped = tectonic-unwrapped;
16 biber = biber-for-tectonic;
017 };
1819 # Replace the unwrapped tectonic with the one wrapping it with biber
···3, tectonic-unwrapped
4, biber-for-tectonic
5, makeWrapper
6+, callPackage
7}:
89symlinkJoin {
···15 passthru = {
16 unwrapped = tectonic-unwrapped;
17 biber = biber-for-tectonic;
18+ tests = callPackage ./tests.nix { };
19 };
2021 # Replace the unwrapped tectonic with the one wrapping it with biber
···87 CommonMark = commonmark; # added 2023-02-1
88 ConfigArgParse = configargparse; # added 2021-03-18
89 coronavirus = throw "coronavirus was removed, because the source is not providing the data anymore."; # added 2023-05-04
090 cozy = throw "cozy was removed because it was not actually https://pypi.org/project/Cozy/."; # added 2022-01-14
91 cryptography_vectors = "cryptography_vectors is no longer exposed in python*Packages because it is used for testing cryptography only."; # Added 2022-03-23
92 cx_Freeze = cx-freeze; # added 2023-08-02
···87 CommonMark = commonmark; # added 2023-02-1
88 ConfigArgParse = configargparse; # added 2021-03-18
89 coronavirus = throw "coronavirus was removed, because the source is not providing the data anymore."; # added 2023-05-04
90+ covCore = cov-core; # added 2024-01-03
91 cozy = throw "cozy was removed because it was not actually https://pypi.org/project/Cozy/."; # added 2022-01-14
92 cryptography_vectors = "cryptography_vectors is no longer exposed in python*Packages because it is used for testing cryptography only."; # Added 2022-03-23
93 cx_Freeze = cx-freeze; # added 2023-08-02