Merge staging-next into staging

This commit is contained in:
Frederik Rietdijk 2020-12-22 19:43:32 +01:00
commit 736dd028ca
54 changed files with 6709 additions and 4425 deletions

View File

@ -4942,6 +4942,12 @@
githubId = 45168934;
name = "Louis Blin";
};
lucc = {
email = "lucc+nix@posteo.de";
github = "lucc";
githubId = 1104419;
name = "Lucas Hoffmann";
};
ldelelis = {
email = "ldelelis@est.frba.utn.edu.ar";
github = "ldelelis";
@ -5228,6 +5234,10 @@
githubId = 10626;
name = "Andreas Wagner";
};
lrworth = {
email = "luke@worth.id.au";
name = "Luke Worth";
};
lschuermann = {
email = "leon.git@is.currently.online";
github = "lschuermann";

View File

@ -293,6 +293,14 @@
Packages depending on <literal>wafHook</literal> need to include any Python into their <literal>nativeBuildInputs</literal>.
</para>
</listitem>
<listitem>
<para>
Starting with version 1.7.0, the project formerly named <literal>CodiMD</literal>
is now named <literal>HedgeDoc</literal>.
New installations will no longer use the old name for users, state directories and such, this needs to be considered when moving state to a more recent NixOS installation.
Based on <xref linkend="opt-system.stateVersion" />, existing installations will continue to work.
</para>
</listitem>
</itemizedlist>
</section>

View File

@ -143,6 +143,13 @@ let
LINUX /boot/${config.system.boot.loader.kernelFile}
APPEND init=${config.system.build.toplevel}/init ${toString config.boot.kernelParams} loglevel=7
INITRD /boot/${config.system.boot.loader.initrdFile}
# A variant to boot with a serial console enabled
LABEL boot-serial
MENU LABEL NixOS ${config.system.nixos.label}${config.isoImage.appendToMenuLabel} (serial console=ttyS0,115200n8)
LINUX /boot/${config.system.boot.loader.kernelFile}
APPEND init=${config.system.build.toplevel}/init ${toString config.boot.kernelParams} console=ttyS0,115200n8
INITRD /boot/${config.system.boot.loader.initrdFile}
'';
isolinuxMemtest86Entry = ''

View File

@ -856,7 +856,6 @@
./services/web-apps/atlassian/confluence.nix
./services/web-apps/atlassian/crowd.nix
./services/web-apps/atlassian/jira.nix
./services/web-apps/codimd.nix
./services/web-apps/convos.nix
./services/web-apps/cryptpad.nix
./services/web-apps/documize.nix
@ -865,6 +864,7 @@
./services/web-apps/gerrit.nix
./services/web-apps/gotify-server.nix
./services/web-apps/grocy.nix
./services/web-apps/hedgedoc.nix
./services/web-apps/icingaweb2/icingaweb2.nix
./services/web-apps/icingaweb2/module-monitoring.nix
./services/web-apps/ihatemoney

View File

@ -205,7 +205,7 @@ in
extraRules = mkOption {
default = "";
example = ''
KERNEL=="eth*", ATTR{address}=="00:1D:60:B9:6D:4F", NAME="my_fast_network_card"
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:1D:60:B9:6D:4F", KERNEL=="eth*", NAME="my_fast_network_card"
'';
type = types.lines;
description = ''

View File

@ -233,10 +233,9 @@ in {
path = [ pkgs.wpa_supplicant ];
script = ''
if [ -f /etc/wpa_supplicant.conf -a "/etc/wpa_supplicant.conf" != "${configFile}" ]; then
echo >&2 "<3>/etc/wpa_supplicant.conf present but ignored. Generated ${configFile} is used instead."
if [ -f /etc/wpa_supplicant.conf -a "/etc/wpa_supplicant.conf" != "${configFile}" ]
then echo >&2 "<3>/etc/wpa_supplicant.conf present but ignored. Generated ${configFile} is used instead."
fi
iface_args="-s -u -D${cfg.driver} -c ${configFile}"
${if ifaces == [] then ''
for i in $(cd /sys/class/net && echo *); do
@ -249,10 +248,6 @@ in {
fi
fi
done
if [ -z "$args" ]; then
echo >&2 "<3>No wireless interfaces detected (yet)."
exit 1
fi
'' else ''
args="${concatMapStringsSep " -N " (i: "-i${i} $iface_args") ifaces}"
''}
@ -266,7 +261,7 @@ in {
# Restart wpa_supplicant when a wlan device appears or disappears.
services.udev.extraRules = ''
ACTION=="add|remove", SUBSYSTEM=="net", ENV{DEVTYPE}=="wlan", RUN+="/run/current-system/systemd/bin/systemctl restart wpa_supplicant.service"
ACTION=="add|remove", SUBSYSTEM=="net", ENV{DEVTYPE}=="wlan", RUN+="/run/current-system/systemd/bin/systemctl try-restart wpa_supplicant.service"
'';
};

View File

@ -3,10 +3,14 @@
with lib;
let
cfg = config.services.codimd;
cfg = config.services.hedgedoc;
name = if versionAtLeast config.system.stateVersion "21.03"
then "hedgedoc"
else "codimd";
prettyJSON = conf:
pkgs.runCommandLocal "codimd-config.json" {
pkgs.runCommandLocal "hedgedoc-config.json" {
nativeBuildInputs = [ pkgs.jq ];
} ''
echo '${builtins.toJSON conf}' | jq \
@ -14,22 +18,26 @@ let
'';
in
{
options.services.codimd = {
enable = mkEnableOption "the CodiMD Markdown Editor";
imports = [
(mkRenamedOptionModule [ "services" "codimd" ] [ "services" "hedgedoc" ])
];
options.services.hedgedoc = {
enable = mkEnableOption "the HedgeDoc Markdown Editor";
groups = mkOption {
type = types.listOf types.str;
default = [];
description = ''
Groups to which the codimd user should be added.
Groups to which the user ${name} should be added.
'';
};
workDir = mkOption {
type = types.path;
default = "/var/lib/codimd";
default = "/var/lib/${name}";
description = ''
Working directory for the CodiMD service.
Working directory for the HedgeDoc service.
'';
};
@ -38,17 +46,17 @@ in
domain = mkOption {
type = types.nullOr types.str;
default = null;
example = "codimd.org";
example = "hedgedoc.org";
description = ''
Domain name for the CodiMD instance.
Domain name for the HedgeDoc instance.
'';
};
urlPath = mkOption {
type = types.nullOr types.str;
default = null;
example = "/url/path/to/codimd";
example = "/url/path/to/hedgedoc";
description = ''
Path under which CodiMD is accessible.
Path under which HedgeDoc is accessible.
'';
};
host = mkOption {
@ -69,7 +77,7 @@ in
path = mkOption {
type = types.nullOr types.str;
default = null;
example = "/run/codimd.sock";
example = "/run/hedgedoc.sock";
description = ''
Specify where a UNIX domain socket should be placed.
'';
@ -77,7 +85,7 @@ in
allowOrigin = mkOption {
type = types.listOf types.str;
default = [];
example = [ "localhost" "codimd.org" ];
example = [ "localhost" "hedgedoc.org" ];
description = ''
List of domains to whitelist.
'';
@ -201,7 +209,7 @@ in
'';
description = ''
Specify which database to use.
CodiMD supports mysql, postgres, sqlite and mssql.
HedgeDoc supports mysql, postgres, sqlite and mssql.
See <link xlink:href="https://sequelize.readthedocs.io/en/v3/">
https://sequelize.readthedocs.io/en/v3/</link> for more information.
Note: This option overrides <option>db</option>.
@ -213,12 +221,12 @@ in
example = literalExample ''
{
dialect = "sqlite";
storage = "/var/lib/codimd/db.codimd.sqlite";
storage = "/var/lib/${name}/db.${name}.sqlite";
}
'';
description = ''
Specify the configuration for sequelize.
CodiMD supports mysql, postgres, sqlite and mssql.
HedgeDoc supports mysql, postgres, sqlite and mssql.
See <link xlink:href="https://sequelize.readthedocs.io/en/v3/">
https://sequelize.readthedocs.io/en/v3/</link> for more information.
Note: This option overrides <option>db</option>.
@ -227,7 +235,7 @@ in
sslKeyPath= mkOption {
type = types.nullOr types.str;
default = null;
example = "/var/lib/codimd/codimd.key";
example = "/var/lib/hedgedoc/hedgedoc.key";
description = ''
Path to the SSL key. Needed when <option>useSSL</option> is enabled.
'';
@ -235,7 +243,7 @@ in
sslCertPath = mkOption {
type = types.nullOr types.str;
default = null;
example = "/var/lib/codimd/codimd.crt";
example = "/var/lib/hedgedoc/hedgedoc.crt";
description = ''
Path to the SSL cert. Needed when <option>useSSL</option> is enabled.
'';
@ -243,7 +251,7 @@ in
sslCAPath = mkOption {
type = types.listOf types.str;
default = [];
example = [ "/var/lib/codimd/ca.crt" ];
example = [ "/var/lib/hedgedoc/ca.crt" ];
description = ''
SSL ca chain. Needed when <option>useSSL</option> is enabled.
'';
@ -251,7 +259,7 @@ in
dhParamPath = mkOption {
type = types.nullOr types.str;
default = null;
example = "/var/lib/codimd/dhparam.pem";
example = "/var/lib/hedgedoc/dhparam.pem";
description = ''
Path to the SSL dh params. Needed when <option>useSSL</option> is enabled.
'';
@ -260,10 +268,10 @@ in
type = types.str;
default = "/tmp";
description = ''
Path to the temp directory CodiMD should use.
Path to the temp directory HedgeDoc should use.
Note that <option>serviceConfig.PrivateTmp</option> is enabled for
the CodiMD systemd service by default.
(Non-canonical paths are relative to CodiMD's base directory)
the HedgeDoc systemd service by default.
(Non-canonical paths are relative to HedgeDoc's base directory)
'';
};
defaultNotePath = mkOption {
@ -271,7 +279,7 @@ in
default = "./public/default.md";
description = ''
Path to the default Note file.
(Non-canonical paths are relative to CodiMD's base directory)
(Non-canonical paths are relative to HedgeDoc's base directory)
'';
};
docsPath = mkOption {
@ -279,7 +287,7 @@ in
default = "./public/docs";
description = ''
Path to the docs directory.
(Non-canonical paths are relative to CodiMD's base directory)
(Non-canonical paths are relative to HedgeDoc's base directory)
'';
};
indexPath = mkOption {
@ -287,7 +295,7 @@ in
default = "./public/views/index.ejs";
description = ''
Path to the index template file.
(Non-canonical paths are relative to CodiMD's base directory)
(Non-canonical paths are relative to HedgeDoc's base directory)
'';
};
hackmdPath = mkOption {
@ -295,7 +303,7 @@ in
default = "./public/views/hackmd.ejs";
description = ''
Path to the hackmd template file.
(Non-canonical paths are relative to CodiMD's base directory)
(Non-canonical paths are relative to HedgeDoc's base directory)
'';
};
errorPath = mkOption {
@ -304,7 +312,7 @@ in
defaultText = "./public/views/error.ejs";
description = ''
Path to the error template file.
(Non-canonical paths are relative to CodiMD's base directory)
(Non-canonical paths are relative to HedgeDoc's base directory)
'';
};
prettyPath = mkOption {
@ -313,7 +321,7 @@ in
defaultText = "./public/views/pretty.ejs";
description = ''
Path to the pretty template file.
(Non-canonical paths are relative to CodiMD's base directory)
(Non-canonical paths are relative to HedgeDoc's base directory)
'';
};
slidePath = mkOption {
@ -322,13 +330,13 @@ in
defaultText = "./public/views/slide.hbs";
description = ''
Path to the slide template file.
(Non-canonical paths are relative to CodiMD's base directory)
(Non-canonical paths are relative to HedgeDoc's base directory)
'';
};
uploadsPath = mkOption {
type = types.str;
default = "${cfg.workDir}/uploads";
defaultText = "/var/lib/codimd/uploads";
defaultText = "/var/lib/${name}/uploads";
description = ''
Path under which uploaded files are saved.
'';
@ -766,7 +774,7 @@ in
type = types.str;
default = "";
description = ''
LDAP field which is used as the username on CodiMD.
LDAP field which is used as the username on HedgeDoc.
By default <option>useridField</option> is used.
'';
};
@ -774,7 +782,7 @@ in
type = types.str;
example = "uid";
description = ''
LDAP field which is a unique identifier for users on CodiMD.
LDAP field which is a unique identifier for users on HedgeDoc.
'';
};
tlsca = mkOption {
@ -840,7 +848,7 @@ in
requiredGroups = mkOption {
type = types.listOf types.str;
default = [];
example = [ "Hackmd-users" "Codimd-users" ];
example = [ "Hedgedoc-Users" ];
description = ''
Required group names.
'';
@ -883,7 +891,7 @@ in
environmentFile = mkOption {
type = with types; nullOr path;
default = null;
example = "/var/lib/codimd/codimd.env";
example = "/var/lib/hedgedoc/hedgedoc.env";
description = ''
Environment file as defined in <citerefentry>
<refentrytitle>systemd.exec</refentrytitle><manvolnum>5</manvolnum>
@ -894,9 +902,9 @@ in
setting these variables accordingly in the environment file.
<programlisting>
# snippet of CodiMD-related config
services.codimd.configuration.dbURL = "postgres://codimd:\''${DB_PASSWORD}@db-host:5432/codimddb";
services.codimd.configuration.minio.secretKey = "$MINIO_SECRET_KEY";
# snippet of HedgeDoc-related config
services.hedgedoc.configuration.dbURL = "postgres://hedgedoc:\''${DB_PASSWORD}@db-host:5432/hedgedocdb";
services.hedgedoc.configuration.minio.secretKey = "$MINIO_SECRET_KEY";
</programlisting>
<programlisting>
@ -906,15 +914,15 @@ in
</programlisting>
Note that this file needs to be available on the host on which
<literal>CodiMD</literal> is running.
<literal>HedgeDoc</literal> is running.
'';
};
package = mkOption {
type = types.package;
default = pkgs.codimd;
default = pkgs.hedgedoc;
description = ''
Package that provides CodiMD.
Package that provides HedgeDoc.
'';
};
};
@ -924,20 +932,20 @@ in
{ assertion = cfg.configuration.db == {} -> (
cfg.configuration.dbURL != "" && cfg.configuration.dbURL != null
);
message = "Database configuration for CodiMD missing."; }
message = "Database configuration for HedgeDoc missing."; }
];
users.groups.codimd = {};
users.users.codimd = {
description = "CodiMD service user";
group = "codimd";
users.groups.${name} = {};
users.users.${name} = {
description = "HedgeDoc service user";
group = name;
extraGroups = cfg.groups;
home = cfg.workDir;
createHome = true;
isSystemUser = true;
};
systemd.services.codimd = {
description = "CodiMD Service";
systemd.services.hedgedoc = {
description = "HedgeDoc Service";
wantedBy = [ "multi-user.target" ];
after = [ "networking.target" ];
preStart = ''
@ -947,14 +955,14 @@ in
'';
serviceConfig = {
WorkingDirectory = cfg.workDir;
ExecStart = "${cfg.package}/bin/codimd";
ExecStart = "${cfg.package}/bin/hedgedoc";
EnvironmentFile = mkIf (cfg.environmentFile != null) [ cfg.environmentFile ];
Environment = [
"CMD_CONFIG_FILE=${cfg.workDir}/config.json"
"NODE_ENV=production"
];
Restart = "always";
User = "codimd";
User = name;
PrivateTmp = true;
};
};

View File

@ -63,7 +63,6 @@ in
clickhouse = handleTest ./clickhouse.nix {};
cloud-init = handleTest ./cloud-init.nix {};
cockroachdb = handleTestOn ["x86_64-linux"] ./cockroachdb.nix {};
codimd = handleTest ./codimd.nix {};
consul = handleTest ./consul.nix {};
containers-bridge = handleTest ./containers-bridge.nix {};
containers-custom-pkgs.nix = handleTest ./containers-custom-pkgs.nix {};
@ -147,6 +146,7 @@ in
handbrake = handleTestOn ["x86_64-linux"] ./handbrake.nix {};
haproxy = handleTest ./haproxy.nix {};
hardened = handleTest ./hardened.nix {};
hedgedoc = handleTest ./hedgedoc.nix {};
installed-tests = pkgs.recurseIntoAttrs (handleTest ./installed-tests {});
oci-containers = handleTestOn ["x86_64-linux"] ./oci-containers.nix {};
# 9pnet_virtio used to mount /nix partition doesn't support

View File

@ -1,60 +0,0 @@
import ./make-test-python.nix ({ pkgs, lib, ... }:
{
name = "codimd";
meta = with lib.maintainers; {
maintainers = [ willibutz ];
};
nodes = {
codimdSqlite = { ... }: {
services = {
codimd = {
enable = true;
configuration.dbURL = "sqlite:///var/lib/codimd/codimd.db";
};
};
};
codimdPostgres = { ... }: {
systemd.services.codimd.after = [ "postgresql.service" ];
services = {
codimd = {
enable = true;
configuration.dbURL = "postgres://codimd:\${DB_PASSWORD}@localhost:5432/codimddb";
/*
* Do not use pkgs.writeText for secrets as
* they will end up in the world-readable Nix store.
*/
environmentFile = pkgs.writeText "codimd-env" ''
DB_PASSWORD=snakeoilpassword
'';
};
postgresql = {
enable = true;
initialScript = pkgs.writeText "pg-init-script.sql" ''
CREATE ROLE codimd LOGIN PASSWORD 'snakeoilpassword';
CREATE DATABASE codimddb OWNER codimd;
'';
};
};
};
};
testScript = ''
start_all()
with subtest("CodiMD sqlite"):
codimdSqlite.wait_for_unit("codimd.service")
codimdSqlite.wait_for_open_port(3000)
codimdSqlite.wait_until_succeeds("curl -sSf http://localhost:3000/new")
with subtest("CodiMD postgres"):
codimdPostgres.wait_for_unit("postgresql.service")
codimdPostgres.wait_for_unit("codimd.service")
codimdPostgres.wait_for_open_port(5432)
codimdPostgres.wait_for_open_port(3000)
codimdPostgres.wait_until_succeeds("curl -sSf http://localhost:3000/new")
'';
})

60
nixos/tests/hedgedoc.nix Normal file
View File

@ -0,0 +1,60 @@
import ./make-test-python.nix ({ pkgs, lib, ... }:
{
name = "hedgedoc";
meta = with lib.maintainers; {
maintainers = [ willibutz ];
};
nodes = {
hedgedocSqlite = { ... }: {
services = {
hedgedoc = {
enable = true;
configuration.dbURL = "sqlite:///var/lib/hedgedoc/hedgedoc.db";
};
};
};
hedgedocPostgres = { ... }: {
systemd.services.hedgedoc.after = [ "postgresql.service" ];
services = {
hedgedoc = {
enable = true;
configuration.dbURL = "postgres://hedgedoc:\${DB_PASSWORD}@localhost:5432/hedgedocdb";
/*
* Do not use pkgs.writeText for secrets as
* they will end up in the world-readable Nix store.
*/
environmentFile = pkgs.writeText "hedgedoc-env" ''
DB_PASSWORD=snakeoilpassword
'';
};
postgresql = {
enable = true;
initialScript = pkgs.writeText "pg-init-script.sql" ''
CREATE ROLE hedgedoc LOGIN PASSWORD 'snakeoilpassword';
CREATE DATABASE hedgedocdb OWNER hedgedoc;
'';
};
};
};
};
testScript = ''
start_all()
with subtest("HedgeDoc sqlite"):
hedgedocSqlite.wait_for_unit("hedgedoc.service")
hedgedocSqlite.wait_for_open_port(3000)
hedgedocSqlite.wait_until_succeeds("curl -sSf http://localhost:3000/new")
with subtest("HedgeDoc postgres"):
hedgedocPostgres.wait_for_unit("postgresql.service")
hedgedocPostgres.wait_for_unit("hedgedoc.service")
hedgedocPostgres.wait_for_open_port(5432)
hedgedocPostgres.wait_for_open_port(3000)
hedgedocPostgres.wait_until_succeeds("curl -sSf http://localhost:3000/new")
'';
})

View File

@ -80,15 +80,6 @@ let
}) { inherit system; });
in with pkgs; {
kafka_0_9 = makeKafkaTest "kafka_0_9" apacheKafka_0_9;
kafka_0_10 = makeKafkaTest "kafka_0_10" apacheKafka_0_10;
kafka_0_11 = makeKafkaTest "kafka_0_11" apacheKafka_0_11;
kafka_1_0 = makeKafkaTest "kafka_1_0" apacheKafka_1_0;
kafka_1_1 = makeKafkaTest "kafka_1_1" apacheKafka_1_1;
kafka_2_0 = makeKafkaTest "kafka_2_0" apacheKafka_2_0;
kafka_2_1 = makeKafkaTest "kafka_2_1" apacheKafka_2_1;
kafka_2_2 = makeKafkaTest "kafka_2_2" apacheKafka_2_2;
kafka_2_3 = makeKafkaTest "kafka_2_3" apacheKafka_2_3;
kafka_2_4 = makeKafkaTest "kafka_2_4" apacheKafka_2_4;
kafka_2_5 = makeKafkaTest "kafka_2_5" apacheKafka_2_5;
}

View File

@ -4,6 +4,7 @@
, qtbase, qtdeclarative, qtgraphicaleffects
, qtmultimedia, qtxmlpatterns
, qtquickcontrols, qtquickcontrols2
, qtmacextras
, monero, miniupnpc, unbound, readline
, boost, libunwind, libsodium, pcsclite
, randomx, zeromq, libgcrypt, libgpgerror
@ -27,13 +28,13 @@ in
stdenv.mkDerivation rec {
pname = "monero-gui";
version = "0.17.1.6";
version = "0.17.1.7";
src = fetchFromGitHub {
owner = "monero-project";
repo = "monero-gui";
rev = "v${version}";
sha256 = "0kn5wvx2psbdaqmy1cxlbf5l1mdpvh0b6hh9drah3s7nj3654a3r";
sha256 = "1dd2ddkxh9ynxnscysl46hj4dm063h1v13fnyah69am26qzzbby4";
};
nativeBuildInputs = [
@ -49,7 +50,8 @@ stdenv.mkDerivation rec {
randomx libgcrypt libgpgerror
boost libunwind libsodium pcsclite
zeromq hidapi rapidjson
] ++ optionals trezorSupport [ libusb1 protobuf python3 ];
] ++ optionals trezorSupport [ libusb1 protobuf python3 ]
++ optionals stdenv.isDarwin [ qtmacextras ];
postUnpack = ''
# copy monero sources here
@ -105,7 +107,6 @@ stdenv.mkDerivation rec {
homepage = "https://getmonero.org/";
license = licenses.bsd3;
platforms = platforms.all;
badPlatforms = platforms.darwin;
maintainers = with maintainers; [ rnhmjoj ];
};
}

View File

@ -17,13 +17,13 @@ assert trezorSupport -> all (x: x!=null) [ libusb1 protobuf python3 ];
stdenv.mkDerivation rec {
pname = "monero";
version = "0.17.1.6";
version = "0.17.1.7";
src = fetchFromGitHub {
owner = "monero-project";
repo = "monero";
rev = "v${version}";
sha256 = "0b6zyr3mzqvcxf48i2g45gr649x6nhppik5598jsvg0z7i2hxb9q";
sha256 = "1fdw4i4rw87yz3hz4yc1gdw0gr2mmf9038xaw2l4rrk5y50phjp4";
fetchSubmodules = true;
};

View File

@ -52,19 +52,18 @@ let
ungoogled-chromium = callPackage ./ungoogled.nix {};
};
pkgSuffix = if channel == "dev" then "unstable" else channel;
pkgSuffix = if channel == "dev" then "unstable" else
(if channel == "ungoogled-chromium" then "stable" else channel);
pkgName = "google-chrome-${pkgSuffix}";
chromeSrc = if channel == "ungoogled-chromium"
then throw "Google Chrome is not supported for the ungoogled-chromium channel."
else fetchurl {
urls = map (repo: "${repo}/${pkgName}/${pkgName}_${version}-1_amd64.deb") [
"https://dl.google.com/linux/chrome/deb/pool/main/g"
"http://95.31.35.30/chrome/pool/main/g"
"http://mirror.pcbeta.com/google/chrome/deb/pool/main/g"
"http://repo.fdzh.org/chrome/deb/pool/main/g"
];
sha256 = chromium.upstream-info.sha256bin64;
};
chromeSrc = fetchurl {
urls = map (repo: "${repo}/${pkgName}/${pkgName}_${version}-1_amd64.deb") [
"https://dl.google.com/linux/chrome/deb/pool/main/g"
"http://95.31.35.30/chrome/pool/main/g"
"http://mirror.pcbeta.com/google/chrome/deb/pool/main/g"
"http://repo.fdzh.org/chrome/deb/pool/main/g"
];
sha256 = chromium.upstream-info.sha256bin64;
};
mkrpath = p: "${lib.makeSearchPathOutput "lib" "lib64" p}:${lib.makeLibraryPath p}";
widevineCdm = stdenv.mkDerivation {
@ -76,7 +75,7 @@ let
unpackCmd = let
widevineCdmPath =
if channel == "stable" then
if (channel == "stable" || channel == "ungoogled-chromium") then
"./opt/google/chrome/WidevineCdm"
else if channel == "beta" then
"./opt/google/chrome-beta/WidevineCdm"

View File

@ -91,24 +91,15 @@ def get_latest_ungoogled_chromium_tag():
return tag_data[0]['name']
def get_ungoogled_chromium_channel():
"""Returns a dictionary for the ungoogled-chromium channel."""
latest_tag = get_latest_ungoogled_chromium_tag()
version = latest_tag.split('-')[0]
if version == last_channels['ungoogled-chromium']['version']:
# No update available -> keep the cached information (no refetching required):
return last_channels['ungoogled-chromium']
channel = {
def get_latest_ungoogled_chromium_build():
"""Returns a dictionary for the latest ungoogled-chromium build."""
tag = get_latest_ungoogled_chromium_tag()
version = tag.split('-')[0]
return {
'channel': 'ungoogled-chromium',
'version': version,
'sha256': nix_prefetch_url(f'{BUCKET_URL}/chromium-{version}.tar.xz'),
'deps': get_channel_dependencies(version)
'ungoogled_tag': tag
}
repo_url = 'https://github.com/Eloston/ungoogled-chromium.git'
channel['deps']['ungoogled-patches'] = {
'rev': latest_tag,
'sha256': nix_prefetch_git(repo_url, latest_tag)['sha256']
}
return channel
channels = {}
@ -118,6 +109,8 @@ last_channels = load_json(JSON_PATH)
print(f'GET {HISTORY_URL}', file=sys.stderr)
with urlopen(HISTORY_URL) as resp:
builds = csv.DictReader(iterdecode(resp, 'utf-8'))
builds = list(builds)
builds.append(get_latest_ungoogled_chromium_build())
for build in builds:
channel_name = build['channel']
@ -134,13 +127,18 @@ with urlopen(HISTORY_URL) as resp:
continue
channel = {'version': build['version']}
suffix = 'unstable' if channel_name == 'dev' else channel_name
if channel_name == 'dev':
google_chrome_suffix = 'unstable'
elif channel_name == 'ungoogled-chromium':
google_chrome_suffix = 'stable'
else:
google_chrome_suffix = channel_name
try:
channel['sha256'] = nix_prefetch_url(f'{BUCKET_URL}/chromium-{build["version"]}.tar.xz')
channel['sha256bin64'] = nix_prefetch_url(
f'{DEB_URL}/google-chrome-{suffix}/' +
f'google-chrome-{suffix}_{build["version"]}-1_amd64.deb')
f'{DEB_URL}/google-chrome-{google_chrome_suffix}/' +
f'google-chrome-{google_chrome_suffix}_{build["version"]}-1_amd64.deb')
except subprocess.CalledProcessError:
# This build isn't actually available yet. Continue to
# the next one.
@ -149,6 +147,12 @@ with urlopen(HISTORY_URL) as resp:
channel['deps'] = get_channel_dependencies(channel['version'])
if channel_name == 'stable':
channel['chromedriver'] = get_matching_chromedriver(channel['version'])
elif channel_name == 'ungoogled-chromium':
ungoogled_repo_url = 'https://github.com/Eloston/ungoogled-chromium.git'
channel['deps']['ungoogled-patches'] = {
'rev': build['ungoogled_tag'],
'sha256': nix_prefetch_git(ungoogled_repo_url, build['ungoogled_tag'])['sha256']
}
channels[channel_name] = channel
@ -167,8 +171,6 @@ with open(JSON_PATH, 'w') as out:
return 3
print(f'Error: Unexpected channel: {channel_name}', file=sys.stderr)
sys.exit(1)
# Get the special ungoogled-chromium channel:
channels['ungoogled-chromium'] = get_ungoogled_chromium_channel()
sorted_channels = OrderedDict(sorted(channels.items(), key=get_channel_key))
json.dump(sorted_channels, out, indent=2)
out.write('\n')

View File

@ -46,6 +46,7 @@
"ungoogled-chromium": {
"version": "87.0.4280.88",
"sha256": "1h09g9b2zxad85vd146ymvg3w2kpngpi78yig3dn1vrmhwr4aiiy",
"sha256bin64": "0n3fm6wf8zfkv135d50xl8xxrnng3q55vyxkck1da8jyvh18bijb",
"deps": {
"gn": {
"version": "2020-09-09",

View File

@ -0,0 +1,7 @@
{ callPackage, buildGoPackage }:
callPackage ./generic.nix {
inherit buildGoPackage;
version = "1.0.1";
sha256 = "07k81csyxhgc7bgn297zlqyvc55qb5fmiavi7dk81rdpg5m2zjvv";
}

View File

@ -2,7 +2,7 @@
"name": "element-desktop",
"productName": "Element",
"main": "src/electron-main.js",
"version": "1.7.15",
"version": "1.7.16",
"description": "A feature-rich client for Matrix.org",
"author": "Element",
"repository": {

View File

@ -3042,11 +3042,11 @@
};
}
{
name = "ini___ini_1.3.5.tgz";
name = "ini___ini_1.3.8.tgz";
path = fetchurl {
name = "ini___ini_1.3.5.tgz";
url = "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz";
sha1 = "eee25f56db1c9ec6085e0c22778083f596abf927";
name = "ini___ini_1.3.8.tgz";
url = "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz";
sha1 = "a29da425b48806f34767a4efce397269af28432c";
};
}
{

View File

@ -8,12 +8,12 @@
let
executableName = "element-desktop";
version = "1.7.15";
version = "1.7.16";
src = fetchFromGitHub {
owner = "vector-im";
repo = "element-desktop";
rev = "v${version}";
sha256 = "sha256-7kWf8MXSB4/sX1bjMsfkzgzElS/AYu5VHAKGcqgvH54=";
sha256 = "sha256-mdHsw1Vi+2hrAF7biX3pJqfRaZU2lpw9zUZdcCm717g=";
};
electron = electron_9;

View File

@ -12,11 +12,11 @@ let
in stdenv.mkDerivation rec {
pname = "element-web";
version = "1.7.15";
version = "1.7.16";
src = fetchurl {
url = "https://github.com/vector-im/element-web/releases/download/v${version}/element-v${version}.tar.gz";
sha256 = "sha256-ZSi0OLA5dyPXn1NlZkkhCmWhrSryfyj/O6Ux1lO12ns=";
sha256 = "sha256-/KLTD7IvIp1f1dSUEMMCoknQzZarcP2wDM211h+OJMM=";
};
installPhase = ''

View File

@ -10,7 +10,7 @@ assert withQt -> qt5 != null;
with stdenv.lib;
let
version = "3.4.0";
version = "3.4.2";
variant = if withQt then "qt" else "cli";
pcap = libpcap.override { withBluez = stdenv.isLinux; };
@ -21,7 +21,7 @@ in stdenv.mkDerivation {
src = fetchurl {
url = "https://www.wireshark.org/download/src/all-versions/wireshark-${version}.tar.xz";
sha256 = "1bm8jj2rviis9j9l6nixvhxcfx362y9iphkxssgmiz2kj6yypr37";
sha256 = "1i548w6zv6ni5n22rs90a12aakyq811493dxmadlcsj2krr6i66y";
};
cmakeFlags = [

View File

@ -53,6 +53,7 @@ mkDerivation rec {
"-DLIBSERIALDV_INCLUDE_DIR:PATH=${serialdv}/include/serialdv"
"-DLIMESUITE_INCLUDE_DIR:PATH=${limesuite}/include"
"-DLIMESUITE_LIBRARY:FILEPATH=${limesuite}/lib/libLimeSuite.so"
"-DSOAPYSDR_DIR=${soapysdr-with-plugins}"
];
LD_LIBRARY_PATH = "${ocl-icd}/lib";

View File

@ -4,11 +4,11 @@
buildPythonApplication rec {
pname = "git-machete";
version = "2.15.7";
version = "2.15.9";
src = fetchPypi {
inherit pname version;
sha256 = "0djbl4s9i7bs7kkldr7453yayi38s8mx0i41mkd0j2cvv5r9himr";
sha256 = "0sg9ci9q1v3975855vi491ass72ladp3bjj2mvg77yxj13g3qqsx";
};
nativeBuildInputs = [ installShellFiles pbr ];

View File

@ -8,13 +8,13 @@
stdenv.mkDerivation rec {
pname = "luna-icons";
version = "0.6";
version = "0.9";
src = fetchFromGitHub {
owner = "darkomarko42";
repo = pname;
rev = version;
sha256 = "1lm7ws7in8cjjl38c7xw67jr42d717kk5kkfac7rprk0z7pb104l";
sha256 = "1pwbmw20kzlxnwln92nxq7f5s1xwbpv6j7il7jxymlw0y31rl281";
};
nativeBuildInputs = [
@ -35,6 +35,12 @@ stdenv.mkDerivation rec {
mkdir -p $out/share/icons
cp -a Luna* $out/share/icons
# remove files with spaces in the name, otherwise
# gtk-update-icon-cache fails with the message "The generated cache
# was invalid"
# https://github.com/darkomarko42/Luna-Icons/issues/2
rm "$out/share/icons/Luna/scalable/apps/yast-checkmedia (copia).svg"
for theme in $out/share/icons/*; do
gtk-update-icon-cache "$theme"
done

View File

@ -1,18 +1,18 @@
{ stdenv, fetchFromGitHub, cmake, pkgconfig, boost, icu, catch2, pandoc }:
{ stdenv, fetchFromGitHub, cmake, pkgconfig, icu, catch2, pandoc }:
stdenv.mkDerivation rec {
pname = "nuspell";
version = "4.0.1";
version = "4.2.0";
src = fetchFromGitHub {
owner = "nuspell";
repo = "nuspell";
rev = "v${version}";
sha256 = "1p90a3wv4b8m5fdpbnr9cyd1x3a504q9rc4cghq02xff63h5gclf";
sha256 = "sha256-sQ3Q2+FOf2bXCKcgd6XvEb+QZzzDccs/4+CpJbEd1PQ=";
};
nativeBuildInputs = [ cmake pkgconfig pandoc ];
buildInputs = [ boost icu ];
buildInputs = [ icu ];
outputs = [ "out" "lib" "dev" "man" ];

View File

@ -2,11 +2,11 @@
buildPythonPackage rec {
pname = "hvac";
version = "0.10.5";
version = "0.10.6";
src = fetchPypi {
inherit pname version;
sha256 = "87dc2a3183c1d4595990203e752b430155d7582a60850dfe0756189a233d4b57";
sha256 = "b0561dbdfecc6a6d7b0cc226d75a800ae9bbc93313a6ad526a1adc97be51eada";
};
propagatedBuildInputs = [ requests six ];

View File

@ -7,11 +7,11 @@
buildPythonPackage rec {
pname = "PuLP";
version = "2.3.1";
version = "2.4";
src = fetchPypi {
inherit pname version;
sha256 = "5bbe53f854fb3b689e4faacac5bdb5fa576cb270fc12c78edef827dd46a4fb50";
sha256 = "b2aff10989b3692e3a59301a0cb0acddeb25dcea378f8804c86007075eae55b5";
};
propagatedBuildInputs = [ pyparsing amply ];

View File

@ -3,11 +3,11 @@
buildPythonPackage rec {
pname = "pyvips";
version = "2.1.13";
version = "2.1.14";
src = fetchPypi {
inherit pname version;
sha256 = "4f1f6fa19893048bf6b950eb7eb2d4cdfeb8b940a9defaca5d4f79e5acd5085f";
sha256 = "244e79c625be65237677c79424d4476de6c406805910015d4adbd0186c64a6a2";
};
nativeBuildInputs = [ pytestrunner pkgconfig pkg-config ];

View File

@ -2,11 +2,11 @@
buildPythonPackage rec {
pname = "requests-hawk";
version = "1.0.1";
version = "1.1.0";
src = fetchPypi {
inherit pname version;
sha256 = "1qcga289yr6qlkmc6fjk0ia6l5cg0galklpdzpslf1y8ky9zb7rl";
sha256 = "1a5e61cab14627f1b5ba7de0e3fb2b681007ff7b2a49110d504e5cd6d7fd62d6";
};
propagatedBuildInputs = [ mohawk requests ];

View File

@ -15,12 +15,12 @@
buildPythonPackage rec {
pname = "sqlite-utils";
version = "3.0";
version = "3.1";
disabled = pythonOlder "3.6";
src = fetchPypi {
inherit pname version;
sha256 = "a158265fde85a6757b7f09b568b1f7d6eaf75eaae208be27336f09dc048e5bcf";
sha256 = "53950eb89f77066d6caf553c52ec01701a8bebbaffa9e0a627df3f229ca8720f";
};
propagatedBuildInputs = [

View File

@ -6,11 +6,11 @@
buildPythonPackage rec {
pname = "tlslite-ng";
version = "0.7.5";
version = "0.7.6";
src = fetchPypi {
inherit pname version;
sha256 = "1aw7j50byzab0xwp50m5w5c14fzdzwk2law5a5bn6dn3i5fc6fw2";
sha256 = "6ab56f0e9629ce3d807eb528c9112defa9f2e00af2b2961254e8429ca5c1ff00";
};
buildInputs = [ ecdsa ];

View File

@ -5,11 +5,11 @@
buildPythonPackage rec {
pname = "toposort";
version = "1.5";
version = "1.6";
src = fetchPypi {
inherit pname version;
sha256 = "dba5ae845296e3bf37b042c640870ffebcdeb8cd4df45adaa01d8c5476c557dd";
sha256 = "a7428f56ef844f5055bb9e9e44b343983773ae6dce0fe5b101e08e27ffbd50ac";
};
meta = with stdenv.lib; {

View File

@ -2,13 +2,13 @@
buildPythonPackage rec {
pname = "ufonormalizer";
version = "0.5.0";
version = "0.5.2";
disabled = pythonOlder "3.5";
src = fetchPypi {
inherit pname version;
sha256 = "1qc3389i2y16n1hjg4dzk821klzjipbh9c9yci70z51pp21mwwh5";
sha256 = "03k9dndnv3p3ysfq5wq8bnaijvqip61fh79d5gz2zk284vc47mgj";
extension = "zip";
};

View File

@ -1,16 +1,16 @@
{ lib, buildGoPackage, fetchFromGitLab, fetchurl }:
let
version = "13.6.0";
version = "13.7.0";
# Gitlab runner embeds some docker images these are prebuilt for arm and x86_64
docker_x86_64 = fetchurl {
url = "https://gitlab-runner-downloads.s3.amazonaws.com/v${version}/helper-images/prebuilt-x86_64.tar.xz";
sha256 = "0q1f4dmdkqrdzs3mb5wk6k6x50li4c7js0blzfcz3f3n8gm925jw";
sha256 = "0hbzvw6bdy31yqnri7379gpm8n5nv6ayr1idg02c9zqgcsgm34jf";
};
docker_arm = fetchurl {
url = "https://gitlab-runner-downloads.s3.amazonaws.com/v${version}/helper-images/prebuilt-arm.tar.xz";
sha256 = "1hxjqk4in1a2abcyxj7556fcscxq4cfy24cgcmh1qhvirnm5j6mc";
sha256 = "036drxlkmm35mdl0f5k79hnmwvf8gadgsxx71jprn1fjjzk3cxmz";
};
in
buildGoPackage rec {
@ -30,7 +30,7 @@ buildGoPackage rec {
owner = "gitlab-org";
repo = "gitlab-runner";
rev = "v${version}";
sha256 = "0vwky4hdkh1qvd61zdf2avbbnn3ya6pdicqggh2fx7k04pnp05mh";
sha256 = "0v2wcalvs7gsbi33jm35k01cqv2iqz3k3yfjjw08dssg358d0vfp";
};
patches = [ ./fix-shell-path.patch ];

View File

@ -0,0 +1,31 @@
{ stdenv, buildGoPackage, fetchFromGitHub }:
buildGoPackage rec {
pname = "docopts";
version = "0.6.3-rc2";
src = fetchFromGitHub {
owner = "docopt";
repo = pname;
rev = "v${version}";
sha256 = "sha256-PmsTkPT/sf70MKYLhHvjCDb2o3VQ1k7d++RUW7rcoAg=";
};
goPackagePath = "github.com/docopt/${pname}";
goDeps = ./deps.nix;
subPackages = [ "./" ];
postInstall = ''
install -D -m 755 ./go/src/$goPackagePath/docopts.sh $out/bin/docopts.sh
'';
meta = with stdenv.lib; {
homepage = "https://github.com/docopt/${pname}";
description = "docopt CLI tool for shell scripting";
license = licenses.mit;
maintainers = [ maintainers.confus ];
platforms = platforms.linux;
};
}

View File

@ -0,0 +1,11 @@
[
{
goPackagePath = "github.com/docopt/docopt-go";
fetch = {
type = "git";
url = "https://github.com/docopt/docopt.go";
rev = "ee0de3bc6815ee19d4a46c7eb90f829db0e014b1"; # "0.6.2";
sha256 = "sha256-0mCKIC5x7aauBL8ahXB9ExMfoTJl55HaafWWWPNRmUI=";
};
}
]

View File

@ -0,0 +1,23 @@
{ stdenv, fetchFromGitHub, rustPlatform, cmake }:
rustPlatform.buildRustPackage rec {
pname = "unused";
version = "0.2.1";
src = fetchFromGitHub {
owner = "unused-code";
repo = pname;
rev = version;
sha256 = "06r6m7k570rdm9szghnp3g4r6ij0vp8apfanqzzxv2hd7gf8v62b";
};
nativeBuildInputs = [ cmake ];
cargoSha256 = "1c0gj2wp0nydv0binxj3ikm5sm6y5z3pklp5b06dgvq02licz57a";
meta = with stdenv.lib; {
description = "A tool to identify potentially unused code";
homepage = "https://unused.codes";
license = licenses.mit;
maintainers = [ maintainers.lrworth ];
};
}

View File

@ -1,7 +1,7 @@
{ stdenv, buildGoPackage, fetchFromGitHub }:
buildGoPackage rec {
pname = "packer";
version = "1.6.5";
version = "1.6.6";
goPackagePath = "github.com/hashicorp/packer";
@ -11,7 +11,7 @@ buildGoPackage rec {
owner = "hashicorp";
repo = "packer";
rev = "v${version}";
sha256 = "sha256-M4PZnqdU5+w/B821cs1bJYzeilqdZ93fh5PErVgqBOQ=";
sha256 = "sha256-kFDy8Zlx+D5JDyNlAmB/ICTe4K9s6KDbALP5pom5OQg=";
};
meta = with stdenv.lib; {

View File

@ -0,0 +1,32 @@
{ stdenv, lib, fetchurl, SDL2, SDL2_image, SDL2_ttf, SDL2_mixer
, SDL2_net , SDL2_gfx, zlib, physfs, curl, libxml2, libpng, pkg-config
, libGL, autoreconfHook }:
stdenv.mkDerivation rec {
pname = "manaplus";
version = "1.9.3.23";
src = fetchurl {
url = "https://download.evolonline.org/manaplus/download/${version}/manaplus-${version}.tar.xz";
sha256 = "1ky182p4svwdqm6cf7jbns85hidkhkhq4s17cs2p381f0klapfjz";
};
nativeBuildInputs = [
autoreconfHook pkg-config
];
buildInputs = [
SDL2 SDL2_image SDL2_ttf SDL2_mixer SDL2_net SDL2_gfx zlib
physfs curl libxml2 libpng libGL
];
configureFlags = [ "--with-sdl2" "--without-dyecmd" ];
enableParallelBuilding = true;
meta = {
maintainers = [ lib.maintainers.lheckemann ];
description = "A free OpenSource 2D MMORPG client";
homepage = "https://manaplus.org/";
license = lib.licenses.gpl2;
};
}

View File

@ -1,14 +1,14 @@
{ stdenv, buildPackages, fetchFromGitHub, fetchpatch, perl, buildLinux, ... } @ args:
buildLinux (args // {
version = "5.8.0-2020.09.07";
modDirVersion = "5.8.0";
version = "5.9.0-2020.11.20";
modDirVersion = "5.9.0";
src = fetchFromGitHub {
owner = "koverstreet";
repo = "bcachefs";
rev = "fb2821e72648f35d3cff61ac26041d634fd1dacf";
sha256 = "0f9hx6fz27rm8h1lk9868v727klvyzcbw6hcgm5mypbfq1nqirdy";
rev = "6a505b63ed3003faf5000f19fd08bbd477d93fbc";
sha256 = "1rf34gzv9npafp1c3i6lymk3b0gnqp4rb0wl33pw6yrpgnsry3cc";
};
extraConfig = "BCACHEFS_FS m";

View File

@ -3,51 +3,6 @@
let
versionMap = {
"0.9" = {
kafkaVersion = "0.9.0.1";
scalaVersion = "2.11";
sha256 = "0ykcjv5dz9i5bws9my2d60pww1g9v2p2nqr67h0i2xrjm7az8a6v";
};
"0.10" = {
kafkaVersion = "0.10.2.2";
scalaVersion = "2.12";
sha256 = "13wibnz7n7znv2g13jlpkz1r0y73qy5b02pdqhsq7cl72h9s6wms";
};
"0.11" = {
kafkaVersion = "0.11.0.3";
scalaVersion = "2.12";
sha256 = "0zkzp9a8lcfcpavks131119v10hpn90sc0pw4f90jc4zn2yw3rgd";
};
"1.0" = {
kafkaVersion = "1.0.2";
scalaVersion = "2.12";
sha256 = "0cmq8ww1lbkp3ipy9d1q8c1yz4kfwj0v4ynnhsk1i48sqlmvwybj";
};
"1.1" = {
kafkaVersion = "1.1.1";
scalaVersion = "2.12";
sha256 = "13vg0wm2fsd06pfw05m4bhcgbjmb2bmd4i31zfs48w0f7hjc8qf2";
};
"2.0" = {
kafkaVersion = "2.0.1";
scalaVersion = "2.12";
sha256 = "0i62q3542cznf711kiskaa30l06gq9ckszlxja4k1vs1flxz5khl";
};
"2.1" = {
kafkaVersion = "2.1.1";
scalaVersion = "2.12";
sha256 = "1gm7xiqkbg415mbj9mlazcndmky81xvg4wmz0h94yv1whp7fslr0";
};
"2.2" = {
kafkaVersion = "2.2.1";
scalaVersion = "2.12";
sha256 = "1svdnhdzq9a6jsig513i0ahaysfgar5i385bq9fz7laga6a4z3qv";
};
"2.3" = {
kafkaVersion = "2.3.1";
scalaVersion = "2.12";
sha256 = "0bldfrvd351agm237icnvn36va67crpnzmbh6dlq84ip910xsgas";
};
"2.4" = {
kafkaVersion = "2.4.1";
scalaVersion = "2.12";

View File

@ -2,14 +2,14 @@
, which, nodejs, mkYarnPackage, python2, nixosTests }:
mkYarnPackage rec {
name = "codimd";
version = "1.6.0";
name = "hedgedoc";
version = "1.7.0";
src = fetchFromGitHub {
owner = "codimd";
repo = "server";
owner = "hedgedoc";
repo = "hedgedoc";
rev = version;
sha256 = "1208a24v664ha9qzr7ky6i3ynphkaj0xi5l3rsw743i22nv5aj33";
sha256 = "1zz5ni9cp1dhcvcrzks13pww5qm2wna2hh0k59pfz7c897rs1l7v";
};
nativeBuildInputs = [ which makeWrapper ];
@ -20,19 +20,15 @@ mkYarnPackage rec {
packageJSON = ./package.json;
postConfigure = ''
rm deps/CodiMD/node_modules
cp -R "$node_modules" deps/CodiMD
chmod -R u+w deps/CodiMD
rm deps/HedgeDoc/node_modules
cp -R "$node_modules" deps/HedgeDoc
chmod -R u+w deps/HedgeDoc
'';
buildPhase = ''
runHook preBuild
cd deps/CodiMD
pushd node_modules/codemirror
npm run install
popd
cd deps/HedgeDoc
pushd node_modules/sqlite3
export CPPFLAGS="-I${nodejs}/include/node"
@ -52,23 +48,23 @@ mkYarnPackage rec {
mkdir -p $out
cp -R {app.js,bin,lib,locales,node_modules,package.json,public} $out
cat > $out/bin/codimd <<EOF
cat > $out/bin/hedgedoc <<EOF
#!${stdenv.shell}/bin/sh
${nodejs}/bin/node $out/app.js
EOF
chmod +x $out/bin/codimd
wrapProgram $out/bin/codimd \
chmod +x $out/bin/hedgedoc
wrapProgram $out/bin/hedgedoc \
--set NODE_PATH "$out/lib/node_modules"
runHook postDist
'';
passthru.tests = { inherit (nixosTests) codimd; };
passthru.tests = { inherit (nixosTests) hedgedoc; };
meta = with stdenv.lib; {
description = "Realtime collaborative markdown notes on all platforms";
license = licenses.agpl3;
homepage = "https://github.com/codimd/server";
homepage = "https://hedgedoc.org";
maintainers = with maintainers; [ willibutz ma27 globin ];
platforms = platforms.linux;
};

View File

@ -1,13 +1,14 @@
{
"name": "CodiMD",
"version": "1.6.0",
"description": "Realtime collaborative markdown notes on all platforms.",
"name": "HedgeDoc",
"version": "1.7.0",
"description": "The best platform to write and share markdown.",
"main": "app.js",
"license": "AGPL-3.0",
"scripts": {
"test": "npm run-script eslint && npm run-script jsonlint && npm run-script mocha-suite",
"eslint": "node_modules/.bin/eslint --max-warnings 0 lib public test app.js",
"jsonlint": "find . -not -path './node_modules/*' -type f -name '*.json' -o -type f -name '*.json.example' | while read json; do echo $json ; jq . $json; done",
"markdownlint": "remark .",
"mocha-suite": "NODE_ENV=test CMD_DB_URL=\"sqlite::memory:\" mocha --exit",
"standard": "echo 'standard is no longer being used, use `npm run eslint` instead!' && exit 1",
"dev": "webpack --config webpack.dev.js --progress --colors --watch",
@ -18,9 +19,9 @@
"dependencies": {
"@passport-next/passport-openid": "^1.0.0",
"Idle.Js": "git+https://github.com/shawnmclean/Idle.js",
"archiver": "^2.1.1",
"archiver": "^5.0.2",
"async": "^2.1.4",
"aws-sdk": "^2.345.0",
"aws-sdk": "^2.521.0",
"azure-storage": "^2.7.0",
"base64url": "^3.0.0",
"body-parser": "^1.15.2",
@ -28,16 +29,16 @@
"bootstrap-validator": "^0.11.8",
"chance": "^1.0.4",
"cheerio": "^0.22.0",
"codemirror": "git+https://github.com/hackmdio/CodeMirror.git",
"codemirror": "git+https://github.com/hedgedoc/CodeMirror.git",
"compression": "^1.6.2",
"connect-flash": "^0.1.1",
"connect-session-sequelize": "^6.0.0",
"cookie": "0.3.1",
"cookie-parser": "1.4.3",
"cookie": "^0.4.0",
"cookie-parser": "^1.4.3",
"deep-freeze": "^0.0.1",
"diff-match-patch": "git+https://github.com/hackmdio/diff-match-patch.git",
"ejs": "^2.5.5",
"emojify.js": "~1.1.0",
"emojify.js": "^1.1.0",
"escape-html": "^1.0.3",
"express": ">=4.14",
"express-session": "^1.14.2",
@ -45,24 +46,24 @@
"flowchart.js": "^1.6.4",
"fork-awesome": "^1.1.3",
"formidable": "^1.0.17",
"gist-embed": "~2.6.0",
"gist-embed": "^2.6.0",
"graceful-fs": "^4.1.11",
"handlebars": "^4.5.2",
"helmet": "^3.21.1",
"highlight.js": "~9.12.0",
"i18n": "^0.8.3",
"highlight.js": "^9.12.0",
"i18n": "^0.13.0",
"imgur": "git+https://github.com/hackmdio/node-imgur.git",
"ionicons": "~2.0.1",
"jquery": "^3.4.1",
"ionicons": "^2.0.1",
"jquery": "^3.5.1",
"jquery-mousewheel": "^3.1.13",
"jquery-ui": "^1.12.1",
"js-cookie": "^2.1.3",
"js-sequence-diagrams": "git+https://github.com/codimd/js-sequence-diagrams.git",
"js-sequence-diagrams": "git+https://github.com/hedgedoc/js-sequence-diagrams.git",
"js-yaml": "^3.13.1",
"jsdom-nogyp": "^0.8.3",
"keymaster": "^1.6.2",
"list.js": "^1.5.0",
"lodash": "^4.17.11",
"lodash": "^4.17.20",
"lutim": "^1.0.2",
"lz-string": "git+https://github.com/hackmdio/lz-string.git",
"mariadb": "^2.1.2",
@ -79,11 +80,10 @@
"markdown-it-regexp": "^0.4.0",
"markdown-it-sub": "^1.0.0",
"markdown-it-sup": "^1.0.0",
"markdown-pdf": "^10.0.0",
"mathjax": "~2.7.6",
"mathjax": "^2.7.6",
"mattermost": "^3.4.0",
"mermaid": "~8.4.6",
"meta-marked": "git+https://github.com/codimd/meta-marked#semver:^0.4.5",
"mermaid": "^8.5.1",
"meta-marked": "git+https://github.com/hedgedoc/meta-marked",
"method-override": "^2.3.7",
"minimist": "^1.2.0",
"minio": "^6.0.0",
@ -103,22 +103,22 @@
"passport-twitter": "^1.0.4",
"passport.socketio": "^3.7.0",
"pdfobject": "^2.0.201604172",
"pg": "^7.12.1",
"pg": "^8.2.1",
"pg-hstore": "^2.3.3",
"prismjs": "^1.6.0",
"randomcolor": "^0.5.3",
"raphael": "git+https://github.com/dmitrybaranovskiy/raphael",
"prismjs": "^1.21.0",
"randomcolor": "^0.6.0",
"raphael": "^2.3.0",
"readline-sync": "^1.4.7",
"request": "^2.88.0",
"reveal.js": "~3.9.2",
"reveal.js": "^3.9.2",
"scrypt-async": "^2.0.1",
"scrypt-kdf": "^2.0.1",
"select2": "^3.5.2-browserify",
"sequelize": "^5.21.1",
"sequelize-cli": "^5.5.1",
"shortid": "2.2.8",
"socket.io": "~2.1.1",
"socket.io-client": "~2.1.1",
"shortid": "2.2.16",
"socket.io": "^2.1.1",
"socket.io-client": "^2.1.1",
"spin.js": "^2.3.2",
"sqlite3": "^4.1.0",
"store": "^2.0.12",
@ -137,20 +137,20 @@
"xss": "^1.0.3"
},
"resolutions": {
"**/tough-cookie": "~2.4.0",
"**/tough-cookie": "~2.5.0",
"**/minimatch": "^3.0.2",
"**/request": "^2.88.0"
},
"engines": {
"node": ">=8.x"
"node": ">=10.13"
},
"bugs": "https://github.com/codimd/server/issues",
"bugs": "https://github.com/hedgedoc/hedgedoc/issues",
"keywords": [
"Collaborative",
"Markdown",
"Notes"
],
"homepage": "https://codimd.org",
"homepage": "https://hedgedoc.org",
"maintainers": [
{
"name": "Claudius Coenen",
@ -164,42 +164,43 @@
],
"repository": {
"type": "git",
"url": "https://github.com/codimd/server.git"
"url": "https://github.com/hedgedoc/hedgedoc.git"
},
"devDependencies": {
"babel-cli": "^6.26.0",
"babel-core": "^6.26.3",
"babel-loader": "^7.1.4",
"babel-plugin-transform-runtime": "^6.23.0",
"babel-polyfill": "^6.26.0",
"babel-preset-env": "^1.7.0",
"babel-runtime": "^6.26.0",
"copy-webpack-plugin": "^5.0.5",
"css-loader": "^3.2.0",
"eslint": "^5.9.0",
"eslint-config-standard": "^12.0.0",
"eslint-plugin-import": "^2.14.0",
"eslint-plugin-node": "^8.0.0",
"eslint-plugin-promise": "^4.0.1",
"eslint-plugin-standard": "^4.0.0",
"expose-loader": "^0.7.5",
"file-loader": "^4.3.0",
"html-webpack-plugin": "^4.0.0-beta.11",
"imports-loader": "^0.8.0",
"jsonlint": "^1.6.2",
"less": "^3.10.3",
"less-loader": "^5.0.0",
"mini-css-extract-plugin": "^0.8.0",
"mocha": "^5.2.0",
"mock-require": "^3.0.3",
"optimize-css-assets-webpack-plugin": "^5.0.3",
"script-loader": "^0.7.2",
"string-loader": "^0.0.1",
"style-loader": "^1.0.0",
"url-loader": "^2.3.0",
"webpack": "^4.41.2",
"webpack-cli": "^3.3.10",
"webpack-merge": "^4.2.2"
"babel-cli": "6.26.0",
"babel-core": "6.26.3",
"babel-loader": "7.1.5",
"babel-plugin-transform-runtime": "6.23.0",
"babel-polyfill": "6.26.0",
"babel-preset-env": "1.7.0",
"babel-runtime": "6.26.0",
"copy-webpack-plugin": "6.4.1",
"css-loader": "3.6.0",
"eslint": "5.16.0",
"eslint-config-standard": "12.0.0",
"eslint-plugin-import": "2.22.1",
"eslint-plugin-node": "8.0.1",
"eslint-plugin-promise": "4.2.1",
"eslint-plugin-standard": "4.1.0",
"expose-loader": "0.7.5",
"file-loader": "4.3.0",
"html-webpack-plugin": "4.5.0",
"imports-loader": "0.8.0",
"jsonlint": "1.6.3",
"less": "3.13.1",
"less-loader": "5.0.0",
"mini-css-extract-plugin": "0.12.0",
"mocha": "5.2.0",
"mock-require": "3.0.3",
"optimize-css-assets-webpack-plugin": "5.0.4",
"remark-cli": "8.0.1",
"remark-preset-lint-markdown-style-guide": "3.0.1",
"script-loader": "0.7.2",
"string-loader": "0.0.1",
"url-loader": "2.3.0",
"webpack": "4.44.2",
"webpack-cli": "3.3.12",
"webpack-merge": "4.2.2"
},
"optionalDependencies": {
"bufferutil": "^4.0.0",

View File

@ -31,14 +31,14 @@ in
buildPythonApplication rec {
pname = "lexicon";
version = "3.4.3";
version = "3.5.2";
format = "pyproject";
src = fetchFromGitHub {
owner = "AnalogJ";
repo = pname;
rev = "v${version}";
sha256 = "1ym4gj4xyd69rsc5niilvcb72gys22rjxhj4qd574vyx3ryl34za";
sha256 = "1jsc2ybbf3mbvgzkgliria494dpj23mgqnw2lh43cnd9rgsjvzn3";
};
nativeBuildInputs = [

View File

@ -6,13 +6,13 @@ assert fuseSupport -> fuse3 != null;
stdenv.mkDerivation {
pname = "bcachefs-tools";
version = "2020-08-25";
version = "2020-11-17";
src = fetchFromGitHub {
owner = "koverstreet";
repo = "bcachefs-tools";
rev = "487ddeb03c574e902c5b749b4307e87e2150976a";
sha256 = "1pcid7apxmbl9dyvxcqby3k489wi69k8pl596ddzmkw5gmhgvgid";
rev = "41bec63b265a38dd9fa168b6042ea5bf07135048";
sha256 = "1y3187kpw1bmnl97isv28k2sw8cmrnsn31a0dw745adwm0n7z6fj";
};
postPatch = ''
@ -22,11 +22,7 @@ stdenv.mkDerivation {
"INITRAMFS_DIR=${placeholder "out"}/etc/initramfs-tools"
'';
enableParallelBuilding = true;
nativeBuildInputs = [
pkgconfig
];
nativeBuildInputs = [ pkgconfig ];
buildInputs = [
libuuid libscrypt libsodium keyutils liburcu zlib libaio
@ -34,22 +30,14 @@ stdenv.mkDerivation {
] ++ stdenv.lib.optional fuseSupport fuse3;
doCheck = false; # needs bcachefs module loaded on builder
checkFlags = [
"BCACHEFS_TEST_USE_VALGRIND=no"
];
checkInputs = [
valgrind
];
checkFlags = [ "BCACHEFS_TEST_USE_VALGRIND=no" ];
checkInputs = [ valgrind ];
preCheck = stdenv.lib.optionalString fuseSupport ''
rm tests/test_fuse.py
'';
installFlags = [
"PREFIX=${placeholder "out"}"
];
installFlags = [ "PREFIX=${placeholder "out"}" ];
meta = with stdenv.lib; {
description = "Tool for managing bcachefs filesystems";

View File

@ -0,0 +1,47 @@
{ fetchFromGitHub
, stdenv
, ncurses, neovim, procps
, pandoc, lua51Packages, util-linux
}:
stdenv.mkDerivation rec {
pname = "nvimpager";
version = "0.9";
src = fetchFromGitHub {
owner = "lucc";
repo = pname;
rev = "v${version}";
sha256 = "1xy5387szfw0bp8dr7d4z33wd4xva7q219rvz8gc0vvv1vsy73va";
};
buildInputs = [
ncurses # for tput
procps # for nvim_get_proc() which uses ps(1)
];
nativeBuildInputs = [ pandoc ];
makeFlags = [ "PREFIX=$(out)" ];
buildFlags = [ "nvimpager.configured" ];
preBuild = ''
patchShebangs nvimpager
substituteInPlace nvimpager --replace ':-nvim' ':-${neovim}/bin/nvim'
'';
doCheck = true;
checkInputs = [ lua51Packages.busted util-linux neovim ];
checkPhase = ''script -c "busted --lpath './?.lua' test"'';
meta = with stdenv.lib; {
description = "Use neovim as pager";
longDescription = ''
Use neovim as a pager to view manpages, diffs, etc with nvim's syntax
highlighting. Includes a cat mode to print highlighted files to stdout
and a ansi esc mode to highlight ansi escape sequences in neovim.
'';
homepage = "https://github.com/lucc/nvimpager";
license = licenses.bsd2;
platforms = platforms.unix;
maintainers = [ maintainers.lucc ];
};
}

View File

@ -18,11 +18,11 @@ buildPythonPackage rec {
# The websites youtube-dl deals with are a very moving target. That means that
# downloads break constantly. Because of that, updates should always be backported
# to the latest stable release.
version = "2020.12.14";
version = "2020.12.22";
src = fetchurl {
url = "https://yt-dl.org/downloads/${version}/${pname}-${version}.tar.gz";
sha256 = "0ws2nsvn0qlnnyxz9g95ffygscfmg5npzmwbq8iyyi6b2njsb0cn";
sha256 = "0v7pyrdii8yqcx9pjl6r46qj7ljjmwmwkrd5sghf1vmgfwacx5fc";
};
nativeBuildInputs = [ installShellFiles makeWrapper ];

View File

@ -6,11 +6,11 @@
stdenv.mkDerivation rec {
pname = "sudo";
version = "1.9.4p1";
version = "1.9.4p2";
src = fetchurl {
url = "https://www.sudo.ws/dist/${pname}-${version}.tar.gz";
sha256 = "EXIJnfzdL6SX4To8J0qfWSCr02rn0veqrNa8a8kv1nc=";
sha256 = "0r0g8z289ipw0zpkhmm33cpfm42j01jds2q1wilhh3flg7xg2jn3";
};
prePatch = ''

View File

@ -1,16 +1,32 @@
{ lib, buildGoModule, fetchFromGitHub }:
{ lib, buildGoModule, fetchFromGitHub, git }:
buildGoModule rec {
pname = "chroma";
version = "0.8.1";
version = "0.8.2";
src = fetchFromGitHub {
owner = "alecthomas";
repo = "chroma";
repo = pname;
rev = "v${version}";
sha256 = "1gwwfn26aipzzvyy466gi6r54ypfy3ylnbi8c4xwch9pkgw16w98";
sha256 = "0vzxd0jvjaakwjvkkkjppakjb00z44k7gb5ng1i4924agh24n5ka";
leaveDotGit = true;
fetchSubmodules = true;
};
nativeBuildInputs = [ git ];
# populate values otherwise taken care of by goreleaser
# https://github.com/alecthomas/chroma/issues/435
postPatch = ''
commit="$(git rev-parse HEAD)"
date=$(git show -s --format=%aI "$commit")
substituteInPlace cmd/chroma/main.go \
--replace 'version = "?"' 'version = "${version}"' \
--replace 'commit = "?"' "commit = \"$commit\"" \
--replace 'date = "?"' "date = \"$date\""
'';
vendorSha256 = "16cnc4scgkx8jan81ymha2q1kidm6hzsnip5mmgbxpqcc2h7hv9m";
subPackages = [ "cmd/chroma" ];

View File

@ -46,6 +46,15 @@ mapAliases ({
ammonite-repl = ammonite; # added 2017-05-02
amsn = throw "amsn has been removed due to being unmaintained."; # added 2020-12-09
antimicro = throw "antimicro has been removed as it was broken, see antimicroX instead."; # added 2020-08-06
apacheKafka_0_9 = throw "kafka 0.9 is no longer supported. Please upgrade to a newer version."; # added 2020-12-21
apacheKafka_0_10 = throw "kafka 0.10 is no longer supported. Please upgrade to a newer version."; # added 2020-12-21
apacheKafka_0_11 = throw "kafka 0.11 is no longer supported. Please upgrade to a newer version."; # added 2020-12-21
apacheKafka_1_0 = throw "kafka 1.0 is no longer supported. Please upgrade to a newer version."; # added 2020-12-21
apacheKafka_1_1 = throw "kafka 1.1 is no longer supported. Please upgrade to a newer version."; # added 2020-12-21
apacheKafka_2_0 = throw "kafka 2.0 is no longer supported. Please upgrade to a newer version."; # added 2020-12-21
apacheKafka_2_1 = throw "kafka 2.1 is no longer supported. Please upgrade to a newer version."; # added 2020-12-21
apacheKafka_2_2 = throw "kafka 2.2 is no longer supported. Please upgrade to a newer version."; # added 2020-12-21
apacheKafka_2_3 = throw "kafka 2.3 is no longer supported. Please upgrade to a newer version."; # added 2020-12-21
arduino_core = arduino-core; # added 2015-02-04
arora = throw "arora has been removed."; # added 2020-09-09
asciidocFull = asciidoc-full; # added 2014-06-22
@ -88,6 +97,7 @@ mapAliases ({
clangAnalyzer = clang-analyzer; # added 2015-02-20
clawsMail = claws-mail; # added 2016-04-29
clutter_gtk = clutter-gtk; # added 2018-02-25
codimd = hedgedoc; # added 2020-11-29
compton = picom; # added 2019-12-02
compton-git = compton; # added 2019-05-20
conntrack_tools = conntrack-tools; # added 2018-05

View File

@ -2969,9 +2969,7 @@ in
cmt = callPackage ../applications/audio/cmt {};
codimd = callPackage ../servers/web-apps/codimd {
nodejs = nodejs-12_x;
};
hedgedoc = callPackage ../servers/web-apps/hedgedoc { };
colord = callPackage ../tools/misc/colord { };
@ -6078,6 +6076,9 @@ in
nomad_0_12 = callPackage ../applications/networking/cluster/nomad/0.12.nix {
buildGoPackage = buildGo114Package;
};
nomad_1_0 = callPackage ../applications/networking/cluster/nomad/1.0.nix {
buildGoPackage = buildGo115Package;
};
notable = callPackage ../applications/misc/notable { };
@ -6189,6 +6190,8 @@ in
nssmdns = callPackage ../tools/networking/nss-mdns { };
nvimpager = callPackage ../tools/misc/nvimpager { };
nwdiag = with python3Packages; toPythonApplication nwdiag;
nxdomain = python3.pkgs.callPackage ../tools/networking/nxdomain { };
@ -11020,15 +11023,6 @@ in
ant = apacheAnt;
apacheKafka = apacheKafka_2_5;
apacheKafka_0_9 = callPackage ../servers/apache-kafka { majorVersion = "0.9"; };
apacheKafka_0_10 = callPackage ../servers/apache-kafka { majorVersion = "0.10"; };
apacheKafka_0_11 = callPackage ../servers/apache-kafka { majorVersion = "0.11"; };
apacheKafka_1_0 = callPackage ../servers/apache-kafka { majorVersion = "1.0"; };
apacheKafka_1_1 = callPackage ../servers/apache-kafka { majorVersion = "1.1"; };
apacheKafka_2_0 = callPackage ../servers/apache-kafka { majorVersion = "2.0"; };
apacheKafka_2_1 = callPackage ../servers/apache-kafka { majorVersion = "2.1"; };
apacheKafka_2_2 = callPackage ../servers/apache-kafka { majorVersion = "2.2"; };
apacheKafka_2_3 = callPackage ../servers/apache-kafka { majorVersion = "2.3"; };
apacheKafka_2_4 = callPackage ../servers/apache-kafka { majorVersion = "2.4"; };
apacheKafka_2_5 = callPackage ../servers/apache-kafka { majorVersion = "2.5"; };
@ -12271,6 +12265,8 @@ in
universal-ctags = callPackage ../development/tools/misc/universal-ctags { };
unused = callPackage ../development/tools/misc/unused { };
vagrant = callPackage ../development/tools/vagrant {};
vala-language-server = callPackage ../development/tools/vala-language-server {};
@ -12798,6 +12794,8 @@ in
docopt_cpp = callPackage ../development/libraries/docopt_cpp { };
docopts = callPackage ../development/tools/misc/docopts { };
dotconf = callPackage ../development/libraries/dotconf { };
draco = callPackage ../development/libraries/draco { };
@ -25971,6 +25969,8 @@ in
mari0 = callPackage ../games/mari0 { };
manaplus = callPackage ../games/manaplus { };
mars = callPackage ../games/mars { };
megaglest = callPackage ../games/megaglest {};