Merge master into staging-nixos

This commit is contained in:
nixpkgs-ci[bot]
2026-01-22 08:52:25 +00:00
committed by GitHub
41 changed files with 244 additions and 257 deletions
@@ -275,11 +275,11 @@ Alongside many enhancements to NixOS modules and general system improvements, th
and thus doesn't qualify as default.
- PowerDNS Recursor has been updated to version 5.1.2, which comes with a new YAML configuration format (`recursor.yml`)
and deprecates the previous format (`recursor.conf`). Accordingly, the NixOS option `services.pdns-recursor.settings`
has been renamed to [old-settings](#opt-services.pdns-recursor.old-settings) and will be provided for backward compatibility
until the next NixOS release. Users are asked to migrate their settings to the new [yaml-settings](#opt-services.pdns-recursor.old-settings)
and deprecates the previous format (`recursor.conf`). Accordingly, the NixOS option {option}`services.pdns-recursor.settings`
has been renamed to `old-settings` and will be provided for backward compatibility
until the next NixOS release. Users are asked to migrate their settings to the new `yaml-settings`.
option following this [guide](https://doc.powerdns.com/recursor/appendices/yamlconversion.html).
Note that options other than `services.pdns-recursor.settings` are unaffacted by this change.
Note that options other than {option}`services.pdns-recursor.settings` are unaffacted by this change.
- The `virtualisation.hypervGuest.videoMode` option has been removed. Standard tooling can now be used to configure display modes for Hyper-V VMs.
@@ -105,6 +105,8 @@ of pulling the upstream container image from Docker Hub. If you want the old beh
- `pdns` has been updated to version [v5.0.x](https://doc.powerdns.com/authoritative/changelog/5.0.html), which introduces breaking changes. Check out the [Upgrade Notes](https://doc.powerdns.com/authoritative/upgrading.html#to-5-0-0) for details.
- In the PowerDNS Recursor module, following the deprecation period started with NixOS 25.05, the option {option}`services.pdns-recursor.old-settings` has been removed and {option}`services.pdns-recursor.yaml-settings` consequently renamed to [](#opt-services.pdns-recursor.settings).
- `services.angrr` now uses TOML for configuration. Define policies with `services.angrr.settings` (generate TOML file) or point to a file using `services.angrr.configFile`. The legacy options `services.angrr.period`, `services.angrr.ownedOnly`, and `services.angrr.removeRoot` have been removed. See `man 5 angrr` and the description of `services.angrr.settings` options for examples and details.
- `services.pingvin-share` has been removed as the `pingvin-share.backend` package was broken and the project was archived upstream.
@@ -134,6 +134,10 @@ in
systemd.sockets.restic-rest-server = {
listenStreams = [ cfg.listenAddress ];
wantedBy = [ "sockets.target" ];
socketConfig = {
ReusePort = true;
FreeBind = true;
};
};
systemd.tmpfiles.rules = lib.mkIf cfg.privateRepos [
@@ -48,23 +48,6 @@ let
}
);
configFile =
if cfg.old-settings != { } then
# Convert recursor.conf to recursor.yml and merge it
let
conf = pkgs.writeText "recursor.conf" (
concatStringsSep "\n" (mapAttrsToList (name: val: "${name}=${serialize val}") cfg.old-settings)
);
yaml = settingsFormat.generate "recursor.yml" cfg.yaml-settings;
in
pkgs.runCommand "recursor-merged.yml" { } ''
${pkgs.pdns-recursor}/bin/rec_control show-yaml --config ${conf} > override.yml
${pkgs.yq-go}/bin/yq '. *= load("override.yml")' ${yaml} > $out
''
else
settingsFormat.generate "recursor.yml" cfg.yaml-settings;
in
{
options.services.pdns-recursor = {
@@ -196,30 +179,7 @@ in
'';
};
old-settings = mkOption {
type = configType;
default = { };
example = literalExpression ''
{
loglevel = 8;
log-common-errors = true;
}
'';
description = ''
Older PowerDNS Recursor settings. Use this option to configure
Recursor settings not exposed in a NixOS option or to bypass one.
See the full documentation at
<https://doc.powerdns.com/recursor/settings.html>
for the available options.
::: {.warning}
This option is provided for backward compatibility only
and will be removed in the next release of NixOS.
:::
'';
};
yaml-settings = mkOption {
settings = mkOption {
type = settingsFormat.type;
default = { };
example = literalExpression ''
@@ -249,11 +209,12 @@ in
config = mkIf cfg.enable {
environment.etc."/pdns-recursor/recursor.yml".source = configFile;
environment.etc."/pdns-recursor/recursor.yml".source =
settingsFormat.generate "recursor.yml" cfg.settings;
networking.resolvconf.useLocalResolver = lib.mkDefault true;
services.pdns-recursor.yaml-settings = {
services.pdns-recursor.settings = {
incoming = mkDefaultAttrs {
listen = cfg.dns.address;
port = cfg.dns.port;
@@ -301,15 +262,6 @@ in
users.groups.pdns-recursor = { };
warnings = lib.optional (cfg.old-settings != { }) ''
pdns-recursor has changed its configuration file format from pdns-recursor.conf
(mapped to `services.pdns-recursor.old-settings`) to the newer pdns-recursor.yml
(mapped to `services.pdns-recursor.yaml-settings`).
Support for the older format will be removed in a future version, so please migrate
your settings over. See <https://doc.powerdns.com/recursor/yamlsettings.html>.
'';
};
imports = [
@@ -320,16 +272,32 @@ in
] "To change extra Recursor settings use services.pdns-recursor.settings instead.")
(mkRenamedOptionModule
[
"services"
"pdns-recursor"
"yaml-settings"
]
[
"services"
"pdns-recursor"
"settings"
]
)
(mkRemovedOptionModule
[
"services"
"pdns-recursor"
"old-settings"
]
''
pdns-recursor has changed its configuration file format from pdns-recursor.conf
(mapped to `services.pdns-recursor.old-settings`) to the newer pdns-recursor.yml
(mapped to `services.pdns-recursor.settings`).
Support for the older format has been removed, please migrate your settings over.
See <https://doc.powerdns.com/recursor/yamlsettings.html>.
''
)
];
+11 -11
View File
@@ -133,13 +133,6 @@ in
virtualHosts.${cfg.hostname} = {
locations = {
# resources that are generated and thus cannot be taken from the cfg.package yet:
"~ ^(\\/[\\d]+\\.[\\d]+\\.[\\d]+[\\.|-][\\w]+)?\\/(sdkjs/common/AllFonts.js)$".extraConfig = ''
proxy_pass http://onlyoffice-docservice/$2$3;
'';
"~ ^(\\/[\\d]+\\.[\\d]+\\.[\\d]+[\\.|-][\\w]+)?\\/(fonts/.*)$".extraConfig = ''
proxy_pass http://onlyoffice-docservice/$2$3;
'';
# /etc/nginx/includes/ds-docservice.conf
# disable caching for api.js
"~ ^(\\/[\\d]+\\.[\\d]+\\.[\\d]+[\\.|-][\\w]+)?\\/(web-apps\\/apps\\/api\\/documents\\/api\\.js)$".extraConfig =
@@ -278,7 +271,7 @@ in
serviceConfig = {
# needs to be ran wrapped in FHS for now
# because the default config refers to many FHS paths
ExecStart = "${cfg.package.fhs}/bin/onlyoffice-wrapper ${cfg.package.fileconverter}/bin/fileconverter /run/onlyoffice/config";
ExecStart = "${cfg.package.fhs}/bin/onlyoffice-wrapper ${cfg.package.fileconverter}/bin/fileconverter";
Group = "onlyoffice";
Restart = "always";
RuntimeDirectory = "onlyoffice";
@@ -336,8 +329,10 @@ in
' /run/onlyoffice/config/default.json | sponge /run/onlyoffice/config/default.json
chmod u+w /run/onlyoffice/config/production-linux.json
jq '.FileConverter.converter.x2tPath = "${cfg.x2t}/bin/x2t"' \
/run/onlyoffice/config/production-linux.json | sponge /run/onlyoffice/config/production-linux.json
jq '
.log.filePath = "/run/onlyoffice/config/log4js/production.json" |
.FileConverter.converter.x2tPath = "${cfg.package.x2t-with-fonts-and-themes}/bin/x2t"
' /run/onlyoffice/config/production-linux.json | sponge /run/onlyoffice/config/production-linux.json
chmod u+w /run/onlyoffice/config/log4js/production.json
jq '.categories.default.level = "${cfg.loglevel}"' \
@@ -360,8 +355,13 @@ in
];
requires = [ "postgresql.target" ];
wantedBy = [ "multi-user.target" ];
environment = {
NODE_CONFIG_DIR = "/run/onlyoffice/config";
NODE_DISABLE_COLORS = "1";
NODE_ENV = "production-linux";
};
serviceConfig = {
ExecStart = "${cfg.package.fhs}/bin/onlyoffice-wrapper ${cfg.package.docservice}/bin/docservice /run/onlyoffice/config";
ExecStart = "${cfg.package.fhs}/bin/onlyoffice-wrapper ${cfg.package.docservice}/bin/docservice";
ExecStartPre = [ onlyoffice-prestart ];
Group = "onlyoffice";
Restart = "always";
-4
View File
@@ -7,7 +7,6 @@
nodes.server = {
services.pdns-recursor.enable = true;
services.pdns-recursor.exportHosts = true;
services.pdns-recursor.old-settings.dnssec-log-bogus = true;
networking.hosts."192.0.2.1" = [ "example.com" ];
};
@@ -18,8 +17,5 @@
with subtest("can resolve names"):
assert "192.0.2.1" in server.succeed("host example.com localhost")
with subtest("old-settings have been merged in"):
server.succeed("${lib.getExe pkgs.yq-go} -e .dnssec.log_bogus /etc/pdns-recursor/recursor.yml")
'';
}
@@ -7,8 +7,8 @@ vscode-utils.buildVscodeMarketplaceExtension {
mktplcRef = {
name = "vscode-augment";
publisher = "augment";
version = "0.747.1";
hash = "sha256-QQty7jtBHSUHR/BIPCjKMlIuCnn5dbVCqSsXv4LVfdE=";
version = "0.754.2";
hash = "sha256-PWcJr6hTCGeDLMG0h54x5D2n6zrK/bEqv7kygSZS/qo=";
};
meta = {
@@ -1499,12 +1499,12 @@
"vendorHash": "sha256-Z4DfoG4ApXbPNXZs9YvBWQj1bH7moLNI6P+nKDHt/Jc="
},
"yandex-cloud_yandex": {
"hash": "sha256-nJzWN2OrRiXKLzM1awn68eTW4WFvLavA06+/2BmRPGA=",
"hash": "sha256-lNVCxNXYai+da2Hcg1+tcoYzoYRLRoCjzAQ/UB1WW4g=",
"homepage": "https://registry.terraform.io/providers/yandex-cloud/yandex",
"owner": "yandex-cloud",
"repo": "terraform-provider-yandex",
"rev": "v0.178.0",
"rev": "v0.179.0",
"spdx": "MPL-2.0",
"vendorHash": "sha256-bHsSBrfyUgUzuFOgFHXmPV12e4whsU5LTIzIXHeHlH0="
"vendorHash": "sha256-JW8aCDhY0XLoeFN864bM9ZWPxDrGk7VGTAUhx3PiQ+E="
}
}
@@ -110,7 +110,8 @@ let
};
in
buildEnv {
name = "weechat-bin-env-${weechat.version}";
pname = "weechat-bin-env";
inherit (weechat) version;
extraOutputsToInstall = lib.optionals installManPages [ "man" ];
paths = [
(mkWeechat "weechat")
@@ -10,7 +10,9 @@
}:
symlinkJoin {
name = "activitywatch-${aw-server-rust.version}";
pname = "activitywatch";
inherit (aw-server-rust) version;
paths = [
aw-server-rust.out
aw-qt.out
@@ -45,7 +45,7 @@ let
perlDeps = (config.perlDeps or [ ]) ++ lib.concatMap mkPerlDeps plugins;
in
symlinkJoin {
name = "rxvt-unicode-${rxvt-unicode-unwrapped.version}";
pname = "rxvt-unicode";
paths = [ rxvt-unicode-unwrapped ] ++ plugins ++ extraDeps;
@@ -60,7 +60,7 @@ let
--suffix-each URXVT_PERL_LIB ':' "$out/lib/urxvt/perl"
'';
inherit (rxvt-unicode-unwrapped) meta;
inherit (rxvt-unicode-unwrapped) meta version;
passthru = {
plugins = plugins;
@@ -293,7 +293,14 @@ buildStdenv.mkDerivation {
pname = "${pname}-unwrapped";
version = packageVersion;
inherit src unpackPhase meta;
inherit src unpackPhase;
meta =
meta
// lib.optionalAttrs stdenv.hostPlatform.isDarwin {
# MacOS builds may take a long time and sometimes hit the default timeout
timeout = lib.max (24 * 60 * 60) (meta.timeout or 0);
};
outputs = [
"out"
+5 -5
View File
@@ -2,7 +2,7 @@
lib,
buildNpmPackage,
copyDesktopItems,
electron_38,
electron_39,
fetchFromGitHub,
makeDesktopItem,
makeWrapper,
@@ -10,8 +10,8 @@
}:
let
electron = electron_38;
version = "2025.8.2";
electron = electron_39;
version = "2026.1.2";
in
buildNpmPackage {
@@ -22,10 +22,10 @@ buildNpmPackage {
owner = "appium";
repo = "appium-inspector";
tag = "v${version}";
hash = "sha256-v3UN58dJ+rSdFx+99xRMI88gnJ/hgL48Lr7AMjNgXMY=";
hash = "sha256-uNRm6XHgK55gayl4ab9atV4+i9uCnxEcl4C6HEOX6Ro=";
};
npmDepsHash = "sha256-rlmAZyznoLSudAf7k1mgf13CO+9mlDB3HhubPga+30Q=";
npmDepsHash = "sha256-MraVLbKNgEhwT9sTyNhi4uDfyXOEAGOznvSs0B+mEUA=";
npmFlags = [ "--ignore-scripts" ];
nativeBuildInputs = [
+2 -1
View File
@@ -7,7 +7,8 @@
}:
symlinkJoin {
inherit name;
pname = name;
inherit (arcan) version;
paths = appls ++ [ arcan ];
@@ -13,7 +13,7 @@ buildGoModule.override
stdenv = pkgs.clangStdenv;
}
{
name = pname;
inherit pname version;
src = fetchFromGitHub {
owner = "goccy";
+2 -2
View File
@@ -116,7 +116,7 @@ let
};
in
symlinkJoin {
name = "bottles";
pname = "bottles";
paths = [
(buildFHSEnv (
fhsEnv
@@ -139,5 +139,5 @@ symlinkJoin {
ln -s ${bottles-unwrapped}/share/icons $out/share
'';
inherit (bottles-unwrapped) meta;
inherit (bottles-unwrapped) meta version;
}
+2 -2
View File
@@ -11,7 +11,7 @@ let
binPath = lib.makeBinPath [ cdrtools ];
in
symlinkJoin {
name = "brasero-${brasero-unwrapped.version}";
pname = "brasero";
paths = [ brasero-unwrapped ];
nativeBuildInputs = [ makeWrapper ];
@@ -22,5 +22,5 @@ symlinkJoin {
--prefix LD_PRELOAD : ${lib.makeLibraryPath [ libdvdcss ]}/libdvdcss.so
'';
inherit (brasero-unwrapped) meta;
inherit (brasero-unwrapped) meta version;
}
+3 -3
View File
@@ -6,16 +6,16 @@
rustPlatform.buildRustPackage rec {
pname = "comrak";
version = "0.49.0";
version = "0.50.0";
src = fetchFromGitHub {
owner = "kivikakk";
repo = "comrak";
rev = "v${version}";
sha256 = "sha256-o4fa5lO8fTf5Nb2kGUqCRK/v5rQOlmHbnzCx9l7S3So=";
sha256 = "sha256-OWfNg66ZLorN+PW26v2n695f8vfqT76jO6Bl+M/FNdc=";
};
cargoHash = "sha256-ceDdBBolkQYI3F58DgKztWfULvc5jVp69FDdk6NxcLU=";
cargoHash = "sha256-d4krWEvupTniVka4f7OPvWbJx6YoT0tfzxr7SU46jME=";
meta = {
description = "CommonMark-compatible GitHub Flavored Markdown parser and formatter";
+8 -9
View File
@@ -5,22 +5,21 @@
pkgs,
}:
python3Packages.buildPythonApplication rec {
python3Packages.buildPythonApplication {
pname = "dr14_tmeter";
version = "1.0.16";
version = "1.0.16-unstable-2025-09-27";
format = "setuptools";
disabled = !python3Packages.isPy3k;
src = fetchFromGitHub {
owner = "simon-r";
owner = "hboetes";
repo = "dr14_t.meter";
rev = "v${version}";
sha256 = "1nfsasi7kx0myxkahbd7rz8796mcf5nsadrsjjpx2kgaaw5nkv1m";
rev = "f9d62f60c30d9404d4c4b644931e76049332310c";
sha256 = "sha256-3z9Gi32aG6Tk9UHpfT1VqmBZpFJrlKB+NZFu3CH+18U=";
};
propagatedBuildInputs = with pkgs; [
python3Packages.numpy
python3Packages.mutagen
flac
vorbis-tools
ffmpeg
@@ -34,8 +33,8 @@ python3Packages.buildPythonApplication rec {
meta = {
description = "Compute the DR14 of a given audio file according to the procedure described by the Pleasurize Music Foundation";
mainProgram = "dr14_tmeter";
homepage = "https://github.com/hboetes/dr14_t.meter";
maintainers = with lib.maintainers; [ sciencentistguy ];
license = lib.licenses.gpl3Plus;
homepage = "http://dr14tmeter.sourceforge.net/";
maintainers = [ ];
};
}
+3 -3
View File
@@ -6,16 +6,16 @@
buildGoModule rec {
pname = "enumer";
version = "1.6.1";
version = "1.6.3";
src = fetchFromGitHub {
owner = "dmarkham";
repo = "enumer";
tag = "v${version}";
hash = "sha256-Motlnq1U40gUGhDdFtKgQ7ogGfm8RvittTnRWOqIhKU=";
hash = "sha256-VowZcDNksa4ncydzdWyCDMcyEIujUmfVlf4SDEGPpVg=";
};
vendorHash = "sha256-w9T9PWMJjBJP2MmhGC7e78zbszgCwtVrfO5AQlu/ugQ=";
vendorHash = "sha256-3aiAvpNGW2FtMmpzKx/+dWJ3ZQG3BKJei8KcJMyDH20=";
meta = {
description = "Go tool to auto generate methods for enums";
@@ -251,7 +251,8 @@ let
in
symlinkJoin {
name = "kubo-fs-repo-migrations-${version}";
pname = "kubo-fs-repo-migrations";
inherit version;
paths = if stubBrokenMigrations then migrationsBrokenStubbed else migrationsBrokenRemoved;
meta = (removeAttrs kubo-migrator-unwrapped.meta [ "mainProgram" ]) // {
description = "Several individual migrations for migrating the filesystem repository of Kubo one version at a time";
+2 -1
View File
@@ -7,7 +7,8 @@
}:
buildEnv {
name = "kubo-migrator-${kubo-migrator-unwrapped.version}";
pname = "kubo-migrator";
inherit (kubo-migrator-unwrapped) version;
nativeBuildInputs = [ makeWrapper ];
+2 -3
View File
@@ -5,12 +5,11 @@
}:
stdenv.mkDerivation rec {
_name = "liblockfile";
pname = "liblockfile";
version = "1.17";
name = "${_name}-${version}";
src = fetchurl {
url = "mirror://debian/pool/main/libl/${_name}/${_name}_${version}.orig.tar.gz";
url = "mirror://debian/pool/main/libl/liblockfile/liblockfile_${version}.orig.tar.gz";
sha256 = "sha256-bpN/NlCvq0qsGY80i4mxykLtzrF/trsJGPZCFDzP0V4=";
};
@@ -1,21 +1,21 @@
{
buildFHSEnv,
buildNpmPackage,
corefonts,
dpkg,
dejavu_fonts,
fetchFromGitHub,
fetchurl,
gcc-unwrapped,
lib,
liberation_ttf_v1,
lndir,
nixosTests,
pkg-config,
runCommand,
stdenv,
vips,
writeScript,
x2t,
extra-fonts ? [ ],
}:
let
@@ -76,6 +76,59 @@ let
ln -s ${docservice}/lib/node_modules/coauthoring $out/lib/node_modules/DocService
'';
});
# https://github.com/ONLYOFFICE/document-server-package/blob/master/common/documentserver/bin/documentserver-generate-allfonts.sh.m4
x2t-with-fonts-and-themes = runCommand "x2t-with-fonts-and-themes" { } ''
mkdir -p $out/web
mkdir -p $out/converter
mkdir -p $out/images
mkdir -p $out/fonts
echo Generating fonts
export CUSTOM_FONTS_PATHS=${lib.concatStringsSep ":" extra-fonts}
${x2t.components.allfontsgen}/bin/allfontsgen \
--input=${x2t.components.core-fonts} \
--allfonts-web=$out/web/AllFonts.js \
--allfonts=$out/converter/AllFonts.js \
--images=$out/images \
--selection=$out/converter/font_selection.bin \
--output-web=$out/fonts \
--use-system=true
mkdir -p $out/bin
cp ${x2t}/bin/x2t $out/bin
cat >$out/bin/DoctRenderer.config <<EOF
<Settings>
<file>${x2t.components.sdkjs}/common/Native/native.js</file>
<file>${x2t.components.sdkjs}/common/Native/jquery_native.js</file>
<allfonts>$out/converter/AllFonts.js</allfonts>
<file>${x2t.components.web-apps}/vendor/xregexp/xregexp-all-min.js</file>
<sdkjs>${x2t.components.sdkjs}</sdkjs>
<dictionaries>${x2t.components.dictionaries}</dictionaries>
</Settings>
EOF
echo Generating presentation themes
# creates temporary files next to sources...
mkdir working
cp ${x2t.components.sdkjs}/slide/themes/src/* working
${x2t.components.allthemesgen}/bin/allthemesgen \
--converter-dir="$out/bin"\
--src="working"\
--output="$out/images"
${x2t.components.allthemesgen}/bin/allthemesgen \
--converter-dir="$out/bin"\
--src="working"\
--output="$out/images"\
--postfix="ios"\
--params="280,224"
${x2t.components.allthemesgen}/bin/allthemesgen \
--converter-dir="$out/bin"\
--src="working"\
--output="$out/images"\
--postfix="android"\
--params="280,224"
'';
# var/www/onlyoffice/documentserver/server/DocService/docservice
onlyoffice-documentserver = stdenv.mkDerivation {
pname = "onlyoffice-documentserver";
@@ -104,10 +157,20 @@ let
cp -r common/documentserver-example/welcome $out/var/www/onlyoffice/documentserver-example
mkdir -p $out/var/www/onlyoffice/documentserver
ln -s ${x2t.components.web-apps} $out/var/www/onlyoffice/documentserver/web-apps
# copying instead of linking for now because we want to inject
# AllFonts.js in here:
cp -r ${x2t.components.sdkjs} $out/var/www/onlyoffice/documentserver/sdkjs
# equivalent of usr/bin/documentserver-flush-cache.sh,
# busts cache also when fonts collection changes
mkdir $out/var/www/onlyoffice/documentserver/web-apps
${lndir}/bin/lndir -silent ${x2t.components.web-apps} $out/var/www/onlyoffice/documentserver/web-apps
mv $out/var/www/onlyoffice/documentserver/web-apps/apps/api/documents/api.js{,.orig}
sed -e "s/{{HASH_POSTFIX}}/$(basename $out | cut -d '-' -f 1)/" $out/var/www/onlyoffice/documentserver/web-apps/apps/api/documents/api.js.orig > $out/var/www/onlyoffice/documentserver/web-apps/apps/api/documents/api.js
ln -s ${x2t-with-fonts-and-themes}/fonts $out/var/www/onlyoffice/documentserver/fonts
mkdir -p $out/var/www/onlyoffice/documentserver/sdkjs
${lndir}/bin/lndir -silent ${x2t.components.sdkjs} $out/var/www/onlyoffice/documentserver/sdkjs
ln -s ${x2t-with-fonts-and-themes}/web/AllFonts.js $out/var/www/onlyoffice/documentserver/sdkjs/common/AllFonts.js
${lndir}/bin/lndir -silent ${x2t-with-fonts-and-themes}/images $out/var/www/onlyoffice/documentserver/sdkjs/common/Images
# we don't currently support sdkjs plugins in NixOS
# https://github.com/ONLYOFFICE/build_tools/blob/master/scripts/deploy_server.py#L130
@@ -116,20 +179,22 @@ let
mkdir -p $out/var/www/onlyoffice/documentserver/server/schema
cp -r ${server-src}/schema/* $out/var/www/onlyoffice/documentserver/server/schema
mkdir -p $out/var/www/onlyoffice/documentserver/server/FileConverter/bin
## required for bwrap --bind
chmod u+w $out/var
mkdir -p $out/var/lib/onlyoffice
chmod u+w $out/var/www/onlyoffice/documentserver
mkdir $out/var/www/onlyoffice/documentserver/fonts
'';
# stripping self extracting javascript binaries likely breaks them
dontStrip = true;
passthru = {
inherit fileconverter common docservice;
inherit
x2t-with-fonts-and-themes
common
docservice
fileconverter
;
tests = nixosTests.onlyoffice;
fhs = buildFHSEnv {
name = "onlyoffice-wrapper";
@@ -137,11 +202,6 @@ let
targetPkgs = pkgs: [
gcc-unwrapped.lib
onlyoffice-documentserver
# fonts
corefonts
dejavu_fonts
liberation_ttf_v1
fileconverter
];
@@ -152,68 +212,7 @@ let
extraBwrapArgs = [
"--bind var/lib/onlyoffice/ var/lib/onlyoffice/"
"--bind var/lib/onlyoffice/documentserver/sdkjs/common/ var/www/onlyoffice/documentserver/sdkjs/common/"
"--bind var/lib/onlyoffice/documentserver/sdkjs/slide/themes/ var/www/onlyoffice/documentserver/sdkjs/slide/themes/"
"--bind var/lib/onlyoffice/documentserver/fonts/ var/www/onlyoffice/documentserver/fonts/"
"--bind var/lib/onlyoffice/documentserver/server/FileConverter/bin/ var/www/onlyoffice/documentserver/server/FileConverter/bin/"
];
runScript = writeScript "onlyoffice-documentserver-run-script" ''
export NODE_CONFIG_DIR=$2
export NODE_DISABLE_COLORS=1
export NODE_ENV=production-linux
if [[ $1 == *"docservice" ]]; then
mkdir -p var/www/onlyoffice/documentserver/sdkjs/slide/themes/
# symlinking themes/src breaks discovery in allfontsgen
rm -rf var/www/onlyoffice/documentserver/sdkjs/slide/themes/src
cp -r ${onlyoffice-documentserver}/var/www/onlyoffice/documentserver/sdkjs/slide/themes/src var/www/onlyoffice/documentserver/sdkjs/slide/themes/
chmod -R u+w var/www/onlyoffice/documentserver/sdkjs/slide/themes/
# onlyoffice places generated files in those directores
rm -rf var/www/onlyoffice/documentserver/sdkjs/common/*
${lndir}/bin/lndir -silent ${onlyoffice-documentserver}/var/www/onlyoffice/documentserver/sdkjs/common/ var/www/onlyoffice/documentserver/sdkjs/common/
rm -rf var/www/onlyoffice/documentserver/server/FileConverter/bin/*
${lndir}/bin/lndir -silent ${onlyoffice-documentserver}/var/www/onlyoffice/documentserver/server/FileConverter/bin/ var/www/onlyoffice/documentserver/server/FileConverter/bin/
# https://github.com/ONLYOFFICE/document-server-package/blob/master/common/documentserver/bin/documentserver-generate-allfonts.sh.m4
# TODO --use-system doesn't actually appear to make a difference?
echo -n Generating AllFonts.js, please wait...
"${x2t.components.allfontsgen}/bin/allfontsgen"\
--input="${x2t.components.core-fonts}"\
--allfonts-web="var/www/onlyoffice/documentserver/sdkjs/common/AllFonts.js"\
--allfonts="var/www/onlyoffice/documentserver/server/FileConverter/bin/AllFonts.js"\
--images="var/www/onlyoffice/documentserver/sdkjs/common/Images"\
--selection="var/www/onlyoffice/documentserver/server/FileConverter/bin/font_selection.bin"\
--output-web="var/www/onlyoffice/documentserver/fonts"\
--use-system="true"
echo Done
# TODO x2t brings its on DoctRenderer.config, so it wouldn't pick up the new fonts:
echo -n Generating presentation themes, please wait...
"${x2t.components.allthemesgen}/bin/allthemesgen"\
--converter-dir="${x2t}/bin"\
--src="var/www/onlyoffice/documentserver/sdkjs/slide/themes"\
--output="var/www/onlyoffice/documentserver/sdkjs/common/Images"
"${x2t.components.allthemesgen}/bin/allthemesgen"\
--converter-dir="${x2t}/bin"\
--src="var/www/onlyoffice/documentserver/sdkjs/slide/themes"\
--output="var/www/onlyoffice/documentserver/sdkjs/common/Images"\
--postfix="ios"\
--params="280,224"
"${x2t.components.allthemesgen}/bin/allthemesgen"\
--converter-dir="${x2t}/bin"\
--src="var/www/onlyoffice/documentserver/sdkjs/slide/themes"\
--output="var/www/onlyoffice/documentserver/sdkjs/common/Images"\
--postfix="android"\
--params="280,224"
echo Done
fi
exec $1
'';
};
};
+2 -2
View File
@@ -30,13 +30,13 @@
xorg,
}:
let
version = "2.20.4";
version = "2.20.5";
src = fetchFromGitHub {
owner = "paperless-ngx";
repo = "paperless-ngx";
tag = "v${version}";
hash = "sha256-xWyYisSJ5FKU+ZFrCtjo94TjqXCzHDVdPAISMTX0Tt8=";
hash = "sha256-EZaAn55gilvTitAo0p7U3BeqNI9iYIWg147BbO2fp9M=";
};
python = python3.override {
+2 -2
View File
@@ -9,11 +9,11 @@
}:
stdenvNoCC.mkDerivation (finalAttrs: {
pname = "proton-pass";
version = "1.33.4";
version = "1.33.5";
src = fetchurl {
url = "https://proton.me/download/pass/linux/x64/proton-pass_${finalAttrs.version}_amd64.deb";
hash = "sha256-sGO4BiVS1Zbs0y6UkBK42Tfq+VrLDcYXZA4U3xHaXmM=";
hash = "sha256-2H8zqo9UQubz2x7Pt1NG8OK14/ThvVS9Q0s73oTgbhs=";
};
dontConfigure = true;
+2 -1
View File
@@ -12,7 +12,8 @@
}:
symlinkJoin {
name = "rofi-${rofi-unwrapped.version}";
pname = "rofi";
inherit (rofi-unwrapped) version;
paths = [
rofi-unwrapped.out
+1 -1
View File
@@ -114,7 +114,7 @@ let
withPaks =
paks:
buildEnv {
inherit (binaries) name;
inherit (binaries) pname version;
paths = [ binaries ] ++ paks;
postBuild = ''
rm "$out/bin" && mkdir "$out/bin"
+2 -1
View File
@@ -5,7 +5,8 @@
makeWrapper,
}:
buildEnv {
name = "snis-${snis-unwrapped.version}";
pname = "snis";
inherit (snis-unwrapped) version;
nativeBuildInputs = [ makeWrapper ];
+3 -1
View File
@@ -36,7 +36,9 @@ let
in
symlinkJoin {
inherit name;
inherit version;
pname = "patchwork";
paths = [ binary ];
postBuild = ''
+2 -2
View File
@@ -2,8 +2,8 @@
lib,
fetchzip,
}:
fetchzip rec {
name = "vst2-sdk-${version}"; # cannot be `pname`, as `fetchzip` expects `name`
fetchzip {
pname = "vst2-sdk";
version = "2018-06-11";
url = "https://web.archive.org/web/20181016150224if_/https://download.steinberg.net/sdk_downloads/vstsdk3610_11_06_2018_build_37.zip";
hash = "sha256-TyPy8FsXWB8LRz0yr38t3d5xxAxGufAn0dsyrg1JXBA=";
+2 -2
View File
@@ -74,8 +74,8 @@ let
in
symlinkJoin {
name = "wiringpi-${version}";
inherit passthru;
pname = "wiringpi";
inherit passthru version;
paths = [
passthru.wiringPi
passthru.devLib
@@ -0,0 +1,27 @@
diff --git a/DesktopEditor/fontengine/ApplicationFonts.cpp b/DesktopEditor/fontengine/ApplicationFonts.cpp
index ed1a01fb1b..ee071f9ebe 100644
--- a/DesktopEditor/fontengine/ApplicationFonts.cpp
+++ b/DesktopEditor/fontengine/ApplicationFonts.cpp
@@ -29,6 +29,7 @@
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
*
*/
+#include <sstream>
#include "ApplicationFonts.h"
#include "../common/File.h"
#include "../common/Directory.h"
@@ -1845,6 +1846,14 @@ std::vector<std::wstring> CApplicationFonts::GetSetupFontFiles(const bool& bIsUs
std::wstring custom_fonts_path = NSSystemUtils::GetEnvVariable(L"CUSTOM_FONTS_PATH");
if (!custom_fonts_path.empty())
NSDirectory::GetFiles2(custom_fonts_path, _array, true);
+
+ std::wstring custom_fonts_paths = NSSystemUtils::GetEnvVariable(L"CUSTOM_FONTS_PATHS");
+ if (!custom_fonts_paths.empty()) {
+ std::wistringstream stream(custom_fonts_paths);
+ while (std::getline(stream, custom_fonts_path, L':')) {
+ NSDirectory::GetFiles2(custom_fonts_path, _array, true);
+ }
+ }
#endif
return _array;
@@ -1,13 +0,0 @@
diff --git a/DesktopEditor/doctrenderer/doctrenderer.cpp b/DesktopEditor/doctrenderer/doctrenderer.cpp
index ac24efa8b2..f6de72cc2a 100644
--- a/DesktopEditor/doctrenderer/doctrenderer.cpp
+++ b/DesktopEditor/doctrenderer/doctrenderer.cpp
@@ -238,7 +238,7 @@ namespace NSDoctRenderer
public:
CDoctRenderer_Private(const std::wstring& sAllFontsPath = L"") : CDoctRendererConfig()
{
- LoadConfig(NSFile::GetProcessDirectory(), sAllFontsPath);
+ LoadConfig(NSFile::GetProcessDirectory() + L"/../etc", sAllFontsPath);
m_pDrawingFile = NULL;
}
~CDoctRenderer_Private()
+12 -31
View File
@@ -137,8 +137,6 @@ let
# workaround for https://github.com/NixOS/nixpkgs/issues/477803
nodejs = nodejs_22;
#src = /home/aengelen/d/onlyoffice/documentserver/web-apps;
#sourceRoot = "/build/web-apps/build";
src = fetchFromGitHub {
owner = "ONLYOFFICE";
repo = "web-apps";
@@ -183,11 +181,6 @@ let
cp -r ../deploy/web-apps $out
## see usr/bin/documentserver-flush-cache.sh
chmod u+w $out/apps/api/documents
substituteInPlace $out/apps/api/documents/api.js \
--replace-fail '{{HASH_POSTFIX}}' "$(basename $out | cut -d '-' -f 1)"
runHook postInstall
'';
});
@@ -362,6 +355,7 @@ let
graphics = buildCoreComponent "DesktopEditor/graphics/pro" {
patches = [
./cximage-types.patch
./core-fontengine-custom-fonts-paths.patch
];
buildInputs = [
unicodeConverter
@@ -470,12 +464,6 @@ let
chmod u+w $BUILDRT/Common/3dParty/apple/libetonyek/src/lib
cp $BUILDRT/Common/3dParty/apple/headers/* $BUILDRT/Common/3dParty/apple/libetonyek/src/lib
'';
installPhase = ''
runHook preInstall
mkdir -p $out/lib
mv ../build/lib/*/* $out/lib
runHook postInstall
'';
doCheck = true;
passthru.tests = buildCoreTests "Apple/test" {
buildInputs = [
@@ -601,7 +589,6 @@ let
patches = [
# https://github.com/ONLYOFFICE/core/pull/1631
./doctrenderer-format-security.patch
./doctrenderer-config-dir.patch
./doctrenderer-v8-iterator.patch
./fontengine-format-security.patch
./v8_updates.patch
@@ -731,7 +718,7 @@ let
runHook preInstall
mkdir -p $out/bin
cp $BUILDRT/build/bin/*/* $BUILDRT/build/bin/*/*/* $out/bin
find $BUILDRT/build -type f -exec cp {} $out/bin \;
runHook postInstall
'';
@@ -757,7 +744,7 @@ let
runHook preInstall
mkdir -p $out/bin
cp $BUILDRT/build/bin/*/* $BUILDRT/build/bin/*/*/* $out/bin
find $BUILDRT/build -type f -exec cp {} $out/bin \;
runHook postInstall
'';
@@ -835,23 +822,17 @@ buildCoreComponent "X2tConverter/build/Qt" {
mkdir -p $out/bin
find $BUILDRT/build -type f -exec cp {} $out/bin \;
mkdir $out/etc
cat >$out/etc/DoctRenderer.config <<EOF
<Settings>
<file>${sdkjs}/common/Native/native.js</file>
<file>${sdkjs}//common/Native/jquery_native.js</file>
<allfonts>${allfonts}/converter/AllFonts.js</allfonts>
<file>${web-apps}/vendor/xregexp/xregexp-all-min.js</file>
<sdkjs>${sdkjs}</sdkjs>
<dictionaries>${dictionaries}</dictionaries>
</Settings>
cat >$out/bin/DoctRenderer.config <<EOF
<Settings>
<file>${sdkjs}/common/Native/native.js</file>
<file>${sdkjs}/common/Native/jquery_native.js</file>
<allfonts>${allfonts}/converter/AllFonts.js</allfonts>
<file>${web-apps}/vendor/xregexp/xregexp-all-min.js</file>
<sdkjs>${sdkjs}</sdkjs>
<dictionaries>${dictionaries}</dictionaries>
</Settings>
EOF
# TODO when allthemesgen invokes x2t as the converter, it
# hard-codes expecting DoctRenderer.config in the same dir
# the x2t binary is located:
ln -s $out/etc/DoctRenderer.config $out/bin/DoctRenderer.config
runHook postInstall
'';
passthru.tests = {
+2 -1
View File
@@ -8,7 +8,8 @@
assert zeroad-unwrapped.version == zeroad-data.version;
buildEnv {
name = "zeroad-${zeroad-unwrapped.version}";
pname = "zeroad";
inherit (zeroad-unwrapped) version;
nativeBuildInputs = [ makeWrapper ];
@@ -3,18 +3,21 @@
buildPythonPackage,
fetchFromGitHub,
pytestCheckHook,
setuptools,
}:
buildPythonPackage rec {
buildPythonPackage (finalAttrs: {
pname = "cstruct";
version = "6.1";
format = "setuptools";
version = "6.2";
pyproject = true;
build-system = [ setuptools ];
src = fetchFromGitHub {
owner = "andreax79";
repo = "python-cstruct";
tag = "v${version}";
hash = "sha256-9MC6f8U++vJkglBmGMTmiamE8XqUNKTzKOz7TA148Ys=";
tag = "v${finalAttrs.version}";
hash = "sha256-jLpuvApEP8Acva/OV3ulwl4+dOy8t/cD/LFJWWnD3BM=";
};
pythonImportsCheck = [ "cstruct" ];
@@ -24,8 +27,8 @@ buildPythonPackage rec {
meta = {
description = "C-style structs for Python";
homepage = "https://github.com/andreax79/python-cstruct";
changelog = "https://github.com/andreax79/python-cstruct/blob/${src.tag}/changelog.txt";
changelog = "https://github.com/andreax79/python-cstruct/blob/${finalAttrs.src.tag}/changelog.txt";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ tnias ];
};
}
})
@@ -8,14 +8,14 @@
buildPythonPackage rec {
pname = "geniushub-client";
version = "0.7.1";
version = "0.7.2";
format = "setuptools";
src = fetchFromGitHub {
owner = "manzanotti";
repo = "geniushub-client";
tag = "v${version}";
hash = "sha256-Gq2scYos7E8me1a4x7NanHRq2eYWuU2uSUwM+O1TPb8=";
hash = "sha256-RBXqSpumJMLZIT+nQr/BUE315krjRy/Qk9OlX9Ukn3Y=";
};
postPatch = ''
@@ -10,12 +10,12 @@
buildPythonPackage (finalAttrs: {
pname = "pyrdfa3";
version = "3.6.4";
version = "3.6.5";
pyproject = true;
src = fetchPypi {
inherit (finalAttrs) pname version;
hash = "sha256-ZHEtGkvyGCllKzlxW62m58A7zxnLSfliwZCjj0YXIkM=";
hash = "sha256-D8KP8UJq+AWxAK/3Fi22pD+iFeN/krzpsRO0Zf61Y+o=";
};
build-system = [ setuptools ];
@@ -12,6 +12,8 @@ let
{
#for substituteAll
inherit bash;
pname = "rust-bindgen";
inherit (rust-bindgen-unwrapped) version;
unwrapped = rust-bindgen-unwrapped;
meta = rust-bindgen-unwrapped.meta // {
longDescription = rust-bindgen-unwrapped.meta.longDescription + ''
+2
View File
@@ -6,6 +6,8 @@
runCommand "ssh-copy-id-${openssh.version}"
{
pname = "ssh-copy-id";
inherit (openssh) version;
outputs = [
"out"
"man"