Merge master into staging-next
This commit is contained in:
commit
3ad01beda7
|
@ -15,7 +15,7 @@
|
|||
- [ ] Tested compilation of all pkgs that depend on this change using `nix-shell -p nix-review --run "nix-review wip"`
|
||||
- [ ] Tested execution of all binary files (usually in `./result/bin/`)
|
||||
- [ ] Determined the impact on package closure size (by running `nix path-info -S` before and after)
|
||||
- [ ] Assured whether relevant documentation is up to date
|
||||
- [ ] Ensured that relevant documentation is up to date
|
||||
- [ ] Fits [CONTRIBUTING.md](https://github.com/NixOS/nixpkgs/blob/master/.github/CONTRIBUTING.md).
|
||||
|
||||
---
|
||||
|
|
|
@ -325,6 +325,18 @@ packageOverrides = pkgs: {
|
|||
elm2nix</link>.
|
||||
</para>
|
||||
</section>
|
||||
<section xml:id="sec-kakoune">
|
||||
<title>Kakoune</title>
|
||||
|
||||
<para>
|
||||
Kakoune can be built to autoload plugins:
|
||||
<programlisting>(kakoune.override {
|
||||
configure = {
|
||||
plugins = with pkgs.kakounePlugins; [ parinfer-rust ];
|
||||
};
|
||||
})</programlisting>
|
||||
</para>
|
||||
</section>
|
||||
<section xml:id="sec-shell-helpers">
|
||||
<title>Interactive shell helpers</title>
|
||||
|
||||
|
|
|
@ -681,6 +681,11 @@
|
|||
github = "bergey";
|
||||
name = "Daniel Bergey";
|
||||
};
|
||||
betaboon = {
|
||||
email = "betaboon@0x80.ninja";
|
||||
github = "betaboon";
|
||||
name = "betaboon";
|
||||
};
|
||||
bfortz = {
|
||||
email = "bernard.fortz@gmail.com";
|
||||
github = "bfortz";
|
||||
|
@ -1940,6 +1945,11 @@
|
|||
github = "glenns";
|
||||
name = "Glenn Searby";
|
||||
};
|
||||
gloaming = {
|
||||
email = "ch9871@gmail.com";
|
||||
github = "gloaming";
|
||||
name = "Craig Hall";
|
||||
};
|
||||
globin = {
|
||||
email = "mail@glob.in";
|
||||
github = "globin";
|
||||
|
@ -2753,6 +2763,11 @@
|
|||
github = "lasandell";
|
||||
name = "Luke Sandell";
|
||||
};
|
||||
lambda-11235 = {
|
||||
email = "taranlynn0@gmail.com";
|
||||
github = "lambda-11235";
|
||||
name = "Taran Lynn";
|
||||
};
|
||||
lassulus = {
|
||||
email = "lassulus@gmail.com";
|
||||
github = "Lassulus";
|
||||
|
@ -3559,6 +3574,11 @@
|
|||
github = "nathan-gs";
|
||||
name = "Nathan Bijnens";
|
||||
};
|
||||
nathyong = {
|
||||
email = "nathyong@noreply.github.com";
|
||||
github = "nathyong";
|
||||
name = "Nathan Yong";
|
||||
};
|
||||
nckx = {
|
||||
email = "github@tobias.gr";
|
||||
github = "nckx";
|
||||
|
@ -4841,6 +4861,11 @@
|
|||
github = "severen";
|
||||
name = "Severen Redwood";
|
||||
};
|
||||
steell = {
|
||||
email = "steve@steellworks.com";
|
||||
github = "Steell";
|
||||
name = "Steve Elliott";
|
||||
};
|
||||
stephenmw = {
|
||||
email = "stephen@q5comm.com";
|
||||
github = "stephenmw";
|
||||
|
|
|
@ -39,7 +39,7 @@
|
|||
<xref linkend="opt-networking.defaultGateway6"/> = {
|
||||
address = "fe00::1";
|
||||
interface = "enp0s3";
|
||||
}
|
||||
};
|
||||
</programlisting>
|
||||
</para>
|
||||
|
||||
|
|
|
@ -191,6 +191,7 @@
|
|||
./services/audio/liquidsoap.nix
|
||||
./services/audio/mpd.nix
|
||||
./services/audio/mopidy.nix
|
||||
./services/audio/roon-server.nix
|
||||
./services/audio/slimserver.nix
|
||||
./services/audio/snapserver.nix
|
||||
./services/audio/squeezelite.nix
|
||||
|
|
|
@ -213,6 +213,7 @@ with lib;
|
|||
(mkRemovedOptionModule [ "boot" "zfs" "enableLegacyCrypto" ] "The corresponding package was removed from nixpkgs.")
|
||||
(mkRemovedOptionModule [ "services" "winstone" ] "The corresponding package was removed from nixpkgs.")
|
||||
(mkRemovedOptionModule [ "services" "mysql" "pidDir" ] "Don't wait for pidfiles, describe dependencies through systemd")
|
||||
(mkRemovedOptionModule [ "services" "mysql" "rootPassword" ] "Use socket authentication or set the password outside of the nix store.")
|
||||
|
||||
# ZSH
|
||||
(mkRenamedOptionModule [ "programs" "zsh" "enableSyntaxHighlighting" ] [ "programs" "zsh" "syntaxHighlighting" "enable" ])
|
||||
|
@ -240,6 +241,12 @@ with lib;
|
|||
# binfmt
|
||||
(mkRenamedOptionModule [ "boot" "binfmtMiscRegistrations" ] [ "boot" "binfmt" "registrations" ])
|
||||
|
||||
# PHP-FPM
|
||||
(mkRemovedOptionModule [ "services" "phpfpm" "poolConfigs" ] "Use services.phpfpm.pools instead.")
|
||||
(mkRemovedOptionModule [ "services" "phpfpm" "phpPackage" ] "Use services.phpfpm.pools.<name>.phpPackage instead.")
|
||||
(mkRemovedOptionModule [ "services" "phpfpm" "phpOptions" ] "Use services.phpfpm.pools.<name>.phpOptions instead.")
|
||||
(mkRenamedOptionModule [ "services" "phpfpm" "extraConfig" ] [ "services" "phpfpm" "globalExtraConfig" ])
|
||||
|
||||
] ++ (flip map [ "blackboxExporter" "collectdExporter" "fritzboxExporter"
|
||||
"jsonExporter" "minioExporter" "nginxExporter" "nodeExporter"
|
||||
"snmpExporter" "unifiExporter" "varnishExporter" ]
|
||||
|
|
|
@ -0,0 +1,49 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
|
||||
with lib;
|
||||
|
||||
let
|
||||
name = "roon-server";
|
||||
cfg = config.services.roon-server;
|
||||
in {
|
||||
options = {
|
||||
services.roon-server = {
|
||||
enable = mkEnableOption "Roon Server";
|
||||
openFirewall = mkOption {
|
||||
type = types.bool;
|
||||
default = false;
|
||||
description = ''
|
||||
Open ports in the firewall for the server.
|
||||
|
||||
UDP: 9003
|
||||
TCP: 9100 - 9200
|
||||
'';
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
systemd.services.roon-server = {
|
||||
after = [ "network.target" ];
|
||||
description = "Roon Server";
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
|
||||
environment.ROON_DATAROOT = "/var/lib/${name}";
|
||||
|
||||
serviceConfig = {
|
||||
ExecStart = "${pkgs.roon-server}/opt/start.sh";
|
||||
LimitNOFILE = 8192;
|
||||
DynamicUser = true;
|
||||
SupplementaryGroups = "audio";
|
||||
StateDirectory = name;
|
||||
};
|
||||
};
|
||||
|
||||
networking.firewall = mkIf cfg.openFirewall {
|
||||
allowedTCPPortRanges = [
|
||||
{ from = 9100; to = 9200; }
|
||||
];
|
||||
allowedUDPPorts = [ 9003 ];
|
||||
};
|
||||
};
|
||||
}
|
|
@ -47,15 +47,11 @@ in
|
|||
wantedBy = [ "multi-user.target" ];
|
||||
serviceConfig = {
|
||||
User = cfg.user;
|
||||
PermissionsStartOnly = true;
|
||||
Group = "duplicati";
|
||||
StateDirectory = "duplicati";
|
||||
ExecStart = "${pkgs.duplicati}/bin/duplicati-server --webservice-interface=${cfg.interface} --webservice-port=${toString cfg.port} --server-datafolder=/var/lib/duplicati";
|
||||
Restart = "on-failure";
|
||||
};
|
||||
preStart = ''
|
||||
mkdir -p /var/lib/duplicati
|
||||
chown -R ${cfg.user}:duplicati /var/lib/duplicati
|
||||
'';
|
||||
};
|
||||
|
||||
users.users.duplicati = lib.optionalAttrs (cfg.user == "duplicati") {
|
||||
|
|
|
@ -204,12 +204,6 @@ in
|
|||
'';
|
||||
};
|
||||
|
||||
# FIXME: remove this option; it's a really bad idea.
|
||||
rootPassword = mkOption {
|
||||
default = null;
|
||||
description = "Path to a file containing the root password, modified on the first startup. Not specifying a root password will leave the root password empty.";
|
||||
};
|
||||
|
||||
replication = {
|
||||
role = mkOption {
|
||||
type = types.enum [ "master" "slave" "none" ];
|
||||
|
@ -323,114 +317,105 @@ in
|
|||
RuntimeDirectoryMode = "0755";
|
||||
# The last two environment variables are used for starting Galera clusters
|
||||
ExecStart = "${mysql}/bin/mysqld --defaults-file=/etc/my.cnf ${mysqldOptions} $_WSREP_NEW_CLUSTER $_WSREP_START_POSITION";
|
||||
};
|
||||
ExecStartPost =
|
||||
let
|
||||
setupScript = pkgs.writeShellScript "mysql-setup" ''
|
||||
${optionalString (!hasNotify) ''
|
||||
# Wait until the MySQL server is available for use
|
||||
count=0
|
||||
while [ ! -e /run/mysqld/mysqld.sock ]
|
||||
do
|
||||
if [ $count -eq 30 ]
|
||||
then
|
||||
echo "Tried 30 times, giving up..."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
postStart =
|
||||
let
|
||||
cmdWatchForMysqlSocket = ''
|
||||
# Wait until the MySQL server is available for use
|
||||
count=0
|
||||
while [ ! -e /run/mysqld/mysqld.sock ]
|
||||
do
|
||||
if [ $count -eq 30 ]
|
||||
then
|
||||
echo "Tried 30 times, giving up..."
|
||||
exit 1
|
||||
fi
|
||||
echo "MySQL daemon not yet started. Waiting for 1 second..."
|
||||
count=$((count++))
|
||||
sleep 1
|
||||
done
|
||||
''}
|
||||
|
||||
echo "MySQL daemon not yet started. Waiting for 1 second..."
|
||||
count=$((count++))
|
||||
sleep 1
|
||||
done
|
||||
'';
|
||||
cmdInitialDatabases = concatMapStrings (database: ''
|
||||
# Create initial databases
|
||||
if ! test -e "${cfg.dataDir}/${database.name}"; then
|
||||
echo "Creating initial database: ${database.name}"
|
||||
( echo 'create database `${database.name}`;'
|
||||
if [ -f /tmp/mysql_init ]
|
||||
then
|
||||
${concatMapStrings (database: ''
|
||||
# Create initial databases
|
||||
if ! test -e "${cfg.dataDir}/${database.name}"; then
|
||||
echo "Creating initial database: ${database.name}"
|
||||
( echo 'create database `${database.name}`;'
|
||||
|
||||
${optionalString (database.schema != null) ''
|
||||
echo 'use `${database.name}`;'
|
||||
${optionalString (database.schema != null) ''
|
||||
echo 'use `${database.name}`;'
|
||||
|
||||
# TODO: this silently falls through if database.schema does not exist,
|
||||
# we should catch this somehow and exit, but can't do it here because we're in a subshell.
|
||||
if [ -f "${database.schema}" ]
|
||||
then
|
||||
cat ${database.schema}
|
||||
elif [ -d "${database.schema}" ]
|
||||
then
|
||||
cat ${database.schema}/mysql-databases/*.sql
|
||||
fi
|
||||
''}
|
||||
# TODO: this silently falls through if database.schema does not exist,
|
||||
# we should catch this somehow and exit, but can't do it here because we're in a subshell.
|
||||
if [ -f "${database.schema}" ]
|
||||
then
|
||||
cat ${database.schema}
|
||||
elif [ -d "${database.schema}" ]
|
||||
then
|
||||
cat ${database.schema}/mysql-databases/*.sql
|
||||
fi
|
||||
''}
|
||||
) | ${mysql}/bin/mysql -u root -N
|
||||
fi
|
||||
'') cfg.initialDatabases}
|
||||
|
||||
${optionalString (cfg.replication.role == "master")
|
||||
''
|
||||
# Set up the replication master
|
||||
|
||||
( echo "use mysql;"
|
||||
echo "CREATE USER '${cfg.replication.masterUser}'@'${cfg.replication.slaveHost}' IDENTIFIED WITH mysql_native_password;"
|
||||
echo "SET PASSWORD FOR '${cfg.replication.masterUser}'@'${cfg.replication.slaveHost}' = PASSWORD('${cfg.replication.masterPassword}');"
|
||||
echo "GRANT REPLICATION SLAVE ON *.* TO '${cfg.replication.masterUser}'@'${cfg.replication.slaveHost}';"
|
||||
) | ${mysql}/bin/mysql -u root -N
|
||||
''}
|
||||
|
||||
${optionalString (cfg.replication.role == "slave")
|
||||
''
|
||||
# Set up the replication slave
|
||||
|
||||
( echo "stop slave;"
|
||||
echo "change master to master_host='${cfg.replication.masterHost}', master_user='${cfg.replication.masterUser}', master_password='${cfg.replication.masterPassword}';"
|
||||
echo "start slave;"
|
||||
) | ${mysql}/bin/mysql -u root -N
|
||||
''}
|
||||
|
||||
${optionalString (cfg.initialScript != null)
|
||||
''
|
||||
# Execute initial script
|
||||
# using toString to avoid copying the file to nix store if given as path instead of string,
|
||||
# as it might contain credentials
|
||||
cat ${toString cfg.initialScript} | ${mysql}/bin/mysql -u root -N
|
||||
''}
|
||||
|
||||
rm /tmp/mysql_init
|
||||
fi
|
||||
|
||||
${optionalString (cfg.ensureDatabases != []) ''
|
||||
(
|
||||
${concatMapStrings (database: ''
|
||||
echo "CREATE DATABASE IF NOT EXISTS \`${database}\`;"
|
||||
'') cfg.ensureDatabases}
|
||||
) | ${mysql}/bin/mysql -u root -N
|
||||
fi
|
||||
'') cfg.initialDatabases;
|
||||
in
|
||||
''}
|
||||
|
||||
lib.optionalString (!hasNotify) cmdWatchForMysqlSocket + ''
|
||||
if [ -f /tmp/mysql_init ]
|
||||
then
|
||||
${cmdInitialDatabases}
|
||||
${optionalString (cfg.replication.role == "master")
|
||||
${concatMapStrings (user:
|
||||
''
|
||||
# Set up the replication master
|
||||
|
||||
( echo "use mysql;"
|
||||
echo "CREATE USER '${cfg.replication.masterUser}'@'${cfg.replication.slaveHost}' IDENTIFIED WITH mysql_native_password;"
|
||||
echo "SET PASSWORD FOR '${cfg.replication.masterUser}'@'${cfg.replication.slaveHost}' = PASSWORD('${cfg.replication.masterPassword}');"
|
||||
echo "GRANT REPLICATION SLAVE ON *.* TO '${cfg.replication.masterUser}'@'${cfg.replication.slaveHost}';"
|
||||
( echo "CREATE USER IF NOT EXISTS '${user.name}'@'localhost' IDENTIFIED WITH ${if isMariaDB then "unix_socket" else "auth_socket"};"
|
||||
${concatStringsSep "\n" (mapAttrsToList (database: permission: ''
|
||||
echo "GRANT ${permission} ON ${database} TO '${user.name}'@'localhost';"
|
||||
'') user.ensurePermissions)}
|
||||
) | ${mysql}/bin/mysql -u root -N
|
||||
''}
|
||||
|
||||
${optionalString (cfg.replication.role == "slave")
|
||||
''
|
||||
# Set up the replication slave
|
||||
|
||||
( echo "stop slave;"
|
||||
echo "change master to master_host='${cfg.replication.masterHost}', master_user='${cfg.replication.masterUser}', master_password='${cfg.replication.masterPassword}';"
|
||||
echo "start slave;"
|
||||
) | ${mysql}/bin/mysql -u root -N
|
||||
''}
|
||||
|
||||
${optionalString (cfg.initialScript != null)
|
||||
''
|
||||
# Execute initial script
|
||||
# using toString to avoid copying the file to nix store if given as path instead of string,
|
||||
# as it might contain credentials
|
||||
cat ${toString cfg.initialScript} | ${mysql}/bin/mysql -u root -N
|
||||
''}
|
||||
|
||||
${optionalString (cfg.rootPassword != null)
|
||||
''
|
||||
# Change root password
|
||||
|
||||
( echo "use mysql;"
|
||||
echo "update user set Password=password('$(cat ${cfg.rootPassword})') where User='root';"
|
||||
echo "flush privileges;"
|
||||
) | ${mysql}/bin/mysql -u root -N
|
||||
''}
|
||||
|
||||
rm /tmp/mysql_init
|
||||
fi
|
||||
|
||||
${optionalString (cfg.ensureDatabases != []) ''
|
||||
(
|
||||
${concatMapStrings (database: ''
|
||||
echo "CREATE DATABASE IF NOT EXISTS \`${database}\`;"
|
||||
'') cfg.ensureDatabases}
|
||||
) | ${mysql}/bin/mysql -u root -N
|
||||
''}
|
||||
|
||||
${concatMapStrings (user:
|
||||
''
|
||||
( echo "CREATE USER IF NOT EXISTS '${user.name}'@'localhost' IDENTIFIED WITH ${if isMariaDB then "unix_socket" else "auth_socket"};"
|
||||
${concatStringsSep "\n" (mapAttrsToList (database: permission: ''
|
||||
echo "GRANT ${permission} ON ${database} TO '${user.name}'@'localhost';"
|
||||
'') user.ensurePermissions)}
|
||||
) | ${mysql}/bin/mysql -u root -N
|
||||
'') cfg.ensureUsers}
|
||||
|
||||
''; # */
|
||||
'') cfg.ensureUsers}
|
||||
'';
|
||||
in
|
||||
# ensureDatbases & ensureUsers depends on this script being run as root
|
||||
# when the user has secured their mysql install
|
||||
"+${setupScript}";
|
||||
};
|
||||
};
|
||||
|
||||
};
|
||||
|
|
|
@ -33,6 +33,7 @@
|
|||
environment.systemPackages = [
|
||||
pkgs.deepin.dde-api
|
||||
pkgs.deepin.dde-calendar
|
||||
pkgs.deepin.dde-control-center
|
||||
pkgs.deepin.dde-daemon
|
||||
pkgs.deepin.dde-dock
|
||||
pkgs.deepin.dde-launcher
|
||||
|
@ -46,6 +47,7 @@
|
|||
services.dbus.packages = [
|
||||
pkgs.deepin.dde-api
|
||||
pkgs.deepin.dde-calendar
|
||||
pkgs.deepin.dde-control-center
|
||||
pkgs.deepin.dde-daemon
|
||||
pkgs.deepin.dde-dock
|
||||
pkgs.deepin.dde-launcher
|
||||
|
|
|
@ -105,7 +105,7 @@ in
|
|||
extraConfig = ''
|
||||
location ~* \.php$ {
|
||||
fastcgi_split_path_info ^(.+\.php)(/.+)$;
|
||||
fastcgi_pass unix:/run/phpfpm/roundcube;
|
||||
fastcgi_pass unix:/run/phpfpm-roundcube/roundcube.sock;
|
||||
include ${pkgs.nginx}/conf/fastcgi_params;
|
||||
include ${pkgs.nginx}/conf/fastcgi.conf;
|
||||
}
|
||||
|
@ -119,24 +119,28 @@ in
|
|||
enable = true;
|
||||
};
|
||||
|
||||
services.phpfpm.poolConfigs.roundcube = ''
|
||||
listen = /run/phpfpm/roundcube
|
||||
listen.owner = nginx
|
||||
listen.group = nginx
|
||||
listen.mode = 0660
|
||||
user = nginx
|
||||
pm = dynamic
|
||||
pm.max_children = 75
|
||||
pm.start_servers = 2
|
||||
pm.min_spare_servers = 1
|
||||
pm.max_spare_servers = 20
|
||||
pm.max_requests = 500
|
||||
php_admin_value[error_log] = 'stderr'
|
||||
php_admin_flag[log_errors] = on
|
||||
php_admin_value[post_max_size] = 25M
|
||||
php_admin_value[upload_max_filesize] = 25M
|
||||
catch_workers_output = yes
|
||||
'';
|
||||
services.phpfpm.pools.roundcube = {
|
||||
socketName = "roundcube";
|
||||
phpPackage = pkgs.php;
|
||||
user = "${config.services.nginx.user}";
|
||||
group = "${config.services.nginx.group}";
|
||||
extraConfig = ''
|
||||
listen.owner = ${config.services.nginx.user}
|
||||
listen.group = ${config.services.nginx.group}
|
||||
listen.mode = 0600
|
||||
pm = dynamic
|
||||
pm.max_children = 75
|
||||
pm.start_servers = 2
|
||||
pm.min_spare_servers = 1
|
||||
pm.max_spare_servers = 20
|
||||
pm.max_requests = 500
|
||||
php_admin_value[error_log] = 'stderr'
|
||||
php_admin_flag[log_errors] = on
|
||||
php_admin_value[post_max_size] = 25M
|
||||
php_admin_value[upload_max_filesize] = 25M
|
||||
catch_workers_output = yes
|
||||
'';
|
||||
};
|
||||
systemd.services.phpfpm-roundcube.after = [ "roundcube-setup.service" ];
|
||||
|
||||
systemd.services.roundcube-setup = let
|
||||
|
|
|
@ -38,6 +38,7 @@ let
|
|||
HTTP_PORT = ${toString cfg.httpPort}
|
||||
ROOT_URL = ${cfg.rootUrl}
|
||||
STATIC_ROOT_PATH = ${cfg.staticRootPath}
|
||||
LFS_JWT_SECRET = #jwtsecret#
|
||||
|
||||
[session]
|
||||
COOKIE_NAME = session
|
||||
|
@ -326,21 +327,28 @@ in
|
|||
preStart = let
|
||||
runConfig = "${cfg.stateDir}/custom/conf/app.ini";
|
||||
secretKey = "${cfg.stateDir}/custom/conf/secret_key";
|
||||
jwtSecret = "${cfg.stateDir}/custom/conf/jwt_secret";
|
||||
in ''
|
||||
# copy custom configuration and generate a random secret key if needed
|
||||
${optionalString (cfg.useWizard == false) ''
|
||||
cp -f ${configFile} ${runConfig}
|
||||
|
||||
if [ ! -e ${secretKey} ]; then
|
||||
head -c 16 /dev/urandom | base64 > ${secretKey}
|
||||
${gitea.bin}/bin/gitea generate secret SECRET_KEY > ${secretKey}
|
||||
fi
|
||||
|
||||
KEY=$(head -n1 ${secretKey})
|
||||
DBPASS=$(head -n1 ${cfg.database.passwordFile})
|
||||
if [ ! -e ${jwtSecret} ]; then
|
||||
${gitea.bin}/bin/gitea generate secret LFS_JWT_SECRET > ${jwtSecret}
|
||||
fi
|
||||
|
||||
KEY="$(head -n1 ${secretKey})"
|
||||
DBPASS="$(head -n1 ${cfg.database.passwordFile})"
|
||||
JWTSECRET="$(head -n1 ${jwtSecret})"
|
||||
sed -e "s,#secretkey#,$KEY,g" \
|
||||
-e "s,#dbpass#,$DBPASS,g" \
|
||||
-e "s,#jwtsecet#,$JWTSECET,g" \
|
||||
-i ${runConfig}
|
||||
chmod 640 ${runConfig} ${secretKey}
|
||||
chmod 640 ${runConfig} ${secretKey} ${jwtSecret}
|
||||
''}
|
||||
|
||||
# update all hooks' binary paths
|
||||
|
|
|
@ -9,6 +9,13 @@ in
|
|||
options = {
|
||||
services.lidarr = {
|
||||
enable = mkEnableOption "Lidarr";
|
||||
|
||||
package = mkOption {
|
||||
type = types.package;
|
||||
default = pkgs.lidarr;
|
||||
defaultText = "pkgs.lidarr";
|
||||
description = "The Lidarr package to use";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
|
@ -22,7 +29,7 @@ in
|
|||
Type = "simple";
|
||||
User = "lidarr";
|
||||
Group = "lidarr";
|
||||
ExecStart = "${pkgs.lidarr}/bin/Lidarr";
|
||||
ExecStart = "${cfg.package}/bin/Lidarr";
|
||||
Restart = "on-failure";
|
||||
|
||||
StateDirectory = "lidarr";
|
||||
|
|
|
@ -272,10 +272,12 @@ in
|
|||
|
||||
binaryCaches = mkOption {
|
||||
type = types.listOf types.str;
|
||||
default = [ https://cache.nixos.org/ ];
|
||||
description = ''
|
||||
List of binary cache URLs used to obtain pre-built binaries
|
||||
of Nix packages.
|
||||
|
||||
By default https://cache.nixos.org/ is added,
|
||||
to override it use <literal>lib.mkForce []</literal>.
|
||||
'';
|
||||
};
|
||||
|
||||
|
@ -386,6 +388,7 @@ in
|
|||
config = {
|
||||
|
||||
nix.binaryCachePublicKeys = [ "cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=" ];
|
||||
nix.binaryCaches = [ "https://cache.nixos.org/" ];
|
||||
|
||||
environment.etc."nix/nix.conf".source = nixConf;
|
||||
|
||||
|
|
|
@ -19,7 +19,7 @@ let
|
|||
|
||||
useCustomDir = cfg.storageDir != null;
|
||||
|
||||
socket = "/run/phpfpm/${dirName}.sock";
|
||||
socket = "/run/phpfpm-zoneminder/zoneminder.sock";
|
||||
|
||||
zms = "/cgi-bin/zms";
|
||||
|
||||
|
@ -50,7 +50,7 @@ let
|
|||
ZM_DB_TYPE=mysql
|
||||
ZM_DB_HOST=${cfg.database.host}
|
||||
ZM_DB_NAME=${cfg.database.name}
|
||||
ZM_DB_USER=${if cfg.database.createLocally then user else cfg.database.username}
|
||||
ZM_DB_USER=${cfg.database.username}
|
||||
ZM_DB_PASS=${cfg.database.password}
|
||||
|
||||
# Web
|
||||
|
@ -155,6 +155,7 @@ in {
|
|||
default = "zmpass";
|
||||
description = ''
|
||||
Username for accessing the database.
|
||||
Not used if <literal>createLocally</literal> is set.
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
@ -189,6 +190,12 @@ in {
|
|||
|
||||
config = lib.mkIf cfg.enable {
|
||||
|
||||
assertions = [
|
||||
{ assertion = cfg.database.createLocally -> cfg.database.username == user;
|
||||
message = "services.zoneminder.database.username must be set to ${user} if services.zoneminder.database.createLocally is set true";
|
||||
}
|
||||
];
|
||||
|
||||
environment.etc = {
|
||||
"zoneminder/60-defaults.conf".source = defaultsFile;
|
||||
"zoneminder/80-nixos.conf".source = configFile;
|
||||
|
@ -204,10 +211,9 @@ in {
|
|||
};
|
||||
|
||||
mysql = lib.mkIf cfg.database.createLocally {
|
||||
enable = true;
|
||||
package = lib.mkDefault pkgs.mariadb;
|
||||
ensureDatabases = [ cfg.database.name ];
|
||||
initialDatabases = [{
|
||||
inherit (cfg.database) name; schema = "${pkg}/share/zoneminder/db/zm_create.sql";
|
||||
}];
|
||||
ensureUsers = [{
|
||||
name = cfg.database.username;
|
||||
ensurePermissions = { "${cfg.database.name}.*" = "ALL PRIVILEGES"; };
|
||||
|
@ -278,7 +284,10 @@ in {
|
|||
|
||||
phpfpm = lib.mkIf useNginx {
|
||||
pools.zoneminder = {
|
||||
listen = socket;
|
||||
socketName = "zoneminder";
|
||||
phpPackage = pkgs.php;
|
||||
user = "${user}";
|
||||
group = "${group}";
|
||||
phpOptions = ''
|
||||
date.timezone = "${config.time.timeZone}"
|
||||
|
||||
|
@ -286,9 +295,6 @@ in {
|
|||
"extension=${e.pkg}/lib/php/extensions/${e.name}.so") phpExtensions)}
|
||||
'';
|
||||
extraConfig = ''
|
||||
user = ${user}
|
||||
group = ${group}
|
||||
|
||||
listen.owner = ${user}
|
||||
listen.group = ${group}
|
||||
listen.mode = 0660
|
||||
|
@ -315,11 +321,16 @@ in {
|
|||
procps
|
||||
psmisc
|
||||
];
|
||||
after = [ "mysql.service" "nginx.service" ];
|
||||
after = [ "nginx.service" ] ++ lib.optional cfg.database.createLocally "mysql.service";
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
restartTriggers = [ defaultsFile configFile ];
|
||||
preStart = lib.mkIf useCustomDir ''
|
||||
preStart = lib.optionalString useCustomDir ''
|
||||
install -dm775 -o ${user} -g ${group} ${cfg.storageDir}/{${lib.concatStringsSep "," libDirs}}
|
||||
'' + lib.optionalString cfg.database.createLocally ''
|
||||
if ! test -e "/var/lib/${dirName}/db-created"; then
|
||||
${config.services.mysql.package}/bin/mysql < ${pkg}/share/zoneminder/db/zm_create.sql
|
||||
touch "/var/lib/${dirName}/db-created"
|
||||
fi
|
||||
'';
|
||||
serviceConfig = {
|
||||
User = user;
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
{ config, lib, pkgs, ... }: with lib; let
|
||||
cfg = config.services.icingaweb2;
|
||||
poolName = "icingaweb2";
|
||||
phpfpmSocketName = "/var/run/phpfpm/${poolName}.sock";
|
||||
|
||||
defaultConfig = {
|
||||
global = {
|
||||
|
@ -162,19 +161,23 @@ in {
|
|||
};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
services.phpfpm.poolConfigs = mkIf (cfg.pool == "${poolName}") {
|
||||
"${poolName}" = ''
|
||||
listen = "${phpfpmSocketName}"
|
||||
listen.owner = nginx
|
||||
listen.group = nginx
|
||||
listen.mode = 0600
|
||||
user = icingaweb2
|
||||
pm = dynamic
|
||||
pm.max_children = 75
|
||||
pm.start_servers = 2
|
||||
pm.min_spare_servers = 2
|
||||
pm.max_spare_servers = 10
|
||||
'';
|
||||
services.phpfpm.pools = mkIf (cfg.pool == "${poolName}") {
|
||||
"${poolName}" = {
|
||||
socketName = "${poolName}";
|
||||
phpPackage = pkgs.php;
|
||||
user = "icingaweb2";
|
||||
group = "icingaweb2";
|
||||
extraConfig = ''
|
||||
listen.owner = ${config.services.nginx.user}
|
||||
listen.group = ${config.services.nginx.group}
|
||||
listen.mode = 0600
|
||||
pm = dynamic
|
||||
pm.max_children = 75
|
||||
pm.start_servers = 2
|
||||
pm.min_spare_servers = 2
|
||||
pm.max_spare_servers = 10
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
||||
services.phpfpm.phpOptions = mkIf (cfg.pool == "${poolName}")
|
||||
|
@ -206,7 +209,7 @@ in {
|
|||
include ${config.services.nginx.package}/conf/fastcgi.conf;
|
||||
try_files $uri =404;
|
||||
fastcgi_split_path_info ^(.+\.php)(/.+)$;
|
||||
fastcgi_pass unix:${phpfpmSocketName};
|
||||
fastcgi_pass unix:/run/phpfpm-${poolName}/${poolName}.sock;
|
||||
fastcgi_param SCRIPT_FILENAME ${pkgs.icingaweb2}/public/index.php;
|
||||
'';
|
||||
};
|
||||
|
@ -239,5 +242,8 @@ in {
|
|||
group = "icingaweb2";
|
||||
isSystemUser = true;
|
||||
};
|
||||
users.users.nginx = {
|
||||
extraGroups = [ "icingaweb2" ];
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
|
@ -202,13 +202,13 @@ in
|
|||
};
|
||||
|
||||
services.phpfpm.pools.limesurvey = {
|
||||
socketName = "limesurvey";
|
||||
phpPackage = php;
|
||||
listen = "/run/phpfpm/limesurvey.sock";
|
||||
user = "${user}";
|
||||
group = "${group}";
|
||||
extraConfig = ''
|
||||
listen.owner = ${config.services.httpd.user};
|
||||
listen.group = ${config.services.httpd.group};
|
||||
user = ${user};
|
||||
group = ${group};
|
||||
|
||||
env[LIMESURVEY_CONFIG] = ${limesurveyConfig}
|
||||
|
||||
|
@ -241,7 +241,7 @@ in
|
|||
<Directory "${pkg}/share/limesurvey">
|
||||
<FilesMatch "\.php$">
|
||||
<If "-f %{REQUEST_FILENAME}">
|
||||
SetHandler "proxy:unix:/run/phpfpm/limesurvey.sock|fcgi://localhost/"
|
||||
SetHandler "proxy:unix:/run/phpfpm-limesurvey/limesurvey.sock|fcgi://localhost/"
|
||||
</If>
|
||||
</FilesMatch>
|
||||
|
||||
|
|
|
@ -4,13 +4,14 @@ let
|
|||
cfg = config.services.matomo;
|
||||
|
||||
user = "matomo";
|
||||
group = "matomo";
|
||||
dataDir = "/var/lib/${user}";
|
||||
deprecatedDataDir = "/var/lib/piwik";
|
||||
|
||||
pool = user;
|
||||
# it's not possible to use /run/phpfpm/${pool}.sock because /run/phpfpm/ is root:root 0770,
|
||||
# it's not possible to use /run/phpfpm-${pool}/${pool}.sock because /run/phpfpm/ is root:root 0770,
|
||||
# and therefore is not accessible by the web server.
|
||||
phpSocket = "/run/phpfpm-${pool}.sock";
|
||||
phpSocket = "/run/phpfpm-${pool}/${pool}.sock";
|
||||
phpExecutionUnit = "phpfpm-${pool}";
|
||||
databaseService = "mysql.service";
|
||||
|
||||
|
@ -137,9 +138,12 @@ in {
|
|||
isSystemUser = true;
|
||||
createHome = true;
|
||||
home = dataDir;
|
||||
group = user;
|
||||
group = "${group}";
|
||||
};
|
||||
users.groups.${user} = {};
|
||||
users.users.${config.services.nginx.user} = {
|
||||
extraGroups = [ "${group}" ];
|
||||
};
|
||||
users.groups.${group} = {};
|
||||
|
||||
systemd.services.matomo-setup-update = {
|
||||
# everything needs to set up and up to date before Matomo php files are executed
|
||||
|
@ -169,7 +173,7 @@ in {
|
|||
echo "Migrating from ${deprecatedDataDir} to ${dataDir}"
|
||||
mv -T ${deprecatedDataDir} ${dataDir}
|
||||
fi
|
||||
chown -R ${user}:${user} ${dataDir}
|
||||
chown -R ${user}:${group} ${dataDir}
|
||||
chmod -R ug+rwX,o-rwx ${dataDir}
|
||||
'';
|
||||
script = ''
|
||||
|
@ -225,22 +229,26 @@ in {
|
|||
serviceConfig.UMask = "0007";
|
||||
};
|
||||
|
||||
services.phpfpm.poolConfigs = let
|
||||
services.phpfpm.pools = let
|
||||
# workaround for when both are null and need to generate a string,
|
||||
# which is illegal, but as assertions apparently are being triggered *after* config generation,
|
||||
# we have to avoid already throwing errors at this previous stage.
|
||||
socketOwner = if (cfg.nginx != null) then config.services.nginx.user
|
||||
else if (cfg.webServerUser != null) then cfg.webServerUser else "";
|
||||
in {
|
||||
${pool} = ''
|
||||
listen = "${phpSocket}"
|
||||
listen.owner = ${socketOwner}
|
||||
listen.group = root
|
||||
listen.mode = 0600
|
||||
user = ${user}
|
||||
env[PIWIK_USER_PATH] = ${dataDir}
|
||||
${cfg.phpfpmProcessManagerConfig}
|
||||
'';
|
||||
${pool} = {
|
||||
socketName = "${pool}";
|
||||
phpPackage = pkgs.php;
|
||||
user = "${user}";
|
||||
group = "${group}";
|
||||
extraConfig = ''
|
||||
listen.owner = ${socketOwner}
|
||||
listen.group = ${group}
|
||||
listen.mode = 0600
|
||||
env[PIWIK_USER_PATH] = ${dataDir}
|
||||
${cfg.phpfpmProcessManagerConfig}
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
|
|
|
@ -394,13 +394,14 @@ in {
|
|||
phpOptions)));
|
||||
in {
|
||||
phpOptions = phpOptionsExtensions;
|
||||
socketName = "nextcloud";
|
||||
phpPackage = phpPackage;
|
||||
listen = "/run/phpfpm/nextcloud";
|
||||
user = "nextcloud";
|
||||
group = "${config.services.nginx.group}";
|
||||
extraConfig = ''
|
||||
listen.owner = nginx
|
||||
listen.group = nginx
|
||||
user = nextcloud
|
||||
group = nginx
|
||||
listen.owner = ${config.services.nginx.user}
|
||||
listen.group = ${config.services.nginx.group}
|
||||
listen.mode = 0600
|
||||
${cfg.poolConfig}
|
||||
env[NEXTCLOUD_CONFIG_DIR] = ${cfg.home}/config
|
||||
env[PATH] = /run/wrappers/bin:/nix/var/nix/profiles/default/bin:/run/current-system/sw/bin:/usr/bin:/bin
|
||||
|
@ -466,7 +467,7 @@ in {
|
|||
fastcgi_param HTTPS ${if cfg.https then "on" else "off"};
|
||||
fastcgi_param modHeadersAvailable true;
|
||||
fastcgi_param front_controller_active true;
|
||||
fastcgi_pass unix:/run/phpfpm/nextcloud;
|
||||
fastcgi_pass unix:/run/phpfpm-nextcloud/nextcloud.sock;
|
||||
fastcgi_intercept_errors on;
|
||||
fastcgi_request_buffering off;
|
||||
fastcgi_read_timeout 120s;
|
||||
|
|
|
@ -13,7 +13,7 @@ let
|
|||
runDir = "/run/restya-board";
|
||||
|
||||
poolName = "restya-board";
|
||||
phpfpmSocketName = "/run/phpfpm/${poolName}.sock";
|
||||
phpfpmSocketName = "/run/phpfpm-${poolName}/${poolName}.sock";
|
||||
|
||||
in
|
||||
|
||||
|
@ -178,9 +178,12 @@ in
|
|||
|
||||
config = mkIf cfg.enable {
|
||||
|
||||
services.phpfpm.poolConfigs = {
|
||||
services.phpfpm.pools = {
|
||||
"${poolName}" = {
|
||||
listen = phpfpmSocketName;
|
||||
socketName = "${poolName}";
|
||||
phpPackage = pkgs.php;
|
||||
user = "${cfg.user}";
|
||||
group = "${cfg.group}";
|
||||
phpOptions = ''
|
||||
date.timezone = "CET"
|
||||
|
||||
|
@ -192,11 +195,9 @@ in
|
|||
''}
|
||||
'';
|
||||
extraConfig = ''
|
||||
listen.owner = nginx
|
||||
listen.group = nginx
|
||||
listen.owner = ${config.services.nginx.user}
|
||||
listen.group = ${config.services.nginx.group}
|
||||
listen.mode = 0600
|
||||
user = ${cfg.user}
|
||||
group = ${cfg.group}
|
||||
pm = dynamic
|
||||
pm.max_children = 75
|
||||
pm.start_servers = 10
|
||||
|
@ -365,6 +366,9 @@ in
|
|||
home = runDir;
|
||||
group = "restya-board";
|
||||
};
|
||||
users.users.nginx = {
|
||||
extraGroups = [ "restya-board" ];
|
||||
};
|
||||
users.groups.restya-board = {};
|
||||
|
||||
services.postgresql.enable = mkIf (cfg.database.host == null) true;
|
||||
|
|
|
@ -3,9 +3,9 @@ with lib;
|
|||
let
|
||||
cfg = config.services.selfoss;
|
||||
|
||||
poolName = "selfoss_pool";
|
||||
phpfpmSocketName = "/run/phpfpm/${poolName}.sock";
|
||||
|
||||
poolName = "selfoss";
|
||||
phpfpmSocketName = "/run/phpfpm-${poolName}/${poolName}.sock";
|
||||
group = "${cfg.user}";
|
||||
dataDir = "/var/lib/selfoss";
|
||||
|
||||
selfoss-config =
|
||||
|
@ -116,21 +116,25 @@ in
|
|||
|
||||
config = mkIf cfg.enable {
|
||||
|
||||
services.phpfpm.poolConfigs = mkIf (cfg.pool == "${poolName}") {
|
||||
"${poolName}" = ''
|
||||
listen = "${phpfpmSocketName}";
|
||||
listen.owner = nginx
|
||||
listen.group = nginx
|
||||
listen.mode = 0600
|
||||
user = nginx
|
||||
pm = dynamic
|
||||
pm.max_children = 75
|
||||
pm.start_servers = 10
|
||||
pm.min_spare_servers = 5
|
||||
pm.max_spare_servers = 20
|
||||
pm.max_requests = 500
|
||||
catch_workers_output = 1
|
||||
'';
|
||||
services.phpfpm.pools = mkIf (cfg.pool == "${poolName}") {
|
||||
"${poolName}" = {
|
||||
socketName = "${poolName}";
|
||||
phpPackage = pkgs.php;
|
||||
user = "${cfg.user}";
|
||||
group = "${group}";
|
||||
extraConfig = ''
|
||||
listen.owner = ${config.services.nginx.user}
|
||||
listen.group = ${config.services.nginx.group}
|
||||
listen.mode = 0600
|
||||
pm = dynamic
|
||||
pm.max_children = 75
|
||||
pm.start_servers = 10
|
||||
pm.min_spare_servers = 5
|
||||
pm.max_spare_servers = 20
|
||||
pm.max_requests = 500
|
||||
catch_workers_output = 1
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
||||
systemd.services.selfoss-config = {
|
||||
|
@ -145,7 +149,7 @@ in
|
|||
# Create the files
|
||||
cp -r "${pkgs.selfoss}/"* "${dataDir}"
|
||||
ln -sf "${selfoss-config}" "${dataDir}/config.ini"
|
||||
chown -R "${cfg.user}" "${dataDir}"
|
||||
chown -R "${cfg.user}":"${group}" "${dataDir}"
|
||||
chmod -R 755 "${dataDir}"
|
||||
'';
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
|
@ -162,5 +166,8 @@ in
|
|||
|
||||
};
|
||||
|
||||
users.users.nginx = {
|
||||
extraGroups = [ "${group}" ];
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
|
@ -512,12 +512,14 @@ let
|
|||
|
||||
services.phpfpm.pools = mkIf (cfg.pool == "${poolName}") {
|
||||
"${poolName}" = {
|
||||
listen = "/var/run/phpfpm/${poolName}.sock";
|
||||
socketName = "${poolName}";
|
||||
phpPackage = pkgs.php;
|
||||
user = "${config.services.nginx.user}";
|
||||
group = "${config.services.nginx.group}";
|
||||
extraConfig = ''
|
||||
listen.owner = nginx
|
||||
listen.group = nginx
|
||||
listen.owner = ${config.services.nginx.user}
|
||||
listen.group = ${config.services.nginx.group}
|
||||
listen.mode = 0600
|
||||
user = ${cfg.user}
|
||||
pm = dynamic
|
||||
pm.max_children = 75
|
||||
pm.start_servers = 10
|
||||
|
@ -543,7 +545,7 @@ let
|
|||
locations."~ \.php$" = {
|
||||
extraConfig = ''
|
||||
fastcgi_split_path_info ^(.+\.php)(/.+)$;
|
||||
fastcgi_pass unix:${config.services.phpfpm.pools.${cfg.pool}.listen};
|
||||
fastcgi_pass unix:/run/phpfpm-${poolName}/${poolName}.sock;
|
||||
fastcgi_index index.php;
|
||||
'';
|
||||
};
|
||||
|
|
|
@ -42,10 +42,10 @@ in
|
|||
configText = mkOption {
|
||||
default = "";
|
||||
example = ''
|
||||
cache-size=1000
|
||||
scan-path=/srv/git
|
||||
source-filter=''${pkgs.cgit}/lib/cgit/filters/syntax-highlighting.py
|
||||
about-filter=''${pkgs.cgit}/lib/cgit/filters/about-formatting.sh
|
||||
cache-size=1000
|
||||
scan-path=/srv/git
|
||||
'';
|
||||
type = types.lines;
|
||||
description = ''
|
||||
|
|
|
@ -4,37 +4,26 @@ with lib;
|
|||
|
||||
let
|
||||
cfg = config.services.phpfpm;
|
||||
enabled = cfg.poolConfigs != {} || cfg.pools != {};
|
||||
enabled = cfg.pools != {};
|
||||
|
||||
stateDir = "/run/phpfpm";
|
||||
|
||||
poolConfigs =
|
||||
(mapAttrs mapPoolConfig cfg.poolConfigs) //
|
||||
(mapAttrs mapPool cfg.pools);
|
||||
|
||||
mapPoolConfig = n: p: {
|
||||
phpPackage = cfg.phpPackage;
|
||||
phpOptions = cfg.phpOptions;
|
||||
config = p;
|
||||
};
|
||||
poolConfigs = (mapAttrs mapPool cfg.pools);
|
||||
|
||||
mapPool = n: p: {
|
||||
phpPackage = p.phpPackage;
|
||||
phpOptions = p.phpOptions;
|
||||
config = ''
|
||||
listen = ${p.listen}
|
||||
${p.extraConfig}
|
||||
'';
|
||||
userPool = p.user;
|
||||
groupPool = p.group;
|
||||
};
|
||||
|
||||
fpmCfgFile = pool: conf: pkgs.writeText "phpfpm-${pool}.conf" ''
|
||||
[global]
|
||||
error_log = syslog
|
||||
daemonize = no
|
||||
${cfg.extraConfig}
|
||||
${cfg.globalExtraConfig}
|
||||
|
||||
[${pool}]
|
||||
${conf}
|
||||
listen = /run/phpfpm-${pool}/${cfg.pools.${pool}.socketName}.sock
|
||||
${cfg.pools.${pool}.extraConfig}
|
||||
'';
|
||||
|
||||
phpIni = pool: pkgs.runCommand "php.ini" {
|
||||
|
@ -49,86 +38,98 @@ let
|
|||
'';
|
||||
|
||||
in {
|
||||
|
||||
options = {
|
||||
services.phpfpm = {
|
||||
extraConfig = mkOption {
|
||||
globalExtraConfig = mkOption {
|
||||
type = types.lines;
|
||||
default = "";
|
||||
description = ''
|
||||
Extra configuration that should be put in the global section of
|
||||
Global extra configuration that should be put in the global section of
|
||||
the PHP-FPM configuration file. Do not specify the options
|
||||
<literal>error_log</literal> or
|
||||
<literal>daemonize</literal> here, since they are generated by
|
||||
NixOS.
|
||||
'';
|
||||
};
|
||||
|
||||
phpPackage = mkOption {
|
||||
type = types.package;
|
||||
default = pkgs.php;
|
||||
defaultText = "pkgs.php";
|
||||
description = ''
|
||||
The PHP package to use for running the PHP-FPM service.
|
||||
'';
|
||||
};
|
||||
|
||||
phpOptions = mkOption {
|
||||
type = types.lines;
|
||||
default = "";
|
||||
example =
|
||||
''
|
||||
date.timezone = "CET"
|
||||
'';
|
||||
description =
|
||||
"Options appended to the PHP configuration file <filename>php.ini</filename>.";
|
||||
};
|
||||
|
||||
poolConfigs = mkOption {
|
||||
default = {};
|
||||
type = types.attrsOf types.lines;
|
||||
example = literalExample ''
|
||||
{ mypool = '''
|
||||
listen = /run/phpfpm/mypool
|
||||
user = nobody
|
||||
pm = dynamic
|
||||
pm.max_children = 75
|
||||
pm.start_servers = 10
|
||||
pm.min_spare_servers = 5
|
||||
pm.max_spare_servers = 20
|
||||
pm.max_requests = 500
|
||||
''';
|
||||
}
|
||||
'';
|
||||
description = ''
|
||||
A mapping between PHP-FPM pool names and their configurations.
|
||||
See the documentation on <literal>php-fpm.conf</literal> for
|
||||
details on configuration directives. If no pools are defined,
|
||||
the phpfpm service is disabled.
|
||||
<literal>daemonize</literal> here, since they are generated by NixOS.
|
||||
'';
|
||||
};
|
||||
|
||||
pools = mkOption {
|
||||
type = types.attrsOf (types.submodule (import ./pool-options.nix {
|
||||
inherit lib config;
|
||||
}));
|
||||
default = {};
|
||||
type = types.attrsOf (types.submodule {
|
||||
options = {
|
||||
socketName = mkOption {
|
||||
type = types.str;
|
||||
example = "php-fpm";
|
||||
description = ''
|
||||
The address on which to accept FastCGI requests.
|
||||
'';
|
||||
};
|
||||
|
||||
phpPackage = mkOption {
|
||||
type = types.package;
|
||||
default = pkgs.php;
|
||||
defaultText = "pkgs.php";
|
||||
description = ''
|
||||
The PHP package to use for running this PHP-FPM pool.
|
||||
'';
|
||||
};
|
||||
|
||||
phpOptions = mkOption {
|
||||
type = types.lines;
|
||||
default = "";
|
||||
description = ''
|
||||
Options appended to the PHP configuration file <filename>php.ini</filename> used for this PHP-FPM pool.
|
||||
'';
|
||||
};
|
||||
|
||||
user = mkOption {
|
||||
type = types.string;
|
||||
default = "phpfpm";
|
||||
description = "User account under which phpfpm runs.";
|
||||
};
|
||||
|
||||
group = mkOption {
|
||||
type = types.string;
|
||||
default = "phpfpm";
|
||||
description = "Group account under which phpfpm runs.";
|
||||
};
|
||||
|
||||
extraConfig = mkOption {
|
||||
type = types.lines;
|
||||
example = ''
|
||||
pm = dynamic
|
||||
pm.max_children = 75
|
||||
pm.start_servers = 10
|
||||
pm.min_spare_servers = 5
|
||||
pm.max_spare_servers = 20
|
||||
pm.max_requests = 500
|
||||
'';
|
||||
|
||||
description = ''
|
||||
Extra lines that go into the pool configuration.
|
||||
See the documentation on <literal>php-fpm.conf</literal> for
|
||||
details on configuration directives.
|
||||
'';
|
||||
};
|
||||
};
|
||||
});
|
||||
|
||||
example = literalExample ''
|
||||
{
|
||||
mypool = {
|
||||
listen = "/path/to/unix/socket";
|
||||
phpPackage = pkgs.php;
|
||||
extraConfig = '''
|
||||
user = nobody
|
||||
pm = dynamic
|
||||
pm.max_children = 75
|
||||
pm.start_servers = 10
|
||||
pm.min_spare_servers = 5
|
||||
pm.max_spare_servers = 20
|
||||
pm.max_requests = 500
|
||||
''';
|
||||
}
|
||||
}'';
|
||||
{
|
||||
mypool = {
|
||||
socketName = "example";
|
||||
phpPackage = pkgs.php;
|
||||
user = "phpfpm";
|
||||
group = "phpfpm";
|
||||
extraConfig = '''
|
||||
pm = dynamic
|
||||
pm.max_children = 75
|
||||
pm.start_servers = 10
|
||||
pm.min_spare_servers = 5
|
||||
pm.max_spare_servers = 20
|
||||
pm.max_requests = 500
|
||||
''';
|
||||
}
|
||||
}
|
||||
'';
|
||||
description = ''
|
||||
PHP-FPM pools. If no pools or poolConfigs are defined, the PHP-FPM
|
||||
service is disabled.
|
||||
|
@ -154,9 +155,6 @@ in {
|
|||
after = [ "network.target" ];
|
||||
wantedBy = [ "phpfpm.target" ];
|
||||
partOf = [ "phpfpm.target" ];
|
||||
preStart = ''
|
||||
mkdir -p ${stateDir}
|
||||
'';
|
||||
serviceConfig = let
|
||||
cfgFile = fpmCfgFile pool poolConfig.config;
|
||||
iniFile = phpIni poolConfig;
|
||||
|
@ -166,10 +164,19 @@ in {
|
|||
ProtectSystem = "full";
|
||||
ProtectHome = true;
|
||||
# XXX: We need AF_NETLINK to make the sendmail SUID binary from postfix work
|
||||
RestrictAddressFamilies = "AF_UNIX AF_INET AF_INET6 AF_NETLINK";
|
||||
RestrictAddressFamilies = [ "AF_UNIX" "AF_INET" "AF_INET6" "AF_NETLINK" ];
|
||||
Type = "notify";
|
||||
ExecStart = "${poolConfig.phpPackage}/bin/php-fpm -y ${cfgFile} -c ${iniFile}";
|
||||
ExecStart = "${poolConfig.phpPackage}/bin/php-fpm -y '${cfgFile}' -c '${iniFile}'";
|
||||
ExecReload = "${pkgs.coreutils}/bin/kill -USR2 $MAINPID";
|
||||
# User and group
|
||||
User = "${poolConfig.userPool}";
|
||||
Group = "${poolConfig.groupPool}";
|
||||
# Runtime directory and mode
|
||||
RuntimeDirectory = "phpfpm-${pool}";
|
||||
RuntimeDirectoryMode = "0750";
|
||||
# Capabilities
|
||||
AmbientCapabilities = [ "CAP_NET_BIND_SERVICE" "CAP_SETGID" "CAP_SETUID" "CAP_CHOWN" "CAP_SYS_RESOURCE" ];
|
||||
CapabilityBoundingSet = [ "CAP_NET_BIND_SERVICE" "CAP_SETGID" "CAP_SETUID" "CAP_CHOWN" "CAP_SYS_RESOURCE" ];
|
||||
};
|
||||
}
|
||||
);
|
||||
|
|
|
@ -1,57 +0,0 @@
|
|||
{ lib, config }:
|
||||
|
||||
let
|
||||
fpmCfg = config.services.phpfpm;
|
||||
in
|
||||
|
||||
with lib; {
|
||||
|
||||
options = {
|
||||
|
||||
listen = mkOption {
|
||||
type = types.str;
|
||||
example = "/path/to/unix/socket";
|
||||
description = ''
|
||||
The address on which to accept FastCGI requests.
|
||||
'';
|
||||
};
|
||||
|
||||
phpPackage = mkOption {
|
||||
type = types.package;
|
||||
default = fpmCfg.phpPackage;
|
||||
defaultText = "config.services.phpfpm.phpPackage";
|
||||
description = ''
|
||||
The PHP package to use for running this PHP-FPM pool.
|
||||
'';
|
||||
};
|
||||
|
||||
phpOptions = mkOption {
|
||||
type = types.lines;
|
||||
default = fpmCfg.phpOptions;
|
||||
defaultText = "config.services.phpfpm.phpOptions";
|
||||
description = ''
|
||||
"Options appended to the PHP configuration file <filename>php.ini</filename> used for this PHP-FPM pool."
|
||||
'';
|
||||
};
|
||||
|
||||
extraConfig = mkOption {
|
||||
type = types.lines;
|
||||
example = ''
|
||||
user = nobody
|
||||
pm = dynamic
|
||||
pm.max_children = 75
|
||||
pm.start_servers = 10
|
||||
pm.min_spare_servers = 5
|
||||
pm.max_spare_servers = 20
|
||||
pm.max_requests = 500
|
||||
'';
|
||||
|
||||
description = ''
|
||||
Extra lines that go into the pool configuration.
|
||||
See the documentation on <literal>php-fpm.conf</literal> for
|
||||
details on configuration directives.
|
||||
'';
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
@ -23,14 +23,16 @@ let
|
|||
''}
|
||||
${cfg.qemuVerbatimConfig}
|
||||
'';
|
||||
dirName = "libvirt";
|
||||
subDirs = list: [ dirName ] ++ map (e: "${dirName}/${e}") list;
|
||||
|
||||
in {
|
||||
|
||||
###### interface
|
||||
|
||||
options = {
|
||||
options.virtualisation.libvirtd = {
|
||||
|
||||
virtualisation.libvirtd.enable = mkOption {
|
||||
enable = mkOption {
|
||||
type = types.bool;
|
||||
default = false;
|
||||
description = ''
|
||||
|
@ -41,7 +43,7 @@ in {
|
|||
'';
|
||||
};
|
||||
|
||||
virtualisation.libvirtd.qemuPackage = mkOption {
|
||||
qemuPackage = mkOption {
|
||||
type = types.package;
|
||||
default = pkgs.qemu;
|
||||
description = ''
|
||||
|
@ -51,7 +53,7 @@ in {
|
|||
'';
|
||||
};
|
||||
|
||||
virtualisation.libvirtd.extraConfig = mkOption {
|
||||
extraConfig = mkOption {
|
||||
type = types.lines;
|
||||
default = "";
|
||||
description = ''
|
||||
|
@ -60,7 +62,7 @@ in {
|
|||
'';
|
||||
};
|
||||
|
||||
virtualisation.libvirtd.qemuRunAsRoot = mkOption {
|
||||
qemuRunAsRoot = mkOption {
|
||||
type = types.bool;
|
||||
default = true;
|
||||
description = ''
|
||||
|
@ -72,7 +74,7 @@ in {
|
|||
'';
|
||||
};
|
||||
|
||||
virtualisation.libvirtd.qemuVerbatimConfig = mkOption {
|
||||
qemuVerbatimConfig = mkOption {
|
||||
type = types.lines;
|
||||
default = ''
|
||||
namespaces = []
|
||||
|
@ -84,7 +86,7 @@ in {
|
|||
'';
|
||||
};
|
||||
|
||||
virtualisation.libvirtd.qemuOvmf = mkOption {
|
||||
qemuOvmf = mkOption {
|
||||
type = types.bool;
|
||||
default = true;
|
||||
description = ''
|
||||
|
@ -93,7 +95,7 @@ in {
|
|||
'';
|
||||
};
|
||||
|
||||
virtualisation.libvirtd.extraOptions = mkOption {
|
||||
extraOptions = mkOption {
|
||||
type = types.listOf types.str;
|
||||
default = [ ];
|
||||
example = [ "--verbose" ];
|
||||
|
@ -102,7 +104,7 @@ in {
|
|||
'';
|
||||
};
|
||||
|
||||
virtualisation.libvirtd.onShutdown = mkOption {
|
||||
onShutdown = mkOption {
|
||||
type = types.enum ["shutdown" "suspend" ];
|
||||
default = "suspend";
|
||||
description = ''
|
||||
|
@ -113,6 +115,14 @@ in {
|
|||
'';
|
||||
};
|
||||
|
||||
allowedBridges = mkOption {
|
||||
type = types.listOf types.str;
|
||||
default = [ "virbr0" ];
|
||||
description = ''
|
||||
List of bridge devices that can be used by qemu:///session
|
||||
'';
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
|
||||
|
@ -120,7 +130,12 @@ in {
|
|||
|
||||
config = mkIf cfg.enable {
|
||||
|
||||
environment.systemPackages = with pkgs; [ libvirt libressl.nc cfg.qemuPackage ];
|
||||
environment = {
|
||||
# this file is expected in /etc/qemu and not sysconfdir (/var/lib)
|
||||
etc."qemu/bridge.conf".text = lib.concatMapStringsSep "\n" (e:
|
||||
"allow ${e}") cfg.allowedBridges;
|
||||
systemPackages = with pkgs; [ libvirt libressl.nc cfg.qemuPackage ];
|
||||
};
|
||||
|
||||
boot.kernelModules = [ "tun" ];
|
||||
|
||||
|
@ -134,30 +149,15 @@ in {
|
|||
group = "qemu-libvirtd";
|
||||
};
|
||||
|
||||
security.wrappers.qemu-bridge-helper = {
|
||||
source = "/run/${dirName}/nix-helpers/qemu-bridge-helper";
|
||||
};
|
||||
|
||||
systemd.packages = [ pkgs.libvirt ];
|
||||
|
||||
systemd.services.libvirtd = {
|
||||
description = "Libvirt Virtual Machine Management Daemon";
|
||||
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
after = [ "systemd-udev-settle.service" ]
|
||||
++ optional vswitch.enable "vswitchd.service";
|
||||
|
||||
environment.LIBVIRTD_ARGS = ''--config "${configFile}" ${concatStringsSep " " cfg.extraOptions}'';
|
||||
|
||||
path = [ cfg.qemuPackage ] # libvirtd requires qemu-img to manage disk images
|
||||
++ optional vswitch.enable vswitch.package;
|
||||
|
||||
preStart = ''
|
||||
mkdir -p /var/log/libvirt/qemu -m 755
|
||||
rm -f /var/run/libvirtd.pid
|
||||
|
||||
mkdir -p /var/lib/libvirt
|
||||
mkdir -p /var/lib/libvirt/dnsmasq
|
||||
|
||||
chmod 755 /var/lib/libvirt
|
||||
chmod 755 /var/lib/libvirt/dnsmasq
|
||||
|
||||
systemd.services.libvirtd-config = {
|
||||
description = "Libvirt Virtual Machine Management Daemon - configuration";
|
||||
script = ''
|
||||
# Copy default libvirt network config .xml files to /var/lib
|
||||
# Files modified by the user will not be overwritten
|
||||
for i in $(cd ${pkgs.libvirt}/var/lib && echo \
|
||||
|
@ -169,21 +169,45 @@ in {
|
|||
done
|
||||
|
||||
# Copy generated qemu config to libvirt directory
|
||||
cp -f ${qemuConfigFile} /var/lib/libvirt/qemu.conf
|
||||
cp -f ${qemuConfigFile} /var/lib/${dirName}/qemu.conf
|
||||
|
||||
# stable (not GC'able as in /nix/store) paths for using in <emulator> section of xml configs
|
||||
mkdir -p /run/libvirt/nix-emulators
|
||||
for emulator in ${pkgs.libvirt}/libexec/libvirt_lxc ${cfg.qemuPackage}/bin/qemu-kvm ${cfg.qemuPackage}/bin/qemu-system-*; do
|
||||
ln -s --force "$emulator" /run/libvirt/nix-emulators/
|
||||
ln -s --force "$emulator" /run/${dirName}/nix-emulators/
|
||||
done
|
||||
|
||||
for helper in libexec/qemu-bridge-helper bin/qemu-pr-helper; do
|
||||
ln -s --force ${cfg.qemuPackage}/$helper /run/${dirName}/nix-helpers/
|
||||
done
|
||||
|
||||
${optionalString cfg.qemuOvmf ''
|
||||
mkdir -p /run/libvirt/nix-ovmf
|
||||
ln -s --force ${pkgs.OVMF.fd}/FV/OVMF_CODE.fd /run/libvirt/nix-ovmf/
|
||||
ln -s --force ${pkgs.OVMF.fd}/FV/OVMF_VARS.fd /run/libvirt/nix-ovmf/
|
||||
ln -s --force ${pkgs.OVMF.fd}/FV/OVMF_CODE.fd /run/${dirName}/nix-ovmf/
|
||||
ln -s --force ${pkgs.OVMF.fd}/FV/OVMF_VARS.fd /run/${dirName}/nix-ovmf/
|
||||
''}
|
||||
'';
|
||||
|
||||
serviceConfig = {
|
||||
Type = "oneshot";
|
||||
RuntimeDirectoryPreserve = "yes";
|
||||
LogsDirectory = subDirs [ "qemu" ];
|
||||
RuntimeDirectory = subDirs [ "nix-emulators" "nix-helpers" "nix-ovmf" ];
|
||||
StateDirectory = subDirs [ "dnsmasq" ];
|
||||
};
|
||||
};
|
||||
|
||||
systemd.services.libvirtd = {
|
||||
description = "Libvirt Virtual Machine Management Daemon";
|
||||
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
requires = [ "libvirtd-config.service" ];
|
||||
after = [ "systemd-udev-settle.service" "libvirtd-config.service" ]
|
||||
++ optional vswitch.enable "vswitchd.service";
|
||||
|
||||
environment.LIBVIRTD_ARGS = ''--config "${configFile}" ${concatStringsSep " " cfg.extraOptions}'';
|
||||
|
||||
path = [ cfg.qemuPackage ] # libvirtd requires qemu-img to manage disk images
|
||||
++ optional vswitch.enable vswitch.package;
|
||||
|
||||
serviceConfig = {
|
||||
Type = "notify";
|
||||
KillMode = "process"; # when stopping, leave the VMs alone
|
||||
|
@ -203,7 +227,7 @@ in {
|
|||
systemd.sockets.virtlogd = {
|
||||
description = "Virtual machine log manager socket";
|
||||
wantedBy = [ "sockets.target" ];
|
||||
listenStreams = [ "/run/libvirt/virtlogd-sock" ];
|
||||
listenStreams = [ "/run/${dirName}/virtlogd-sock" ];
|
||||
};
|
||||
|
||||
systemd.services.virtlogd = {
|
||||
|
@ -215,7 +239,7 @@ in {
|
|||
systemd.sockets.virtlockd = {
|
||||
description = "Virtual machine lock manager socket";
|
||||
wantedBy = [ "sockets.target" ];
|
||||
listenStreams = [ "/run/libvirt/virtlockd-sock" ];
|
||||
listenStreams = [ "/run/${dirName}/virtlockd-sock" ];
|
||||
};
|
||||
|
||||
systemd.services.virtlockd = {
|
||||
|
|
|
@ -28,6 +28,12 @@ import ./make-test.nix ({ pkgs, ...} : {
|
|||
{
|
||||
users.users.testuser = { };
|
||||
services.mysql.enable = true;
|
||||
services.mysql.initialScript = pkgs.writeText "mariadb-init.sql" ''
|
||||
echo "ALTER USER root@localhost IDENTIFIED WITH unix_socket;"
|
||||
echo "DELETE FROM mysql.user WHERE password = ''' AND plugin = ''';"
|
||||
echo "DELETE FROM mysql.user WHERE user = ''';"
|
||||
echo "FLUSH PRIVILEGES;"
|
||||
'';
|
||||
services.mysql.ensureDatabases = [ "testdb" ];
|
||||
services.mysql.ensureUsers = [{
|
||||
name = "testuser";
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
let
|
||||
version = "2.5.1";
|
||||
sha256 = "0nnrgc2qyqqld3znjigryqpg5jaqh3jnmin4a334dbr4jw50dz3d";
|
||||
cargoSha256 = "184vfhsalk5dims3k13zrsv4lmm45a7nm3r0b84g72q7hhbl8pkf";
|
||||
version = "2.5.3";
|
||||
sha256 = "04z38ba4f1kmaa3d9b4gqz7dwr5blbppnkngw758xdm56772hfmj";
|
||||
cargoSha256 = "03dlzl96g8k02lifymwp1xs0b2mrnj5c1xzpwp014ijqlnzcfgsv";
|
||||
in
|
||||
import ./parity.nix { inherit version sha256 cargoSha256; }
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
let
|
||||
version = "2.4.6";
|
||||
sha256 = "0vfq1pyd92n60h9gimn4d5j56xanvl43sgxk9h2kb16amy0mmh3z";
|
||||
cargoSha256 = "04gi9vddahq1q207f83n3wriwdjnmmnby6mq4crdh7yx1p4b26m9";
|
||||
version = "2.4.8";
|
||||
sha256 = "1kr7hzv27vxa14wafhpaq5a4fv97zh71xjjmwzaqq4gj3k9yj0rm";
|
||||
cargoSha256 = "1yjyk6mhr3ws73aq6h8z5iabvj03ch7mxhkrfdkmhw3cjj0jgx6j";
|
||||
in
|
||||
import ./parity.nix { inherit version sha256 cargoSha256; }
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
|
||||
{ stdenv
|
||||
, fetchFromGitHub
|
||||
, rustPlatform
|
||||
, rustPlatform
|
||||
, pkgconfig
|
||||
, openssl
|
||||
, systemd
|
||||
|
@ -29,12 +29,14 @@ rustPlatform.buildRustPackage rec {
|
|||
systemd.lib systemd.dev openssl openssl.dev
|
||||
];
|
||||
|
||||
cargoBuildFlags = [ "--features final" ];
|
||||
|
||||
# test result: FAILED. 80 passed; 12 failed; 0 ignored; 0 measured; 0 filtered out
|
||||
doCheck = false;
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
description = "Fast, light, robust Ethereum implementation";
|
||||
homepage = http://parity.io;
|
||||
homepage = "http://parity.io";
|
||||
license = licenses.gpl3;
|
||||
maintainers = [ maintainers.akru ];
|
||||
platforms = platforms.linux;
|
||||
|
|
|
@ -15,11 +15,11 @@
|
|||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "ecasound-${version}";
|
||||
version = "2.9.1";
|
||||
version = "2.9.2";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://ecasound.seul.org/download/ecasound-${version}.tar.gz";
|
||||
sha256 = "1wyws3xc4f9pglrrqv6k9137sarv4asizqrxz8h0dn44rnzfiz1r";
|
||||
sha256 = "15rcs28fq2wfvfs66p5na7adq88b55qszbhshpizgdbyqzgr2jf1";
|
||||
};
|
||||
|
||||
buildInputs = [ alsaLib audiofile libjack2 liblo liboil libsamplerate libsndfile lilv lv2 ];
|
||||
|
|
|
@ -35,6 +35,7 @@ in stdenv.mkDerivation rec {
|
|||
|
||||
patches = [
|
||||
./fix-install-path.patch
|
||||
./fix-aac-defaults.patch
|
||||
];
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
|
|
@ -0,0 +1,15 @@
|
|||
diff --git a/src/modules/bluetooth/a2dp/a2dp_aac.c b/src/modules/bluetooth/a2dp/a2dp_aac.c
|
||||
index 394a7a0..cf5abaf 100644
|
||||
--- a/src/modules/bluetooth/a2dp/a2dp_aac.c
|
||||
+++ b/src/modules/bluetooth/a2dp/a2dp_aac.c
|
||||
@@ -90,8 +90,8 @@ pa_aac_encoder_init(pa_a2dp_source_read_cb_t read_cb, pa_a2dp_source_read_buf_fr
|
||||
info->read_pcm = read_cb;
|
||||
info->read_buf_free = free_cb;
|
||||
info->aacenc_handle_opened = false;
|
||||
- info->aac_enc_bitrate_mode = 5;
|
||||
- info->aac_afterburner = false;
|
||||
+ info->aac_enc_bitrate_mode = 0;
|
||||
+ info->aac_afterburner = true;
|
||||
info->force_pa_fmt = PA_SAMPLE_INVALID;
|
||||
return true;
|
||||
}
|
|
@ -47,13 +47,13 @@ let
|
|||
];
|
||||
in stdenv.mkDerivation rec {
|
||||
pname = "pulseeffects";
|
||||
version = "4.6.3";
|
||||
version = "4.6.5";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "wwmm";
|
||||
repo = "pulseeffects";
|
||||
rev = "v${version}";
|
||||
sha256 = "1gp23hpsnbiymbbhn6hp8sg1pnysgf04bj9k4h9dfinbgshlq6m7";
|
||||
sha256 = "11ihr29szpqlk9wkscns00ijihyvn5659bj1p7r1ixwgfv708apq";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
|
|
@ -29,11 +29,11 @@
|
|||
# handle that.
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "qmmp-1.3.2";
|
||||
name = "qmmp-1.3.3";
|
||||
|
||||
src = fetchurl {
|
||||
url = "http://qmmp.ylsoftware.com/files/${name}.tar.bz2";
|
||||
sha256 = "1rh063kcyg7gs9yj2r4v5irpnq4pjaxaxsgrw30mdr21xhhc15cz";
|
||||
sha256 = "1777kqgvbkshqlawy00gbgwflxflwmjjidqdq29mhqszs76r6727";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ cmake pkgconfig ];
|
||||
|
|
|
@ -13,9 +13,9 @@ let
|
|||
sha256Hash = "0y4l9d1yrvv1csx6vl4jnqgqy96y44rl6p8hcxrnbvrg61iqnj30";
|
||||
};
|
||||
betaVersion = {
|
||||
version = "3.5.0.16"; # "Android Studio 3.5 Beta 4"
|
||||
build = "191.5619324";
|
||||
sha256Hash = "1rg6v9b8fdnmslpv80khhpx59lvwhj1vwbkyabz2fryfj67wz01z";
|
||||
version = "3.5.0.17"; # "Android Studio 3.5 Beta 5"
|
||||
build = "191.5675373";
|
||||
sha256Hash = "0iw9v2rzr32dhs3z4vgz93zvxcv111q4cvwzi2cb83hn8kl050ip";
|
||||
};
|
||||
latestVersion = { # canary & dev
|
||||
version = "3.6.0.3"; # "Android Studio 3.6 Canary 3"
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
with stdenv.lib;
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "kakoune-${version}";
|
||||
pname = "kakoune-unwrapped";
|
||||
version = "2019.01.20";
|
||||
src = fetchFromGitHub {
|
||||
repo = "kakoune";
|
||||
|
|
|
@ -0,0 +1,5 @@
|
|||
{ parinfer-rust }:
|
||||
|
||||
{
|
||||
inherit parinfer-rust;
|
||||
}
|
|
@ -0,0 +1,44 @@
|
|||
{ stdenv, bash }:
|
||||
with stdenv.lib;
|
||||
|
||||
kakoune:
|
||||
|
||||
let
|
||||
getPlugins = { plugins ? [] }: plugins;
|
||||
|
||||
wrapper = { configure ? {} }:
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "kakoune";
|
||||
version = getVersion kakoune;
|
||||
|
||||
src = ./.;
|
||||
buildCommand = ''
|
||||
mkdir -p $out/share/kak
|
||||
for plugin in ${strings.escapeShellArgs (getPlugins configure)}; do
|
||||
if [[ -d $plugin/share/kak/autoload ]]; then
|
||||
find "$plugin/share/kak/autoload" -type f -name '*.kak'| while read rcfile; do
|
||||
printf 'source "%s"\n' "$rcfile"
|
||||
done
|
||||
fi
|
||||
done >>$out/share/kak/plugins.kak
|
||||
|
||||
mkdir -p $out/bin
|
||||
substitute ${src}/wrapper.sh $out/bin/kak \
|
||||
--subst-var-by bash "${bash}" \
|
||||
--subst-var-by kakoune "${kakoune}" \
|
||||
--subst-var-by out "$out"
|
||||
chmod +x $out/bin/kak
|
||||
'';
|
||||
|
||||
preferLocalBuild = true;
|
||||
buildInputs = [ bash kakoune ];
|
||||
passthru = { unwrapped = kakoune; };
|
||||
|
||||
meta = kakoune.meta // {
|
||||
# prefer wrapper over the package
|
||||
priority = (kakoune.meta.priority or 0) - 1;
|
||||
hydraPlatforms = [];
|
||||
};
|
||||
};
|
||||
in
|
||||
makeOverridable wrapper
|
|
@ -0,0 +1,30 @@
|
|||
#!@bash@/bin/bash
|
||||
|
||||
# We use the -E option to load plugins. This only makes sense when we are
|
||||
# starting a new session, so we detect that. Also, Kakoune can only handle
|
||||
# one -E option, so we prepend loading plugins to an existing one.
|
||||
args=( "$@" )
|
||||
loadPlugins=true
|
||||
EValueOffset=-1
|
||||
pluginScript='@out@/share/kak/plugins.kak'
|
||||
|
||||
for (( i = 0; i < ${#args[@]}; i++ )); do
|
||||
case "${args[i]}" in
|
||||
-n|-c|-l|-p|-clear|-version) loadPlugins=false;;
|
||||
-E) EValueOffset=$(( i + 1 ));;
|
||||
--) break;;
|
||||
esac
|
||||
case "${args[i]}" in
|
||||
-E|-c|-e|-s|-p|-f|-i|-ui|-debug) i=$(( i + 1 ));;
|
||||
esac
|
||||
done
|
||||
|
||||
if [[ $loadPlugins = true ]]; then
|
||||
if (( EValueOffset >= 0 )); then
|
||||
args[EValueOffset]="source '$pluginScript'"$'\n'"${args[EValueOffset]}"
|
||||
else
|
||||
args=( "-E" "source '$pluginScript'" "${args[@]}" )
|
||||
fi
|
||||
fi
|
||||
|
||||
exec @kakoune@/bin/kak "${args[@]}"
|
|
@ -2,11 +2,11 @@
|
|||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "typora";
|
||||
version = "0.9.70";
|
||||
version = "0.9.72";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://www.typora.io/linux/typora_${version}_amd64.deb";
|
||||
sha256 = "08bgllbvgrpdkk9bryj4s16n274ps4igwrzdvsdbyw8wpp44vcy2";
|
||||
sha256 = "0q7fj77pr3ykpwgip87h12qxvpvlzs15mi9w3phqm3p9mmm9rlrs";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
|
|
@ -59,11 +59,11 @@ let
|
|||
|
||||
in stdenv.mkDerivation rec {
|
||||
name = "drawpile-${version}";
|
||||
version = "2.1.10";
|
||||
version = "2.1.11";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://drawpile.net/files/src/drawpile-${version}.tar.gz";
|
||||
sha256 = "074lp5z5kh6qwar3y4ik7gma5mdgafdsb50q425xcd3pv00gy0hm";
|
||||
sha256 = "00r5vzracvjk369rri2jxzgfaa1ll4qj5gdmzgflvidz8420bcvm";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
{ stdenv, fetchurl, pkgconfig, autoconf, automake, gettext, intltool
|
||||
, gtk3, lcms2, exiv2, libchamplain, clutter-gtk, ffmpegthumbnailer, fbida
|
||||
, wrapGAppsHook
|
||||
, wrapGAppsHook, fetchpatch
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
|
@ -12,8 +12,20 @@ stdenv.mkDerivation rec {
|
|||
sha256 = "0ciygvcxb78pqg59r6p061mkbpvkgv2rv3r79j3kgv3kalb3ln2w";
|
||||
};
|
||||
|
||||
# Do not build the changelog as this requires markdown.
|
||||
patches = [ ./geeqie-no-changelog.patch ];
|
||||
patches = [
|
||||
# Do not build the changelog as this requires markdown.
|
||||
(fetchpatch {
|
||||
name = "geeqie-1.4-goodbye-changelog.patch";
|
||||
url = "https://src.fedoraproject.org/rpms/geeqie/raw/132fb04a1a5e74ddb333d2474f7edb9a39dc8d27/f/geeqie-1.4-goodbye-changelog.patch";
|
||||
sha256 = "00a35dds44kjjdqsbbfk0x9y82jspvsbpm2makcm1ivzlhjjgszn";
|
||||
})
|
||||
# Fixes build with exiv2 0.27.1
|
||||
(fetchpatch {
|
||||
name = "geeqie-exiv2-0.27.patch";
|
||||
url = "https://git.archlinux.org/svntogit/packages.git/plain/trunk/geeqie-exiv2-0.27.patch?h=packages/geeqie&id=dee28a8b3e9039b9cd6927b5a93ef2a07cd8271d";
|
||||
sha256 = "05skpbyp8pcq92psgijyccc8liwfy2cpwprw6m186pf454yb5y9p";
|
||||
})
|
||||
];
|
||||
|
||||
preConfigure = "./autogen.sh";
|
||||
|
||||
|
|
|
@ -1,14 +0,0 @@
|
|||
--- geeqie-1.4.orig/Makefile.am 2017-12-31 07:31:21.000000000 -0500
|
||||
+++ geeqie-1.4/Makefile.am 2018-01-01 15:05:58.742068166 -0500
|
||||
@@ -10,9 +10,9 @@
|
||||
readmedir = @readmedir@
|
||||
|
||||
if HAVE_MARKDOWN
|
||||
-readme_DATA = README.md COPYING ChangeLog TODO README.lirc AUTHORS README.html ChangeLog.html
|
||||
+readme_DATA = README.md COPYING TODO README.lirc AUTHORS README.html
|
||||
else
|
||||
-readme_DATA = README.md COPYING ChangeLog TODO README.lirc AUTHORS ChangeLog.html
|
||||
+readme_DATA = README.md COPYING TODO README.lirc AUTHORS
|
||||
endif
|
||||
|
||||
desktopdir = $(datadir)/applications
|
|
@ -1,4 +1,4 @@
|
|||
{ stdenv, cmake, fetchurl, gnumake, makeWrapper, pkgconfig
|
||||
{ stdenv, cmake, fetchurl, gnumake, makeWrapper, pkgconfig, fetchpatch
|
||||
, autopanosiftc, boost, cairo, enblend-enfuse, exiv2, fftw, flann, gettext
|
||||
, glew, ilmbase, lcms2, lensfun, libjpeg, libpng, libtiff, libX11, libXi
|
||||
, libXmu, libGLU_combined, openexr, panotools, perlPackages, sqlite, vigra, wxGTK, zlib
|
||||
|
@ -12,6 +12,14 @@ stdenv.mkDerivation rec {
|
|||
sha256 = "1l925qslp98gg7yzmgps10h6dq0nb60wbfk345anlxsv0g2ifizr";
|
||||
};
|
||||
|
||||
patches = [
|
||||
# Fixes build with exiv2 0.27.1
|
||||
(fetchpatch {
|
||||
url = "https://git.archlinux.org/svntogit/community.git/plain/trunk/hugin-exiv2-0.27.1.patch?h=packages/hugin";
|
||||
sha256 = "1yxvlpvrhyrfd2w6kwx1w3mncsvlzdhp0w7xchy8q6kc2kd5nf7r";
|
||||
})
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
boost cairo exiv2 fftw flann gettext glew ilmbase lcms2 lensfun libjpeg
|
||||
libpng libtiff libX11 libXi libXmu libGLU_combined openexr panotools sqlite vigra
|
||||
|
|
|
@ -1,23 +1,25 @@
|
|||
{ stdenv, cmake, fetchurl, pkgconfig, boost, exiv2, fftwFloat, gsl
|
||||
{ stdenv, cmake, fetchFromGitHub, pkgconfig, boost, exiv2, fftwFloat, gsl
|
||||
, ilmbase, lcms2, libraw, libtiff, openexr
|
||||
, qtbase, qtdeclarative, qttools, qtwebengine
|
||||
, qtbase, qtdeclarative, qttools, qtwebengine, eigen
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "luminance-hdr-2.5.1";
|
||||
pname = "luminance-hdr";
|
||||
version = "2.6.0";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://sourceforge/qtpfsgui/${name}.tar.bz2";
|
||||
sha256 = "15hnyk9yjkkc97dmnrg2ipfgwqxprlcyv2kyvbls4d54zc56x658";
|
||||
src = fetchFromGitHub {
|
||||
owner = "LuminanceHDR";
|
||||
repo = "LuminanceHDR";
|
||||
rev = "v.${version}";
|
||||
sha256 = "1izmgjjp8mgyxv57sjjr05z7g7059ykb5wchlcn4wrnnb6aslnvn";
|
||||
};
|
||||
|
||||
NIX_CFLAGS_COMPILE = "-I${ilmbase.dev}/include/OpenEXR";
|
||||
|
||||
buildInputs =
|
||||
[
|
||||
qtbase qtdeclarative qttools qtwebengine
|
||||
boost exiv2 fftwFloat gsl ilmbase lcms2 libraw libtiff openexr
|
||||
];
|
||||
buildInputs = [
|
||||
qtbase qtdeclarative qttools qtwebengine eigen
|
||||
boost exiv2 fftwFloat gsl ilmbase lcms2 libraw libtiff openexr
|
||||
];
|
||||
|
||||
nativeBuildInputs = [ cmake pkgconfig ];
|
||||
|
||||
|
|
|
@ -27,6 +27,10 @@ stdenv.mkDerivation rec {
|
|||
sha256 = "12582i5v85da7vwjxj8grj99hxg34ij5cn3b1578wspdfw1xfy1i";
|
||||
};
|
||||
|
||||
patches = [
|
||||
./nomacs-iostream.patch
|
||||
];
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
setSourceRoot = ''
|
||||
|
|
|
@ -0,0 +1,26 @@
|
|||
diff --git a/src/DkCore/DkMetaData.cpp b/src/DkCore/DkMetaData.cpp
|
||||
index d195757e..affec7be 100644
|
||||
--- a/src/DkCore/DkMetaData.cpp
|
||||
+++ b/src/DkCore/DkMetaData.cpp
|
||||
@@ -42,6 +42,8 @@
|
||||
#include <QApplication>
|
||||
#pragma warning(pop) // no warnings from includes - end
|
||||
|
||||
+#include <iostream>
|
||||
+
|
||||
namespace nmc {
|
||||
|
||||
// DkMetaDataT --------------------------------------------------------------------
|
||||
diff --git a/src/DkGui/DkNoMacs.cpp b/src/DkGui/DkNoMacs.cpp
|
||||
index 6a412f70..bbfba233 100644
|
||||
--- a/src/DkGui/DkNoMacs.cpp
|
||||
+++ b/src/DkGui/DkNoMacs.cpp
|
||||
@@ -96,6 +96,8 @@
|
||||
#include <QWinTaskbarButton>
|
||||
#endif
|
||||
|
||||
+#include <iostream>
|
||||
+
|
||||
namespace nmc {
|
||||
|
||||
DkNomacsOSXEventFilter::DkNomacsOSXEventFilter(QObject *parent) : QObject(parent) {
|
|
@ -37,5 +37,6 @@ stdenv.mkDerivation rec {
|
|||
meta = with stdenv.lib; {
|
||||
platforms = platforms.linux;
|
||||
license = licenses.gpl3;
|
||||
broken = true; # exiv2 0.27.1 FTBFS
|
||||
};
|
||||
}
|
||||
|
|
|
@ -1,23 +1,36 @@
|
|||
{ stdenv, fetchurl, cmake, exiv2, graphicsmagick, libraw
|
||||
{ stdenv, fetchurl, cmake, exiv2, graphicsmagick, libraw, fetchpatch
|
||||
, qtbase, qtdeclarative, qtmultimedia, qtquickcontrols, qttools, qtgraphicaleffects
|
||||
, extra-cmake-modules, poppler, kimageformats, libarchive, libdevil
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "photoqt-${version}";
|
||||
version = "1.5.1";
|
||||
pname = "photoqt";
|
||||
version = "1.7.1";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://photoqt.org/pkgs/photoqt-${version}.tar.gz";
|
||||
sha256 = "17kkpzkmzfnigs26jjyd75iy58qffjsclif81cmviq73lzmqy0b1";
|
||||
url = "https://${pname}.org/pkgs/${pname}-${version}.tar.gz";
|
||||
sha256 = "1qvxdh3cbjcywqx0da2qp8z092660qyzv5yknqbps2zr12qqb103";
|
||||
};
|
||||
|
||||
patches = [ ./photoqt-1.5.1-qt-5.9.patch ];
|
||||
patches = [
|
||||
# Fixes build with exiv2 0.27.1
|
||||
(fetchpatch {
|
||||
url = "https://gitlab.com/luspi/photoqt/commit/c6fd41478e818f3a651d40f96cab3d790e1c09a4.patch";
|
||||
sha256 = "1j2pdr7hm3js7lswhb4qkf9sj9viclhjqz50qxpyd7pqrl1gf2va";
|
||||
})
|
||||
];
|
||||
|
||||
nativeBuildInputs = [ cmake ];
|
||||
nativeBuildInputs = [ cmake extra-cmake-modules qttools ];
|
||||
|
||||
buildInputs = [
|
||||
qtbase qtquickcontrols qttools exiv2 graphicsmagick
|
||||
qtbase qtquickcontrols exiv2 graphicsmagick poppler
|
||||
qtmultimedia qtdeclarative libraw qtgraphicaleffects
|
||||
kimageformats libarchive
|
||||
];
|
||||
|
||||
cmakeFlags = [
|
||||
"-DFREEIMAGE=OFF"
|
||||
"-DDEVIL=OFF"
|
||||
];
|
||||
|
||||
preConfigure = ''
|
||||
|
|
|
@ -1,13 +0,0 @@
|
|||
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
||||
index 97abcb5..fd4877a 100644
|
||||
--- a/CMakeLists.txt
|
||||
+++ b/CMakeLists.txt
|
||||
@@ -50,7 +50,7 @@ SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -O3 -Wall")
|
||||
#### FIND REQUIRED PACKAGES ####
|
||||
################################
|
||||
|
||||
-FIND_PACKAGE(Qt5 COMPONENTS LinguistTools Quick Widgets Core Svg REQUIRED)
|
||||
+FIND_PACKAGE(Qt5 COMPONENTS LinguistTools Quick Widgets Core Svg Sql Xml REQUIRED)
|
||||
SET(CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/CMake" ${CMAKE_MODULE_PATH})
|
||||
FIND_PACKAGE(Magick)
|
||||
FIND_PACKAGE(Exiv2)
|
|
@ -1,41 +0,0 @@
|
|||
{stdenv, fetchurl, qt4, qmake4Hook, exiv2, openexr, fftwSinglePrec, libtiff, ilmbase }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "qtpfsgui-1.9.3";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://sourceforge/qtpfsgui/${name}.tar.gz";
|
||||
sha256 = "1mlg9dry4mfnnjlnwsw375hzsiagssdhccfmapx5nh6ykqrslsh1";
|
||||
};
|
||||
|
||||
buildInputs = [ qt4 exiv2 openexr fftwSinglePrec libtiff ];
|
||||
nativeBuildInputs = [ qmake4Hook ];
|
||||
|
||||
hardeningDisable = [ "format" ];
|
||||
|
||||
preConfigure = ''
|
||||
export CPATH="${ilmbase.dev}/include/OpenEXR:$CPATH"
|
||||
'';
|
||||
|
||||
qmakeFlags = [
|
||||
"EXIV2PATH=${exiv2.dev}/include/exiv2"
|
||||
"OPENEXRDIR=${openexr.dev}/include/OpenEXR"
|
||||
"FFTW3DIR=${fftwSinglePrec.dev}/include"
|
||||
"LIBTIFFDIR=${libtiff.dev}/include"
|
||||
];
|
||||
|
||||
meta = {
|
||||
homepage = http://qtpfsgui.sourceforge.net/;
|
||||
description = "Qtpfsqui, a graphical application for high dynamic range (HDR) imaging";
|
||||
|
||||
longDescription =
|
||||
'' Qtpfsgui is an open source graphical user interface application that
|
||||
aims to provide a workflow for high dynamic range (HDR) imaging.
|
||||
'';
|
||||
|
||||
license = stdenv.lib.licenses.gpl2Plus;
|
||||
|
||||
maintainers = [ ];
|
||||
platforms = stdenv.lib.platforms.gnu ++ stdenv.lib.platforms.linux;
|
||||
};
|
||||
}
|
|
@ -3,7 +3,7 @@
|
|||
extra-cmake-modules, kdoctools,
|
||||
exiv2, lcms2,
|
||||
baloo, kactivities, kdelibs4support, kio, kipi-plugins, libkdcraw, libkipi,
|
||||
phonon, qtimageformats, qtsvg, qtx11extras, kinit
|
||||
phonon, qtimageformats, qtsvg, qtx11extras, kinit, fetchpatch
|
||||
}:
|
||||
|
||||
mkDerivation {
|
||||
|
@ -18,4 +18,12 @@ mkDerivation {
|
|||
qtimageformats qtsvg qtx11extras
|
||||
];
|
||||
propagatedUserEnvPkgs = [ kipi-plugins libkipi (lib.getBin kinit) ];
|
||||
|
||||
# Fixes build with exiv2-0.27.1. Drop in 19.04.2
|
||||
patches = [
|
||||
(fetchpatch {
|
||||
url = "https://github.com/KDE/gwenview/commit/172560b845460b6121154f88221c855542219943.patch";
|
||||
sha256 = "0y1l34h2s7rhfknvg6ggcc389jfzhpq69wf0s3xd5ccwfw7c0ycq";
|
||||
})
|
||||
];
|
||||
}
|
||||
|
|
|
@ -2,24 +2,24 @@
|
|||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "1password";
|
||||
version = "0.5.6-003";
|
||||
version = "0.5.7";
|
||||
src =
|
||||
if stdenv.hostPlatform.system == "i686-linux" then
|
||||
fetchzip {
|
||||
url = "https://cache.agilebits.com/dist/1P/op/pkg/v${version}/op_linux_386_v${version}.zip";
|
||||
sha256 = "11smnx8fh32qm3b82x2ps4y46q29h77x1j1dj3d5vs0vha9b8frj";
|
||||
sha256 = "1193lq6cvqkv2cy07l6wzb25gb5vb3s3pxm534q3izhzrrz6lisz";
|
||||
stripRoot = false;
|
||||
}
|
||||
else if stdenv.hostPlatform.system == "x86_64-linux" then
|
||||
fetchzip {
|
||||
url = "https://cache.agilebits.com/dist/1P/op/pkg/v${version}/op_linux_amd64_v${version}.zip";
|
||||
sha256 = "1qwxga6qmb3n76h2fl1lxhnz676cqbx8gic1b5c9hw88gnqwykb9";
|
||||
sha256 = "0hlw1jasxzg31293d2n3ydzj62q7ji7nig7aaighcvzi3c9j7v51";
|
||||
stripRoot = false;
|
||||
}
|
||||
else if stdenv.hostPlatform.system == "x86_64-darwin" then
|
||||
fetchzip {
|
||||
url = "https://cache.agilebits.com/dist/1P/op/pkg/v${version}/op_darwin_amd64_v${version}.zip";
|
||||
sha256 = "0gzmwc20liqx2cqply06yarwp228ydfgfb26bmpxbvlp0cq7d07g";
|
||||
sha256 = "05z5k63fza6v0vhydyiq4sh9xhxnd9rcfxyym7jihv6b3fv3fnx3";
|
||||
stripRoot = false;
|
||||
}
|
||||
else throw "Architecture not supported";
|
||||
|
|
|
@ -120,6 +120,6 @@ in buildRustPackage rec {
|
|||
homepage = https://github.com/jwilm/alacritty;
|
||||
license = with licenses; [ asl20 ];
|
||||
maintainers = with maintainers; [ mic92 ];
|
||||
platforms = [ "x86_64-linux" "x86_64-darwin" "aarch64-linux" ];
|
||||
platforms = [ "x86_64-linux" "i686-linux" "x86_64-darwin" "aarch64-linux" ];
|
||||
};
|
||||
}
|
||||
|
|
|
@ -2,11 +2,11 @@
|
|||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "calcurse-${version}";
|
||||
version = "4.4.0";
|
||||
version = "4.5.0";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://calcurse.org/files/${name}.tar.gz";
|
||||
sha256 = "0vw2xi6a2lrhrb8n55zq9lv4mzxhby4xdf3hmi1vlfpyrpdwkjzd";
|
||||
sha256 = "1vjwcmp51h7dsvwn0qx93w9chp3wp970v7d9mjhk7jyamcbfywn3";
|
||||
};
|
||||
|
||||
buildInputs = [ ncurses gettext python3 python3Packages.wrapPython ];
|
||||
|
|
|
@ -5,13 +5,13 @@
|
|||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "CopyQ-${version}";
|
||||
version = "3.8.0";
|
||||
version = "3.9.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "hluk";
|
||||
repo = "CopyQ";
|
||||
rev = "v${version}";
|
||||
sha256 = "0kbhgg0j6iqfrpixvwl1mk3m0bz5s8bd6npk5xqcgzp1giywdc4i";
|
||||
sha256 = "1l9f0hg2ggy944sjlyiyglln5mjm9fvgmvwp3pnvmmc6mfbmslq3";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ cmake ];
|
||||
|
|
|
@ -2,13 +2,13 @@
|
|||
|
||||
python3Packages.buildPythonApplication rec {
|
||||
pname = "electron-cash";
|
||||
version = "4.0.2";
|
||||
version = "4.0.7";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://electroncash.org/downloads/${version}/win-linux/Electron-Cash-${version}.tar.gz";
|
||||
# Verified using official SHA-1 and signature from
|
||||
# https://github.com/fyookball/keys-n-hashes
|
||||
sha256 = "6255cd0493442ec57c10ae70ca2e84c6a29497f90a1393e6ac5772afe7572acf";
|
||||
sha256 = "d63ef2d52cff0b821b745067d752fd0c7f2902fa23eaf8e9392c54864cae5c77";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = with python3Packages; [
|
||||
|
|
|
@ -1,28 +1,41 @@
|
|||
{ fetchFromGitHub, stdenv, pkgconfig, exiv2, libxml2, gtk2
|
||||
, libxslt, docbook_xsl, docbook_xml_dtd_42 }:
|
||||
{ fetchFromGitHub, stdenv, fetchpatch, pkgconfig, exiv2, libxml2, gtk3
|
||||
, libxslt, docbook_xsl, docbook_xml_dtd_42, desktop-file-utils }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "gpscorrelate-${version}";
|
||||
version = "1.6.1";
|
||||
pname = "gpscorrelate";
|
||||
version = "unstable-2019-06-05";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "freefoote";
|
||||
repo = "gpscorrelate";
|
||||
rev = version;
|
||||
sha256 = "1z0fc75rx7dl6nnydksa578qv116j2c2xs1czfiijzxjghx8njdj";
|
||||
owner = "dfandrich";
|
||||
repo = pname;
|
||||
rev = "80b14fe7c10c1cc8f62c13f517c062577ce88c85";
|
||||
sha256 = "1gaan0nd7ai0bwilfnkza7lg5mz87804mvlygj0gjc672izr37r6";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ pkgconfig ];
|
||||
buildInputs = [
|
||||
exiv2 libxml2 gtk2
|
||||
libxslt docbook_xsl
|
||||
nativeBuildInputs = [
|
||||
desktop-file-utils
|
||||
docbook_xml_dtd_42
|
||||
docbook_xsl
|
||||
libxslt
|
||||
pkgconfig
|
||||
];
|
||||
|
||||
patchPhase = ''
|
||||
sed -i "Makefile" \
|
||||
-es",^[[:blank:]]*prefix[[:blank:]]*=.*$,prefix = $out,g"
|
||||
'';
|
||||
buildInputs = [
|
||||
exiv2
|
||||
gtk3
|
||||
libxml2
|
||||
];
|
||||
|
||||
makeFlags = [
|
||||
"prefix=${placeholder ''out''}"
|
||||
"GTK=3"
|
||||
"CC=cc"
|
||||
"CXX=c++"
|
||||
];
|
||||
|
||||
doCheck = true;
|
||||
|
||||
installTargets = [ "install" "install-desktop-file" ];
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
description = "A GPS photo correlation tool, to add EXIF geotags";
|
||||
|
@ -44,7 +57,7 @@ stdenv.mkDerivation rec {
|
|||
'';
|
||||
|
||||
license = licenses.gpl2Plus;
|
||||
homepage = https://github.com/freefoote/gpscorrelate;
|
||||
homepage = "https://github.com/dfandrich/gpscorrelate";
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
||||
|
|
|
@ -1,8 +1,27 @@
|
|||
{ lib, bundlerApp, ruby
|
||||
, writeShellScriptBin, makeWrapper
|
||||
, withOptionalDependencies ? false
|
||||
}:
|
||||
|
||||
bundlerApp rec {
|
||||
let
|
||||
rubyWrapper = writeShellScriptBin "ruby" ''
|
||||
if [[ "$#" -eq 2 ]]; then
|
||||
if [[ "''${1##*/}" == "bundle" && "$2" == "install" ]]; then
|
||||
# See https://github.com/NixOS/nixpkgs/issues/58126 for more details.
|
||||
echo 'Skipping "bundle install" as it fails due to the Nix wrapper.'
|
||||
echo 'Please enter the new directory and run the following commands to serve the page:'
|
||||
echo 'nix-shell -p bundler --run "bundle install --gemfile=Gemfile --path vendor/cache"'
|
||||
echo 'nix-shell -p bundler --run "bundle exec jekyll serve"'
|
||||
exit 0
|
||||
# The following nearly works:
|
||||
unset BUNDLE_FROZEN
|
||||
exec ${ruby}/bin/ruby "$@" --gemfile=Gemfile --path=vendor/cache
|
||||
fi
|
||||
fi
|
||||
# Else: Don't modify the arguments:
|
||||
exec ${ruby}/bin/ruby "$@"
|
||||
'';
|
||||
in bundlerApp rec {
|
||||
pname = "jekyll";
|
||||
exes = [ "jekyll" ];
|
||||
|
||||
|
@ -11,6 +30,12 @@ bundlerApp rec {
|
|||
then ./full
|
||||
else ./basic;
|
||||
|
||||
buildInputs = [ makeWrapper ];
|
||||
|
||||
postBuild = ''
|
||||
wrapProgram $out/bin/jekyll --prefix PATH : ${rubyWrapper}/bin
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description = "A blog-aware, static site generator, written in Ruby";
|
||||
longDescription = ''
|
||||
|
|
|
@ -3,12 +3,12 @@
|
|||
|
||||
mkDerivation rec {
|
||||
pname = "latte-dock";
|
||||
version = "0.8.8";
|
||||
version = "0.8.9";
|
||||
name = "${pname}-${version}";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://download.kde.org/stable/${pname}/${name}.tar.xz";
|
||||
sha256 = "137s7rx35a5qrfww3q8bllj4zyjfa7l709snvdfj34y7jbq7p6cd";
|
||||
sha256 = "1kkpxa39crjpqgamrcpgp1mrcdg0aq9850yb6cf7lw7d3x2fdrxj";
|
||||
name = "${name}.tar.xz";
|
||||
};
|
||||
|
||||
|
|
|
@ -103,7 +103,7 @@ let
|
|||
perl which p7zip gnused gnugrep psmisc cups lcms2 mpg123 cairo unixODBC
|
||||
samba4 sane-backends openldap opencl-headers ocl-icd utillinux
|
||||
|
||||
(wine.override { wineBuild = "wineWow"; })
|
||||
wineWowPackages.staging
|
||||
|
||||
# ZDOOM
|
||||
soundfont-fluid bzip2 game-music-emu
|
||||
|
|
|
@ -4,13 +4,13 @@
|
|||
stdenv.mkDerivation rec {
|
||||
name = "${product}-${version}";
|
||||
product = "pdfpc";
|
||||
version = "4.3.2";
|
||||
version = "4.3.4";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
repo = product;
|
||||
owner = product;
|
||||
rev = "v${version}";
|
||||
sha256 = "15y6g92fp6x6dwwhrhkfny5z20w7pq9c8w19fh2vzff9aa6m2h9z";
|
||||
sha256 = "07aafsm4jzdgpahz83p0ajv40hry7gviyadqi13ahr8xdhhwy2sd";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
{ stdenv, fetchurl, cmake, qtscript, qtwebengine, gdal, proj, routino, quazip }:
|
||||
{ stdenv, fetchurl, fetchpatch, cmake, qtscript, qtwebengine, gdal, proj, routino, quazip }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "qmapshack-${version}";
|
||||
version = "1.12.3";
|
||||
version = "1.13.0";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://bitbucket.org/maproom/qmapshack/downloads/${name}.tar.gz";
|
||||
sha256 = "1yp5gw4q4gwiwr9w4dz19am0bhsla9n2l3bdlk98a7f46kxgnkrx";
|
||||
sha256 = "1cv1f718r8vqyk2l6w3alz2aqjvb4msz8705pm9yr5ndi28qyrba";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ cmake ];
|
||||
|
@ -15,12 +15,23 @@ stdenv.mkDerivation rec {
|
|||
|
||||
cmakeFlags = [
|
||||
"-DROUTINO_XML_PATH=${routino}/share/routino"
|
||||
"-DQUAZIP_INCLUDE_DIR=${quazip}/include/quazip"
|
||||
"-DQUAZIP_INCLUDE_DIR=${quazip}/include/quazip5"
|
||||
"-DLIBQUAZIP_LIBRARY=${quazip}/lib/libquazip.so"
|
||||
];
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
patches = [
|
||||
(fetchpatch {
|
||||
url = "https://bitbucket.org/maproom/qmapshack/raw/d0b1b595578a83fda981ccc1ff24166fa636ba1d/FindPROJ4.patch";
|
||||
sha256 = "1nx4ax233bnnj478cmjpm5c1qqmyn1navlihf10q6hhbanay9n99";
|
||||
})
|
||||
(fetchpatch {
|
||||
url = "https://bitbucket.org/maproom/qmapshack/raw/d0b1b595578a83fda981ccc1ff24166fa636ba1d/FindQuaZip5.patch";
|
||||
sha256 = "0z1b2dz2zlz685mxgn8bmh1fyhxpf6dzd6jvkkjyk2kvnrdxv3b9";
|
||||
})
|
||||
];
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
homepage = https://bitbucket.org/maproom/qmapshack/wiki/Home;
|
||||
description = "Plan your next outdoor trip";
|
||||
|
|
|
@ -6,11 +6,11 @@ with stdenv.lib;
|
|||
buildPythonApplication rec {
|
||||
|
||||
name = "termdown-${version}";
|
||||
version = "1.14.1";
|
||||
version = "1.15.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
rev = version;
|
||||
sha256 = "0jgjzglna0gwp0j31l48pny69szslczl13aahwjfjypkv9lx8w2a";
|
||||
sha256 = "08l03yk5jc1g0gps789q1s2knnaqzlidy4s5q5nhwg9g25la19nr";
|
||||
repo = "termdown";
|
||||
owner = "trehn";
|
||||
};
|
||||
|
|
|
@ -1,19 +1,21 @@
|
|||
{ fetchurl, stdenv, makeWrapper, pkgconfig, intltool, gettext, gtk2, expat, curl
|
||||
, gpsd, bc, file, gnome-doc-utils, libexif, libxml2, libxslt, scrollkeeper
|
||||
, docbook_xml_dtd_412, gexiv2, sqlite, gpsbabel, expect, hicolor-icon-theme }:
|
||||
, docbook_xml_dtd_412, gexiv2, sqlite, gpsbabel, expect, hicolor-icon-theme
|
||||
, geoclue2, liboauth }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "viking-${version}";
|
||||
version = "1.6.2";
|
||||
version = "1.7";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://sourceforge/viking/viking/viking-${version}.tar.bz2";
|
||||
sha256 = "09kq0sxs2czps0d6xzgkkp41746v44ip63m72qvfs7rsrnqj7qnz";
|
||||
sha256 = "092q2dv0rcz12nh2js1z1ralib1553dmzy9pdrvz9nv2vf61wybw";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ pkgconfig ];
|
||||
buildInputs = [ makeWrapper intltool gettext gtk2 expat curl gpsd bc file gnome-doc-utils
|
||||
libexif libxml2 libxslt scrollkeeper docbook_xml_dtd_412 gexiv2 sqlite hicolor-icon-theme
|
||||
geoclue2 liboauth
|
||||
];
|
||||
|
||||
configureFlags = [ "--disable-scrollkeeper --disable-mapnik" ];
|
||||
|
|
|
@ -2,16 +2,16 @@
|
|||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "zola";
|
||||
version = "0.7.0";
|
||||
version = "0.8.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "getzola";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "02lr1n3gf0agj8x451ndyvv16lq7rccazp4nz9zy0pzwxwrlwhra";
|
||||
sha256 = "166kmlkzd1qyw9yq2jqs58z8b3d956jjhw9r15jzw98md949psr5";
|
||||
};
|
||||
|
||||
cargoSha256 = "003dhh41fh337k3djibpj6hyd16xprbgws3lbp7x37p4lx7qlnfy";
|
||||
cargoSha256 = "1brmlg6nqyls1v62z0fg0km150q9m7h71wy67lidcnw76icmqr24";
|
||||
|
||||
nativeBuildInputs = [ cmake pkgconfig ];
|
||||
buildInputs = [ openssl ] ++ stdenv.lib.optionals stdenv.isDarwin [ CoreServices cf-private ];
|
||||
|
|
|
@ -94,7 +94,14 @@ let
|
|||
|
||||
browserPatches = [
|
||||
./env_var_for_system_dir.patch
|
||||
] ++ lib.optionals (stdenv.isAarch64 && lib.versionAtLeast ffversion "66" && lib.versionOlder ffversion "67") [
|
||||
]
|
||||
++ lib.optional (lib.versionAtLeast ffversion "63" && lib.versionOlder ffversion "69")
|
||||
(fetchpatch { # https://bugzilla.mozilla.org/show_bug.cgi?id=1500436#c29
|
||||
name = "write_error-parallel_make.diff";
|
||||
url = "https://hg.mozilla.org/mozilla-central/raw-diff/562655fe/python/mozbuild/mozbuild/action/node.py";
|
||||
sha256 = "11d7rgzinb4mwl7yzhidjkajynmxgmffr4l9isgskfapyax9p88y";
|
||||
})
|
||||
++ lib.optionals (stdenv.isAarch64 && lib.versionAtLeast ffversion "66" && lib.versionOlder ffversion "67") [
|
||||
(fetchpatch {
|
||||
url = "https://raw.githubusercontent.com/archlinuxarm/PKGBUILDs/09c7fa0dc1d87922e3b464c0fa084df1227fca79/extra/firefox/arm.patch";
|
||||
sha256 = "1vbpih23imhv5r3g21m3m541z08n9n9j1nvmqax76bmyhn7mxp32";
|
||||
|
|
|
@ -21,12 +21,12 @@ let
|
|||
|
||||
in python3Packages.buildPythonApplication rec {
|
||||
pname = "qutebrowser";
|
||||
version = "1.6.2";
|
||||
version = "1.6.3";
|
||||
|
||||
# the release tarballs are different from the git checkout!
|
||||
src = fetchurl {
|
||||
url = "https://github.com/qutebrowser/qutebrowser/releases/download/v${version}/${pname}-${version}.tar.gz";
|
||||
sha256 = "1yzwrpqpghlpy2d7pbjgcb73dbngw835l4xbimz5aa90mvqkbwg1";
|
||||
sha256 = "0z9an14vlv0r48x7fk0mk7465gnhh19dx1w63lyhsgnfqy5pzlhy";
|
||||
};
|
||||
|
||||
# Needs tox
|
||||
|
|
|
@ -9,6 +9,7 @@
|
|||
, patchelf, makeWrapper
|
||||
, isSnapshot ? false
|
||||
, proprietaryCodecs ? false, vivaldi-ffmpeg-codecs ? null
|
||||
, enableWidevine ? false, vivaldi-widevine ? null
|
||||
}:
|
||||
|
||||
let
|
||||
|
@ -50,8 +51,8 @@ in stdenv.mkDerivation rec {
|
|||
--set-rpath "${libPath}" \
|
||||
opt/${vivaldiName}/vivaldi-bin
|
||||
'' + stdenv.lib.optionalString proprietaryCodecs ''
|
||||
sed -i '/^VIVALDI_FFMPEG_FOUND/ a \
|
||||
checkffmpeg "${vivaldi-ffmpeg-codecs}/lib/libffmpeg.so"' opt/${vivaldiName}/vivaldi
|
||||
sed -i '/^if \[ "$VIVALDI_FFMPEG_FOUND/i \
|
||||
VIVALDI_FFMPEG_FOUND=YES\nCACHED_FFMPEG=${vivaldi-ffmpeg-codecs}/lib/libffmpeg.so' opt/${vivaldiName}/${vivaldiName}
|
||||
'' + ''
|
||||
echo "Finished patching Vivaldi binaries"
|
||||
'';
|
||||
|
@ -76,7 +77,11 @@ in stdenv.mkDerivation rec {
|
|||
"$out"/share/icons/hicolor/''${d}x''${d}/apps/vivaldi.png
|
||||
done
|
||||
wrapProgram "$out/bin/vivaldi" \
|
||||
--suffix XDG_DATA_DIRS : ${gtk3}/share/gsettings-schemas/${gtk3.name}/
|
||||
--suffix XDG_DATA_DIRS : ${gtk3}/share/gsettings-schemas/${gtk3.name}/ \
|
||||
${stdenv.lib.optionalString enableWidevine "--suffix LD_LIBRARY_PATH : ${libPath}"}
|
||||
'' + stdenv.lib.optionalString enableWidevine ''
|
||||
rm $out/opt/${vivaldiName}/libwidevinecdm.so
|
||||
ln -s ${vivaldi-widevine}/lib/libwidevinecdm.so $out/opt/${vivaldiName}/libwidevinecdm.so
|
||||
'';
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
|
|
|
@ -1,53 +1,32 @@
|
|||
{ stdenv, fetchurl
|
||||
, dbus-glib, gtk3, libexif, libXScrnSaver, ninja, nss
|
||||
, pciutils, pkgconfig, python2, xdg_utils, gn, at-spi2-core
|
||||
, dpkg
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "${product}-${version}";
|
||||
product = "vivaldi-ffmpeg-codecs";
|
||||
version = "72.0.3626.122";
|
||||
name = "chromium-codecs-ffmpeg";
|
||||
version = "74.0.3729.169";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://commondatastorage.googleapis.com/chromium-browser-official/chromium-${version}.tar.xz";
|
||||
sha512 = "1477g5dgi4m0zbiqwm9w6jqkmjfmgjlbl3qs9ljldx8bif8my1jbz4hzws954aqxyxdbf5rjpvmrrqqppk5347prvsyl37rbsndaaqf";
|
||||
url = "https://launchpadlibrarian.net/424938057/${name}-extra_${version}-0ubuntu0.16.04.1_amd64.deb";
|
||||
sha256 = "1ls2fshfk08hqsfvbd7p6rp2gv3n0xdy86rdh00wiz5qgl3skfzc";
|
||||
};
|
||||
|
||||
buildInputs = [ ];
|
||||
buildInputs = [ dpkg ];
|
||||
|
||||
nativeBuildInputs = [
|
||||
gtk3 libexif libXScrnSaver ninja nss pciutils python2 xdg_utils gn
|
||||
pkgconfig dbus-glib at-spi2-core.dev
|
||||
];
|
||||
|
||||
patches = [
|
||||
];
|
||||
|
||||
configurePhase = ''
|
||||
runHook preConfigure
|
||||
|
||||
local args="ffmpeg_branding=\"ChromeOS\" proprietary_codecs=true enable_hevc_demuxing=true use_gnome_keyring=false use_sysroot=false use_gold=false use_allocator=\"none\" linux_use_bundled_binutils=false fatal_linker_warnings=false treat_warnings_as_errors=false enable_nacl=false enable_nacl_nonsfi=false is_clang=false clang_use_chrome_plugins=false is_component_build=true is_debug=false symbol_level=0 use_custom_libcxx=false use_lld=false use_jumbo_build=false"
|
||||
gn gen out/Release -v --args="$args"
|
||||
|
||||
runHook postConfigure
|
||||
unpackPhase = ''
|
||||
dpkg-deb -x $src .
|
||||
find .
|
||||
'';
|
||||
|
||||
buildPhase = ''
|
||||
ninja -C out/Release -v libffmpeg.so
|
||||
'';
|
||||
|
||||
dontStrip = true;
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p "$out/lib"
|
||||
cp out/Release/libffmpeg.so "$out/lib/libffmpeg.so"
|
||||
install -vD usr/lib/chromium-browser/libffmpeg.so $out/lib/libffmpeg.so
|
||||
'';
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
description = "Additional support for proprietary codecs for Vivaldi";
|
||||
homepage = "https://ffmpeg.org/";
|
||||
license = licenses.lgpl21;
|
||||
maintainers = with maintainers; [ lluchs ];
|
||||
maintainers = with maintainers; [ betaboon lluchs ];
|
||||
platforms = [ "x86_64-linux" ];
|
||||
};
|
||||
}
|
||||
|
|
|
@ -0,0 +1,32 @@
|
|||
{ stdenv, fetchurl
|
||||
, unzip
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "widevine";
|
||||
version = "4.10.1196.0";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://dl.google.com/widevine-cdm/${version}-linux-x64.zip";
|
||||
sha256 = "01c7nr7d2xs718jymicbk4ipzfx6q253109qv3lk4lryrrhvw14y";
|
||||
};
|
||||
|
||||
buildInputs = [ unzip ];
|
||||
|
||||
unpackPhase = ''
|
||||
unzip $src libwidevinecdm.so
|
||||
find .
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
install -vD libwidevinecdm.so $out/lib/libwidevinecdm.so
|
||||
'';
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
description = "Widevine support for Vivaldi";
|
||||
homepage = "https://www.widevine.com";
|
||||
license = licenses.unfree;
|
||||
maintainers = with maintainers; [ betaboon ];
|
||||
platforms = [ "x86_64-linux" ];
|
||||
};
|
||||
}
|
|
@ -1,6 +1,6 @@
|
|||
{ lib, buildGoModule, fetchFromGitHub, makeWrapper, kubernetes-helm, ... }:
|
||||
|
||||
let version = "0.77.0"; in
|
||||
let version = "0.79.3"; in
|
||||
|
||||
buildGoModule {
|
||||
pname = "helmfile";
|
||||
|
@ -10,7 +10,7 @@ buildGoModule {
|
|||
owner = "roboll";
|
||||
repo = "helmfile";
|
||||
rev = "v${version}";
|
||||
sha256 = "0nj8gs7aqkxpj6bd80ks7g34qqa4y53a8sim1znbxs6mb678c2x2";
|
||||
sha256 = "0wgfpidpqyvh41dnw351v91z4szi1s6lqak9li2pmddz1rdkx66v";
|
||||
};
|
||||
|
||||
goPackagePath = "github.com/roboll/helmfile";
|
||||
|
|
|
@ -0,0 +1,25 @@
|
|||
{ stdenv, buildGoPackage, fetchFromGitHub }:
|
||||
|
||||
buildGoPackage rec {
|
||||
pname = "kube3d";
|
||||
version = "1.1.0";
|
||||
|
||||
goPackagePath = "github.com/rancher/k3d";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "rancher";
|
||||
repo = "k3d";
|
||||
rev = "v${version}";
|
||||
sha256 = "180q7a95znpkhfqcaw3asqrq22r6ppw98qsggp2wfm746mllg5pc";
|
||||
};
|
||||
|
||||
goDeps = ./deps.nix;
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
homepage = "https://github.com/rancher/k3d";
|
||||
description = "A helper to run k3s (Lightweight Kubernetes. 5 less than k8s) in a docker container";
|
||||
license = licenses.mit;
|
||||
platforms = platforms.linux;
|
||||
maintainers = with maintainers; [ kuznero ];
|
||||
};
|
||||
}
|
|
@ -0,0 +1,174 @@
|
|||
# file generated from go.mod using vgo2nix (https://github.com/adisbladis/vgo2nix)
|
||||
[
|
||||
{
|
||||
goPackagePath = "github.com/Microsoft/go-winio";
|
||||
fetch = {
|
||||
type = "git";
|
||||
url = "https://github.com/Microsoft/go-winio";
|
||||
rev = "v0.4.12";
|
||||
sha256 = "10v2f1xaw2cc97mjqnxzgs9ydpqv71f0ynp1spcywqw97la56zqw";
|
||||
};
|
||||
}
|
||||
{
|
||||
goPackagePath = "github.com/davecgh/go-spew";
|
||||
fetch = {
|
||||
type = "git";
|
||||
url = "https://github.com/davecgh/go-spew";
|
||||
rev = "v1.1.0";
|
||||
sha256 = "0d4jfmak5p6lb7n2r6yvf5p1zcw0l8j74kn55ghvr7zr7b7axm6c";
|
||||
};
|
||||
}
|
||||
{
|
||||
goPackagePath = "github.com/docker/distribution";
|
||||
fetch = {
|
||||
type = "git";
|
||||
url = "https://github.com/docker/distribution";
|
||||
rev = "v2.7.1";
|
||||
sha256 = "1nx8b5a68rn81alp8wkkw6qd5v32mgf0fk23mxm60zdf63qk1nzw";
|
||||
};
|
||||
}
|
||||
{
|
||||
goPackagePath = "github.com/docker/docker";
|
||||
fetch = {
|
||||
type = "git";
|
||||
url = "https://github.com/docker/docker";
|
||||
rev = "v1.13.1";
|
||||
sha256 = "0l9kjibnpwcgk844sibxk9ppyqniw9r0np1mzp95f8f461jb0iar";
|
||||
};
|
||||
}
|
||||
{
|
||||
goPackagePath = "github.com/docker/go-connections";
|
||||
fetch = {
|
||||
type = "git";
|
||||
url = "https://github.com/docker/go-connections";
|
||||
rev = "v0.4.0";
|
||||
sha256 = "0mv6f6b5nljc17dmwmc28hc0y11pqglz7x0d2mjrwdmfxf64hwqq";
|
||||
};
|
||||
}
|
||||
{
|
||||
goPackagePath = "github.com/docker/go-units";
|
||||
fetch = {
|
||||
type = "git";
|
||||
url = "https://github.com/docker/go-units";
|
||||
rev = "v0.3.3";
|
||||
sha256 = "0npxsb3pp89slwf4a73fxm20hykad8xggij6i6hcd5jy19bjrd93";
|
||||
};
|
||||
}
|
||||
{
|
||||
goPackagePath = "github.com/mattn/go-runewidth";
|
||||
fetch = {
|
||||
type = "git";
|
||||
url = "https://github.com/mattn/go-runewidth";
|
||||
rev = "v0.0.4";
|
||||
sha256 = "00b3ssm7wiqln3k54z2wcnxr3k3c7m1ybyhb9h8ixzbzspld0qzs";
|
||||
};
|
||||
}
|
||||
{
|
||||
goPackagePath = "github.com/mitchellh/go-homedir";
|
||||
fetch = {
|
||||
type = "git";
|
||||
url = "https://github.com/mitchellh/go-homedir";
|
||||
rev = "v1.1.0";
|
||||
sha256 = "0ydzkipf28hwj2bfxqmwlww47khyk6d152xax4bnyh60f4lq3nx1";
|
||||
};
|
||||
}
|
||||
{
|
||||
goPackagePath = "github.com/olekukonko/tablewriter";
|
||||
fetch = {
|
||||
type = "git";
|
||||
url = "https://github.com/olekukonko/tablewriter";
|
||||
rev = "v0.0.1";
|
||||
sha256 = "0hh95glg7d2md185r03wn52j2r33jc4zil0qvcrs66ka7bdxi7vj";
|
||||
};
|
||||
}
|
||||
{
|
||||
goPackagePath = "github.com/opencontainers/go-digest";
|
||||
fetch = {
|
||||
type = "git";
|
||||
url = "https://github.com/opencontainers/go-digest";
|
||||
rev = "v1.0.0-rc1";
|
||||
sha256 = "01gc7fpn8ax429024p2fcx3yb18axwz5bjf2hqxlii1jbsgw4bh9";
|
||||
};
|
||||
}
|
||||
{
|
||||
goPackagePath = "github.com/pkg/errors";
|
||||
fetch = {
|
||||
type = "git";
|
||||
url = "https://github.com/pkg/errors";
|
||||
rev = "v0.8.1";
|
||||
sha256 = "0g5qcb4d4fd96midz0zdk8b9kz8xkzwfa8kr1cliqbg8sxsy5vd1";
|
||||
};
|
||||
}
|
||||
{
|
||||
goPackagePath = "github.com/pmezard/go-difflib";
|
||||
fetch = {
|
||||
type = "git";
|
||||
url = "https://github.com/pmezard/go-difflib";
|
||||
rev = "v1.0.0";
|
||||
sha256 = "0c1cn55m4rypmscgf0rrb88pn58j3ysvc2d0432dp3c6fqg6cnzw";
|
||||
};
|
||||
}
|
||||
{
|
||||
goPackagePath = "github.com/stretchr/objx";
|
||||
fetch = {
|
||||
type = "git";
|
||||
url = "https://github.com/stretchr/objx";
|
||||
rev = "v0.1.0";
|
||||
sha256 = "19ynspzjdynbi85xw06mh8ad5j0qa1vryvxjgvbnyrr8rbm4vd8w";
|
||||
};
|
||||
}
|
||||
{
|
||||
goPackagePath = "github.com/stretchr/testify";
|
||||
fetch = {
|
||||
type = "git";
|
||||
url = "https://github.com/stretchr/testify";
|
||||
rev = "v1.3.0";
|
||||
sha256 = "0wjchp2c8xbgcbbq32w3kvblk6q6yn533g78nxl6iskq6y95lxsy";
|
||||
};
|
||||
}
|
||||
{
|
||||
goPackagePath = "github.com/urfave/cli";
|
||||
fetch = {
|
||||
type = "git";
|
||||
url = "https://github.com/urfave/cli";
|
||||
rev = "v1.20.0";
|
||||
sha256 = "0y6f4sbzkiiwrxbl15biivj8c7qwxnvm3zl2dd3mw4wzg4x10ygj";
|
||||
};
|
||||
}
|
||||
{
|
||||
goPackagePath = "golang.org/x/crypto";
|
||||
fetch = {
|
||||
type = "git";
|
||||
url = "https://go.googlesource.com/crypto";
|
||||
rev = "c2843e01d9a2";
|
||||
sha256 = "01xgxbj5r79nmisdvpq48zfy8pzaaj90bn6ngd4nf33j9ar1dp8r";
|
||||
};
|
||||
}
|
||||
{
|
||||
goPackagePath = "golang.org/x/net";
|
||||
fetch = {
|
||||
type = "git";
|
||||
url = "https://go.googlesource.com/net";
|
||||
rev = "b630fd6fe46b";
|
||||
sha256 = "0m84kwckmmc0z05kjb4dd43g1g61al32a4z593flpcbaqx8di5sd";
|
||||
};
|
||||
}
|
||||
{
|
||||
goPackagePath = "golang.org/x/sys";
|
||||
fetch = {
|
||||
type = "git";
|
||||
url = "https://go.googlesource.com/sys";
|
||||
rev = "d0b11bdaac8a";
|
||||
sha256 = "18yfsmw622l7gc5sqriv5qmck6903vvhivpzp8i3xfy3z33dybdl";
|
||||
};
|
||||
}
|
||||
{
|
||||
goPackagePath = "golang.org/x/text";
|
||||
fetch = {
|
||||
type = "git";
|
||||
url = "https://go.googlesource.com/text";
|
||||
rev = "v0.3.0";
|
||||
sha256 = "0r6x6zjzhr8ksqlpiwm5gdd7s209kwk5p4lw54xjvz10cs3qlq19";
|
||||
};
|
||||
}
|
||||
]
|
|
@ -1,22 +1,22 @@
|
|||
{ lib, buildGoPackage, fetchFromGitHub, ... }:
|
||||
|
||||
let version = "0.9.1"; in
|
||||
let version = "0.12.0"; in
|
||||
|
||||
buildGoPackage {
|
||||
name = "kubecfg-${version}";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "ksonnet";
|
||||
owner = "bitnami";
|
||||
repo = "kubecfg";
|
||||
rev = "v${version}";
|
||||
sha256 = "010k33arxa4spaq923iazsisxgsaj8c7w4z250y9yrch8xxd74bi";
|
||||
sha256 = "118p1fy6cihswwz03vp62cz8395hgfqd82nmfkw88fx7av23rfhb";
|
||||
};
|
||||
|
||||
goPackagePath = "github.com/ksonnet/kubecfg";
|
||||
goPackagePath = "github.com/bitnami/kubecfg";
|
||||
|
||||
meta = {
|
||||
description = "A tool for managing Kubernetes resources as code";
|
||||
homepage = https://github.com/ksonnet/kubecfg;
|
||||
homepage = https://github.com/bitnami/kubecfg;
|
||||
license = lib.licenses.asl20;
|
||||
maintainers = with lib.maintainers; [ benley ];
|
||||
platforms = lib.platforms.unix;
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
buildGoPackage rec {
|
||||
name = "nomad-${version}";
|
||||
version = "0.8.7";
|
||||
version = "0.9.3";
|
||||
rev = "v${version}";
|
||||
|
||||
goPackagePath = "github.com/hashicorp/nomad";
|
||||
|
@ -12,9 +12,13 @@ buildGoPackage rec {
|
|||
owner = "hashicorp";
|
||||
repo = "nomad";
|
||||
inherit rev;
|
||||
sha256 = "0nkqiqkrccfmn7qkbhd48m9m56ix4xb0a3ar0z0pl4sbm25rlj0b";
|
||||
sha256 = "0hn9rr5v2y2pw0pmn27gz8dx5n964dsaf48sh0jhwc95b5q1rjwr";
|
||||
};
|
||||
|
||||
# We disable Nvidia GPU scheduling on Linux, as it doesn't work there:
|
||||
# Ref: https://github.com/hashicorp/nomad/issues/5535
|
||||
buildFlags = stdenv.lib.optionalString (stdenv.isLinux) "-tags nonvidia";
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
homepage = https://www.nomadproject.io/;
|
||||
description = "A Distributed, Highly Available, Datacenter-Aware Scheduler";
|
||||
|
|
|
@ -3,11 +3,11 @@
|
|||
, gsm, speex, portaudio, spandsp, libuuid, ccache, libvpx
|
||||
}:
|
||||
stdenv.mkDerivation rec {
|
||||
version = "0.6.2";
|
||||
version = "0.6.3";
|
||||
name = "baresip-${version}";
|
||||
src=fetchurl {
|
||||
url = "http://www.creytiv.com/pub/baresip-${version}.tar.gz";
|
||||
sha256 = "1qi8im5sc3jbpic1sn46mmd98y0pckpnngf4n8dqdp76m4gf3yp1";
|
||||
sha256 = "031hjm30v45h1sfknrf2f2ci10n712bdkcyf92y2hzllnik58068";
|
||||
};
|
||||
nativeBuildInputs = [ pkgconfig ];
|
||||
buildInputs = [zlib openssl libre librem cairo mpg123
|
||||
|
|
|
@ -27,10 +27,10 @@ in {
|
|||
pname = "discord-canary";
|
||||
binaryName = "DiscordCanary";
|
||||
desktopName = "Discord Canary";
|
||||
version = "0.0.84";
|
||||
version = "0.0.85";
|
||||
src = fetchurl {
|
||||
url = "https://dl-canary.discordapp.net/apps/linux/0.0.84/discord-canary-0.0.84.tar.gz";
|
||||
sha256 = "1s4m7qvwyb0zglgdcixfnp5asachkybfafbmr74c7zrb0scl80s1";
|
||||
url = "https://dl-canary.discordapp.net/apps/linux/0.0.85/discord-canary-0.0.85.tar.gz";
|
||||
sha256 = "0kr2mxpghqbj856l09fgw3cmlbdv9h2cd5gxwaymnnywif7czp4j";
|
||||
};
|
||||
};
|
||||
}.${branch}
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{ stdenv, fetchFromGitLab, meson, ninja, gettext, cargo, rustc, python3, rustPlatform, pkgconfig, gtksourceview
|
||||
, hicolor-icon-theme, glib, libhandy, gtk3, libsecret, dbus, openssl, sqlite, gst_all_1, wrapGAppsHook }:
|
||||
, hicolor-icon-theme, glib, libhandy, gtk3, libsecret, dbus, openssl, sqlite, gst_all_1, wrapGAppsHook, fetchpatch }:
|
||||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
version = "4.0.0";
|
||||
|
@ -21,6 +21,14 @@ rustPlatform.buildRustPackage rec {
|
|||
gtksourceview hicolor-icon-theme libsecret
|
||||
];
|
||||
|
||||
patches = [
|
||||
# Fixes build with >= gstreamer 1.15.1
|
||||
(fetchpatch {
|
||||
url = "https://gitlab.gnome.org/GNOME/fractal/commit/e78f36c25c095ea09c9c421187593706ad7c4065.patch";
|
||||
sha256 = "1qv7ayhkhgrrldag2lzs9ql17nbc1d72j375ljhhf6cms89r19ir";
|
||||
})
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
patchShebangs scripts/meson_post_install.py
|
||||
'';
|
||||
|
|
|
@ -1,20 +1,22 @@
|
|||
{ stdenv, buildGo110Package, fetchFromGitHub }:
|
||||
{ stdenv, buildGoModule, fetchFromGitHub }:
|
||||
|
||||
buildGo110Package rec {
|
||||
name = "gomuks-${version}";
|
||||
version = "2018-07-10";
|
||||
buildGoModule rec {
|
||||
pname = "gomuks";
|
||||
version = "2019-06-28";
|
||||
|
||||
goPackagePath = "maunium.net/go/gomuks";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "tulir";
|
||||
repo = "gomuks";
|
||||
rev = "68db26bcace31297471641fe95f8882e301f5699";
|
||||
sha256 = "0dagdvsvn8nwqsvjbqk1c6gg2q1m40869nayrkwm3ndg2xkfdpm6";
|
||||
repo = pname;
|
||||
rev = "37df8eb454088e61db7a14f382851205bc1806ad";
|
||||
sha256 = "1hr15d9sbq6mddaxv3pwz86qp1hhzssgrvakfpc49xl4h04dq33g";
|
||||
};
|
||||
|
||||
modSha256 = "1qrqgzzsxqvmy4m9shypa94bzw34mc941jhmyccip9grk9fzsxws";
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
homepage = https://maunium.net/go/gomuks/;
|
||||
homepage = "https://maunium.net/go/gomuks/";
|
||||
description = "A terminal based Matrix client written in Go";
|
||||
license = licenses.gpl3;
|
||||
maintainers = with maintainers; [ tilpner ];
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
"name": "riot-web",
|
||||
"productName": "Riot",
|
||||
"main": "src/electron-main.js",
|
||||
"version": "1.2.1",
|
||||
"version": "1.2.2",
|
||||
"description": "A feature-rich client for Matrix.org",
|
||||
"author": "New Vector Ltd.",
|
||||
"dependencies": {
|
||||
|
|
|
@ -7,12 +7,12 @@ with (import ./yarn2nix.nix { inherit pkgs; });
|
|||
|
||||
let
|
||||
executableName = "riot-desktop";
|
||||
version = "1.2.1";
|
||||
version = "1.2.2";
|
||||
riot-web-src = fetchFromGitHub {
|
||||
owner = "vector-im";
|
||||
repo = "riot-web";
|
||||
rev = "v${version}";
|
||||
sha256 = "0l50swqzdzbzbnrlkvwi133d54jgj15cj3awmlc1qdhnfdc3wxbb";
|
||||
sha256 = "0ak1icl3apqn1b210jqj9ysnn40808lzrdwibdmv47c30hhq10fb";
|
||||
};
|
||||
|
||||
in mkYarnPackage rec {
|
||||
|
|
|
@ -6,11 +6,11 @@
|
|||
let configFile = writeText "riot-config.json" conf; in
|
||||
stdenv.mkDerivation rec {
|
||||
name= "riot-web-${version}";
|
||||
version = "1.2.1";
|
||||
version = "1.2.2";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://github.com/vector-im/riot-web/releases/download/v${version}/riot-v${version}.tar.gz";
|
||||
sha256 = "1h96c4yy06ag5lmsbm5h2ws1l7sp4qm5dcchw25k3937fdhwq840";
|
||||
sha256 = "19nb6gyjaijah068ika6hvk18hraivm71830i9cd4ssl6g5j4k8x";
|
||||
};
|
||||
|
||||
installPhase = ''
|
||||
|
|
|
@ -57,11 +57,11 @@ let
|
|||
|
||||
in stdenv.mkDerivation rec {
|
||||
name = "signal-desktop-${version}";
|
||||
version = "1.25.1";
|
||||
version = "1.25.3";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://updates.signal.org/desktop/apt/pool/main/s/signal-desktop/signal-desktop_${version}_amd64.deb";
|
||||
sha256 = "1185psv93amqj0s7rgm8bhl3y4jcxc1945paslvjbmw01vi3p1lp";
|
||||
sha256 = "0f7pip4d97xixwf667xpi50r0r65givvmry862zhp2cq24bs0693";
|
||||
};
|
||||
|
||||
phases = [ "unpackPhase" "installPhase" ];
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
{ stdenv, fetchurl, pkgconfig, ncurses, glib, openssl, perl, libintl }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
version = "1.2.0";
|
||||
version = "1.2.1";
|
||||
name = "irssi-${version}";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://github.com/irssi/irssi/releases/download/${version}/${name}.tar.gz";
|
||||
sha256 = "1sp3fc5fkdx0mmllvag94xaifnqbj1k09nl235pix26vv1gzq39m";
|
||||
sha256 = "01lay6bxgsk2vzkiknw12zr8gvgnvk9xwg992496knsgakr0x2zx";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ pkgconfig ];
|
||||
|
|
|
@ -42,5 +42,9 @@ stdenv.mkDerivation {
|
|||
maintainers = with maintainers; [ ma27 ];
|
||||
license = licenses.mit; # see https://github.com/torhve/weechat-matrix-protocol-script/blob/0052e7275ae149dc5241226391c9b1889ecc3c6b/matrix.lua#L53
|
||||
platforms = platforms.unix;
|
||||
|
||||
# As of 2019-06-30, all of the dependencies are available on macOS but the
|
||||
# package itself does not build.
|
||||
broken = stdenv.isDarwin;
|
||||
};
|
||||
}
|
||||
|
|
|
@ -1,14 +1,15 @@
|
|||
{ stdenv, fetchsvn, pkgconfig, makeDesktopItem, unzip, fpc, lazarus,
|
||||
{ stdenv, fetchFromGitHub, pkgconfig, makeDesktopItem, unzip, fpc, lazarus,
|
||||
libX11, glib, gtk2, gdk_pixbuf, pango, atk, cairo, openssl }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "transgui-5.0.1-svn-r${revision}";
|
||||
revision = "988";
|
||||
pname = "transgui";
|
||||
version = "5.17.0";
|
||||
|
||||
src = fetchsvn {
|
||||
url = "https://svn.code.sf.net/p/transgui/code/trunk/";
|
||||
rev = revision;
|
||||
sha256 = "1i6ysxs6d2wsmqi6ha10rl3n562brmhizlanhcfad04i53y8pyxf";
|
||||
src = fetchFromGitHub {
|
||||
owner = "transmission-remote-gui";
|
||||
repo = "transgui";
|
||||
rev = "v${version}";
|
||||
sha256 = "0p76vavny5asi5naa4jn67raxlarsmrkbchfn96y6gh5p2vzwpl7";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ pkgconfig ];
|
||||
|
@ -27,9 +28,9 @@ stdenv.mkDerivation rec {
|
|||
substituteInPlace restranslator.pas --replace /usr/ $out/
|
||||
'';
|
||||
|
||||
patches = [
|
||||
./r988-compile-fix.patch
|
||||
];
|
||||
preBuild = ''
|
||||
lazbuild -B transgui.lpr --lazarusdir=${lazarus}/share/lazarus
|
||||
'';
|
||||
|
||||
makeFlags = [
|
||||
"FPC=fpc"
|
||||
|
|
|
@ -1,22 +0,0 @@
|
|||
diff --git a/utils.pas b/utils.pas
|
||||
index eb8b828..1ff2440 100644
|
||||
--- a/utils.pas
|
||||
+++ b/utils.pas
|
||||
@@ -100,7 +100,7 @@ uses
|
||||
{$ifdef CALLSTACK}
|
||||
lineinfo2,
|
||||
{$endif CALLSTACK}
|
||||
- LazFileUtils, LazUtf8, StdCtrls, Graphics;
|
||||
+ LazFileUtils, LazUtf8, StdCtrls, Graphics, FileUtil;
|
||||
|
||||
{$ifdef windows}
|
||||
function FileOpenUTF8(Const FileName : string; Mode : Integer) : THandle;
|
||||
@@ -235,7 +235,7 @@ end;
|
||||
|
||||
function ParamStrUTF8(Param: Integer): utf8string;
|
||||
begin
|
||||
- Result:=FileUtil.ParamStrUTF8(Param);
|
||||
+ Result:=LazUtf8.ParamStrUTF8(Param);
|
||||
end;
|
||||
|
||||
function ParamCount: integer;
|
|
@ -13,11 +13,11 @@ with stdenv.lib;
|
|||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "znc-${version}";
|
||||
version = "1.7.3";
|
||||
version = "1.7.4";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://znc.in/releases/archive/${name}.tar.gz";
|
||||
sha256 = "0g8i5hsl4kinpz1wp0a2zniidv3w2sd6awq8676fds516wcc6k0y";
|
||||
sha256 = "0wcvqkpin8w4i72alnn0nxnrc9ih543qs34hqpk9xmz6m0hjk8xi";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ pkgconfig ];
|
||||
|
|
|
@ -25,11 +25,11 @@ in
|
|||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "gnucash-${version}";
|
||||
version = "3.5";
|
||||
version = "3.6";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://sourceforge/gnucash/${name}.tar.bz2";
|
||||
sha256 = "0ibp7g6aknvnkwkin97kv04ipksy3l18dsz9qysjb7h2nr8hnvbp";
|
||||
sha256 = "09azp17ghn7i8kwk0ci3gq0qkn5pvbknhf1cbk7v43mvc3g8djzi";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ pkgconfig makeWrapper cmake gtest ];
|
||||
|
|
|
@ -0,0 +1,57 @@
|
|||
{ stdenv
|
||||
, fetchFromGitHub
|
||||
, glib
|
||||
, gtk3
|
||||
, hicolor-icon-theme
|
||||
, json-glib
|
||||
, libgee
|
||||
, meson
|
||||
, ninja
|
||||
, pkgconfig
|
||||
, pantheon
|
||||
, python3
|
||||
, wrapGAppsHook
|
||||
}:
|
||||
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "timetable";
|
||||
version = "1.0.6";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "lainsce";
|
||||
repo = pname;
|
||||
rev = version;
|
||||
sha256 = "080xgp917v6j40qxy0y1iycz01yylbcr8pahx6zd6mpi022ccfv0";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
meson
|
||||
ninja
|
||||
pkgconfig
|
||||
pantheon.vala
|
||||
python3
|
||||
wrapGAppsHook
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
glib
|
||||
gtk3
|
||||
hicolor-icon-theme
|
||||
json-glib
|
||||
libgee
|
||||
pantheon.granite
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
chmod +x meson/post_install.py
|
||||
patchShebangs meson/post_install.py
|
||||
'';
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
description = "Plot out your own timetable for the week and organize it";
|
||||
homepage = "https://github.com/lainsce/timetable";
|
||||
maintainers = [ maintainers.kjuvi ] ++ pantheon.maintainers;
|
||||
license = licenses.gpl2Plus;
|
||||
};
|
||||
}
|
|
@ -3,27 +3,19 @@
|
|||
with pythonPackages;
|
||||
|
||||
buildPythonApplication rec {
|
||||
pname = "td-watson";
|
||||
version = "1.5.2";
|
||||
pname = "watson";
|
||||
version = "1.7.0";
|
||||
|
||||
src = fetchPypi {
|
||||
inherit version pname;
|
||||
sha256 = "6e03d44a9278807fe5245e9ed0943f13ffb88e11249a02655c84cb86260b27c8";
|
||||
inherit version;
|
||||
pname = "td-watson";
|
||||
sha256 = "249313996751f32f38817d424cbf8d74956461df1439f0ee3a962fcc3c77225d";
|
||||
};
|
||||
|
||||
# uses tox, test invocation fails
|
||||
doCheck = true;
|
||||
checkPhase = ''
|
||||
py.test -vs tests
|
||||
pytest -vs tests
|
||||
'';
|
||||
|
||||
patches = [
|
||||
(fetchpatch {
|
||||
url = https://github.com/TailorDev/Watson/commit/f5760c71cbc22de4e12ede8f6f7257515a9064d3.patch;
|
||||
sha256 = "0s9h26915ilpbd0qhmvk77r3gmrsdrl5l7dqxj0l5q66fp0z6b0g";
|
||||
})
|
||||
];
|
||||
|
||||
checkInputs = [ py pytest pytest-datafiles mock pytest-mock pytestrunner ];
|
||||
propagatedBuildInputs = [ requests click arrow ];
|
||||
|
||||
|
@ -31,6 +23,6 @@ buildPythonApplication rec {
|
|||
homepage = https://tailordev.github.io/Watson/;
|
||||
description = "A wonderful CLI to track your time!";
|
||||
license = licenses.mit;
|
||||
maintainers = with maintainers; [ mguentner ] ;
|
||||
maintainers = with maintainers; [ mguentner nathyong ] ;
|
||||
};
|
||||
}
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
} :
|
||||
|
||||
let
|
||||
version = "0.3.5";
|
||||
version = "0.3.6";
|
||||
|
||||
in stdenv.mkDerivation {
|
||||
name = "soapyuhd-${version}";
|
||||
|
@ -12,7 +12,7 @@ in stdenv.mkDerivation {
|
|||
owner = "pothosware";
|
||||
repo = "SoapyUHD";
|
||||
rev = "soapy-uhd-${version}";
|
||||
sha256 = "07cr4zk42d0l5g03wm7dzl5lmqr104hmzp1fdjqa1z7xq4v9c9b1";
|
||||
sha256 = "11kp5iv21k8lqwjjydzqmcxdgpm6yicw6d3jhzvcvwcavd41crs7";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ cmake pkgconfig ];
|
||||
|
|
|
@ -3,13 +3,13 @@
|
|||
|
||||
python3Packages.buildPythonApplication rec {
|
||||
pname = "urh";
|
||||
version = "2.7.0";
|
||||
version = "2.7.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "jopohl";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "0yxv38p8a2srk9c55jj96vcib6m6pb6m485ysfg2ilwjzipx2ab0";
|
||||
sha256 = "14027dcq0ag2qjpxcmsb9n1c64ypmi4rycwxzm2hajj7hk2736hv";
|
||||
};
|
||||
|
||||
buildInputs = [ hackrf rtl-sdr airspy limesuite ];
|
||||
|
|
|
@ -6,13 +6,13 @@
|
|||
|
||||
mkDerivation rec {
|
||||
name = "stellarium-${version}";
|
||||
version = "0.19.0";
|
||||
version = "0.19.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "Stellarium";
|
||||
repo = "stellarium";
|
||||
rev = "v${version}";
|
||||
sha256 = "1x9s9v9ann93nyqd8n8adwhx66xgq5vp0liyzl1h1ji6qk8jla3c";
|
||||
sha256 = "0hf1wv2bb5j7ny2xh29mj9m4hjblhn02zylay8gl85w7xlqs7s5r";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ cmake perl ];
|
||||
|
|
|
@ -4,26 +4,26 @@ let
|
|||
hts-nim = fetchFromGitHub {
|
||||
owner = "brentp";
|
||||
repo = "hts-nim";
|
||||
rev = "v0.2.5";
|
||||
sha256 = "1fma99rjqxgg9dihkd10hm1jjp5amsk5wsxnvq1lk4mcsjix5xqb";
|
||||
rev = "v0.2.14";
|
||||
sha256 = "0d1z4b6mrppmz3hgkxd4wcy79w68icvhi7q7n3m2k17n8f3xbdx3";
|
||||
};
|
||||
|
||||
docopt = fetchFromGitHub {
|
||||
owner = "docopt";
|
||||
repo = "docopt.nim";
|
||||
rev = "v0.6.5";
|
||||
sha256 = "0yx79m4jkdcazwlky55nwf39zj5kdhymrrdrjq29mahiwx83x5zr";
|
||||
rev = "v0.6.7";
|
||||
sha256 = "1ga7ckg21fzwwvh26jp2phn2h3pvkn8g8sm13dxif33rp471bv37";
|
||||
};
|
||||
|
||||
in stdenv.mkDerivation rec {
|
||||
name = "mosdepth-${version}";
|
||||
version = "0.2.3";
|
||||
version = "0.2.6";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "brentp";
|
||||
repo = "mosdepth";
|
||||
rev = "v${version}";
|
||||
sha256 = "1b9frrwhcvay3alhn0d02jccc2qlbij1732hzq9nhwnr4kvsvxx7";
|
||||
sha256 = "0i9pl9lsli3y84ygxanrr525gfg8fs9h481944cbzsmqmbldwvgk";
|
||||
};
|
||||
|
||||
buildInputs = [ nim ];
|
||||
|
|
|
@ -0,0 +1,30 @@
|
|||
{stdenv, fetchFromGitHub, cmake, boost, gmp, htslib, zlib, lzma, pkg-config}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "octopus";
|
||||
version = "0.6.3-beta";
|
||||
name = "${pname}-${version}";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "luntergroup";
|
||||
repo = "octopus";
|
||||
rev = "v${version}";
|
||||
sha256 = "042fycg8ppld7iajpzq2d8h8wr0nw43zbl57y125sfihryvr373n";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ cmake pkg-config ];
|
||||
buildInputs = [ boost gmp htslib zlib lzma ];
|
||||
|
||||
postInstall = ''
|
||||
mkdir $out/bin
|
||||
mv $out/octopus $out/bin
|
||||
'';
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
description = "Bayesian haplotype-based mutation calling";
|
||||
license = licenses.mit;
|
||||
homepage = "https://github.com/luntergroup/octopus";
|
||||
maintainers = with maintainers; [ jbedo ];
|
||||
platforms = platforms.x86_64;
|
||||
};
|
||||
}
|
|
@ -2,11 +2,11 @@
|
|||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "verilator-${version}";
|
||||
version = "4.014";
|
||||
version = "4.016";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://www.veripool.org/ftp/${name}.tgz";
|
||||
sha256 = "1srk9a03hbq8rdp4mma817aiq61c2hbrs66qv25zj3dfnfqigxgd";
|
||||
sha256 = "18fqm6pgscy504ql27i150fdsd2j91hw5qsnpymws3pvqj2qz2ij";
|
||||
};
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
|
|
@ -61,11 +61,11 @@ in
|
|||
stdenv.mkDerivation rec {
|
||||
pname = "gap";
|
||||
# https://www.gap-system.org/Releases/
|
||||
version = "4.10.1";
|
||||
version = "4.10.2";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://www.gap-system.org/pub/gap/gap-${lib.versions.major version}.${lib.versions.minor version}/tar.bz2/gap-${version}.tar.bz2";
|
||||
sha256 = "136s0zvhcw41fshj5zgsrjcy2kd58cdh2m3ddp5rdizi4rx54f10";
|
||||
sha256 = "0cp6ddk0469zzv1m1vair6gm27ic6c5m77ri8rn0znq3gaps6x94";
|
||||
};
|
||||
|
||||
# remove all non-essential packages (which take up a lot of space)
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue