Project import generated by Copybara.

GitOrigin-RevId: 04a2b269d8921505a2969fc9ec25c1f517f2b307
This commit is contained in:
Default email 2021-03-20 04:20:00 +00:00
parent 32466344b3
commit 48af15f7a5
991 changed files with 18629 additions and 7346 deletions

View file

@ -53,6 +53,7 @@
"6.topic: kernel":
- pkgs/build-support/kernel/**/*
- pkgs/os-specific/linux/kernel/**/*
"6.topic: lua":
- pkgs/development/interpreters/lua-5/**/*

View file

@ -25,7 +25,7 @@ jobs:
- name: Fetch editorconfig-checker
if: env.PR_DIFF
env:
ECC_VERSION: "2.3.1"
ECC_VERSION: "2.3.5"
ECC_URL: "https://github.com/editorconfig-checker/editorconfig-checker/releases/download"
run: |
curl -sSf -O -L -C - "$ECC_URL/$ECC_VERSION/ec-linux-amd64.tar.gz" && \

View file

@ -111,6 +111,12 @@ Create a Docker image with many of the store paths being on their own layer to i
*Default:* the output path's hash
`fromImage` _optional_
: The repository tarball containing the base image. It must be a valid Docker image, such as one exported by `docker save`.
*Default:* `null`, which can be seen as equivalent to `FROM scratch` of a `Dockerfile`.
`contents` _optional_
: Top level paths in the container. Either a single derivation, or a list of derivations.

View file

