Merge master into haskell-updates
This commit is contained in:
commit
0f057a8d26
@ -7223,6 +7223,12 @@
|
||||
githubId = 1267527;
|
||||
name = "Daniel Firth";
|
||||
};
|
||||
lodi = {
|
||||
email = "anthony.lodi@gmail.com";
|
||||
github = "lodi";
|
||||
githubId = 918448;
|
||||
name = "Anthony Lodi";
|
||||
};
|
||||
lopsided98 = {
|
||||
email = "benwolsieffer@gmail.com";
|
||||
github = "lopsided98";
|
||||
|
@ -35,7 +35,17 @@
|
||||
This means, <literal>ip[6]tables</literal>,
|
||||
<literal>arptables</literal> and <literal>ebtables</literal>
|
||||
commands will actually show rules from some specific tables in
|
||||
the <literal>nf_tables</literal> kernel subsystem.
|
||||
the <literal>nf_tables</literal> kernel subsystem. In case
|
||||
you’re migrating from an older release without rebooting,
|
||||
there might be cases where you end up with iptable rules
|
||||
configured both in the legacy <literal>iptables</literal>
|
||||
kernel backend, as well as in the <literal>nf_tables</literal>
|
||||
backend. This can lead to confusing firewall behaviour. An
|
||||
<literal>iptables-save</literal> after switching will complain
|
||||
about <quote>iptables-legacy tables present</quote>. It’s
|
||||
probably best to reboot after the upgrade, or manually
|
||||
removing all legacy iptables rules (via the
|
||||
<literal>iptables-legacy</literal> package).
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
|
@ -826,6 +826,58 @@
|
||||
include serif fonts.
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
<literal>pkgs.epgstation</literal> has been upgraded from v1
|
||||
to v2, resulting in incompatible changes in the database
|
||||
scheme and configuration format.
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
Some top-level settings under
|
||||
<link linkend="opt-services.epgstation.enable">services.epgstation</link>
|
||||
is now deprecated because it was redudant due to the same
|
||||
options being present in
|
||||
<link linkend="opt-services.epgstation.settings">services.epgstation.settings</link>.
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
The option <literal>services.epgstation.basicAuth</literal>
|
||||
was removed because basic authentication support was dropped
|
||||
by upstream.
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
The option
|
||||
<link linkend="opt-services.epgstation.database.passwordFile">services.epgstation.database.passwordFile</link>
|
||||
no longer has a default value. Make sure to set this option
|
||||
explicitly before upgrading. Change the database password if
|
||||
necessary.
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
The
|
||||
<link linkend="opt-services.epgstation.settings">services.epgstation.settings</link>
|
||||
option now expects options for <literal>config.yml</literal>
|
||||
in EPGStation v2.
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
Existing data for the
|
||||
<link linkend="opt-services.epgstation.enable">services.epgstation</link>
|
||||
module would have to be backed up prior to the upgrade. To
|
||||
back up exising data to
|
||||
<literal>/tmp/epgstation.bak</literal>, run
|
||||
<literal>sudo -u epgstation epgstation run backup /tmp/epgstation.bak</literal>.
|
||||
To import that data after to the upgrade, run
|
||||
<literal>sudo -u epgstation epgstation run v1migrate /tmp/epgstation.bak</literal>
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
<literal>switch-to-configuration</literal> (the script that is
|
||||
|
@ -13,6 +13,13 @@ In addition to numerous new and upgraded packages, this release has the followin
|
||||
[Fedora](https://fedoraproject.org/wiki/Changes/iptables-nft-default).
|
||||
This means, `ip[6]tables`, `arptables` and `ebtables` commands will actually
|
||||
show rules from some specific tables in the `nf_tables` kernel subsystem.
|
||||
In case you're migrating from an older release without rebooting, there might
|
||||
be cases where you end up with iptable rules configured both in the legacy
|
||||
`iptables` kernel backend, as well as in the `nf_tables` backend.
|
||||
This can lead to confusing firewall behaviour. An `iptables-save` after
|
||||
switching will complain about "iptables-legacy tables present".
|
||||
It's probably best to reboot after the upgrade, or manually removing all
|
||||
legacy iptables rules (via the `iptables-legacy` package).
|
||||
|
||||
- systemd got an `nftables` backend, and configures (networkd) rules in their
|
||||
own `io.systemd.*` tables. Check `nft list ruleset` to see these rules, not
|
||||
|
@ -321,6 +321,30 @@ In addition to numerous new and upgraded packages, this release has the followin
|
||||
`pkgs.noto-fonts-cjk` is currently an alias of `pkgs.noto-fonts-cjk-sans` and
|
||||
doesn't include serif fonts.
|
||||
|
||||
- `pkgs.epgstation` has been upgraded from v1 to v2, resulting in incompatible
|
||||
changes in the database scheme and configuration format.
|
||||
|
||||
- Some top-level settings under [services.epgstation](#opt-services.epgstation.enable)
|
||||
is now deprecated because it was redudant due to the same options being
|
||||
present in [services.epgstation.settings](#opt-services.epgstation.settings).
|
||||
|
||||
- The option `services.epgstation.basicAuth` was removed because basic
|
||||
authentication support was dropped by upstream.
|
||||
|
||||
- The option [services.epgstation.database.passwordFile](#opt-services.epgstation.database.passwordFile)
|
||||
no longer has a default value. Make sure to set this option explicitly before
|
||||
upgrading. Change the database password if necessary.
|
||||
|
||||
- The [services.epgstation.settings](#opt-services.epgstation.settings)
|
||||
option now expects options for `config.yml` in EPGStation v2.
|
||||
|
||||
- Existing data for the [services.epgstation](#opt-services.epgstation.enable)
|
||||
module would have to be backed up prior to the upgrade. To back up exising
|
||||
data to `/tmp/epgstation.bak`, run
|
||||
`sudo -u epgstation epgstation run backup /tmp/epgstation.bak`.
|
||||
To import that data after to the upgrade, run
|
||||
`sudo -u epgstation epgstation run v1migrate /tmp/epgstation.bak`
|
||||
|
||||
- `switch-to-configuration` (the script that is run when running `nixos-rebuild switch` for example) has been reworked
|
||||
* The interface that allows activation scripts to restart units has been streamlined. Restarting and reloading is now done by a single file `/run/nixos/activation-restart-list` that honors `restartIfChanged` and `reloadIfChanged` of the units.
|
||||
* Preferring to reload instead of restarting can still be achieved using `/run/nixos/activation-reload-list`.
|
||||
|
@ -76,7 +76,7 @@ in
|
||||
|
||||
script = ''
|
||||
${pkgs.su}/bin/su -s ${pkgs.runtimeShell} ${user} \
|
||||
-c 'HOME="${cfg.dataDir}" ${pkgs.amuleDaemon}/bin/amuled'
|
||||
-c 'HOME="${cfg.dataDir}" ${pkgs.amule-daemon}/bin/amuled'
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
@ -1,30 +1,40 @@
|
||||
{ config, lib, options, pkgs, ... }:
|
||||
|
||||
with lib;
|
||||
|
||||
let
|
||||
cfg = config.services.epgstation;
|
||||
opt = options.services.epgstation;
|
||||
|
||||
description = "EPGStation: DVR system for Mirakurun-managed TV tuners";
|
||||
|
||||
username = config.users.users.epgstation.name;
|
||||
groupname = config.users.users.epgstation.group;
|
||||
mirakurun = {
|
||||
sock = config.services.mirakurun.unixSocket;
|
||||
option = options.services.mirakurun.unixSocket;
|
||||
};
|
||||
|
||||
settingsFmt = pkgs.formats.json {};
|
||||
settingsTemplate = settingsFmt.generate "config.json" cfg.settings;
|
||||
yaml = pkgs.formats.yaml { };
|
||||
settingsTemplate = yaml.generate "config.yml" cfg.settings;
|
||||
preStartScript = pkgs.writeScript "epgstation-prestart" ''
|
||||
#!${pkgs.runtimeShell}
|
||||
|
||||
PASSWORD="$(head -n1 "${cfg.basicAuth.passwordFile}")"
|
||||
DB_PASSWORD="$(head -n1 "${cfg.database.passwordFile}")"
|
||||
DB_PASSWORD_FILE=${lib.escapeShellArg cfg.database.passwordFile}
|
||||
|
||||
if [[ ! -f "$DB_PASSWORD_FILE" ]]; then
|
||||
printf "[FATAL] File containing the DB password was not found in '%s'. Double check the NixOS option '%s'." \
|
||||
"$DB_PASSWORD_FILE" ${lib.escapeShellArg opt.database.passwordFile} >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
DB_PASSWORD="$(head -n1 ${lib.escapeShellArg cfg.database.passwordFile})"
|
||||
|
||||
# setup configuration
|
||||
touch /etc/epgstation/config.json
|
||||
chmod 640 /etc/epgstation/config.json
|
||||
touch /etc/epgstation/config.yml
|
||||
chmod 640 /etc/epgstation/config.yml
|
||||
sed \
|
||||
-e "s,@password@,$PASSWORD,g" \
|
||||
-e "s,@dbPassword@,$DB_PASSWORD,g" \
|
||||
${settingsTemplate} > /etc/epgstation/config.json
|
||||
chown "${username}:${groupname}" /etc/epgstation/config.json
|
||||
${settingsTemplate} > /etc/epgstation/config.yml
|
||||
chown "${username}:${groupname}" /etc/epgstation/config.yml
|
||||
|
||||
# NOTE: Use password authentication, since mysqljs does not yet support auth_socket
|
||||
if [ ! -e /var/lib/epgstation/db-created ]; then
|
||||
@ -35,7 +45,7 @@ let
|
||||
'';
|
||||
|
||||
streamingConfig = lib.importJSON ./streaming.json;
|
||||
logConfig = {
|
||||
logConfig = yaml.generate "logConfig.yml" {
|
||||
appenders.stdout.type = "stdout";
|
||||
categories = {
|
||||
default = { appenders = [ "stdout" ]; level = "info"; };
|
||||
@ -45,53 +55,51 @@ let
|
||||
};
|
||||
};
|
||||
|
||||
defaultPassword = "INSECURE_GO_CHECK_CONFIGURATION_NIX\n";
|
||||
# Deprecate top level options that are redundant.
|
||||
deprecateTopLevelOption = config:
|
||||
lib.mkRenamedOptionModule
|
||||
([ "services" "epgstation" ] ++ config)
|
||||
([ "services" "epgstation" "settings" ] ++ config);
|
||||
|
||||
removeOption = config: instruction:
|
||||
lib.mkRemovedOptionModule
|
||||
([ "services" "epgstation" ] ++ config)
|
||||
instruction;
|
||||
in
|
||||
{
|
||||
options.services.epgstation = {
|
||||
enable = mkEnableOption "EPGStation: DTV Software in Japan";
|
||||
meta.maintainers = with lib.maintainers; [ midchildan ];
|
||||
|
||||
usePreconfiguredStreaming = mkOption {
|
||||
type = types.bool;
|
||||
imports = [
|
||||
(deprecateTopLevelOption [ "port" ])
|
||||
(deprecateTopLevelOption [ "socketioPort" ])
|
||||
(deprecateTopLevelOption [ "clientSocketioPort" ])
|
||||
(removeOption [ "basicAuth" ]
|
||||
"Use a TLS-terminated reverse proxy with authentication instead.")
|
||||
];
|
||||
|
||||
options.services.epgstation = {
|
||||
enable = lib.mkEnableOption description;
|
||||
|
||||
package = lib.mkOption {
|
||||
default = pkgs.epgstation;
|
||||
type = lib.types.package;
|
||||
defaultText = lib.literalExpression "pkgs.epgstation";
|
||||
description = "epgstation package to use";
|
||||
};
|
||||
|
||||
usePreconfiguredStreaming = lib.mkOption {
|
||||
type = lib.types.bool;
|
||||
default = true;
|
||||
description = ''
|
||||
Use preconfigured default streaming options.
|
||||
|
||||
Upstream defaults:
|
||||
<link xlink:href="https://github.com/l3tnun/EPGStation/blob/master/config/config.sample.json"/>
|
||||
<link xlink:href="https://github.com/l3tnun/EPGStation/blob/master/config/config.yml.template"/>
|
||||
'';
|
||||
};
|
||||
|
||||
port = mkOption {
|
||||
type = types.port;
|
||||
default = 20772;
|
||||
description = ''
|
||||
HTTP port for EPGStation to listen on.
|
||||
'';
|
||||
};
|
||||
|
||||
socketioPort = mkOption {
|
||||
type = types.port;
|
||||
default = cfg.port + 1;
|
||||
defaultText = literalExpression "config.${opt.port} + 1";
|
||||
description = ''
|
||||
Socket.io port for EPGStation to listen on.
|
||||
'';
|
||||
};
|
||||
|
||||
clientSocketioPort = mkOption {
|
||||
type = types.port;
|
||||
default = cfg.socketioPort;
|
||||
defaultText = literalExpression "config.${opt.socketioPort}";
|
||||
description = ''
|
||||
Socket.io port that the web client is going to connect to. This may be
|
||||
different from <option>socketioPort</option> if EPGStation is hidden
|
||||
behind a reverse proxy.
|
||||
'';
|
||||
};
|
||||
|
||||
openFirewall = mkOption {
|
||||
type = types.bool;
|
||||
openFirewall = lib.mkOption {
|
||||
type = lib.types.bool;
|
||||
default = false;
|
||||
description = ''
|
||||
Open ports in the firewall for the EPGStation web interface.
|
||||
@ -106,50 +114,17 @@ in
|
||||
'';
|
||||
};
|
||||
|
||||
basicAuth = {
|
||||
user = mkOption {
|
||||
type = with types; nullOr str;
|
||||
default = null;
|
||||
example = "epgstation";
|
||||
description = ''
|
||||
Basic auth username for EPGStation. If <literal>null</literal>, basic
|
||||
auth will be disabled.
|
||||
|
||||
<warning>
|
||||
<para>
|
||||
Basic authentication has known weaknesses, the most critical being
|
||||
that it sends passwords over the network in clear text. Use this
|
||||
feature to control access to EPGStation within your family and
|
||||
friends, but don't rely on it for security.
|
||||
</para>
|
||||
</warning>
|
||||
'';
|
||||
};
|
||||
|
||||
passwordFile = mkOption {
|
||||
type = types.path;
|
||||
default = pkgs.writeText "epgstation-password" defaultPassword;
|
||||
defaultText = literalDocBook ''a file containing <literal>${defaultPassword}</literal>'';
|
||||
example = "/run/keys/epgstation-password";
|
||||
description = ''
|
||||
A file containing the password for <option>basicAuth.user</option>.
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
||||
database = {
|
||||
name = mkOption {
|
||||
type = types.str;
|
||||
database = {
|
||||
name = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
default = "epgstation";
|
||||
description = ''
|
||||
Name of the MySQL database that holds EPGStation's data.
|
||||
'';
|
||||
};
|
||||
|
||||
passwordFile = mkOption {
|
||||
type = types.path;
|
||||
default = pkgs.writeText "epgstation-db-password" defaultPassword;
|
||||
defaultText = literalDocBook ''a file containing <literal>${defaultPassword}</literal>'';
|
||||
passwordFile = lib.mkOption {
|
||||
type = lib.types.path;
|
||||
example = "/run/keys/epgstation-db-password";
|
||||
description = ''
|
||||
A file containing the password for the database named
|
||||
@ -158,69 +133,106 @@ in
|
||||
};
|
||||
};
|
||||
|
||||
settings = mkOption {
|
||||
# The defaults for some options come from the upstream template
|
||||
# configuration, which is the one that users would get if they follow the
|
||||
# upstream instructions. This is, in some cases, different from the
|
||||
# application defaults. Some options like encodeProcessNum and
|
||||
# concurrentEncodeNum doesn't have an optimal default value that works for
|
||||
# all hardware setups and/or performance requirements. For those kind of
|
||||
# options, the application default wouldn't always result in the expected
|
||||
# out-of-the-box behavior because it's the responsibility of the user to
|
||||
# configure them according to their needs. In these cases, the value in the
|
||||
# upstream template configuration should serve as a "good enough" default.
|
||||
settings = lib.mkOption {
|
||||
description = ''
|
||||
Options to add to config.json.
|
||||
Options to add to config.yml.
|
||||
|
||||
Documentation:
|
||||
<link xlink:href="https://github.com/l3tnun/EPGStation/blob/master/doc/conf-manual.md"/>
|
||||
'';
|
||||
|
||||
default = {};
|
||||
default = { };
|
||||
example = {
|
||||
recPriority = 20;
|
||||
conflictPriority = 10;
|
||||
};
|
||||
|
||||
type = types.submodule {
|
||||
freeformType = settingsFmt.type;
|
||||
type = lib.types.submodule {
|
||||
freeformType = yaml.type;
|
||||
|
||||
options.readOnlyOnce = mkOption {
|
||||
type = types.bool;
|
||||
default = false;
|
||||
description = "Don't reload configuration files at runtime.";
|
||||
options.port = lib.mkOption {
|
||||
type = lib.types.port;
|
||||
default = 20772;
|
||||
description = ''
|
||||
HTTP port for EPGStation to listen on.
|
||||
'';
|
||||
};
|
||||
|
||||
options.mirakurunPath = mkOption (let
|
||||
sockPath = config.services.mirakurun.unixSocket;
|
||||
in {
|
||||
type = types.str;
|
||||
default = "http+unix://${replaceStrings ["/"] ["%2F"] sockPath}";
|
||||
defaultText = literalExpression ''
|
||||
"http+unix://''${replaceStrings ["/"] ["%2F"] config.${options.services.mirakurun.unixSocket}}"
|
||||
options.socketioPort = lib.mkOption {
|
||||
type = lib.types.port;
|
||||
default = cfg.settings.port + 1;
|
||||
defaultText = lib.literalExpression "config.${opt.settings}.port + 1";
|
||||
description = ''
|
||||
Socket.io port for EPGStation to listen on. It is valid to share
|
||||
ports with <option>${opt.settings}.port</option>.
|
||||
'';
|
||||
};
|
||||
|
||||
options.clientSocketioPort = lib.mkOption {
|
||||
type = lib.types.port;
|
||||
default = cfg.settings.socketioPort;
|
||||
defaultText = lib.literalExpression "config.${opt.settings}.socketioPort";
|
||||
description = ''
|
||||
Socket.io port that the web client is going to connect to. This may
|
||||
be different from <option>${opt.settings}.socketioPort</option> if
|
||||
EPGStation is hidden behind a reverse proxy.
|
||||
'';
|
||||
};
|
||||
|
||||
options.mirakurunPath = with mirakurun; lib.mkOption {
|
||||
type = lib.types.str;
|
||||
default = "http+unix://${lib.replaceStrings ["/"] ["%2F"] sock}";
|
||||
defaultText = lib.literalExpression ''
|
||||
"http+unix://''${lib.replaceStrings ["/"] ["%2F"] config.${option}}"
|
||||
'';
|
||||
example = "http://localhost:40772";
|
||||
description = "URL to connect to Mirakurun.";
|
||||
});
|
||||
};
|
||||
|
||||
options.encode = mkOption {
|
||||
type = with types; listOf attrs;
|
||||
options.encodeProcessNum = lib.mkOption {
|
||||
type = lib.types.ints.positive;
|
||||
default = 4;
|
||||
description = ''
|
||||
The maximum number of processes that EPGStation would allow to run
|
||||
at the same time for encoding or streaming videos.
|
||||
'';
|
||||
};
|
||||
|
||||
options.concurrentEncodeNum = lib.mkOption {
|
||||
type = lib.types.ints.positive;
|
||||
default = 1;
|
||||
description = ''
|
||||
The maximum number of encoding jobs that EPGStation would run at the
|
||||
same time.
|
||||
'';
|
||||
};
|
||||
|
||||
options.encode = lib.mkOption {
|
||||
type = with lib.types; listOf attrs;
|
||||
description = "Encoding presets for recorded videos.";
|
||||
default = [
|
||||
{
|
||||
name = "H264";
|
||||
cmd = "${pkgs.epgstation}/libexec/enc.sh main";
|
||||
name = "H.264";
|
||||
cmd = "%NODE% ${cfg.package}/libexec/enc.js";
|
||||
suffix = ".mp4";
|
||||
default = true;
|
||||
}
|
||||
{
|
||||
name = "H264-sub";
|
||||
cmd = "${pkgs.epgstation}/libexec/enc.sh sub";
|
||||
suffix = "-sub.mp4";
|
||||
}
|
||||
];
|
||||
defaultText = literalExpression ''
|
||||
defaultText = lib.literalExpression ''
|
||||
[
|
||||
{
|
||||
name = "H264";
|
||||
cmd = "''${pkgs.epgstation}/libexec/enc.sh main";
|
||||
name = "H.264";
|
||||
cmd = "%NODE% config.${opt.package}/libexec/enc.js";
|
||||
suffix = ".mp4";
|
||||
default = true;
|
||||
}
|
||||
{
|
||||
name = "H264-sub";
|
||||
cmd = "''${pkgs.epgstation}/libexec/enc.sh sub";
|
||||
suffix = "-sub.mp4";
|
||||
}
|
||||
]
|
||||
'';
|
||||
@ -229,14 +241,25 @@ in
|
||||
};
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
config = lib.mkIf cfg.enable {
|
||||
assertions = [
|
||||
{
|
||||
assertion = !(lib.hasAttr "readOnlyOnce" cfg.settings);
|
||||
message = ''
|
||||
The option config.${opt.settings}.readOnlyOnce can no longer be used
|
||||
since it's been removed. No replacements are available.
|
||||
'';
|
||||
}
|
||||
];
|
||||
|
||||
environment.etc = {
|
||||
"epgstation/operatorLogConfig.json".text = builtins.toJSON logConfig;
|
||||
"epgstation/serviceLogConfig.json".text = builtins.toJSON logConfig;
|
||||
"epgstation/epgUpdaterLogConfig.yml".source = logConfig;
|
||||
"epgstation/operatorLogConfig.yml".source = logConfig;
|
||||
"epgstation/serviceLogConfig.yml".source = logConfig;
|
||||
};
|
||||
|
||||
networking.firewall = mkIf cfg.openFirewall {
|
||||
allowedTCPPorts = with cfg; [ port socketioPort ];
|
||||
networking.firewall = lib.mkIf cfg.openFirewall {
|
||||
allowedTCPPorts = with cfg.settings; [ port socketioPort ];
|
||||
};
|
||||
|
||||
users.users.epgstation = {
|
||||
@ -245,13 +268,13 @@ in
|
||||
isSystemUser = true;
|
||||
};
|
||||
|
||||
users.groups.epgstation = {};
|
||||
users.groups.epgstation = { };
|
||||
|
||||
services.mirakurun.enable = mkDefault true;
|
||||
services.mirakurun.enable = lib.mkDefault true;
|
||||
|
||||
services.mysql = {
|
||||
enable = mkDefault true;
|
||||
package = mkDefault pkgs.mariadb;
|
||||
enable = lib.mkDefault true;
|
||||
package = lib.mkDefault pkgs.mariadb;
|
||||
ensureDatabases = [ cfg.database.name ];
|
||||
# FIXME: enable once mysqljs supports auth_socket
|
||||
# ensureUsers = [ {
|
||||
@ -260,39 +283,28 @@ in
|
||||
# } ];
|
||||
};
|
||||
|
||||
services.epgstation.settings = let
|
||||
defaultSettings = {
|
||||
serverPort = cfg.port;
|
||||
socketioPort = cfg.socketioPort;
|
||||
clientSocketioPort = cfg.clientSocketioPort;
|
||||
services.epgstation.settings =
|
||||
let
|
||||
defaultSettings = {
|
||||
dbtype = lib.mkDefault "mysql";
|
||||
mysql = {
|
||||
socketPath = lib.mkDefault "/run/mysqld/mysqld.sock";
|
||||
user = username;
|
||||
password = lib.mkDefault "@dbPassword@";
|
||||
database = cfg.database.name;
|
||||
};
|
||||
|
||||
dbType = mkDefault "mysql";
|
||||
mysql = {
|
||||
user = username;
|
||||
database = cfg.database.name;
|
||||
socketPath = mkDefault "/run/mysqld/mysqld.sock";
|
||||
password = mkDefault "@dbPassword@";
|
||||
connectTimeout = mkDefault 1000;
|
||||
connectionLimit = mkDefault 10;
|
||||
ffmpeg = lib.mkDefault "${pkgs.ffmpeg-full}/bin/ffmpeg";
|
||||
ffprobe = lib.mkDefault "${pkgs.ffmpeg-full}/bin/ffprobe";
|
||||
|
||||
# for disambiguation with TypeScript files
|
||||
recordedFileExtension = lib.mkDefault ".m2ts";
|
||||
};
|
||||
|
||||
basicAuth = mkIf (cfg.basicAuth.user != null) {
|
||||
user = mkDefault cfg.basicAuth.user;
|
||||
password = mkDefault "@password@";
|
||||
};
|
||||
|
||||
ffmpeg = mkDefault "${pkgs.ffmpeg-full}/bin/ffmpeg";
|
||||
ffprobe = mkDefault "${pkgs.ffmpeg-full}/bin/ffprobe";
|
||||
|
||||
fileExtension = mkDefault ".m2ts";
|
||||
maxEncode = mkDefault 2;
|
||||
maxStreaming = mkDefault 2;
|
||||
};
|
||||
in
|
||||
mkMerge [
|
||||
defaultSettings
|
||||
(mkIf cfg.usePreconfiguredStreaming streamingConfig)
|
||||
];
|
||||
in
|
||||
lib.mkMerge [
|
||||
defaultSettings
|
||||
(lib.mkIf cfg.usePreconfiguredStreaming streamingConfig)
|
||||
];
|
||||
|
||||
systemd.tmpfiles.rules = [
|
||||
"d '/var/lib/epgstation/streamfiles' - ${username} ${groupname} - -"
|
||||
@ -301,15 +313,15 @@ in
|
||||
];
|
||||
|
||||
systemd.services.epgstation = {
|
||||
description = pkgs.epgstation.meta.description;
|
||||
inherit description;
|
||||
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
after = [
|
||||
"network.target"
|
||||
] ++ optional config.services.mirakurun.enable "mirakurun.service"
|
||||
++ optional config.services.mysql.enable "mysql.service";
|
||||
after = [ "network.target" ]
|
||||
++ lib.optional config.services.mirakurun.enable "mirakurun.service"
|
||||
++ lib.optional config.services.mysql.enable "mysql.service";
|
||||
|
||||
serviceConfig = {
|
||||
ExecStart = "${pkgs.epgstation}/bin/epgstation start";
|
||||
ExecStart = "${cfg.package}/bin/epgstation start";
|
||||
ExecStartPre = "+${preStartScript}";
|
||||
User = username;
|
||||
Group = groupname;
|
||||
|
@ -1,119 +1,140 @@
|
||||
{
|
||||
"liveHLS": [
|
||||
{
|
||||
"name": "720p",
|
||||
"cmd": "%FFMPEG% -re -dual_mono_mode main -i pipe:0 -sn -threads 0 -map 0 -ignore_unknown -max_muxing_queue_size 1024 -f hls -hls_time 3 -hls_list_size 17 -hls_allow_cache 1 -hls_segment_filename %streamFileDir%/stream%streamNum%-%09d.ts -c:a aac -ar 48000 -b:a 192k -ac 2 -c:v libx264 -vf yadif,scale=-2:720 -b:v 3000k -preset veryfast -flags +loop-global_header %OUTPUT%"
|
||||
"urlscheme": {
|
||||
"m2ts": {
|
||||
"ios": "vlc-x-callback://x-callback-url/stream?url=PROTOCOL://ADDRESS",
|
||||
"android": "intent://ADDRESS#Intent;package=org.videolan.vlc;type=video;scheme=PROTOCOL;end"
|
||||
},
|
||||
{
|
||||
"name": "480p",
|
||||
"cmd": "%FFMPEG% -re -dual_mono_mode main -i pipe:0 -sn -threads 0 -map 0 -ignore_unknown -max_muxing_queue_size 1024 -f hls -hls_time 3 -hls_list_size 17 -hls_allow_cache 1 -hls_segment_filename %streamFileDir%/stream%streamNum%-%09d.ts -c:a aac -ar 48000 -b:a 128k -ac 2 -c:v libx264 -vf yadif,scale=-2:480 -b:v 1500k -preset veryfast -flags +loop-global_header %OUTPUT%"
|
||||
"video": {
|
||||
"ios": "infuse://x-callback-url/play?url=PROTOCOL://ADDRESS",
|
||||
"android": "intent://ADDRESS#Intent;package=com.mxtech.videoplayer.ad;type=video;scheme=PROTOCOL;end"
|
||||
},
|
||||
{
|
||||
"name": "180p",
|
||||
"cmd": "%FFMPEG% -re -dual_mono_mode main -i pipe:0 -sn -threads 0 -map 0 -ignore_unknown -max_muxing_queue_size 1024 -f hls -hls_time 3 -hls_list_size 17 -hls_allow_cache 1 -hls_segment_filename %streamFileDir%/stream%streamNum%-%09d.ts -c:a aac -ar 48000 -b:a 48k -ac 2 -c:v libx264 -vf yadif,scale=-2:180 -b:v 100k -preset veryfast -maxrate 110k -bufsize 1000k -flags +loop-global_header %OUTPUT%"
|
||||
"download": {
|
||||
"ios": "vlc-x-callback://x-callback-url/download?url=PROTOCOL://ADDRESS&filename=FILENAME"
|
||||
}
|
||||
],
|
||||
"liveMP4": [
|
||||
{
|
||||
"name": "720p",
|
||||
"cmd": "%FFMPEG% -re -dual_mono_mode main -i pipe:0 -sn -threads 0 -c:a aac -ar 48000 -b:a 192k -ac 2 -c:v libx264 -vf yadif,scale=-2:720 -b:v 3000k -profile:v baseline -preset veryfast -tune fastdecode,zerolatency -movflags frag_keyframe+empty_moov+faststart+default_base_moof -y -f mp4 pipe:1"
|
||||
},
|
||||
{
|
||||
"name": "480p",
|
||||
"cmd": "%FFMPEG% -re -dual_mono_mode main -i pipe:0 -sn -threads 0 -c:a aac -ar 48000 -b:a 128k -ac 2 -c:v libx264 -vf yadif,scale=-2:480 -b:v 1500k -profile:v baseline -preset veryfast -tune fastdecode,zerolatency -movflags frag_keyframe+empty_moov+faststart+default_base_moof -y -f mp4 pipe:1"
|
||||
}
|
||||
],
|
||||
"liveWebM": [
|
||||
{
|
||||
"name": "720p",
|
||||
"cmd": "%FFMPEG% -re -dual_mono_mode main -i pipe:0 -sn -threads 3 -c:a libvorbis -ar 48000 -b:a 192k -ac 2 -c:v libvpx-vp9 -vf yadif,scale=-2:720 -b:v 3000k -deadline realtime -speed 4 -cpu-used -8 -y -f webm pipe:1"
|
||||
},
|
||||
{
|
||||
"name": "480p",
|
||||
"cmd": "%FFMPEG% -re -dual_mono_mode main -i pipe:0 -sn -threads 2 -c:a libvorbis -ar 48000 -b:a 128k -ac 2 -c:v libvpx-vp9 -vf yadif,scale=-2:480 -b:v 1500k -deadline realtime -speed 4 -cpu-used -8 -y -f webm pipe:1"
|
||||
}
|
||||
],
|
||||
"mpegTsStreaming": [
|
||||
{
|
||||
"name": "720p",
|
||||
"cmd": "%FFMPEG% -re -dual_mono_mode main -i pipe:0 -sn -threads 0 -c:a aac -ar 48000 -b:a 192k -ac 2 -c:v libx264 -vf yadif,scale=-2:720 -b:v 3000k -preset veryfast -y -f mpegts pipe:1"
|
||||
},
|
||||
{
|
||||
"name": "480p",
|
||||
"cmd": "%FFMPEG% -re -dual_mono_mode main -i pipe:0 -sn -threads 0 -c:a aac -ar 48000 -b:a 128k -ac 2 -c:v libx264 -vf yadif,scale=-2:480 -b:v 1500k -preset veryfast -y -f mpegts pipe:1"
|
||||
},
|
||||
{
|
||||
"name": "Original"
|
||||
}
|
||||
],
|
||||
"mpegTsViewer": {
|
||||
"ios": "vlc-x-callback://x-callback-url/stream?url=http://ADDRESS",
|
||||
"android": "intent://ADDRESS#Intent;package=com.mxtech.videoplayer.ad;type=video;scheme=http;end"
|
||||
},
|
||||
"recordedDownloader": {
|
||||
"ios": "vlc-x-callback://x-callback-url/download?url=http://ADDRESS&filename=FILENAME",
|
||||
"android": "intent://ADDRESS#Intent;package=com.dv.adm;type=video;scheme=http;end"
|
||||
},
|
||||
"recordedStreaming": {
|
||||
"webm": [
|
||||
{
|
||||
"name": "720p",
|
||||
"cmd": "%FFMPEG% -dual_mono_mode main %RE% -i pipe:0 -sn -threads 3 -c:a libvorbis -ar 48000 -ac 2 -c:v libvpx-vp9 -vf yadif,scale=-2:720 %VB% %VBUFFER% %AB% %ABUFFER% -deadline realtime -speed 4 -cpu-used -8 -y -f webm pipe:1",
|
||||
"vb": "3000k",
|
||||
"ab": "192k"
|
||||
},
|
||||
{
|
||||
"name": "360p",
|
||||
"cmd": "%FFMPEG% -dual_mono_mode main %RE% -i pipe:0 -sn -threads 2 -c:a libvorbis -ar 48000 -ac 2 -c:v libvpx-vp9 -vf yadif,scale=-2:360 %VB% %VBUFFER% %AB% %ABUFFER% -deadline realtime -speed 4 -cpu-used -8 -y -f webm pipe:1",
|
||||
"vb": "1500k",
|
||||
"ab": "128k"
|
||||
"stream": {
|
||||
"live": {
|
||||
"ts": {
|
||||
"m2ts": [
|
||||
{
|
||||
"name": "720p",
|
||||
"cmd": "%FFMPEG% -re -dual_mono_mode main -i pipe:0 -sn -threads 0 -c:a aac -ar 48000 -b:a 192k -ac 2 -c:v libx264 -vf yadif,scale=-2:720 -b:v 3000k -preset veryfast -y -f mpegts pipe:1"
|
||||
},
|
||||
{
|
||||
"name": "480p",
|
||||
"cmd": "%FFMPEG% -re -dual_mono_mode main -i pipe:0 -sn -threads 0 -c:a aac -ar 48000 -b:a 128k -ac 2 -c:v libx264 -vf yadif,scale=-2:480 -b:v 1500k -preset veryfast -y -f mpegts pipe:1"
|
||||
},
|
||||
{
|
||||
"name": "無変換"
|
||||
}
|
||||
],
|
||||
"m2tsll": [
|
||||
{
|
||||
"name": "720p",
|
||||
"cmd": "%FFMPEG% -dual_mono_mode main -f mpegts -analyzeduration 500000 -i pipe:0 -map 0 -c:s copy -c:d copy -ignore_unknown -fflags nobuffer -flags low_delay -max_delay 250000 -max_interleave_delta 1 -threads 0 -c:a aac -ar 48000 -b:a 192k -ac 2 -c:v libx264 -flags +cgop -vf yadif,scale=-2:720 -b:v 3000k -preset veryfast -y -f mpegts pipe:1"
|
||||
},
|
||||
{
|
||||
"name": "480p",
|
||||
"cmd": "%FFMPEG% -dual_mono_mode main -f mpegts -analyzeduration 500000 -i pipe:0 -map 0 -c:s copy -c:d copy -ignore_unknown -fflags nobuffer -flags low_delay -max_delay 250000 -max_interleave_delta 1 -threads 0 -c:a aac -ar 48000 -b:a 128k -ac 2 -c:v libx264 -flags +cgop -vf yadif,scale=-2:480 -b:v 1500k -preset veryfast -y -f mpegts pipe:1"
|
||||
}
|
||||
],
|
||||
"webm": [
|
||||
{
|
||||
"name": "720p",
|
||||
"cmd": "%FFMPEG% -re -dual_mono_mode main -i pipe:0 -sn -threads 3 -c:a libvorbis -ar 48000 -b:a 192k -ac 2 -c:v libvpx-vp9 -vf yadif,scale=-2:720 -b:v 3000k -deadline realtime -speed 4 -cpu-used -8 -y -f webm pipe:1"
|
||||
},
|
||||
{
|
||||
"name": "480p",
|
||||
"cmd": "%FFMPEG% -re -dual_mono_mode main -i pipe:0 -sn -threads 2 -c:a libvorbis -ar 48000 -b:a 128k -ac 2 -c:v libvpx-vp9 -vf yadif,scale=-2:480 -b:v 1500k -deadline realtime -speed 4 -cpu-used -8 -y -f webm pipe:1"
|
||||
}
|
||||
],
|
||||
"mp4": [
|
||||
{
|
||||
"name": "720p",
|
||||
"cmd": "%FFMPEG% -re -dual_mono_mode main -i pipe:0 -sn -threads 0 -c:a aac -ar 48000 -b:a 192k -ac 2 -c:v libx264 -vf yadif,scale=-2:720 -b:v 3000k -profile:v baseline -preset veryfast -tune fastdecode,zerolatency -movflags frag_keyframe+empty_moov+faststart+default_base_moof -y -f mp4 pipe:1"
|
||||
},
|
||||
{
|
||||
"name": "480p",
|
||||
"cmd": "%FFMPEG% -re -dual_mono_mode main -i pipe:0 -sn -threads 0 -c:a aac -ar 48000 -b:a 128k -ac 2 -c:v libx264 -vf yadif,scale=-2:480 -b:v 1500k -profile:v baseline -preset veryfast -tune fastdecode,zerolatency -movflags frag_keyframe+empty_moov+faststart+default_base_moof -y -f mp4 pipe:1"
|
||||
}
|
||||
],
|
||||
"hls": [
|
||||
{
|
||||
"name": "720p",
|
||||
"cmd": "%FFMPEG% -re -dual_mono_mode main -i pipe:0 -sn -map 0 -threads 0 -ignore_unknown -max_muxing_queue_size 1024 -f hls -hls_time 3 -hls_list_size 17 -hls_allow_cache 1 -hls_segment_filename %streamFileDir%/stream%streamNum%-%09d.ts -hls_flags delete_segments -c:a aac -ar 48000 -b:a 192k -ac 2 -c:v libx264 -vf yadif,scale=-2:720 -b:v 3000k -preset veryfast -flags +loop-global_header %OUTPUT%"
|
||||
},
|
||||
{
|
||||
"name": "480p",
|
||||
"cmd": "%FFMPEG% -re -dual_mono_mode main -i pipe:0 -sn -map 0 -threads 0 -ignore_unknown -max_muxing_queue_size 1024 -f hls -hls_time 3 -hls_list_size 17 -hls_allow_cache 1 -hls_segment_filename %streamFileDir%/stream%streamNum%-%09d.ts -hls_flags delete_segments -c:a aac -ar 48000 -b:a 128k -ac 2 -c:v libx264 -vf yadif,scale=-2:480 -b:v 1500k -preset veryfast -flags +loop-global_header %OUTPUT%"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"mp4": [
|
||||
{
|
||||
"name": "720p",
|
||||
"cmd": "%FFMPEG% -dual_mono_mode main %RE% -i pipe:0 -sn -threads 0 -c:a aac -ar 48000 -ac 2 -c:v libx264 -vf yadif,scale=-2:720 %VB% %VBUFFER% %AB% %ABUFFER% -profile:v baseline -preset veryfast -tune fastdecode,zerolatency -movflags frag_keyframe+empty_moov+faststart+default_base_moof -y -f mp4 pipe:1",
|
||||
"vb": "3000k",
|
||||
"ab": "192k"
|
||||
},
|
||||
{
|
||||
"name": "360p",
|
||||
"cmd": "%FFMPEG% -dual_mono_mode main %RE% -i pipe:0 -sn -threads 0 -c:a aac -ar 48000 -ac 2 -c:v libx264 -vf yadif,scale=-2:360 %VB% %VBUFFER% %AB% %ABUFFER% -profile:v baseline -preset veryfast -tune fastdecode,zerolatency -movflags frag_keyframe+empty_moov+faststart+default_base_moof -y -f mp4 pipe:1",
|
||||
"vb": "1500k",
|
||||
"ab": "128k"
|
||||
}
|
||||
],
|
||||
"mpegTs": [
|
||||
{
|
||||
"name": "720p (H.264)",
|
||||
"cmd": "%FFMPEG% -dual_mono_mode main %RE% -i pipe:0 -sn -threads 0 -c:a aac -ar 48000 -ac 2 -c:v libx264 -vf yadif,scale=-2:720 %VB% %VBUFFER% %AB% %ABUFFER% -profile:v baseline -preset veryfast -tune fastdecode,zerolatency -y -f mpegts pipe:1",
|
||||
"vb": "3000k",
|
||||
"ab": "192k"
|
||||
},
|
||||
{
|
||||
"name": "360p (H.264)",
|
||||
"cmd": "%FFMPEG% -dual_mono_mode main %RE% -i pipe:0 -sn -threads 0 -c:a aac -ar 48000 -ac 2 -c:v libx264 -vf yadif,scale=-2:360 %VB% %VBUFFER% %AB% %ABUFFER% -profile:v baseline -preset veryfast -tune fastdecode,zerolatency -y -f mpegts pipe:1",
|
||||
"vb": "1500k",
|
||||
"ab": "128k"
|
||||
}
|
||||
]
|
||||
},
|
||||
"recordedHLS": [
|
||||
{
|
||||
"name": "720p",
|
||||
"cmd": "%FFMPEG% -dual_mono_mode main -i %INPUT% -sn -threads 0 -map 0 -ignore_unknown -max_muxing_queue_size 1024 -f hls -hls_time 3 -hls_list_size 0 -hls_allow_cache 1 -hls_segment_filename %streamFileDir%/stream%streamNum%-%09d.ts -c:a aac -ar 48000 -b:a 192k -ac 2 -c:v libx264 -vf yadif,scale=-2:720 -b:v 3000k -preset veryfast -flags +loop-global_header %OUTPUT%"
|
||||
},
|
||||
{
|
||||
"name": "480p",
|
||||
"cmd": "%FFMPEG% -dual_mono_mode main -i %INPUT% -sn -threads 0 -map 0 -ignore_unknown -max_muxing_queue_size 1024 -f hls -hls_time 3 -hls_list_size 0 -hls_allow_cache 1 -hls_segment_filename %streamFileDir%/stream%streamNum%-%09d.ts -c:a aac -ar 48000 -b:a 128k -ac 2 -c:v libx264 -vf yadif,scale=-2:480 -b:v 1500k -preset veryfast -flags +loop-global_header %OUTPUT%"
|
||||
},
|
||||
{
|
||||
"name": "480p(h265)",
|
||||
"cmd": "%FFMPEG% -dual_mono_mode main -i %INPUT% -sn -map 0 -ignore_unknown -max_muxing_queue_size 1024 -f hls -hls_time 3 -hls_list_size 0 -hls_allow_cache 1 -hls_segment_type fmp4 -hls_fmp4_init_filename stream%streamNum%-init.mp4 -hls_segment_filename stream%streamNum%-%09d.m4s -c:a aac -ar 48000 -b:a 128k -ac 2 -c:v libx265 -vf yadif,scale=-2:480 -b:v 350k -preset veryfast -tag:v hvc1 %OUTPUT%"
|
||||
"recorded": {
|
||||
"ts": {
|
||||
"webm": [
|
||||
{
|
||||
"name": "720p",
|
||||
"cmd": "%FFMPEG% -dual_mono_mode main -i pipe:0 -sn -threads 3 -c:a libvorbis -ar 48000 -b:a 192k -ac 2 -c:v libvpx-vp9 -vf yadif,scale=-2:720 -b:v 3000k -deadline realtime -speed 4 -cpu-used -8 -y -f webm pipe:1"
|
||||
},
|
||||
{
|
||||
"name": "480p",
|
||||
"cmd": "%FFMPEG% -dual_mono_mode main -i pipe:0 -sn -threads 3 -c:a libvorbis -ar 48000 -b:a 128k -ac 2 -c:v libvpx-vp9 -vf yadif,scale=-2:480 -b:v 1500k -deadline realtime -speed 4 -cpu-used -8 -y -f webm pipe:1"
|
||||
}
|
||||
],
|
||||
"mp4": [
|
||||
{
|
||||
"name": "720p",
|
||||
"cmd": "%FFMPEG% -dual_mono_mode main -i pipe:0 -sn -threads 0 -c:a aac -ar 48000 -b:a 192k -ac 2 -c:v libx264 -vf yadif,scale=-2:720 -b:v 3000k -profile:v baseline -preset veryfast -tune fastdecode,zerolatency -movflags frag_keyframe+empty_moov+faststart+default_base_moof -y -f mp4 pipe:1"
|
||||
},
|
||||
{
|
||||
"name": "480p",
|
||||
"cmd": "%FFMPEG% -dual_mono_mode main -i pipe:0 -sn -threads 0 -c:a aac -ar 48000 -b:a 128k -ac 2 -c:v libx264 -vf yadif,scale=-2:480 -b:v 1500k -profile:v baseline -preset veryfast -tune fastdecode,zerolatency -movflags frag_keyframe+empty_moov+faststart+default_base_moof -y -f mp4 pipe:1"
|
||||
}
|
||||
],
|
||||
"hls": [
|
||||
{
|
||||
"name": "720p",
|
||||
"cmd": "%FFMPEG% -dual_mono_mode main -i pipe:0 -sn -map 0 -threads 0 -ignore_unknown -max_muxing_queue_size 1024 -f hls -hls_time 3 -hls_list_size 0 -hls_allow_cache 1 -hls_segment_filename %streamFileDir%/stream%streamNum%-%09d.ts -hls_flags delete_segments -c:a aac -ar 48000 -b:a 192k -ac 2 -c:v libx264 -vf yadif,scale=-2:720 -b:v 3000k -preset veryfast -flags +loop-global_header %OUTPUT%"
|
||||
},
|
||||
{
|
||||
"name": "480p",
|
||||
"cmd": "%FFMPEG% -dual_mono_mode main -i pipe:0 -sn -map 0 -threads 0 -ignore_unknown -max_muxing_queue_size 1024 -f hls -hls_time 3 -hls_list_size 0 -hls_allow_cache 1 -hls_segment_filename %streamFileDir%/stream%streamNum%-%09d.ts -hls_flags delete_segments -c:a aac -ar 48000 -b:a 128k -ac 2 -c:v libx264 -vf yadif,scale=-2:480 -b:v 1500k -preset veryfast -flags +loop-global_header %OUTPUT%"
|
||||
}
|
||||
]
|
||||
},
|
||||
"encoded": {
|
||||
"webm": [
|
||||
{
|
||||
"name": "720p",
|
||||
"cmd": "%FFMPEG% -dual_mono_mode main -ss %SS% -i %INPUT% -sn -threads 3 -c:a libvorbis -ar 48000 -b:a 192k -ac 2 -c:v libvpx-vp9 -vf scale=-2:720 -b:v 3000k -deadline realtime -speed 4 -cpu-used -8 -y -f webm pipe:1"
|
||||
},
|
||||
{
|
||||
"name": "480p",
|
||||
"cmd": "%FFMPEG% -dual_mono_mode main -ss %SS% -i %INPUT% -sn -threads 3 -c:a libvorbis -ar 48000 -b:a 128k -ac 2 -c:v libvpx-vp9 -vf scale=-2:480 -b:v 1500k -deadline realtime -speed 4 -cpu-used -8 -y -f webm pipe:1"
|
||||
}
|
||||
],
|
||||
"mp4": [
|
||||
{
|
||||
"name": "720p",
|
||||
"cmd": "%FFMPEG% -dual_mono_mode main -ss %SS% -i %INPUT% -sn -threads 0 -c:a aac -ar 48000 -b:a 192k -ac 2 -c:v libx264 -vf scale=-2:720 -b:v 3000k -profile:v baseline -preset veryfast -tune fastdecode,zerolatency -movflags frag_keyframe+empty_moov+faststart+default_base_moof -y -f mp4 pipe:1"
|
||||
},
|
||||
{
|
||||
"name": "480p",
|
||||
"cmd": "%FFMPEG% -dual_mono_mode main -ss %SS% -i %INPUT% -sn -threads 0 -c:a aac -ar 48000 -b:a 128k -ac 2 -c:v libx264 -vf scale=-2:480 -b:v 1500k -profile:v baseline -preset veryfast -tune fastdecode,zerolatency -movflags frag_keyframe+empty_moov+faststart+default_base_moof -y -f mp4 pipe:1"
|
||||
}
|
||||
],
|
||||
"hls": [
|
||||
{
|
||||
"name": "720p",
|
||||
"cmd": "%FFMPEG% -dual_mono_mode main -ss %SS% -i %INPUT% -sn -threads 0 -ignore_unknown -max_muxing_queue_size 1024 -f hls -hls_time 3 -hls_list_size 0 -hls_allow_cache 1 -hls_segment_filename %streamFileDir%/stream%streamNum%-%09d.ts -hls_flags delete_segments -c:a aac -ar 48000 -b:a 192k -ac 2 -c:v libx264 -vf scale=-2:720 -b:v 3000k -preset veryfast -flags +loop-global_header %OUTPUT%"
|
||||
},
|
||||
{
|
||||
"name": "480p",
|
||||
"cmd": "%FFMPEG% -dual_mono_mode main -ss %SS% -i %INPUT% -sn -threads 0 -ignore_unknown -max_muxing_queue_size 1024 -f hls -hls_time 3 -hls_list_size 0 -hls_allow_cache 1 -hls_segment_filename %streamFileDir%/stream%streamNum%-%09d.ts -hls_flags delete_segments -c:a aac -ar 48000 -b:a 128k -ac 2 -c:v libx264 -vf scale=-2:480 -b:v 3000k -preset veryfast -flags +loop-global_header %OUTPUT%"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
],
|
||||
"recordedViewer": {
|
||||
"ios": "infuse://x-callback-url/play?url=http://ADDRESS",
|
||||
"android": "intent://ADDRESS#Intent;package=com.mxtech.videoplayer.ad;type=video;scheme=http;end"
|
||||
}
|
||||
}
|
||||
|
@ -22,11 +22,13 @@ let
|
||||
type = with types; nullOr package;
|
||||
default = null;
|
||||
description = ''
|
||||
Path to an image file to load instead of pulling from a registry.
|
||||
If defined, do not pull from registry.
|
||||
Path to an image file to load before running the image. This can
|
||||
be used to bypass pulling the image from the registry.
|
||||
|
||||
You still need to set the <literal>image</literal> attribute, as it
|
||||
will be used as the image name for docker to start a container.
|
||||
The <literal>image</literal> attribute must match the name and
|
||||
tag of the image contained in this file, as they will be used to
|
||||
run the container with that image. If they do not match, the
|
||||
image will be pulled from the registry as usual.
|
||||
'';
|
||||
example = literalExpression "pkgs.dockerTools.buildImage {...};";
|
||||
};
|
||||
|
@ -6,11 +6,11 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "bitwig-studio";
|
||||
version = "4.1.6";
|
||||
version = "4.2";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://downloads.bitwig.com/stable/${version}/${pname}-${version}.deb";
|
||||
sha256 = "sha256-Q4YYdMUd/T8tGGcakhoLdHvWsHwOq7LgIb77sr2OWuQ=";
|
||||
sha256 = "sha256-hIIEVj5sM/NdhBiwerFvyIXqj0R8EvcxwM6UZ0CE428=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ dpkg makeWrapper wrapGAppsHook ];
|
||||
|
@ -35,13 +35,13 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "easyeffects";
|
||||
version = "6.2.3";
|
||||
version = "6.2.4";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "wwmm";
|
||||
repo = "easyeffects";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-A1UanrAbmZFGCmDNIr1h+v5RVMsIl4qgM/veBirudQM=";
|
||||
sha256 = "sha256-g/qN1Tafh71HdPLHW43Zva9MK6G+qxSnb1aRisuwdBw=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
33
pkgs/applications/audio/jellycli/default.nix
Normal file
33
pkgs/applications/audio/jellycli/default.nix
Normal file
@ -0,0 +1,33 @@
|
||||
{ lib, fetchFromGitHub, buildGoModule, alsa-lib }:
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "jellycli";
|
||||
version = "0.9.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "tryffel";
|
||||
repo = "jellycli";
|
||||
rev = "v${version}";
|
||||
sha256 = "1awzcxnf175a794rhzbmqxxjss77mfa1yrr0wgdxaivrlkibxjys";
|
||||
};
|
||||
|
||||
vendorSha256 = "02fwsnrhj09m0aa199plpqlsjrwpmrk4c80fszzm07s5vmjqvnfy";
|
||||
|
||||
patches = [
|
||||
# Fixes log file path for tests.
|
||||
./fix-test-dir.patch
|
||||
];
|
||||
|
||||
buildInputs = [ alsa-lib ];
|
||||
|
||||
meta = with lib; {
|
||||
description = "Jellyfin terminal client";
|
||||
longDescription = ''
|
||||
Terminal music player, works with Jellyfin (>= 10.6) , Emby (>= 4.4), and
|
||||
Subsonic comptabile servers (API >= 1.16), e.g., Navidrome.
|
||||
'';
|
||||
homepage = "https://github.com/tryffel/jellycli";
|
||||
license = licenses.gpl3Plus;
|
||||
maintainers = with maintainers; [ oxzi ];
|
||||
};
|
||||
}
|
13
pkgs/applications/audio/jellycli/fix-test-dir.patch
Normal file
13
pkgs/applications/audio/jellycli/fix-test-dir.patch
Normal file
@ -0,0 +1,13 @@
|
||||
diff --git a/config/config_test.go b/config/config_test.go
|
||||
index 9f63a7e..7e790b8 100644
|
||||
--- a/config/config_test.go
|
||||
+++ b/config/config_test.go
|
||||
@@ -110,7 +110,7 @@ func TestInitEmptyConfig(t *testing.T) {
|
||||
Subsonic: Subsonic{},
|
||||
Player: Player{
|
||||
Server: "jellyfin",
|
||||
- LogFile: "/tmp/jellycli.log",
|
||||
+ LogFile: "/build/jellycli.log",
|
||||
LogLevel: "info",
|
||||
AudioBufferingMs: 150,
|
||||
HttpBufferingS: 5,
|
@ -13,10 +13,10 @@ let
|
||||
archive_fmt = if system == "x86_64-darwin" then "zip" else "tar.gz";
|
||||
|
||||
sha256 = {
|
||||
x86_64-linux = "09zpc8c2il6x88h65kbm6z8vfnx0byzpcqqy9a1za5ilqr3dhk43";
|
||||
x86_64-darwin = "09m2ij0phf5ni5m110z2bnmd9z50lz1qsh7w7cfawycjhwsl602z";
|
||||
aarch64-linux = "1nsdn9mc4ahrz392w2z071sfxc5jmwhamlaid2qy899cc7sk8nqr";
|
||||
armv7l-linux = "1ii6li6l09ccxf0gyjy3f5752kr4a8pga5w0a0ndgfa73mhlamin";
|
||||
x86_64-linux = "1sh2f7hwhilwmlgy11kl0s2n3phpcir15wyl2fkyhsr2kdj4jz9r";
|
||||
x86_64-darwin = "1s04d91f08982wi8hb4dw0j57d6zqrdgns16ihrgsvahrzksgq4b";
|
||||
aarch64-linux = "1a97lk1qz2lz0lk5lpja32zy07iwdbskp6baf429iz7fz232rshm";
|
||||
armv7l-linux = "0vjqxqcr7fq3ncx1nl6ny7qcqm4vlsn33c074hhcg5292blg2a0p";
|
||||
}.${system};
|
||||
|
||||
sourceRoot = {
|
||||
@ -31,7 +31,7 @@ in
|
||||
|
||||
# Please backport all compatible updates to the stable release.
|
||||
# This is important for the extension ecosystem.
|
||||
version = "1.65.1";
|
||||
version = "1.65.2";
|
||||
pname = "vscodium";
|
||||
|
||||
executableName = "codium";
|
||||
|
@ -9,10 +9,10 @@
|
||||
|
||||
let
|
||||
# Keep these separate so the update script can regex them
|
||||
rpcs3GitVersion = "13222-8c2fd5095";
|
||||
rpcs3Version = "0.0.20-13222-8c2fd5095";
|
||||
rpcs3Revision = "8c2fd50957be3af05c04a9bb782dce8505fb6400";
|
||||
rpcs3Sha256 = "1cf62vpqdc9i4masgv9zz24h7zdc7gcymx6n1hbh7wp5gg1dw4qi";
|
||||
rpcs3GitVersion = "13327-6c096b72b";
|
||||
rpcs3Version = "0.0.21-13327-6c096b72b";
|
||||
rpcs3Revision = "6c096b72b5294758067a002f981563bbd618d30d";
|
||||
rpcs3Sha256 = "0xmdhjskqbv02jvl43bvw0clsgh9gnahl50fr3q8lmpwpy13ldr4";
|
||||
|
||||
ittapi = fetchFromGitHub {
|
||||
owner = "intel";
|
||||
|
@ -6,7 +6,7 @@
|
||||
}:
|
||||
|
||||
let
|
||||
version = "5.9.1";
|
||||
version = "5.10.0";
|
||||
|
||||
docFiles = [
|
||||
(fetchurl {
|
||||
@ -35,7 +35,7 @@ in mkDerivation rec {
|
||||
owner = "paraview";
|
||||
repo = "paraview";
|
||||
rev = "v${version}";
|
||||
sha256 = "0pzic95br0vr785jnpxqmfxcljw3wk7bhm2xy0jfmwm1dh2b7xac";
|
||||
sha256 = "0ipx6zq44hpic7gvv0s2jvjncak6vlmrz5sp9ypc15b15bna0gs2";
|
||||
fetchSubmodules = true;
|
||||
};
|
||||
|
||||
|
@ -34,8 +34,8 @@ let
|
||||
qonlinetranslator = fetchFromGitHub {
|
||||
owner = "crow-translate";
|
||||
repo = "QOnlineTranslator";
|
||||
rev = "1.5.2";
|
||||
sha256 = "sha256-iGi25aKwff2hNNx6o4kHZV8gVbEQcMgpTTvop3CoLjM=";
|
||||
rev = "1.5.3";
|
||||
sha256 = "sha256-L8y4vazbWD5SC7itxQOjEcX10w0laewxTOGz+Yd+kVM=";
|
||||
};
|
||||
circleflags = fetchFromGitHub {
|
||||
owner = "HatScripts";
|
||||
@ -52,13 +52,13 @@ let
|
||||
in
|
||||
mkDerivation rec {
|
||||
pname = "crow-translate";
|
||||
version = "2.9.1";
|
||||
version = "2.9.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "crow-translate";
|
||||
repo = pname;
|
||||
rev = version;
|
||||
sha256 = "sha256-7Zb6PZO8eLeGPEZD37ja+LZydIQdsgy5gMAMtlS4k5Y=";
|
||||
sha256 = "sha256-cxfBdoqGVmtCaXyw6QzXj2V44wKyVal/uqsddwIdvjw=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
|
@ -46,7 +46,7 @@ index c92e745..f265f03 100644
|
||||
|
||||
FetchContent_Declare(QOnlineTranslator
|
||||
- GIT_REPOSITORY https://github.com/crow-translate/QOnlineTranslator
|
||||
- GIT_TAG 1.5.2
|
||||
- GIT_TAG 1.5.3
|
||||
+ SOURCE_DIR @qonlinetranslator@
|
||||
)
|
||||
|
||||
|
@ -5,16 +5,16 @@
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "dasel";
|
||||
version = "1.22.1";
|
||||
version = "1.23.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "TomWright";
|
||||
repo = "dasel";
|
||||
rev = "v${version}";
|
||||
sha256 = "091s3hyz9p892garanm9zmkbsn6hn3bnnrz7h3dqsyi58806d5yr";
|
||||
sha256 = "sha256-MUF57begai6yMYLPC5dnyO9S39uHogB+Ie3qDA46Cn8=";
|
||||
};
|
||||
|
||||
vendorSha256 = "1y0k03lg9dh3bpi10xzv03h7gq7h0hgggs304p78p3jkr8pmkqss";
|
||||
vendorSha256 = "sha256-NP+Is7Dxz4LGzx5vpv8pJOJhodAYHia1JXYfhJD54as=";
|
||||
|
||||
ldflags = [
|
||||
"-s" "-w" "-X github.com/tomwright/dasel/internal.Version=${version}"
|
||||
|
@ -2,12 +2,12 @@
|
||||
|
||||
stdenvNoCC.mkDerivation rec {
|
||||
pname = "fluidd";
|
||||
version = "1.16.2";
|
||||
version = "1.17.1";
|
||||
|
||||
src = fetchurl {
|
||||
name = "fluidd-v${version}.zip";
|
||||
url = "https://github.com/cadriel/fluidd/releases/download/v${version}/fluidd.zip";
|
||||
sha256 = "1qwj25xvvxvm1fxx216nn2gp7js4d682mm3l4s7ns90fc5ygvc8i";
|
||||
sha256 = "sha256-F4hAFLsZmRg/zeTHo9eYoT0BasorynGaSzNSbKr2/JE=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ unzip ];
|
||||
|
@ -4,9 +4,9 @@
|
||||
, curl, writeShellScript, common-updater-scripts }:
|
||||
|
||||
let
|
||||
url = "https://hubstaff-production.s3.amazonaws.com/downloads/HubstaffClient/Builds/Release/1.6.4-6681f81d/Hubstaff-1.6.4-6681f81d.sh";
|
||||
version = "1.6.4-6681f81d";
|
||||
sha256 = "1j0rzyqm9zm2w44zwxq61fy19m27ghlv11mbfl7yzh2ccmxljxjm";
|
||||
url = "https://hubstaff-production.s3.amazonaws.com/downloads/HubstaffClient/Builds/Release/1.6.5-31be26f1/Hubstaff-1.6.5-31be26f1.sh";
|
||||
version = "1.6.5-31be26f1";
|
||||
sha256 = "1z1binnqppyxavmjg0l1cvy64ylzy2v454sws2x1am2qhhbnycjm";
|
||||
|
||||
rpath = lib.makeLibraryPath
|
||||
[ libX11 zlib libSM libICE libXext freetype libXrender fontconfig libXft
|
||||
|
@ -1,12 +1,12 @@
|
||||
{ lib, stdenv, fetchurl, appimageTools, makeWrapper, electron }:
|
||||
{ lib, stdenv, fetchurl, appimageTools, makeWrapper, autoPatchelfHook, electron, curl, expat, gcc, openssl, zlib }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "logseq";
|
||||
version = "0.6.1";
|
||||
version = "0.6.3";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://github.com/logseq/logseq/releases/download/${version}/logseq-linux-x64-${version}.AppImage";
|
||||
sha256 = "ccLqOKH10hmROnxlnNxuD5/AqAcFIILIoW/9yZLEep0=";
|
||||
sha256 = "o3tBHk7bauNczz6lPS3lV0mpYEaBa0lh/mAJKJM2eWU=";
|
||||
name = "${pname}-${version}.AppImage";
|
||||
};
|
||||
|
||||
@ -19,7 +19,8 @@ stdenv.mkDerivation rec {
|
||||
dontConfigure = true;
|
||||
dontBuild = true;
|
||||
|
||||
nativeBuildInputs = [ makeWrapper ];
|
||||
nativeBuildInputs = [ makeWrapper autoPatchelfHook ];
|
||||
buildInputs = [ stdenv.cc.cc curl expat openssl zlib ];
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
|
@ -18,7 +18,7 @@
|
||||
|
||||
python3.pkgs.buildPythonApplication rec {
|
||||
pname = "metadata-cleaner";
|
||||
version = "2.1.4";
|
||||
version = "2.1.5";
|
||||
|
||||
format = "other";
|
||||
|
||||
@ -26,7 +26,7 @@ python3.pkgs.buildPythonApplication rec {
|
||||
owner = "rmnvgr";
|
||||
repo = "metadata-cleaner";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-46J0iLXzZX5tww4CK8WhrADql023rauO0fpW7Asn5ZY=";
|
||||
hash = "sha256-G7Azeh8+OQILoYEmlIeacoDzN0NRt5NTGavYM9CH8WA=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
@ -13,11 +13,11 @@ let
|
||||
in
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "splitter";
|
||||
version = "645";
|
||||
version = "647";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://www.mkgmap.org.uk/download/splitter-r${version}-src.tar.gz";
|
||||
sha256 = "Y9feRNDjmwUbSOwxfMIaYIycCvOBMihq5LkuKbALVDY=";
|
||||
sha256 = "j9TJ+9WuItueztWjYoD9s9x8wfsga2QCIY5X2+s3Z1c=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
|
@ -19,9 +19,9 @@
|
||||
}
|
||||
},
|
||||
"beta": {
|
||||
"version": "100.0.4896.20",
|
||||
"sha256": "0g16xzimp39vk5b27bj12rh14520wihj4m4mwxf387rv0yp03cnr",
|
||||
"sha256bin64": "1qkz32xvgbnd7xck0hm2mcrgdawn6xilldjgfckaaavvj4zinnk9",
|
||||
"version": "100.0.4896.30",
|
||||
"sha256": "06zfx9f6wv4j4fz7ss8pjlxfcsrwrvwqkmdk5bin7slxg4sq31fl",
|
||||
"sha256bin64": "06s2p81grqrxl3p9ksy9q7s3s42ijmcw316nb51f7zx4ijk5hzya",
|
||||
"deps": {
|
||||
"gn": {
|
||||
"version": "2022-01-21",
|
||||
@ -32,9 +32,9 @@
|
||||
}
|
||||
},
|
||||
"dev": {
|
||||
"version": "101.0.4919.0",
|
||||
"sha256": "01dp3pkpf2m6r6vfyqgcg99xcii0qi3qm0g69r3nnj2hrs7ziqv2",
|
||||
"sha256bin64": "1x7bfcnhrbakcbdyp1sc79jx6qysnnyj1by6qnl7gyffh8xyb95g",
|
||||
"version": "101.0.4929.5",
|
||||
"sha256": "0330vs0np23x390lfnc5gzmbnkdak590rzqpa7abpfx1gzj1rd3s",
|
||||
"sha256bin64": "0670z86sz2wxpfxda32cirara7yg87g67cymh8ik3w99g5q7cb1d",
|
||||
"deps": {
|
||||
"gn": {
|
||||
"version": "2022-03-01",
|
||||
|
@ -7,7 +7,7 @@ WORKDIR=$(mktemp -d)
|
||||
trap "rm -rf ${WORKDIR}" EXIT
|
||||
|
||||
NIXPKGS_ROOT="$(git rev-parse --show-toplevel)"/
|
||||
NIXPKGS_K3S_FOLDER=${NIXPKGS_ROOT}$(dirname "${BASH_SOURCE[0]}")/
|
||||
NIXPKGS_K3S_FOLDER=$(cd $(dirname ${BASH_SOURCE[0]}); pwd -P)/
|
||||
cd ${NIXPKGS_K3S_FOLDER}
|
||||
|
||||
LATEST_TAG_RAWFILE=${WORKDIR}/latest_tag.json
|
||||
|
@ -5,14 +5,14 @@
|
||||
|
||||
python3Packages.buildPythonApplication rec {
|
||||
pname = "flexget";
|
||||
version = "3.3.2";
|
||||
version = "3.3.3";
|
||||
|
||||
# Fetch from GitHub in order to use `requirements.in`
|
||||
src = fetchFromGitHub {
|
||||
owner = "flexget";
|
||||
repo = "flexget";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-Z2JYFnE9g2bWaR+Ghxg3zJUD0Ja8/od52jkOVWEqeVE=";
|
||||
hash = "sha256-a76x4Klad3lct2M9RxSroUYKmEX7lPqDN+dFvfjavo8=";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
|
@ -147,7 +147,7 @@ in stdenv.mkDerivation rec {
|
||||
homepage = "https://signal.org/";
|
||||
changelog = "https://github.com/signalapp/Signal-Desktop/releases/tag/v${version}";
|
||||
license = lib.licenses.agpl3Only;
|
||||
maintainers = with lib.maintainers; [ ixmatus primeos equirosa ];
|
||||
maintainers = with lib.maintainers; [ mic92 equirosa ];
|
||||
platforms = [ "x86_64-linux" ];
|
||||
};
|
||||
}
|
||||
|
@ -5,18 +5,18 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "kirc";
|
||||
version = "0.2.9";
|
||||
version = "0.3.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "mcpcpc";
|
||||
repo = pname;
|
||||
rev = version;
|
||||
hash = "sha256-KRCVjz59SHjk86VgfGxYKk/Ti3o77dV7fdRu9mB3FSo=";
|
||||
hash = "sha256-bLBrkbW/Iv1v9z5NOiMAA/dH5/9FlqusRV5rSqjdlPw=";
|
||||
};
|
||||
|
||||
dontConfigure = true;
|
||||
|
||||
makeFlags = [ "PREFIX=${placeholder "out"}" ];
|
||||
installFlags = [ "PREFIX=$(out)" ];
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "http://kirc.io/";
|
||||
|
@ -7,11 +7,11 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "gnunet";
|
||||
version = "0.15.3";
|
||||
version = "0.16.0";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://gnu/gnunet/${pname}-${version}.tar.gz";
|
||||
sha256 = "sha256-1iZpqPQeB46qIgznejL08/gB4wmTV66McFSY/nOITsU=";
|
||||
sha256 = "sha256-0y2m8T/xzYZwUlcZ6g956fdtLef2Bphg4Kd/xpo2AGg=";
|
||||
};
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
@ -1,6 +1,6 @@
|
||||
{ lib, stdenv, fetchFromGitLab, cmake, ninja, pkg-config, wrapGAppsHook
|
||||
, glib, gtk3, gettext, libxkbfile, libX11
|
||||
, freerdp, libssh, libgcrypt, gnutls
|
||||
, freerdp, libssh, libgcrypt, gnutls, vte
|
||||
, pcre2, libdbusmenu-gtk3, libappindicator-gtk3
|
||||
, libvncserver, libpthreadstubs, libXdmcp, libxkbcommon
|
||||
, libsecret, libsoup, spice-protocol, spice-gtk, libepoxy, at-spi2-core
|
||||
@ -8,6 +8,7 @@
|
||||
# The themes here are soft dependencies; only icons are missing without them.
|
||||
, gnome
|
||||
, withLibsecret ? true
|
||||
, withVte ? true
|
||||
}:
|
||||
|
||||
with lib;
|
||||
@ -33,10 +34,11 @@ stdenv.mkDerivation rec {
|
||||
libsoup spice-protocol spice-gtk libepoxy at-spi2-core
|
||||
openssl gnome.adwaita-icon-theme json-glib libsodium webkitgtk
|
||||
harfbuzz
|
||||
] ++ optionals withLibsecret [ libsecret ];
|
||||
] ++ optionals withLibsecret [ libsecret ]
|
||||
++ optionals withVte [ vte ];
|
||||
|
||||
cmakeFlags = [
|
||||
"-DWITH_VTE=OFF"
|
||||
"-DWITH_VTE=${if withVte then "ON" else "OFF"}"
|
||||
"-DWITH_TELEPATHY=OFF"
|
||||
"-DWITH_AVAHI=OFF"
|
||||
"-DWITH_LIBSECRET=${if withLibsecret then "ON" else "OFF"}"
|
||||
|
@ -3,7 +3,6 @@
|
||||
, autoconf
|
||||
, automake
|
||||
, fetchFromGitHub
|
||||
, fetchpatch
|
||||
, libpcap
|
||||
, ncurses
|
||||
, openssl
|
||||
@ -12,25 +11,15 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "sngrep";
|
||||
version = "1.4.9";
|
||||
version = "1.4.10";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "irontec";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-92wPRDFSoIOYFv3XKdsuYH8j3D8kXyg++q6VpIIMGDg=";
|
||||
sha256 = "sha256-P618QLk85W0oPisAGiRfpCgHCddKutUkGjwdfgsV4Es=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
# Pull fix pending upstream inclusion for ncurses-6.3 support:
|
||||
# https://github.com/irontec/sngrep/pull/382
|
||||
(fetchpatch {
|
||||
name = "ncurses-6.3.patch";
|
||||
url = "https://github.com/irontec/sngrep/commit/d09e1c323dbd7fc899e8985899baec568f045601.patch";
|
||||
sha256 = "sha256-nY5i3WQh/oKboEAh4wvxF5Imf2BHYEKdFj+WF1M3SSA=";
|
||||
})
|
||||
];
|
||||
|
||||
nativeBuildInputs = [
|
||||
autoconf
|
||||
automake
|
||||
|
34
pkgs/applications/science/electronics/gaw/default.nix
Normal file
34
pkgs/applications/science/electronics/gaw/default.nix
Normal file
@ -0,0 +1,34 @@
|
||||
{ stdenv
|
||||
, fetchurl
|
||||
, lib
|
||||
, gtk3
|
||||
, pkg-config
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "gaw";
|
||||
version = "20200922";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://download.tuxfamily.org/gaw/download/gaw3-${version}.tar.gz";
|
||||
sha256 = "0qmap11v470a1yj4ypfvdq6wkfni77ijqpknka8b4fndi62sl4wa";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ pkg-config ];
|
||||
|
||||
buildInputs = [ gtk3 ];
|
||||
|
||||
meta = with lib; {
|
||||
description = "Gtk Analog Wave viewer";
|
||||
longDescription = ''
|
||||
Gaw is a software tool for displaying analog waveforms from
|
||||
sampled datas, for example from the output of simulators or
|
||||
input from sound cards. Data can be imported to gaw using files,
|
||||
direct tcp/ip connection or directly from the sound card.
|
||||
'';
|
||||
homepage = "http://gaw.tuxfamily.org";
|
||||
license = licenses.gpl2Plus;
|
||||
maintainers = with maintainers; [ fbeffa ];
|
||||
platforms = platforms.all;
|
||||
};
|
||||
}
|
46
pkgs/applications/science/electronics/xschem/default.nix
Normal file
46
pkgs/applications/science/electronics/xschem/default.nix
Normal file
@ -0,0 +1,46 @@
|
||||
{ stdenv
|
||||
, fetchFromGitHub
|
||||
, lib
|
||||
, bison
|
||||
, cairo
|
||||
, flex
|
||||
, libX11
|
||||
, libXpm
|
||||
, pkg-config
|
||||
, tcl
|
||||
, tk
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "xschem";
|
||||
version = "3.0.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "StefanSchippers";
|
||||
repo = "xschem";
|
||||
rev = version;
|
||||
sha256 = "sha256-C57jo8tAbiqQAgf4Xp2lpFGOr6F1knPpFcYxPiqSM4k=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ bison flex pkg-config ];
|
||||
|
||||
buildInputs = [ cairo libX11 libXpm tcl tk ];
|
||||
|
||||
hardeningDisable = [ "format" ];
|
||||
|
||||
meta = with lib; {
|
||||
description = "Schematic capture and netlisting EDA tool";
|
||||
longDescription = ''
|
||||
Xschem is a schematic capture program, it allows creation of
|
||||
hierarchical representation of circuits with a top down approach.
|
||||
By focusing on interfaces, hierarchy and instance properties a
|
||||
complex system can be described in terms of simpler building
|
||||
blocks. A VHDL or Verilog or Spice netlist can be generated from
|
||||
the drawn schematic, allowing the simulation of the circuit.
|
||||
'';
|
||||
homepage = "https://xschem.sourceforge.io/stefan/";
|
||||
license = licenses.gpl2Plus;
|
||||
maintainers = with maintainers; [ fbeffa ];
|
||||
platforms = platforms.all;
|
||||
};
|
||||
}
|
@ -2,7 +2,7 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "lean";
|
||||
version = "3.39.2";
|
||||
version = "3.41.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "leanprover-community";
|
||||
@ -11,8 +11,8 @@ stdenv.mkDerivation rec {
|
||||
# from. this is then used to check whether an olean file should be
|
||||
# rebuilt. don't use a tag as rev because this will get replaced into
|
||||
# src/githash.h.in in preConfigure.
|
||||
rev = "402f41cdedbd46a368fb7807bebe83550d887631";
|
||||
sha256 = "0jddakr07ixspw19xblpj1882vxxaljg3fflhn4myvigwzkav334";
|
||||
rev = "154ac72f4ff674bc4486ac611f926a3d6b999f9f";
|
||||
sha256 = "0mpxlfjq460x1vi3v6qzgjv74asg0qlhykd51pj347795x5b1hf1";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ cmake ];
|
||||
|
@ -6,13 +6,13 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "opensmt";
|
||||
version = "2.2.0";
|
||||
version = "2.3.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "usi-verification-and-security";
|
||||
repo = "opensmt";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-6VkBGDzqG3mplpvFh5DIR0I1I2/J0Pi7xYk/yVn04Kg=";
|
||||
sha256 = "sha256-5Gw9+J+3LHNUNbcHxsQR/ivWndL2P7yBt/Q35fBMg58=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ cmake bison flex ];
|
||||
|
@ -6,13 +6,13 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "roxterm";
|
||||
version = "3.11.1";
|
||||
version = "3.12.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "realh";
|
||||
repo = "roxterm";
|
||||
rev = version;
|
||||
sha256 = "1n7588bl83sp51jwjq97f526c7fkh0kq90idw3nayb4zmi530irx";
|
||||
sha256 = "sha256-jVcf/nrEq8dM8rw40ZhXGJjt3DQLroCePtIAdAsVIfs=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ cmake pkg-config wrapGAppsHook libxslt ];
|
||||
|
@ -40,7 +40,7 @@ buildPythonApplication rec {
|
||||
owner = "commitizen-tools";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-ZFKUG8dE1hpWPGitdQlYeBSzWn3LPR7VGWsuq1Le5OQ=";
|
||||
sha256 = "sha256-7S676bpSrlAqpbgDj9nAo0WjeitbbHoYc693MJm35Js=";
|
||||
deepClone = true;
|
||||
};
|
||||
|
||||
|
@ -21,11 +21,11 @@ let
|
||||
|
||||
self = python3Packages.buildPythonApplication rec {
|
||||
pname = "mercurial${lib.optionalString fullBuild "-full"}";
|
||||
version = "6.0.3";
|
||||
version = "6.1";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://mercurial-scm.org/release/mercurial-${version}.tar.gz";
|
||||
sha256 = "sha256-Z/E2R6RlF6K1Z83Lc8mHIdddNqBDLeuxUCK3f5wTgzM=";
|
||||
sha256 = "sha256-hvmGReRWWpJWmR3N4it3uOfSLKb7tgwfTNvYRpo4zB8=";
|
||||
};
|
||||
|
||||
format = "other";
|
||||
@ -35,7 +35,7 @@ let
|
||||
cargoDeps = if rustSupport then rustPlatform.fetchCargoTarball {
|
||||
inherit src;
|
||||
name = "mercurial-${version}";
|
||||
sha256 = "sha256-i4WROxezeqLX4hTdcPrqsf6dBqsNZz6fFAPzItYuklE=";
|
||||
sha256 = "sha256-+Y91gEC8vmyutNpVFAAL4MSg4KnpFbhH12CIuMRx0Mc=";
|
||||
sourceRoot = "mercurial-${version}/rust";
|
||||
} else null;
|
||||
cargoRoot = if rustSupport then "rust" else null;
|
||||
|
@ -7,11 +7,11 @@
|
||||
|
||||
python3Packages.buildPythonApplication rec {
|
||||
pname = "tortoisehg";
|
||||
version = "6.0";
|
||||
version = "6.1";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://www.mercurial-scm.org/release/tortoisehg/targz/tortoisehg-${version}.tar.gz";
|
||||
sha256 = "sha256-25uQ2llF/+wqdGpun/nzlvAf286OIRmlZUISZ0szH6Y=";
|
||||
sha256 = "sha256-UG13BlFY9DcsCPWaBiYa6r2oA3ieJtTYfXknDoKNkYI=";
|
||||
};
|
||||
|
||||
# Extension point for when thg's mercurial is lagging behind mainline.
|
||||
|
57
pkgs/applications/video/epgstation/client/package.json
Normal file
57
pkgs/applications/video/epgstation/client/package.json
Normal file
@ -0,0 +1,57 @@
|
||||
{
|
||||
"name": "epgstation-client",
|
||||
"version": "2.6.20",
|
||||
"private": true,
|
||||
"scripts": {
|
||||
"build": "vue-cli-service build",
|
||||
"lint": "vue-cli-service lint",
|
||||
"watch": "vue-cli-service build --watch --mode development"
|
||||
},
|
||||
"dependencies": {
|
||||
"@mdi/font": "6.5.95",
|
||||
"aribb24.js": "1.8.8",
|
||||
"axios": "0.24.0",
|
||||
"eventemitter2": "6.4.5",
|
||||
"hls.js": "1.1.2",
|
||||
"inversify": "6.0.1",
|
||||
"json-stable-stringify": "1.0.1",
|
||||
"lodash": "4.17.21",
|
||||
"material-design-icons-iconfont": "6.1.1",
|
||||
"mpegts.js": "1.6.10",
|
||||
"reflect-metadata": "0.1.13",
|
||||
"resize-observer-polyfill": "1.5.1",
|
||||
"roboto-fontface": "*",
|
||||
"smoothscroll-polyfill": "0.4.4",
|
||||
"socket.io-client": "4.3.2",
|
||||
"typeface-roboto": "1.1.13",
|
||||
"vue": "2.6.14",
|
||||
"vue-class-component": "7.2.6",
|
||||
"vue-property-decorator": "9.1.2",
|
||||
"vue-router": "3.5.3",
|
||||
"vuetify": "2.5.10",
|
||||
"vuetify-datetime-picker": "2.1.1",
|
||||
"@types/hls.js": "0.13.3",
|
||||
"@types/json-stable-stringify": "1.0.33",
|
||||
"@types/lodash": "4.14.178",
|
||||
"@types/smoothscroll-polyfill": "0.3.1",
|
||||
"@types/socket.io-client": "1.4.36",
|
||||
"@typescript-eslint/eslint-plugin": "4.33.0",
|
||||
"@typescript-eslint/parser": "4.33.0",
|
||||
"@vue/cli-plugin-eslint": "4.5.12",
|
||||
"@vue/cli-plugin-typescript": "4.5.13",
|
||||
"@vue/cli-plugin-vuex": "4.5.13",
|
||||
"@vue/cli-service": "4.5.13",
|
||||
"@vue/eslint-config-prettier": "6.0.0",
|
||||
"@vue/eslint-config-typescript": "7.0.0",
|
||||
"eslint": "7.32.0",
|
||||
"eslint-plugin-prettier": "3.4.1",
|
||||
"eslint-plugin-vue": "7.20.0",
|
||||
"prettier": "2.4.1",
|
||||
"sass": "1.32.12",
|
||||
"sass-loader": "10.2.0",
|
||||
"typescript": "4.4.4",
|
||||
"vue-cli-plugin-vuetify": "2.4.3",
|
||||
"vue-template-compiler": "2.6.14",
|
||||
"vuetify-loader": "1.7.3"
|
||||
}
|
||||
}
|
@ -10,17 +10,18 @@
|
||||
, nodePackages
|
||||
, gzip
|
||||
, jq
|
||||
, yq
|
||||
}:
|
||||
|
||||
let
|
||||
# NOTE: use updateScript to bump the package version
|
||||
pname = "EPGStation";
|
||||
version = "1.7.5";
|
||||
version = "2.6.20";
|
||||
src = fetchFromGitHub {
|
||||
owner = "l3tnun";
|
||||
repo = "EPGStation";
|
||||
rev = "v${version}";
|
||||
sha256 = "06yaf5yb5rp3q0kdhw33df7px7vyfby885ckb6bdzw3wnams5d8m";
|
||||
sha256 = "K1cAvmqWEfS6EY4MKAtjXb388XLYHtouxNM70PWgFig=";
|
||||
};
|
||||
|
||||
workaround-opencollective-buildfailures = stdenv.mkDerivation {
|
||||
@ -35,19 +36,44 @@ let
|
||||
'';
|
||||
};
|
||||
|
||||
pkg = nodePackages.epgstation.override (drv: {
|
||||
client = nodePackages.epgstation-client.override (drv: {
|
||||
# FIXME: remove this option if possible
|
||||
#
|
||||
# Unsetting this option resulted NPM attempting to re-download packages.
|
||||
dontNpmInstall = true;
|
||||
|
||||
meta = drv.meta // {
|
||||
inherit (nodejs.meta) platforms;
|
||||
};
|
||||
});
|
||||
|
||||
server = nodePackages.epgstation.override (drv: {
|
||||
inherit src;
|
||||
|
||||
bypassCache = false;
|
||||
|
||||
# This is set to false to keep devDependencies at build time. Build time
|
||||
# dependencies are pruned afterwards.
|
||||
production = false;
|
||||
|
||||
buildInputs = [ bash ];
|
||||
nativeBuildInputs = [
|
||||
nodejs
|
||||
workaround-opencollective-buildfailures
|
||||
makeWrapper
|
||||
nodePackages.node-pre-gyp
|
||||
];
|
||||
] ++ (with nodePackages; [
|
||||
node-pre-gyp
|
||||
node-gyp-build
|
||||
]);
|
||||
|
||||
preRebuild = ''
|
||||
# Fix for not being able to connect to mysql using domain sockets.
|
||||
patch -p1 ${./use-mysql-over-domain-socket.patch}
|
||||
patch -p1 < ${./use-mysql-over-domain-socket.patch}
|
||||
|
||||
# Workaround for https://github.com/svanderburg/node2nix/issues/275
|
||||
sed -i -e "s|#!/usr/bin/env node|#! ${nodejs}/bin/node|" node_modules/node-gyp-build/bin.js
|
||||
|
||||
find . -name package-lock.json -delete
|
||||
'';
|
||||
|
||||
postInstall = let
|
||||
@ -56,12 +82,19 @@ let
|
||||
''
|
||||
mkdir -p $out/{bin,libexec,share/doc/epgstation,share/man/man1}
|
||||
|
||||
pushd $out/lib/node_modules/EPGStation
|
||||
pushd $out/lib/node_modules/epgstation
|
||||
|
||||
cp -r ${client}/lib/node_modules/epgstation-client/node_modules client/node_modules
|
||||
chmod -R u+w client/node_modules
|
||||
|
||||
npm run build
|
||||
npm prune --production
|
||||
|
||||
mv config/{enc.sh,enc.js} $out/libexec
|
||||
npm prune --production
|
||||
pushd client
|
||||
npm prune --production
|
||||
popd
|
||||
|
||||
mv config/enc.js.template $out/libexec/enc.js
|
||||
mv LICENSE Readme.md $out/share/doc/epgstation
|
||||
mv doc/* $out/share/doc/epgstation
|
||||
sed 's/@DESCRIPTION@/${drv.meta.description}/g' ${./epgstation.1} \
|
||||
@ -82,8 +115,9 @@ let
|
||||
ln -sfT /var/lib/epgstation/thumbnail thumbnail
|
||||
|
||||
makeWrapper ${nodejs}/bin/npm $out/bin/epgstation \
|
||||
--run "cd $out/lib/node_modules/EPGStation" \
|
||||
--prefix PATH : ${lib.makeBinPath runtimeDeps}
|
||||
--run "cd $out/lib/node_modules/epgstation" \
|
||||
--prefix PATH : ${lib.makeBinPath runtimeDeps} \
|
||||
--set APP_ROOT_PATH "$out/lib/node_modules/epgstation"
|
||||
|
||||
popd
|
||||
'';
|
||||
@ -99,22 +133,25 @@ let
|
||||
common-updater-scripts
|
||||
genericUpdater
|
||||
writers
|
||||
jq;
|
||||
jq
|
||||
yq;
|
||||
};
|
||||
|
||||
# nodePackages.epgstation is a stub package to fetch npm dependencies and
|
||||
# is marked as broken to prevent users from installing it directly. This
|
||||
# technique ensures epgstation can share npm packages with the rest of
|
||||
# nixpkgs while still allowing us to heavily customize the build. It also
|
||||
# allows us to provide devDependencies for the epgstation build process
|
||||
# without doing the same for all the other node packages.
|
||||
meta = drv.meta // { broken = false; };
|
||||
# its meta.platforms is made empty to prevent users from installing it
|
||||
# directly. This technique ensures epgstation can share npm packages with
|
||||
# the rest of nixpkgs while still allowing us to heavily customize the
|
||||
# build. It also allows us to provide devDependencies for the epgstation
|
||||
# build process without doing the same for all the other node packages.
|
||||
meta = drv.meta // {
|
||||
inherit (nodejs.meta) platforms;
|
||||
};
|
||||
});
|
||||
in
|
||||
pkg // {
|
||||
server // {
|
||||
name = "${pname}-${version}";
|
||||
|
||||
meta = with lib; pkg.meta // {
|
||||
meta = with lib; server.meta // {
|
||||
maintainers = with maintainers; [ midchildan ];
|
||||
|
||||
# NOTE: updateScript relies on this being correct
|
||||
|
@ -27,7 +27,7 @@ platforms, run
|
||||
to start EPGStation.
|
||||
.Sh FILES
|
||||
.Bl -tag -width Ds -compact
|
||||
.It Pa /etc/epgstation/config.json
|
||||
.It Pa /etc/epgstation/config.yml
|
||||
.Nm
|
||||
configuration file.
|
||||
.El
|
||||
@ -48,5 +48,9 @@ Restore the EPGstation database.
|
||||
.Pp
|
||||
.Dl $ epgstation run restore /path/to/src
|
||||
.Pp
|
||||
Restore the EPGstation database from the prior v1 release.
|
||||
.Pp
|
||||
.Dl $ epgstation run v1migrate /path/to/src
|
||||
.Pp
|
||||
.Sh SEE ALSO
|
||||
.Xr npm 1
|
||||
|
@ -1,85 +1,72 @@
|
||||
{
|
||||
"name": "EPGStation",
|
||||
"version": "1.7.5",
|
||||
"name": "epgstation",
|
||||
"version": "2.6.20",
|
||||
"description": "DTV Software in Japan.",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/l3tnun/EPGStation.git"
|
||||
"url": "git+https://github.com/l3tnun/EPGStation-V2.git"
|
||||
},
|
||||
"author": "l3tnun",
|
||||
"license": "MIT",
|
||||
"bugs": {
|
||||
"url": "https://github.com/l3tnun/EPGStation/issues"
|
||||
},
|
||||
"homepage": "https://github.com/l3tnun/EPGStation#readme",
|
||||
"engines": {
|
||||
"node": "^10.x.x < 11 || ^12.14.0 < 13 || ^14.5.0 < 15"
|
||||
"url": "https://github.com/l3tnun/EPGStation-V2/issues"
|
||||
},
|
||||
"homepage": "https://github.com/l3tnun/EPGStation-V2#readme",
|
||||
"dependencies": {
|
||||
"aribts": "^2.1.12",
|
||||
"b24.js": "1.0.3",
|
||||
"basic-auth": "2.0.1",
|
||||
"arib-subtitle-timedmetadater": "4.0.9",
|
||||
"aribts": "2.1.12",
|
||||
"axios": "0.24.0",
|
||||
"body-parser": "1.19.0",
|
||||
"chart.js": "2.9.3",
|
||||
"css-ripple-effect": "1.0.5",
|
||||
"diskusage": "1.1.3",
|
||||
"cors": "2.8.5",
|
||||
"diskusage-ng": "1.0.2",
|
||||
"express": "4.17.1",
|
||||
"express-openapi": "7.0.1",
|
||||
"fs-extra": "9.0.1",
|
||||
"hls-b24.js": "0.12.3",
|
||||
"js-yaml": "3.14.0",
|
||||
"lodash": "4.17.20",
|
||||
"express-openapi": "9.3.0",
|
||||
"file-type": "16.5.3",
|
||||
"inversify": "5.1.1",
|
||||
"js-yaml": "4.1.0",
|
||||
"lodash": "4.17.21",
|
||||
"log4js": "6.3.0",
|
||||
"material-design-icons": "3.0.1",
|
||||
"material-design-lite": "1.3.0",
|
||||
"minimist": "1.2.5",
|
||||
"mirakurun": "3.3.1",
|
||||
"mithril": "2.0.4",
|
||||
"mirakurun": "3.9.0-beta.26",
|
||||
"mkdirp": "1.0.4",
|
||||
"multer": "1.4.2",
|
||||
"multer": "1.4.3",
|
||||
"mysql": "2.18.1",
|
||||
"openapi-types": "7.0.1",
|
||||
"pg": "8.3.3",
|
||||
"request": "2.88.2",
|
||||
"socket.io": "2.3.0",
|
||||
"socket.io-client": "2.3.0",
|
||||
"sqlite3": "5.0.0",
|
||||
"swagger-ui-dist": "3.34.0",
|
||||
"openapi-types": "9.3.0",
|
||||
"reflect-metadata": "0.1.13",
|
||||
"socket.io": "4.3.1",
|
||||
"source-map-support": "0.5.20",
|
||||
"sqlite3": "5.0.2",
|
||||
"swagger-ui-dist": "3.52.5",
|
||||
"typeorm": "0.2.38",
|
||||
"url-join": "4.0.1",
|
||||
"@types/basic-auth": "1.1.3",
|
||||
"@types/body-parser": "1.19.0",
|
||||
"@types/chart.js": "2.9.24",
|
||||
"@types/express": "4.17.8",
|
||||
"@types/hls.js": "0.13.1",
|
||||
"@types/js-yaml": "3.12.5",
|
||||
"@types/lodash": "4.14.161",
|
||||
"@types/material-design-lite": "1.1.16",
|
||||
"@types/minimist": "1.2.0",
|
||||
"@types/mithril": "2.0.3",
|
||||
"@types/mkdirp": "1.0.1",
|
||||
"@types/multer": "1.4.4",
|
||||
"@types/mysql": "2.15.15",
|
||||
"@types/node": "14.11.1",
|
||||
"@types/pg": "7.14.5",
|
||||
"@types/request": "2.48.5",
|
||||
"@types/socket.io": "2.1.11",
|
||||
"@types/socket.io-client": "1.4.33",
|
||||
"@types/sqlite3": "3.1.6",
|
||||
"@types/url-join": "4.0.0",
|
||||
"del": "5.1.0",
|
||||
"@types/body-parser": "1.19.1",
|
||||
"@types/express": "4.17.13",
|
||||
"@types/file-type": "10.9.1",
|
||||
"@types/js-yaml": "4.0.4",
|
||||
"@types/lodash": "4.14.176",
|
||||
"@types/minimist": "1.2.2",
|
||||
"@types/mkdirp": "1.0.2",
|
||||
"@types/mongodb": "4.0.6",
|
||||
"@types/multer": "1.4.7",
|
||||
"@types/node": "16.11.6",
|
||||
"@types/socket.io": "3.0.1",
|
||||
"@types/source-map-support": "0.5.4",
|
||||
"@types/sqlite3": "3.1.7",
|
||||
"@types/url-join": "4.0.1",
|
||||
"@typescript-eslint/eslint-plugin": "4.33.0",
|
||||
"@typescript-eslint/parser": "4.33.0",
|
||||
"del": "6.0.0",
|
||||
"eslint": "7.32.0",
|
||||
"eslint-config-prettier": "8.3.0",
|
||||
"eslint-plugin-prettier": "3.4.1",
|
||||
"gulp": "4.0.2",
|
||||
"gulp-clean-css": "4.3.0",
|
||||
"gulp-concat": "2.6.1",
|
||||
"gulp-dart-sass": "1.0.2",
|
||||
"gulp-eslint": "6.0.0",
|
||||
"gulp-plumber": "1.2.1",
|
||||
"gulp-sourcemaps": "2.6.5",
|
||||
"gulp-tslint": "8.1.4",
|
||||
"gulp-sourcemaps": "3.0.0",
|
||||
"gulp-typescript": "5.0.1",
|
||||
"terser-webpack-plugin": "4.2.2",
|
||||
"ts-loader": "8.0.4",
|
||||
"tslint": "6.1.3",
|
||||
"typescript": "4.0.3",
|
||||
"webpack": "4.44.2",
|
||||
"webpack-stream": "6.1.0"
|
||||
"prettier": "2.4.1",
|
||||
"ts-loader": "9.2.6",
|
||||
"ts-node": "10.4.0",
|
||||
"typescript": "4.4.4"
|
||||
}
|
||||
}
|
||||
|
@ -6,6 +6,7 @@
|
||||
, genericUpdater
|
||||
, writers
|
||||
, jq
|
||||
, yq
|
||||
}:
|
||||
|
||||
let
|
||||
@ -40,6 +41,11 @@ in writers.writeBash "update-epgstation" ''
|
||||
} | del(.devDependencies, .main, .scripts)' \
|
||||
"$SRC/package.json" \
|
||||
> package.json
|
||||
${jq}/bin/jq '. + {
|
||||
dependencies: (.dependencies + .devDependencies),
|
||||
} | del(.devDependencies, .main, .scripts)' \
|
||||
"$SRC/client/package.json" \
|
||||
> client/package.json
|
||||
|
||||
# Regenerate node packages to update the pre-overriden epgstation derivation.
|
||||
# This must come *after* package.json has been regenerated.
|
||||
@ -49,18 +55,11 @@ in writers.writeBash "update-epgstation" ''
|
||||
|
||||
# Generate default streaming settings for the nixos module.
|
||||
pushd ../../../../nixos/modules/services/video/epgstation
|
||||
${jq}/bin/jq '
|
||||
{ liveHLS
|
||||
, liveMP4
|
||||
, liveWebM
|
||||
, mpegTsStreaming
|
||||
, mpegTsViewer
|
||||
, recordedDownloader
|
||||
, recordedStreaming
|
||||
, recordedHLS
|
||||
, recordedViewer
|
||||
}' \
|
||||
"$SRC/config/config.sample.json" \
|
||||
${yq}/bin/yq -j '{ urlscheme , stream }' \
|
||||
"$SRC/config/config.yml.template" \
|
||||
> streaming.json
|
||||
|
||||
# Fix generated output for EditorConfig compliance
|
||||
printf '\n' >> streaming.json # rule: insert_final_newline
|
||||
popd
|
||||
''
|
||||
|
@ -1,17 +1,46 @@
|
||||
diff --git a/src/server/ConfigInterface.ts b/src/server/ConfigInterface.ts
|
||||
index d23badd..1dd2b98 100644
|
||||
--- a/src/server/ConfigInterface.ts
|
||||
+++ b/src/server/ConfigInterface.ts
|
||||
@@ -11,9 +11,10 @@ interface ConfigInterface {
|
||||
dbPath: string;
|
||||
dbInfoPath: string;
|
||||
mysql: {
|
||||
diff --git a/ormconfig.js b/ormconfig.js
|
||||
index 5591853b..838c06cb 100644
|
||||
--- a/ormconfig.js
|
||||
+++ b/ormconfig.js
|
||||
@@ -38,8 +38,6 @@ switch (config.dbtype) {
|
||||
|
||||
case 'mysql':
|
||||
ormConfig.type = 'mysql';
|
||||
- ormConfig.host = config.mysql.host;
|
||||
- ormConfig.port = config.mysql.port;
|
||||
ormConfig.username = config.mysql.user;
|
||||
ormConfig.password = config.mysql.password;
|
||||
ormConfig.database = config.mysql.database;
|
||||
@@ -49,6 +47,12 @@ switch (config.dbtype) {
|
||||
} else {
|
||||
ormConfig.charset = config.mysql.charset;
|
||||
}
|
||||
+ if (config.mysql.socketPath) {
|
||||
+ ormConfig.socketPath = config.mysql.socketPath;
|
||||
+ } else {
|
||||
+ ormConfig.host = config.mysql.host;
|
||||
+ ormConfig.port = config.mysql.port;
|
||||
+ }
|
||||
break;
|
||||
|
||||
case 'postgres':
|
||||
diff --git a/src/model/IConfigFile.ts b/src/model/IConfigFile.ts
|
||||
index 6a502e83..ba84a423 100644
|
||||
--- a/src/model/IConfigFile.ts
|
||||
+++ b/src/model/IConfigFile.ts
|
||||
@@ -61,12 +61,13 @@ export default interface IConfigFile {
|
||||
regexp?: boolean;
|
||||
};
|
||||
mysql?: {
|
||||
- host: string;
|
||||
+ host?: string;
|
||||
+ socketPath?: string;
|
||||
user: string;
|
||||
- password: string;
|
||||
+ password?: string;
|
||||
- port: number;
|
||||
+ port?: number;
|
||||
password: string;
|
||||
database: string;
|
||||
connectTimeout: number;
|
||||
connectionLimit: number;
|
||||
charset?: string;
|
||||
+ socketPath?: string;
|
||||
};
|
||||
postgres?: {
|
||||
host: string;
|
||||
|
@ -2,13 +2,13 @@
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "docker-buildx";
|
||||
version = "0.7.1";
|
||||
version = "0.8.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "docker";
|
||||
repo = "buildx";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-5EV0Rw1+ufxQ1wmQ0EJXQ7HVtXVbB4do/tet0QFRi08=";
|
||||
sha256 = "sha256-PSqVe4m2na6BjNxIKKZG1ja6zEzwI2AwgJlaMfaW2EM=";
|
||||
};
|
||||
|
||||
vendorSha256 = null;
|
||||
|
@ -8,16 +8,16 @@
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "lima";
|
||||
version = "0.8.3";
|
||||
version = "0.9.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "lima-vm";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-hzoc5zbdnHHTY04aGn+77lHvPh+KNOPoZmW19YIZHv8=";
|
||||
sha256 = "sha256-jbWz4HVYR3OEze2fFgG6Tg4p50IL0NStmaa8+GUPkNw=";
|
||||
};
|
||||
|
||||
vendorSha256 = "sha256-eJnwXXYWMaIfM8SW4MtmG4wsPA/9sx4j2AkOd6GpnsY=";
|
||||
vendorSha256 = "sha256-RX8HfeDVvLUX4Ez2ma04gTl+8+lM7WGNSpmFNnf+5Xs=";
|
||||
|
||||
nativeBuildInputs = [ makeWrapper installShellFiles ];
|
||||
|
||||
|
@ -1,22 +1,21 @@
|
||||
{ lib, fetchurl, python3Packages, intltool, file
|
||||
, wrapGAppsHook, gtk-vnc, vte, avahi, dconf
|
||||
, gobject-introspection, libvirt-glib, system-libvirt
|
||||
, gsettings-desktop-schemas, libosinfo, gnome
|
||||
, gtksourceview4, docutils
|
||||
{ lib, fetchFromGitHub, python3, intltool, file, wrapGAppsHook, gtk-vnc
|
||||
, vte, avahi, dconf, gobject-introspection, libvirt-glib, system-libvirt
|
||||
, gsettings-desktop-schemas, libosinfo, gnome, gtksourceview4, docutils, cpio
|
||||
, e2fsprogs, findutils, gzip, cdrtools
|
||||
, spiceSupport ? true, spice-gtk ? null
|
||||
, cpio, e2fsprogs, findutils, gzip
|
||||
, cdrtools
|
||||
}:
|
||||
|
||||
with lib;
|
||||
|
||||
python3Packages.buildPythonApplication rec {
|
||||
python3.pkgs.buildPythonApplication rec {
|
||||
pname = "virt-manager";
|
||||
version = "3.2.0";
|
||||
version = "4.0.0";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://releases.pagure.org/virt-manager/${pname}-${version}.tar.gz";
|
||||
sha256 = "11kvpzcmyir91qz0dsnk7748jbb4wr8mrc744w117qc91pcy6vrb";
|
||||
src = fetchFromGitHub {
|
||||
owner = pname;
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
hash = "sha256-3ycXNBuf91kI2cJCRw0ZzaWkaIVwb/lmkOKeHNwpH9Y=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
@ -32,7 +31,7 @@ python3Packages.buildPythonApplication rec {
|
||||
gobject-introspection # Temporary fix, see https://github.com/NixOS/nixpkgs/issues/56943
|
||||
] ++ optional spiceSupport spice-gtk;
|
||||
|
||||
propagatedBuildInputs = with python3Packages; [
|
||||
propagatedBuildInputs = with python3.pkgs; [
|
||||
pygobject3 ipaddress libvirt libxml2 requests cdrtools
|
||||
];
|
||||
|
||||
@ -42,14 +41,16 @@ python3Packages.buildPythonApplication rec {
|
||||
'';
|
||||
|
||||
postConfigure = ''
|
||||
${python3Packages.python.interpreter} setup.py configure --prefix=$out
|
||||
${python3.interpreter} setup.py configure --prefix=$out
|
||||
'';
|
||||
|
||||
setupPyGlobalFlags = [ "--no-update-icon-cache" ];
|
||||
setupPyGlobalFlags = [ "--no-update-icon-cache" "--no-compile-schemas" ];
|
||||
|
||||
dontWrapGApps = true;
|
||||
|
||||
preFixup = ''
|
||||
glib-compile-schemas $out/share/gsettings-schemas/${pname}-${version}/glib-2.0/schemas
|
||||
|
||||
gappsWrapperArgs+=(--set PYTHONPATH "$PYTHONPATH")
|
||||
# these are called from virt-install in initrdinject.py
|
||||
gappsWrapperArgs+=(--prefix PATH : "${makeBinPath [ cpio e2fsprogs file findutils gzip ]}")
|
||||
@ -57,14 +58,12 @@ python3Packages.buildPythonApplication rec {
|
||||
makeWrapperArgs+=("''${gappsWrapperArgs[@]}")
|
||||
'';
|
||||
|
||||
checkInputs = with python3Packages; [ cpio cdrtools pytestCheckHook ];
|
||||
checkInputs = with python3.pkgs; [ cpio cdrtools pytestCheckHook ];
|
||||
|
||||
disabledTestPaths = [
|
||||
"tests/test_cli.py"
|
||||
"tests/test_disk.py"
|
||||
"tests/test_checkprops.py"
|
||||
"tests/test_storage.py"
|
||||
]; # Error logs: https://gist.github.com/superherointj/fee040872beaafaaa19b8bf8f3ff0be5
|
||||
"tests/test_misc.py"
|
||||
"tests/test_xmlparse.py"
|
||||
];
|
||||
|
||||
preCheck = ''
|
||||
export HOME=.
|
||||
|
@ -5,12 +5,12 @@
|
||||
, fetchurl
|
||||
, cairo
|
||||
, nixosTests
|
||||
, python3
|
||||
, pkg-config
|
||||
, pngquant
|
||||
, which
|
||||
, imagemagick
|
||||
, zopfli
|
||||
, buildPackages
|
||||
}:
|
||||
|
||||
let
|
||||
@ -130,8 +130,8 @@ in
|
||||
noto-fonts-emoji = let
|
||||
version = "2.034";
|
||||
emojiPythonEnv =
|
||||
python3.withPackages (p: with p; [ fonttools nototools ]);
|
||||
in stdenv.mkDerivation {
|
||||
buildPackages.python3.withPackages (p: with p; [ fonttools nototools ]);
|
||||
in stdenvNoCC.mkDerivation {
|
||||
pname = "noto-fonts-emoji";
|
||||
inherit version;
|
||||
|
||||
@ -142,13 +142,17 @@ in
|
||||
sha256 = "1d6zzk0ii43iqfnjbldwp8sasyx99lbjp1nfgqjla7ixld6yp98l";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
depsBuildBuild = [
|
||||
buildPackages.stdenv.cc
|
||||
pkg-config
|
||||
cairo
|
||||
];
|
||||
|
||||
nativeBuildInputs = [
|
||||
imagemagick
|
||||
zopfli
|
||||
pngquant
|
||||
which
|
||||
pkg-config
|
||||
emojiPythonEnv
|
||||
];
|
||||
|
||||
@ -159,14 +163,6 @@ in
|
||||
# python requirements using python.withPackages
|
||||
sed -i '/ifndef VIRTUAL_ENV/,+2d' Makefile
|
||||
|
||||
# Remove check for missing zopfli, it doesn't
|
||||
# work and we guarantee its presence already.
|
||||
sed -i '/ifdef MISSING_ZOPFLI/,+2d' Makefile
|
||||
sed -i '/ifeq (,$(shell which $(ZOPFLIPNG)))/,+4d' Makefile
|
||||
|
||||
sed -i '/ZOPFLIPNG = zopflipng/d' Makefile
|
||||
echo "ZOPFLIPNG = ${zopfli}/bin/zopflipng" >> Makefile
|
||||
|
||||
# Make the build verbose so it won't get culled by Hydra thinking that
|
||||
# it somehow got stuck doing nothing.
|
||||
sed -i 's;\t@;\t;' Makefile
|
||||
|
@ -6,13 +6,13 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "flat-remix-gtk";
|
||||
version = "20220215";
|
||||
version = "20220310";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "daniruiz";
|
||||
repo = pname;
|
||||
rev = version;
|
||||
sha256 = "sha256-J9PAHQ/MbdDuX16ioQQnzZpIZs/NJVkJjLL4nfaeNkU=";
|
||||
sha256 = "sha256-fKkqMGb1UopjM7hTTury1I3oD5AlHqKP+WLmgAZIQxo=";
|
||||
};
|
||||
|
||||
dontBuild = true;
|
||||
|
@ -27,14 +27,14 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "gnome-todo";
|
||||
version = "unstable-2022-02-01";
|
||||
version = "unstable-2022-03-11";
|
||||
|
||||
src = fetchFromGitLab {
|
||||
domain = "gitlab.gnome.org";
|
||||
owner = "GNOME";
|
||||
repo = "gnome-todo";
|
||||
rev = "2cd071ad35efdef72038730d658f013dd0fc7daa";
|
||||
sha256 = "FMG9ju+LsglAvbBhdgDF+2ZxB633EwnatwCFgW+VOTk=";
|
||||
rev = "07791399742366b4e3a6897430054d91df4594b4";
|
||||
sha256 = "821KgxkkW4T6bdGuttAz9ao/WStM1QEfn4hY/b0d0jI=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
|
@ -1,6 +1,6 @@
|
||||
import ./generic.nix {
|
||||
major_version = "4";
|
||||
minor_version = "12";
|
||||
patch_version = "0";
|
||||
sha256 = "1hxy349jfa2vkfgmxf6pvd9w4z5bmcgsg0fxfdabcghyvjw9vvir";
|
||||
patch_version = "1";
|
||||
sha256 = "1jbjjnmqq6ymsy81x188i256bz4z5jrz1pws8g1qf59c32ganjkf";
|
||||
}
|
||||
|
@ -83,9 +83,9 @@ builder rec {
|
||||
# Explicitly link against libgcc_s, to work around the infamous
|
||||
# "libgcc_s.so.1 must be installed for pthread_cancel to work".
|
||||
|
||||
# don't have "libgcc_s.so.1" on darwin
|
||||
# don't have "libgcc_s.so.1" on clang
|
||||
LDFLAGS = lib.optionalString
|
||||
(!stdenv.isDarwin && !stdenv.hostPlatform.isStatic) "-lgcc_s";
|
||||
(stdenv.cc.isGNU && !stdenv.hostPlatform.isStatic) "-lgcc_s";
|
||||
|
||||
configureFlags = [
|
||||
"--with-libreadline-prefix=${lib.getDev readline}"
|
||||
|
@ -14,6 +14,7 @@
|
||||
, pkg-config
|
||||
, pkgsBuildBuild
|
||||
, readline
|
||||
, writeScript
|
||||
}:
|
||||
|
||||
let
|
||||
@ -24,11 +25,11 @@ let
|
||||
in
|
||||
builder rec {
|
||||
pname = "guile";
|
||||
version = "3.0.7";
|
||||
version = "3.0.8";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://gnu/${pname}/${pname}-${version}.tar.xz";
|
||||
sha256 = "sha256-9X2GxwYgJxv863qb4MgXRKAz8IrcfOuoMsmRerPmkbc=";
|
||||
sha256 = "sha256-2qcGClbygE6bdMjX5/6L7tErQ6qyeJo4WFGD/MF7ihM=";
|
||||
};
|
||||
|
||||
outputs = [ "out" "dev" "info" ];
|
||||
@ -81,9 +82,9 @@ builder rec {
|
||||
# Explicitly link against libgcc_s, to work around the infamous
|
||||
# "libgcc_s.so.1 must be installed for pthread_cancel to work".
|
||||
|
||||
# don't have "libgcc_s.so.1" on darwin
|
||||
# don't have "libgcc_s.so.1" on clang
|
||||
LDFLAGS = lib.optionalString
|
||||
(!stdenv.isDarwin && !stdenv.hostPlatform.isStatic) "-lgcc_s";
|
||||
(stdenv.cc.isGNU && !stdenv.hostPlatform.isStatic) "-lgcc_s";
|
||||
|
||||
configureFlags = [
|
||||
"--with-libreadline-prefix=${lib.getDev readline}"
|
||||
@ -102,7 +103,10 @@ builder rec {
|
||||
]
|
||||
# Disable JIT on Apple Silicon, as it is not yet supported
|
||||
# https://debbugs.gnu.org/cgi/bugreport.cgi?bug=44505";
|
||||
++ lib.optional (stdenv.isDarwin && stdenv.isAarch64) "--enable-jit=no";
|
||||
++ lib.optional (stdenv.isDarwin && stdenv.isAarch64) "--enable-jit=no"
|
||||
# At least on x86_64-darwin '-flto' autodetection is not correct:
|
||||
# https://github.com/NixOS/nixpkgs/pull/160051#issuecomment-1046193028
|
||||
++ lib.optional (stdenv.isDarwin) "--disable-lto";
|
||||
|
||||
postInstall = ''
|
||||
wrapProgram $out/bin/guile-snarf --prefix PATH : "${gawk}/bin"
|
||||
@ -126,6 +130,20 @@ builder rec {
|
||||
|
||||
setupHook = ./setup-hook-3.0.sh;
|
||||
|
||||
passthru = {
|
||||
updateScript = writeScript "update-guile-3" ''
|
||||
#!/usr/bin/env nix-shell
|
||||
#!nix-shell -i bash -p curl pcre common-updater-scripts
|
||||
|
||||
set -eu -o pipefail
|
||||
|
||||
# Expect the text in format of '"https://ftp.gnu.org/gnu/guile/guile-3.0.8.tar.gz"'
|
||||
new_version="$(curl -s https://www.gnu.org/software/guile/download/ |
|
||||
pcregrep -o1 '"https://ftp.gnu.org/gnu/guile/guile-(3[.0-9]+).tar.gz"')"
|
||||
update-source-version ${pname} "$new_version"
|
||||
'';
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://www.gnu.org/software/guile/";
|
||||
description = "Embeddable Scheme implementation";
|
||||
|
@ -268,10 +268,10 @@ in {
|
||||
};
|
||||
|
||||
ruby_3_1 = generic {
|
||||
version = rubyVersion "3" "1" "0" "";
|
||||
version = rubyVersion "3" "1" "1" "";
|
||||
sha256 = {
|
||||
src = "sha256-UKBQTG7ctNYc5rjP292qlXBxlfqw7Ne16SZUsqlBKFQ=";
|
||||
git = "sha256-TcsoWY+zVZeue1/ypV1L0WERp1UVK35WtVtYPYiJh4c=";
|
||||
src = "sha256-/m5Hgt6XRDl43bqLpL440iKqJNw+PwKmqOdwHA7rYZ0=";
|
||||
git = "sha256-76t/tGyK5nz7nvcRdHJTjjckU+Kv+/kbTMiNWJ93jU8=";
|
||||
};
|
||||
};
|
||||
}
|
||||
|
@ -10,6 +10,6 @@
|
||||
"${patchSet}/patches/ruby/3.0/head/railsexpress/01-improve-gc-stats.patch"
|
||||
"${patchSet}/patches/ruby/3.0/head/railsexpress/02-malloc-trim.patch"
|
||||
];
|
||||
"3.1.0" = ops useRailsExpress [ # no patches yet (2021-12-25)
|
||||
"3.1.1" = ops useRailsExpress [ # no patches yet (2021-12-25)
|
||||
];
|
||||
}
|
||||
|
@ -20,11 +20,11 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "spidermonkey";
|
||||
version = "91.6.0";
|
||||
version = "91.7.0";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://mozilla/firefox/releases/${version}esr/source/firefox-${version}esr.source.tar.xz";
|
||||
sha512 = "3dd1929f93cdd087a93fc3597f32d9005c986b59832954e01a8c2472b179c92ad611eaa73d3fc000a08b838a0b70da73ff5ba82d6009160655ba6894cf04520e";
|
||||
sha512 = "925811989d8a91d826ba356bd46ac54be8153288ec0319c28d2bfbe89191e62e107691159dd7ca247253e2a4952eb59a5b9613e3feea3f5351238d4822e26301";
|
||||
};
|
||||
|
||||
outputs = [ "out" "dev" ];
|
||||
|
@ -14,14 +14,14 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "gtk-frdp";
|
||||
version = "unstable-2021-10-01";
|
||||
version = "unstable-2021-10-28";
|
||||
|
||||
src = fetchFromGitLab {
|
||||
domain = "gitlab.gnome.org";
|
||||
owner = "GNOME";
|
||||
repo = pname;
|
||||
rev = "9c15c1202ed66fe20334e33d798cc5ebd39917f0";
|
||||
sha256 = "2YOLpyd26qWQKvneH4ww2DS8h/ZNYDmfbYIjQDvDMko=";
|
||||
rev = "a44d84ec687f41ad37e43697b28a018f65780780";
|
||||
sha256 = "7J4jf3gDiorsc4zs6zwC+j/Zg0oZWKAFAz9vvJJ2CYM=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
@ -6,11 +6,11 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "libhdhomerun";
|
||||
version = "20210624";
|
||||
version = "20220303";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://download.silicondust.com/hdhomerun/libhdhomerun_${version}.tgz";
|
||||
sha256 = "sha256-3q9GO7zD7vpy+XGZ77YhP3sOLI6R8bPSy/UgVqhxXRU=";
|
||||
sha256 = "sha256-HlT/78LUiTkRUB2jHmYrnQY+bBiv4stcZlMyUnelSpc=";
|
||||
};
|
||||
|
||||
patchPhase = lib.optionalString stdenv.isDarwin ''
|
||||
|
@ -127,7 +127,15 @@ let
|
||||
# ../../applications/video/epgstation
|
||||
epgstation = super."epgstation-../../applications/video/epgstation".override (drv: {
|
||||
meta = drv.meta // {
|
||||
broken = true; # not really broken, see the comment above
|
||||
platforms = pkgs.lib.platforms.none;
|
||||
};
|
||||
});
|
||||
|
||||
# NOTE: this is a stub package to fetch npm dependencies for
|
||||
# ../../applications/video/epgstation/client
|
||||
epgstation-client = super."epgstation-client-../../applications/video/epgstation/client".override (drv: {
|
||||
meta = drv.meta // {
|
||||
platforms = pkgs.lib.platforms.none;
|
||||
};
|
||||
});
|
||||
|
||||
@ -270,6 +278,14 @@ let
|
||||
url = "https://github.com/svanderburg/node2nix/commit/e4c951971df6c9f9584c7252971c13b55c369916.patch";
|
||||
sha256 = "0w8fcyr12g2340rn06isv40jkmz2khmak81c95zpkjgipzx7hp7w";
|
||||
})
|
||||
# handle package alias in dependencies
|
||||
# https://github.com/svanderburg/node2nix/pull/240
|
||||
#
|
||||
# TODO: remove after node2nix 1.10.0
|
||||
(fetchpatch {
|
||||
url = "https://github.com/svanderburg/node2nix/commit/644e90c0304038a446ed53efc97e9eb1e2831e71.patch";
|
||||
sha256 = "sha256-sQgVf80H1ouUjzHq+2d9RO4a+o++kh+l+FOTNXfPBH0=";
|
||||
})
|
||||
];
|
||||
};
|
||||
postInstall = ''
|
||||
|
@ -114,6 +114,7 @@
|
||||
, "emoj"
|
||||
, "emojione"
|
||||
, {"epgstation": "../../applications/video/epgstation"}
|
||||
, {"epgstation-client": "../../applications/video/epgstation/client"}
|
||||
, "escape-string-regexp"
|
||||
, "eslint"
|
||||
, "eslint_d"
|
||||
|
7530
pkgs/development/node-packages/node-packages.nix
generated
7530
pkgs/development/node-packages/node-packages.nix
generated
File diff suppressed because it is too large
Load Diff
@ -6,7 +6,7 @@
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "AWSIoTPythonSDK";
|
||||
version = "1.5.0";
|
||||
version = "1.5.1";
|
||||
format = "setuptools";
|
||||
|
||||
disabled = pythonOlder "3.7";
|
||||
@ -15,7 +15,7 @@ buildPythonPackage rec {
|
||||
owner = "aws";
|
||||
repo = "aws-iot-device-sdk-python";
|
||||
rev = "v${version}";
|
||||
sha256 = "0bmvwv471mvlwj2rfz08j9qvzsp4vyjz67cbzkvsy6kmihx3wfqh";
|
||||
sha256 = "sha256-UpfgoCVbweOpWbgaqNebAAkWmhjkZu3txVoTZ/qhl3g=";
|
||||
};
|
||||
|
||||
# Module has no tests
|
||||
|
@ -11,11 +11,11 @@
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "google-cloud-texttospeech";
|
||||
version = "2.10.2";
|
||||
version = "2.11.0";
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "sha256-EykIDxoO8ePp4hLtINTz/RahfS4KU7GhwS4gkMBA32w=";
|
||||
sha256 = "sha256-UJSP3a9G6k1arMpoh4/rWrnR4gYtPW6d6LGwWuk5WGg=";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [ libcst google-api-core proto-plus ];
|
||||
|
@ -7,15 +7,17 @@
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "imap-tools";
|
||||
version = "0.51.1";
|
||||
version = "0.52.0";
|
||||
|
||||
disabled = isPy27;
|
||||
|
||||
format = "setuptools";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "ikvk";
|
||||
repo = "imap_tools";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-ppxQtFK7U006z7qonm3B5gN99CHB9mEX3l0XjrhZQo8=";
|
||||
hash = "sha256-la2+cpTnHZQn/FXtySp+3zDCBTONiLC16Tm+hDiIERc=";
|
||||
};
|
||||
|
||||
checkInputs = [
|
||||
|
35
pkgs/development/python-modules/mat2/bubblewrap-path.patch
Normal file
35
pkgs/development/python-modules/mat2/bubblewrap-path.patch
Normal file
@ -0,0 +1,35 @@
|
||||
diff --git a/libmat2/bubblewrap.py b/libmat2/bubblewrap.py
|
||||
index 970d5dd..5d3c0b7 100644
|
||||
--- a/libmat2/bubblewrap.py
|
||||
+++ b/libmat2/bubblewrap.py
|
||||
@@ -22,11 +22,7 @@ CalledProcessError = subprocess.CalledProcessError
|
||||
|
||||
|
||||
def _get_bwrap_path() -> str:
|
||||
- which_path = shutil.which('bwrap')
|
||||
- if which_path:
|
||||
- return which_path
|
||||
-
|
||||
- raise RuntimeError("Unable to find bwrap") # pragma: no cover
|
||||
+ return '@bwrap@'
|
||||
|
||||
|
||||
def _get_bwrap_args(tempdir: str,
|
||||
@@ -37,16 +33,11 @@ def _get_bwrap_args(tempdir: str,
|
||||
|
||||
# XXX: use --ro-bind-try once all supported platforms
|
||||
# have a bubblewrap recent enough to support it.
|
||||
- ro_bind_dirs = ['/usr', '/lib', '/lib64', '/bin', '/sbin', '/etc/alternatives', cwd]
|
||||
+ ro_bind_dirs = ['/nix/store', cwd]
|
||||
for bind_dir in ro_bind_dirs:
|
||||
if os.path.isdir(bind_dir): # pragma: no cover
|
||||
ro_bind_args.extend(['--ro-bind', bind_dir, bind_dir])
|
||||
|
||||
- ro_bind_files = ['/etc/ld.so.cache']
|
||||
- for bind_file in ro_bind_files:
|
||||
- if os.path.isfile(bind_file): # pragma: no cover
|
||||
- ro_bind_args.extend(['--ro-bind', bind_file, bind_file])
|
||||
-
|
||||
args = ro_bind_args + \
|
||||
['--dev', '/dev',
|
||||
'--proc', '/proc',
|
@ -1,4 +1,5 @@
|
||||
{ lib
|
||||
, stdenv
|
||||
, buildPythonPackage
|
||||
, python
|
||||
, pythonOlder
|
||||
@ -37,7 +38,6 @@ buildPythonPackage rec {
|
||||
# hardcode paths to some binaries
|
||||
(substituteAll ({
|
||||
src = ./paths.patch;
|
||||
bwrap = "${bubblewrap}/bin/bwrap";
|
||||
exiftool = "${exiftool}/bin/exiftool";
|
||||
ffmpeg = "${ffmpeg}/bin/ffmpeg";
|
||||
} // lib.optionalAttrs dolphinIntegration {
|
||||
@ -52,6 +52,11 @@ buildPythonPackage rec {
|
||||
src = ./fix_poppler.patch;
|
||||
poppler_path = "${poppler_gi}/lib/girepository-1.0";
|
||||
})
|
||||
] ++ lib.optionals (stdenv.hostPlatform.isLinux) [
|
||||
(substituteAll {
|
||||
src = ./bubblewrap-path.patch;
|
||||
bwrap = "${bubblewrap}/bin/bwrap";
|
||||
})
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
|
@ -12,41 +12,6 @@ index 41c8de4..11df258 100644
|
||||
+Icon=@mat2svg@
|
||||
+Exec=@kdialog@ --yesno "$( @mat2@ -s %F )" --title "Clean Metadata?" && @mat2@ %U
|
||||
+Exec[de]=@kdialog@ --yesno "$( @mat2@ -s %F )" --title "Metadaten löschen?" && @mat2@ %U
|
||||
diff --git a/libmat2/bubblewrap.py b/libmat2/bubblewrap.py
|
||||
index 970d5dd..5d3c0b7 100644
|
||||
--- a/libmat2/bubblewrap.py
|
||||
+++ b/libmat2/bubblewrap.py
|
||||
@@ -22,11 +22,7 @@ CalledProcessError = subprocess.CalledProcessError
|
||||
|
||||
|
||||
def _get_bwrap_path() -> str:
|
||||
- which_path = shutil.which('bwrap')
|
||||
- if which_path:
|
||||
- return which_path
|
||||
-
|
||||
- raise RuntimeError("Unable to find bwrap") # pragma: no cover
|
||||
+ return '@bwrap@'
|
||||
|
||||
|
||||
def _get_bwrap_args(tempdir: str,
|
||||
@@ -37,16 +33,11 @@ def _get_bwrap_args(tempdir: str,
|
||||
|
||||
# XXX: use --ro-bind-try once all supported platforms
|
||||
# have a bubblewrap recent enough to support it.
|
||||
- ro_bind_dirs = ['/usr', '/lib', '/lib64', '/bin', '/sbin', '/etc/alternatives', cwd]
|
||||
+ ro_bind_dirs = ['/nix/store', cwd]
|
||||
for bind_dir in ro_bind_dirs:
|
||||
if os.path.isdir(bind_dir): # pragma: no cover
|
||||
ro_bind_args.extend(['--ro-bind', bind_dir, bind_dir])
|
||||
|
||||
- ro_bind_files = ['/etc/ld.so.cache']
|
||||
- for bind_file in ro_bind_files:
|
||||
- if os.path.isfile(bind_file): # pragma: no cover
|
||||
- ro_bind_args.extend(['--ro-bind', bind_file, bind_file])
|
||||
-
|
||||
args = ro_bind_args + \
|
||||
['--dev', '/dev',
|
||||
'--proc', '/proc',
|
||||
diff --git a/libmat2/exiftool.py b/libmat2/exiftool.py
|
||||
index eb65b2a..51a0fa1 100644
|
||||
--- a/libmat2/exiftool.py
|
||||
|
@ -13,7 +13,7 @@
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "oci";
|
||||
version = "2.56.0";
|
||||
version = "2.60.0";
|
||||
format = "setuptools";
|
||||
|
||||
disabled = pythonOlder "3.6";
|
||||
@ -22,7 +22,7 @@ buildPythonPackage rec {
|
||||
owner = "oracle";
|
||||
repo = "oci-python-sdk";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-olrWv4c2DoZ7ddm58Wpb5jZntw8WEKJ6IzAND11tdjk=";
|
||||
hash = "sha256-fXeea4MftVSJWzanHeAuERRiQLBp8l1l1Cw2lG3uz24=";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [
|
||||
|
@ -10,14 +10,14 @@
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "persistent";
|
||||
version = "4.8.0";
|
||||
version = "4.9.0";
|
||||
format = "setuptools";
|
||||
|
||||
disabled = pythonOlder "3.7";
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
hash = "sha256-nRd+rT+jwfXWKjbUUmdUs3bgUEx9S3XLmqUvt3HexrI=";
|
||||
hash = "sha256-RwGzHYHBBCJlclrzkEUOnZFq10ucF4twEAU4U1keDGo=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
@ -1,21 +1,19 @@
|
||||
{ lib
|
||||
, async-timeout
|
||||
, buildPythonPackage
|
||||
, fetchFromGitHub
|
||||
, fetchPypi
|
||||
, pythonOlder
|
||||
, xmltodict
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "pymediaroom";
|
||||
version = "0.6.4.1";
|
||||
version = "0.6.5.4";
|
||||
disabled = pythonOlder "3.5";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "dgomes";
|
||||
repo = pname;
|
||||
rev = version;
|
||||
sha256 = "1klf2dxd8rlq3n4b9m03lzwcsasn9vi6m3hzrjqhqnprhrnp0xmy";
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
hash = "sha256-CZh2knpLT7xt5s6+kTQ4Mq9LcpKgWvgdFCkPtMucJTM=";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [
|
||||
|
@ -1,18 +1,22 @@
|
||||
{ lib
|
||||
, aiohttp
|
||||
, buildPythonPackage
|
||||
, fetchFromGitHub
|
||||
, aiohttp
|
||||
, pythonOlder
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "python-juicenet";
|
||||
version = "1.0.2";
|
||||
version = "1.1.0";
|
||||
format = "setuptools";
|
||||
|
||||
disabled = pythonOlder "3.7";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "jesserockz";
|
||||
repo = "python-juicenet";
|
||||
rev = "v${version}";
|
||||
sha256 = "04547pj51ds31yhyc7ng47v9giz16h2s3wgb6szc8ivhb5rclqz2";
|
||||
hash = "sha256-5RKnVwOfEHzFZCiC8OUpS8exKrENK+I3Ok45HlKEvtU=";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [
|
||||
@ -22,7 +26,9 @@ buildPythonPackage rec {
|
||||
# no tests implemented
|
||||
doCheck = false;
|
||||
|
||||
pythonImportsCheck = [ "pyjuicenet" ];
|
||||
pythonImportsCheck = [
|
||||
"pyjuicenet"
|
||||
];
|
||||
|
||||
meta = with lib; {
|
||||
description = "Read and control Juicenet/Juicepoint/Juicebox based EVSE devices";
|
||||
|
@ -2,17 +2,21 @@
|
||||
, buildPythonPackage
|
||||
, fetchFromGitHub
|
||||
, capstone
|
||||
, pythonOlder
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "ropgadget";
|
||||
version = "6.6";
|
||||
version = "6.7";
|
||||
format = "setuptools";
|
||||
|
||||
disabled = pythonOlder "3.7";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "JonathanSalwan";
|
||||
repo = "ROPgadget";
|
||||
rev = "v${version}";
|
||||
sha256 = "1i0gx0cwhxk6d8byvck17hh83szz3k6ndd118ha3q0r0msap0lz1";
|
||||
hash = "sha256-zOTbncsOvmLQMZGpcRLviSZP/d1cQTQHXCLUKyEgVBk=";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [
|
||||
|
@ -1,22 +1,32 @@
|
||||
{ lib, fetchPypi, python3Packages }:
|
||||
{ lib
|
||||
, fetchPypi
|
||||
, buildPythonPackage
|
||||
, pythonOlder
|
||||
}:
|
||||
|
||||
python3Packages.buildPythonPackage rec {
|
||||
buildPythonPackage rec {
|
||||
pname = "sabyenc3";
|
||||
version = "5.0.1";
|
||||
version = "5.1.0";
|
||||
format = "setuptools";
|
||||
|
||||
disabled = pythonOlder "3.7";
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "sha256-MIKBSPs3CtETDefiozN758hmJhdmw0UqVyG9t224tfw=";
|
||||
hash = "sha256-y2I/kSyPIPSz7PrwW/AbP4BsEXHWQgXRb1VT0nTHQcE=";
|
||||
};
|
||||
|
||||
# tests are not included in pypi distribution
|
||||
# Tests are not included in pypi distribution
|
||||
doCheck = false;
|
||||
|
||||
meta = {
|
||||
pythonImportsCheck = [
|
||||
"sabyenc3"
|
||||
];
|
||||
|
||||
meta = with lib; {
|
||||
description = "yEnc Decoding for Python 3";
|
||||
homepage = "https://github.com/sabnzbd/sabyenc/";
|
||||
license = lib.licenses.lgpl3;
|
||||
maintainers = [ lib.maintainers.lovek323 ];
|
||||
license = licenses.lgpl3Plus;
|
||||
maintainers = with maintainers; [ lovek323 ];
|
||||
};
|
||||
|
||||
}
|
||||
|
@ -14,12 +14,12 @@
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "sqlite-utils";
|
||||
version = "3.25";
|
||||
version = "3.25.1";
|
||||
disabled = pythonOlder "3.6";
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "sha256-OKlwuXwXGU2WBauE33SYAuHzvPBhNdwYB3nQo5V2sUI=";
|
||||
sha256 = "sha256-32lfUJoTbkflztLU/BDhbHbuOkW66OGpHLuiyAKFy8k=";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [
|
||||
|
@ -5,7 +5,6 @@
|
||||
, setuptools
|
||||
, geopy
|
||||
, docopt
|
||||
, pyyaml
|
||||
, certifi
|
||||
, amqtt
|
||||
, websockets
|
||||
@ -17,7 +16,7 @@
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "volvooncall";
|
||||
version = "0.9.2";
|
||||
version = "0.10.0";
|
||||
|
||||
disabled = pythonOlder "3.8";
|
||||
|
||||
@ -27,24 +26,30 @@ buildPythonPackage rec {
|
||||
owner = "molobrakos";
|
||||
repo = "volvooncall";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-OTs282z7qzILl/xxM3whaxiQr8FZOfgceO2EY3NJKbA=";
|
||||
hash = "sha256-HLSanXJs1yPSgYo4oX0zJtrV5sKkxV2yLPhc2dVRHY8=";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [
|
||||
geopy
|
||||
docopt
|
||||
pyyaml
|
||||
certifi
|
||||
amqtt
|
||||
websockets
|
||||
aiohttp
|
||||
];
|
||||
|
||||
passthru.extras-require = {
|
||||
console = [
|
||||
certifi
|
||||
docopt
|
||||
geopy
|
||||
];
|
||||
mqtt = [
|
||||
amqtt
|
||||
certifi
|
||||
];
|
||||
};
|
||||
|
||||
checkInputs = [
|
||||
pytestCheckHook
|
||||
asynctest
|
||||
pytest-asyncio
|
||||
];
|
||||
pytestCheckHook
|
||||
] ++ passthru.extras-require.mqtt;
|
||||
|
||||
pythonImportsCheck = [ "volvooncall" ];
|
||||
|
||||
|
@ -10,7 +10,7 @@
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "zwave-js-server-python";
|
||||
version = "0.35.1";
|
||||
version = "0.35.2";
|
||||
format = "setuptools";
|
||||
|
||||
disabled = pythonOlder "3.8";
|
||||
@ -19,7 +19,7 @@ buildPythonPackage rec {
|
||||
owner = "home-assistant-libs";
|
||||
repo = pname;
|
||||
rev = version;
|
||||
sha256 = "sha256-WmpXQttcQ3Z/SFkNPfmvPWPGzWectQBoI9+bL2QYeaY=";
|
||||
sha256 = "sha256-Bte4pAi+atdkMvxYlzdN/UOrHB2WKfl44U9m/vKFMoA=";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [
|
||||
|
@ -32,13 +32,13 @@ with py.pkgs;
|
||||
|
||||
buildPythonApplication rec {
|
||||
pname = "checkov";
|
||||
version = "2.0.936";
|
||||
version = "2.0.938";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "bridgecrewio";
|
||||
repo = pname;
|
||||
rev = version;
|
||||
hash = "sha256-erpVJTnWUfoY4Ymdf7fZyri2NGAYs0NF+r3DMFFYURM=";
|
||||
hash = "sha256-N8jEEtO2fRFtNS3lInEa/9IwtqBb9yDkg7hHp7bhH+s=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = with py.pkgs; [
|
||||
|
@ -2,11 +2,11 @@
|
||||
|
||||
buildGraalvmNativeImage rec {
|
||||
pname = "clj-kondo";
|
||||
version = "2022.03.04";
|
||||
version = "2022.03.09";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://github.com/clj-kondo/${pname}/releases/download/v${version}/${pname}-${version}-standalone.jar";
|
||||
sha256 = "sha256-x/mDyWYxWR5H894n+BCBaxgRLQLPgVCip59nOUbavpk=";
|
||||
sha256 = "sha256-gPn3wORb30I/zTXUdxUxMesKFJx6ES7jEjUYuC/DAVI=";
|
||||
};
|
||||
|
||||
extraNativeImageBuildArgs = [
|
||||
|
@ -2,16 +2,16 @@
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "fly";
|
||||
version = "7.6.0";
|
||||
version = "7.7.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "concourse";
|
||||
repo = "concourse";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-Zi+gyO+2AKDgcfgYrzLskJYZ6hQKOVlOL7Y9nxH/pGg=";
|
||||
sha256 = "sha256-BKEUKQQxZ+Maq2JSHeWuQ7Lhgfc33pSiVS6VfAlMu/g=";
|
||||
};
|
||||
|
||||
vendorSha256 = "sha256-OF3parnlTPmcr7tVcc6495sUMRApSpBHHjSE/4EFIxE=";
|
||||
vendorSha256 = "sha256-G9HdhPi4iezUR6SIVYnjL0fznOfiusY4T9ClLPr1w5c=";
|
||||
|
||||
doCheck = false;
|
||||
|
||||
|
@ -4,11 +4,11 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "jenkins";
|
||||
version = "2.319.3";
|
||||
version = "2.332.1";
|
||||
|
||||
src = fetchurl {
|
||||
url = "http://get.jenkins.io/war-stable/${version}/jenkins.war";
|
||||
sha256 = "sha256-c92Rs5W89i/iXm0wdHZfFRDJ5YTswen69EBRBkGBtDQ=";
|
||||
sha256 = "0xrrqdwfz19mr4wl4sdzk0qnq9rjdh65vd1386qsn6a4axwv652s";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ makeWrapper ];
|
||||
|
@ -2,7 +2,7 @@
|
||||
|
||||
buildGoPackage rec {
|
||||
pname = "delve";
|
||||
version = "1.8.1";
|
||||
version = "1.8.2";
|
||||
|
||||
goPackagePath = "github.com/go-delve/delve";
|
||||
excludedPackages = "\\(_fixtures\\|scripts\\|service/test\\)";
|
||||
@ -11,7 +11,7 @@ buildGoPackage rec {
|
||||
owner = "go-delve";
|
||||
repo = "delve";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-GIwu3G8cy2xKqFzN/7d/mbpS+5oGJa3QexoELlEwWRA=";
|
||||
sha256 = "sha256-rW3uKf5T+ZCjZxVuSFWWXw0mhAW9Y9L83xtU98JTuik=";
|
||||
};
|
||||
|
||||
subPackages = [ "cmd/dlv" ];
|
||||
|
@ -2,13 +2,13 @@
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "efm-langserver";
|
||||
version = "0.0.40";
|
||||
version = "0.0.41";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "mattn";
|
||||
repo = "efm-langserver";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-0C7iSWO7zzOhPgzxj9k2MK6poi4XaCbMjTGah3ohVJg=";
|
||||
sha256 = "sha256-0s6GmMbjtXGUcChzc8Pkqvmt3iU5uDUqe76OUDngboU=";
|
||||
};
|
||||
|
||||
vendorSha256 = "sha256-tca+1SRrFyvU8ttHmfMFiGXd1A8rQSEWm1Mc2qp0EfI=";
|
||||
|
@ -1,17 +1,25 @@
|
||||
{ lib, fetchFromGitHub, stdenv, rustPlatform, coreutils, bash, installShellFiles, libiconv }:
|
||||
{ lib
|
||||
, stdenv
|
||||
, fetchFromGitHub
|
||||
, rustPlatform
|
||||
, coreutils
|
||||
, bash
|
||||
, installShellFiles
|
||||
, libiconv
|
||||
}:
|
||||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "just";
|
||||
version = "1.0.1";
|
||||
version = "1.1.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "casey";
|
||||
repo = pname;
|
||||
rev = version;
|
||||
sha256 = "sha256-ssc6djhSk0xV4jdlTmehWX6UMBPAuebtYlzWRZ/32mM=";
|
||||
sha256 = "sha256-hbBAbk0n80BbbIx81427bRz4x6enBsxJ0bHJKww44oc=";
|
||||
};
|
||||
|
||||
cargoSha256 = "sha256-ynYK37nCfIiy1CHBEQ/vMHOAPY/pp/lF/tSl9MJD7fY=";
|
||||
cargoSha256 = "sha256-lZyFoOCWUE2ahU/lS+bIdrZXNm/sFEfLsQm1BxREg5w=";
|
||||
|
||||
nativeBuildInputs = [ installShellFiles ];
|
||||
buildInputs = lib.optionals stdenv.isDarwin [ libiconv ];
|
||||
|
@ -1,29 +1,29 @@
|
||||
{lib, stdenv, fetchurl, ncurses, libpcap }:
|
||||
{ lib, stdenv, fetchurl, ncurses, libpcap, cmake, openssl, git, lksctp-tools }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
version = "3.6.0";
|
||||
|
||||
version = "3.6.1";
|
||||
pname = "sipp";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://github.com/SIPp/${pname}/releases/download/v${version}/${pname}-${version}.tar.gz";
|
||||
sha256 = "1fx1iy2n0m2kr91n1ii30frbscq375k3lqihdgvrqxn0zq8pnzp4";
|
||||
sha256 = "sha256-alYOg6/5gvMx3byt+zvVMMWJbNW3V91utoITPMhg7LE=";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
sed -i "s@pcap/\(.*\).pcap@$out/share/pcap/\1.pcap@g" src/scenario.cpp
|
||||
cp version.h src/version.h
|
||||
'';
|
||||
|
||||
configureFlags = [
|
||||
"--with-pcap"
|
||||
cmakeFlags = [
|
||||
"-DUSE_GSL=1"
|
||||
"-DUSE_PCAP=1"
|
||||
"-DUSE_SSL=1"
|
||||
"-DUSE_SCTP=${if stdenv.isLinux then "1" else "0"}"
|
||||
];
|
||||
enableParallelBuilding = true;
|
||||
|
||||
postInstall = ''
|
||||
mkdir -pv $out/share/pcap
|
||||
cp pcap/* $out/share/pcap
|
||||
'';
|
||||
|
||||
buildInputs = [ncurses libpcap];
|
||||
nativeBuildInputs = [ cmake git ];
|
||||
buildInputs = [ ncurses libpcap openssl ]
|
||||
++ lib.optional (stdenv.isLinux) lksctp-tools;
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "http://sipp.sf.net";
|
||||
@ -32,4 +32,3 @@ stdenv.mkDerivation rec {
|
||||
platforms = platforms.unix;
|
||||
};
|
||||
}
|
||||
|
||||
|
@ -13,11 +13,11 @@
|
||||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "cargo-make";
|
||||
version = "0.35.9";
|
||||
version = "0.35.10";
|
||||
|
||||
src = fetchCrate {
|
||||
inherit pname version;
|
||||
sha256 = "sha256-yjApyM3UM4gLUPpbVMv+7hpF5VGXS8W9RUnlsJd/Sbo=";
|
||||
sha256 = "sha256-l34sThvzhAW8VfxVuv+UGVil7yOvsOiWSqr/N91V8C8=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ pkg-config ];
|
||||
@ -25,7 +25,7 @@ rustPlatform.buildRustPackage rec {
|
||||
buildInputs = [ openssl ]
|
||||
++ lib.optionals stdenv.isDarwin [ Security SystemConfiguration libiconv ];
|
||||
|
||||
cargoSha256 = "sha256-YGpQXz35dPUeY8YlZ4Ul/utpNgEgW90xHiT+I+jOJIo=";
|
||||
cargoSha256 = "sha256-974Gqtv+g32iHrIqIzqwBsE8frzmjF0Ma/hSMGzMaGs=";
|
||||
|
||||
# Some tests fail because they need network access.
|
||||
# However, Travis ensures a proper build.
|
||||
|
@ -3,14 +3,14 @@
|
||||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "probe-run";
|
||||
version = "0.3.1";
|
||||
version = "0.3.2";
|
||||
|
||||
src = fetchCrate {
|
||||
inherit pname version;
|
||||
sha256 = "1nfbpdx378p988q75hka9r8zp3xb9zy3dnagcxmha6dca5dhgsdm";
|
||||
sha256 = "sha256-SXA77LXM1SuBJ8BH+ahwJl/3gWsCbdLXBiHZdJySWq0=";
|
||||
};
|
||||
|
||||
cargoSha256 = "05p3vmar00215x4mwsvs5knf4wrwmpq52rmbbi6b4qaqs3gqaghy";
|
||||
cargoSha256 = "sha256-e9POSuA/I7IUKUOxMTfCWxNn0AicojpGQpxamzmHa7g=";
|
||||
|
||||
nativeBuildInputs = [ pkg-config ];
|
||||
buildInputs = [ libusb1 ]
|
||||
@ -21,6 +21,6 @@ rustPlatform.buildRustPackage rec {
|
||||
homepage = "https://github.com/knurling-rs/probe-run";
|
||||
changelog = "https://github.com/knurling-rs/probe-run/blob/v${version}/CHANGELOG.md";
|
||||
license = with licenses; [ asl20 /* or */ mit ];
|
||||
maintainers = with maintainers; [ hoverbear ];
|
||||
maintainers = with maintainers; [ hoverbear newam ];
|
||||
};
|
||||
}
|
||||
|
@ -17,15 +17,15 @@
|
||||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "deno";
|
||||
version = "1.19.1";
|
||||
version = "1.19.3";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "denoland";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-BqwiconG5hn5RPV+hlKu6e6+GjZA4Im/dD+no3IduYw=";
|
||||
sha256 = "sha256-mm4hCRjQitFvSA3ow/p/N+UgG3P7FC440Obfqz3KVbQ=";
|
||||
};
|
||||
cargoSha256 = "sha256-q/5AezLQgN7WdGsbHoxX5riJMlxw3cTFhVs5OvCeI5U=";
|
||||
cargoSha256 = "sha256-tSIYs52pZk/h2hVJLHUbwlsl2gdu2Mszs9OBR52EQKQ=";
|
||||
|
||||
# Install completions post-install
|
||||
nativeBuildInputs = [ installShellFiles ];
|
||||
|
@ -11,11 +11,11 @@ let
|
||||
};
|
||||
in
|
||||
fetch_librusty_v8 {
|
||||
version = "0.40.0";
|
||||
version = "0.40.2";
|
||||
shas = {
|
||||
x86_64-linux = "sha256-VHkopvK6f5lxdFLBywHe0Z+su2g5hgBsLcTxrwFgq0Y=";
|
||||
aarch64-linux = "sha256-awWjziqqUDAl9fcLADUjytLFds1y93y5gZoOtvReL9w=";
|
||||
x86_64-darwin = "sha256-WlRnGiJK3iFgTjNzr25rvmmiPAICPRLaD5hbys7MoJA=";
|
||||
aarch64-darwin = "sha256-zblcAQVwnLQWh85wajg8CalqxycSR+4WGoSC2dnX7jA=";
|
||||
x86_64-linux = "sha256-RtEKNDQdL0orI0B4953RaT18KeWPZJIdhPnYbJGj2eM=";
|
||||
aarch64-linux = "sha256-TL5boy1X/OgOt17H6PYEA5D3MJbChCULrB38ykC5Ghk=";
|
||||
x86_64-darwin = "sha256-ABnHMABtggrHoTjeFB8YVH6PV2HvVlPZTQWaeRnRZaE=";
|
||||
aarch64-darwin = "sha256-PGrRmNJxS49K9jviQTxRJlTq1SAn+8epXXNJaexTAWU=";
|
||||
};
|
||||
}
|
||||
|
@ -11,11 +11,11 @@ let
|
||||
in
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "grails";
|
||||
version = "5.1.2";
|
||||
version = "5.1.3";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://github.com/grails/grails-core/releases/download/v${version}/grails-${version}.zip";
|
||||
sha256 = "sha256-S8YDGShglCB8zMHBwLlvPwq9dIAgQq2Xb8G1Pf0dXiQ=";
|
||||
sha256 = "sha256-BacAVAnS3qdmzHGVUdZI2hn4Arp9Qep6cAXRabpB10M=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ unzip ];
|
||||
|
@ -3,7 +3,7 @@
|
||||
with lib;
|
||||
|
||||
buildLinux (args // rec {
|
||||
version = "4.14.270";
|
||||
version = "4.14.271";
|
||||
|
||||
# modDirVersion needs to be x.y.z, will automatically add .0 if needed
|
||||
modDirVersion = if (modDirVersionArg == null) then concatStringsSep "." (take 3 (splitVersion "${version}.0")) else modDirVersionArg;
|
||||
@ -13,6 +13,6 @@ buildLinux (args // rec {
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://kernel/linux/kernel/v4.x/linux-${version}.tar.xz";
|
||||
sha256 = "17fj5aif5f0z0xgb321ghpv5p6drqxz0w948dr4hql4cj193r2zv";
|
||||
sha256 = "1mzxcjzw6y7b3fffz0hbgsl6328w3m5yv5xb21z57kr9vm828y80";
|
||||
};
|
||||
} // (args.argsOverride or {}))
|
||||
|
@ -3,7 +3,7 @@
|
||||
with lib;
|
||||
|
||||
buildLinux (args // rec {
|
||||
version = "4.19.233";
|
||||
version = "4.19.234";
|
||||
|
||||
# modDirVersion needs to be x.y.z, will automatically add .0 if needed
|
||||
modDirVersion = if (modDirVersionArg == null) then concatStringsSep "." (take 3 (splitVersion "${version}.0")) else modDirVersionArg;
|
||||
@ -13,6 +13,6 @@ buildLinux (args // rec {
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://kernel/linux/kernel/v4.x/linux-${version}.tar.xz";
|
||||
sha256 = "0dyf1xapmhly9gpygyjzj5yhn6s5xb0gss033sgllwn243q6bxmq";
|
||||
sha256 = "12rd468wvmmdmgzy9vs2ny155yp9wxrf15lrslpc8xm4wimrd0h0";
|
||||
};
|
||||
} // (args.argsOverride or {}))
|
||||
|
@ -1,12 +1,12 @@
|
||||
{ buildPackages, fetchurl, perl, buildLinux, nixosTests, stdenv, ... } @ args:
|
||||
|
||||
buildLinux (args // rec {
|
||||
version = "4.9.305";
|
||||
version = "4.9.306";
|
||||
extraMeta.branch = "4.9";
|
||||
extraMeta.broken = stdenv.isAarch64;
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://kernel/linux/kernel/v4.x/linux-${version}.tar.xz";
|
||||
sha256 = "0yspfrqlgpsa3a591bk9c2xqq5xf70lqfgj8wrnhd42agfxanr8k";
|
||||
sha256 = "1cvsz3sf24g2623m7fxc6ilzsdmzi8s8lnks3sg68sax0qdx0ny7";
|
||||
};
|
||||
} // (args.argsOverride or {}))
|
||||
|
@ -3,7 +3,7 @@
|
||||
with lib;
|
||||
|
||||
buildLinux (args // rec {
|
||||
version = "5.10.104";
|
||||
version = "5.10.105";
|
||||
|
||||
# modDirVersion needs to be x.y.z, will automatically add .0 if needed
|
||||
modDirVersion = if (modDirVersionArg == null) then concatStringsSep "." (take 3 (splitVersion "${version}.0")) else modDirVersionArg;
|
||||
@ -13,6 +13,6 @@ buildLinux (args // rec {
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://kernel/linux/kernel/v5.x/linux-${version}.tar.xz";
|
||||
sha256 = "1wb2ql58md45wi49bp3rck7ppgisyjdl7lxarzqd094fx9kr4jir";
|
||||
sha256 = "11fb9y6sqrf0hvak83ym7sbbacjl3q51w523vxjdpjmrn850xp1x";
|
||||
};
|
||||
} // (args.argsOverride or {}))
|
||||
|
@ -3,7 +3,7 @@
|
||||
with lib;
|
||||
|
||||
buildLinux (args // rec {
|
||||
version = "5.15.27";
|
||||
version = "5.15.28";
|
||||
|
||||
# modDirVersion needs to be x.y.z, will automatically add .0 if needed
|
||||
modDirVersion = if (modDirVersionArg == null) then concatStringsSep "." (take 3 (splitVersion "${version}.0")) else modDirVersionArg;
|
||||
@ -15,6 +15,6 @@ buildLinux (args // rec {
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://kernel/linux/kernel/v5.x/linux-${version}.tar.xz";
|
||||
sha256 = "01ksvmcwljzphbdll0pd9zg8ys8jy5xy29b54pxqjs3wq3n8zj9k";
|
||||
sha256 = "1rhhn2a7799nnvx8dj83glb0p0qakxanhxvvl7crznvip7rvp8nq";
|
||||
};
|
||||
} // (args.argsOverride or { }))
|
||||
|
@ -3,7 +3,7 @@
|
||||
with lib;
|
||||
|
||||
buildLinux (args // rec {
|
||||
version = "5.16.13";
|
||||
version = "5.16.14";
|
||||
|
||||
# modDirVersion needs to be x.y.z, will automatically add .0 if needed
|
||||
modDirVersion = if (modDirVersionArg == null) then concatStringsSep "." (take 3 (splitVersion "${version}.0")) else modDirVersionArg;
|
||||
@ -13,6 +13,6 @@ buildLinux (args // rec {
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://kernel/linux/kernel/v5.x/linux-${version}.tar.xz";
|
||||
sha256 = "1fvz4v3mcm9yxfak6mshl764piadgz46y71wprb85b1shc09i2ig";
|
||||
sha256 = "1xkl0mfjby7w6r3fqyjds94h2lmc77nzp970w7wz1rfmb63ab2vs";
|
||||
};
|
||||
} // (args.argsOverride or { }))
|
||||
|
@ -3,7 +3,7 @@
|
||||
with lib;
|
||||
|
||||
buildLinux (args // rec {
|
||||
version = "5.4.183";
|
||||
version = "5.4.184";
|
||||
|
||||
# modDirVersion needs to be x.y.z, will automatically add .0 if needed
|
||||
modDirVersion = if (modDirVersionArg == null) then concatStringsSep "." (take 3 (splitVersion "${version}.0")) else modDirVersionArg;
|
||||
@ -13,6 +13,6 @@ buildLinux (args // rec {
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://kernel/linux/kernel/v5.x/linux-${version}.tar.xz";
|
||||
sha256 = "17691h1575spgwh88mk189ars6gyjcl9nnaz585l2da8civhnjrd";
|
||||
sha256 = "128laiqkr6z3pya8ws7r2ddrpbc3xyn80zwclz2wlrf6wqwwm546";
|
||||
};
|
||||
} // (args.argsOverride or {}))
|
||||
|
@ -1,8 +1,8 @@
|
||||
{ stdenv, lib, fetchsvn, linux
|
||||
, scripts ? fetchsvn {
|
||||
url = "https://www.fsfla.org/svn/fsfla/software/linux-libre/releases/branches/";
|
||||
rev = "18613";
|
||||
sha256 = "1qgvhrh4nnn56aykaxqmlnzy8s111b5vn277n7qm4ldyr312g4hs";
|
||||
rev = "18627";
|
||||
sha256 = "0qlalxpw2a24625ck5mxchpxl6i6cgmzkzfgyp9apmhdy8590fv5";
|
||||
}
|
||||
, ...
|
||||
}:
|
||||
|
@ -6,7 +6,7 @@
|
||||
, ... } @ args:
|
||||
|
||||
let
|
||||
version = "5.10.100-rt62"; # updated by ./update-rt.sh
|
||||
version = "5.10.104-rt63"; # updated by ./update-rt.sh
|
||||
branch = lib.versions.majorMinor version;
|
||||
kversion = builtins.elemAt (lib.splitString "-" version) 0;
|
||||
in buildLinux (args // {
|
||||
@ -18,14 +18,14 @@ in buildLinux (args // {
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://kernel/linux/kernel/v5.x/linux-${kversion}.tar.xz";
|
||||
sha256 = "16892wnfkdpqy3v4xmdzlqn5zlfrgz9wqh6vadnx58xnr6pnasfm";
|
||||
sha256 = "1wb2ql58md45wi49bp3rck7ppgisyjdl7lxarzqd094fx9kr4jir";
|
||||
};
|
||||
|
||||
kernelPatches = let rt-patch = {
|
||||
name = "rt";
|
||||
patch = fetchurl {
|
||||
url = "mirror://kernel/linux/kernel/projects/rt/${branch}/older/patch-${version}.patch.xz";
|
||||
sha256 = "1wimp4ckaqp5cfvkf50gv3s5biyr0sjifz4faw23m07ciydm15k0";
|
||||
sha256 = "17ivd6dm49axc9k6cqf39wjjqrjqbj5xd3n7lqk7vv95rg9fg0g7";
|
||||
};
|
||||
}; in [ rt-patch ] ++ kernelPatches;
|
||||
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user