Merge master into staging-next
This commit is contained in:
@@ -81,12 +81,18 @@ in
|
||||
};
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
boot.initrd.systemd.dmVerity.enable = true;
|
||||
boot.initrd = {
|
||||
systemd.dmVerity.enable = true;
|
||||
supportedFilesystems = {
|
||||
${config.image.repart.partitions.${cfg.partitionIds.store}.repartConfig.Format} =
|
||||
lib.mkDefault true;
|
||||
};
|
||||
};
|
||||
|
||||
image.repart.partitions = {
|
||||
# dm-verity hash partition
|
||||
${cfg.partitionIds.store-verity}.repartConfig = {
|
||||
Type = partitionTypes.usr-verity;
|
||||
Type = lib.mkDefault partitionTypes.usr-verity;
|
||||
Verity = "hash";
|
||||
VerityMatchKey = lib.mkDefault verityMatchKey;
|
||||
Label = lib.mkDefault "store-verity";
|
||||
@@ -95,7 +101,7 @@ in
|
||||
${cfg.partitionIds.store} = {
|
||||
storePaths = [ config.system.build.toplevel ];
|
||||
repartConfig = {
|
||||
Type = partitionTypes.usr;
|
||||
Type = lib.mkDefault partitionTypes.usr;
|
||||
Verity = "data";
|
||||
Format = lib.mkDefault "erofs";
|
||||
VerityMatchKey = lib.mkDefault verityMatchKey;
|
||||
|
||||
@@ -26,7 +26,7 @@ let
|
||||
lib.mapAttrsToList (key: val: "${key} = ${valueToString val}") value ));
|
||||
};
|
||||
|
||||
|
||||
# Manual initialization tool
|
||||
initTool = pkgs.writeShellScriptBin "mfsmaster-init" ''
|
||||
if [ ! -e ${cfg.master.settings.DATA_PATH}/metadata.mfs ]; then
|
||||
cp ${pkgs.moosefs}/var/mfs/metadata.mfs.empty ${cfg.master.settings.DATA_PATH}
|
||||
@@ -37,19 +37,10 @@ let
|
||||
fi
|
||||
'';
|
||||
|
||||
# master config file
|
||||
masterCfg = settingsFormat.generate
|
||||
"mfsmaster.cfg" cfg.master.settings;
|
||||
masterCfg = settingsFormat.generate "mfsmaster.cfg" cfg.master.settings;
|
||||
metaloggerCfg = settingsFormat.generate "mfsmetalogger.cfg" cfg.metalogger.settings;
|
||||
chunkserverCfg = settingsFormat.generate "mfschunkserver.cfg" cfg.chunkserver.settings;
|
||||
|
||||
# metalogger config file
|
||||
metaloggerCfg = settingsFormat.generate
|
||||
"mfsmetalogger.cfg" cfg.metalogger.settings;
|
||||
|
||||
# chunkserver config file
|
||||
chunkserverCfg = settingsFormat.generate
|
||||
"mfschunkserver.cfg" cfg.chunkserver.settings;
|
||||
|
||||
# generic template for all daemons
|
||||
systemdService = name: extraConfig: configFile: {
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
wants = [ "network-online.target" ];
|
||||
@@ -66,40 +57,43 @@ let
|
||||
|
||||
in {
|
||||
###### interface
|
||||
|
||||
options = {
|
||||
services.moosefs = {
|
||||
masterHost = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
default = null;
|
||||
description = "IP or DNS name of master host.";
|
||||
description = "IP or DNS name of the MooseFS master server.";
|
||||
};
|
||||
|
||||
runAsUser = lib.mkOption {
|
||||
type = lib.types.bool;
|
||||
default = true;
|
||||
example = true;
|
||||
description = "Run daemons as user moosefs instead of root.";
|
||||
description = "Run daemons as moosefs user instead of root for better security.";
|
||||
};
|
||||
|
||||
client.enable = lib.mkEnableOption "Moosefs client";
|
||||
client.enable = lib.mkEnableOption "MooseFS client";
|
||||
|
||||
master = {
|
||||
enable = lib.mkOption {
|
||||
type = lib.types.bool;
|
||||
description = ''
|
||||
Enable Moosefs master daemon.
|
||||
|
||||
You need to run `mfsmaster-init` on a freshly installed master server to
|
||||
initialize the `DATA_PATH` directory.
|
||||
Enable MooseFS master daemon.
|
||||
The master server coordinates all MooseFS operations and stores metadata.
|
||||
'';
|
||||
default = false;
|
||||
};
|
||||
|
||||
autoInit = lib.mkOption {
|
||||
type = lib.types.bool;
|
||||
default = false;
|
||||
description = "Whether to automatically initialize the master's metadata directory on first run. Use with caution.";
|
||||
};
|
||||
|
||||
exports = lib.mkOption {
|
||||
type = with lib.types; listOf str;
|
||||
default = null;
|
||||
description = "Paths to export (see mfsexports.cfg).";
|
||||
description = "Export definitions for MooseFS (see mfsexports.cfg).";
|
||||
example = [
|
||||
"* / rw,alldirs,admin,maproot=0:0"
|
||||
"* . rw"
|
||||
@@ -108,7 +102,7 @@ in {
|
||||
|
||||
openFirewall = lib.mkOption {
|
||||
type = lib.types.bool;
|
||||
description = "Whether to automatically open the necessary ports in the firewall.";
|
||||
description = "Whether to automatically open required firewall ports for master service.";
|
||||
default = false;
|
||||
};
|
||||
|
||||
@@ -119,16 +113,15 @@ in {
|
||||
options.DATA_PATH = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
default = "/var/lib/mfs";
|
||||
description = "Data storage directory.";
|
||||
description = "Directory for storing master metadata.";
|
||||
};
|
||||
};
|
||||
|
||||
description = "Contents of config file (mfsmaster.cfg).";
|
||||
description = "Master configuration options (mfsmaster.cfg).";
|
||||
};
|
||||
};
|
||||
|
||||
metalogger = {
|
||||
enable = lib.mkEnableOption "Moosefs metalogger daemon";
|
||||
enable = lib.mkEnableOption "MooseFS metalogger daemon that maintains a backup copy of the master's metadata";
|
||||
|
||||
settings = lib.mkOption {
|
||||
type = lib.types.submodule {
|
||||
@@ -137,28 +130,27 @@ in {
|
||||
options.DATA_PATH = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
default = "/var/lib/mfs";
|
||||
description = "Data storage directory";
|
||||
description = "Directory for storing metalogger data.";
|
||||
};
|
||||
};
|
||||
|
||||
description = "Contents of metalogger config file (mfsmetalogger.cfg).";
|
||||
description = "Metalogger configuration options (mfsmetalogger.cfg).";
|
||||
};
|
||||
};
|
||||
|
||||
chunkserver = {
|
||||
enable = lib.mkEnableOption "Moosefs chunkserver daemon";
|
||||
enable = lib.mkEnableOption "MooseFS chunkserver daemon that stores file data";
|
||||
|
||||
openFirewall = lib.mkOption {
|
||||
type = lib.types.bool;
|
||||
description = "Whether to automatically open the necessary ports in the firewall.";
|
||||
description = "Whether to automatically open required firewall ports for chunkserver service.";
|
||||
default = false;
|
||||
};
|
||||
|
||||
hdds = lib.mkOption {
|
||||
type = with lib.types; listOf str;
|
||||
default = null;
|
||||
description = "Mount points to be used by chunkserver for storage (see mfshdd.cfg).";
|
||||
example = [ "/mnt/hdd1" ];
|
||||
default = null;
|
||||
description = "Mount points used by chunkserver for data storage (see mfshdd.cfg).";
|
||||
example = [ "/mnt/hdd1" "/mnt/hdd2" ];
|
||||
};
|
||||
|
||||
settings = lib.mkOption {
|
||||
@@ -168,29 +160,65 @@ in {
|
||||
options.DATA_PATH = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
default = "/var/lib/mfs";
|
||||
description = "Directory for lock file.";
|
||||
description = "Directory for lock files and other runtime data.";
|
||||
};
|
||||
};
|
||||
description = "Chunkserver configuration options (mfschunkserver.cfg).";
|
||||
};
|
||||
};
|
||||
|
||||
description = "Contents of chunkserver config file (mfschunkserver.cfg).";
|
||||
cgiserver = {
|
||||
enable = lib.mkEnableOption ''
|
||||
MooseFS CGI server for web interface.
|
||||
Warning: The CGI server interface should be properly secured from unauthorized access,
|
||||
as it provides full control over your MooseFS installation.
|
||||
'';
|
||||
|
||||
openFirewall = lib.mkOption {
|
||||
type = lib.types.bool;
|
||||
description = "Whether to automatically open the web interface port.";
|
||||
default = false;
|
||||
};
|
||||
|
||||
settings = lib.mkOption {
|
||||
type = lib.types.submodule {
|
||||
freeformType = settingsFormat.type;
|
||||
options = {
|
||||
BIND_HOST = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
default = "0.0.0.0";
|
||||
description = "IP address to bind CGI server to.";
|
||||
};
|
||||
|
||||
PORT = lib.mkOption {
|
||||
type = lib.types.port;
|
||||
default = 9425;
|
||||
description = "Port for CGI server to listen on.";
|
||||
};
|
||||
};
|
||||
};
|
||||
default = {};
|
||||
description = "CGI server configuration options.";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
###### implementation
|
||||
config = lib.mkIf (cfg.client.enable || cfg.master.enable || cfg.metalogger.enable || cfg.chunkserver.enable || cfg.cgiserver.enable) {
|
||||
warnings = [ ( lib.mkIf (!cfg.runAsUser) "Running MooseFS services as root is not recommended.") ];
|
||||
|
||||
config = lib.mkIf ( cfg.client.enable || cfg.master.enable || cfg.metalogger.enable || cfg.chunkserver.enable ) {
|
||||
|
||||
warnings = [ ( lib.mkIf (!cfg.runAsUser) "Running moosefs services as root is not recommended.") ];
|
||||
|
||||
# Service settings
|
||||
services.moosefs = {
|
||||
master.settings = lib.mkIf cfg.master.enable {
|
||||
WORKING_USER = mfsUser;
|
||||
EXPORTS_FILENAME = toString ( pkgs.writeText "mfsexports.cfg"
|
||||
(lib.concatStringsSep "\n" cfg.master.exports));
|
||||
};
|
||||
master.settings = lib.mkIf cfg.master.enable (lib.mkMerge [
|
||||
{
|
||||
WORKING_USER = mfsUser;
|
||||
EXPORTS_FILENAME = toString ( pkgs.writeText "mfsexports.cfg"
|
||||
(lib.concatStringsSep "\n" cfg.master.exports));
|
||||
}
|
||||
(lib.mkIf cfg.cgiserver.enable {
|
||||
MFSCGISERV = toString cfg.cgiserver.settings.PORT;
|
||||
})
|
||||
]);
|
||||
|
||||
metalogger.settings = lib.mkIf cfg.metalogger.enable {
|
||||
WORKING_USER = mfsUser;
|
||||
@@ -205,11 +233,10 @@ in {
|
||||
};
|
||||
};
|
||||
|
||||
# Create system user account for daemons
|
||||
users = lib.mkIf ( cfg.runAsUser && ( cfg.master.enable || cfg.metalogger.enable || cfg.chunkserver.enable ) ) {
|
||||
users = lib.mkIf ( cfg.runAsUser && ( cfg.master.enable || cfg.metalogger.enable || cfg.chunkserver.enable || cfg.cgiserver.enable ) ) {
|
||||
users.moosefs = {
|
||||
isSystemUser = true;
|
||||
description = "moosefs daemon user";
|
||||
description = "MooseFS daemon user";
|
||||
group = "moosefs";
|
||||
};
|
||||
groups.moosefs = {};
|
||||
@@ -219,28 +246,74 @@ in {
|
||||
(lib.optional cfg.client.enable pkgs.moosefs) ++
|
||||
(lib.optional cfg.master.enable initTool);
|
||||
|
||||
networking.firewall.allowedTCPPorts =
|
||||
(lib.optionals cfg.master.openFirewall [ 9419 9420 9421 ]) ++
|
||||
(lib.optional cfg.chunkserver.openFirewall 9422);
|
||||
networking.firewall.allowedTCPPorts = lib.mkMerge [
|
||||
(lib.optionals cfg.master.openFirewall [ 9419 9420 9421 ])
|
||||
(lib.optional cfg.chunkserver.openFirewall 9422)
|
||||
(lib.optional (cfg.cgiserver.enable && cfg.cgiserver.openFirewall) cfg.cgiserver.settings.PORT)
|
||||
];
|
||||
|
||||
# Ensure storage directories exist
|
||||
systemd.tmpfiles.rules =
|
||||
lib.optional cfg.master.enable "d ${cfg.master.settings.DATA_PATH} 0700 ${mfsUser} ${mfsUser}"
|
||||
++ lib.optional cfg.metalogger.enable "d ${cfg.metalogger.settings.DATA_PATH} 0700 ${mfsUser} ${mfsUser}"
|
||||
++ lib.optional cfg.chunkserver.enable "d ${cfg.chunkserver.settings.DATA_PATH} 0700 ${mfsUser} ${mfsUser}";
|
||||
systemd.tmpfiles.rules = [
|
||||
# Master directories
|
||||
(lib.optionalString cfg.master.enable
|
||||
"d ${cfg.master.settings.DATA_PATH} 0700 ${mfsUser} ${mfsUser} -")
|
||||
|
||||
# Service definitions
|
||||
systemd.services.mfs-master = lib.mkIf cfg.master.enable
|
||||
( systemdService "master" {
|
||||
TimeoutStartSec = 1800;
|
||||
TimeoutStopSec = 1800;
|
||||
Restart = "no";
|
||||
} masterCfg );
|
||||
# Metalogger directories
|
||||
(lib.optionalString cfg.metalogger.enable
|
||||
"d ${cfg.metalogger.settings.DATA_PATH} 0700 ${mfsUser} ${mfsUser} -")
|
||||
|
||||
systemd.services.mfs-metalogger = lib.mkIf cfg.metalogger.enable
|
||||
( systemdService "metalogger" { Restart = "on-abnormal"; } metaloggerCfg );
|
||||
# Chunkserver directories
|
||||
(lib.optionalString cfg.chunkserver.enable
|
||||
"d ${cfg.chunkserver.settings.DATA_PATH} 0700 ${mfsUser} ${mfsUser} -")
|
||||
] ++ lib.optionals (cfg.chunkserver.enable && cfg.chunkserver.hdds != null)
|
||||
(map (dir: "d ${dir} 0755 ${mfsUser} ${mfsUser} -") cfg.chunkserver.hdds);
|
||||
|
||||
systemd.services.mfs-chunkserver = lib.mkIf cfg.chunkserver.enable
|
||||
( systemdService "chunkserver" { Restart = "on-abnormal"; } chunkserverCfg );
|
||||
};
|
||||
systemd.services = lib.mkMerge [
|
||||
(lib.mkIf cfg.master.enable {
|
||||
mfs-master = (lib.mkMerge [
|
||||
(systemdService "master" {
|
||||
TimeoutStartSec = 1800;
|
||||
TimeoutStopSec = 1800;
|
||||
Restart = "on-failure";
|
||||
User = mfsUser;
|
||||
} masterCfg)
|
||||
{
|
||||
preStart = lib.mkIf cfg.master.autoInit "${initTool}/bin/mfsmaster-init";
|
||||
}
|
||||
]);
|
||||
})
|
||||
|
||||
(lib.mkIf cfg.metalogger.enable {
|
||||
mfs-metalogger = systemdService "metalogger" {
|
||||
Restart = "on-abnormal";
|
||||
User = mfsUser;
|
||||
} metaloggerCfg;
|
||||
})
|
||||
|
||||
(lib.mkIf cfg.chunkserver.enable {
|
||||
mfs-chunkserver = systemdService "chunkserver" {
|
||||
Restart = "on-abnormal";
|
||||
User = mfsUser;
|
||||
} chunkserverCfg;
|
||||
})
|
||||
|
||||
(lib.mkIf cfg.cgiserver.enable {
|
||||
mfs-cgiserv = {
|
||||
description = "MooseFS CGI Server";
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
after = [ "mfs-master.service" ];
|
||||
|
||||
serviceConfig = {
|
||||
Type = "simple";
|
||||
ExecStart = "${pkgs.moosefs}/bin/mfscgiserv -D /var/lib/mfs -f start";
|
||||
ExecStop = "${pkgs.moosefs}/bin/mfscgiserv -D /var/lib/mfs stop";
|
||||
Restart = "on-failure";
|
||||
RestartSec = "30s";
|
||||
User = mfsUser;
|
||||
Group = mfsUser;
|
||||
WorkingDirectory = "/var/lib/mfs";
|
||||
};
|
||||
};
|
||||
})
|
||||
];
|
||||
};
|
||||
}
|
||||
|
||||
@@ -29,13 +29,6 @@
|
||||
options = [ "mode=0755" ];
|
||||
};
|
||||
|
||||
"/usr" = {
|
||||
device = "/dev/mapper/usr";
|
||||
# explicitly mount it read-only otherwise systemd-remount-fs will fail
|
||||
options = [ "ro" ];
|
||||
fsType = config.image.repart.partitions.${partitionIds.store}.repartConfig.Format;
|
||||
};
|
||||
|
||||
# bind-mount the store
|
||||
"/nix/store" = {
|
||||
device = "/usr/nix/store";
|
||||
|
||||
@@ -12,6 +12,7 @@ import ./make-test-python.nix (
|
||||
services.moosefs.master = {
|
||||
enable = true;
|
||||
openFirewall = true;
|
||||
autoInit = true;
|
||||
exports = [
|
||||
"* / rw,alldirs,admin,maproot=0:0"
|
||||
"* . rw"
|
||||
@@ -76,8 +77,6 @@ import ./make-test-python.nix (
|
||||
# prepare master server
|
||||
master.start()
|
||||
master.wait_for_unit("multi-user.target")
|
||||
master.succeed("mfsmaster-init")
|
||||
master.succeed("systemctl restart mfs-master")
|
||||
master.wait_for_unit("mfs-master.service")
|
||||
|
||||
metalogger.wait_for_unit("mfs-metalogger.service")
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
lib,
|
||||
stdenv,
|
||||
fetchFromGitLab,
|
||||
fetchFromGitHub,
|
||||
meson,
|
||||
ninja,
|
||||
pkg-config,
|
||||
@@ -19,19 +19,18 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "girara";
|
||||
version = "0.4.3";
|
||||
version = "0.4.5";
|
||||
|
||||
outputs = [
|
||||
"out"
|
||||
"dev"
|
||||
];
|
||||
|
||||
src = fetchFromGitLab {
|
||||
domain = "git.pwmt.org";
|
||||
src = fetchFromGitHub {
|
||||
owner = "pwmt";
|
||||
repo = "girara";
|
||||
rev = version;
|
||||
hash = "sha256-/bJXdLXksTxUFC3w7zuBZY6Zh7tJxUJVbS87ENDQbDE=";
|
||||
tag = version;
|
||||
hash = "sha256-XjRmGgljlkvxwcbPmA9ZFAPAjbClSQDdmQU/GFeLLxI=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
@@ -79,15 +78,15 @@ stdenv.mkDerivation rec {
|
||||
inherit zathura;
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://git.pwmt.org/pwmt/girara";
|
||||
meta = {
|
||||
homepage = "https://pwmt.org/projects/girara";
|
||||
description = "User interface library";
|
||||
longDescription = ''
|
||||
girara is a library that implements a GTK based VIM-like user interface
|
||||
that focuses on simplicity and minimalism.
|
||||
'';
|
||||
license = licenses.zlib;
|
||||
platforms = platforms.linux ++ platforms.darwin;
|
||||
license = lib.licenses.zlib;
|
||||
platforms = lib.platforms.linux ++ lib.platforms.darwin;
|
||||
maintainers = [ ];
|
||||
};
|
||||
}
|
||||
|
||||
@@ -1,8 +1,7 @@
|
||||
{
|
||||
lib,
|
||||
stdenv,
|
||||
fetchFromGitHub,
|
||||
fetchpatch,
|
||||
fetchurl,
|
||||
meson,
|
||||
ninja,
|
||||
wrapGAppsHook3,
|
||||
@@ -33,24 +32,13 @@
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "zathura";
|
||||
version = "0.5.8";
|
||||
version = "0.5.11";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "pwmt";
|
||||
repo = "zathura";
|
||||
rev = finalAttrs.version;
|
||||
hash = "sha256-k6DEJpUA3s0mGxE38aYnX7uea98LrzevJhWW1abHo/c=";
|
||||
src = fetchurl {
|
||||
url = "https://pwmt.org/projects/zathura/download/zathura-${finalAttrs.version}.tar.xz";
|
||||
hash = "sha256-VEWKmZivD7j67y6TSoESe75LeQyG3NLIuPMjZfPRtTw=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
# https://github.com/pwmt/zathura/issues/664
|
||||
(fetchpatch {
|
||||
name = "fix-build-on-macos.patch";
|
||||
url = "https://github.com/pwmt/zathura/commit/53f151f775091abec55ccc4b63893a8f9a668588.patch";
|
||||
hash = "sha256-d8lRdlBN1Kfw/aTjz8x0gvTKy+SqSYWHLQCjV7hF5MI=";
|
||||
})
|
||||
];
|
||||
|
||||
outputs = [
|
||||
"bin"
|
||||
"man"
|
||||
|
||||
@@ -16,6 +16,7 @@
|
||||
zathura_cb
|
||||
(if useMupdf then zathura_pdf_mupdf else zathura_pdf_poppler)
|
||||
],
|
||||
stdenv,
|
||||
}:
|
||||
symlinkJoin {
|
||||
inherit (zathura_core) version;
|
||||
@@ -36,7 +37,12 @@ symlinkJoin {
|
||||
let
|
||||
fishCompletion = "share/fish/vendor_completions.d/zathura.fish";
|
||||
in
|
||||
''
|
||||
(lib.optionalString stdenv.hostPlatform.isLinux ''
|
||||
makeWrapper ${zathura_core.bin}/bin/zathura-sandbox $out/bin/zathura-sandbox \
|
||||
--prefix PATH ":" "${lib.makeBinPath [ file ]}" \
|
||||
--prefix ZATHURA_PLUGINS_PATH : "$out/lib/zathura"
|
||||
'')
|
||||
+ ''
|
||||
makeWrapper ${zathura_core.bin}/bin/zathura $out/bin/zathura \
|
||||
--prefix PATH ":" "${lib.makeBinPath [ file ]}" \
|
||||
--prefix ZATHURA_PLUGINS_PATH : "$out/lib/zathura"
|
||||
@@ -46,11 +52,11 @@ symlinkJoin {
|
||||
# so we need to fix the path to reference $out instead.
|
||||
rm "$out/${fishCompletion}"
|
||||
substitute "${zathura_core.out}/${fishCompletion}" "$out/${fishCompletion}" \
|
||||
--replace "${zathura_core.out}" "$out"
|
||||
--replace-fail "${zathura_core.out}" "$out"
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://pwmt.org/projects/zathura/";
|
||||
meta = {
|
||||
homepage = "https://pwmt.org/projects/zathura";
|
||||
description = "Highly customizable and functional PDF viewer";
|
||||
longDescription = ''
|
||||
Zathura is a highly customizable and functional PDF viewer based on the
|
||||
@@ -58,9 +64,9 @@ symlinkJoin {
|
||||
is an application that provides a minimalistic and space saving interface
|
||||
as well as an easy usage that mainly focuses on keyboard interaction.
|
||||
'';
|
||||
license = licenses.zlib;
|
||||
platforms = platforms.unix;
|
||||
maintainers = with maintainers; [
|
||||
license = lib.licenses.zlib;
|
||||
platforms = lib.platforms.unix;
|
||||
maintainers = with lib.maintainers; [
|
||||
smironov
|
||||
globin
|
||||
TethysSvensson
|
||||
|
||||
@@ -7,16 +7,16 @@
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "timoni";
|
||||
version = "0.22.1";
|
||||
version = "0.23.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "stefanprodan";
|
||||
repo = "timoni";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-bztaG+agcByiIFR4vp0QCDzL9AvLJoZRyMjwSggtwio=";
|
||||
hash = "sha256-WlsBW8c6x68oM6g/bVXzPgIglMn+rPcfJKXmUZPC0n0=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-VHR5eQWC5e45ZcpCunrUPdvFKMETRZxHLZnl7FbyFcI=";
|
||||
vendorHash = "sha256-mv9H0D99am/VXTP01sXQ+4Dt513Zmo0VffkUVPyF3Kk=";
|
||||
|
||||
subPackages = [ "cmd/timoni" ];
|
||||
nativeBuildInputs = [ installShellFiles ];
|
||||
|
||||
@@ -1,4 +1,8 @@
|
||||
{ makeDesktopItem, pname, suiteName }:
|
||||
{
|
||||
makeDesktopItem,
|
||||
pname,
|
||||
suiteName,
|
||||
}:
|
||||
|
||||
{
|
||||
planmaker = makeDesktopItem {
|
||||
|
||||
@@ -1,27 +1,32 @@
|
||||
{ callPackage
|
||||
, fetchurl
|
||||
{
|
||||
callPackage,
|
||||
fetchurl,
|
||||
|
||||
# This is a bit unusual, but makes version and hash easily
|
||||
# overridable. This is useful when the upstream archive was replaced
|
||||
# and nixpkgs is not in sync yet.
|
||||
, officeVersion ? {
|
||||
version = "1054";
|
||||
edition = "2021";
|
||||
hash = "sha256-dqmJUm0Qi1/GzGrI4OCHo1LwQ5KxMwZZw5EsYTMF6XU=";
|
||||
}
|
||||
officeVersion ? {
|
||||
version = "1220";
|
||||
edition = "2024";
|
||||
hash = "sha256-F1Srm3/4UPifYls21MhjbpxSyLaT0gEVzEMQF0gIzi0=";
|
||||
},
|
||||
|
||||
, ... } @ args:
|
||||
...
|
||||
}@args:
|
||||
|
||||
callPackage ./generic.nix (args // rec {
|
||||
inherit (officeVersion) version edition;
|
||||
callPackage ./generic.nix (
|
||||
args
|
||||
// rec {
|
||||
inherit (officeVersion) version edition;
|
||||
|
||||
pname = "freeoffice";
|
||||
suiteName = "FreeOffice";
|
||||
pname = "freeoffice";
|
||||
suiteName = "FreeOffice";
|
||||
|
||||
src = fetchurl {
|
||||
inherit (officeVersion) hash;
|
||||
url = "https://www.softmaker.net/down/softmaker-freeoffice-${edition}-${version}-amd64.tgz";
|
||||
};
|
||||
src = fetchurl {
|
||||
inherit (officeVersion) hash;
|
||||
url = "https://www.softmaker.net/down/softmaker-freeoffice-${edition}-${version}-amd64.tgz";
|
||||
};
|
||||
|
||||
archive = "freeoffice${edition}.tar.lzma";
|
||||
})
|
||||
archive = "freeoffice${edition}.tar.lzma";
|
||||
}
|
||||
)
|
||||
|
||||
@@ -1,18 +1,40 @@
|
||||
{ lib, stdenv, autoPatchelfHook, makeDesktopItem, makeWrapper, copyDesktopItems
|
||||
{
|
||||
lib,
|
||||
stdenv,
|
||||
autoPatchelfHook,
|
||||
makeDesktopItem,
|
||||
makeWrapper,
|
||||
copyDesktopItems,
|
||||
|
||||
# Dynamic Libraries
|
||||
, curl, libGL, libX11, libXext, libXmu, libXrandr, libXrender
|
||||
curl,
|
||||
glib,
|
||||
gst_all_1,
|
||||
libGL,
|
||||
libX11,
|
||||
libXext,
|
||||
libXmu,
|
||||
libXrandr,
|
||||
libXrender,
|
||||
|
||||
# For fixing up execution of /bin/ls, which is necessary for
|
||||
# product unlocking.
|
||||
, coreutils, libredirect
|
||||
coreutils,
|
||||
libredirect,
|
||||
|
||||
# Extra utilities used by the SoftMaker applications.
|
||||
, gnugrep, util-linux, which
|
||||
gnugrep,
|
||||
util-linux,
|
||||
which,
|
||||
|
||||
, pname, version, edition, suiteName, src, archive
|
||||
pname,
|
||||
version,
|
||||
edition,
|
||||
suiteName,
|
||||
src,
|
||||
archive,
|
||||
|
||||
, ...
|
||||
...
|
||||
}:
|
||||
|
||||
let
|
||||
@@ -20,7 +42,8 @@ let
|
||||
inherit makeDesktopItem pname suiteName;
|
||||
};
|
||||
shortEdition = builtins.substring 2 2 edition;
|
||||
in stdenv.mkDerivation {
|
||||
in
|
||||
stdenv.mkDerivation {
|
||||
inherit pname src;
|
||||
|
||||
version = "${edition}.${version}";
|
||||
@@ -33,6 +56,9 @@ in stdenv.mkDerivation {
|
||||
|
||||
buildInputs = [
|
||||
curl
|
||||
glib
|
||||
gst_all_1.gstreamer
|
||||
gst_all_1.gst-plugins-base
|
||||
libGL
|
||||
libX11
|
||||
libXext
|
||||
@@ -56,66 +82,75 @@ in stdenv.mkDerivation {
|
||||
runHook postUnpack
|
||||
'';
|
||||
|
||||
installPhase = let
|
||||
# SoftMaker/FreeOffice collects some system information upon
|
||||
# unlocking the product. But in doing so, it attempts to execute
|
||||
# /bin/ls. If the execve syscall fails, the whole unlock
|
||||
# procedure fails. This works around that by rewriting /bin/ls
|
||||
# to the proper path.
|
||||
#
|
||||
# In addition, it expects some common utilities (which, whereis)
|
||||
# to be in the path.
|
||||
#
|
||||
# SoftMaker Office restarts itself upon some operations, such
|
||||
# changing the theme and unlocking. Unfortunately, we do not
|
||||
# have control over its environment then and it will fail
|
||||
# with an error.
|
||||
extraWrapperArgs = ''
|
||||
--set LD_PRELOAD "${libredirect}/lib/libredirect.so" \
|
||||
--set NIX_REDIRECTS "/bin/ls=${coreutils}/bin/ls" \
|
||||
--prefix PATH : "${lib.makeBinPath [ coreutils gnugrep util-linux which ]}"
|
||||
installPhase =
|
||||
let
|
||||
# SoftMaker/FreeOffice collects some system information upon
|
||||
# unlocking the product. But in doing so, it attempts to execute
|
||||
# /bin/ls. If the execve syscall fails, the whole unlock
|
||||
# procedure fails. This works around that by rewriting /bin/ls
|
||||
# to the proper path.
|
||||
#
|
||||
# In addition, it expects some common utilities (which, whereis)
|
||||
# to be in the path.
|
||||
#
|
||||
# SoftMaker Office restarts itself upon some operations, such
|
||||
# changing the theme and unlocking. Unfortunately, we do not
|
||||
# have control over its environment then and it will fail
|
||||
# with an error.
|
||||
extraWrapperArgs = ''
|
||||
--set LD_PRELOAD "${libredirect}/lib/libredirect.so" \
|
||||
--set NIX_REDIRECTS "/bin/ls=${coreutils}/bin/ls" \
|
||||
--prefix PATH : "${
|
||||
lib.makeBinPath [
|
||||
coreutils
|
||||
gnugrep
|
||||
util-linux
|
||||
which
|
||||
]
|
||||
}"
|
||||
'';
|
||||
in
|
||||
''
|
||||
runHook preInstall
|
||||
|
||||
mkdir -p $out/share
|
||||
cp -r ${pname} $out/share/${pname}${edition}
|
||||
|
||||
# Wrap rather than symlinking, so that the programs can determine
|
||||
# their resource path.
|
||||
mkdir -p $out/bin
|
||||
makeWrapper $out/share/${pname}${edition}/planmaker $out/bin/${pname}-planmaker \
|
||||
${extraWrapperArgs}
|
||||
makeWrapper $out/share/${pname}${edition}/presentations $out/bin/${pname}-presentations \
|
||||
${extraWrapperArgs}
|
||||
makeWrapper $out/share/${pname}${edition}/textmaker $out/bin/${pname}-textmaker \
|
||||
${extraWrapperArgs}
|
||||
|
||||
for size in 16 32 48 64 96 128 256 512 1024; do
|
||||
mkdir -p $out/share/icons/hicolor/''${size}x''${size}/apps
|
||||
|
||||
for app in pml prl tml; do
|
||||
ln -s $out/share/${pname}${edition}/icons/''${app}_''${size}.png \
|
||||
$out/share/icons/hicolor/''${size}x''${size}/apps/${pname}-''${app}.png
|
||||
done
|
||||
|
||||
mkdir -p $out/share/icons/hicolor/''${size}x''${size}/mimetypes
|
||||
|
||||
for mimetype in pmd prd tmd; do
|
||||
ln -s $out/share/${pname}${edition}/icons/''${mimetype}_''${size}.png \
|
||||
$out/share/icons/hicolor/''${size}x''${size}/mimetypes/application-x-''${mimetype}.png
|
||||
done
|
||||
done
|
||||
|
||||
# freeoffice 973 misses the 96x96 application icons, giving broken symbolic links
|
||||
# remove broken symbolic links
|
||||
find $out -xtype l -ls -exec rm {} \;
|
||||
|
||||
# Add mime types
|
||||
install -D -t $out/share/mime/packages ${pname}/mime/softmaker-*office*${shortEdition}.xml
|
||||
|
||||
runHook postInstall
|
||||
'';
|
||||
in ''
|
||||
runHook preInstall
|
||||
|
||||
mkdir -p $out/share
|
||||
cp -r ${pname} $out/share/${pname}${edition}
|
||||
|
||||
# Wrap rather than symlinking, so that the programs can determine
|
||||
# their resource path.
|
||||
mkdir -p $out/bin
|
||||
makeWrapper $out/share/${pname}${edition}/planmaker $out/bin/${pname}-planmaker \
|
||||
${extraWrapperArgs}
|
||||
makeWrapper $out/share/${pname}${edition}/presentations $out/bin/${pname}-presentations \
|
||||
${extraWrapperArgs}
|
||||
makeWrapper $out/share/${pname}${edition}/textmaker $out/bin/${pname}-textmaker \
|
||||
${extraWrapperArgs}
|
||||
|
||||
for size in 16 32 48 64 96 128 256 512 1024; do
|
||||
mkdir -p $out/share/icons/hicolor/''${size}x''${size}/apps
|
||||
|
||||
for app in pml prl tml; do
|
||||
ln -s $out/share/${pname}${edition}/icons/''${app}_''${size}.png \
|
||||
$out/share/icons/hicolor/''${size}x''${size}/apps/${pname}-''${app}.png
|
||||
done
|
||||
|
||||
mkdir -p $out/share/icons/hicolor/''${size}x''${size}/mimetypes
|
||||
|
||||
for mimetype in pmd prd tmd; do
|
||||
ln -s $out/share/${pname}${edition}/icons/''${mimetype}_''${size}.png \
|
||||
$out/share/icons/hicolor/''${size}x''${size}/mimetypes/application-x-''${mimetype}.png
|
||||
done
|
||||
done
|
||||
|
||||
# freeoffice 973 misses the 96x96 application icons, giving broken symbolic links
|
||||
# remove broken symbolic links
|
||||
find $out -xtype l -ls -exec rm {} \;
|
||||
|
||||
# Add mime types
|
||||
install -D -t $out/share/mime/packages ${pname}/mime/softmaker-*office*${shortEdition}.xml
|
||||
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
desktopItems = builtins.attrValues desktopItems;
|
||||
|
||||
|
||||
@@ -1,28 +1,33 @@
|
||||
{ callPackage
|
||||
, fetchurl
|
||||
{
|
||||
callPackage,
|
||||
fetchurl,
|
||||
|
||||
# This is a bit unusual, but makes version and hash easily
|
||||
# overridable. This is useful when people have an older version of
|
||||
# Softmaker Office or when the upstream archive was replaced and
|
||||
# nixpkgs is not in sync yet.
|
||||
, officeVersion ? {
|
||||
version = "1032";
|
||||
edition = "2021";
|
||||
hash = "sha256-LchSqLVBdkmWJQ8hCEvtwRPgIUSDE0URKPzCkEexGbc=";
|
||||
}
|
||||
officeVersion ? {
|
||||
version = "1222";
|
||||
edition = "2024";
|
||||
hash = "sha256-eyYBK5ZxPcBakOvXUQZIU2aftyH6PXh/rtqC/1BJhg4=";
|
||||
},
|
||||
|
||||
, ... } @ args:
|
||||
...
|
||||
}@args:
|
||||
|
||||
callPackage ./generic.nix (args // rec {
|
||||
inherit (officeVersion) version edition;
|
||||
callPackage ./generic.nix (
|
||||
args
|
||||
// rec {
|
||||
inherit (officeVersion) version edition;
|
||||
|
||||
pname = "softmaker-office";
|
||||
suiteName = "SoftMaker Office";
|
||||
pname = "softmaker-office";
|
||||
suiteName = "SoftMaker Office";
|
||||
|
||||
src = fetchurl {
|
||||
inherit (officeVersion) hash;
|
||||
url = "https://www.softmaker.net/down/softmaker-office-${edition}-${version}-amd64.tgz";
|
||||
};
|
||||
src = fetchurl {
|
||||
inherit (officeVersion) hash;
|
||||
url = "https://www.softmaker.net/down/softmaker-office-${edition}-${version}-amd64.tgz";
|
||||
};
|
||||
|
||||
archive = "office${edition}.tar.lzma";
|
||||
})
|
||||
archive = "office${edition}.tar.lzma";
|
||||
}
|
||||
)
|
||||
|
||||
@@ -2,11 +2,11 @@
|
||||
|
||||
let
|
||||
pname = "anytype";
|
||||
version = "0.43.4";
|
||||
version = "0.43.8";
|
||||
name = "Anytype-${version}";
|
||||
src = fetchurl {
|
||||
url = "https://github.com/anyproto/anytype-ts/releases/download/v${version}/${name}.AppImage";
|
||||
hash = "sha256-2/+bLRx+iVTBDAH599+TpLquq/z/2FFJ5i6Mz8u4HuM=";
|
||||
hash = "sha256-inqJvx5K/k97X50E0FYlzJDKqrVjAU6ZKIVdCWHr8NI=";
|
||||
};
|
||||
appimageContents = appimageTools.extractType2 { inherit pname version src; };
|
||||
in appimageTools.wrapType2 {
|
||||
|
||||
+9
-9
@@ -3,26 +3,26 @@
|
||||
rustPlatform,
|
||||
fetchFromGitHub,
|
||||
stdenv,
|
||||
Security,
|
||||
darwin,
|
||||
}:
|
||||
|
||||
let
|
||||
inherit (darwin.apple_sdk.frameworks) Security;
|
||||
in
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "agg";
|
||||
version = "1.4.3";
|
||||
version = "1.5.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "asciinema";
|
||||
repo = "agg";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-WCUYnveTWWQOzhIViMkSnyQ6vgLs5HDLWa/xvfZMh3A=";
|
||||
hash = "sha256-bCE59NeITaCwgajgyXgP6jxtV7aPihPaZ/Uzh39Po1k=";
|
||||
};
|
||||
|
||||
cargoLock = {
|
||||
lockFile = ./Cargo.lock;
|
||||
outputHashes = {
|
||||
"avt-0.8.0" = "sha256-5IN8P/2UWJ2EmkbbTSGWECTqiD8TeOd8LgwLZ+W2z90=";
|
||||
};
|
||||
};
|
||||
strictDeps = true;
|
||||
|
||||
cargoHash = "sha256-K472Qrsi2FIEOxFMi5CDgau2ODU0P3VDQEz/cwzmKiM=";
|
||||
|
||||
buildInputs = lib.optionals stdenv.hostPlatform.isDarwin [
|
||||
Security
|
||||
@@ -0,0 +1,41 @@
|
||||
{
|
||||
buildGoModule,
|
||||
pkgs,
|
||||
fetchFromGitHub,
|
||||
lib,
|
||||
}:
|
||||
let
|
||||
version = "0.6.6";
|
||||
pname = "bigquery-emulator";
|
||||
in
|
||||
buildGoModule.override
|
||||
{
|
||||
stdenv = pkgs.clangStdenv;
|
||||
}
|
||||
{
|
||||
name = pname;
|
||||
src = fetchFromGitHub {
|
||||
owner = "goccy";
|
||||
repo = pname;
|
||||
rev = "refs/tags/v${version}";
|
||||
hash = "sha256-iAVbxbm1G7FIWTB5g6Ff8h2dZjZssONA2MOCGuvK180=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-TQlsivudutyPFW+3HHX7rYuoB5wafmDTAO1TElO/8pc=";
|
||||
postPatch = ''
|
||||
# main module does not contain package
|
||||
rm -r internal/cmd/generator
|
||||
'';
|
||||
|
||||
ldflags = [ "-s -w -X main.version=${version} -X main.revision=v${version}" ];
|
||||
doCheck = false;
|
||||
|
||||
meta = with lib; {
|
||||
description = "BigQuery emulator server implemented in Go.";
|
||||
homepage = "https://github.com/goccy/bigquery-emulator";
|
||||
changelog = "https://github.com/goccy/pname/releases/tag/v${version}";
|
||||
license = licenses.mit;
|
||||
maintainers = with maintainers; [ tarantoj ];
|
||||
mainProgram = "bigquery-emulator";
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,62 @@
|
||||
{
|
||||
autoPatchelfHook,
|
||||
lib,
|
||||
fetchFromGitHub,
|
||||
flutter324,
|
||||
mpv,
|
||||
pkg-config,
|
||||
makeDesktopItem,
|
||||
wrapGAppsHook3,
|
||||
copyDesktopItems,
|
||||
}:
|
||||
flutter324.buildFlutterApplication rec {
|
||||
pname = "bloomeetunes";
|
||||
version = "2.10.9";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "HemantKArya";
|
||||
repo = "BloomeeTunes";
|
||||
rev = "v${version}+152";
|
||||
hash = "sha256-Yv0aSq2eBcHKpy4PPjAhx194UW8Gm0UJlE+F+onZYFM=";
|
||||
};
|
||||
|
||||
pubspecLock = lib.importJSON ./pubspec.lock.json;
|
||||
|
||||
desktopItems = [
|
||||
(makeDesktopItem {
|
||||
name = "bloomeetunes";
|
||||
exec = "bloomee";
|
||||
icon = "bloomeetunes";
|
||||
genericName = "Music Player";
|
||||
desktopName = "Bloomee Tunes";
|
||||
})
|
||||
];
|
||||
|
||||
nativeBuildInputs = [
|
||||
pkg-config
|
||||
autoPatchelfHook
|
||||
wrapGAppsHook3
|
||||
copyDesktopItems
|
||||
];
|
||||
|
||||
postInstall = ''
|
||||
install -Dm644 ./assets/icons/bloomee_new_logo_c.png $out/share/pixmaps/bloomeetunes.png
|
||||
'';
|
||||
|
||||
extraWrapProgramArgs = ''
|
||||
--prefix LD_LIBRARY_PATH : "$out/app/bloomeetunes/lib:${
|
||||
lib.makeLibraryPath [
|
||||
mpv
|
||||
]
|
||||
}"
|
||||
'';
|
||||
|
||||
meta = {
|
||||
description = "Cross-platform music app designed to bring you ad-free tunes from various sources";
|
||||
homepage = "https://github.com/HemantKArya/BloomeeTunes";
|
||||
mainProgram = "bloomee";
|
||||
license = with lib.licenses; [ gpl2Plus ];
|
||||
maintainers = with lib.maintainers; [ aucub ];
|
||||
platforms = lib.platforms.linux;
|
||||
};
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,23 +1,23 @@
|
||||
{ lib
|
||||
, stdenv
|
||||
, nixosTests
|
||||
, python3
|
||||
, fetchFromGitHub
|
||||
, radicale
|
||||
{
|
||||
lib,
|
||||
stdenv,
|
||||
nixosTests,
|
||||
python3Packages,
|
||||
fetchFromGitHub,
|
||||
radicale,
|
||||
}:
|
||||
|
||||
python3.pkgs.buildPythonApplication {
|
||||
python3Packages.buildPythonApplication rec {
|
||||
pname = "etesync-dav";
|
||||
version = "0.32.1-unstable-2024-09-02";
|
||||
version = "0.33.4";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "etesync";
|
||||
repo = "etesync-dav";
|
||||
rev = "b9b23bf6fba60d42012008ba06023bccd9109c08";
|
||||
hash = "sha256-wWhwnOlwE1rFgROTSj90hlSw4k48fIEdk5CJOXoecuQ=";
|
||||
tag = "v${version}";
|
||||
hash = "sha256-g+rK762tSWPDaBsaTwpTzfK/lqVs+Z/Qrpq2HCpipQE=";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = with python3.pkgs; [
|
||||
dependencies = with python3Packages; [
|
||||
appdirs
|
||||
etebase
|
||||
etesync
|
||||
@@ -25,10 +25,11 @@ python3.pkgs.buildPythonApplication {
|
||||
flask-wtf
|
||||
msgpack
|
||||
setuptools
|
||||
(python.pkgs.toPythonModule (radicale.override { python3 = python; }))
|
||||
(python3Packages.toPythonModule (radicale.override { python3 = python; }))
|
||||
requests
|
||||
types-setuptools
|
||||
] ++ requests.optional-dependencies.socks;
|
||||
requests.optional-dependencies.socks
|
||||
];
|
||||
|
||||
doCheck = false;
|
||||
|
||||
@@ -36,12 +37,15 @@ python3.pkgs.buildPythonApplication {
|
||||
inherit (nixosTests) etesync-dav;
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://www.etesync.com/";
|
||||
meta = {
|
||||
homepage = "https://www.etesync.com";
|
||||
description = "Secure, end-to-end encrypted, and privacy respecting sync for contacts, calendars and tasks";
|
||||
mainProgram = "etesync-dav";
|
||||
license = licenses.gpl3;
|
||||
maintainers = with maintainers; [ thyol valodim ];
|
||||
license = lib.licenses.gpl3Only;
|
||||
maintainers = with lib.maintainers; [
|
||||
thyol
|
||||
valodim
|
||||
];
|
||||
broken = stdenv.hostPlatform.isDarwin; # pyobjc-framework-Cocoa is missing
|
||||
};
|
||||
}
|
||||
|
||||
@@ -30,13 +30,13 @@ let
|
||||
in
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "fido2-manage";
|
||||
version = "0-unstable-2024-09-24";
|
||||
version = "0-unstable-2024-11-22";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "token2";
|
||||
repo = "fido2-manage";
|
||||
rev = "6aef9ceccdf7bcc60a9298e51a4db633256925df";
|
||||
hash = "sha256-rXTL6wpdvCifakmxH14wBLbhTptNYNFGEPskpUy3IjA=";
|
||||
rev = "2c14b222a432e34750bb3929c620bbdffd1c75be";
|
||||
hash = "sha256-xdElYXx+F2XCP5zsbRTmTRyHKGnEt97jNRrQM0Oab5E=";
|
||||
};
|
||||
|
||||
icon = fetchurl {
|
||||
@@ -97,7 +97,7 @@ stdenv.mkDerivation rec {
|
||||
'';
|
||||
|
||||
desktopItems = lib.optionals stdenv.hostPlatform.isLinux [
|
||||
(makeDesktopItem rec {
|
||||
(makeDesktopItem {
|
||||
desktopName = "Fido2 Manager";
|
||||
name = "fido2-manage";
|
||||
exec = "fido2-manage-gui";
|
||||
|
||||
@@ -16,13 +16,13 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "libetonyek";
|
||||
version = "0.1.10";
|
||||
version = "0.1.12";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "LibreOffice";
|
||||
repo = "libetonyek";
|
||||
rev = "libetonyek-${version}";
|
||||
hash = "sha256-wgyeQj1sY78sbbZT+NZuq9HEKB+ta7wwipbfN3JkyyU=";
|
||||
hash = "sha256-dvYbV+7IakgOkGsZ+zaW+qgn/QoD6Jwq/juaE+7iYug=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
||||
@@ -8,23 +8,23 @@
|
||||
|
||||
let
|
||||
hlsJs = fetchurl {
|
||||
url = "https://cdn.jsdelivr.net/npm/hls.js@v1.5.17/dist/hls.min.js";
|
||||
hash = "sha256-SEBU6M0D0/bReB+39AK9wxjYpMUn+TOpXGJOJ8yalHA=";
|
||||
url = "https://cdn.jsdelivr.net/npm/hls.js@v1.5.18/dist/hls.min.js";
|
||||
hash = "sha256-X/LXFN4wvkKPx3sT4B25pLTPAV6bTWs+iGS2XT19Ptc=";
|
||||
};
|
||||
in
|
||||
buildGoModule rec {
|
||||
pname = "mediamtx";
|
||||
# check for hls.js version updates in internal/servers/hls/hlsjsdownloader/VERSION
|
||||
version = "1.9.3";
|
||||
version = "1.10.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "bluenviron";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
hash = "sha256-2qFJujfnlpmiOAmDBPl3hrbbHDOZOWFy8Yh2VOU0FEI=";
|
||||
hash = "sha256-nz+8soxZ6lyc0saB4U3tDsTtqA0kV886M95cA3Gn3R0=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-6MHtYrHZF3Oo53MV1Di0wGw9Xk+2CMei2XeoI0OcKsQ=";
|
||||
vendorHash = "sha256-Csa8G+ji/OoTItu3XbGOySqmNMVdr7QqE8SNCba8cbI=";
|
||||
|
||||
postPatch = ''
|
||||
cp ${hlsJs} internal/servers/hls/hls.min.js
|
||||
@@ -32,7 +32,7 @@ buildGoModule rec {
|
||||
|
||||
# disable binary-only rpi camera support
|
||||
substituteInPlace internal/staticsources/rpicamera/camera_disabled.go \
|
||||
--replace-fail '!linux || (!arm && !arm64)' 'linux'
|
||||
--replace-fail '!linux || (!arm && !arm64)' 'linux || !linux'
|
||||
substituteInPlace internal/staticsources/rpicamera/{component,camera,params_serialize,pipe}.go \
|
||||
--replace-fail '(linux && arm) || (linux && arm64)' 'linux && !linux'
|
||||
substituteInPlace internal/staticsources/rpicamera/component_32.go \
|
||||
|
||||
@@ -8,11 +8,11 @@
|
||||
}:
|
||||
|
||||
let
|
||||
metaCommon = with lib; {
|
||||
metaCommon = {
|
||||
description = "Command-line interface for running Temporal Server and interacting with Workflows, Activities, Namespaces, and other parts of Temporal";
|
||||
homepage = "https://docs.temporal.io/cli";
|
||||
license = licenses.mit;
|
||||
maintainers = with maintainers; [ aaronjheng ];
|
||||
license = lib.licenses.mit;
|
||||
maintainers = with lib.maintainers; [ aaronjheng ];
|
||||
};
|
||||
|
||||
overrideModAttrs = old: {
|
||||
@@ -24,16 +24,16 @@ let
|
||||
|
||||
tctl-next = buildGoModule rec {
|
||||
pname = "tctl-next";
|
||||
version = "1.1.1";
|
||||
version = "1.1.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "temporalio";
|
||||
repo = "cli";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-KDJtCqx9Yp/zhutSElFveWYAKwJCckiM9k3FOtYTlLo=";
|
||||
hash = "sha256-7wURMdi357w5S4s909PTUZanRzFyWM588DMY7iYWP88=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-Vur3e6olkC0Ewz/RDZe2AIpcIs5GqeVgJa+KO9g8X7o=";
|
||||
vendorHash = "sha256-umGwew8RwewlYJQD1psYSd9bu67cPEiHBJkQRJGjyGY=";
|
||||
|
||||
inherit overrideModAttrs;
|
||||
|
||||
|
||||
@@ -6,16 +6,16 @@
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "terramate";
|
||||
version = "0.10.8";
|
||||
version = "0.11.4";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "terramate-io";
|
||||
repo = "terramate";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-fT1yuFFHI88wUXKguWZD+PHU4j3w5eda7kzCDn+Gg+o=";
|
||||
hash = "sha256-RZBafDaSGW01EdvDg8RUynrSO84/pkh3OcVXlSsZ+ao=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-kjzpXOoyTwjpYLBqDuB6Eup5Yzgej2U+HUo4z8V+cEI=";
|
||||
vendorHash = "sha256-PwMxmls7sL9RhgvGKKDwxAeObk7HVBtYLOsIYt90dVU=";
|
||||
|
||||
# required for version info
|
||||
nativeBuildInputs = [ git ];
|
||||
|
||||
@@ -9,16 +9,16 @@
|
||||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "timewall";
|
||||
version = "1.2.0";
|
||||
version = "1.3.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "bcyran";
|
||||
repo = "timewall";
|
||||
rev = version;
|
||||
hash = "sha256-OVLiuYxldk59TbggKNfPtaADz0B6pZ91gP6B6aEjEV8=";
|
||||
hash = "sha256-B3pZCjl7Z78vAYYzceicwjmGfTbzYgrhpldUJnY8Aqs=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-2Ij5bv/M6QXXugMg+tvsXc/38hWzk9lrz990+o+3igI=";
|
||||
cargoHash = "sha256-AYfRZyUitUgWIeDbg00RFbs+VLnIJFHrdpUcjDlkwE8=";
|
||||
|
||||
nativeBuildInputs = [ installShellFiles ];
|
||||
|
||||
|
||||
@@ -14,13 +14,13 @@
|
||||
}:
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "vencord";
|
||||
version = "1.10.8";
|
||||
version = "1.10.9";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "Vendicated";
|
||||
repo = "Vencord";
|
||||
rev = "v${finalAttrs.version}";
|
||||
hash = "sha256-2UOz8o+3jWppk6lWatbG0avcqBFpxHYSMEspCpFWWOk=";
|
||||
hash = "sha256-sU2eJUUw7crvzMGGBQP6rbxISkL+S5nmT3QspyYXlRQ=";
|
||||
};
|
||||
|
||||
pnpmDeps = pnpm.fetchDeps {
|
||||
|
||||
@@ -9,27 +9,25 @@
|
||||
}:
|
||||
flutter327.buildFlutterApplication rec {
|
||||
pname = "venera";
|
||||
version = "1.1.1";
|
||||
version = "1.1.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "venera-app";
|
||||
repo = "venera";
|
||||
tag = "v${version}";
|
||||
hash = "sha256-wahQ3SCuPCloJ7eB8U051aSLHXf8FyQv+fEq58fonj4=";
|
||||
hash = "sha256-zf3KeSoMLmXdD0aEYRPN5IYy0LdMYpqOkCFDmLi2ix0=";
|
||||
};
|
||||
|
||||
pubspecLock = lib.importJSON ./pubspec.lock.json;
|
||||
|
||||
gitHashes = {
|
||||
desktop_webview_window = "sha256-15tw3gLN9e886QjBFuYP34KLD1lN8AmQYXVza5Bvs40=";
|
||||
flutter_qjs = "sha256-IeOuw2oh3WpuYQgfE77BoPU8Qukp4l8SSmZtHebKU4M=";
|
||||
flutter_to_arch = "sha256-DdP82Bdl58XW/BxMyWV3Vh4JYC2DNTjZcQB0fvw72fA=";
|
||||
lodepng_flutter = "sha256-puw+eVe/ZtzV+PTsC0WmP0YLuWu5slFY0r0v/SHyzHI=";
|
||||
flutter_qjs = "sha256-SvOgcZquwZ1/HWVkPVnD8Eo+jD3jjfkKsVleJpNaiV0=";
|
||||
lodepng_flutter = "sha256-bGc9uXD1EQ/19OIZmR7a/YL9w93fNWdQF5S19LSwxZw=";
|
||||
photo_view = "sha256-Z+9xgvk8YS+bgCbBW7BBY72tV6JUq2kCX5OwKFK4YPE=";
|
||||
scrollable_positioned_list = "sha256-6XmBlNxE7DEqY2LsEFtVrshn2Xt55XnmaiTq+tiPInA=";
|
||||
zip_flutter = "sha256-104/tGShkLAOYw9dC/yrt/qnm0NZ+Jk7nkbt3lPcYA8=";
|
||||
webdav_client = "sha256-Dz/4qW+cYGyNtK8S/abFslwQNroidgrHl7oJw3uXIqM=";
|
||||
flutter_saf = "sha256-Blh2YxRlO3U/N6GmCnXhNevQYruWT1Zzl/P2gHSva6k=";
|
||||
flutter_saf = "sha256-haY4eabTwUUBTpwenK0ILKpLggrtjVQszcmlpirEeTU=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
||||
@@ -507,8 +507,8 @@
|
||||
"dependency": "direct main",
|
||||
"description": {
|
||||
"path": ".",
|
||||
"ref": "ade0b9d",
|
||||
"resolved-ref": "ade0b9d67331118c13a2b836684858e251512373",
|
||||
"ref": "1657f62fe7545ac43a339e0a5ee2b82bacd81e9f",
|
||||
"resolved-ref": "1657f62fe7545ac43a339e0a5ee2b82bacd81e9f",
|
||||
"url": "https://github.com/wgh136/flutter_qjs"
|
||||
},
|
||||
"source": "git",
|
||||
@@ -538,8 +538,8 @@
|
||||
"dependency": "direct main",
|
||||
"description": {
|
||||
"path": ".",
|
||||
"ref": "3315082b9f7055655610e4f6f136b69e48228c05",
|
||||
"resolved-ref": "3315082b9f7055655610e4f6f136b69e48228c05",
|
||||
"ref": "7637b8b67d0a831f3cd7e702b8173e300880d32e",
|
||||
"resolved-ref": "7637b8b67d0a831f3cd7e702b8173e300880d32e",
|
||||
"url": "https://github.com/pkuislm/flutter_saf.git"
|
||||
},
|
||||
"source": "git",
|
||||
@@ -554,12 +554,11 @@
|
||||
"flutter_to_arch": {
|
||||
"dependency": "direct dev",
|
||||
"description": {
|
||||
"path": ".",
|
||||
"ref": "HEAD",
|
||||
"resolved-ref": "15bfead0380fda79b0256b37c73b886b0882f1bf",
|
||||
"url": "https://github.com/wgh136/flutter_to_arch"
|
||||
"name": "flutter_to_arch",
|
||||
"sha256": "656cffc182b05af38aa96a1115931620b8865c4b0cfe00813b26fcff0875f2ab",
|
||||
"url": "https://pub.dev"
|
||||
},
|
||||
"source": "git",
|
||||
"source": "hosted",
|
||||
"version": "1.0.0"
|
||||
},
|
||||
"flutter_to_debian": {
|
||||
@@ -782,8 +781,8 @@
|
||||
"dependency": "direct main",
|
||||
"description": {
|
||||
"path": ".",
|
||||
"ref": "d1c96cd6503103b3270dfe2f320d4a1c93780f53",
|
||||
"resolved-ref": "d1c96cd6503103b3270dfe2f320d4a1c93780f53",
|
||||
"ref": "9a784b193af5d55b2a35e58fa390bda3e4f35d00",
|
||||
"resolved-ref": "9a784b193af5d55b2a35e58fa390bda3e4f35d00",
|
||||
"url": "https://github.com/venera-app/lodepng_flutter"
|
||||
},
|
||||
"source": "git",
|
||||
@@ -1401,17 +1400,16 @@
|
||||
"zip_flutter": {
|
||||
"dependency": "direct main",
|
||||
"description": {
|
||||
"path": ".",
|
||||
"ref": "HEAD",
|
||||
"resolved-ref": "d5721f1fd8179ee4a5db59f932ae7c89d94e12a0",
|
||||
"url": "https://github.com/wgh136/zip_flutter"
|
||||
"name": "zip_flutter",
|
||||
"sha256": "955b53d58709fcd9feefbed3d41b5522bc5273e677603e9fc67017a81e568d24",
|
||||
"url": "https://pub.dev"
|
||||
},
|
||||
"source": "git",
|
||||
"version": "0.0.1"
|
||||
"source": "hosted",
|
||||
"version": "0.0.5"
|
||||
}
|
||||
},
|
||||
"sdks": {
|
||||
"dart": ">=3.6.0 <4.0.0",
|
||||
"flutter": ">=3.27.0"
|
||||
"flutter": ">=3.27.1"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,104 @@
|
||||
{
|
||||
lib,
|
||||
stdenv,
|
||||
fetchurl,
|
||||
autoPatchelfHook,
|
||||
fontconfig,
|
||||
freetype,
|
||||
libGL,
|
||||
glib,
|
||||
alsa-lib,
|
||||
pulseaudio,
|
||||
xorg,
|
||||
gtk3,
|
||||
atk,
|
||||
pango,
|
||||
gdk-pixbuf,
|
||||
cairo,
|
||||
gst_all_1,
|
||||
makeWrapper,
|
||||
libsForQt5,
|
||||
profiles ? {
|
||||
path = "~";
|
||||
},
|
||||
}:
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "windterm";
|
||||
version = "2.6.1";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://github.com/kingToolbox/WindTerm/releases/download/2.6.0/WindTerm_${version}_Linux_Portable_x86_64.tar.gz";
|
||||
hash = "sha256-JwTsfUkESl2vUx48TanKYAOVWw6q4xGY+i0PrN9GfpA=";
|
||||
};
|
||||
|
||||
dontBuild = true;
|
||||
|
||||
nativeBuildInputs = [
|
||||
makeWrapper
|
||||
autoPatchelfHook
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
xorg.libxcb
|
||||
xorg.xcbutil
|
||||
xorg.xcbutilimage
|
||||
xorg.xcbutilkeysyms
|
||||
xorg.xcbutilrenderutil
|
||||
libsForQt5.qt5.qtbase
|
||||
libsForQt5.qt5.qtmultimedia
|
||||
fontconfig
|
||||
freetype
|
||||
libGL
|
||||
glib
|
||||
alsa-lib
|
||||
pulseaudio
|
||||
gst_all_1.gst-plugins-base
|
||||
xorg.libXtst
|
||||
gtk3
|
||||
atk
|
||||
pango
|
||||
gdk-pixbuf
|
||||
cairo
|
||||
(lib.getLib stdenv.cc.cc)
|
||||
];
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
|
||||
mkdir -p $out
|
||||
cp -r ./* $out/
|
||||
find $out -type d -exec chmod 755 {} \;
|
||||
find $out -type f -exec chmod 644 {} \;
|
||||
find $out -type f -executable -exec chmod 755 {} \;
|
||||
chmod 755 $out/WindTerm
|
||||
mkdir -p $out/bin/ $out/share/applications/ $out/share/pixmaps/ $out/share/licenses/${pname}/
|
||||
cat > $out/profiles.config <<EOF
|
||||
${builtins.toJSON profiles}
|
||||
EOF
|
||||
mv $out/license.txt $out/share/licenses/${pname}/license.txt
|
||||
mv $out/windterm.desktop $out/share/applications/windterm.desktop
|
||||
mv $out/windterm.png $out/share/pixmaps/windterm.png
|
||||
substituteInPlace $out/share/applications/windterm.desktop \
|
||||
--replace-fail "Exec=/usr/bin/windterm" "Exec=windterm"
|
||||
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
dontWrapQtApps = true;
|
||||
|
||||
preFixup = ''
|
||||
makeWrapper $out/WindTerm $out/bin/windterm \
|
||||
--prefix QT_PLUGIN_PATH : "$out/lib" \
|
||||
''${qtWrapperArgs[@]}
|
||||
'';
|
||||
|
||||
meta = {
|
||||
description = "Professional cross-platform SSH/Sftp/Shell/Telnet/Serial terminal";
|
||||
homepage = "https://github.com/kingToolbox/WindTerm";
|
||||
mainProgram = "windterm";
|
||||
sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
|
||||
license = lib.licenses.unfree;
|
||||
maintainers = with lib.maintainers; [ aucub ];
|
||||
platforms = [ "x86_64-linux" ];
|
||||
};
|
||||
}
|
||||
@@ -8,6 +8,7 @@
|
||||
handy_window = callPackage ./handy-window { };
|
||||
matrix = callPackage ./matrix { };
|
||||
media_kit_libs_linux = callPackage ./media_kit_libs_linux { };
|
||||
metadata_god = callPackage ./metadata_god { };
|
||||
olm = callPackage ./olm { };
|
||||
pdfrx = callPackage ./pdfrx { };
|
||||
printing = callPackage ./printing { };
|
||||
|
||||
@@ -0,0 +1,44 @@
|
||||
{
|
||||
lib,
|
||||
stdenv,
|
||||
fetchzip,
|
||||
replaceVars,
|
||||
}:
|
||||
|
||||
{ version, src, ... }:
|
||||
|
||||
let
|
||||
inherit (stdenv.hostPlatform) system;
|
||||
selectSystem =
|
||||
attrs: attrs.${system} or (throw "metadata_god: ${stdenv.hostPlatform.system} is not supported");
|
||||
suffix = selectSystem {
|
||||
x86_64-linux = "linux-x64";
|
||||
aarch64-linux = "linux-arm64";
|
||||
};
|
||||
metadata_god = fetchzip {
|
||||
url = "https://github.com/KRTirtho/frb_plugins/releases/download/metadata_god-v0.5.3/linux.tar.gz";
|
||||
hash = "sha256-ZR/q1dF8w4Yab6dRRiS5ZCChVnoecFUrtGiHXGlll9A=";
|
||||
stripRoot = false;
|
||||
};
|
||||
in
|
||||
stdenv.mkDerivation {
|
||||
pname = "metadata_god";
|
||||
inherit version src;
|
||||
inherit (src) passthru;
|
||||
|
||||
patches = [
|
||||
(replaceVars ./metadata_god.patch {
|
||||
output_lib = "${metadata_god}/${suffix}/libmetadata_god.so";
|
||||
})
|
||||
];
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
|
||||
cp -r . $out
|
||||
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
meta.sourceProvenance = with lib.sourceTypes; [ binaryBytecode ];
|
||||
}
|
||||
+33
@@ -0,0 +1,33 @@
|
||||
--- old/linux/CMakeLists.txt 2024-11-30 12:48:42.346266052 +0000
|
||||
+++ new/linux/CMakeLists.txt 2024-11-30 12:50:45.495928529 +0000
|
||||
@@ -9,29 +9,10 @@
|
||||
set(PROJECT_NAME "metadata_god")
|
||||
project(${PROJECT_NAME} LANGUAGES CXX)
|
||||
|
||||
-# Download the binaries if they are not already present.
|
||||
-set(LibRoot "${CMAKE_CURRENT_SOURCE_DIR}/${LibraryVersion}")
|
||||
-set(ArchivePath "${LibRoot}.tar.gz")
|
||||
-if(NOT EXISTS ${ArchivePath})
|
||||
- file(DOWNLOAD
|
||||
- "https://github.com/KRTirtho/metadata_god/releases/download/${LibraryVersion}/other.tar.gz"
|
||||
- ${ArchivePath}
|
||||
- TLS_VERIFY ON
|
||||
- )
|
||||
-endif()
|
||||
-
|
||||
-# Extract the binaries, overriding any already present.
|
||||
-file(REMOVE_RECURSE ${LibRoot})
|
||||
-file(MAKE_DIRECTORY ${LibRoot})
|
||||
-execute_process(
|
||||
- COMMAND ${CMAKE_COMMAND} -E tar xzf ${ArchivePath}
|
||||
- WORKING_DIRECTORY ${LibRoot}
|
||||
-)
|
||||
-
|
||||
# List of absolute paths to libraries that should be bundled with the plugin.
|
||||
# This list could contain prebuilt libraries, or libraries created by an
|
||||
# external build triggered from this build file.
|
||||
set(metadata_god_bundled_libraries
|
||||
- "${LibRoot}/${FLUTTER_TARGET_PLATFORM}/libmetadata_god.so"
|
||||
+ @output_lib@
|
||||
PARENT_SCOPE
|
||||
)
|
||||
@@ -2,11 +2,11 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "libcdr";
|
||||
version = "0.1.7";
|
||||
version = "0.1.8";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://dev-www.libreoffice.org/src/${pname}-${version}.tar.xz";
|
||||
hash = "sha256-VmYknWE0ZrmqHph+pBCcBDZYZuknfYD2zZZj6GuOzdQ=";
|
||||
hash = "sha256-ztZ3yDALKckdMAS7Hd3wuZdhv1VEmRwmwu6PQn6HGTw=";
|
||||
};
|
||||
|
||||
strictDeps = true;
|
||||
|
||||
+3
-3
@@ -6,18 +6,18 @@
|
||||
|
||||
buildNpmPackage rec {
|
||||
pname = "universal-remote-card";
|
||||
version = "4.2.1";
|
||||
version = "4.3.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "Nerwyn";
|
||||
repo = "android-tv-card";
|
||||
rev = version;
|
||||
hash = "sha256-Gw8lPAXKZ/PqeH7DeKMU/ZIM+s9xwzDGWzR/G82fOfI=";
|
||||
hash = "sha256-w8bA+Jzs72RWPw26YoBYz1YtY7a1zXEA1+gWpSVjVNI=";
|
||||
};
|
||||
|
||||
patches = [ ./dont-call-git.patch ];
|
||||
|
||||
npmDepsHash = "sha256-QN7X44yRZDoS/KAQU+FxkExwvED47E/5rvKNqUjYwKA=";
|
||||
npmDepsHash = "sha256-ha/P47C88HVrSZK5vQXdMUhIoqnP0cspwoLYzVM+mVI=";
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
|
||||
@@ -504,11 +504,11 @@ let self = {
|
||||
|
||||
njs = rec {
|
||||
name = "njs";
|
||||
src = fetchhg {
|
||||
url = "https://hg.nginx.org/njs";
|
||||
rev = "0.8.4";
|
||||
sha256 = "sha256-SooPFx4WNEezPD+W/wmMLY+FdkGRoojLNUFbhn3Riyg=";
|
||||
name = "nginx-njs";
|
||||
src = fetchFromGitHub {
|
||||
owner = "nginx";
|
||||
repo = "njs";
|
||||
rev = "0.8.7";
|
||||
hash = "sha256-VEXzP+cN5hnDeniccwY7GIi4x460rnWO/o7ja3DyRCc=";
|
||||
};
|
||||
|
||||
# njs module sources have to be writable during nginx build, so we copy them
|
||||
|
||||
Generated
-2062
File diff suppressed because it is too large
Load Diff
@@ -1658,10 +1658,6 @@ with pkgs;
|
||||
inherit (callPackages ../data/fonts/arphic {})
|
||||
arphic-ukai arphic-uming;
|
||||
|
||||
asciinema-agg = callPackage ../tools/misc/asciinema-agg {
|
||||
inherit (darwin.apple_sdk.frameworks) Security;
|
||||
};
|
||||
|
||||
asymptote = libsForQt5.callPackage ../tools/graphics/asymptote { };
|
||||
|
||||
atomicparsley = callPackage ../tools/video/atomicparsley {
|
||||
|
||||
Reference in New Issue
Block a user