@ -0,0 +1,19 @@
# FUSE {#sec-fuse}
Some packages rely on
[FUSE](https://www.kernel.org/doc/html/latest/filesystems/fuse.html) to provide
support for additional filesystems not supported by the kernel.
In general, FUSE software are primarily developed for Linux but many of them can
also run on macOS. Nixpkgs supports FUSE packages on macOS, but it requires
[macFUSE](https://osxfuse.github.io) to be installed outside of Nix. macFUSE
currently isn't packaged in Nixpkgs mainly because it includes a kernel
extension, which isn't supported by Nix outside of NixOS.
If a package fails to run on macOS with an error message similar to the
following, it's a likely sign that you need to have macFUSE installed.
dyld: Library not loaded: /usr/local/lib/libfuse.2.dylib
Referenced from: /nix/store/w8bi72bssv0bnxhwfw3xr1mvn7myf37x-sshfs-fuse-2.10/bin/sshfs
Reason: image not found
[1] 92299 abort /nix/store/w8bi72bssv0bnxhwfw3xr1mvn7myf37x-sshfs-fuse-2.10/bin/sshfs

View file

@ -12,6 +12,7 @@
<xi:include href="emacs.section.xml" />
<xi:include href="firefox.section.xml" />
<xi:include href="fish.section.xml" />
<xi:include href="fuse.section.xml" />
<xi:include href="ibus.section.xml" />
<xi:include href="kakoune.section.xml" />
<xi:include href="linux.section.xml" />

View file

@ -638,7 +638,7 @@ are disabled.
#### Using pythonImportsCheck
Although unit tests are highly prefered to valid correctness of a package. Not
Although unit tests are highly prefered to validate correctness of a package, not
all packages have test suites that can be ran easily, and some have none at all.
To help ensure the package still works, `pythonImportsCheck` can attempt to import
the listed modules.
@ -1487,11 +1487,12 @@ If you need to change a package's attribute(s) from `configuration.nix` you coul
nixpkgs.config.packageOverrides = super: {
python = super.python.override {
packageOverrides = python-self: python-super: {
zerobin = python-super.zerobin.overrideAttrs (oldAttrs: {
src = super.fetchgit {
url = "https://github.com/sametmax/0bin";
rev = "a344dbb18fe7a855d0742b9a1cede7ce423b34ec";
sha256 = "16d769kmnrpbdr0ph0whyf4yff5df6zi4kmwx7sz1d3r6c8p6xji";
twisted = python-super.twisted.overrideAttrs (oldAttrs: {
src = super.fetchPipy {
pname = "twisted";
version = "19.10.0";
sha256 = "7394ba7f272ae722a74f3d969dcf599bc4ef093bc392038748a490f1724a515d";
extension = "tar.bz2";
};
});
};
@ -1499,9 +1500,11 @@ If you need to change a package's attribute(s) from `configuration.nix` you coul
};
```
`pythonPackages.zerobin` is now globally overridden. All packages and also the
`zerobin` NixOS service use the new definition. Note that `python-super` refers
to the old package set and `python-self` to the new, overridden version.
`pythonPackages.twisted` is now globally overridden.
All packages and also all NixOS services that reference `twisted`
(such as `services.buildbot-worker`) now use the new definition.
Note that `python-super` refers to the old package set and `python-self`
to the new, overridden version.
To modify only a Python package set instead of a whole Python derivation, use
this snippet:
@ -1509,7 +1512,7 @@ this snippet:
```nix
myPythonPackages = pythonPackages.override {
overrides = self: super: {
zerobin = ...;
twisted = ...;
};
}
```
@ -1522,11 +1525,12 @@ Use the following overlay template:
self: super: {
python = super.python.override {
packageOverrides = python-self: python-super: {
zerobin = python-super.zerobin.overrideAttrs (oldAttrs: {
src = super.fetchgit {
url = "https://github.com/sametmax/0bin";
rev = "a344dbb18fe7a855d0742b9a1cede7ce423b34ec";
sha256 = "16d769kmnrpbdr0ph0whyf4yff5df6zi4kmwx7sz1d3r6c8p6xji";
twisted = python-super.twisted.overrideAttrs (oldAttrs: {
src = super.fetchPypi {
pname = "twisted";
version = "19.10.0";
sha256 = "7394ba7f272ae722a74f3d969dcf599bc4ef093bc392038748a490f1724a515d";
extension = "tar.bz2";
};
});
};
@ -1551,13 +1555,11 @@ In a `setup.py` or `setup.cfg` it is common to declare dependencies:
### Contributing guidelines
Following rules are desired to be respected:
The following rules are desired to be respected:
* Python libraries are called from `python-packages.nix` and packaged with
`buildPythonPackage`. The expression of a library should be in
`pkgs/development/python-modules/<name>/default.nix`.
* Libraries in `pkgs/top-level/python-packages.nix` are sorted
alphanumerically to avoid merge conflicts and ease locating attributes.
* Python applications live outside of `python-packages.nix` and are packaged
with `buildPythonApplication`.
* Make sure libraries build for all Python interpreters.
@ -1567,8 +1569,11 @@ Following rules are desired to be respected:
case, when you disable tests, leave a comment explaining why.
* Commit names of Python libraries should reflect that they are Python
libraries, so write for example `pythonPackages.numpy: 1.11 -> 1.12`.
* Attribute names in `python-packages.nix` should be normalized according to
[PEP 0503](https://www.python.org/dev/peps/pep-0503/#normalized-names). This
means that characters should be converted to lowercase and `.` and `_` should
be replaced by a single `-` (foo-bar-baz instead of Foo__Bar.baz )
* Attribute names in `python-packages.nix` should be sorted alphanumerically.
* Attribute names in `python-packages.nix` as well as `pname`s should match the
library's name on PyPI, but be normalized according to [PEP
0503](https://www.python.org/dev/peps/pep-0503/#normalized-names). This means
that characters should be converted to lowercase and `.` and `_` should be
replaced by a single `-` (foo-bar-baz instead of Foo__Bar.baz).
If necessary, `pname` has to be given a different value within `fetchPypi`.
* Attribute names in `python-packages.nix` should be sorted alphanumerically to
avoid merge conflicts and ease locating attributes.

View file

@ -361,6 +361,17 @@ rec {
*/
byName = attr: f: modules:
foldl' (acc: module:
if !(builtins.isAttrs module.${attr}) then
throw ''
You're trying to declare a value of type `${builtins.typeOf module.${attr}}'
rather than an attribute-set for the option
`${builtins.concatStringsSep "." prefix}'!
This usually happens if `${builtins.concatStringsSep "." prefix}' has option
definitions inside that are not matched. Please check how to properly define
this option by e.g. referring to `man 5 configuration.nix'!
''
else
acc // (mapAttrs (n: v:
(acc.${n} or []) ++ f module v
) module.${attr}

View file

@ -139,9 +139,10 @@ rec {
then throw ("File contains no gitdir reference: " + path)
else
let gitDir = absolutePath (dirOf path) (lib.head m);
commonDir' = if pathIsRegularFile "${gitDir}/commondir"
commonDir'' = if pathIsRegularFile "${gitDir}/commondir"
then lib.fileContents "${gitDir}/commondir"
else gitDir;
commonDir' = lib.removeSuffix "/" commonDir'';
commonDir = absolutePath gitDir commonDir';
refFile = lib.removePrefix "${commonDir}/" "${gitDir}/${file}";
in readCommitFromFile refFile commonDir

View file

@ -169,7 +169,7 @@ checkConfigOutput "foo" config.submodule.foo ./declare-submoduleWith-special.nix
## shorthandOnlyDefines config behaves as expected
checkConfigOutput "true" config.submodule.config ./declare-submoduleWith-shorthand.nix ./define-submoduleWith-shorthand.nix
checkConfigError 'is not of type `boolean' config.submodule.config ./declare-submoduleWith-shorthand.nix ./define-submoduleWith-noshorthand.nix
checkConfigError 'value is a boolean while a set was expected' config.submodule.config ./declare-submoduleWith-noshorthand.nix ./define-submoduleWith-shorthand.nix
checkConfigError "You're trying to declare a value of type \`bool'\nrather than an attribute-set for the option" config.submodule.config ./declare-submoduleWith-noshorthand.nix ./define-submoduleWith-shorthand.nix
checkConfigOutput "true" config.submodule.config ./declare-submoduleWith-noshorthand.nix ./define-submoduleWith-noshorthand.nix
## submoduleWith should merge all modules in one swoop

View file

@ -1036,6 +1036,16 @@
githubId = 75235;
name = "Michael Walker";
};
bartuka = {
email = "wand@hey.com";
github = "wandersoncferreira";
githubId = 17708295;
name = "Wanderson Ferreira";
keys = [{
longkeyid = "rsa4096/0x56840A614DBE37AE";
fingerprint = "A3E1 C409 B705 50B3 BF41 492B 5684 0A61 4DBE 37AE";
}];
};
basvandijk = {
email = "v.dijk.bas@gmail.com";
github = "basvandijk";
@ -2942,7 +2952,7 @@
name = "Adam Copp";
};
ethancedwards8 = {
email = "ethancarteredwards@gmail.com";
email = "ethan@ethancedwards.com";
github = "ethancedwards8";
githubId = 60861925;
name = "Ethan Carter Edwards";
@ -6905,6 +6915,12 @@
githubId = 16385648;
name = "Niko Pavlinek";
};
nixinator = {
email = "33lockdown33@protonmail.com";
github = "nixinator";
githubId = 66913205;
name = "Rick Sanchez";
};
nixy = {
email = "nixy@nixy.moe";
github = "nixy";
@ -7609,6 +7625,12 @@
fingerprint = "2CD2 B030 BD22 32EF DF5A 008A 3618 20A4 5DB4 1E9A";
}];
};
polendri = {
email = "paul@ijj.li";
github = "polendri";
githubId = 1829032;
name = "Paul Hendry";
};
polyrod = {
email = "dc1mdp@gmail.com";
github = "polyrod";
@ -7717,12 +7739,6 @@
githubId = 33375;
name = "Peter Sanford";
};
pshendry = {
email = "paul@pshendry.com";
github = "pshendry";
githubId = 1829032;
name = "Paul Hendry";
};
psibi = {
email = "sibi@psibi.in";
github = "psibi";
@ -8267,6 +8283,12 @@
fingerprint = "1401 1B63 393D 16C1 AA9C C521 8526 B757 4A53 6236";
}];
};
rowanG077 = {
email = "goemansrowan@gmail.com";
github = "rowanG077";
githubId = 7439756;
name = "Rowan Goemans";
};
royneary = {
email = "christian@ulrich.earth";
github = "royneary";
@ -8315,6 +8337,12 @@
githubId = 4958190;
name = "Rushmore Mushambi";
};
russell = {
email = "russell.sim@gmail.com";
github = "russell";
githubId = 2660;
name = "Russell Sim";
};
ruuda = {
email = "dev+nix@veniogames.com";
github = "ruuda";
@ -10186,6 +10214,12 @@
email = "vq@erq.se";
name = "Daniel Nilsson";
};
vrinek = {
email = "vrinek@hey.com";
github = "vrinek";
name = "Kostas Karachalios";
githubId = 81346;
};
vrthra = {
email = "rahul@gopinath.org";
github = "vrthra";
@ -10412,6 +10446,12 @@
githubId = 36407913;
name = "Uli Baum";
};
xfnw = {
email = "xfnw+nixos@riseup.net";
github = "xfnw";
githubId = 66233223;
name = "Owen";
};
xfix = {
email = "konrad@borowski.pw";
github = "xfix";
@ -10800,6 +10840,12 @@
githubId = 3674056;
name = "Asad Saeeduddin";
};
matthewcroughan = {
email = "matt@croughan.sh";
github = "matthewcroughan";
githubId = 26458780;
name = "Matthew Croughan";
};
ngerstle = {
name = "Nicholas Gerstle";
email = "ngerstle@gmail.com";

View file

@ -416,6 +416,7 @@ def rewrite_input(
}
with open(deprecated, "w") as f:
json.dump(deprecations, f, indent=4, sort_keys=True)
f.write("\n")
lines = sorted(lines, key=str.casefold)

View file

@ -1,5 +1,5 @@
.PHONY: all
all: manual-combined.xml format
all: manual-combined.xml
.PHONY: debug
debug: generated manual-combined.xml

View file

@ -25,7 +25,8 @@
<screen>
<prompt>$ </prompt>cd /path/to/nixpkgs/nixos/doc/manual
<prompt>$ </prompt>make
<prompt>$ </prompt>nix-shell
<prompt>nix-shell$ </prompt>make
</screen>
<para>

View file

@ -720,8 +720,8 @@ environment.systemPackages = [
</para>
<para>
Aditionally to the much stricter runtime environmet the
<literal>/dev/urandom</literal> mount lines we previously had in the code (that would
Additionally to the much stricter runtime environment the
<literal>/dev/urandom</literal> mount lines we previously had in the code (that
randomly failed during the stop-phase) have been removed as systemd will take care of those for us.
</para>
@ -809,7 +809,7 @@ environment.systemPackages = [
<listitem>
<para>
Platforms, like <varname>stdenv.hostPlatform</varname>, no longer have a <varname>platform</varname> attribute.
It has been (mostly) flattoned away:
It has been (mostly) flattened away:
</para>
<itemizedlist>
<listitem><para><varname>platform.gcc</varname> is now <varname>gcc</varname></para></listitem>

View file

@ -17,7 +17,19 @@ nix-build '<nixpkgs/nixos/lib/eval-config.nix>' \
img_path=$(echo gce/*.tar.gz)
img_name=${IMAGE_NAME:-$(basename "$img_path")}
img_id=$(echo "$img_name" | sed 's|.raw.tar.gz$||;s|\.|-|g;s|_|-|g')
img_family=$(echo "$img_id" | cut -d - -f1-4)
if ! gsutil ls "gs://${BUCKET_NAME}/$img_name"; then
gsutil cp "$img_path" "gs://${BUCKET_NAME}/$img_name"
gsutil acl ch -u AllUsers:R "gs://${BUCKET_NAME}/$img_name"
gcloud compute images create \
"$img_id" \
--source-uri "gs://${BUCKET_NAME}/$img_name" \
--family="$img_family"
gcloud compute images add-iam-policy-binding \
"$img_id" \
--member='allAuthenticatedUsers' \
--role='roles/compute.imageUser'
fi

View file

@ -71,7 +71,7 @@ in
#utmp = 29; # unused
# ddclient = 30; # converted to DynamicUser = true
davfs2 = 31;
#disnix = 33; # module removed
disnix = 33;
osgi = 34;
tor = 35;
cups = 36;
@ -387,7 +387,7 @@ in
utmp = 29;
# ddclient = 30; # converted to DynamicUser = true
davfs2 = 31;
#disnix = 33; # module removed
disnix = 33;
osgi = 34;
tor = 35;
#cups = 36; # unused

View file

@ -461,6 +461,8 @@
./services/misc/devmon.nix
./services/misc/dictd.nix
./services/misc/dwm-status.nix
./services/misc/dysnomia.nix
./services/misc/disnix.nix
./services/misc/docker-registry.nix
./services/misc/domoticz.nix
./services/misc/errbot.nix
@ -924,6 +926,7 @@
./services/web-apps/selfoss.nix
./services/web-apps/shiori.nix
./services/web-apps/virtlyst.nix
./services/web-apps/wiki-js.nix
./services/web-apps/whitebophir.nix
./services/web-apps/wordpress.nix
./services/web-apps/youtrack.nix

View file

@ -40,7 +40,7 @@ in
configFile = mkOption {
type = types.nullOr types.path;
default = null;
example = literalExample "$${pkgs.my-configs}/lesskey";
example = literalExample "\${pkgs.my-configs}/lesskey";
description = ''
Path to lesskey configuration file.

View file

@ -24,7 +24,7 @@ let
Type = "oneshot";
User = "acme";
Group = mkDefault "acme";
UMask = 0023;
UMask = 0022;
StateDirectoryMode = 750;
ProtectSystem = "full";
PrivateTmp = true;
@ -303,9 +303,15 @@ let
}
${optionalString (data.webroot != null) ''
# Ensure the webroot exists
mkdir -p '${data.webroot}/.well-known/acme-challenge'
chown 'acme:${data.group}' ${data.webroot}/{.well-known,.well-known/acme-challenge}
# Ensure the webroot exists. Fixing group is required in case configuration was changed between runs.
# Lego will fail if the webroot does not exist at all.
(
mkdir -p '${data.webroot}/.well-known/acme-challenge' \
&& chgrp '${data.group}' ${data.webroot}/.well-known/acme-challenge
) || (
echo 'Please ensure ${data.webroot}/.well-known/acme-challenge exists and is writable by acme:${data.group}' \
&& exit 1
)
''}
echo '${domainHash}' > domainhash.txt

View file

@ -213,7 +213,9 @@ in {
description = "Music Player Daemon Socket";
wantedBy = [ "sockets.target" ];
listenStreams = [
"${optionalString (cfg.network.listenAddress != "any") "${cfg.network.listenAddress}:"}${toString cfg.network.port}"
(if pkgs.lib.hasPrefix "/" cfg.network.listenAddress
then cfg.network.listenAddress
else "${optionalString (cfg.network.listenAddress != "any") "${cfg.network.listenAddress}:"}${toString cfg.network.port}")
];
socketConfig = {
Backlog = 5;

View file

@ -280,6 +280,8 @@ in
keep-outputs = true
keep-derivations = true
'' + optionalString (versionOlder (getVersion config.nix.package.out) "2.4pre") ''
# The default (`true') slows Nix down a lot since the build farm
# has so many GC roots.
gc-check-reachability = false

View file

@ -188,7 +188,8 @@ in
systemd.packages = [ package ];
# we cannot use DynamicUser as we need the the geoclue user to exist for the dbus policy to work
# we cannot use DynamicUser as we need the the geoclue user to exist for the
# dbus policy to work
users = {
users.geoclue = {
isSystemUser = true;
@ -217,6 +218,7 @@ in
# we can't be part of a system service, and the agent should
# be okay with the main service coming and going
wantedBy = [ "default.target" ];
unitConfig.ConditionUser = "!@system";
serviceConfig = {
Type = "exec";
ExecStart = "${package}/libexec/geoclue-2.0/demos/agent";

View file

@ -119,22 +119,31 @@ in
environment.systemPackages = [ pkgs.trousers ];
# system.activationScripts.tcsd =
# ''
# chown ${cfg.user}:${cfg.group} ${tcsdConf}
# '';
services.udev.extraRules = ''
# Give tcsd ownership of all TPM devices
KERNEL=="tpm[0-9]*", MODE="0660", OWNER="${cfg.user}", GROUP="${cfg.group}"
# Tag TPM devices to create a .device unit for tcsd to depend on
ACTION=="add", KERNEL=="tpm[0-9]*", TAG+="systemd"
'';
systemd.tmpfiles.rules = [
# Initialise the state directory
"d ${cfg.stateDir} 0770 ${cfg.user} ${cfg.group} - -"
];
systemd.services.tcsd = {
description = "TCSD";
after = [ "systemd-udev-settle.service" ];
description = "Manager for Trusted Computing resources";
documentation = [ "man:tcsd(8)" ];
requires = [ "dev-tpm0.device" ];
after = [ "dev-tpm0.device" ];
wantedBy = [ "multi-user.target" ];
path = [ pkgs.trousers ];
preStart =
''
mkdir -m 0700 -p ${cfg.stateDir}
chown -R ${cfg.user}:${cfg.group} ${cfg.stateDir}
'';
serviceConfig.ExecStart = "${pkgs.trousers}/sbin/tcsd -f -c ${tcsdConf}";
serviceConfig = {
User = cfg.user;
Group = cfg.group;
ExecStart = "${pkgs.trousers}/sbin/tcsd -f -c ${tcsdConf}";
};
};
users.users = optionalAttrs (cfg.user == "tss") {

View file

@ -39,7 +39,6 @@ in
type = types.package;
default = pkgs.graylog;
defaultText = "pkgs.graylog";
example = literalExample "pkgs.graylog";
description = "Graylog package to use.";
};
@ -138,14 +137,13 @@ in
"d '${cfg.messageJournalDir}' - ${cfg.user} - - -"
];
systemd.services.graylog = with pkgs; {
systemd.services.graylog = {
description = "Graylog Server";
wantedBy = [ "multi-user.target" ];
environment = {
JAVA_HOME = jre;
GRAYLOG_CONF = "${confFile}";
};
path = [ pkgs.jre_headless pkgs.which pkgs.procps ];
path = [ pkgs.which pkgs.procps ];
preStart = ''
rm -rf /var/lib/graylog/plugins || true
mkdir -p /var/lib/graylog/plugins -m 755

View file

@ -0,0 +1,98 @@
# Disnix server
{ config, lib, pkgs, ... }:
with lib;
let
cfg = config.services.disnix;
in
{
###### interface
options = {
services.disnix = {
enable = mkEnableOption "Disnix";
enableMultiUser = mkOption {
type = types.bool;
default = true;
description = "Whether to support multi-user mode by enabling the Disnix D-Bus service";
};
useWebServiceInterface = mkEnableOption "the DisnixWebService interface running on Apache Tomcat";
package = mkOption {
type = types.path;
description = "The Disnix package";
default = pkgs.disnix;
defaultText = "pkgs.disnix";
};
enableProfilePath = mkEnableOption "exposing the Disnix profiles in the system's PATH";
profiles = mkOption {
type = types.listOf types.string;
default = [ "default" ];
example = [ "default" ];
description = "Names of the Disnix profiles to expose in the system's PATH";
};
};
};
###### implementation
config = mkIf cfg.enable {
dysnomia.enable = true;
environment.systemPackages = [ pkgs.disnix ] ++ optional cfg.useWebServiceInterface pkgs.DisnixWebService;
environment.variables.PATH = lib.optionals cfg.enableProfilePath (map (profileName: "/nix/var/nix/profiles/disnix/${profileName}/bin" ) cfg.profiles);
services.dbus.enable = true;
services.dbus.packages = [ pkgs.disnix ];
services.tomcat.enable = cfg.useWebServiceInterface;
services.tomcat.extraGroups = [ "disnix" ];
services.tomcat.javaOpts = "${optionalString cfg.useWebServiceInterface "-Djava.library.path=${pkgs.libmatthew_java}/lib/jni"} ";
services.tomcat.sharedLibs = optional cfg.useWebServiceInterface "${pkgs.DisnixWebService}/share/java/DisnixConnection.jar"
++ optional cfg.useWebServiceInterface "${pkgs.dbus_java}/share/java/dbus.jar";
services.tomcat.webapps = optional cfg.useWebServiceInterface pkgs.DisnixWebService;
users.groups.disnix.gid = config.ids.gids.disnix;
systemd.services = {
disnix = mkIf cfg.enableMultiUser {
description = "Disnix server";
wants = [ "dysnomia.target" ];
wantedBy = [ "multi-user.target" ];
after = [ "dbus.service" ]
++ optional config.services.httpd.enable "httpd.service"
++ optional config.services.mysql.enable "mysql.service"
++ optional config.services.postgresql.enable "postgresql.service"
++ optional config.services.tomcat.enable "tomcat.service"
++ optional config.services.svnserve.enable "svnserve.service"
++ optional config.services.mongodb.enable "mongodb.service"
++ optional config.services.influxdb.enable "influxdb.service";
restartIfChanged = false;
path = [ config.nix.package cfg.package config.dysnomia.package "/run/current-system/sw" ];
environment = {
HOME = "/root";
}
// (if config.environment.variables ? DYSNOMIA_CONTAINERS_PATH then { inherit (config.environment.variables) DYSNOMIA_CONTAINERS_PATH; } else {})
// (if config.environment.variables ? DYSNOMIA_MODULES_PATH then { inherit (config.environment.variables) DYSNOMIA_MODULES_PATH; } else {});
serviceConfig.ExecStart = "${cfg.package}/bin/disnix-service";
};
};
};
}

View file

@ -0,0 +1,259 @@
{pkgs, lib, config, ...}:
with lib;
let
cfg = config.dysnomia;
printProperties = properties:
concatMapStrings (propertyName:
let
property = properties.${propertyName};
in
if isList property then "${propertyName}=(${lib.concatMapStrings (elem: "\"${toString elem}\" ") (properties.${propertyName})})\n"
else "${propertyName}=\"${toString property}\"\n"
) (builtins.attrNames properties);
properties = pkgs.stdenv.mkDerivation {
name = "dysnomia-properties";
buildCommand = ''
cat > $out << "EOF"
${printProperties cfg.properties}
EOF
'';
};
containersDir = pkgs.stdenv.mkDerivation {
name = "dysnomia-containers";
buildCommand = ''
mkdir -p $out
cd $out
${concatMapStrings (containerName:
let
containerProperties = cfg.containers.${containerName};
in
''
cat > ${containerName} <<EOF
${printProperties containerProperties}
type=${containerName}
EOF
''
) (builtins.attrNames cfg.containers)}
'';
};
linkMutableComponents = {containerName}:
''
mkdir ${containerName}
${concatMapStrings (componentName:
let
component = cfg.components.${containerName}.${componentName};
in
"ln -s ${component} ${containerName}/${componentName}\n"
) (builtins.attrNames (cfg.components.${containerName} or {}))}
'';
componentsDir = pkgs.stdenv.mkDerivation {
name = "dysnomia-components";
buildCommand = ''
mkdir -p $out
cd $out
${concatMapStrings (containerName:
linkMutableComponents { inherit containerName; }
) (builtins.attrNames cfg.components)}
'';
};
dysnomiaFlags = {
enableApacheWebApplication = config.services.httpd.enable;
enableAxis2WebService = config.services.tomcat.axis2.enable;
enableDockerContainer = config.virtualisation.docker.enable;
enableEjabberdDump = config.services.ejabberd.enable;
enableMySQLDatabase = config.services.mysql.enable;
enablePostgreSQLDatabase = config.services.postgresql.enable;
enableTomcatWebApplication = config.services.tomcat.enable;
enableMongoDatabase = config.services.mongodb.enable;
enableSubversionRepository = config.services.svnserve.enable;
enableInfluxDatabase = config.services.influxdb.enable;
};
in
{
options = {
dysnomia = {
enable = mkOption {
type = types.bool;
default = false;
description = "Whether to enable Dysnomia";
};
enableAuthentication = mkOption {
type = types.bool;
default = false;
description = "Whether to publish privacy-sensitive authentication credentials";
};
package = mkOption {
type = types.path;
description = "The Dysnomia package";
};
properties = mkOption {
description = "An attribute set in which each attribute represents a machine property. Optionally, these values can be shell substitutions.";
default = {};
};
containers = mkOption {
description = "An attribute set in which each key represents a container and each value an attribute set providing its configuration properties";
default = {};
};
components = mkOption {
description = "An atttribute set in which each key represents a container and each value an attribute set in which each key represents a component and each value a derivation constructing its initial state";
default = {};
};
extraContainerProperties = mkOption {
description = "An attribute set providing additional container settings in addition to the default properties";
default = {};
};
extraContainerPaths = mkOption {
description = "A list of paths containing additional container configurations that are added to the search folders";
default = [];
};
extraModulePaths = mkOption {
description = "A list of paths containing additional modules that are added to the search folders";
default = [];
};
enableLegacyModules = mkOption {
type = types.bool;
default = true;
description = "Whether to enable Dysnomia legacy process and wrapper modules";
};
};
};
config = mkIf cfg.enable {
environment.etc = {
"dysnomia/containers" = {
source = containersDir;
};
"dysnomia/components" = {
source = componentsDir;
};
"dysnomia/properties" = {
source = properties;
};
};
environment.variables = {
DYSNOMIA_STATEDIR = "/var/state/dysnomia-nixos";
DYSNOMIA_CONTAINERS_PATH = "${lib.concatMapStrings (containerPath: "${containerPath}:") cfg.extraContainerPaths}/etc/dysnomia/containers";
DYSNOMIA_MODULES_PATH = "${lib.concatMapStrings (modulePath: "${modulePath}:") cfg.extraModulePaths}/etc/dysnomia/modules";
};
environment.systemPackages = [ cfg.package ];
dysnomia.package = pkgs.dysnomia.override (origArgs: dysnomiaFlags // lib.optionalAttrs (cfg.enableLegacyModules) {
enableLegacy = builtins.trace ''
WARNING: Dysnomia has been configured to use the legacy 'process' and 'wrapper'
modules for compatibility reasons! If you rely on these modules, consider
migrating to better alternatives.
More information: https://raw.githubusercontent.com/svanderburg/dysnomia/f65a9a84827bcc4024d6b16527098b33b02e4054/README-legacy.md
If you have migrated already or don't rely on these Dysnomia modules, you can
disable legacy mode with the following NixOS configuration option:
dysnomia.enableLegacyModules = false;
In a future version of Dysnomia (and NixOS) the legacy option will go away!
'' true;
});
dysnomia.properties = {
hostname = config.networking.hostName;
inherit (config.nixpkgs.localSystem) system;
supportedTypes = [
"echo"
"fileset"
"process"
"wrapper"
# These are not base modules, but they are still enabled because they work with technology that are always enabled in NixOS
"systemd-unit"
"sysvinit-script"
"nixos-configuration"
]
++ optional (dysnomiaFlags.enableApacheWebApplication) "apache-webapplication"
++ optional (dysnomiaFlags.enableAxis2WebService) "axis2-webservice"
++ optional (dysnomiaFlags.enableDockerContainer) "docker-container"
++ optional (dysnomiaFlags.enableEjabberdDump) "ejabberd-dump"
++ optional (dysnomiaFlags.enableInfluxDatabase) "influx-database"
++ optional (dysnomiaFlags.enableMySQLDatabase) "mysql-database"
++ optional (dysnomiaFlags.enablePostgreSQLDatabase) "postgresql-database"
++ optional (dysnomiaFlags.enableTomcatWebApplication) "tomcat-webapplication"
++ optional (dysnomiaFlags.enableMongoDatabase) "mongo-database"
++ optional (dysnomiaFlags.enableSubversionRepository) "subversion-repository";
};
dysnomia.containers = lib.recursiveUpdate ({
process = {};
wrapper = {};
}
// lib.optionalAttrs (config.services.httpd.enable) { apache-webapplication = {
documentRoot = config.services.httpd.virtualHosts.localhost.documentRoot;
}; }
// lib.optionalAttrs (config.services.tomcat.axis2.enable) { axis2-webservice = {}; }
// lib.optionalAttrs (config.services.ejabberd.enable) { ejabberd-dump = {
ejabberdUser = config.services.ejabberd.user;
}; }
// lib.optionalAttrs (config.services.mysql.enable) { mysql-database = {
mysqlPort = config.services.mysql.port;
mysqlSocket = "/run/mysqld/mysqld.sock";
} // lib.optionalAttrs cfg.enableAuthentication {
mysqlUsername = "root";
};
}
// lib.optionalAttrs (config.services.postgresql.enable) { postgresql-database = {
} // lib.optionalAttrs (cfg.enableAuthentication) {
postgresqlUsername = "postgres";
};
}
// lib.optionalAttrs (config.services.tomcat.enable) { tomcat-webapplication = {
tomcatPort = 8080;
}; }
// lib.optionalAttrs (config.services.mongodb.enable) { mongo-database = {}; }
// lib.optionalAttrs (config.services.influxdb.enable) {
influx-database = {
influxdbUsername = config.services.influxdb.user;
influxdbDataDir = "${config.services.influxdb.dataDir}/data";
influxdbMetaDir = "${config.services.influxdb.dataDir}/meta";
};
}
// lib.optionalAttrs (config.services.svnserve.enable) { subversion-repository = {
svnBaseDir = config.services.svnserve.svnBaseDir;
}; }) cfg.extraContainerProperties;
boot.extraSystemdUnitPaths = [ "/etc/systemd-mutable/system" ];
system.activationScripts.dysnomia = ''
mkdir -p /etc/systemd-mutable/system
if [ ! -f /etc/systemd-mutable/system/dysnomia.target ]
then
( echo "[Unit]"
echo "Description=Services that are activated and deactivated by Dysnomia"
echo "After=final.target"
) > /etc/systemd-mutable/system/dysnomia.target
fi
'';
};
}

View file

@ -128,11 +128,16 @@ in
{
LogType = "console";
Server = cfg.server;
ListenIP = cfg.listen.ip;
ListenPort = cfg.listen.port;
LoadModule = builtins.attrNames cfg.modules;
}
(mkIf (cfg.modules != {}) { LoadModulePath = "${moduleEnv}/lib"; })
(mkIf (cfg.modules != {}) {
LoadModule = builtins.attrNames cfg.modules;
LoadModulePath = "${moduleEnv}/lib";
})
# the default value for "ListenIP" is 0.0.0.0 but zabbix agent 2 cannot accept configuration files which
# explicitly set "ListenIP" to the default value...
(mkIf (cfg.listen.ip != "0.0.0.0") { ListenIP = cfg.listen.ip; })
];
networking.firewall = mkIf cfg.openFirewall {

View file

@ -1,7 +1,7 @@
{ config, lib, pkgs, ... }:
let
inherit (lib) mkEnableOption mkIf mkOption types;
inherit (lib) mkEnableOption mkIf mkOption optionalString types;
generic = variant:
let
@ -26,6 +26,14 @@ let
<link xlink:href='http://bird.network.cz/'/>
'';
};
checkConfig = mkOption {
type = types.bool;
default = true;
description = ''
Whether the config should be checked at build time.
Disabling this might become necessary if the config includes files not present during build time.
'';
};
};
};
@ -36,7 +44,7 @@ let
environment.etc."bird/${variant}.conf".source = pkgs.writeTextFile {
name = "${variant}.conf";
text = cfg.config;
checkPhase = ''
checkPhase = optionalString cfg.checkConfig ''
${pkg}/bin/${birdBin} -d -p -c $out
'';
};
@ -50,7 +58,7 @@ let
Type = "forking";
Restart = "on-failure";
ExecStart = "${pkg}/bin/${birdBin} -c /etc/bird/${variant}.conf -u ${variant} -g ${variant}";
ExecReload = "${pkg}/bin/${birdc} configure";
ExecReload = "/bin/sh -c '${pkg}/bin/${birdBin} -c /etc/bird/${variant}.conf -p && ${pkg}/bin/${birdc} configure'";
ExecStop = "${pkg}/bin/${birdc} down";
CapabilityBoundingSet = [ "CAP_CHOWN" "CAP_FOWNER" "CAP_DAC_OVERRIDE" "CAP_SETUID" "CAP_SETGID"
# see bird/sysdep/linux/syspriv.h

View file

@ -245,7 +245,7 @@ in
fi
if [ -z "$CJDNS_ADMIN_PASSWORD" ]; then
echo "CJDNS_ADMIN_PASSWORD=$(tr -dc A-Za-z0-9 </dev/urandom | head -c 96)" \
echo "CJDNS_ADMIN_PASSWORD=$(tr -dc A-Za-z0-9 </dev/urandom | head -c 32)" \
>> /etc/cjdns.keys
fi
'';

View file

@ -10,12 +10,12 @@ let
mkListen = kind: addr: let
al_v4 = builtins.match "([0-9.]+):([0-9]+)" addr;
al_v6 = builtins.match "\\[(.+)]:([0-9]+)" addr;
al_portOnly = builtins.match "()([0-9]+)" addr;
al_portOnly = builtins.match "([0-9]+)" addr;
al = findFirst (a: a != null)
(throw "services.kresd.*: incorrect address specification '${addr}'")
[ al_v4 al_v6 al_portOnly ];
port = last al;
addrSpec = if al_portOnly == null then "'${head al}'" else "{'::', '127.0.0.1'}";
addrSpec = if al_portOnly == null then "'${head al}'" else "{'::', '0.0.0.0'}";
in # freebind is set for compatibility with earlier kresd services;
# it could be configurable, for example.
''
@ -137,10 +137,5 @@ in {
};
# We don't mind running stop phase from wrong version. It seems less racy.
systemd.services."kresd@".stopIfChanged = false;
# Try cleaning up the previously default location of cache file.
# Note that /var/cache/* should always be safe to remove.
# TODO: remove later, probably between 20.09 and 21.05
systemd.tmpfiles.rules = [ "R /var/cache/kresd" ];
};
}

View file

@ -238,7 +238,7 @@ let
wantedBy = [ "wireguard-${name}.service" ];
requiredBy = [ "wireguard-${name}.service" ];
before = [ "wireguard-${name}.service" ];
path = with pkgs; [ wireguard ];
path = with pkgs; [ wireguard-tools ];
serviceConfig = {
Type = "oneshot";

View file

@ -88,7 +88,7 @@ in
enable = true;
after = [ "network.target" ];
wantedBy = [ "multi-user.target" ];
serviceConfig.ExecStart = "${pkgs.pythonPackages.zerobin}/bin/zerobin ${cfg.listenAddress} ${toString cfg.listenPort} false ${cfg.user} ${cfg.group} ${zerobin_config}";
serviceConfig.ExecStart = "${pkgs.zerobin}/bin/zerobin ${cfg.listenAddress} ${toString cfg.listenPort} false ${cfg.user} ${cfg.group} ${zerobin_config}";
serviceConfig.PrivateTmp="yes";
serviceConfig.User = cfg.user;
serviceConfig.Group = cfg.group;

View file

@ -26,19 +26,46 @@ in {
'';
};
capabilities = mkOption {
type = types.commas;
default = "view";
capabilities = {
view = mkOption {
type = types.bool;
default = true;
description = ''
Enable the view, add, and/or manage capabilities. E.g. view,add
Enable the view capability.
'';
};
add = mkOption {
type = types.bool;
default = false;
description = ''
Enable the add capability.
'';
};
manage = mkOption {
type = types.bool;
default = false;
description = ''
Enable the manage capability.
'';
};
};
stateDir = mkOption {
type = types.path;
default = "/var/lib/hledger-web";
description = ''
Path the service has access to. If left as the default value this
directory will automatically be created before the hledger-web server
starts, otherwise the sysadmin is responsible for ensuring the
directory exists with appropriate ownership and permissions.
'';
};
journalFile = mkOption {
type = types.path;
example = "/home/hledger/.hledger.journal";
journalFiles = mkOption {
type = types.listOf types.str;
default = [ ".hledger.journal" ];
description = ''
Input journal file.
Paths to journal files relative to <option>services.hledger-web.stateDir</option>.
'';
};
@ -50,28 +77,66 @@ in {
Base URL, when sharing over a network.
'';
};
extraOptions = mkOption {
type = types.listOf types.str;
default = [];
example = [ "--forecast" ];
description = ''
Extra command line arguments to pass to hledger-web.
'';
};
};
config = mkIf cfg.enable {
systemd.services.hledger-web = {
users.users.hledger = {
name = "hledger";
group = "hledger";
isSystemUser = true;
home = cfg.stateDir;
useDefaultShell = true;
};
users.groups.hledger = {};
systemd.services.hledger-web = let
capabilityString = with cfg.capabilities; concatStringsSep "," (
(optional view "view")
++ (optional add "add")
++ (optional manage "manage")
);
serverArgs = with cfg; escapeShellArgs ([
"--serve"
"--host=${host}"
"--port=${toString port}"
"--capabilities=${capabilityString}"
(optionalString (cfg.baseUrl != null) "--base-url=${cfg.baseUrl}")
(optionalString (cfg.serveApi) "--serve-api")
] ++ (map (f: "--file=${stateDir}/${f}") cfg.journalFiles)
++ extraOptions);
in {
description = "hledger-web - web-app for the hledger accounting tool.";
documentation = [ https://hledger.org/hledger-web.html ];
wantedBy = [ "multi-user.target" ];
after = [ "networking.target" ];
serviceConfig = {
ExecStart = ''
${pkgs.hledger-web}/bin/hledger-web \
--host=${cfg.host} \
--port=${toString cfg.port} \
--file=${cfg.journalFile} \
"--capabilities=${cfg.capabilities}" \
${optionalString (cfg.baseUrl != null) "--base-url=${cfg.baseUrl}"} \
${optionalString (cfg.serveApi) "--serve-api"}
'';
serviceConfig = mkMerge [
{
ExecStart = "${pkgs.hledger-web}/bin/hledger-web ${serverArgs}";
Restart = "always";
};
};
WorkingDirectory = cfg.stateDir;
User = "hledger";
Group = "hledger";
PrivateTmp = true;
}
(mkIf (cfg.stateDir == "/var/lib/hledger-web") {
StateDirectory = "hledger-web";
})
];
};
meta.maintainers = with lib.maintainers; [ marijanp ];
};
meta.maintainers = with lib.maintainers; [ marijanp erictapen ];
}

View file

@ -43,8 +43,32 @@ let
LogsDirectoryMode = "0750";
# Access write directories
UMask = "0027";
# Capabilities
CapabilityBoundingSet = "";
# Security
NoNewPrivileges = true;
# Sandboxing
ProtectSystem = "strict";
ProtectHome = true;
PrivateTmp = true;
PrivateDevices = true;
PrivateUsers = true;
ProtectClock = true;
ProtectHostname = true;
ProtectKernelLogs = true;
ProtectKernelModules = true;
ProtectKernelTunables = true;
ProtectControlGroups = true;
RestrictAddressFamilies = [ "AF_UNIX" "AF_INET" "AF_INET6" "AF_NETLINK" ];
RestrictNamespaces = true;
LockPersonality = true;
MemoryDenyWriteExecute = false;
RestrictRealtime = true;
RestrictSUIDSGID = true;
PrivateMounts = true;
# System Call Filtering
SystemCallArchitectures = "native";
SystemCallFilter = "~@clock @cpu-emulation @debug @keyring @module @mount @obsolete @reboot @resources @setuid @swap";
};
envFile = pkgs.writeText "mastodon.env" (lib.concatMapStrings (s: s + "\n") (

View file

@ -0,0 +1,139 @@
{ lib, pkgs, config, ... }:
with lib;
let
cfg = config.services.wiki-js;
format = pkgs.formats.json { };
configFile = format.generate "wiki-js.yml" cfg.settings;
in {
options.services.wiki-js = {
enable = mkEnableOption "wiki-js";
environmentFile = mkOption {
type = types.nullOr types.path;
default = null;
example = "/root/wiki-js.env";
description = ''
Environment fiel to inject e.g. secrets into the configuration.
'';
};
stateDirectoryName = mkOption {
default = "wiki-js";
type = types.str;
description = ''
Name of the directory in <filename>/var/lib</filename>.
'';
};
settings = mkOption {
default = {};
type = types.submodule {
freeformType = format.type;
options = {
port = mkOption {
type = types.port;
default = 3000;
description = ''
TCP port the process should listen to.
'';
};
bindIP = mkOption {
default = "0.0.0.0";
type = types.str;
description = ''
IPs the service should listen to.
'';
};
db = {
type = mkOption {
default = "postgres";
type = types.enum [ "postgres" "mysql" "mariadb" "mssql" ];
description = ''
Database driver to use for persistence. Please note that <literal>sqlite</literal>
is currently not supported as the build process for it is currently not implemented
in <package>pkgs.wiki-js</package> and it's not recommended by upstream for
production use.
'';
};
host = mkOption {
type = types.str;
example = "/run/postgresql";
description = ''
Hostname or socket-path to connect to.
'';
};
db = mkOption {
default = "wiki";
type = types.str;
description = ''
Name of the database to use.
'';
};
};
logLevel = mkOption {
default = "info";
type = types.enum [ "error" "warn" "info" "verbose" "debug" "silly" ];
description = ''
Define how much detail is supposed to be logged at runtime.
'';
};
offline = mkEnableOption "offline mode" // {
description = ''
Disable latest file updates and enable
<link xlink:href="https://docs.requarks.io/install/sideload">sideloading</link>.
'';
};
};
};
description = ''
Settings to configure <package>wiki-js</package>. This directly
corresponds to <link xlink:href="https://docs.requarks.io/install/config">the upstream
configuration options</link>.
Secrets can be injected via the environment by
<itemizedlist>
<listitem><para>specifying <xref linkend="opt-services.wiki-js.environmentFile" />
to contain secrets</para></listitem>
<listitem><para>and setting sensitive values to <literal>$(ENVIRONMENT_VAR)</literal>
with this value defined in the environment-file.</para></listitem>
</itemizedlist>
'';
};
};
config = mkIf cfg.enable {
services.wiki-js.settings.dataPath = "/var/lib/${cfg.stateDirectoryName}";
systemd.services.wiki-js = {
description = "A modern and powerful wiki app built on Node.js";
documentation = [ "https://docs.requarks.io/" ];
wantedBy = [ "multi-user.target" ];
path = with pkgs; [ coreutils ];
preStart = ''
ln -sf ${configFile} /var/lib/${cfg.stateDirectoryName}/config.yml
ln -sf ${pkgs.wiki-js}/server /var/lib/${cfg.stateDirectoryName}
ln -sf ${pkgs.wiki-js}/assets /var/lib/${cfg.stateDirectoryName}
ln -sf ${pkgs.wiki-js}/package.json /var/lib/${cfg.stateDirectoryName}/package.json
'';
serviceConfig = {
EnvironmentFile = mkIf (cfg.environmentFile != null) cfg.environmentFile;
StateDirectory = cfg.stateDirectoryName;
WorkingDirectory = "/var/lib/${cfg.stateDirectoryName}";
DynamicUser = true;
PrivateTmp = true;
ExecStart = "${pkgs.nodejs}/bin/node ${pkgs.wiki-js}/server";
};
};
};
meta.maintainers = with maintainers; [ ma27 ];
}

View file

@ -386,7 +386,7 @@ let
) config.boot.initrd.secrets)
}
(cd "$tmp" && find . -print0 | sort -z | cpio -o -H newc -R +0:+0 --reproducible --null) | \
(cd "$tmp" && find . -print0 | sort -z | cpio --quiet -o -H newc -R +0:+0 --reproducible --null) | \
${compressorExe} ${lib.escapeShellArgs initialRamdisk.compressorArgs} >> "$1"
'';

View file

@ -22,8 +22,6 @@ let
# their assertions too
(attrValues config.fileSystems);
prioOption = prio: optionalString (prio != null) " pri=${toString prio}";
specialFSTypes = [ "proc" "sysfs" "tmpfs" "ramfs" "devtmpfs" "devpts" ];
coreFileSystemOpts = { name, config, ... }: {
@ -240,6 +238,8 @@ in
skipCheck = fs: fs.noCheck || fs.device == "none" || builtins.elem fs.fsType fsToSkipCheck;
# https://wiki.archlinux.org/index.php/fstab#Filepath_spaces
escape = string: builtins.replaceStrings [ " " "\t" ] [ "\\040" "\\011" ] string;
swapOptions = sw: "defaults"
+ optionalString (sw.priority != null) ",pri=${toString sw.priority}";
in ''
# This is a generated file. Do not edit!
#
@ -262,7 +262,7 @@ in
# Swap devices.
${flip concatMapStrings config.swapDevices (sw:
"${sw.realDevice} none swap${prioOption sw.priority}\n"
"${sw.realDevice} none swap ${swapOptions sw}\n"
)}
'';

View file

@ -5,5 +5,13 @@ let self = {
"17.03" = "gs://nixos-cloud-images/nixos-image-17.03.1082.4aab5c5798-x86_64-linux.raw.tar.gz";
"18.03" = "gs://nixos-cloud-images/nixos-image-18.03.132536.fdb5ba4cdf9-x86_64-linux.raw.tar.gz";
"18.09" = "gs://nixos-cloud-images/nixos-image-18.09.1228.a4c4cbb613c-x86_64-linux.raw.tar.gz";
latest = self."18.09";
# This format will be handled by the upcoming NixOPS 2.0 release.
# The old images based on a GS object are deprecated.
"20.09" = {
project = "nixos-cloud";
name = "nixos-image-20-09-3531-3858fbc08e6-x86-64-linux";
};
latest = self."20.09";
}; in self

View file

@ -504,7 +504,7 @@ in
path = mkOption {
type = types.path;
example = "/nix/var/nix/profiles/containers/webserver";
example = "/nix/var/nix/profiles/per-container/webserver";
description = ''
As an alternative to specifying
<option>config</option>, you can specify the path to

View file

@ -253,7 +253,7 @@ in import ./make-test-python.nix ({ lib, ... }: {
def check_connection(node, domain, retries=3):
assert retries >= 0
assert retries >= 0, f"Failed to connect to https://{domain}"
result = node.succeed(
"openssl s_client -brief -verify 2 -CAfile /tmp/ca.crt"
@ -262,12 +262,12 @@ in import ./make-test-python.nix ({ lib, ... }: {
for line in result.lower().split("\n"):
if "verification" in line and "error" in line:
time.sleep(1)
time.sleep(3)
return check_connection(node, domain, retries - 1)
def check_connection_key_bits(node, domain, bits, retries=3):
assert retries >= 0
assert retries >= 0, f"Did not find expected number of bits ({bits}) in key"
result = node.succeed(
"openssl s_client -CAfile /tmp/ca.crt"
@ -277,12 +277,12 @@ in import ./make-test-python.nix ({ lib, ... }: {
print("Key type:", result)
if bits not in result:
time.sleep(1)
time.sleep(3)
return check_connection_key_bits(node, domain, bits, retries - 1)
def check_stapling(node, domain, retries=3):
assert retries >= 0
assert retries >= 0, "OCSP Stapling check failed"
# Pebble doesn't provide a full OCSP responder, so just check the URL
result = node.succeed(
@ -293,10 +293,23 @@ in import ./make-test-python.nix ({ lib, ... }: {
print("OCSP Responder URL:", result)
if "${caDomain}:4002" not in result.lower():
time.sleep(1)
time.sleep(3)
return check_stapling(node, domain, retries - 1)
def download_ca_certs(node, retries=5):
assert retries >= 0, "Failed to connect to pebble to download root CA certs"
exit_code, _ = node.execute("curl https://${caDomain}:15000/roots/0 > /tmp/ca.crt")
exit_code_2, _ = node.execute(
"curl https://${caDomain}:15000/intermediate-keys/0 >> /tmp/ca.crt"
)
if exit_code + exit_code_2 > 0:
time.sleep(3)
return download_ca_certs(node, retries - 1)
client.start()
dnsserver.start()
@ -313,8 +326,7 @@ in import ./make-test-python.nix ({ lib, ... }: {
acme.wait_for_unit("network-online.target")
acme.wait_for_unit("pebble.service")
client.succeed("curl https://${caDomain}:15000/roots/0 > /tmp/ca.crt")
client.succeed("curl https://${caDomain}:15000/intermediate-keys/0 >> /tmp/ca.crt")
download_ca_certs(client)
with subtest("Can request certificate with HTTPS-01 challenge"):
webserver.wait_for_unit("acme-finished-a.example.test.target")
@ -322,6 +334,21 @@ in import ./make-test-python.nix ({ lib, ... }: {
check_issuer(webserver, "a.example.test", "pebble")
check_connection(client, "a.example.test")
with subtest("Certificates and accounts have safe + valid permissions"):
group = "${nodes.webserver.config.security.acme.certs."a.example.test".group}"
webserver.succeed(
f"test $(stat -L -c \"%a %U %G\" /var/lib/acme/a.example.test/* | tee /dev/stderr | grep '640 acme {group}' | wc -l) -eq 5"
)
webserver.succeed(
f"test $(stat -L -c \"%a %U %G\" /var/lib/acme/.lego/a.example.test/**/* | tee /dev/stderr | grep '640 acme {group}' | wc -l) -eq 5"
)
webserver.succeed(
f"test $(stat -L -c \"%a %U %G\" /var/lib/acme/a.example.test | tee /dev/stderr | grep '750 acme {group}' | wc -l) -eq 1"
)
webserver.succeed(
f"test $(find /var/lib/acme/accounts -type f -exec stat -L -c \"%a %U %G\" {{}} \\; | tee /dev/stderr | grep -v '600 acme {group}' | wc -l) -eq 0"
)
with subtest("Can generate valid selfsigned certs"):
webserver.succeed("systemctl clean acme-a.example.test.service --what=state")
webserver.succeed("systemctl start acme-selfsigned-a.example.test.service")
@ -375,8 +402,15 @@ in import ./make-test-python.nix ({ lib, ... }: {
assert keyhash_old == keyhash_new
with subtest("Can request certificates for vhost + aliases (apache-httpd)"):
try:
switch_to(webserver, "httpd-aliases")
webserver.wait_for_unit("acme-finished-c.example.test.target")
except Exception as err:
_, output = webserver.execute(
"cat /var/log/httpd/*.log && ls -al /var/lib/acme/acme-challenge"
)
print(output)
raise err
check_issuer(webserver, "c.example.test", "pebble")
check_connection(client, "c.example.test")
check_connection(client, "d.example.test")

View file

@ -426,6 +426,7 @@ in
virtualbox = handleTestOn ["x86_64-linux"] ./virtualbox.nix {};
vscodium = handleTest ./vscodium.nix {};
wasabibackend = handleTest ./wasabibackend.nix {};
wiki-js = handleTest ./wiki-js.nix {};
wireguard = handleTest ./wireguard {};
wordpress = handleTest ./wordpress.nix {};
xandikos = handleTest ./xandikos.nix {};

View file

@ -113,6 +113,7 @@ let
driver.find_element_by_css_selector('input#masterPasswordRetype').send_keys(
'${userPassword}'
)
driver.find_element_by_css_selector('input#acceptPolicies').click()
driver.find_element_by_xpath("//button[contains(., 'Submit')]").click()

View file

@ -161,12 +161,18 @@ import ./make-test-python.nix ({ pkgs, ... }: {
"docker run --rm ${examples.layered-image.imageName} cat extraCommands",
)
with subtest("Ensure building an image on top of a layered Docker images work"):
with subtest("Ensure images built on top of layered Docker images work"):
docker.succeed(
"docker load --input='${examples.layered-on-top}'",
"docker run --rm ${examples.layered-on-top.imageName}",
)
with subtest("Ensure layered images built on top of layered Docker images work"):
docker.succeed(
"docker load --input='${examples.layered-on-top-layered}'",
"docker run --rm ${examples.layered-on-top-layered.imageName}",
)
def set_of_layers(image_name):
return set(
@ -205,6 +211,31 @@ import ./make-test-python.nix ({ pkgs, ... }: {
assert "FROM_CHILD=true" in env, "envvars from the child should be preserved"
assert "LAST_LAYER=child" in env, "envvars from the child should take priority"
with subtest("Ensure environment variables of layered images are correctly inherited"):
docker.succeed(
"docker load --input='${examples.environmentVariablesLayered}'"
)
out = docker.succeed("docker run --rm ${examples.environmentVariablesLayered.imageName} env")
env = out.splitlines()
assert "FROM_PARENT=true" in env, "envvars from the parent should be preserved"
assert "FROM_CHILD=true" in env, "envvars from the child should be preserved"
assert "LAST_LAYER=child" in env, "envvars from the child should take priority"
with subtest(
"Ensure inherited environment variables of layered images are correctly resolved"
):
# Read environment variables as stored in image config
config = docker.succeed(
"tar -xOf ${examples.environmentVariablesLayered} manifest.json | ${pkgs.jq}/bin/jq -r .[].Config"
).strip()
out = docker.succeed(
f"tar -xOf ${examples.environmentVariablesLayered} {config} | ${pkgs.jq}/bin/jq -r '.config.Env | .[]'"
)
env = out.splitlines()
assert (
sum(entry.startswith("LAST_LAYER") for entry in env) == 1
), "envvars overridden by child should be unique"
with subtest("Ensure image with only 2 layers can be loaded"):
docker.succeed(
"docker load --input='${examples.two-layered-image}'"
@ -219,6 +250,18 @@ import ./make-test-python.nix ({ pkgs, ... }: {
"docker run bulk-layer ls /bin/hello",
)
with subtest(
"Ensure the bulk layer with a base image respects the number of maxLayers"
):
docker.succeed(
"docker load --input='${pkgs.dockerTools.examples.layered-bulk-layer}'",
# Ensure the image runs correctly
"docker run layered-bulk-layer ls /bin/hello",
)
# Ensure the image has the correct number of layers
assert len(set_of_layers("layered-bulk-layer")) == 4
with subtest("Ensure correct behavior when no store is needed"):
# This check tests that buildLayeredImage can build images that don't need a store.
docker.succeed(

View file

@ -13,25 +13,22 @@ rec {
name = "hledger-web";
meta.maintainers = with lib.maintainers; [ marijanp ];
nodes = {
server = { config, pkgs, ... }: rec {
nodes = rec {
server = { config, pkgs, ... }: {
services.hledger-web = {
host = "127.0.0.1";
port = 5000;
enable = true;
journalFile = journal;
capabilities.manage = true;
};
networking.firewall.allowedTCPPorts = [ services.hledger-web.port ];
networking.firewall.allowedTCPPorts = [ config.services.hledger-web.port ];
systemd.services.hledger-web.preStart = ''
ln -s ${journal} /var/lib/hledger-web/.hledger.journal
'';
};
apiserver = { config, pkgs, ... }: rec {
services.hledger-web = {
host = "127.0.0.1";
port = 5000;
enable = true;
serveApi = true;
journalFile = journal;
};
networking.firewall.allowedTCPPorts = [ services.hledger-web.port ];
apiserver = { ... }: {
imports = [ server ];
services.hledger-web.serveApi = true;
};
};
@ -42,7 +39,7 @@ rec {
server.wait_for_open_port(5000)
with subtest("Check if web UI is accessible"):
page = server.succeed("curl -L http://127.0.0.1:5000")
assert "test.journal" in page
assert ".hledger.journal" in page
apiserver.wait_for_unit("hledger-web.service")
apiserver.wait_for_open_port(5000)

View file

@ -0,0 +1,152 @@
import ./make-test-python.nix ({ pkgs, lib, ...} : {
name = "wiki-js";
meta = with pkgs.lib.maintainers; {
maintainers = [ ma27 ];
};
machine = { pkgs, ... }: {
virtualisation.memorySize = 2048;
services.wiki-js = {
enable = true;
settings.db.host = "/run/postgresql";
settings.db.user = "wiki-js";
settings.logLevel = "debug";
};
services.postgresql = {
enable = true;
ensureDatabases = [ "wiki" ];
ensureUsers = [
{ name = "wiki-js";
ensurePermissions."DATABASE wiki" = "ALL PRIVILEGES";
}
];
};
systemd.services.wiki-js = {
requires = [ "postgresql.service" ];
after = [ "postgresql.service" ];
};
environment.systemPackages = with pkgs; [ jq ];
};
testScript = let
payloads.finalize = pkgs.writeText "finalize.json" (builtins.toJSON {
adminEmail = "webmaster@example.com";
adminPassword = "notapassword";
adminPasswordConfirm = "notapassword";
siteUrl = "http://localhost:3000";
telemetry = false;
});
payloads.login = pkgs.writeText "login.json" (builtins.toJSON [{
operationName = null;
extensions = {};
query = ''
mutation ($username: String!, $password: String!, $strategy: String!) {
authentication {
login(username: $username, password: $password, strategy: $strategy) {
responseResult {
succeeded
errorCode
slug
message
__typename
}
jwt
mustChangePwd
mustProvideTFA
mustSetupTFA
continuationToken
redirect
tfaQRImage
__typename
}
__typename
}
}
'';
variables = {
password = "notapassword";
strategy = "local";
username = "webmaster@example.com";
};
}]);
payloads.content = pkgs.writeText "content.json" (builtins.toJSON [{
extensions = {};
operationName = null;
query = ''
mutation ($content: String!, $description: String!, $editor: String!, $isPrivate: Boolean!, $isPublished: Boolean!, $locale: String!, $path: String!, $publishEndDate: Date, $publishStartDate: Date, $scriptCss: String, $scriptJs: String, $tags: [String]!, $title: String!) {
pages {
create(content: $content, description: $description, editor: $editor, isPrivate: $isPrivate, isPublished: $isPublished, locale: $locale, path: $path, publishEndDate: $publishEndDate, publishStartDate: $publishStartDate, scriptCss: $scriptCss, scriptJs: $scriptJs, tags: $tags, title: $title) {
responseResult {
succeeded
errorCode
slug
message
__typename
}
page {
id
updatedAt
__typename
}
__typename
}
__typename
}
}
'';
variables = {
content = "# Header\n\nHello world!";
description = "";
editor = "markdown";
isPrivate = false;
isPublished = true;
locale = "en";
path = "home";
publishEndDate = "";
publishStartDate = "";
scriptCss = "";
scriptJs = "";
tags = [];
title = "Hello world";
};
}]);
in ''
machine.start()
machine.wait_for_unit("multi-user.target")
machine.wait_for_open_port(3000)
machine.succeed("curl -sSf localhost:3000")
with subtest("Setup"):
result = machine.succeed(
"set -o pipefail; curl -sSf localhost:3000/finalize -X POST -d "
+ "@${payloads.finalize} -H 'Content-Type: application/json' "
+ "| jq .ok | xargs echo"
)
assert result.strip() == "true", f"Expected true, got {result}"
# During the setup the service gets restarted, so we use this
# to check if the setup is done.
machine.wait_until_fails("curl -sSf localhost:3000")
machine.wait_until_succeeds("curl -sSf localhost:3000")
with subtest("Base functionality"):
auth = machine.succeed(
"set -o pipefail; curl -sSf localhost:3000/graphql -X POST "
+ "-d @${payloads.login} -H 'Content-Type: application/json' "
+ "| jq '.[0].data.authentication.login.jwt' | xargs echo"
).strip()
assert auth
create = machine.succeed(
"set -o pipefail; curl -sSf localhost:3000/graphql -X POST "
+ "-d @${payloads.content} -H 'Content-Type: application/json' "
+ f"-H 'Authorization: Bearer {auth}' "
+ "| jq '.[0].data.pages.create.responseResult.succeeded'|xargs echo"
)
assert create.strip() == "true", f"Expected true, got {create}"
machine.shutdown()
'';
})

View file

@ -12,6 +12,10 @@ stdenv.mkDerivation {
hardeningDisable = [ "format" ];
# -Wnarrowing is enabled by default in recent GCC versions,
# causing compilation to fail.
NIX_CFLAGS_COMPILE = "-Wno-narrowing";
postPatch = ''
(
cd mp4v2

View file

@ -6,11 +6,11 @@
stdenv.mkDerivation rec {
pname = "bitwig-studio";
version = "3.3.3";
version = "3.3.6";
src = fetchurl {
url = "https://downloads.bitwig.com/stable/${version}/${pname}-${version}.deb";
sha256 = "sha256-NDkGHJDr6TCHEhgSKK7jLYk5RjGEj8+lDYZ4ywvG20g=";
sha256 = "10nf29zr0xg9mxmknkc39jh3y9kpxzy5wg1v0s3kkd180lja9zpn";
};
nativeBuildInputs = [ dpkg makeWrapper wrapGAppsHook ];

View file

@ -10,7 +10,7 @@ let
withCD = config.clementine.cd or true;
withCloud = config.clementine.cloud or true;
# On the update after all 1.4rc, qt5.15 will be supported.
# On the update after all 1.4rc, qt5.15 and protobuf 3.15 will be supported.
version = "1.4.0rc1";
src = fetchFromGitHub {

View file

@ -1,5 +1,5 @@
{ lib, stdenv, fetchFromGitHub, makeWrapper, rofi, mpc_cli, perl,
util-linux, pythonPackages, libnotify }:
util-linux, python3Packages, libnotify }:
stdenv.mkDerivation {
name = "clerk-2016-10-14";
@ -12,10 +12,12 @@ stdenv.mkDerivation {
};
nativeBuildInputs = [ makeWrapper ];
buildInputs = [ pythonPackages.mpd2 ];
buildInputs = [ python3Packages.mpd2 ];
dontBuild = true;
strictDeps = true;
installPhase = ''
DESTDIR=$out PREFIX=/ make install
wrapProgram $out/bin/clerk \

View file

@ -48,6 +48,7 @@ stdenv.mkDerivation rec {
strictDeps = true;
CXXFLAGS = "-std=c++11";
configureFlags = "--enable-liblilv --with-extra-cppflags=-Dnullptr=0";
postPatch = ''

View file

@ -5,14 +5,14 @@
stdenv.mkDerivation rec {
pname = "helio-workstation";
version = "3.3";
version = "3.4";
src = fetchFromGitHub {
owner = "helio-fm";
repo = pname;
rev = version;
fetchSubmodules = true;
sha256 = "sha256-meeNqV1jKUwWc7P3p/LicPsbpzpKKFmQ1wP9DuXc9NY=";
sha256 = "sha256-zXsDu/xi7OV6VtnZK9ZJ8uwPeA5uTgNpAQsqe90iwG4=";
};
buildInputs = [

View file

@ -1,14 +1,14 @@
{ mkDerivation, lib, fetchFromGitHub, fetchpatch, pkg-config, qtscript, qmake, libjack2
{ mkDerivation, lib, fetchFromGitHub, pkg-config, qtscript, qmake, libjack2
}:
mkDerivation rec {
pname = "jamulus";
version = "3.6.2";
version = "3.7.0";
src = fetchFromGitHub {
owner = "corrados";
owner = "jamulussoftware";
repo = "jamulus";
rev = "r${lib.replaceStrings [ "." ] [ "_" ] version}";
sha256 = "sha256-b187Q8KXcU32C2hGFqs6R2CqWgmieq6ewQDx+elEgP4=";
sha256 = "sha256-8zCPT0jo4ExgmZWxGinumv3JauH4csM9DtuHmOiJQAM=";
};
nativeBuildInputs = [ pkg-config qmake ];
@ -20,7 +20,7 @@ mkDerivation rec {
description = "Enables musicians to perform real-time jam sessions over the internet";
longDescription = "You also need to enable JACK and should enable several real-time optimizations. See project website for details";
homepage = "https://github.com/corrados/jamulus/wiki";
license = lib.licenses.gpl2; # linked in git repo, at least
license = lib.licenses.gpl2Plus;
platforms = lib.platforms.linux;
maintainers = [ lib.maintainers.seb314 ];
};

View file

@ -2,13 +2,13 @@
stdenv.mkDerivation rec {
pname = "new-session-manager";
version = "1.5.0";
version = "1.5.1";
src = fetchFromGitHub {
owner = "linuxaudio";
repo = "new-session-manager";
rev = "v${version}";
sha256 = "sha256-YP5AHoFP8P1o0Y2jAipRcNPxPRuM7COs5tBMm6Eojoc=";
sha256 = "sha256-hcw+Fn5s1S786eqmR95RmkFcIaRzWaH38YE9DXVQJU0=";
};
nativeBuildInputs = [ meson pkg-config ninja ];

View file

@ -2,14 +2,14 @@
, usePulseAudio ? config.pulseaudio or false, libpulseaudio }:
let
version = "0.5.5";
version = "0.5.6";
in stdenv.mkDerivation {
pname = "openmpt123";
inherit version;
src = fetchurl {
url = "https://lib.openmpt.org/files/libopenmpt/src/libopenmpt-${version}+release.autotools.tar.gz";
sha256 = "sha256-8eAUg+vxpoDZ7AMMmvIPXypawPHgZCwYvVWTz6qc62s=";
sha256 = "sha256-F96ngrM0wUb0rNlIx8Mf/dKvyJnrNH6+Ab4WBup59Lg=";
};
enableParallelBuilding = true;

View file

@ -1,5 +1,6 @@
{ lib, stdenv
, fetchFromGitHub
, fetchpatch
, meson
, ninja
, pkg-config
@ -45,13 +46,15 @@ let
];
in stdenv.mkDerivation rec {
pname = "pulseeffects";
version = "5.0.0";
# 5.0.3 crashes. Test carefully before updating.
# https://github.com/wwmm/pulseeffects/issues/927
version = "5.0.2";
src = fetchFromGitHub {
owner = "wwmm";
repo = "pulseeffects";
rev = "v${version}";
sha256 = "1zs13bivxlgcb24lz1pgmgy2chcjxnmn4lz7g1n0ygiaaj4c30xj";
sha256 = "14ir25q6bws26im6qmj3k6hkfdh5pc6mbvln7wkdwy5dv0vix3cm";
};
nativeBuildInputs = [
@ -87,6 +90,15 @@ in stdenv.mkDerivation rec {
zita-convolver
];
patches = [
(fetchpatch {
# Fix build failure.
# https://github.com/wwmm/pulseeffects/pull/934
url = "https://github.com/wwmm/pulseeffects/commit/ab7354a6850d23840b4c9af212dbebf4f31a562f.patch";
sha256 = "1hd05xn6sp0xs632mqgwk19hl40kh2f69mx5mgzahysrj057w22c";
})
];
postPatch = ''
chmod +x meson_post_install.py
patchShebangs meson_post_install.py
@ -104,6 +116,8 @@ in stdenv.mkDerivation rec {
BOOST_INCLUDEDIR = "${lib.getDev boost}/include";
BOOST_LIBRARYDIR = "${lib.getLib boost}/lib";
separateDebugInfo = true;
meta = with lib; {
description = "Limiter, compressor, reverberation, equalizer and auto volume effects for Pulseaudio applications";
homepage = "https://github.com/wwmm/pulseeffects";

View file

@ -1,12 +1,12 @@
{ mkDerivation, lib, fetchurl, pkg-config, qtbase, qttools, alsaLib, libjack2 }:
mkDerivation rec {
version = "0.6.3";
version = "0.9.1";
pname = "qmidinet";
src = fetchurl {
url = "mirror://sourceforge/qmidinet/${pname}-${version}.tar.gz";
sha256 = "04jbvnf6yp9l0bhl1ym6zqkmaz8c2az3flq7qgflaxzj3isns1p1";
sha256 = "sha256-cDgF5hbjy5DzGn4Rlmb76XzRa2wURVwPu2rQRKENxQU=";
};
hardeningDisable = [ "format" ];

View file

@ -4,11 +4,11 @@
mkDerivation rec {
pname = "qsynth";
version = "0.6.3";
version = "0.9.1";
src = fetchurl {
url = "mirror://sourceforge/qsynth/${pname}-${version}.tar.gz";
sha256 = "0xiqmpzpxjvh32vivfj6h33w0ahmyfjzjb41b6fnf92bbg9k6mqv";
sha256 = "sha256-VNcI5QOVacHBcI6psEvhm7+cOTpwr2pMVXmk7nMXNiY=";
};
nativeBuildInputs = [ autoconf pkg-config ];

View file

@ -1,20 +1,49 @@
{ lib, stdenv, fetchFromGitHub , cmake, libjack2, libsndfile, pkg-config }:
{ lib, stdenv, fetchFromGitHub
, libjack2, libsndfile, xorg, freetype, libxkbcommon
, cairo, glib, gnome3, flac, libogg, libvorbis, libopus
, cmake, pkg-config
}:
stdenv.mkDerivation rec {
pname = "sfizz";
version = "0.4.0";
version = "0.5.1";
src = fetchFromGitHub {
owner = "sfztools";
repo = pname;
rev = version;
sha256 = "0zpmvmh7n0064rxfqxb7z9rnz493k7yq7nl0vxppqnasg97jn5f3";
sha256 = "sha256-3RdY5+BPsdk6vctDy24w5aJsVOV9qzSgXs62Pm5UEKs=";
fetchSubmodules = true;
};
buildInputs = [
libjack2
libsndfile
flac
libogg
libvorbis
libopus
xorg.libX11
xorg.libxcb
xorg.libXau
xorg.libXdmcp
xorg.xcbutil
xorg.xcbutilcursor
xorg.xcbutilrenderutil
xorg.xcbutilkeysyms
xorg.xcbutilimage
libxkbcommon
cairo
glib
gnome3.zenity
freetype
];
nativeBuildInputs = [ cmake pkg-config ];
buildInputs = [ libjack2 libsndfile ];
postPatch = ''
substituteInPlace editor/external/vstgui4/vstgui/lib/platform/linux/x11fileselector.cpp \
--replace '"/usr/bin/zenity' '"${gnome3.zenity}/bin/zenity'
'';
cmakeFlags = [
"-DCMAKE_BUILD_TYPE=Release"

View file

@ -1,7 +1,7 @@
{ fetchurl, lib, stdenv, squashfsTools, xorg, alsaLib, makeWrapper, openssl, freetype
, glib, pango, cairo, atk, gdk-pixbuf, gtk2, cups, nspr, nss, libpng, libnotify
, glib, pango, cairo, atk, gdk-pixbuf, gtk3, cups, nspr, nss, libpng, libnotify
, libgcrypt, systemd, fontconfig, dbus, expat, ffmpeg_3, curl, zlib, gnome3
, at-spi2-atk, at-spi2-core, libpulseaudio, libdrm, mesa
, at-spi2-atk, at-spi2-core, libpulseaudio, libdrm, mesa, libxkbcommon
}:
let
@ -10,14 +10,14 @@ let
# If an update breaks things, one of those might have valuable info:
# https://aur.archlinux.org/packages/spotify/
# https://community.spotify.com/t5/Desktop-Linux
version = "1.1.46.916.g416cacf1";
version = "1.1.55.494.gca75f788";
# To get the latest stable revision:
# curl -H 'X-Ubuntu-Series: 16' 'https://api.snapcraft.io/api/v1/snaps/details/spotify?channel=stable' | jq '.download_url,.version,.last_updated'
# To get general information:
# curl -H 'Snap-Device-Series: 16' 'https://api.snapcraft.io/v2/snaps/info/spotify' | jq '.'
# More examples of api usage:
# https://github.com/canonical-websites/snapcraft.io/blob/master/webapp/publisher/snaps/views.py
rev = "43";
rev = "45";
deps = [
alsaLib
@ -34,12 +34,13 @@ let
freetype
gdk-pixbuf
glib
gtk2
gtk3
libdrm
libgcrypt
libnotify
libpng
libpulseaudio
libxkbcommon
mesa
nss
pango
@ -78,11 +79,10 @@ stdenv.mkDerivation {
# https://community.spotify.com/t5/Desktop-Linux/Redistribute-Spotify-on-Linux-Distributions/td-p/1695334
src = fetchurl {
url = "https://api.snapcraft.io/api/v1/snaps/download/pOBIoZ2LrCB3rDohMxoYGnbN14EHOgD7_${rev}.snap";
sha512 = "5b3d5d1f52a554c8e775b8aed16ef84e96bf3b61a2b53266e10d3c47e341899310af13cc8513b04424fc14532e36543a6fae677f80a036e3f51c75166d8d53d1";
sha512 = "5d61a2d5b26be651620ab5d18d3a204d8d7b09dcec8a733ddc176c44cb43e9176c4350933ebe4498b065ba219113f3226c13bea9659da738fe635f41d01db303";
};
nativeBuildInputs = [ makeWrapper ];
buildInputs = [ squashfsTools ];
nativeBuildInputs = [ makeWrapper squashfsTools ];
dontStrip = true;
dontPatchELF = true;

View file

@ -19,20 +19,20 @@
stdenv.mkDerivation rec {
pname = "pika-backup";
version = "0.2.1";
version = "0.2.2";
src = fetchFromGitLab {
domain = "gitlab.gnome.org";
owner = "World";
repo = "pika-backup";
rev = "v${version}";
sha256 = "0fm6vwpw0pa98v2yn8p3818rrlv9lk3pmgnal1b2kh52im5ll7m8";
sha256 = "16284gv31wdwmb99056962d1gh6xz26ami6synr47nsbbp5l0s6k";
};
cargoDeps = rustPlatform.fetchCargoTarball {
inherit src;
name = "${pname}-${version}";
sha256 = "1f5s6a0wjrs2spsicirhbvb5xlz9iflwsaqchij9k02hfcsr308y";
sha256 = "12ymjwpxx3sdna8w5j9fnwwfk8ynk9ziwl0lkpq68y0vyllln5an";
};
patches = [

View file

@ -1,5 +1,5 @@
{ lib, stdenv, fetchFromGitHub, fetchurl, linkFarmFromDrvs, makeWrapper,
dotnetPackages, dotnetCorePackages, writeScript, bash
dotnetPackages, dotnetCorePackages
}:
let
@ -15,13 +15,13 @@ in
stdenv.mkDerivation rec {
pname = "btcpayserver";
version = "1.0.6.8";
version = "1.0.7.0";
src = fetchFromGitHub {
owner = pname;
repo = pname;
rev = "v${version}";
sha256 = "1znmix9w7ahzyb933lxzqv6j8j5qycknq3gmnkakj749ksshql1b";
sha256 = "1pbq0kik29sx1lwlic7fvhnjhrpnlk94w53wmywqnlpgjscx8x8a";
};
nativeBuildInputs = [ dotnetSdk dotnetPackages.Nuget makeWrapper ];

View file

@ -19,6 +19,11 @@
version = "3.3.110.10";
sha256 = "1lf1hfbx792dpa1hxgn0a0jrrvldd16hgbxx229dk2qcz5qlnc38";
})
(fetchNuGet {
name = "BIP78.Sender";
version = "0.2.0";
sha256 = "0gyynn15rc1x9p2703ffi4jnbpbd0k3wvg839xrk2skmaw8nxamf";
})
(fetchNuGet {
name = "BTCPayServer.Hwi";
version = "1.1.3";
@ -26,38 +31,43 @@
})
(fetchNuGet {
name = "BTCPayServer.Lightning.All";
version = "1.2.4";
sha256 = "1f4wgs8ijk1wmppz5lmas7l6m83szz57jyk6ak0dxhccdld9rdaj";
version = "1.2.7";
sha256 = "0jzmzvlpf6iba2fsc6cyi69vlaim9slqm2sapknmd7drl3gcn2zj";
})
(fetchNuGet {
name = "BTCPayServer.Lightning.Charge";
version = "1.2.1";
sha256 = "0iv9frbr6xfxif3pnfd7c87y8mv31nqkdrnhvnaswrx43nv6s272";
version = "1.2.3";
sha256 = "1rdrwmijx0v4z0xsq4acyvdcj7hv6arfh3hwjy89rqnkkznrzgwv";
})
(fetchNuGet {
name = "BTCPayServer.Lightning.CLightning";
version = "1.2.1";
sha256 = "14km69jzmnyqg19w27g6znml4z0xkm8l4j7rj0x36bw67cjmgahv";
version = "1.2.3";
sha256 = "02197rh03q8d0mv40zf67wp1rd2gbxi5l8krd2rzj84n267bcfvc";
})
(fetchNuGet {
name = "BTCPayServer.Lightning.Common";
version = "1.2.0";
sha256 = "17di8ndkw8z0ci0zk15mcrqpmganwkz9ys2snr2rqpw5mrlhpwa0";
})
(fetchNuGet {
name = "BTCPayServer.Lightning.Common";
version = "1.2.2";
sha256 = "07xb7fsqvfjmcawxylriw60i73h0cvfb765aznhp9ffyrmjaql7z";
})
(fetchNuGet {
name = "BTCPayServer.Lightning.Eclair";
version = "1.2.0";
sha256 = "0w7nwsr0n2hrqak023xa294palsk3r96wlgw2ks8d3p5kxm8kskp";
version = "1.2.2";
sha256 = "03dymhwxb5s28kb187g5h4aysnz2xzml89p47nmwz9lkg2h4s73h";
})
(fetchNuGet {
name = "BTCPayServer.Lightning.LND";
version = "1.2.1";
sha256 = "0ql4qyvz0rms6ls46pi3bgak3r6hj2c5ivnzahiq6cb84pbl61cr";
version = "1.2.4";
sha256 = "0qnj5rsp6hnybsr58zny9dfbsxksg1674q0z9944jwkzm7pcqyg4";
})
(fetchNuGet {
name = "BTCPayServer.Lightning.Ptarmigan";
version = "1.2.0";
sha256 = "1yd6nhlssb9k08p5491knlwwjij9324ildir99sa9cp24rlq5nis";
version = "1.2.2";
sha256 = "17yl85vqfp7l12bv3f3w1b861hm41i7cfhs78gaq04s4drvcnj6k";
})
(fetchNuGet {
name = "BuildBundlerMinifier";
@ -79,11 +89,6 @@
version = "15.0.5";
sha256 = "01y8bhsnxghn3flz0pr11vj6wjrpmia8rpdrsp7kjfc1zmhqlgma";
})
(fetchNuGet {
name = "DBriize";
version = "1.0.1.3";
sha256 = "0rsm68hwq2ky8i6mv3ckdjkj4vjygnkgk3disva0skl3apk833dc";
})
(fetchNuGet {
name = "DigitalRuby.ExchangeSharp";
version = "0.6.3";
@ -666,13 +671,8 @@
})
(fetchNuGet {
name = "NBitcoin.Altcoins";
version = "2.0.21";
sha256 = "0xmygiwjlia7fbxy63893jb15g6fxggxxr9bbm8znd9bs3jzp2g1";
})
(fetchNuGet {
name = "NBitcoin";
version = "5.0.33";
sha256 = "030q609b9lhapq4wfl1w3impjw5m40kz2rg1s9jn3bn8yjfmsi4a";
version = "2.0.28";
sha256 = "1zfirfmhgigp733km9rqkgz560h5wg88bpba499x49h5j650cnn4";
})
(fetchNuGet {
name = "NBitcoin";
@ -686,13 +686,13 @@
})
(fetchNuGet {
name = "NBitcoin";
version = "5.0.60";
sha256 = "0pin4ldfz5lfxyd47mj1ypyp8lmj0v5nq5zvygdjna956vphd39v";
version = "5.0.67";
sha256 = "049marx1jwr7srlpqspimrqqgahh53gi2iyp7bpzn5npsbzh9v3h";
})
(fetchNuGet {
name = "NBitcoin";
version = "5.0.68";
sha256 = "0k275mbp9wannm10pqj4nv8agjc1f6hsrfhl0m6ax1apv81sfxcd";
version = "5.0.73";
sha256 = "0vqgcb0ws5fnkrdzqfkyh78041c6q4l22b93rr0006dd4bmqrmg1";
})
(fetchNuGet {
name = "NBitpayClient";
@ -701,8 +701,8 @@
})
(fetchNuGet {
name = "NBXplorer.Client";
version = "3.0.19";
sha256 = "0nahfxdsryf5snjy87770m51v2jcry02lmb10ilsg4h2ig4pjdk4";
version = "3.0.20";
sha256 = "1mwa6ncmg5r6q7yn6skm9dgqm631c7r7nadcg9mvbw81113h0xxy";
})
(fetchNuGet {
name = "NETStandard.Library";
@ -729,11 +729,6 @@
version = "10.0.3";
sha256 = "06vy67bkshclpz69kps4vgzc9h2cgg41c8vlqmdbwclfky7c4haq";
})
(fetchNuGet {
name = "Newtonsoft.Json";
version = "11.0.1";
sha256 = "1z68j07if1xf71lbsrgbia52r812i2dv541sy44ph4dzjjp7pd4m";
})
(fetchNuGet {
name = "Newtonsoft.Json";
version = "11.0.2";
@ -921,8 +916,8 @@
})
(fetchNuGet {
name = "Selenium.WebDriver.ChromeDriver";
version = "87.0.4280.8800";
sha256 = "1zrizydlhjv81r1fa5g8wzxrx1cxly3ip7pargj48hdx419iblfr";
version = "88.0.4324.9600";
sha256 = "0jm8dpfp329xsrg69lzq2m6x9yin1m43qgrhs15cz2qx9f02pdx9";
})
(fetchNuGet {
name = "Selenium.WebDriver";

View file

@ -0,0 +1,44 @@
{ lib, fetchFromGitHub, python3Packages }:
python3Packages.buildPythonApplication rec {
pname = "lndmanage";
version = "0.11.0";
src = fetchFromGitHub {
owner = "bitromortac";
repo = pname;
rev = "v${version}";
sha256 = "19sqf7cjslwpfzcdbyq182dx7gnn9hii77sahbnh88v69qxgwzvb";
};
propagatedBuildInputs = with python3Packages; [
cycler
decorator
googleapis-common-protos
grpcio
grpcio-tools
kiwisolver
networkx
numpy
protobuf
pyparsing
python-dateutil
six
pygments
];
preBuild = ''
substituteInPlace setup.py --replace '==' '>='
'';
preCheck = ''
export HOME=$(mktemp -d)
'';
meta = with lib; {
description = "Channel management tool for lightning network daemon (LND) operators";
homepage = "https://github.com/bitromortac/lndmanage";
license = licenses.mit;
maintainers = with maintainers; [ mmilata ];
};
}

View file

@ -12,16 +12,16 @@
rustPlatform.buildRustPackage rec {
pname = "openethereum";
version = "3.1.1";
version = "3.2.1";
src = fetchFromGitHub {
owner = "openethereum";
repo = "openethereum";
rev = "v${version}";
sha256 = "sha256-RUrJuJF0R0mc7XdLyk915fRWtMfzjp5QE6oeWxHfyEQ=";
sha256 = "sha256-+bzMo0s+wdp8T/YjPk6mrPSPid1G8WScB8FJhXdL9JQ=";
};
cargoSha256 = "sha256-b+winsCzU0sXGDX6nUtWq4JrIyTcJ3uva7RlV5VsXfk=";
cargoSha256 = "sha256-ibjjJ5zGF6wbO24/RoYKsTYsMNXHb1EdekDwSICPc5g=";
LIBCLANG_PATH = "${llvmPackages.libclang}/lib";
nativeBuildInputs = [

View file

@ -24,11 +24,11 @@ let
in
stdenv.mkDerivation rec {
pname = "wasabiwallet";
version = "1.1.12.4";
version = "1.1.12.5";
src = fetchurl {
url = "https://github.com/zkSNACKs/WalletWasabi/releases/download/v${version}/Wasabi-${version}.tar.gz";
sha256 = "sha256-1yg0C1lJrLxQEs2GA+XEBUx/JAyc+aW0UWjLhSEy0RI=";
sha256 = "sha256-6KIsSsCAyZ6uYSbDBIKdtM4adGOttvJ78obCptcd57s=";
};
dontBuild = true;

View file

@ -1,4 +1,4 @@
{ mkDerivation, lib, fetchFromGitHub
{ mkDerivation, lib, fetchFromGitHub, fetchpatch
, cmake, extra-cmake-modules, pkg-config, libxcb, libpthreadstubs
, libXdmcp, libXau, qtbase, qtdeclarative, qtquickcontrols2, qttools, pam, systemd
}:
@ -19,6 +19,12 @@ in mkDerivation {
patches = [
./sddm-ignore-config-mtime.patch
# Load `/etc/profile` for `environment.variables` with zsh default shell.
# See: https://github.com/sddm/sddm/pull/1382
(fetchpatch {
url = "https://github.com/sddm/sddm/commit/e1dedeeab6de565e043f26ac16033e613c222ef9.patch";
sha256 = "sha256-OPyrUI3bbH+PGDBfoL4Ohb4wIvmy9TeYZhE0JxR/D58=";
})
];
postPatch =

View file

@ -1,5 +1,5 @@
{ lib, stdenv, fetchurl, intltool, wrapGAppsHook, pkg-config , gtk, libxml2
, enchant, gucharmap, python, gnome3
, enchant, gucharmap, python3, gnome3
}:
stdenv.mkDerivation rec {
@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
nativeBuildInputs = [ intltool pkg-config wrapGAppsHook ];
buildInputs = [ gnome3.adwaita-icon-theme gtk libxml2
enchant gucharmap python ];
enchant gucharmap python3 ];
meta = with lib; {
description = "A powerful editor targeted towards programmers and webdevelopers";

View file

@ -223,10 +223,10 @@
elpaBuild {
pname = "auctex";
ename = "auctex";
version = "13.0.4";
version = "13.0.5";
src = fetchurl {
url = "https://elpa.gnu.org/packages/auctex-13.0.4.tar";
sha256 = "1362dqb8mcaddda9849gqsj6rzlfq18xprddb74j02884xl7hq65";
url = "https://elpa.gnu.org/packages/auctex-13.0.5.tar";
sha256 = "072wwsqfl8n2gi2inbp0s8k1ydr6fh1zyvc3rgynwzibjjniy319";
};
packageRequires = [ cl-lib emacs ];
meta = {
@ -2203,10 +2203,10 @@
elpaBuild {
pname = "modus-operandi-theme";
ename = "modus-operandi-theme";
version = "0.13.1";
version = "0.13.2";
src = fetchurl {
url = "https://elpa.gnu.org/packages/modus-operandi-theme-0.13.1.tar";
sha256 = "08l9qmhvxiscxn4mfb80x57mk4gfm5r0fs2l9c8i3gfzd4i3h091";
url = "https://elpa.gnu.org/packages/modus-operandi-theme-0.13.2.tar";
sha256 = "1sw18ijp9rhaf8y8x8z5rmxy23pxd3gaicgmp2zndcfmm54gwsic";
};
packageRequires = [ emacs modus-themes ];
meta = {
@ -2237,10 +2237,10 @@
elpaBuild {
pname = "modus-vivendi-theme";
ename = "modus-vivendi-theme";
version = "0.13.1";
version = "0.13.2";
src = fetchurl {
url = "https://elpa.gnu.org/packages/modus-vivendi-theme-0.13.1.tar";
sha256 = "0xz304zcc872c2zwnlm8ky0m18smf7bffiyj21ygghgclr7kgma1";
url = "https://elpa.gnu.org/packages/modus-vivendi-theme-0.13.2.tar";
sha256 = "1qn3kzxwf81zc7gprd9wblhb8b8akdkxwajpgk036y8i4cmvmspn";
};
packageRequires = [ emacs modus-themes ];
meta = {
@ -3252,10 +3252,10 @@
elpaBuild {
pname = "setup";
ename = "setup";
version = "0.1.1";
version = "0.1.2";
src = fetchurl {
url = "https://elpa.gnu.org/packages/setup-0.1.1.tar";
sha256 = "0z34m06lxw6xd6bxacm1h5cijamsksk4daf6fbzhd7kqmw3gbgqg";
url = "https://elpa.gnu.org/packages/setup-0.1.2.tar";
sha256 = "1q29phch4fvmvc255kgvzsnzdqp6kaip7ybpxprd0kkdjs3jrsqv";
};
packageRequires = [ emacs ];
meta = {

View file

@ -4,10 +4,10 @@
elpaBuild {
pname = "org";
ename = "org";
version = "20210315";
version = "20210322";
src = fetchurl {
url = "https://orgmode.org/elpa/org-20210315.tar";
sha256 = "128agds82kfmvxshzrs61802vgwlf2dsm79hq9x2bljrnvf8p14l";
url = "https://orgmode.org/elpa/org-20210322.tar";
sha256 = "0iv54rhwa0972yr1wqzmlkggs5vc6qajz8mmyfhynp65ap088g6v";
};
packageRequires = [];
meta = {
@ -19,10 +19,10 @@
elpaBuild {
pname = "org-plus-contrib";
ename = "org-plus-contrib";
version = "20210315";
version = "20210322";
src = fetchurl {
url = "https://orgmode.org/elpa/org-plus-contrib-20210315.tar";
sha256 = "0dih4690pbbnwlphjnv1kgvsw43pkcgk41xjjiphy9sf7w9gr11j";
url = "https://orgmode.org/elpa/org-plus-contrib-20210322.tar";
sha256 = "0riswc3ira8hsawm37yypji55z47bw2477kaw3qx7ghz3n62r9nf";
};
packageRequires = [];
meta = {

View file

@ -2,13 +2,13 @@
mkDerivation rec {
pname = "ghostwriter";
version = "2.0.0-rc4";
version = "2.0.0-rc5";
src = fetchFromGitHub {
owner = "wereturtle";
repo = pname;
rev = version;
sha256 = "07547503a209hc0fcg902w3x0s1m899c10nj3gqz3hak0cmrasi3";
sha256 = "sha256-Gc0/AHxxJd5Cq3dBQ0Xy2TF78CBmQFYUzm4s7q1aHEE=";
};
nativeBuildInputs = [ qmake pkg-config qttools ];

View file

@ -29,24 +29,24 @@ let
connect-kak = buildKakounePluginFrom2Nix {
pname = "connect-kak";
version = "2021-02-13";
version = "2021-02-24";
src = fetchFromGitHub {
owner = "alexherbo2";
owner = "kakounedotcom";
repo = "connect.kak";
rev = "0858c0e50c6ca6d214fb088f052385a242548e83";
sha256 = "1w4pwybg3v916hcyc49gz0blygv54ivv81x8fxp44ck0sy98idr3";
rev = "a536605a208149eed58986bda54f3dda215dfe61";
sha256 = "1svw64zk28sn271vjyzvq21zaln13vnx59rxnxah6adq8n5nkr4a";
};
meta.homepage = "https://github.com/alexherbo2/connect.kak/";
meta.homepage = "https://github.com/kakounedotcom/connect.kak/";
};
fzf-kak = buildKakounePluginFrom2Nix {
pname = "fzf-kak";
version = "2021-01-27";
version = "2021-03-15";
src = fetchFromGitHub {
owner = "andreyorst";
repo = "fzf.kak";
rev = "e10de405e2a98e910d0808059200d206ba80f865";
sha256 = "1hbsm1k8k0cgv7gxqicvnl22n2lb1plhkanniggk694gll22lq68";
rev = "4e6c9a857511fccdbbc835a1c9acb205b6486a4c";
sha256 = "0syhhdlsm7vg6hcd2n2acag9g562z49rbb5smh5p2gnplhmp93i0";
};
meta.homepage = "https://github.com/andreyorst/fzf.kak/";
};
@ -149,26 +149,26 @@ let
powerline-kak = buildKakounePluginFrom2Nix {
pname = "powerline-kak";
version = "2021-02-15";
version = "2021-02-25";
src = fetchFromGitHub {
owner = "jdugan6240";
owner = "andreyorst";
repo = "powerline.kak";
rev = "322a760daa099d519ff50d14c29b27f3e2af00d1";
sha256 = "0mb8f8p6g75p05ifp45i0gbq2mib8c8giz7r1xfd0yrwspp4aksc";
rev = "64ad98b6c85e63345563671b043960464d51c4b0";
sha256 = "09w2sk19qi64hgsyg4gb407vyppnlgk272mqbinz2r3apy6szkl3";
};
meta.homepage = "https://github.com/jdugan6240/powerline.kak/";
meta.homepage = "https://github.com/andreyorst/powerline.kak/";
};
prelude-kak = buildKakounePluginFrom2Nix {
pname = "prelude-kak";
version = "2020-09-06";
version = "2021-02-24";
src = fetchFromGitHub {
owner = "alexherbo2";
owner = "kakounedotcom";
repo = "prelude.kak";
rev = "f1e0f4d5cb62a36924e3f8ba6824d6aed8c19d23";
rev = "5dbdc020c546032885c1fdb463e366cc89fc15ad";
sha256 = "1pncr8azqvl2z9yvzhc68p1s9fld8cvak8yz88zgrp5ypx2cxl8c";
};
meta.homepage = "https://github.com/alexherbo2/prelude.kak/";
meta.homepage = "https://github.com/kakounedotcom/prelude.kak/";
};
replace-mode-kak = buildKakounePluginFrom2Nix {

View file

@ -1,16 +1,16 @@
alexherbo2/auto-pairs.kak
alexherbo2/connect.kak
alexherbo2/prelude.kak
alexherbo2/replace-mode.kak
alexherbo2/sleuth.kak
andreyorst/fzf.kak
andreyorst/powerline.kak
danr/kakoune-easymotion
Delapouite/kakoune-buffers
Delapouite/kakoune-registers
enricozb/tabs.kak@main
greenfork/active-window.kak
jdugan6240/powerline.kak
kakoune-editor/kakoune-extra-filetypes
kakounedotcom/connect.kak
kakounedotcom/prelude.kak
listentolist/kakoune-rainbow
mayjs/openscad.kak
occivink/kakoune-buffer-switcher

View file

@ -1,4 +1,4 @@
{ lib, stdenv, mkDerivation, fetchFromGitHub, cmake, doxygen, makeWrapper
{ lib, mkDerivation, fetchFromGitHub, cmake, doxygen, makeWrapper
, msgpack, neovim, pythonPackages, qtbase }:
mkDerivation rec {

View file

@ -1,20 +1,20 @@
{ lib, stdenv, fetchhg, fetchFromGitHub, fetchurl, gtk2, glib, pkg-config, unzip, ncurses, zip }:
{ lib, stdenv, fetchFromGitHub, fetchurl, gtk2, glib, pkg-config, unzip, ncurses, zip }:
stdenv.mkDerivation rec {
version = "11.0_beta";
version = "11.1";
pname = "textadept11";
nativeBuildInputs = [ pkg-config unzip ];
nativeBuildInputs = [ pkg-config unzip zip ];
buildInputs = [
gtk2 ncurses glib zip
gtk2 ncurses glib
];
src = fetchFromGitHub {
name = "textadept11";
owner = "orbitalquark";
repo = "textadept";
rev = "8da5f6b4a13f14b9dd3cb9dc23ad4f7bf41e91c1";
sha256 = "0v11v3x8g6v696m3l1bm52zy2g9xzz7hlmn912sn30nhcag3raxs";
rev = "1df99d561dd2055a01efa9183bb9e1b2ad43babc";
sha256 = "0g4bh5dp391vi32aa796vszpbxyl2dm5231v9dwc8l9v0b2786qn";
};
preConfigure =
@ -40,7 +40,9 @@ stdenv.mkDerivation rec {
'';
makeFlags = [
"PREFIX=$(out) WGET=true PIXMAPS_DIR=$(out)/share/pixmaps"
"PREFIX=$(out)"
"WGET=true"
"PIXMAPS_DIR=$(out)/share/pixmaps"
];
meta = with lib; {

View file

@ -3,13 +3,13 @@
url = "https://www.scintilla.org/scintilla445.tgz";
sha256 = "1v1kyxj7rv5rxadbg8gl8wh1jafpy7zj0wr6dcyxq9209dl6h8ag";
};
"9e2ffa159299899c9345aea15c17ba1941953871.zip" = {
url = "https://github.com/orbitalquark/scinterm/archive/9e2ffa159299899c9345aea15c17ba1941953871.zip";
sha256 = "12h7prgp689w45p4scxd8vvsyw8fkv27g6gvgis55xr44daa6122";
"6a774158d8a3c7bc7ea120bc01cdb016fa351a7e.zip" = {
url = "https://github.com/orbitalquark/scinterm/archive/6a774158d8a3c7bc7ea120bc01cdb016fa351a7e.zip";
sha256 = "083xvpw14dxbyrv4i48q76bmr44hs637qv363n6ibfs8xv1kq7iv";
};
"scintillua_4.4.5-1.zip" = {
url = "https://github.com/orbitalquark/scintillua/archive/scintillua_4.4.5-1.zip";
sha256 = "095wpbid2kvr5xgkhd5bd4sd7ljgk6gd9palrjkmdcwfgsf1lp04";
"scintillua_4.4.5-2.zip" = {
url = "https://github.com/orbitalquark/scintillua/archive/scintillua_4.4.5-2.zip";
sha256 = "1061y2gg78zb2mml8msyarxgdwbf7g8g2v08fr1qqsqi2pbb7mfc";
};
"lua-5.3.5.tar.gz" = {
url = "http://www.lua.org/ftp/lua-5.3.5.tar.gz";
@ -19,17 +19,17 @@
url = "http://www.inf.puc-rio.br/~roberto/lpeg/lpeg-1.0.2.tar.gz";
sha256 = "1zjzl7acvcdavmcg5l7wi12jd4rh95q9pl5aiww7hv0v0mv6bmj8";
};
"v1_7_0_2.zip" = {
url = "https://github.com/keplerproject/luafilesystem/archive/v1_7_0_2.zip";
sha256 = "0y44ymc7higz5dd2w3c6ib7mwmpr6yvszcl7lm12nf8x3y4snx4i";
"v1_8_0.zip" = {
url = "https://github.com/keplerproject/luafilesystem/archive/v1_8_0.zip";
sha256 = "12p1p5qpdql44y3cc035h8rs8rgdqp6nrnrixlp5544agb5bx9p3";
};
"64587546482a1a6324706d75c80b77d2f87118a4.zip" = {
url = "https://github.com/orbitalquark/gtdialog/archive/64587546482a1a6324706d75c80b77d2f87118a4.zip";
sha256 = "10mglbnn8r1cakqn9h285pwfnh7kfa98v7j8qh83c24n66blyfh9";
};
"cdk-5.0-20150928.tgz" = {
url = "http://invisible-mirror.net/archives/cdk/cdk-5.0-20150928.tgz";
sha256 = "0j74l874y33i26y5kjg3pf1vswyjif8k93pqhi0iqykpbxfsg382";
"cdk-5.0-20200923.tgz" = {
url = "http://invisible-mirror.net/archives/cdk/cdk-5.0-20200923.tgz";
sha256 = "1vdakz119a13d7p7w53hk56fdmbkhv6y9xvdapcfnbnbh3l5szq0";
};
"libtermkey-0.20.tar.gz" = {
url = "http://www.leonerd.org.uk/code/libtermkey/libtermkey-0.20.tar.gz";

View file

@ -3,13 +3,13 @@
mkDerivation rec {
pname = "tiled";
version = "1.4.3";
version = "1.5.0";
src = fetchFromGitHub {
owner = "bjorn";
repo = pname;
rev = "v${version}";
sha256 = "0n8p7bp5pqq72c65av3v7wbazwphh78pw27nqvpiyp9y8k5w4pg0";
sha256 = "sha256-Pf9nA5DUAJ+PPNG+oP7RO4/TD8fy4ADsyq625a6cbFk=";
};
nativeBuildInputs = [ pkg-config qmake ];

View file

@ -75,7 +75,6 @@ in stdenv.mkDerivation rec {
patches = [ ./cflags-prune.diff ] ++ lib.optional ftNixSupport ./ft-nix-support.patch;
configureFlags = [
"--enable-gui=${guiSupport}"
"--with-features=${features}"
"--disable-xsmp" # XSMP session management
"--disable-xsmp_interact" # XSMP interaction
@ -95,6 +94,7 @@ in stdenv.mkDerivation rec {
"--disable-carbon_check"
"--disable-gtktest"
]
++ lib.optional (guiSupport == "gtk2" || guiSupport == "gtk3") "--enable-gui=${guiSupport}"
++ lib.optional stdenv.isDarwin
(if darwinSupport then "--enable-darwin" else "--disable-darwin")
++ lib.optionals luaSupport [
@ -127,8 +127,22 @@ in stdenv.mkDerivation rec {
++ lib.optional (guiSupport == "gtk3") wrapGAppsHook
;
buildInputs = [ ncurses libX11 libXext libSM libXpm libXt libXaw libXau
libXmu glib libICE ]
buildInputs = [
ncurses
glib
]
# All X related dependencies
++ lib.optionals (guiSupport == "gtk2" || guiSupport == "gtk3") [
libSM
libICE
libX11
libXext
libXpm
libXt
libXaw
libXau
libXmu
]
++ lib.optional (guiSupport == "gtk2") gtk2-x11
++ lib.optional (guiSupport == "gtk3") gtk3-x11
++ lib.optionals darwinSupport [ CoreServices CoreData Cocoa Foundation libobjc ]

View file

@ -19,18 +19,18 @@ fi
VSCODE_VER=$(curl --fail --silent https://api.github.com/repos/Microsoft/vscode/releases/latest | jq --raw-output .tag_name)
sed -i "s/version = \".*\"/version = \"${VSCODE_VER}\"/" "$ROOT/vscode.nix"
VSCODE_LINUX_URL="https://vscode-update.azurewebsites.net/${VSCODE_VER}/linux-x64/stable"
VSCODE_LINUX_URL="https://update.code.visualstudio.com/${VSCODE_VER}/linux-x64/stable"
VSCODE_LINUX_SHA256=$(nix-prefetch-url ${VSCODE_LINUX_URL})
sed -i "s/x86_64-linux = \".\{52\}\"/x86_64-linux = \"${VSCODE_LINUX_SHA256}\"/" "$ROOT/vscode.nix"
VSCODE_DARWIN_URL="https://vscode-update.azurewebsites.net/${VSCODE_VER}/darwin/stable"
VSCODE_DARWIN_URL="https://update.code.visualstudio.com/${VSCODE_VER}/darwin/stable"
VSCODE_DARWIN_SHA256=$(nix-prefetch-url ${VSCODE_DARWIN_URL})
sed -i "s/x86_64-darwin = \".\{52\}\"/x86_64-darwin = \"${VSCODE_DARWIN_SHA256}\"/" "$ROOT/vscode.nix"
VSCODE_LINUX_AARCH64_URL="https://vscode-update.azurewebsites.net/${VSCODE_VER}/linux-arm64/stable"
VSCODE_LINUX_AARCH64_URL="https://update.code.visualstudio.com/${VSCODE_VER}/linux-arm64/stable"
VSCODE_LINUX_AARCH64_SHA256=$(nix-prefetch-url ${VSCODE_LINUX_AARCH64_URL})
sed -i "s/aarch64-linux = \".\{52\}\"/aarch64-linux = \"${VSCODE_LINUX_AARCH64_SHA256}\"/" "$ROOT/vscode.nix"
VSCODE_LINUX_ARMV7L_URL="https://vscode-update.azurewebsites.net/${VSCODE_VER}/linux-armhf/stable"
VSCODE_LINUX_ARMV7L_URL="https://update.code.visualstudio.com/${VSCODE_VER}/linux-armhf/stable"
VSCODE_LINUX_ARMV7L_SHA256=$(nix-prefetch-url ${VSCODE_LINUX_ARMV7L_URL})
sed -i "s/armv7l-linux = \".\{52\}\"/armv7l-linux = \"${VSCODE_LINUX_ARMV7L_SHA256}\"/" "$ROOT/vscode.nix"

View file

@ -13,10 +13,10 @@ let
archive_fmt = if system == "x86_64-darwin" then "zip" else "tar.gz";
sha256 = {
x86_64-linux = "1px6x99cv8nb8lcy3vgcicr4ar0bfj5rfnc5a1yw8rs5p1qnflgw";
x86_64-darwin = "0grzivqb2fyvwh0fjh9vr205fjcsrd1iqhkwk3mgv792zfrb7ksf";
aarch64-linux = "0p0msxgc13kqmpq7wk61igc1qbgmgg9463s44dp4ii3630iyr4lw";
armv7l-linux = "147lki1wr5nzsg1mq12jmdjq9qr6vbdpmzbpr5nrvq23cak94ff8";
x86_64-linux = "0fpa3b807hy3wrb98h5s0p6ljya279bikv2qwq30nvr0f4zn48bk";
x86_64-darwin = "0bw7pdzn0a0zr7x8fpwck7v73dq5vh71ja00z11mhjrkjnvmmd9k";
aarch64-linux = "04wrqcmyamhwiwcyay1z0q0dvf6g7k3pcs93x7hahy16l65w7s2c";
armv7l-linux = "1hkc9i4z021jwjn275w790bppfvi63g0cnwvkssqdh1c94939rhv";
}.${system};
in
callPackage ./generic.nix rec {
@ -25,7 +25,7 @@ in
# Please backport all compatible updates to the stable release.
# This is important for the extension ecosystem.
version = "1.54.2";
version = "1.54.3";
pname = "vscode";
executableName = "code" + lib.optionalString isInsiders "-insiders";
@ -34,7 +34,7 @@ in
src = fetchurl {
name = "VSCode_${version}_${plat}.${archive_fmt}";
url = "https://vscode-update.azurewebsites.net/${version}/${plat}/stable";
url = "https://update.code.visualstudio.com/${version}/${plat}/stable";
inherit sha256;
};

View file

@ -1,20 +1,39 @@
{ fetchurl, lib, stdenv, glib, libgee, pkg-config, ncurses, boehmgc, perl, help2man, vala }:
{ lib
, stdenv
, fetchurl
, boehmgc
, glib
, help2man
, libgee
, ncurses
, perl
, pkg-config
, vala
}:
stdenv.mkDerivation rec {
name = "zile-2.6.0.90";
pname = "zile";
version = "2.6.1";
src = fetchurl {
url = "mirror://gnu/zile/${name}.tar.gz";
sha256 = "1bhdwnasmqhy0hi3fqmpzr8xkw5zlqjpmf1cj42h4cg3fnamp6r3";
url = "mirror://gnu/zile/${pname}-${version}.tar.gz";
hash = "sha256-v7rN33aOORc6J0Z5JP5AmZCj6XvjYyoCl5hl+7mvAnc=";
};
buildInputs = [ glib libgee ncurses boehmgc vala ];
nativeBuildInputs = [ perl pkg-config ]
buildInputs = [
boehmgc
glib
libgee
ncurses
];
nativeBuildInputs = [
perl
pkg-config
vala
]
# `help2man' wants to run Zile, which won't work when the
# newly-produced binary can't be run at build-time.
++ lib.optional
(stdenv.hostPlatform == stdenv.buildPlatform)
help2man;
++ lib.optional (stdenv.hostPlatform == stdenv.buildPlatform) help2man;
# Tests can't be run because most of them rely on the ability to
# fiddle with the terminal.
@ -24,33 +43,38 @@ stdenv.mkDerivation rec {
gl_cv_func_fstatat_zero_flag="yes";
meta = with lib; {
description = "Lightweight Emacs clone";
longDescription = ''
GNU Zile, which is a lightweight Emacs clone. Zile is short
for Zile Is Lossy Emacs. Zile has been written to be as
similar as possible to Emacs; every Emacs user should feel at
home.
Zile has all of Emacs's basic editing features: it is 8-bit
clean (though it currently lacks Unicode support), and the
number of editing buffers and windows is only limited by
available memory and screen space respectively. Registers,
minibuffer completion and auto fill are available. Function
and variable names are identical with Emacs's (except those
containing the word "emacs", which instead contain the word
"zile"!).
However, all of this is packed into a program which typically
compiles to about 130Kb.
'';
homepage = "https://www.gnu.org/software/zile/";
description = "Zile Implements Lua Editors";
longDescription = ''
GNU Zile is a text editor development kit, so that you can (relatively)
quickly develop your own ideal text editor without reinventing the wheel
for many of the common algorithms and data-structures needed to do so.
It comes with an example implementation of a lightweight Emacs clone,
called Zemacs. Every Emacs user should feel at home with Zemacs. Zemacs is
aimed at small footprint systems and quick editing sessions (it starts up
and shuts down instantly).
More editors implemented over the Zile frameworks are forthcoming as the
data-structures and interfaces improve: Zz an emacs inspired editor using
Lua as an extension language; Zee a minimalist non-modal editor; Zi a
lightweight vi clone; and more...
Zile is a collection of algorithms and data-structures that currently
support all basic Emacs-like editing features: it is 8-bit clean (though
Unicode support is not ready yet), and the number of editing buffers and
windows is only limited by available memoryand screen space
respectively. Registers, minibuffer completion and auto fill are
available.
Zemacs implements a subset of Emacs with identical function and variable
names, continuing the spirit of the earlier Zile editor implemented in C.
GNU Zile, which is a lightweight Emacs clone. Zile is short for Zile Is
Lossy Emacs. Zile has been written to be as similar as possible to Emacs;
every Emacs user should feel at home.
'';
license = licenses.gpl3Plus;
maintainers = with maintainers; [ pSub ];
maintainers = with maintainers; [ pSub AndersonTorres ];
platforms = platforms.unix;
};
}

View file

@ -1,6 +1,7 @@
{ lib, stdenv
, mkDerivation
, fetchFromGitHub
, fetchpatch
, substituteAll
, gdal
, cmake
@ -19,7 +20,7 @@
mkDerivation rec {
pname = "OpenOrienteering-Mapper";
version = "0.9.4";
version = "0.9.5";
buildInputs = [
gdal
@ -38,14 +39,21 @@ mkDerivation rec {
owner = "OpenOrienteering";
repo = "mapper";
rev = "v${version}";
sha256 = "13k9dirqm74lknhr8w121zr1hjd9gm1y73cj4rrj98rx44dzmk7b";
sha256 = "1w8ikqpgi0ksrzjal5ihfaik4grc5v3gdnnv79j20xkr2p4yn1h5";
};
patches = (substituteAll {
# See https://github.com/NixOS/nixpkgs/issues/86054
patches = [
# https://github.com/NixOS/nixpkgs/issues/86054
(substituteAll {
src = ./fix-qttranslations-path.diff;
inherit qttranslations;
});
})
# https://github.com/OpenOrienteering/mapper/pull/1907
(fetchpatch {
url = "https://github.com/OpenOrienteering/mapper/commit/bc52aa567e90a58d6963b44d5ae1909f3f841508.patch";
sha256 = "1bkckapzccn6k0ri6bgrr0nhis9498fnwj7b32s2ysym8zcg0355";
})
];
cmakeFlags = [
# Building the manual and bundling licenses fails
@ -81,7 +89,8 @@ mkDerivation rec {
and provides a free alternative to the existing proprietary solution.
'';
homepage = "https://www.openorienteering.org/apps/mapper/";
license = licenses.gpl3;
changelog = "https://github.com/OpenOrienteering/mapper/releases/tag/v${version}";
license = licenses.gpl3Plus;
platforms = with platforms; linux ++ darwin;
maintainers = with maintainers; [ mpickering sikmir ];
};

View file

@ -1,5 +1,5 @@
{ lib, stdenv, fetchgit, autoconf, automake, libtool, gtk2, pkg-config, perlPackages,
libxml2, gettext, python, libxml2Python, docbook5, docbook_xsl,
libxml2, gettext, python2, libxml2Python, docbook5, docbook_xsl,
libxslt, intltool, libart_lgpl, withGNOME ? false, libgnomeui,
gtk-mac-integration-gtk2 }:
@ -18,7 +18,7 @@ stdenv.mkDerivation {
];
buildInputs =
[ gtk2 libxml2 gettext python libxml2Python docbook5
[ gtk2 libxml2 gettext python2 libxml2Python docbook5
libxslt docbook_xsl libart_lgpl ]
++ lib.optional withGNOME libgnomeui
++ lib.optional stdenv.isDarwin gtk-mac-integration-gtk2;

View file

@ -6,7 +6,7 @@
stdenv.mkDerivation rec {
pname = "lightburn";
version = "0.9.21";
version = "0.9.22";
nativeBuildInputs = [
p7zip
@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
src = fetchurl {
url = "https://github.com/LightBurnSoftware/deployment/releases/download/${version}/LightBurn-Linux64-v${version}.7z";
sha256 = "sha256-Tnv+vfKOdDWIU36T9ZqwdTwuMd2AOGyKBY0IkPfrZlc=";
sha256 = "sha256-DOiO36suytukkviqYyLL47DFVzsJt2ZfSnnni95CLaA=";
};
buildInputs = [

View file

@ -1,6 +1,6 @@
{ lib, stdenv
{ lib
, stdenv
, fetchFromGitLab
, fetchpatch
, writeText
, cmake
, doxygen
@ -44,24 +44,16 @@
stdenv.mkDerivation rec {
pname = "monado";
version = "0.4.1";
version = "21.0.0";
src = fetchFromGitLab {
domain = "gitlab.freedesktop.org";
owner = pname;
repo = pname;
rev = "v${version}";
sha256 = "114aif79dqyn2qg07mkv6lzmqn15k6fdcii818rdf5g4bp7zzzgm";
sha256 = "07zxs96i3prjqww1f68496cl2xxqaidx32lpfyy0pn5am4c297zc";
};
patches = [
# fix libsurvive autodetection, drop with the next version update
(fetchpatch {
url = "https://gitlab.freedesktop.org/monado/monado/-/commit/345e9eab56e2de9e8b07cf72c2a67cf2ebd01e62.patch";
sha256 = "17c110an6sxc8rn7dfz30rfkbayg64w68licicwc8cqabi6cgrm3";
})
];
nativeBuildInputs = [
cmake
doxygen

View file

@ -3,13 +3,13 @@
mkDerivation rec {
pname = "photoflare";
version = "1.6.7";
version = "1.6.7.1";
src = fetchFromGitHub {
owner = "PhotoFlare";
repo = "photoflare";
rev = "v${version}";
sha256 = "sha256-Gx3YP29NrNHp0p05a1O4Xb9kqkA6pQLTJZ3/wOx+BWY=";
sha256 = "sha256-7b7ICcHuMjOMtyQDkokoHeZrF4G+bOzgRJP4mkns+Zc=";
};
nativeBuildInputs = [ qmake qttools ];

View file

@ -2,11 +2,11 @@
stdenv.mkDerivation rec {
pname = "yEd";
version = "3.20.1";
version = "3.21.1";
src = fetchzip {
url = "https://www.yworks.com/resources/yed/demo/${pname}-${version}.zip";
sha256 = "0sd73s700f3gqq5zq1psrqjg6ff2gv49f8vd37v6bv65vdxqxryq";
sha256 = "1jw28hkd7p0n660gid8yh5y0kdcz6ycn4hsgjlf0pq48x9kv6w0c";
};
nativeBuildInputs = [ makeWrapper unzip wrapGAppsHook ];

View file

@ -1,7 +1,7 @@
{
mkDerivation, lib,
extra-cmake-modules,
ffmpeg_3, kio, taglib
ffmpeg_4, kio, taglib
}:
mkDerivation {
@ -11,5 +11,5 @@ mkDerivation {
maintainers = [ lib.maintainers.ttuegel ];
};
nativeBuildInputs = [ extra-cmake-modules ];
buildInputs = [ ffmpeg_3 kio taglib ];
buildInputs = [ ffmpeg_4 kio taglib ];
}

View file

@ -9,7 +9,7 @@ mkDerivation {
pname = "libksane";
meta = with lib; {
license = licenses.gpl2;
maintainers = with maintainers; [ pshendry ];
maintainers = with maintainers; [ polendri ];
};
nativeBuildInputs = [ extra-cmake-modules ];
buildInputs = [ qtbase ki18n ktextwidgets kwallet kwidgetsaddons sane-backends ];

View file

@ -8,11 +8,11 @@
stdenv.mkDerivation rec {
pname = "1password";
version = "8.0.28";
version = "8.0.30";
src = fetchurl {
url = "https://onepassword.s3.amazonaws.com/linux/appimage/${pname}-${version}.AppImage";
hash = "sha256-okLeyok/5rihGXaQaUR06dGkpuqqW02qJ6q6VVLtZsE=";
hash = "sha256-j+fp/f8nta+OOuOFU4mmUrGYlVmAqdaXO4rLJ0in+m8=";
};
nativeBuildInputs = [ makeWrapper ];

View file

@ -1,10 +1,10 @@
{ stdenv, lib, fetchFromGitHub, makeWrapper
, curl, python, bind, iproute, bc, gitMinimal }:
, curl, python3, bind, iproute, bc, gitMinimal }:
let
version = "1.23.0";
deps = lib.makeBinPath [
curl
python
python3
bind.dnsutils
iproute
bc
@ -24,11 +24,13 @@ stdenv.mkDerivation {
nativeBuildInputs = [ makeWrapper ];
patchPhase = ''
postPatch = ''
patchShebangs install.sh
substituteInPlace install.sh --replace /usr/local "$out"
'';
strictDeps = true;
dontBuild = true;
installPhase = ''

View file

@ -86,6 +86,7 @@ mkDerivation rec {
with python3Packages; [
apsw
beautifulsoup4
cchardet
css-parser
cssselect
dateutil

View file

@ -1,6 +1,6 @@
{ lib, fetchFromGitHub, pythonPackages, gettext }:
{ lib, fetchFromGitHub, python2Packages, gettext }:
pythonPackages.buildPythonApplication rec {
python2Packages.buildPythonApplication rec {
pname = "cherrytree";
version = "0.39.4";
@ -14,7 +14,7 @@ pythonPackages.buildPythonApplication rec {
nativeBuildInputs = [ gettext ];
propagatedBuildInputs = with pythonPackages; [ pygtk dbus-python pygtksourceview ];
propagatedBuildInputs = with python2Packages; [ pygtk dbus-python pygtksourceview ];
patches = [ ./subprocess.patch ];

View file

@ -1,4 +1,4 @@
{ lib, stdenv, fetchFromGitHub, fetchpatch
{ lib, stdenv, fetchFromGitHub
, dbus, cmake, pkg-config
, glib, udev, polkit, libusb1, libjpeg, libmodule
, pcre, libXdmcp, util-linux, libpthreadstubs
@ -9,39 +9,31 @@
stdenv.mkDerivation rec {
pname = "clightd";
version = "5.1";
version = "5.2";
src = fetchFromGitHub {
owner = "FedeDP";
repo = "Clightd";
rev = version;
sha256 = "sha256-BEGum0t+FrCTAEQwTsWeYpoIqimTAz+Bv/ZQPQ3fePY=";
sha256 = "sha256-bb+PQsWLf4KnbzWUY6B42yHaDQKN9dtyfwSLe8FBaWU=";
};
patches = [
# Not needed by next version bump
(fetchpatch {
url = "https://github.com/FedeDP/Clightd/commit/a52a2888e3798c572dad359a017cb0d40e7c5fb7.patch";
sha256 = "sha256-nUzNBia1EvBQxinAfjyKbuldBoHLY1hfMaxgG2lKQWg=";
})
];
# dbus-1.pc has datadir=/etc
SYSTEM_BUS_DIR = "${placeholder "out"}/share/dbus-1/system-services";
# systemd.pc has prefix=${systemd.out}
MODULE_LOAD_DIR = "${placeholder "out"}/lib/modules-load.d";
# polkit-gobject-1.pc has prefix=${polkit.out}
POLKIT_ACTION_DIR = "${placeholder "out"}/share/polkit-1/actions";
postPatch = ''
sed -i "s@/etc@$out\0@" CMakeLists.txt
sed -i "s@pkg_get_variable(SYSTEM_BUS_DIR.*@set(SYSTEM_BUS_DIR $SYSTEM_BUS_DIR)@" CMakeLists.txt
sed -i "s@pkg_get_variable(MODULE_LOAD_DIR.*@set(MODULE_LOAD_DIR $MODULE_LOAD_DIR)@" CMakeLists.txt
sed -i "s@pkg_get_variable(POLKIT_ACTION_DIR.*@set(POLKIT_ACTION_DIR $POLKIT_ACTION_DIR)@" CMakeLists.txt
'';
cmakeFlags = with lib;
optional enableDdc "-DENABLE_DDC=1"
[ "-DSYSTEMD_SERVICE_DIR=${placeholder "out"}/lib/systemd/system"
"-DDBUS_CONFIG_DIR=${placeholder "out"}/etc/dbus-1/system.d"
# systemd.pc has prefix=${systemd.out}
"-DMODULE_LOAD_DIR=${placeholder "out"}/lib/modules-load.d"
] ++ optional enableDdc "-DENABLE_DDC=1"
++ optional enableDpms "-DENABLE_DPMS=1"
++ optional enableGamma "-DENABLE_GAMMA=1"
++ optional enableScreen "-DENABLE_SCREEN=1";

View file

@ -1,4 +1,4 @@
{ stdenv, runtimeShell, lib, fetchurl, python, pythonPackages, unzip }:
{ stdenv, runtimeShell, lib, fetchurl, python2Packages, unzip }:
# This package uses a precompiled "binary" distribution of CuraByDagoma,
# distributed by the editor.
@ -13,7 +13,9 @@
# I guess people owning a 3D printer generally don't use i686.
# If, however, someone needs it, we certainly can find a solution.
stdenv.mkDerivation rec {
let
pythonPackages = python2Packages;
in stdenv.mkDerivation rec {
pname = "curabydagoma";
# Version is the date, UNIX format
version = "1520506579";
@ -26,7 +28,7 @@ stdenv.mkDerivation rec {
};
unpackCmd = "unzip $curSrc && tar zxf CuraByDagoma_amd64.tar.gz";
nativeBuildInputs = [ unzip ];
buildInputs = [ python pythonPackages.pyopengl pythonPackages.wxPython pythonPackages.pyserial pythonPackages.numpy ];
buildInputs = [ pythonPackages.python pythonPackages.pyopengl pythonPackages.wxPython pythonPackages.pyserial pythonPackages.numpy ];
# Compile all pyc files because the included pyc files may be older than the
# py files. However, Python doesn't realize that because the packages
@ -46,7 +48,7 @@ stdenv.mkDerivation rec {
cat > $out/bin/curabydago <<EOF
#!${runtimeShell}
export PYTHONPATH=$PYTHONPATH
${python.out}/bin/python $out/curabydago/cura.py
${pythonPackages.python.interpreter} $out/curabydago/cura.py
EOF
chmod a+x $out/bin/curabydago

View file

@ -1,5 +1,6 @@
{ lib
, stdenv
, copyDesktopItems
, fetchFromGitHub
, makeDesktopItem
, makeWrapper
@ -14,26 +15,16 @@
, zlib
, maven
}:
let
desktopItem = makeDesktopItem {
name = "dbeaver";
exec = "dbeaver";
icon = "dbeaver";
desktopName = "dbeaver";
comment = "SQL Integrated Development Environment";
genericName = "SQL Integrated Development Environment";
categories = "Development;";
};
in
stdenv.mkDerivation rec {
pname = "dbeaver-ce";
version = "21.0.0"; # When updating also update fetchedMavenDeps.sha256
version = "21.0.1"; # When updating also update fetchedMavenDeps.sha256
src = fetchFromGitHub {
owner = "dbeaver";
repo = "dbeaver";
rev = version;
sha256 = "sha256-it0EcPD7TXSknjVkGv22Nq1D4J32OEncQDy4w9CIPNk=";
sha256 = "sha256-9l8604STqmdoUjD+EJCp4aDk4juKsPCmFnD/WYpajxo=";
};
fetchedMavenDeps = stdenv.mkDerivation {
@ -62,6 +53,12 @@ stdenv.mkDerivation rec {
outputHash = "sha256-xKlFFQXd2U513KZKQa7ttSFNX2gxVr9hNsvyaoN/rEE=";
};
nativeBuildInputs = [
copyDesktopItems
makeWrapper
maven
];
buildInputs = [
fontconfig
freetype
@ -71,12 +68,19 @@ stdenv.mkDerivation rec {
libX11
libXrender
libXtst
makeWrapper
zlib
];
nativeBuildInputs = [
maven
desktopItems = [
(makeDesktopItem {
name = "dbeaver";
exec = "dbeaver";
icon = "dbeaver";
desktopName = "dbeaver";
comment = "SQL Integrated Development Environment";
genericName = "SQL Integrated Development Environment";
categories = "Development;";
})
];
buildPhase = ''
@ -89,7 +93,7 @@ stdenv.mkDerivation rec {
installPhase =
let
productTargetPath = "product/standalone/target/products/org.jkiss.dbeaver.core.product";
productTargetPath = "product/community/target/products/org.jkiss.dbeaver.core.product";
platformMap = {
aarch64-linux = "aarch64";
@ -129,10 +133,6 @@ stdenv.mkDerivation rec {
--prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath ([ glib gtk3 libXtst ])} \
--prefix XDG_DATA_DIRS : "$GSETTINGS_SCHEMAS_PATH"
# Create desktop item.
mkdir -p $out/share/applications
cp ${desktopItem}/share/applications/* $out/share/applications
mkdir -p $out/share/pixmaps
ln -s $out/dbeaver/icon.xpm $out/share/pixmaps/dbeaver.xpm

View file

@ -1,6 +1,6 @@
{ lib, fetchFromGitHub, pythonPackages, gnome2, keybinder }:
{ lib, fetchFromGitHub, python2Packages, gnome2, keybinder }:
pythonPackages.buildPythonApplication rec {
python2Packages.buildPythonApplication rec {
ver = "0.93";
name = "dockbarx-${ver}";
@ -24,7 +24,7 @@ pythonPackages.buildPythonApplication rec {
substituteInPlace dockx_applets/volume-control.py --replace /usr/share/ $out/share/
'';
propagatedBuildInputs = (with pythonPackages; [ pygtk pyxdg dbus-python pillow xlib ])
propagatedBuildInputs = (with python2Packages; [ pygtk pyxdg dbus-python pillow xlib ])
++ (with gnome2; [ gnome_python gnome_python_desktop ])
++ [ keybinder ];

View file

@ -1,10 +1,10 @@
{ lib, pythonPackages }:
{ lib, python3Packages }:
pythonPackages.buildPythonApplication rec {
python3Packages.buildPythonApplication rec {
pname = "dotfiles";
version = "0.6.4";
src = pythonPackages.fetchPypi {
src = python3Packages.fetchPypi {
inherit version pname;
sha256 = "03qis6m9r2qh00sqbgwsm883s4bj1ibwpgk86yh4l235mdw8jywv";
};
@ -12,8 +12,8 @@ pythonPackages.buildPythonApplication rec {
# No tests in archive
doCheck = false;
checkInputs = with pythonPackages; [ pytest ];
propagatedBuildInputs = with pythonPackages; [ click ];
checkInputs = with python3Packages; [ pytest ];
propagatedBuildInputs = with python3Packages; [ click ];
meta = with lib; {
description = "Easily manage your dotfiles";

View file

@ -1,4 +1,4 @@
{ lib, stdenv, fetchFromGitHub, python, pkg-config, cmake, bluez, libusb1, curl
{ lib, stdenv, fetchFromGitHub, pkg-config, cmake, bluez, libusb1, curl
, libiconv, gettext, sqlite
, dbiSupport ? false, libdbi ? null, libdbiDrivers ? null
, postgresSupport ? false, postgresql ? null
@ -21,7 +21,9 @@ stdenv.mkDerivation rec {
nativeBuildInputs = [ pkg-config cmake ];
buildInputs = [ python bluez libusb1 curl gettext sqlite libiconv ]
strictDeps = true;
buildInputs = [ bluez libusb1 curl gettext sqlite libiconv ]
++ optionals dbiSupport [ libdbi libdbiDrivers ]
++ optionals postgresSupport [ postgresql ];

View file

@ -2,13 +2,13 @@
mkDerivation rec {
pname = "gpxsee";
version = "8.8";
version = "8.9";
src = fetchFromGitHub {
owner = "tumic0";
repo = "GPXSee";
rev = version;
sha256 = "sha256-eAXMmjPcfnJA5w6w/SRc6T5KHss77t0JijTB6+ctjzo=";
sha256 = "sha256-nl9iu8ezgMZ1wy2swDXYRDLlkSz1II+C65UUWNvGBxg=";
};
patches = (substituteAll {

Some files were not shown because too many files have changed in this diff Show more