Merge remote-tracking branch 'origin/master' into staging

* origin/master: (693 commits)
  buildGoModule: use go_1_12 instead of go_1_11 (#58103)
  gitAndTools.lab: 0.15.2 -> 0.15.3 (#58091)
  signal-desktop: 1.22.0 -> 1.23.0
  added missing semicolon to documentation
  terminus_font_ttf: 4.46.0 -> 4.47.0
  buildGoModule: remove SSL env vars in favor of cacert in buildInputs (#58071)
  dav1d: init at 0.2.1
  dropbox-cli: 2018.11.28 -> 2019.02.14
  atlassian-confluence: 6.14.1 -> 6.14.2
  maintainers: update email for dywedir
  python.pkgs.hglib: use patch to specify hg path (#57926)
  chkrootkit: 0.52 -> 0.53
  radare2-cutter: 1.7.2 -> 1.8.0
  autorandr: 1.7 -> 1.8
  pythonPackages.pyhepmc: fix build
  llvm-polly/clang-polly: use latest llvm
  apulse: 0.1.11.1 -> 0.1.12, cleanup
  factorio: experimental 0.17.14 → 0.17.16 (#58000)
  sequeler: 0.6.7 -> 0.6.8
  nasc: 0.5.1 -> 0.5.2
  ...
This commit is contained in:
Wael M. Nasreddine 2019-03-21 21:01:25 -07:00
commit 5af0780492
No known key found for this signature in database
GPG Key ID: FD437548E0BF0F5F
722 changed files with 34695 additions and 27611 deletions

View File

@ -1,4 +1,4 @@
Copyright (c) 2003-2018 Eelco Dolstra and the Nixpkgs/NixOS contributors
Copyright (c) 2003-2019 Eelco Dolstra and the Nixpkgs/NixOS contributors
Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the

View File

@ -3,12 +3,91 @@
xml:id="sec-language-go">
<title>Go</title>
<para>
The function <varname>buildGoPackage</varname> builds standard Go programs.
</para>
<section xml:id="ssec-go-modules">
<title>Go modules</title>
<example xml:id='ex-buildGoPackage'>
<title>buildGoPackage</title>
<para>
The function <varname> buildGoModule </varname> builds Go programs managed
with Go modules. It builds a
<link xlink:href="https://github.com/golang/go/wiki/Modules">Go
modules</link> through a two phase build:
<itemizedlist>
<listitem>
<para>
An intermediate fetcher derivation. This derivation will be used to fetch
all of the dependencies of the Go module.
</para>
</listitem>
<listitem>
<para>
A final derivation will use the output of the intermediate derivation to
build the binaries and produce the final output.
</para>
</listitem>
</itemizedlist>
</para>
<example xml:id='ex-buildGoModule'>
<title>buildGoModule</title>
<programlisting>
pet = buildGoModule rec {
name = "pet-${version}";
version = "0.3.4";
src = fetchFromGitHub {
owner = "knqyf263";
repo = "pet";
rev = "v${version}";
sha256 = "0m2fzpqxk7hrbxsgqplkg7h2p7gv6s1miymv3gvw0cz039skag0s";
};
modSha256 = "1879j77k96684wi554rkjxydrj8g3hpp0kvxz03sd8dmwr3lh83j"; <co xml:id='ex-buildGoModule-1' />
subPackages = [ "." ]; <co xml:id='ex-buildGoModule-2' />
meta = with lib; {
description = "Simple command-line snippet manager, written in Go";
homepage = https://github.com/knqyf263/pet;
license = licenses.mit;
maintainers = with maintainers; [ kalbasit ];
platforms = platforms.linux ++ platforms.darwin;
};
}
</programlisting>
</example>
<para>
<xref linkend='ex-buildGoModule'/> is an example expression using
buildGoModule, the following arguments are of special significance to the
function:
<calloutlist>
<callout arearefs='ex-buildGoModule-1'>
<para>
<varname>modSha256</varname> is the hash of the output of the
intermediate fetcher derivation.
</para>
</callout>
<callout arearefs='ex-buildGoModule-2'>
<para>
<varname>subPackages</varname> limits the builder from building child
packages that have not been listed. If <varname>subPackages</varname> is
not specified, all child packages will be built.
</para>
</callout>
</calloutlist>
</para>
</section>
<section xml:id="ssec-go-legacy">
<title>Go legacy</title>
<para>
The function <varname> buildGoPackage </varname> builds legacy Go programs,
not supporting Go modules.
</para>
<example xml:id='ex-buildGoPackage'>
<title>buildGoPackage</title>
<programlisting>
deis = buildGoPackage rec {
name = "deis-${version}";
@ -29,56 +108,56 @@ deis = buildGoPackage rec {
buildFlags = "--tags release"; <co xml:id='ex-buildGoPackage-4' />
}
</programlisting>
</example>
</example>
<para>
<xref linkend='ex-buildGoPackage'/> is an example expression using
buildGoPackage, the following arguments are of special significance to the
function:
<calloutlist>
<callout arearefs='ex-buildGoPackage-1'>
<para>
<varname>goPackagePath</varname> specifies the package's canonical Go
import path.
</para>
</callout>
<callout arearefs='ex-buildGoPackage-2'>
<para>
<varname>subPackages</varname> limits the builder from building child
packages that have not been listed. If <varname>subPackages</varname> is
not specified, all child packages will be built.
</para>
<para>
In this example only <literal>github.com/deis/deis/client</literal> will
be built.
</para>
</callout>
<callout arearefs='ex-buildGoPackage-3'>
<para>
<varname>goDeps</varname> is where the Go dependencies of a Go program are
listed as a list of package source identified by Go import path. It could
be imported as a separate <varname>deps.nix</varname> file for
readability. The dependency data structure is described below.
</para>
</callout>
<callout arearefs='ex-buildGoPackage-4'>
<para>
<varname>buildFlags</varname> is a list of flags passed to the go build
command.
</para>
</callout>
</calloutlist>
</para>
<para>
<xref linkend='ex-buildGoPackage'/> is an example expression using
buildGoPackage, the following arguments are of special significance to the
function:
<calloutlist>
<callout arearefs='ex-buildGoPackage-1'>
<para>
<varname>goPackagePath</varname> specifies the package's canonical Go
import path.
</para>
</callout>
<callout arearefs='ex-buildGoPackage-2'>
<para>
<varname>subPackages</varname> limits the builder from building child
packages that have not been listed. If <varname>subPackages</varname> is
not specified, all child packages will be built.
</para>
<para>
In this example only <literal>github.com/deis/deis/client</literal> will
be built.
</para>
</callout>
<callout arearefs='ex-buildGoPackage-3'>
<para>
<varname>goDeps</varname> is where the Go dependencies of a Go program
are listed as a list of package source identified by Go import path. It
could be imported as a separate <varname>deps.nix</varname> file for
readability. The dependency data structure is described below.
</para>
</callout>
<callout arearefs='ex-buildGoPackage-4'>
<para>
<varname>buildFlags</varname> is a list of flags passed to the go build
command.
</para>
</callout>
</calloutlist>
</para>
<para>
The <varname>goDeps</varname> attribute can be imported from a separate
<varname>nix</varname> file that defines which Go libraries are needed and
should be included in <varname>GOPATH</varname> for
<varname>buildPhase</varname>.
</para>
<para>
The <varname>goDeps</varname> attribute can be imported from a separate
<varname>nix</varname> file that defines which Go libraries are needed and
should be included in <varname>GOPATH</varname> for
<varname>buildPhase</varname>.
</para>
<example xml:id='ex-goDeps'>
<title>deps.nix</title>
<example xml:id='ex-goDeps'>
<title>deps.nix</title>
<programlisting>
[ <co xml:id='ex-goDeps-1' />
{
@ -101,60 +180,62 @@ deis = buildGoPackage rec {
}
]
</programlisting>
</example>
</example>
<para>
<calloutlist>
<callout arearefs='ex-goDeps-1'>
<para>
<varname>goDeps</varname> is a list of Go dependencies.
</para>
</callout>
<callout arearefs='ex-goDeps-2'>
<para>
<varname>goPackagePath</varname> specifies Go package import path.
</para>
</callout>
<callout arearefs='ex-goDeps-3'>
<para>
<varname>fetch type</varname> that needs to be used to get package source.
If <varname>git</varname> is used there should be <varname>url</varname>,
<varname>rev</varname> and <varname>sha256</varname> defined next to it.
</para>
</callout>
</calloutlist>
</para>
<para>
<calloutlist>
<callout arearefs='ex-goDeps-1'>
<para>
<varname>goDeps</varname> is a list of Go dependencies.
</para>
</callout>
<callout arearefs='ex-goDeps-2'>
<para>
<varname>goPackagePath</varname> specifies Go package import path.
</para>
</callout>
<callout arearefs='ex-goDeps-3'>
<para>
<varname>fetch type</varname> that needs to be used to get package
source. If <varname>git</varname> is used there should be
<varname>url</varname>, <varname>rev</varname> and
<varname>sha256</varname> defined next to it.
</para>
</callout>
</calloutlist>
</para>
<para>
To extract dependency information from a Go package in automated way use
<link xlink:href="https://github.com/kamilchm/go2nix">go2nix</link>. It can
produce complete derivation and <varname>goDeps</varname> file for Go
programs.
</para>
<para>
To extract dependency information from a Go package in automated way use
<link xlink:href="https://github.com/kamilchm/go2nix">go2nix</link>. It can
produce complete derivation and <varname>goDeps</varname> file for Go
programs.
</para>
<para>
<varname>buildGoPackage</varname> produces
<xref linkend='chap-multiple-output' xrefstyle="select: title" /> where
<varname>bin</varname> includes program binaries. You can test build a Go
binary as follows:
<para>
<varname>buildGoPackage</varname> produces
<xref linkend='chap-multiple-output' xrefstyle="select: title" /> where
<varname>bin</varname> includes program binaries. You can test build a Go
binary as follows:
<screen>
$ nix-build -A deis.bin
</screen>
or build all outputs with:
or build all outputs with:
<screen>
$ nix-build -A deis.all
</screen>
<varname>bin</varname> output will be installed by default with
<varname>nix-env -i</varname> or <varname>systemPackages</varname>.
</para>
<varname>bin</varname> output will be installed by default with
<varname>nix-env -i</varname> or <varname>systemPackages</varname>.
</para>
<para>
You may use Go packages installed into the active Nix profiles by adding the
following to your ~/.bashrc:
<para>
You may use Go packages installed into the active Nix profiles by adding the
following to your ~/.bashrc:
<screen>
for p in $NIX_PROFILES; do
GOPATH="$p/share/go:$GOPATH"
done
</screen>
</para>
</para>
</section>
</section>

View File

@ -2633,7 +2633,8 @@ addEnvHooks "$hostOffset" myBashFunction
happens. It prevents nix from cleaning up the build environment
immediately and allows the user to attach to a build environment using
the <command>cntr</command> command. Upon build error it will print
instructions on how to use <command>cntr</command>. Installing cntr and
instructions on how to use <command>cntr</command>, which can be used
to enter the environment for debugging. Installing cntr and
running the command will provide shell access to the build sandbox of
failed build. At <filename>/var/lib/cntr</filename> the sandboxed
filesystem is mounted. All commands and files of the system are still

View File

@ -90,7 +90,7 @@ rec {
/* Same as `concatMapStringsSep`, but the mapping function
additionally receives the position of its argument.
Type: concatMapStringsSep :: string -> (int -> string -> string) -> [string] -> string
Type: concatIMapStringsSep :: string -> (int -> string -> string) -> [string] -> string
Example:
concatImapStringsSep "-" (pos: x: toString (x / pos)) [ 6 6 6 ]

View File

@ -523,6 +523,11 @@
email = "sivaraman.balaji@gmail.com";
name = "Balaji Sivaraman";
};
balsoft = {
email = "balsoft75@gmail.com";
github = "balsoft";
name = "Alexander Bantyev";
};
bandresen = {
email = "bandresen@gmail.com";
github = "bandresen";
@ -1294,7 +1299,7 @@
name = "Tim Dysinger";
};
dywedir = {
email = "dywedir@protonmail.ch";
email = "dywedir@gra.red";
github = "dywedir";
name = "Vladyslav M.";
};
@ -2365,6 +2370,11 @@
github = "juliendehos";
name = "Julien Dehos";
};
justinwoo = {
email = "moomoowoo@gmail.com";
github = "justinwoo";
name = "Justin Woo";
};
jwiegley = {
email = "johnw@newartisans.com";
github = "jwiegley";
@ -2658,6 +2668,11 @@
github = "limeytexan";
name = "Michael Brantley";
};
linarcx = {
email = "linarcx@gmail.com";
github = "linarcx";
name = "Kaveh Ahangar";
};
linc01n = {
email = "git@lincoln.hk";
github = "linc01n";
@ -2673,6 +2688,11 @@
github = "listx";
name = "Linus Arver";
};
luis = {
email = "luis.nixos@gmail.com";
github = "Luis-Hebendanz";
name = "Luis Hebendanz";
};
lionello = {
email = "lio@lunesu.com";
github = "lionello";
@ -2865,6 +2885,11 @@
github = "mathnerd314";
name = "Mathnerd314";
};
matklad = {
email = "aleksey.kladov@gmail.com";
github = "matklad";
name = "matklad";
};
matthewbauer = {
email = "mjbauer95@gmail.com";
github = "matthewbauer";
@ -2875,6 +2900,11 @@
github = "matthiasbeyer";
name = "Matthias Beyer";
};
matti-kariluoma = {
email = "matti@kariluo.ma";
github = "matti-kariluoma";
name = "Matti Kariluoma";
};
maurer = {
email = "matthew.r.maurer+nix@gmail.com";
github = "maurer";
@ -2945,6 +2975,11 @@
github = "meisternu";
name = "Matt Miemiec";
};
melchips = {
email = "truphemus.francois@gmail.com";
github = "melchips";
name = "Francois Truphemus";
};
melsigl = {
email = "melanie.bianca.sigl@gmail.com";
github = "melsigl";
@ -2959,6 +2994,11 @@
email = "softs@metabarcoding.org";
name = "Celine Mercier";
};
mfossen = {
email = "msfossen@gmail.com";
github = "mfossen";
name = "Mitchell Fossen";
};
mgdelacroix = {
email = "mgdelacroix@gmail.com";
github = "mgdelacroix";
@ -3712,6 +3752,11 @@
github = "polyrod";
name = "Maurizio Di Pietro";
};
pombeirp = {
email = "nix@endgr.33mail.com";
github = "PombeirP";
name = "Pedro Pombeiro";
};
pradeepchhetri = {
email = "pradeep.chhetri89@gmail.com";
github = "pradeepchhetri";
@ -3812,6 +3857,16 @@
fingerprint = "7573 56D7 79BB B888 773E 415E 736C CDF9 EF51 BD97";
}];
};
rafaelgg = {
email = "rafael.garcia.gallego@gmail.com";
github = "rafaelgg";
name = "Rafael García";
};
raquelgb = {
email = "raquel.garcia.bautista@gmail.com";
github = "raquelgb";
name = "Raquel García";
};
ragge = {
email = "r.dahlen@gmail.com";
github = "ragnard";
@ -3951,6 +4006,11 @@
github = "rittelle";
name = "Lennart Rittel";
};
rixed = {
email = "rixed-github@happyleptic.org";
github = "rixed";
name = "Cedric Cellier";
};
rkoe = {
email = "rk@simple-is-better.org";
github = "rkoe";
@ -4031,6 +4091,11 @@
github = "rprospero";
name = "Adam Washington";
};
rps = {
email = "robbpseaton@gmail.com";
github = "robertseaton";
name = "Robert P. Seaton";
};
rszibele = {
email = "richard@szibele.com";
github = "rszibele";
@ -4459,6 +4524,11 @@
github = "stesie";
name = "Stefan Siegl";
};
steve-chavez = {
email = "stevechavezast@gmail.com";
github = "steve-chavez";
name = "Steve Chávez";
};
steveej = {
email = "mail@stefanjunker.de";
github = "steveej";
@ -4643,6 +4713,11 @@
github = "teozkr";
name = "Teo Klestrup Röijezon";
};
terlar = {
email = "terlar@gmail.com";
github = "terlar";
name = "Terje Larsen";
};
teto = {
email = "mcoudron@hotmail.com";
github = "teto";

View File

@ -21,6 +21,7 @@
<xi:include href="xfce.xml" />
<xi:include href="networking.xml" />
<xi:include href="linux-kernel.xml" />
<xi:include href="matrix.xml" />
<xi:include href="../generated/modules.xml" xpointer="xpointer(//section[@id='modules']/*)" />
<xi:include href="profiles.xml" />
<xi:include href="kubernetes.xml" />

View File

@ -0,0 +1,197 @@
<chapter xmlns="http://docbook.org/ns/docbook"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:xi="http://www.w3.org/2001/XInclude"
version="5.0"
xml:id="module-services-matrix">
<title>Matrix</title>
<para>
<link xlink:href="https://matrix.org/">Matrix</link>
is an open standard for interoperable, decentralised, real-time communication over IP.
It can be used to power Instant Messaging, VoIP/WebRTC signalling, Internet of Things communication -
or anywhere you need a standard HTTP API for publishing and subscribing to data whilst tracking the conversation history.
</para>
<para>
This chapter will show you how to set up your own, self-hosted Matrix homeserver using the Synapse reference homeserver,
and how to serve your own copy of the Riot web client.
See the <link xlink:href="https://matrix.org/docs/projects/try-matrix-now.html">Try Matrix Now!</link>
overview page for links to Riot Apps for Android and iOS, desktop clients,
as well as bridges to other networks and other projects around Matrix.
</para>
<section xml:id="module-services-matrix-synapse">
<title>Synapse Homeserver</title>
<para>
<link xlink:href="https://github.com/matrix-org/synapse">Synapse</link>
is the reference homeserver implementation of Matrix from the core development team at matrix.org.
The following configuration example will set up a synapse server for the <literal>example.org</literal>
domain, served from the host <literal>myhostname.example.org</literal>.
For more information, please refer to the
<link xlink:href="https://github.com/matrix-org/synapse#synapse-installation">
installation instructions of Synapse
</link>.
<programlisting>
let
fqdn =
let
join = hostName: domain: hostName + optionalString (domain != null) ".${domain}";
in join config.networking.hostName config.networking.domain;
in {
networking = {
hostName = "myhostname";
domain = "example.org";
};
networking.firewall.allowedTCPPorts = [ 80 443 ];
services.nginx = {
enable = true;
# only recommendedProxySettings and recommendedGzipSettings are strictly required,
# but the rest make sense as well
recommendedTlsSettings = true;
recommendedOptimisation = true;
recommendedGzipSettings = true;
recommendedProxySettings = true;
virtualHosts = {
# This host section can be placed on a different host than the rest,
# i.e. to delegate from the host being accessible as ${config.networking.domain}
# to another host actually running the Matrix homeserver.
"${config.networking.domain}" = {
locations."= /.well-known/matrix/server".extraConfig =
let
# use 443 instead of the default 8448 port to unite
# the client-server and server-server port for simplicity
server = { "m.server" = "${fqdn}:443"; };
in ''
add_header Content-Type application/json;
return 200 '${builtins.toJSON server}';
'';
locations."= /.well-known/matrix/client".extraConfig =
let
client = {
"m.homeserver" = { "base_url" = "https://${fqdn}"; };
"m.identity_server" = { "base_url" = "https://vector.im"; };
};
# ACAO required to allow riot-web on any URL to request this json file
in ''
add_header Content-Type application/json;
add_header Access-Control-Allow-Origin *;
return 200 '${builtins.toJSON client}';
'';
};
# Reverse proxy for Matrix client-server and server-server communication
${fqdn} = {
enableACME = true;
forceSSL = true;
# Or do a redirect instead of the 404, or whatever is appropriate for you.
# But do not put a Matrix Web client here! See the Riot Web section below.
locations."/".extraConfig = ''
return 404;
'';
# forward all Matrix API calls to the synapse Matrix homeserver
locations."/_matrix" = {
proxyPass = "http://[::1]:8008";
};
};
};
};
services.matrix-synapse = {
enable = true;
server_name = config.networking.domain;
listeners = [
{
port = 8008;
bind_address = "::1";
type = "http";
tls = false;
x_forwarded = true;
resources = [
{ names = [ "client" "federation" ]; compress = false; }
];
}
];
};
};
</programlisting>
</para>
<para>
If the <code>A</code> and <code>AAAA</code> DNS records on <literal>example.org</literal>
do not point on the same host as the records for <code>myhostname.example.org</code>,
you can easily move the <code>/.well-known</code> virtualHost section of the code
to the host that is serving <literal>example.org</literal>,
while the rest stays on <literal>myhostname.example.org</literal>
with no other changes required.
This pattern also allows to seamlessly move the homeserver from <literal>myhostname.example.org</literal>
to <literal>myotherhost.example.org</literal> by only changing the <code>/.well-known</code> redirection target.
</para>
<para>
If you want to run a server with public registration by anybody,
you can then enable
<option>services.matrix-synapse.enable_registration = true;</option>.
Otherwise, or you can generate a registration secret with <command>pwgen -s 64 1</command>
and set it with
<option>services.matrix-synapse.registration_shared_secret</option>.
To create a new user or admin,
run the following after you have set the secret and have rebuilt NixOS:
<programlisting>
$ nix run nixpkgs.matrix-synapse
$ register_new_matrix_user -k &lt;your-registration-shared-secret&gt; http://localhost:8008
New user localpart: &lt;your-username&gt;
Password:
Confirm password:
Make admin [no]:
Success!
</programlisting>
In the example, this would create a user with the Matrix Identifier
<literal>@your-username:example.org</literal>.
Note that the registration secret ends up in the nix store and therefore is world-readable
by any user on your machine, so it makes sense to only temporarily activate the
<option>registration_shared_secret</option> option until a better solution for NixOS is in place.
</para>
</section>
<section xml:id="module-services-matrix-riot-web">
<title>Riot Web Client</title>
<para>
<link xlink:href="https://github.com/vector-im/riot-web/">Riot Web</link>
is the reference web client for Matrix and developed by the core team at matrix.org.
The following snippet can be optionally added to the code before to complete the synapse
installation with a web client served at
<code>https://riot.myhostname.example.org</code> and <code>https://riot.example.org</code>.
Alternatively, you can use the hosted copy at
<link xlink:href="https://riot.im/app">https://riot.im/app</link>,
or use other web clients or native client applications.
Due to the <literal>/.well-known</literal> urls set up done above,
many clients should fill in the required connection details automatically
when you enter your Matrix Identifier.
See <link xlink:href="https://matrix.org/docs/projects/try-matrix-now.html">Try Matrix Now!</link>
for a list of existing clients and their supported featureset.
<programlisting>
services.nginx.virtualHosts."riot.${fqdn}" = {
enableACME = true;
forceSSL = true;
serverAliases = [
"riot.${config.networking.domain}"
];
root = pkgs.riot-web;
};
</programlisting>
</para>
<para>
Note that the Riot developers do not recommend running Riot and your Matrix homeserver
on the same fully-qualified domain name for security reasons.
In the example, this means that you should not reuse the <literal>myhostname.example.org</literal>
virtualHost to also serve Riot, but instead serve it on a different subdomain,
like <literal>riot.example.org</literal> in the example.
See the
<link xlink:href="https://github.com/vector-im/riot-web#important-security-note">Riot Important Security Notes</link>
for more information on this subject.
</para>
</section>
</chapter>

View File

@ -23,7 +23,7 @@
psk = "abcdefgh";
};
"free.wifi" = {};
}
};
</programlisting>
Be aware that keys will be written to the nix store in plaintext! When no
networks are set, it will default to using a configuration file at

View File

@ -512,7 +512,7 @@ config.mod.two = { foo = 2; bar = "two"; };</screen>
The function to type check the value. Takes a value as parameter and
return a boolean. It is possible to extend a type check with the
<literal>addCheck</literal> function
(<xref
(<xref
linkend='ex-extending-type-check-1' />), or to fully
override the check function
(<xref linkend='ex-extending-type-check-2' />).
@ -522,7 +522,7 @@ config.mod.two = { foo = 2; bar = "two"; };</screen>
<screen>
byte = mkOption {
description = "An integer between 0 and 255.";
type = addCheck types.int (x: x &gt;= 0 &amp;&amp; x &lt;= 255);
type = types.addCheck types.int (x: x &gt;= 0 &amp;&amp; x &lt;= 255);
};</screen>
</example>
<example xml:id='ex-extending-type-check-2'>

View File

@ -476,6 +476,8 @@
and will be <link xlink:href="https://matrix.org/blog/2019/02/05/synapse-0-99-0/">the last version to accept self-signed certificates</link>.
As such, it is now recommended to use a proper certificate verified by a
root CA (for example Let's Encrypt).
The new <link linkend="module-services-matrix">manual chapter on Matrix</link> contains a working example of using nginx as a reverse proxy
in front of <literal>matrix-synapse</literal>, using Let's Encrypt certificates.
</para>
</listitem>
<listitem>
@ -560,6 +562,15 @@
of maintainers.
</para>
</listitem>
<listitem>
<para>
The manual gained a
<link linkend="module-services-matrix">
new chapter on self-hosting <literal>matrix-synapse</literal> and <literal>riot-web</literal>
</link>, the most prevalent server and client implementations for the
<link xlink:href="https://matrix.org/">Matrix</link> federated communication network.
</para>
</listitem>
<listitem>
<para>
The astah-community package was removed from nixpkgs due to it being discontinued and the downloads not being available anymore.

View File

@ -53,6 +53,7 @@ in {
pkgs = import ../../../.. { inherit (pkgs) system; }; # ensure we use the regular qemu-kvm package
partitionTableType = if config.ec2.hvm then "legacy" else "none";
diskSize = cfg.sizeMB;
fsType = "ext4";
configFile = pkgs.writeText "configuration.nix"
''
{

View File

@ -165,6 +165,8 @@ let
else
"# No refind for ${targetArch}"
;
grubPkgs = if config.boot.loader.grub.forcei686 then pkgs.pkgsi686Linux else pkgs;
grubMenuCfg = ''
#
@ -241,7 +243,7 @@ let
# Modules that may or may not be available per-platform.
echo "Adding additional modules:"
for mod in efi_uga; do
if [ -f ${pkgs.grub2_efi}/lib/grub/${pkgs.grub2_efi.grubTarget}/$mod.mod ]; then
if [ -f ${grubPkgs.grub2_efi}/lib/grub/${grubPkgs.grub2_efi.grubTarget}/$mod.mod ]; then
echo " - $mod"
MODULES+=" $mod"
fi
@ -249,9 +251,9 @@ let
# Make our own efi program, we can't rely on "grub-install" since it seems to
# probe for devices, even with --skip-fs-probe.
${pkgs.grub2_efi}/bin/grub-mkimage -o $out/EFI/boot/boot${targetArch}.efi -p /EFI/boot -O ${pkgs.grub2_efi.grubTarget} \
${grubPkgs.grub2_efi}/bin/grub-mkimage -o $out/EFI/boot/boot${targetArch}.efi -p /EFI/boot -O ${grubPkgs.grub2_efi.grubTarget} \
$MODULES
cp ${pkgs.grub2_efi}/share/grub/unicode.pf2 $out/EFI/boot/
cp ${grubPkgs.grub2_efi}/share/grub/unicode.pf2 $out/EFI/boot/
cat <<EOF > $out/EFI/boot/grub.cfg
@ -362,7 +364,7 @@ let
# Name used by UEFI for architectures.
targetArch =
if pkgs.stdenv.isi686 then
if pkgs.stdenv.isi686 || config.boot.loader.grub.forcei686 then
"ia32"
else if pkgs.stdenv.isx86_64 then
"x64"
@ -506,7 +508,7 @@ in
# here and it causes a cyclic dependency.
boot.loader.grub.enable = false;
environment.systemPackages = [ pkgs.grub2 pkgs.grub2_efi ]
environment.systemPackages = [ grubPkgs.grub2 grubPkgs.grub2_efi ]
++ optional canx86BiosBoot pkgs.syslinux
;

View File

@ -35,6 +35,7 @@
./config/users-groups.nix
./config/vpnc.nix
./config/zram.nix
./hardware/acpilight.nix
./hardware/all-firmware.nix
./hardware/bladeRF.nix
./hardware/brightnessctl.nix
@ -129,7 +130,6 @@
./programs/sysdig.nix
./programs/systemtap.nix
./programs/sway.nix
./programs/sway-beta.nix
./programs/thefuck.nix
./programs/tmux.nix
./programs/udevil.nix
@ -137,6 +137,7 @@
./programs/vim.nix
./programs/wavemon.nix
./programs/way-cooler.nix
./programs/waybar.nix
./programs/wireshark.nix
./programs/xfs_quota.nix
./programs/xonsh.nix
@ -311,6 +312,7 @@
./services/hardware/ratbagd.nix
./services/hardware/sane.nix
./services/hardware/sane_extra_backends/brscan4.nix
./services/hardware/sane_extra_backends/dsseries.nix
./services/hardware/tcsd.nix
./services/hardware/tlp.nix
./services/hardware/thinkfan.nix
@ -578,6 +580,7 @@
./services/networking/keepalived/default.nix
./services/networking/keybase.nix
./services/networking/kippo.nix
./services/networking/knot.nix
./services/networking/kresd.nix
./services/networking/lambdabot.nix
./services/networking/libreswan.nix
@ -765,6 +768,7 @@
./services/web-servers/nginx/default.nix
./services/web-servers/nginx/gitweb.nix
./services/web-servers/phpfpm/default.nix
./services/web-servers/unit/default.nix
./services/web-servers/shellinabox.nix
./services/web-servers/tomcat.nix
./services/web-servers/traefik.nix

View File

@ -1,91 +0,0 @@
{ config, pkgs, lib, ... }:
with lib;
let
cfg = config.programs.sway-beta;
swayPackage = cfg.package;
swayWrapped = pkgs.writeShellScriptBin "sway" ''
set -o errexit
if [ ! "$_SWAY_WRAPPER_ALREADY_EXECUTED" ]; then
export _SWAY_WRAPPER_ALREADY_EXECUTED=1
${cfg.extraSessionCommands}
fi
if [ "$DBUS_SESSION_BUS_ADDRESS" ]; then
export DBUS_SESSION_BUS_ADDRESS
exec ${swayPackage}/bin/sway "$@"
else
exec ${pkgs.dbus}/bin/dbus-run-session ${swayPackage}/bin/sway "$@"
fi
'';
swayJoined = pkgs.symlinkJoin {
name = "sway-joined";
paths = [ swayWrapped swayPackage ];
};
in {
options.programs.sway-beta = {
enable = mkEnableOption ''
Sway, the i3-compatible tiling Wayland compositor. This module will be removed after the final release of Sway 1.0
'';
package = mkOption {
type = types.package;
default = pkgs.sway-beta;
defaultText = "pkgs.sway-beta";
description = ''
The package to be used for `sway`.
'';
};
extraSessionCommands = mkOption {
type = types.lines;
default = "";
example = ''
export SDL_VIDEODRIVER=wayland
# needs qt5.qtwayland in systemPackages
export QT_QPA_PLATFORM=wayland
export QT_WAYLAND_DISABLE_WINDOWDECORATION="1"
# Fix for some Java AWT applications (e.g. Android Studio),
# use this if they aren't displayed properly:
export _JAVA_AWT_WM_NONREPARENTING=1
'';
description = ''
Shell commands executed just before Sway is started.
'';
};
extraPackages = mkOption {
type = with types; listOf package;
default = with pkgs; [
swaylock swayidle
xwayland rxvt_unicode dmenu
];
defaultText = literalExample ''
with pkgs; [ swaylock swayidle xwayland rxvt_unicode dmenu ];
'';
example = literalExample ''
with pkgs; [
xwayland
i3status i3status-rust
termite rofi light
]
'';
description = ''
Extra packages to be installed system wide.
'';
};
};
config = mkIf cfg.enable {
environment.systemPackages = [ swayJoined ] ++ cfg.extraPackages;
security.pam.services.swaylock = {};
hardware.opengl.enable = mkDefault true;
fonts.enableDefaultFonts = mkDefault true;
programs.dconf.enable = mkDefault true;
};
meta.maintainers = with lib.maintainers; [ gnidorah primeos colemickens ];
}

View File

@ -16,9 +16,9 @@ let
if [ "$DBUS_SESSION_BUS_ADDRESS" ]; then
export DBUS_SESSION_BUS_ADDRESS
exec sway-setcap "$@"
exec ${swayPackage}/bin/sway "$@"
else
exec ${pkgs.dbus}/bin/dbus-run-session sway-setcap "$@"
exec ${pkgs.dbus}/bin/dbus-run-session ${swayPackage}/bin/sway "$@"
fi
'';
swayJoined = pkgs.symlinkJoin {
@ -28,22 +28,24 @@ let
in {
options.programs.sway = {
enable = mkEnableOption ''
the tiling Wayland compositor Sway. After adding yourself to the "sway"
group you can manually launch Sway by executing "sway" from a terminal.
If you call "sway" with any parameters the extraSessionCommands won't be
executed and Sway won't be launched with dbus-launch'';
Sway, the i3-compatible tiling Wayland compositor. You can manually launch
Sway by executing "exec sway" on a TTY. Copy /etc/sway/config to
~/.config/sway/config to modify the default configuration. See
https://github.com/swaywm/sway/wiki and "man 5 sway" for more information.
Please have a look at the "extraSessionCommands" example for running
programs natively under Wayland'';
extraSessionCommands = mkOption {
type = types.lines;
default = "";
example = ''
# Define a keymap (US QWERTY is the default)
export XKB_DEFAULT_LAYOUT=de,us
export XKB_DEFAULT_VARIANT=nodeadkeys
export XKB_DEFAULT_OPTIONS=grp:alt_shift_toggle,caps:escape
# Change the Keyboard repeat delay and rate
export WLC_REPEAT_DELAY=660
export WLC_REPEAT_RATE=25
export SDL_VIDEODRIVER=wayland
# needs qt5.qtwayland in systemPackages
export QT_QPA_PLATFORM=wayland
export QT_WAYLAND_DISABLE_WINDOWDECORATION="1"
# Fix for some Java AWT applications (e.g. Android Studio),
# use this if they aren't displayed properly:
export _JAVA_AWT_WM_NONREPARENTING=1
'';
description = ''
Shell commands executed just before Sway is started.
@ -53,14 +55,17 @@ in {
extraPackages = mkOption {
type = with types; listOf package;
default = with pkgs; [
i3status xwayland rxvt_unicode dmenu
swaylock swayidle
xwayland rxvt_unicode dmenu
];
defaultText = literalExample ''
with pkgs; [ i3status xwayland rxvt_unicode dmenu ];
with pkgs; [ swaylock swayidle xwayland rxvt_unicode dmenu ];
'';
example = literalExample ''
with pkgs; [
i3lock light termite
xwayland
i3status i3status-rust
termite rofi light
]
'';
description = ''
@ -70,23 +75,19 @@ in {
};
config = mkIf cfg.enable {
environment.systemPackages = [ swayJoined ] ++ cfg.extraPackages;
security.wrappers.sway = {
program = "sway-setcap";
source = "${swayPackage}/bin/sway";
capabilities = "cap_sys_ptrace,cap_sys_tty_config=eip";
owner = "root";
group = "sway";
permissions = "u+rx,g+rx";
environment = {
systemPackages = [ swayJoined ] ++ cfg.extraPackages;
etc = {
"sway/config".source = "${swayPackage}/etc/sway/config";
#"sway/security.d".source = "${swayPackage}/etc/sway/security.d/";
#"sway/config.d".source = "${swayPackage}/etc/sway/config.d/";
};
};
users.groups.sway = {};
security.pam.services.swaylock = {};
hardware.opengl.enable = mkDefault true;
fonts.enableDefaultFonts = mkDefault true;
programs.dconf.enable = mkDefault true;
};
meta.maintainers = with lib.maintainers; [ gnidorah primeos ];
meta.maintainers = with lib.maintainers; [ gnidorah primeos colemickens ];
}

View File

@ -0,0 +1,20 @@
{ lib, pkgs, config, ... }:
with lib;
{
options.programs.waybar = {
enable = mkEnableOption "waybar";
};
config = mkIf config.programs.waybar.enable {
systemd.user.services.waybar = {
description = "Waybar as systemd service";
wantedBy = [ "graphical-session.target" ];
partOf = [ "graphical-session.target" ];
script = "${pkgs.waybar}/bin/waybar";
};
};
meta.maintainers = [ maintainers.FlorianFranzen ];
}

View File

@ -79,6 +79,33 @@ in
type = types.lines;
};
histSize = mkOption {
default = 2000;
description = ''
Change history size.
'';
type = types.int;
};
histFile = mkOption {
default = "$HOME/.zsh_history";
description = ''
Change history file.
'';
type = types.str;
};
setOptions = mkOption {
type = types.listOf types.str;
default = [
"HIST_IGNORE_DUPS" "SHARE_HISTORY" "HIST_FCNTL_LOCK"
];
example = [ "EXTENDED_HISTORY" "RM_STAR_WAIT" ];
description = ''
Configure zsh options.
'';
};
enableCompletion = mkOption {
default = true;
description = ''
@ -162,12 +189,11 @@ in
. /etc/zinputrc
# history defaults
SAVEHIST=2000
HISTSIZE=2000
HISTFILE=$HOME/.zsh_history
export SAVEHIST=${toString cfg.histSize}
export HISTSIZE=${toString cfg.histSize}
export HISTFILE=${cfg.histFile}
setopt HIST_IGNORE_DUPS SHARE_HISTORY HIST_FCNTL_LOCK
${optionalString (cfg.setOptions != []) "setopt ${concatStringsSep " " cfg.setOptions}"}
HELPDIR="${pkgs.zsh}/share/zsh/$ZSH_VERSION/help"

View File

@ -0,0 +1,26 @@
{ config, lib, pkgs, ... }:
with lib;
{
options = {
hardware.sane.dsseries.enable =
mkEnableOption "Brother DSSeries scan backend" // {
description = ''
When enabled, will automatically register the "dsseries" SANE backend.
This supports the Brother DSmobile scanner series, including the
DS-620, DS-720D, DS-820W, and DS-920DW scanners.
'';
};
};
config = mkIf (config.hardware.sane.enable && config.hardware.sane.dsseries.enable) {
hardware.sane.extraBackends = [ pkgs.dsseries ];
services.udev.packages = [ pkgs.dsseries ];
boot.kernelModules = [ "sg" ];
};
}

View File

@ -515,6 +515,8 @@ in {
gitAndTools.git
cfg.packages.gitaly.rubyEnv
cfg.packages.gitaly.rubyEnv.wrappedRuby
gzip
bzip2
];
serviceConfig = {
Type = "simple";

View File

@ -235,7 +235,7 @@ in {
'';
script = ''
export DD_API_KEY=$(head -n 1 ${cfg.apiKeyFile})
exec ${datadogPkg}/bin/agent start -c /etc/datadog-agent/datadog.yaml
exec ${datadogPkg}/bin/agent run -c /etc/datadog-agent/datadog.yaml
'';
serviceConfig.PermissionsStartOnly = true;
};

View File

@ -119,7 +119,7 @@ let
mkExporterConf = { name, conf, serviceOpts }:
mkIf conf.enable {
networking.firewall.extraCommands = mkIf conf.openFirewall (concatStrings [
"ip46tables -I nixos-fw ${conf.firewallFilter} "
"ip46tables -A nixos-fw ${conf.firewallFilter} "
"-m comment --comment ${name}-exporter -j nixos-fw-accept"
]);
systemd.services."prometheus-${name}-exporter" = mkMerge ([{

View File

@ -161,6 +161,7 @@ in {
FLANNELD_KUBECONFIG_FILE = cfg.kubeconfig;
NODE_NAME = cfg.nodeName;
};
path = [ pkgs.iptables ];
preStart = ''
mkdir -p /run/flannel
touch /run/flannel/docker

View File

@ -0,0 +1,95 @@
{ config, lib, pkgs, ... }:
with lib;
let
cfg = config.services.knot;
configFile = pkgs.writeText "knot.conf" cfg.extraConfig;
socketFile = "/run/knot/knot.sock";
knotConfCheck = file: pkgs.runCommand "knot-config-checked"
{ buildInputs = [ cfg.package ]; } ''
ln -s ${configFile} $out
knotc --config=${configFile} conf-check
'';
knot-cli-wrappers = pkgs.stdenv.mkDerivation {
name = "knot-cli-wrappers";
buildInputs = [ pkgs.makeWrapper ];
buildCommand = ''
mkdir -p $out/bin
makeWrapper ${cfg.package}/bin/knotc "$out/bin/knotc" \
--add-flags "--config=${configFile}" \
--add-flags "--socket=${socketFile}"
makeWrapper ${cfg.package}/bin/keymgr "$out/bin/keymgr" \
--add-flags "--config=${configFile}"
for executable in kdig khost kjournalprint knsec3hash knsupdate kzonecheck
do
ln -s "${cfg.package}/bin/$executable" "$out/bin/$executable"
done
mkdir -p "$out/share"
ln -s '${cfg.package}/share/man' "$out/share/"
'';
};
in {
options = {
services.knot = {
enable = mkEnableOption "Knot authoritative-only DNS server";
extraArgs = mkOption {
type = types.listOf types.str;
default = [];
description = ''
List of additional command line paramters for knotd
'';
};
extraConfig = mkOption {
type = types.lines;
default = "";
description = ''
Extra lines to be added verbatim to knot.conf
'';
};
package = mkOption {
type = types.package;
default = pkgs.knot-dns;
description = ''
Which Knot DNS package to use
'';
};
};
};
config = mkIf config.services.knot.enable {
systemd.services.knot = {
unitConfig.Documentation = "man:knotd(8) man:knot.conf(5) man:knotc(8) https://www.knot-dns.cz/docs/${cfg.package.version}/html/";
description = cfg.package.meta.description;
wantedBy = [ "multi-user.target" ];
wants = [ "network.target" ];
after = ["network.target" ];
serviceConfig = {
Type = "notify";
ExecStart = "${cfg.package}/bin/knotd --config=${knotConfCheck configFile} --socket=${socketFile} ${concatStringsSep " " cfg.extraArgs}";
ExecReload = "${knot-cli-wrappers}/bin/knotc reload";
CapabilityBoundingSet = "CAP_NET_BIND_SERVICE CAP_SETPCAP";
AmbientCapabilities = "CAP_NET_BIND_SERVICE CAP_SETPCAP";
NoNewPrivileges = true;
DynamicUser = "yes";
RuntimeDirectory = "knot";
StateDirectory = "knot";
StateDirectoryMode = "0700";
PrivateDevices = true;
RestrictAddressFamilies = "AF_UNIX AF_INET AF_INET6";
SystemCallArchitectures = "native";
Restart = "on-abort";
};
};
environment.systemPackages = [ knot-cli-wrappers ];
};
}

View File

@ -197,7 +197,7 @@ let
listenString = { addr, port, ssl, extraParameters ? [], ... }:
"listen ${addr}:${toString port} "
+ optionalString ssl "ssl "
+ optionalString vhost.http2 "http2 "
+ optionalString (ssl && vhost.http2) "http2 "
+ optionalString vhost.default "default_server "
+ optionalString (extraParameters != []) (concatStringsSep " " extraParameters)
+ ";";

View File

@ -0,0 +1,125 @@
{ config, lib, pkgs, ... }:
with lib;
let
cfg = config.services.unit;
configFile = pkgs.writeText "unit.json" cfg.config;
in {
options = {
services.unit = {
enable = mkEnableOption "Unit App Server";
package = mkOption {
type = types.package;
default = pkgs.unit;
defaultText = "pkgs.unit";
description = "Unit package to use.";
};
user = mkOption {
type = types.str;
default = "unit";
description = "User account under which unit runs.";
};
group = mkOption {
type = types.str;
default = "unit";
description = "Group account under which unit runs.";
};
stateDir = mkOption {
default = "/var/spool/unit";
description = "Unit data directory.";
};
logDir = mkOption {
default = "/var/log/unit";
description = "Unit log directory.";
};
config = mkOption {
type = types.str;
default = ''
{
"listeners": {},
"applications": {}
}
'';
example = literalExample ''
{
"listeners": {
"*:8300": {
"application": "example-php-72"
}
},
"applications": {
"example-php-72": {
"type": "php 7.2",
"processes": 4,
"user": "nginx",
"group": "nginx",
"root": "/var/www",
"index": "index.php",
"options": {
"file": "/etc/php.d/default.ini",
"admin": {
"max_execution_time": "30",
"max_input_time": "30",
"display_errors": "off",
"display_startup_errors": "off",
"open_basedir": "/dev/urandom:/proc/cpuinfo:/proc/meminfo:/etc/ssl/certs:/var/www",
"disable_functions": "exec,passthru,shell_exec,system"
}
}
}
}
}
'';
description = "Unit configuration in JSON format. More details here https://unit.nginx.org/configuration";
};
};
};
config = mkIf cfg.enable {
environment.systemPackages = [ cfg.package ];
systemd.tmpfiles.rules = [
"d '${cfg.stateDir}' 0750 ${cfg.user} ${cfg.group} - -"
"d '${cfg.logDir}' 0750 ${cfg.user} ${cfg.group} - -"
];
systemd.services.unit = {
description = "Unit App Server";
after = [ "network.target" ];
wantedBy = [ "multi-user.target" ];
path = with pkgs; [ curl ];
preStart = ''
test -f '/run/unit/control.unit.sock' || rm -f '/run/unit/control.unit.sock'
'';
postStart = ''
curl -X PUT --data-binary '@${configFile}' --unix-socket '/run/unit/control.unit.sock' 'http://localhost/config'
'';
serviceConfig = {
User = cfg.user;
Group = cfg.group;
AmbientCapabilities = "CAP_NET_BIND_SERVICE CAP_SETGID CAP_SETUID";
CapabilityBoundingSet = "CAP_NET_BIND_SERVICE CAP_SETGID CAP_SETUID";
ExecStart = ''
${cfg.package}/bin/unitd --control 'unix:/run/unit/control.unit.sock' --pid '/run/unit/unit.pid' \
--log '${cfg.logDir}/unit.log' --state '${cfg.stateDir}' --no-daemon \
--user ${cfg.user} --group ${cfg.group}
'';
RuntimeDirectory = "unit";
RuntimeDirectoryMode = "0750";
};
};
users.users = optionalAttrs (cfg.user == "unit") (singleton {
name = "unit";
group = cfg.group;
});
users.groups = optionalAttrs (cfg.group == "unit") (singleton {
name = "unit";
});
};
}

View File

@ -108,26 +108,26 @@ in
([ pkgs.pantheon.switchboard-plug-power ])
(mkIf config.services.printing.enable ([pkgs.system-config-printer]) )
];
services.pantheon.contractor.enable = true;
services.pantheon.contractor.enable = mkDefault true;
services.geoclue2.enable = mkDefault true;
# pantheon has pantheon-agent-geoclue2
services.geoclue2.enableDemoAgent = false;
services.gnome3.at-spi2-core.enable = true;
services.gnome3.evolution-data-server.enable = true;
services.gnome3.file-roller.enable = true;
services.gnome3.file-roller.enable = mkDefault true;
# TODO: gnome-keyring's xdg autostarts will still be in the environment (from elementary-session-settings) if disabled forcefully
services.gnome3.gnome-keyring.enable = true;
services.gnome3.gnome-settings-daemon.enable = true;
services.gnome3.gnome-settings-daemon.package = pkgs.pantheon.elementary-settings-daemon;
services.gnome3.gvfs.enable = true;
services.gnome3.rygel.enable = true;
services.gsignond.enable = true;
services.gnome3.rygel.enable = mkDefault true;
services.gsignond.enable = mkDefault true;
services.gsignond.plugins = with pkgs.gsignondPlugins; [ lastfm mail oauth ];
services.udisks2.enable = true;
services.upower.enable = config.powerManagement.enable;
services.xserver.libinput.enable = mkDefault true;
services.xserver.updateDbusEnvironment = true;
services.zeitgeist.enable = true;
services.zeitgeist.enable = mkDefault true;
networking.networkmanager.enable = mkDefault true;
networking.networkmanager.basePackages =
@ -152,19 +152,15 @@ in
"/share"
];
environment.systemPackages = pkgs.pantheon.artwork ++ pkgs.pantheon.desktop ++ pkgs.pantheon.services ++ cfg.sessionPath
++ (pkgs.gnome3.removePackagesByName pkgs.pantheon.apps config.environment.pantheon.excludePackages)
++ (with pkgs.gnome3;
[
adwaita-icon-theme
dconf
epiphany
environment.systemPackages =
pkgs.pantheon.artwork ++ pkgs.pantheon.desktop ++ pkgs.pantheon.services ++ cfg.sessionPath
++ (with pkgs; gnome3.removePackagesByName
([
gnome3.geary
gnome3.epiphany
gnome3.gnome-font-viewer
evince
geary
gnome-bluetooth
gnome-font-viewer
gnome-power-manager
])
] ++ pantheon.apps) config.environment.pantheon.excludePackages)
++ (with pkgs;
[
adwaita-qt
@ -172,6 +168,8 @@ in
glib
glib-networking
gnome-menus
gnome3.adwaita-icon-theme
gnome3.dconf
gtk3.out
hicolor-icon-theme
lightlocker
@ -187,6 +185,7 @@ in
roboto-mono
pantheon.elementary-redacted-script # needed by screenshot-tool
];
fonts.fontconfig.defaultFonts = {
monospace = [ "Roboto Mono" ];
sansSerif = [ "Open Sans" ];

View File

@ -226,7 +226,29 @@ in
security.pam.services.slim.enableKwallet = true;
# Update the start menu for each user that is currently logged in
system.userActivationScripts.plasmaSetup = "${pkgs.libsForQt5.kservice}/bin/kbuildsycoca5";
system.userActivationScripts.plasmaSetup = ''
# The KDE icon cache is supposed to update itself
# automatically, but it uses the timestamp on the icon
# theme directory as a trigger. Since in Nix the
# timestamp is always the same, this doesn't work. So as
# a workaround, nuke the icon cache on login. This isn't
# perfect, since it may require logging out after
# installing new applications to update the cache.
# See http://lists-archives.org/kde-devel/26175-what-when-will-icon-cache-refresh.html
rm -fv $HOME/.cache/icon-cache.kcache
# xdg-desktop-settings generates this empty file but
# it makes kbuildsyscoca5 fail silently. To fix this
# remove that menu if it exists.
rm -fv $HOME/.config/menus/applications-merged/xdg-desktop-menu-dummy.menu
# Remove the kbuildsyscoca5 cache. It will be regenerated
# immediately after. This is necessary for kbuildsyscoca5 to
# recognize that software that has been removed.
rm -fv $HOME/.cache/ksycoca*
${pkgs.libsForQt5.kservice}/bin/kbuildsycoca5
'';
})
];

View File

@ -8,13 +8,17 @@ let
efi = config.boot.loader.efi;
realGrub = if cfg.version == 1 then pkgs.grub
else if cfg.zfsSupport then pkgs.grub2.override { zfsSupport = true; }
grubPkgs =
# Package set of targeted architecture
if cfg.forcei686 then pkgs.pkgsi686Linux else pkgs;
realGrub = if cfg.version == 1 then grubPkgs.grub
else if cfg.zfsSupport then grubPkgs.grub2.override { zfsSupport = true; }
else if cfg.trustedBoot.enable
then if cfg.trustedBoot.isHPLaptop
then pkgs.trustedGrub-for-HP
else pkgs.trustedGrub
else pkgs.grub2;
then grubPkgs.trustedGrub-for-HP
else grubPkgs.trustedGrub
else grubPkgs.grub2;
grub =
# Don't include GRUB if we're only generating a GRUB menu (e.g.,
@ -58,14 +62,10 @@ let
version extraConfig extraPerEntryConfig extraEntries forceInstall useOSProber
extraEntriesBeforeNixOS extraPrepareConfig extraInitrd configurationLimit copyKernels
default fsIdentifier efiSupport efiInstallAsRemovable gfxmodeEfi gfxmodeBios;
path = (makeBinPath ([
pkgs.coreutils pkgs.gnused pkgs.gnugrep pkgs.findutils pkgs.diffutils pkgs.btrfs-progs
pkgs.utillinux ]
++ (optional (cfg.efiSupport && (cfg.version == 2)) pkgs.efibootmgr)
++ (optionals cfg.useOSProber [pkgs.busybox pkgs.os-prober])
)) + ":" + (makeSearchPathOutput "bin" "sbin" [
pkgs.mdadm pkgs.utillinux
]);
path = with pkgs; makeBinPath (
[ coreutils gnused gnugrep findutils diffutils btrfs-progs utillinux mdadm ]
++ optional (cfg.efiSupport && (cfg.version == 2)) efibootmgr
++ optionals cfg.useOSProber [ busybox os-prober ]);
font = if cfg.font == null then ""
else (if lib.last (lib.splitString "." cfg.font) == "pf2"
then cfg.font
@ -512,6 +512,15 @@ in
'';
};
forcei686 = mkOption {
default = false;
type = types.bool;
description = ''
Whether to force the use of a ia32 boot loader on x64 systems. Required
to install and run NixOS on 64bit x86 systems with 32bit (U)EFI.
'';
};
trustedBoot = {
enable = mkOption {

View File

@ -31,6 +31,7 @@ in
fileSystems."/" = {
device = "/dev/disk/by-label/nixos";
fsType = "ext4";
autoResize = true;
};

View File

@ -43,6 +43,7 @@ in
clickhouse = handleTest ./clickhouse.nix {};
cloud-init = handleTest ./cloud-init.nix {};
codimd = handleTest ./codimd.nix {};
colord = handleTest ./colord.nix {};
containers-bridge = handleTest ./containers-bridge.nix {};
containers-extra_veth = handleTest ./containers-extra_veth.nix {};
containers-hosts = handleTest ./containers-hosts.nix {};
@ -117,6 +118,7 @@ in
kernel-latest = handleTest ./kernel-latest.nix {};
kernel-lts = handleTest ./kernel-lts.nix {};
keymap = handleTest ./keymap.nix {};
knot = handleTest ./knot.nix {};
kubernetes.dns = handleTestOn ["x86_64-linux"] ./kubernetes/dns.nix {};
# kubernetes.e2e should eventually replace kubernetes.rbac when it works
#kubernetes.e2e = handleTestOn ["x86_64-linux"] ./kubernetes/e2e.nix {};
@ -172,6 +174,7 @@ in
osquery = handleTest ./osquery.nix {};
osrm-backend = handleTest ./osrm-backend.nix {};
ostree = handleTest ./ostree.nix {};
overlayfs = handleTest ./overlayfs.nix {};
pam-oath-login = handleTest ./pam-oath-login.nix {};
pam-u2f = handleTest ./pam-u2f.nix {};
pantheon = handleTest ./pantheon.nix {};

18
nixos/tests/colord.nix Normal file
View File

@ -0,0 +1,18 @@
# run installed tests
import ./make-test.nix ({ pkgs, ... }:
{
name = "colord";
meta = {
maintainers = pkgs.colord.meta.maintainers;
};
machine = { pkgs, ... }: {
environment.systemPackages = with pkgs; [ gnome-desktop-testing ];
};
testScript = ''
$machine->succeed("gnome-desktop-testing-runner -d '${pkgs.colord.installedTests}/share'");
'';
})

View File

@ -1,5 +1,8 @@
# This test runs gitlab and checks if it works
let
initialRootPassword = "notproduction";
in
import ./make-test.nix ({ pkgs, lib, ...} : with lib; {
name = "gitlab";
meta = with pkgs.stdenv.lib.maintainers; {
@ -27,7 +30,7 @@ import ./make-test.nix ({ pkgs, lib, ...} : with lib; {
services.gitlab = {
enable = true;
databasePassword = "dbPassword";
initialRootPassword = "notproduction";
inherit initialRootPassword;
smtp.enable = true;
secrets = {
secret = "secret";
@ -69,7 +72,27 @@ import ./make-test.nix ({ pkgs, lib, ...} : with lib; {
};
};
testScript = ''
testScript =
let
auth = pkgs.writeText "auth.json" (builtins.toJSON {
grant_type = "password";
username = "root";
password = initialRootPassword;
});
createProject = pkgs.writeText "create-project.json" (builtins.toJSON {
name = "test";
});
putFile = pkgs.writeText "put-file.json" (builtins.toJSON {
branch = "master";
author_email = "author@example.com";
author_name = "Firstname Lastname";
content = "some content";
commit_message = "create a new file";
});
in
''
$gitlab->start();
$gitlab->waitForUnit("gitaly.service");
$gitlab->waitForUnit("gitlab-workhorse.service");
@ -78,6 +101,13 @@ import ./make-test.nix ({ pkgs, lib, ...} : with lib; {
$gitlab->waitForFile("/var/gitlab/state/tmp/sockets/gitlab.socket");
$gitlab->waitUntilSucceeds("curl -sSf http://gitlab/users/sign_in");
$gitlab->succeed("curl -isSf http://gitlab | grep -i location | grep -q http://gitlab/users/sign_in");
$gitlab->succeed("${pkgs.sudo}/bin/sudo -u gitlab -H gitlab-rake gitlab:check 1>&2")
$gitlab->succeed("${pkgs.sudo}/bin/sudo -u gitlab -H gitlab-rake gitlab:check 1>&2");
$gitlab->succeed("echo \"Authorization: Bearer \$(curl -X POST -H 'Content-Type: application/json' -d @${auth} http://gitlab/oauth/token | ${pkgs.jq}/bin/jq -r '.access_token')\" >/tmp/headers");
$gitlab->succeed("curl -X POST -H 'Content-Type: application/json' -H @/tmp/headers -d @${createProject} http://gitlab/api/v4/projects");
$gitlab->succeed("curl -X POST -H 'Content-Type: application/json' -H @/tmp/headers -d @${putFile} http://gitlab/api/v4/projects/1/repository/files/some-file.txt");
$gitlab->succeed("curl -H @/tmp/headers http://gitlab/api/v4/projects/1/repository/archive.tar.gz > /tmp/archive.tar.gz");
$gitlab->succeed("curl -H @/tmp/headers http://gitlab/api/v4/projects/1/repository/archive.tar.bz2 > /tmp/archive.tar.bz2");
$gitlab->succeed("test -s /tmp/archive.tar.gz");
$gitlab->succeed("test -s /tmp/archive.tar.bz2");
'';
})

197
nixos/tests/knot.nix Normal file
View File

@ -0,0 +1,197 @@
import ./make-test.nix ({ pkgs, lib, ...} :
let
common = {
networking.firewall.enable = false;
networking.useDHCP = false;
};
exampleZone = pkgs.writeTextDir "example.com.zone" ''
@ SOA ns.example.com. noc.example.com. 2019031301 86400 7200 3600000 172800
@ NS ns1
@ NS ns2
ns1 A 192.168.0.1
ns1 AAAA fd00::1
ns2 A 192.168.0.2
ns2 AAAA fd00::2
www A 192.0.2.1
www AAAA 2001:DB8::1
sub NS ns.example.com.
'';
delegatedZone = pkgs.writeTextDir "sub.example.com.zone" ''
@ SOA ns.example.com. noc.example.com. 2019031301 86400 7200 3600000 172800
@ NS ns1.example.com.
@ NS ns2.example.com.
@ A 192.0.2.2
@ AAAA 2001:DB8::2
'';
knotZonesEnv = pkgs.buildEnv {
name = "knot-zones";
paths = [ exampleZone delegatedZone ];
};
in {
name = "knot";
nodes = {
master = { lib, ... }: {
imports = [ common ];
networking.interfaces.eth1 = {
ipv4.addresses = lib.mkForce [
{ address = "192.168.0.1"; prefixLength = 24; }
];
ipv6.addresses = lib.mkForce [
{ address = "fd00::1"; prefixLength = 64; }
];
};
services.knot.enable = true;
services.knot.extraArgs = [ "-v" ];
services.knot.extraConfig = ''
server:
listen: 0.0.0.0@53
listen: ::@53
acl:
- id: slave_acl
address: 192.168.0.2
action: transfer
remote:
- id: slave
address: 192.168.0.2@53
template:
- id: default
storage: ${knotZonesEnv}
notify: [slave]
acl: [slave_acl]
dnssec-signing: on
# Input-only zone files
# https://www.knot-dns.cz/docs/2.8/html/operation.html#example-3
# prevents modification of the zonefiles, since the zonefiles are immutable
zonefile-sync: -1
zonefile-load: difference
journal-content: changes
# move databases below the state directory, because they need to be writable
journal-db: /var/lib/knot/journal
kasp-db: /var/lib/knot/kasp
timer-db: /var/lib/knot/timer
zone:
- domain: example.com
file: example.com.zone
- domain: sub.example.com
file: sub.example.com.zone
log:
- target: syslog
any: info
'';
};
slave = { lib, ... }: {
imports = [ common ];
networking.interfaces.eth1 = {
ipv4.addresses = lib.mkForce [
{ address = "192.168.0.2"; prefixLength = 24; }
];
ipv6.addresses = lib.mkForce [
{ address = "fd00::2"; prefixLength = 64; }
];
};
services.knot.enable = true;
services.knot.extraArgs = [ "-v" ];
services.knot.extraConfig = ''
server:
listen: 0.0.0.0@53
listen: ::@53
acl:
- id: notify_from_master
address: 192.168.0.1
action: notify
remote:
- id: master
address: 192.168.0.1@53
template:
- id: default
master: master
acl: [notify_from_master]
# zonefileless setup
# https://www.knot-dns.cz/docs/2.8/html/operation.html#example-2
zonefile-sync: -1
zonefile-load: none
journal-content: all
# move databases below the state directory, because they need to be writable
journal-db: /var/lib/knot/journal
kasp-db: /var/lib/knot/kasp
timer-db: /var/lib/knot/timer
zone:
- domain: example.com
file: example.com.zone
- domain: sub.example.com
file: sub.example.com.zone
log:
- target: syslog
any: info
'';
};
client = { lib, nodes, ... }: {
imports = [ common ];
networking.interfaces.eth1 = {
ipv4.addresses = [
{ address = "192.168.0.3"; prefixLength = 24; }
];
ipv6.addresses = [
{ address = "fd00::3"; prefixLength = 64; }
];
};
environment.systemPackages = [ pkgs.knot-dns ];
};
};
testScript = { nodes, ... }: let
master4 = (lib.head nodes.master.config.networking.interfaces.eth1.ipv4.addresses).address;
master6 = (lib.head nodes.master.config.networking.interfaces.eth1.ipv6.addresses).address;
slave4 = (lib.head nodes.slave.config.networking.interfaces.eth1.ipv4.addresses).address;
slave6 = (lib.head nodes.slave.config.networking.interfaces.eth1.ipv6.addresses).address;
in ''
startAll;
$client->waitForUnit("network.target");
$master->waitForUnit("knot.service");
$slave->waitForUnit("knot.service");
sub assertResponse {
my ($knot, $query_type, $query, $expected) = @_;
my $out = $client->succeed("khost -t $query_type $query $knot");
$client->log("$knot replies with: $out");
chomp $out;
die "DNS query for $query ($query_type) against $knot gave '$out' instead of '$expected'"
if ($out !~ $expected);
}
foreach ("${master4}", "${master6}", "${slave4}", "${slave6}") {
subtest $_, sub {
assertResponse($_, "SOA", "example.com", qr/start of authority.*?noc\.example\.com/);
assertResponse($_, "A", "example.com", qr/has no [^ ]+ record/);
assertResponse($_, "AAAA", "example.com", qr/has no [^ ]+ record/);
assertResponse($_, "A", "www.example.com", qr/address 192.0.2.1$/);
assertResponse($_, "AAAA", "www.example.com", qr/address 2001:db8::1$/);
assertResponse($_, "NS", "sub.example.com", qr/nameserver is ns\d\.example\.com.$/);
assertResponse($_, "A", "sub.example.com", qr/address 192.0.2.2$/);
assertResponse($_, "AAAA", "sub.example.com", qr/address 2001:db8::2$/);
assertResponse($_, "RRSIG", "www.example.com", qr/RR set signature is/);
assertResponse($_, "DNSKEY", "example.com", qr/DNSSEC key is/);
};
}
'';
})

57
nixos/tests/overlayfs.nix Normal file
View File

@ -0,0 +1,57 @@
import ./make-test.nix ({ pkgs, ... }: {
name = "overlayfs";
meta.maintainers = with pkgs.stdenv.lib.maintainers; [ bachp ];
machine = { pkgs, ... }: {
virtualisation.emptyDiskImages = [ 512 ];
networking.hostId = "deadbeef";
environment.systemPackages = with pkgs; [ parted ];
};
testScript = ''
$machine->succeed("ls /dev");
$machine->succeed("mkdir -p /tmp/mnt");
# Test ext4 + overlayfs
$machine->succeed(
"mkfs.ext4 -F -L overlay-ext4 /dev/vdb",
"mount -t ext4 /dev/vdb /tmp/mnt",
"mkdir -p /tmp/mnt/upper /tmp/mnt/lower /tmp/mnt/work /tmp/mnt/merged",
# Setup some existing files
"echo 'Replace' > /tmp/mnt/lower/replace.txt",
"echo 'Append' > /tmp/mnt/lower/append.txt",
"echo 'Overwrite' > /tmp/mnt/lower/overwrite.txt",
"mount -t overlay overlay -o lowerdir=/tmp/mnt/lower,upperdir=/tmp/mnt/upper,workdir=/tmp/mnt/work /tmp/mnt/merged",
# Test new
"echo 'New' > /tmp/mnt/merged/new.txt",
"[[ \"\$(cat /tmp/mnt/merged/new.txt)\" == \"New\" ]]",
# Test replace
"[[ \"\$(cat /tmp/mnt/merged/replace.txt)\" == \"Replace\" ]]",
"echo 'Replaced' > /tmp/mnt/merged/replace-tmp.txt",
"mv /tmp/mnt/merged/replace-tmp.txt /tmp/mnt/merged/replace.txt",
"[[ \"\$(cat /tmp/mnt/merged/replace.txt)\" == \"Replaced\" ]]",
# Overwrite
"[[ \"\$(cat /tmp/mnt/merged/overwrite.txt)\" == \"Overwrite\" ]]",
"echo 'Overwritten' > /tmp/mnt/merged/overwrite.txt",
"[[ \"\$(cat /tmp/mnt/merged/overwrite.txt)\" == \"Overwritten\" ]]",
# Test append
"[[ \"\$(cat /tmp/mnt/merged/append.txt)\" == \"Append\" ]]",
"echo 'ed' >> /tmp/mnt/merged/append.txt",
#"cat /tmp/mnt/merged/append.txt && exit 1",
"[[ \"\$(cat /tmp/mnt/merged/append.txt)\" == \"Append\ned\" ]]",
"umount /tmp/mnt/merged",
"umount /tmp/mnt",
"udevadm settle"
);
'';
})

View File

@ -3,7 +3,7 @@
import ./make-test.nix ({pkgs, ... }: {
name = "printing";
meta = with pkgs.stdenv.lib.maintainers; {
maintainers = [ domenkozar eelco jgeerds ];
maintainers = [ domenkozar eelco ];
};
nodes = {

View File

@ -11,6 +11,8 @@ stdenv.mkDerivation rec {
sha256 = "1v1qwv4x5agjba82s1vknmdgq67y26wzdwbmwwqavv7f7y3y860h";
};
enableParallelBuilding = false;
qmakeFlags = ["USE_UPNP=-"];
# I think that openssl and zlib are required, but come through other

View File

@ -4,14 +4,14 @@
, pname ? "ADLplug" }:
stdenv.mkDerivation rec {
name = "${pname}-${version}";
version = "v1.0.0-beta.5";
inherit pname;
version = "1.0.0";
src = fetchFromGitHub {
owner = "jpcima";
repo = "ADLplug";
rev = version;
sha256 = "1f8v61nv33xwpzmmk38dkr3fvm2j2xf0a74agxnl9p1yvy3a9w3s";
rev = "v${version}";
sha256 = "1rpd7v1rx74cv7nhs70ah0bly314rjzj70cp30mvhns2hzk66s3c";
fetchSubmodules = true;
};

View File

@ -3,11 +3,11 @@
stdenv.mkDerivation rec {
name = packageName + "-" + version ;
packageName = "aj-snapshot" ;
version = "0.9.8";
version = "0.9.9";
src = fetchurl {
url = "mirror://sourceforge/${packageName}/${name}.tar.bz2";
sha256 = "0wilky1g2mb88v2z0520s7sw1dsn10iwanc8id5p6z1xsnhg7b6p";
sha256 = "0z8wd5yvxdmw1h1rj6km9h01xd4xmp4d86gczlix7hsc7zrf0wil";
};
doCheck = false;

View File

@ -7,12 +7,12 @@
with stdenv.lib;
stdenv.mkDerivation rec {
version = "2.3.0";
version = "2.3.1";
name = "audacity-${version}";
src = fetchurl {
url = "https://github.com/audacity/audacity/archive/Audacity-${version}.tar.gz";
sha256 = "0pi7ksm8hfvwbn580z4kkc55sbaylrrr7v08s04dmdgfvil7y4ip";
sha256 = "089kz6hgqg0caz33sps19wpkfnza5gf7brdq2p9y6bnwkipw1w9f";
};
preConfigure = /* we prefer system-wide libs */ ''

View File

@ -3,11 +3,11 @@
bitwig-studio1.overrideAttrs (oldAttrs: rec {
name = "bitwig-studio-${version}";
version = "2.4.3";
version = "2.5";
src = fetchurl {
url = "https://downloads.bitwig.com/stable/${version}/bitwig-studio-${version}.deb";
sha256 = "17754y4ni0zj9vjxl8ldivi33gdb0nk6sdlcmlpskgffrlx8di08";
sha256 = "1zkiz36lhck3qvl0cp0dq6pwbv4lx4sh9wh0ga92kx5zhvbjm098";
};
runtimeDependencies = [

View File

@ -1,44 +1,45 @@
{ stdenv, csound, desktop-file-utils,
fetchFromGitHub, python, python-qt, qmake,
qtwebengine, rtmidi, unzip }:
qtwebengine, qtxmlpatterns, rtmidi, fetchpatch }:
stdenv.mkDerivation rec {
name = "csound-qt-${version}";
version = "0.9.6-beta2";
version = "0.9.6-beta3";
src = fetchFromGitHub {
owner = "CsoundQt";
repo = "CsoundQt";
rev = "${version}";
sha256 = "12jv7cvns3wj2npha0mvpn88kkkfsxsvhgzs2wrw04kbrvbhbffi";
sha256 = "007jhkh0k6qk52r77i067999dwdiimazix6ggp2hvyc4pj6n5dip";
};
patches = [ ./rtmidipath.patch ];
patches = [
(fetchpatch {
name = "examplepath.patch";
url = "https://github.com/CsoundQt/CsoundQt/commit/09f2d515bff638cbcacb450979d66e273a59fdec.diff";
sha256 = "0y23kf8m1mh9mklsvf908b2b8m2w2rji8qvws44paf1kpwnwdmgm";
})
./rtmidipath.patch
];
nativeBuildInputs = [ qmake qtwebengine ];
nativeBuildInputs = [ qmake qtwebengine qtxmlpatterns ];
buildInputs = [ csound desktop-file-utils rtmidi unzip ];
buildInputs = [ csound desktop-file-utils rtmidi ];
qmakeFlags = [ "qcs.pro" "CONFIG+=rtmidi" "CONFIG+=pythonqt"
"CONFIG+=record_support" "CONFIG+=html_webengine"
"CSOUND_INCLUDE_DIR=${csound}/include/csound"
"CSOUND_LIBRARY_DIR=${csound}/lib"
"RTMIDI_DIR=${rtmidi.src}"
"PYTHONQT_SRC_DIR=${python-qt}/lib"
"PYTHONQT_SRC_DIR=${python-qt}/include/PythonQt"
"PYTHONQT_LIB_DIR=${python-qt}/lib"
"LIBS+=${python-qt}/lib/libPythonQt-Qt5-Python2.7.so"
"LIBS+=${python-qt}/lib/libPythonQt_QtAll-Qt5-Python2.7.so"
"LIBS+=-L${python-qt}/lib"
"INCLUDEPATH+=${python-qt}/include/PythonQt"
"INCLUDEPATH+=${python}/include/python2.7"
"INSTALL_DIR=$(out)"
"SHARE_DIR=$(out)/share"
"INSTALL_DIR=${placeholder "out"}"
"SHARE_DIR=${placeholder "out"}/share"
];
installPhase = ''
mkdir -p $out
cp -r bin $out
make install
'';
meta = with stdenv.lib; {
description = "CsoundQt is a frontend for Csound with editor, integrated help, widgets and other features.";
homepage = https://csoundqt.github.io/;

View File

@ -3,15 +3,15 @@ index e5e0c896..9a9fa513 100644
--- a/src/src.pri
+++ b/src/src.pri
@@ -155,9 +155,9 @@ pythonqt {
"src/pyqcsobject.cpp"
}
rtmidi {
- HEADERS += "src/../$${RTMIDI_DIR}/RtMidi.h"
- SOURCES += "src/../$${RTMIDI_DIR}/RtMidi.cpp"
- INCLUDEPATH += src/../$${RTMIDI_DIR}
+ HEADERS += "$${RTMIDI_DIR}/RtMidi.h"
+ SOURCES += "$${RTMIDI_DIR}/RtMidi.cpp"
+ INCLUDEPATH += $${RTMIDI_DIR}
}
perfThread_build {
"src/pyqcsobject.cpp"
}
rtmidi {
- HEADERS += "src/../$${RTMIDI_DIR}/RtMidi.h"
- SOURCES += "src/../$${RTMIDI_DIR}/RtMidi.cpp"
- INCLUDEPATH += src/../$${RTMIDI_DIR}
+ HEADERS += "$${RTMIDI_DIR}/RtMidi.h"
+ SOURCES += "$${RTMIDI_DIR}/RtMidi.cpp"
+ INCLUDEPATH += $${RTMIDI_DIR}
}
perfThread_build {

View File

@ -2,11 +2,11 @@
stdenv.mkDerivation rec {
name = "drumkv1-${version}";
version = "0.9.4";
version = "0.9.5";
src = fetchurl {
url = "mirror://sourceforge/drumkv1/${name}.tar.gz";
sha256 = "02j10khl3wd17z0wfs3crr55wv7h9f0qhhg90xg0kvrxvw83vzy9";
sha256 = "1azzwqgrrr4zr509sib2jvigfvz5bkwnx82chdadxdwfarai8586";
};
buildInputs = [ libjack2 alsaLib libsndfile liblo lv2 qt5.qtbase qt5.qttools ];

View File

@ -8,13 +8,13 @@ in
stdenv.mkDerivation rec {
name = "freewheeling-${version}";
version = "0.6.4";
version = "0.6.5";
src = fetchFromGitHub {
owner = "free-wheeling";
repo = "freewheeling";
rev = "v${version}";
sha256 = "1xflbbnjdibjmyxb1zq8liylaw5k03nnl1z3272jh204pqh17ri9";
sha256 = "1gjii2kndffj9iqici4vb9zrkrdqj1hs9q43x7jv48wv9872z78r";
};
nativeBuildInputs = [ pkgconfig autoreconfHook libtool ];

View File

@ -1,25 +0,0 @@
{ stdenv, fetchgit, python2Packages }:
python2Packages.buildPythonApplication rec {
pname = "lastwatch";
version = "0.4.1";
src = fetchgit {
url = "git://github.com/aszlig/LastWatch.git";
rev = "refs/tags/v${version}";
sha256 = "0nlng3595j5jvnikk8i5hb915zak5zsmfn2306cc4gfcns9xzjwp";
};
propagatedBuildInputs = with python2Packages; [
pyinotify
pylast
mutagen
];
meta = {
homepage = https://github.com/aszlig/LastWatch;
description = "An inotify-based last.fm audio scrobbler";
license = stdenv.lib.licenses.gpl2;
platforms = stdenv.lib.platforms.linux;
};
}

View File

@ -5,7 +5,7 @@
python3.pkgs.buildPythonApplication rec {
pname = "lollypop";
version = "0.9.923";
version = "1.0";
format = "other";
doCheck = false;
@ -14,7 +14,7 @@ python3.pkgs.buildPythonApplication rec {
url = "https://gitlab.gnome.org/World/lollypop";
rev = "refs/tags/${version}";
fetchSubmodules = true;
sha256 = "0jgz36lrhigcsr9vs5sp4ngv8rir3zqicygymjv7d61d6pclkx1z";
sha256 = "00hjxpgmhzhyjjdpm92cbbxwnc17xdhhk8svk5ih3n18yk5655fs";
};
nativeBuildInputs = [

View File

@ -2,11 +2,11 @@
pythonPackages.buildPythonApplication rec {
pname = "Mopidy-Iris";
version = "3.32.5";
version = "3.33.0";
src = pythonPackages.fetchPypi {
inherit pname version;
sha256 = "0vs8x26zcakk6c31sc774h2lcdw3syp236vyymmx1jnfsh1jaqpn";
sha256 = "0g00rjkmsnza4gjjdm0cwrpw3gqvmjj58157dvrh7f8k7j0gdvdm";
};
propagatedBuildInputs = [
@ -14,14 +14,10 @@ pythonPackages.buildPythonApplication rec {
mopidy-local-images
] ++ (with pythonPackages; [
configobj
pylast
spotipy
raven
requests
tornado_4
]);
postPatch = "sed -i /tornado/d setup.py";
# no tests implemented
doCheck = false;

View File

@ -3,13 +3,13 @@
stdenv.mkDerivation rec {
name = "ncpamixer-${version}";
version = "1.3";
version = "1.3.3";
src = fetchFromGitHub {
owner = "fulhax";
repo = "ncpamixer";
rev = version;
sha256 = "02v8vsx26w3wrzkg61457diaxv1hyzsh103p53j80la9vglamdsh";
sha256 = "19pxfvfhhrbfk1wz5awx60y51jccrgrcvlq7lb622sw2z0wzw4ac";
};
buildInputs = [ ncurses libpulseaudio ];

View File

@ -0,0 +1,69 @@
{ stdenv, fetchFromGitHub, pkgconfig, meson, gnome3, at-spi2-core, dbus, gst_all_1, sphinxbase, pocketsphinx, ninja, gettext, appstream-glib, python3, glib, gobject-introspection, gsettings-desktop-schemas, itstool, wrapGAppsHook, makeWrapper, hicolor-icon-theme }:
stdenv.mkDerivation rec {
pname = "parlatype";
version = "1.6-beta";
src = fetchFromGitHub {
owner = "gkarsay";
repo = pname;
rev = "v${version}";
sha256 = "0bi0djic9kf178s7vl3y83v4rzhvynlvyf64n94fy80n2f100dj9";
};
nativeBuildInputs = [
pkgconfig
meson
ninja
gettext
appstream-glib
python3
gobject-introspection
itstool
wrapGAppsHook
];
buildInputs = [
gnome3.gtk
at-spi2-core
dbus
gst_all_1.gstreamer
gst_all_1.gst-plugins-base
gst_all_1.gst-plugins-good
gst_all_1.gst-plugins-bad
gst_all_1.gst-plugins-ugly
gst_all_1.gst-libav
sphinxbase
pocketsphinx
glib
gsettings-desktop-schemas
hicolor-icon-theme
];
mesonFlags = [ "-Dlibreoffice=false" ];
postPatch = ''
chmod +x data/meson_post_install.py
patchShebangs data/meson_post_install.py
'';
doCheck = false;
enableParallelBuilding = true;
buildPhase = ''
export GST_PLUGIN_SYSTEM_PATH_1_0="$out/lib/gstreamer-1.0/:$GST_PLUGIN_SYSTEM_PATH_1_0"
'';
meta = with stdenv.lib; {
description = "GNOME audio player for transcription";
longDescription = ''
Parlatype is a minimal audio player for manual speech transcription, written for the GNOME desktop environment.
It plays audio sources to transcribe them in your favourite text application.
Its intended to be useful for journalists, students, scientists and whoever needs to transcribe audio files.
'';
homepage = https://gkarsay.github.io/parlatype/;
license = licenses.gpl3Plus;
maintainers = [ maintainers.melchips ];
platforms = platforms.linux;
};
}

View File

@ -2,11 +2,12 @@
, libcanberra-gtk3, makeWrapper, gnome3 }:
stdenv.mkDerivation rec {
name = "pavucontrol-3.0";
pname = "pavucontrol";
version = "4.0";
src = fetchurl {
url = "https://freedesktop.org/software/pulseaudio/pavucontrol/${name}.tar.xz";
sha256 = "14486c6lmmirkhscbfygz114f6yzf97h35n3h3pdr27w4mdfmlmk";
url = "https://freedesktop.org/software/pulseaudio/${pname}/${pname}-${version}.tar.xz";
sha256 = "1qhlkl3g8d7h72xjskii3g1l7la2cavwp69909pzmbi2jyn5pi4g";
};
preFixup = ''
@ -35,7 +36,7 @@ stdenv.mkDerivation rec {
license = stdenv.lib.licenses.gpl2Plus;
maintainers = with maintainers; [ abbradar jgeerds ];
maintainers = with maintainers; [ abbradar ];
platforms = platforms.linux;
};
}

View File

@ -4,13 +4,13 @@ let
pythonPackages = python3Packages;
in pythonPackages.buildPythonApplication rec {
pname = "picard";
version = "2.1.2";
version = "2.1.3";
src = fetchFromGitHub {
owner = "metabrainz";
repo = pname;
rev = "release-${version}";
sha256 = "1p2bvfzby0nk1vh04yfmsvjcldgkj6m6s1hcv9v13hc8q1cbdfk5";
sha256 = "1armg8vpvnbpk7rrfk9q7nj5gm56rza00ni9qwdyqpxp1xaz6apj";
};
nativeBuildInputs = [ gettext ];

View File

@ -35,6 +35,6 @@ pythonPackages.buildPythonApplication rec {
description = "Pandora Internet Radio player for GNOME";
homepage = https://pithos.github.io/;
license = licenses.gpl3;
maintainers = with maintainers; [ obadz jgeerds ];
maintainers = with maintainers; [ obadz ];
};
}

View File

@ -23,13 +23,13 @@ let
in stdenv.mkDerivation rec {
name = "pulseaudio-modules-bt-${version}";
version = "unstable-2019-01-05";
version = "unstable-2019-03-15";
src = fetchFromGitHub {
owner = "EHfive";
repo = "pulseaudio-modules-bt";
rev = "4b0cde160c96f40d860fef267a6ded49ae045be0";
sha256 = "15jw5nf2dhqqdwzyh2x5kdkrq7f3qn140gw6gmspcai9kplhk24w";
rev = "0b397c26eb4fd5dc611bd3e2baa79776de646856";
sha256 = "09q0xh9iz0crik6xpln9lijirf62aljxa1jrds1i1zgflyfidd0z";
fetchSubmodules = true;
};

View File

@ -1,20 +1,11 @@
diff --git a/CMakeLists.txt b/CMakeLists.txt
index d869979..185144d 100644
index 8d20dbf..63fe7ba 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -143,13 +143,13 @@ INSTALL(TARGETS
@@ -213,5 +213,4 @@ INSTALL(TARGETS
module-bluez5-device
module-bluetooth-discover
module-bluetooth-policy
- LIBRARY DESTINATION ${PulseAudio_modlibexecdir})
-
+ LIBRARY DESTINATION ${CMAKE_INSTALL_PREFIX}/lib/pulse-${PulseAudio_VERSION}/modules/)
if(NOT ${HAVE_SYSTEM_LDAC})
INSTALL(TARGETS
ldacBT_enc
ldacBT_abr
- LIBRARY DESTINATION ${PulseAudio_modlibexecdir})
+ LIBRARY DESTINATION ${CMAKE_INSTALL_PREFIX}/lib/pulse-${PulseAudio_VERSION}/modules/)
endif()

View File

@ -5,11 +5,11 @@
stdenv.mkDerivation rec {
pname = "qtractor";
version = "0.9.4";
version = "0.9.5";
src = fetchurl {
url = "mirror://sourceforge/${pname}/${pname}-${version}.tar.gz";
sha256 = "05xrzr48b19mghbpbzjqw5fy6pl9140bm5m929lrsi4rq5hp3xgg";
sha256 = "1zsikhqj5xzhw2x3b6pqlmcwz3hxx07lbbif8v3m3j41snzjic22";
};
nativeBuildInputs = [

View File

@ -40,13 +40,13 @@ let
in
stdenv.mkDerivation rec {
name = "radiotray-ng-${version}";
version = "0.2.4";
version = "0.2.5";
src = fetchFromGitHub {
owner = "ebruck";
repo = "radiotray-ng";
rev = "v${version}";
sha256 = "1jk80fv8ivwdx7waivls0mczn0rx4wv0fy7a28k77m88i5gkfgyw";
sha256 = "1crvpn1mgrv7bd2k683mpgs59785mkrjvmp1f14iyq4qrr0f9zzi";
};
nativeBuildInputs = [ cmake pkgconfig wrapGAppsHook makeWrapper ];
@ -61,6 +61,8 @@ stdenv.mkDerivation rec {
] ++ gstInputs
++ pythonInputs;
patches = [ ./no-dl-googletest.patch ];
postPatch = ''
for x in debian/CMakeLists.txt include/radiotray-ng/common.hpp data/*.desktop; do
substituteInPlace $x --replace /usr $out
@ -80,8 +82,7 @@ stdenv.mkDerivation rec {
enableParallelBuilding = true;
checkInputs = [ gtest ];
# doCheck = stdenv.hostPlatform == stdenv.buildPlatform;
doCheck = false; # fails to pick up supplied gtest, tries to download it instead
doCheck = !stdenv.isAarch64; # single failure that I can't explain
preFixup = ''
gappsWrapperArgs+=(--suffix PATH : ${stdenv.lib.makeBinPath [ dbus ]})

View File

@ -0,0 +1,55 @@
From 2ce91cd2244e61d54e0c0a3b26851912240b0667 Mon Sep 17 00:00:00 2001
From: Will Dietz <w@wdtz.org>
Date: Sat, 16 Mar 2019 11:40:00 -0500
Subject: [PATCH] don't download googletest
---
CMakeLists.txt | 18 ------------------
tests/CMakeLists.txt | 1 -
2 files changed, 19 deletions(-)
diff --git a/CMakeLists.txt b/CMakeLists.txt
index fc1b9de..301c266 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -70,25 +70,7 @@ endif()
# build tests? Then we need googletest...
if (BUILD_TESTS)
- include(ExternalProject)
-
- ExternalProject_Add(googletest
- PREFIX "${CMAKE_CURRENT_BINARY_DIR}/googletest"
- URL https://github.com/google/googletest/archive/release-1.8.1.tar.gz
- URL_HASH SHA256=9bf1fe5182a604b4135edc1a425ae356c9ad15e9b23f9f12a02e80184c3a249c
- TIMEOUT 30
- DOWNLOAD_NO_PROGRESS true
- INSTALL_COMMAND "")
-
- ExternalProject_Get_Property(googletest SOURCE_DIR)
- include_directories(${SOURCE_DIR}/googlemock/include ${SOURCE_DIR}/googletest/include)
- ExternalProject_Get_Property(googletest BINARY_DIR)
- link_directories(${BINARY_DIR}/googlemock ${BINARY_DIR}/googlemock/gtest)
set(GMOCK_BOTH_LIBRARIES gmock_main gmock gtest)
- set_property(DIRECTORY PROPERTY CLEAN_NO_CUSTOM "${CMAKE_CURRENT_BINARY_DIR}/googletest")
- unset(SOURCE_DIR)
- unset(BINARY_DIR)
-
enable_testing()
add_subdirectory(tests)
add_subdirectory(tests/runners/)
diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt
index 859c048..58ab5c2 100644
--- a/tests/CMakeLists.txt
+++ b/tests/CMakeLists.txt
@@ -2,7 +2,6 @@ include(GoogleTest)
function(add_gmock_test target)
add_executable(${target} ${ARGN})
- add_dependencies(${target} googletest)
target_link_libraries(${target} config playlist bookmarks event_bus ${GMOCK_BOTH_LIBRARIES} ${XDG_BASEDIR_LIBRARIES} ${Boost_LIBRARIES} ${CURL_LIBRARIES} ${JSONCPP_LIBRARIES} pthread)
target_include_directories(${target} PRIVATE ${JSONCPP_INCLUDE_DIRS})
gtest_discover_tests(${target})
--
2.21.GIT

View File

@ -1,12 +1,15 @@
{ fetchurl, stdenv, squashfsTools, xorg, alsaLib, makeWrapper, openssl, freetype
, glib, pango, cairo, atk, gdk_pixbuf, gtk2, cups, nspr, nss, libpng
, libgcrypt, systemd, fontconfig, dbus, expat, ffmpeg, curl, zlib, gnome3
, libgcrypt, systemd, fontconfig, dbus, expat, ffmpeg_3, curl, zlib, gnome3
, at-spi2-atk
}:
let
# TO UPDATE: just execute the ./update.sh script (won't do anything if there is no update)
# "rev" decides what is actually being downloaded
# 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.0.96.181.gf6bc1b6b-12";
# 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'
@ -26,7 +29,7 @@ let
curl
dbus
expat
ffmpeg
ffmpeg_3
fontconfig
freetype
gdk_pixbuf
@ -118,8 +121,8 @@ stdenv.mkDerivation {
ln -s ${nspr.out}/lib/libnspr4.so $libdir/libnspr4.so
ln -s ${nspr.out}/lib/libplc4.so $libdir/libplc4.so
ln -s ${ffmpeg.out}/lib/libavcodec.so.56 $libdir/libavcodec-ffmpeg.so.56
ln -s ${ffmpeg.out}/lib/libavformat.so.56 $libdir/libavformat-ffmpeg.so.56
ln -s ${ffmpeg_3.out}/lib/libavcodec.so* $libdir
ln -s ${ffmpeg_3.out}/lib/libavformat.so* $libdir
rpath="$out/share/spotify:$libdir"
@ -154,7 +157,7 @@ stdenv.mkDerivation {
homepage = https://www.spotify.com/;
description = "Play music from the Spotify music service";
license = licenses.unfree;
maintainers = with maintainers; [ eelco ftrvxmtrx sheenobu mudri ];
maintainers = with maintainers; [ eelco ftrvxmtrx sheenobu mudri timokau ];
platforms = [ "x86_64-linux" ];
};
}

View File

@ -44,7 +44,7 @@ python2.pkgs.buildPythonApplication rec {
meta = with stdenv.lib; {
homepage = https://github.com/whipper-team/whipper;
description = "A CD ripper aiming for accuracy over speed";
maintainers = with maintainers; [ rycee jgeerds ];
maintainers = with maintainers; [ rycee ];
license = licenses.gpl3Plus;
platforms = platforms.linux;
};

View File

@ -3,12 +3,12 @@
, libGLU, lv2, gtk2, cairo, pango, fftwFloat, zita-convolver }:
stdenv.mkDerivation rec {
version = "20190105";
version = "20190206";
name = "x42-plugins-${version}";
src = fetchurl {
url = "https://gareus.org/misc/x42-plugins/${name}.tar.xz";
sha256 = "1bb7k3ly4qa05zgkbpm7d3x9cjch1fklgh279m6hp0ac3hhncdxp";
sha256 = "0rsp8lm8zr20l410whr98d61401rkphgpl8llbn5p2wsiw0q9aqd";
};
nativeBuildInputs = [ pkgconfig ];

View File

@ -1,6 +1,6 @@
{ stdenv, fetchFromGitHub, pam, pkgconfig, autoconf, automake, libtool, libxcb
, glib, libXdmcp, itstool, intltool, libxklavier, libgcrypt, audit, busybox
, polkit, accountsservice, gtk-doc, gnome3, gobject-introspection, vala
, polkit, accountsservice, gtk-doc, gnome3, gobject-introspection, vala, fetchpatch
, withQt4 ? false, qt4
, withQt5 ? false, qtbase
}:
@ -11,8 +11,6 @@ stdenv.mkDerivation rec {
pname = "lightdm";
version = "1.28.0";
name = "${pname}-${version}";
outputs = [ "out" "dev" ];
src = fetchFromGitHub {
@ -40,16 +38,22 @@ stdenv.mkDerivation rec {
accountsservice
audit
glib
libXdmcp
libgcrypt
libxcb
libXdmcp
libxklavier
pam
polkit
] ++ optional withQt4 qt4
++ optional withQt5 qtbase;
patches = [ ./run-dir.patch ];
patches = [
# Adds option to disable writing dmrc files
(fetchpatch {
url = "https://src.fedoraproject.org/rpms/lightdm/raw/4cf0d2bed8d1c68970b0322ccd5dbbbb7a0b12bc/f/lightdm-1.25.1-disable_dmrc.patch";
sha256 = "06f7iabagrsiws2l75sx2jyljknr9js7ydn151p3qfi104d1541n";
})
];
preConfigure = "NOCONFIGURE=1 ./autogen.sh";
@ -58,11 +62,12 @@ stdenv.mkDerivation rec {
"--sysconfdir=/etc"
"--disable-tests"
"--disable-static"
"--disable-dmrc"
] ++ optional withQt4 "--enable-liblightdm-qt"
++ optional withQt5 "--enable-liblightdm-qt5";
installFlags = [
"sysconfdir=\${out}/etc"
"sysconfdir=${placeholder ''out''}/etc"
"localstatedir=\${TMPDIR}"
];
@ -76,7 +81,7 @@ stdenv.mkDerivation rec {
meta = {
homepage = https://github.com/CanonicalLtd/lightdm;
description = "A cross-desktop display manager.";
description = "A cross-desktop display manager";
platforms = platforms.linux;
license = licenses.gpl3;
maintainers = with maintainers; [ ocharles worldofpeace ];

View File

@ -1,7 +1,7 @@
{ stdenv, fetchurl, lightdm, pkgconfig, intltool
, hicolor-icon-theme, makeWrapper
, useGTK2 ? false, gtk2, gtk3 # gtk3 seems better supported
, exo
, exo, at-spi2-core
}:
#ToDo: bad icons with gtk2;
@ -26,13 +26,18 @@ stdenv.mkDerivation rec {
configureFlags = [
"--localstatedir=/var"
"--sysconfdir=/etc"
"--disable-indicator-services-command"
] ++ stdenv.lib.optional useGTK2 "--with-gtk2";
preConfigure = ''
configureFlagsArray+=( --enable-at-spi-command="${at-spi2-core}/libexec/at-spi-bus-launcher --launch-immediately" )
'';
NIX_CFLAGS_COMPILE = [ "-Wno-error=deprecated-declarations" ];
installFlags = [
"localstatedir=\${TMPDIR}"
"sysconfdir=\${out}/etc"
"sysconfdir=${placeholder "out"}/etc"
];
postInstall = ''

View File

@ -1,13 +0,0 @@
diff --git a/data/lightdm.conf b/data/lightdm.conf
index 16b80f7..b3af435 100644
--- a/data/lightdm.conf
+++ b/data/lightdm.conf
@@ -28,7 +28,7 @@
#guest-account-script=guest-account
#logind-check-graphical=false
#log-directory=/var/log/lightdm
-#run-directory=/var/run/lightdm
+run-directory=/run/lightdm
#cache-directory=/var/cache/lightdm
#sessions-directory=/usr/share/lightdm/sessions:/usr/share/xsessions:/usr/share/wayland-sessions
#remote-sessions-directory=/usr/share/lightdm/remote-sessions

View File

@ -13,14 +13,14 @@ let
sha256Hash = "0smh3d3v8n0isxg7fkls20622gp52f58i2b6wa4a0g8wnvmd6mw2";
};
betaVersion = {
version = "3.4.0.15"; # "Android Studio 3.4 RC 1"
build = "183.5341121";
sha256Hash = "0s7wadnzbrd031ls43b5nbh1nx0paj74bxy2yiczr4qb9n562zzy";
version = "3.4.0.16"; # "Android Studio 3.4 RC 2"
build = "183.5370308";
sha256Hash = "0d7d6n7n1zzhxpdykbwwbrw139mqxkp20d4l0570pk7975p1s2q9";
};
latestVersion = { # canary & dev
version = "3.5.0.5"; # "Android Studio 3.5 Canary 6"
build = "183.5326993";
sha256Hash = "06d43qw0p6zpy6vmriiihql5vgc6c4darplc2148y616hx0whrql";
version = "3.5.0.6"; # "Android Studio 3.5 Canary 7"
build = "183.5346365";
sha256Hash = "0dfkhzsxabrv8cwgyv3gicpglgpccmi1ig5shlhp6a006awgfyj0";
};
in rec {
# Old alias (TODO @primeos: Remove after 19.03 is branched off):

View File

@ -49,6 +49,6 @@ stdenv.mkDerivation rec {
homepage = https://github.com/cask/cask;
license = licenses.gpl3Plus;
platforms = platforms.all;
maintainers = [ maintainers.jgeerds ];
maintainers = [ ];
};
}

View File

@ -2,11 +2,11 @@
stdenv.mkDerivation rec {
name = "focuswriter-${version}";
version = "1.7.1";
version = "1.7.2";
src = fetchurl {
url = "https://gottcode.org/focuswriter/focuswriter-${version}-src.tar.bz2";
sha256 = "0ny0bri9yp6wcsj9s8vd0j4mzx44yw57axjx5piv44q2jgsgz401";
sha256 = "1qsfcrscm3s0h7wcl6qn8zi0irr70zdacjxsdk73kpk1dhl2j85k";
};
nativeBuildInputs = [ pkgconfig qmake qttools ];

View File

@ -175,7 +175,7 @@ let
providing you almost everything you need for your comfortable
and productive development!
'';
maintainers = with maintainers; [ jgeerds ];
maintainers = with maintainers; [ ];
platforms = platforms.linux;
};
}).override {

View File

@ -1,4 +1,4 @@
{ stdenv, fetchurl, pkgconfig, libbsd, ncurses }:
{ stdenv, fetchurl, pkgconfig, libbsd, ncurses, buildPackages }:
stdenv.mkDerivation rec {
name = "mg-${version}";
@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
enableParallelBuilding = true;
makeFlags = [ "PKG_CONFIG=${pkgconfig}/bin/pkg-config" ];
makeFlags = [ "PKG_CONFIG=${buildPackages.pkgconfig}/bin/pkg-config" ];
installPhase = ''
install -m 555 -Dt $out/bin mg

View File

@ -49,7 +49,6 @@ in stdenv.mkDerivation rec {
description = "A small, user-friendly console text editor";
license = licenses.gpl3Plus;
maintainers = with maintainers; [
jgeerds
joachifm
];
platforms = platforms.all;

View File

@ -1,8 +1,9 @@
{ stdenv, fetchurl, makeWrapper, makeDesktopItem
, jdk, perl, python, unzip, which
{ stdenv, fetchurl, makeWrapper, makeDesktopItem, which, unzip, libicns, imagemagick
, jdk, perl, python
}:
let
version = "10.0";
desktopItem = makeDesktopItem {
name = "netbeans";
exec = "netbeans";
@ -10,13 +11,14 @@ let
desktopName = "Netbeans IDE";
genericName = "Integrated Development Environment";
categories = "Application;Development;";
icon = "netbeans";
};
in
stdenv.mkDerivation {
name = "netbeans-8.2";
name = "netbeans-${version}";
src = fetchurl {
url = https://download.netbeans.org/netbeans/8.2/final/zip/netbeans-8.2-201609300101.zip;
sha256 = "0j092qw7aqfc9vpnvr3ix1ii94p4ik6frcnw708iyv4s9crqi65d";
url = "mirror://apache/incubator/netbeans/incubating-netbeans/incubating-${version}/incubating-netbeans-${version}-bin.zip";
sha512 = "ba83575f42c1d5515e2a5336a621bc2b4087b2e0bcacb6edb76f376f8272555609bdd4eefde8beae8ffc6c1a7db2fb721b844638ce27933c3dd78f71cbb41ad8";
};
buildCommand = ''
@ -26,23 +28,38 @@ stdenv.mkDerivation {
# Copy to installation directory and create a wrapper capable of starting
# it.
mkdir -p $out/bin
mkdir -pv $out/bin
cp -a netbeans $out
makeWrapper $out/netbeans/bin/netbeans $out/bin/netbeans \
--prefix PATH : ${stdenv.lib.makeBinPath [ jdk which ]} \
--prefix JAVA_HOME : ${jdk.home} \
--add-flags "--jdkhome ${jdk.home}"
# Extract pngs from the Apple icon image and create
# the missing ones from the 1024x1024 image.
icns2png --extract $out/netbeans/nb/netbeans.icns
for size in 16 24 32 48 64 128 256 512 1024; do
mkdir -pv $out/share/icons/hicolor/"$size"x"$size"/apps
if [ -e netbeans_"$size"x"$size"x32.png ]
then
mv netbeans_"$size"x"$size"x32.png $out/share/icons/hicolor/"$size"x"$size"/apps/netbeans.png
else
convert -resize "$size"x"$size" netbeans_1024x1024x32.png $out/share/icons/hicolor/"$size"x"$size"/apps/netbeans.png
fi
done;
# Create desktop item, so we can pick it from the KDE/GNOME menu
mkdir -p $out/share/applications
cp ${desktopItem}/share/applications/* $out/share/applications
mkdir -pv $out/share/applications
ln -s ${desktopItem}/share/applications/* $out/share/applications
'';
buildInputs = [ makeWrapper perl python unzip ];
buildInputs = [ makeWrapper perl python unzip libicns imagemagick ];
meta = {
description = "An integrated development environment for Java, C, C++ and PHP";
maintainers = [ stdenv.lib.maintainers.sander ];
homepage = "https://netbeans.org/";
license = stdenv.lib.licenses.asl20;
maintainers = with stdenv.lib.maintainers; [ sander rszibele ];
platforms = stdenv.lib.platforms.unix;
};
}

View File

@ -4,13 +4,13 @@
stdenv.mkDerivation rec {
pname = "quilter";
version = "1.7.5";
version = "1.8.1";
src = fetchFromGitHub {
owner = "lainsce";
repo = pname;
rev = version;
sha256 = "0czf6rm908pz6zwiaq2phci923q8xa8x7q7kvdk6s3km4i1rrgkn";
sha256 = "0i8rvvc5g74bgfjgsmmgpj42xmhjaz14jjzl9s5nzwpy1fn7vv0p";
};
nativeBuildInputs = [

View File

@ -12,8 +12,8 @@ in
} {};
sublime3 = common {
buildVersion = "3176";
x32sha256 = "08asz13888d4ddsz81cfk7k3319dabzz1kgbnshw0756pvyrvr23";
x64sha256 = "0cppkh5jx2g8f6jyy1bs81fpb90l0kn5m7y3skackpjdxhd7rwbl";
buildVersion = "3200";
x32sha256 = "01krmbji8z62x4kl1hf3c1nfj4c4n4xmg1df62ljiwhkcfm74izr";
x64sha256 = "1gagc50fqb0d2bszi8m5spzb64shkaylvrwl6fxah55xcmy2kmdr";
} {};
}

View File

@ -1,23 +1,23 @@
{ stdenv, lib, fetchFromGitHub, cmake, pkgconfig
, qt5, libsForQt5, hunspell
, withLua ? true, lua
, withPython ? true, python }:
, withPython ? true, python3 }:
stdenv.mkDerivation rec {
name = "texworks-${version}";
version = "0.6.2";
version = "0.6.3";
src = fetchFromGitHub {
owner = "TeXworks";
repo = "texworks";
rev = "release-${version}";
sha256 = "0kj4pq5h4vs2wwg6cazxjlv83x6cwdfsa76winfkdddaqzpdklsj";
sha256 = "1ljfl784z7dmh6f1qacqhc6qhcaqdzw033yswbvpvkkck0lsk2mr";
};
nativeBuildInputs = [ cmake pkgconfig ];
buildInputs = [ qt5.qtscript libsForQt5.poppler hunspell lua python ]
buildInputs = [ qt5.qtscript libsForQt5.poppler hunspell ]
++ lib.optional withLua lua
++ lib.optional withPython python;
++ lib.optional withPython python3;
cmakeFlags = lib.optional withLua "-DWITH_LUA=ON"
++ lib.optional withPython "-DWITH_PYTHON=ON";

View File

@ -2,14 +2,14 @@
, python, qtbase, qttools }:
stdenv.mkDerivation rec {
name = "tiled-${version}";
version = "1.2.2";
pname = "tiled";
version = "1.2.3";
src = fetchFromGitHub {
owner = "bjorn";
repo = "tiled";
repo = pname;
rev = "v${version}";
sha256 = "1yqw10izqhsnqwgxvws2n4ymcwawbh86srv7qmjwbsay752pfgfh";
sha256 = "1zsfhw539zwyf5qfnirzkkgy5bmrrs2cry4gimrhpky9fjlaa9h8";
};
nativeBuildInputs = [ pkgconfig qmake ];

View File

@ -18,16 +18,16 @@ let
}.${system};
sha256 = {
"i686-linux" = "0iqsbny25946fyvrm8qwgbd1xmwb8psg2n2c4wdk8x52259pxfvq";
"x86_64-linux" = "0v1gbaqlaismrykl8igks5dl9bh5xh56v5aw8mffg8wxdr0alrvv";
"x86_64-darwin" = "0awq1jgqbpirrhs09x7hn4m96idb4lazm053nf5jf5yrx8pq1l9i";
"i686-linux" = "1qll0hyqyn3vb0v35h9y8rk4l3r6zzc5bkra6pb23bnr4bna4y80";
"x86_64-linux" = "1sfvv4g7kmvabqxasil41gasr7hsmgf8wwc4dl1940pb7x19fllq";
"x86_64-darwin" = "0gjdppr59pyb2wawvf7yyk7357a5naxga74zf9gc7d9s1fz78hls";
}.${system};
archive_fmt = if system == "x86_64-darwin" then "zip" else "tar.gz";
in
stdenv.mkDerivation rec {
name = "vscode-${version}";
version = "1.32.1";
version = "1.32.3";
src = fetchurl {
name = "VSCode_${version}_${plat}.${archive_fmt}";

View File

@ -1,94 +1,27 @@
{ stdenv, fetchurl, fetchpatch, gdal, cmake, qt4, flex, bison, proj, geos, xlibsWrapper, sqlite, gsl
, qwt, fcgi, python2Packages, libspatialindex, libspatialite, qscintilla, postgresql, makeWrapper
, qjson, qca2, txt2tags, openssl, darwin, pkgconfig
, withGrass ? true, grass, saga, IOKit, ApplicationServices
{ stdenv, lib, makeWrapper, symlinkJoin
, qgis-unwrapped, extraPythonPackages ? (ps: [ ])
}:
with lib;
symlinkJoin rec {
inherit (qgis-unwrapped) version;
name = "qgis-${version}";
stdenv.mkDerivation rec {
name = "qgis-2.18.28";
paths = [ qgis-unwrapped ];
buildInputs = [ gdal qt4 flex openssl bison proj geos xlibsWrapper sqlite gsl qwt qscintilla
fcgi libspatialindex libspatialite postgresql qjson qca2 txt2tags pkgconfig
saga ]
++
(stdenv.lib.optionals stdenv.isDarwin [IOKit ApplicationServices])
++
(stdenv.lib.optional withGrass grass) ++
(stdenv.lib.optional (stdenv.isDarwin && withGrass) darwin.apple_sdk.libs.utmp) ++
(with python2Packages; [ jinja2 numpy psycopg2 pygments requests python2Packages.qscintilla sip ]);
nativeBuildInputs = [ makeWrapper qgis-unwrapped.python3Packages.wrapPython ];
nativeBuildInputs = [ cmake makeWrapper pkgconfig ];
# extend to add to the python environment of QGIS without rebuilding QGIS application.
pythonInputs = qgis-unwrapped.pythonBuildInputs ++ (extraPythonPackages qgis-unwrapped.python3Packages);
# `make -f src/providers/wms/CMakeFiles/wmsprovider_a.dir/build.make src/providers/wms/CMakeFiles/wmsprovider_a.dir/qgswmssourceselect.cpp.o`:
# fatal error: ui_qgsdelimitedtextsourceselectbase.h: No such file or directory
enableParallelBuilding = false;
postBuild = ''
# unpackPhase
preConfigure = ''
NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE $(pkg-config --cflags libspatialindex)"
buildPythonPath "$pythonInputs"
wrapProgram $out/bin/qgis \
--prefix PATH : $program_PATH \
--set PYTHONPATH $program_PYTHONPATH
'';
# To handle the lack of 'local' RPATH; required, as they call one of
# their built binaries requiring their libs, in the build process.
preBuild = ''
export LD_LIBRARY_PATH=`pwd`/output/lib:${stdenv.lib.makeLibraryPath [ openssl ]}:$LD_LIBRARY_PATH
'';
src = fetchurl {
url = "https://qgis.org/downloads/${name}.tar.bz2";
sha256 = "18pijqls1isd2bpg0mkrw07jqvdfaiwwb9mvz7p2xrgqcjx7dxsq";
};
patches = [
# already merged upstream in QGIS-3.*, but needs to be backported to QGIS-2
(fetchpatch {
url = "https://patch-diff.githubusercontent.com/raw/qgis/QGIS/pull/7263.patch";
name = "Ensure_qgis.db_is_writable_when_copied_from_RO_source";
sha256 = "19wr2kz0x8x6p2n0ylzd4lqrdmbkxyxr0zpwf2vl9hdp92rdjxbv";
})
];
# CMAKE_FIND_FRAMEWORK=never stops the installer choosing system
# installed frameworks
# QGIS_MACAPP_BUNDLE=0 stops the installer copying the Qt binaries into the
# installation which causes havoc
# Building RelWithDebInfo allows QGIS_DEBUG to print debugging information
cmakeFlags = stdenv.lib.optional withGrass "-DGRASS_PREFIX7=${grass}/${grass.name}"
++ stdenv.lib.optional stdenv.isDarwin
(["-DCMAKE_FIND_FRAMEWORK=never"]
++ ["-DQGIS_MACAPP_BUNDLE=0"]);
# ++ ["-DCMAKE_BUILD_TYPE=RelWithDebInfo"];
postInstall =
(stdenv.lib.optionalString stdenv.isLinux ''
wrapProgram $out/bin/qgis \
--set PYTHONPATH $PYTHONPATH \
--prefix LD_LIBRARY_PATH : ${stdenv.lib.makeLibraryPath [ openssl ]}
'') +
(stdenv.lib.optionalString stdenv.isDarwin ''
# Necessary for QGIS to find the correct default GRASS path
# Plugins look for gdal tools like deminfo on the PATH
${stdenv.lib.optionalString withGrass "ln -sf ${grass} $out/QGIS.app/Contents/MacOS/grass"}
# Necessary for QGIS to find the right SAGA installation
ln -sf ${saga}/bin/saga_cmd $out/QGIS.app/Contents/MacOS/bin/saga_cmd
for file in $(find $out -type f -name "QGIS"); do
wrapProgram "$file" \
--prefix DYLD_LIBRARY_PATH : "${qwt}/lib" \
--prefix DYLD_LIBRARY_PATH : "${qscintilla}/lib" \
--prefix PATH : "${gdal}/bin" \
${stdenv.lib.optionalString withGrass "--prefix PATH : ${grass}/bin"} \
--set PYTHONPATH $PYTHONPATH
done
mkdir -p $out/bin
ln -s $out/QGIS.app/Contents/MacOS/QGIS $out/bin/qgis
'');
meta = {
description = "User friendly Open Source Geographic Information System";
homepage = http://www.qgis.org;
license = stdenv.lib.licenses.gpl2Plus;
platforms = with stdenv.lib.platforms; unix;
maintainers = with stdenv.lib.maintainers; [mpickering];
};
meta = qgis-unwrapped.meta;
}

View File

@ -0,0 +1,54 @@
{ stdenv, lib, fetchurl, cmake, ninja, flex, bison, proj, geos, xlibsWrapper, sqlite, gsl
, qwt, fcgi, python3Packages, libspatialindex, libspatialite, postgresql
, txt2tags, openssl, libzip, hdf5, netcdf
, qtbase, qtwebkit, qtsensors, qca-qt5, qtkeychain, qscintilla, qtserialport, qtxmlpatterns
, withGrass ? true, grass
}:
with lib;
let
pythonBuildInputs = with python3Packages;
[ qscintilla-qt5 gdal jinja2 numpy psycopg2
chardet dateutil pyyaml pytz requests urllib3 pygments pyqt5 sip owslib six ];
in stdenv.mkDerivation rec {
version = "3.4.5";
name = "qgis-unwrapped-${version}";
src = fetchurl {
url = "http://qgis.org/downloads/qgis-${version}.tar.bz2";
sha256 = "0myw1jgz8v8wncmrjsszn9ixylx84hafn0281c4hqhz623n3lxgx";
};
passthru = {
inherit pythonBuildInputs;
inherit python3Packages;
};
buildInputs = [ openssl proj geos xlibsWrapper sqlite gsl qwt
fcgi libspatialindex libspatialite postgresql txt2tags libzip hdf5 netcdf
qtbase qtwebkit qtsensors qca-qt5 qtkeychain qscintilla qtserialport qtxmlpatterns] ++
(stdenv.lib.optional withGrass grass) ++ pythonBuildInputs;
nativeBuildInputs = [ cmake flex bison ninja ];
# Force this pyqt_sip_dir variable to point to the sip dir in PyQt5
#
# TODO: Correct PyQt5 to provide the expected directory and fix
# build to use PYQT5_SIP_DIR consistently.
postPatch = ''
substituteInPlace cmake/FindPyQt5.py \
--replace 'pyqtcfg.pyqt_sip_dir' '"${python3Packages.pyqt5}/share/sip/PyQt5"'
'';
cmakeFlags = [ "-DCMAKE_SKIP_BUILD_RPATH=OFF"
"-DPYQT5_SIP_DIR=${python3Packages.pyqt5}/share/sip/PyQt5"
"-DQSCI_SIP_DIR=${python3Packages.qscintilla-qt5}/share/sip/PyQt5" ] ++
stdenv.lib.optional withGrass "-DGRASS_PREFIX7=${grass}/${grass.name}";
meta = {
description = "A Free and Open Source Geographic Information System";
homepage = http://www.qgis.org;
license = stdenv.lib.licenses.gpl2Plus;
platforms = with stdenv.lib.platforms; linux;
maintainers = with stdenv.lib.maintainers; [ lsix ];
};
}

View File

@ -100,7 +100,6 @@ stdenv.mkDerivation rec {
description = "A software suite to create, edit, compose, or convert bitmap images";
platforms = platforms.linux ++ platforms.darwin;
maintainers = with maintainers; [ the-kenny ];
broken = ghostscript != null; # https://github.com/NixOS/nixpkgs/issues/55118
license = licenses.asl20;
};
}

View File

@ -1,15 +1,15 @@
{ stdenv, makeDesktopItem, fetchurl, unzip
, gdk_pixbuf, glib, gtk3, atk, at-spi2-atk, pango, cairo, freetype, fontconfig, dbus, nss, nspr, alsaLib, cups, expat, udev, gnome3
, xorg, mozjpeg, makeWrapper, gsettings-desktop-schemas
, xorg, mozjpeg, makeWrapper, wrapGAppsHook, hicolor-icon-theme, libuuid
}:
stdenv.mkDerivation rec {
name = "avocode-${version}";
version = "3.6.2";
version = "3.6.12";
src = fetchurl {
url = "https://media.avocode.com/download/avocode-app/${version}/avocode-${version}-linux.zip";
sha256 = "1slxxr3j0djqdnbk645sriwl99jp9imndyxiwd8aqggmmlp145a2";
sha256 = "1qsxwqnkqfp4b9sgmhlv6wjl4mirhnx4bjj2vaq8iyz94pz637c8";
};
libPath = stdenv.lib.makeLibraryPath (with xorg; [
@ -42,6 +42,7 @@ stdenv.mkDerivation rec {
libXrender
libXtst
libXScrnSaver
libuuid
]);
desktopItem = makeDesktopItem {
@ -54,8 +55,8 @@ stdenv.mkDerivation rec {
comment = "The bridge between designers and developers";
};
nativeBuildInputs = [makeWrapper];
buildInputs = [ unzip gtk3 gsettings-desktop-schemas];
nativeBuildInputs = [makeWrapper wrapGAppsHook];
buildInputs = [ unzip gtk3 gnome3.adwaita-icon-theme hicolor-icon-theme ];
# src is producing multiple folder on unzip so we must
# override unpackCmd to extract it into newly created folder
@ -84,11 +85,7 @@ stdenv.mkDerivation rec {
postFixup = ''
patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" $out/avocode
for file in $(find $out -type f \( -perm /0111 -o -name \*.so\* \) ); do
patchelf --set-rpath ${libPath}:$out/ $file
done
for file in $out/bin/*; do
wrapProgram $file \
--prefix XDG_DATA_DIRS : "$XDG_ICON_DIRS:${gtk3.out}/share:${gsettings-desktop-schemas}/share:$out/share:$GSETTINGS_SCHEMAS_PATH"
patchelf --set-rpath ${libPath}:$out/ $file || true
done
'';

View File

@ -7,12 +7,12 @@
}:
stdenv.mkDerivation rec {
version = "2.6.0";
version = "2.6.1";
name = "darktable-${version}";
src = fetchurl {
url = "https://github.com/darktable-org/darktable/releases/download/release-${version}/darktable-${version}.tar.xz";
sha256 = "0y04cx0a0rwdclmn16f5y0z2vnm7yxly291gzjgdhcn59a77sga8";
sha256 = "09ihbj0602spgc5lfbskf9am38n03gam2r8v3kj4dyfgxqr37ib3";
};
nativeBuildInputs = [ cmake ninja llvm pkgconfig intltool perl desktop-file-utils wrapGAppsHook ];

View File

@ -11,25 +11,34 @@
, libmicrohttpd
, giflib
, miniupnpc
, extra-cmake-modules
, libvpx
}:
stdenv.mkDerivation rec {
name = "drawpile-${version}";
version = "2.0.11";
version = "2.1.3";
src = fetchurl {
url = "https://drawpile.net/files/src/drawpile-${version}.tar.gz";
sha256 = "0h018rxhc0lwpqwmlihalz634nd0xaafk4p2b782djjd87irnjpk";
sha256 = "0fngj5hfinj66xpij2h3ag79mgmqcfrjpwynxdbjr5brch25ldwj";
};
nativeBuildInputs = [
extra-cmake-modules
];
buildInputs = [
# common deps:
cmake
qtbase qtsvg qtmultimedia qttools
karchive
# optional deps:
# server-specific:
libsodium # ext-auth support
libmicrohttpd # HTTP admin api
# client-specific:
giflib # gif animation export support
miniupnpc # automatic port forwarding
kdnssd # local server discovery with Zeroconf
libvpx # WebM video export
];
configurePhase = "cmake -DCMAKE_INSTALL_PREFIX=$out .";

View File

@ -2,13 +2,13 @@
stdenv.mkDerivation rec {
pname = "fondo";
version = "1.2.1";
version = "1.2.2";
src = fetchFromGitHub {
owner = "calo001";
repo = pname;
rev = version;
sha256 = "0xczqkkq54gjay7wdl8mpil7klfrpvcw2a0n1brq7qrfhsmhc7pc";
sha256 = "0mh3s2726zf3va6nj7kj2nbmq5q65xrbnsllss3sqf8a838zqfn6";
};
nativeBuildInputs = [

View File

@ -1,13 +1,13 @@
{ stdenv, fetchurl, makeWrapper, pkgconfig, zlib, freetype, cairo, lua5, texlive, ghostscript
, libjpeg, qtbase
, libjpeg, libpng, qtbase
}:
stdenv.mkDerivation rec {
name = "ipe-7.2.10";
name = "ipe-7.2.11";
src = fetchurl {
url = "https://dl.bintray.com/otfried/generic/ipe/7.2/${name}-src.tar.gz";
sha256 = "0gw45d0albrsa0pbc5g4w3fmmjfxrdbpzyc7723ncbhncdyda01h";
sha256 = "09d71fdpiz359mcnb57460w2mcfizvlnidd6g1k4c3v6rglwlbd2";
};
sourceRoot = "${name}/src";
@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
LUA_PACKAGE = "lua";
buildInputs = [
libjpeg zlib qtbase freetype cairo lua5 texlive ghostscript
libjpeg libpng zlib qtbase freetype cairo lua5 texlive ghostscript
];
nativeBuildInputs = [ makeWrapper pkgconfig ];

View File

@ -1,12 +1,12 @@
{ stdenv, fetchurl, pkgconfig, gtk2, imlib2, file, lcms2, libexif } :
stdenv.mkDerivation (rec {
version = "2.3.1";
version = "2.3.2";
name = "qiv-${version}";
src = fetchurl {
url = "https://spiegl.de/qiv/download/${name}.tgz";
sha256 = "1rlf5h67vhj7n1y7jqkm9k115nfnzpwngj3kzqsi2lg676srclv7";
sha256 = "1mc0f2nnas4q0d7zc9r6g4z93i32xlx0p9hl4fn5zkyml24a1q28";
};
nativeBuildInputs = [ pkgconfig ];
@ -15,6 +15,7 @@ stdenv.mkDerivation (rec {
preBuild=''
substituteInPlace Makefile --replace /usr/local "$out"
substituteInPlace Makefile --replace /man/ /share/man/
substituteInPlace Makefile --replace /share/share/ /share/
'';
meta = with stdenv.lib; {

View File

@ -0,0 +1,53 @@
{ stdenv, fetchurl, rpmextract }:
stdenv.mkDerivation rec {
name = "libsane-dsseries-${version}";
version = "1.0.5-1";
src = fetchurl {
url = "https://download.brother.com/welcome/dlf100974/${name}.x86_64.rpm";
sha256 = "1wfdbfbf51cc7njzikdg48kwpnpc0pg5s6p0s0y3z0q7y59x2wbq";
};
nativeBuildInputs = [ rpmextract ];
unpackCmd = ''
mkdir ${name} && pushd ${name}
rpmextract $curSrc
popd
'';
patchPhase = ''
substituteInPlace etc/udev/rules.d/50-Brother_DSScanner.rules \
--replace 'GROUP="users"' 'GROUP="scanner", ENV{libsane_matched}="yes"'
mkdir -p etc/sane.d/dll.d
echo "dsseries" > etc/sane.d/dll.d/dsseries.conf
'';
installPhase = ''
mkdir -p $out
cp -dr etc $out
cp -dr usr/lib64 $out/lib
'';
preFixup = ''
for f in `find $out/lib/sane/ -type f`; do
# Make it possible to find libstdc++.so.6
patchelf --set-rpath ${stdenv.cc.cc.lib}/lib:$out/lib/sane $f
# Horrible kludge: The driver hardcodes /usr/lib/sane/ as a dlopen path.
# We can directly modify the binary to force a relative lookup instead.
# The new path is NULL-padded to the same length as the original path.
sed -i "s|/usr/lib/sane/%s|%s\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00|g" $f
done
'';
meta = {
description = "Brother DSSeries SANE backend driver";
homepage = http://www.brother.com;
platforms = stdenv.lib.platforms.linux;
license = stdenv.lib.licenses.unfree;
maintainers = with stdenv.lib.maintainers; [ callahad ];
};
}

View File

@ -108,6 +108,7 @@ let
kdf = callPackage ./kdf.nix {};
kdialog = callPackage ./kdialog.nix {};
keditbookmarks = callPackage ./keditbookmarks.nix {};
kfind = callPackage ./kfind.nix {};
kget = callPackage ./kget.nix {};
kgpg = callPackage ./kgpg.nix {};
khelpcenter = callPackage ./khelpcenter.nix {};

View File

@ -0,0 +1,17 @@
{
mkDerivation, lib,
extra-cmake-modules, kdoctools,
karchive, kcoreaddons, kfilemetadata, ktextwidgets, kwidgetsaddons, kio
}:
mkDerivation {
name = "kfind";
meta = {
license = with lib.licenses; [ gpl2 ];
maintainers = [ lib.maintainers.iblech ];
};
nativeBuildInputs = [ extra-cmake-modules kdoctools ];
buildInputs = [
karchive kcoreaddons kfilemetadata ktextwidgets kwidgetsaddons kio
];
}

View File

@ -0,0 +1,32 @@
{ stdenv, fetchurl, pkgconfig, intltool
, libxml2, desktop-file-utils, wrapGAppsHook, evolution-data-server, gtkspell3, gpgme, libcryptui
, glib, gtk3, gtksourceview3, sqlite, cairo, atk, gcr, gnome3 }:
stdenv.mkDerivation rec {
pname = "almanah";
version = "0.11.1";
src = fetchurl {
url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
sha256 = "1g0fyykq8bs3x1xqc0l0bk9zazcrxja784m68myymv1zfqqnp9h0";
};
nativeBuildInputs = [ pkgconfig intltool libxml2 desktop-file-utils wrapGAppsHook ];
buildInputs = [ glib gtk3 gtksourceview3 sqlite cairo atk gcr gtkspell3 evolution-data-server gnome3.evolution gpgme libcryptui ];
passthru = {
updateScript = gnome3.updateScript {
packageName = pname;
versionPolicy = "none"; # it is quite odd
};
};
meta = with stdenv.lib; {
description = "Small GTK application to allow to keep a diary of your life";
homepage = https://wiki.gnome.org/Apps/Almanah_Diary;
license = licenses.gpl3Plus;
platforms = platforms.unix;
maintainers = gnome3.maintainers;
};
}

View File

@ -1,4 +1,4 @@
{ config, lib, stdenv, fetchurl
{ config, lib, stdenv, fetchurl, CoreAudio
, enableAlsa ? true, alsaLib ? null
, enableLibao ? true, libao ? null
, enableLame ? config.sox.enableLame or false, lame ? null
@ -32,7 +32,8 @@ stdenv.mkDerivation rec {
optional enablePNG libpng ++
optional enableLibsndfile libsndfile ++
optionals enableAMR [ amrnb amrwb ] ++
optional enableLibpulseaudio libpulseaudio;
optional enableLibpulseaudio libpulseaudio ++
optional (stdenv.isDarwin) CoreAudio;
meta = {
description = "Sample Rate Converter for audio";

View File

@ -1,6 +1,6 @@
{ stdenv, fetchFromGitHub, pythonPackages
, pkgconfig, autoreconfHook, rsync
, swig, qt4, fcgi
, swig, qt48Full, fcgi
, bitcoin, procps, utillinux
}:
let
@ -16,7 +16,6 @@ in buildPythonApplication {
owner = "goatpig";
repo = "BitcoinArmory";
rev = "v${version}";
#sha256 = "023c7q1glhrkn4djz3pf28ckd1na52lsagv4iyfgchqvw7qm7yx2";
sha256 = "0pjk5qx16n3kvs9py62666qkwp2awkgd87by4karbj7vk6p1l14h"; fetchSubmodules = true;
};
@ -25,14 +24,18 @@ in buildPythonApplication {
# FIXME bitcoind doesn't die on shutdown. Need some sort of patch to fix that.
#patches = [ ./shutdown-fix.patch ];
nativeBuildInputs = [ pkgconfig ];
buildInputs = [
nativeBuildInputs = [
autoreconfHook
pkgconfig
swig
qt4
fcgi
pyqt4
qt48Full
rsync # used by silly install script (TODO patch upstream)
];
buildInputs = [
qt48Full
fcgi
];
propagatedBuildInputs = [
pyqt4

View File

@ -0,0 +1,32 @@
{ stdenv, fetchFromGitHub, qtbase, qtserialport, qmake }:
stdenv.mkDerivation rec {
name = "candle-${version}";
version = "1.1";
src = fetchFromGitHub {
owner = "Denvi";
repo = "Candle";
rev = "v${version}";
sha256 = "1gpx08gdz8awbsj6lsczwgffp19z3q0r2fvm72a73qd9az29pmm0";
};
nativeBuildInputs = [ qmake ];
sourceRoot = "source/src";
installPhase = ''
runHook preInstall
install -Dm755 Candle $out/bin/candle
runHook postInstall
'';
buildInputs = [ qtbase qtserialport ];
meta = with stdenv.lib; {
description = "GRBL controller application with G-Code visualizer written in Qt";
homepage = https://github.com/Denvi/Candle;
license = licenses.gpl3;
maintainers = with maintainers; [ matti-kariluoma ];
};
}

View File

@ -7,7 +7,7 @@
stdenv.mkDerivation rec {
name = "dbeaver-ce-${version}";
version = "5.3.5";
version = "6.0.0";
desktopItem = makeDesktopItem {
name = "dbeaver";
@ -30,7 +30,7 @@ stdenv.mkDerivation rec {
src = fetchurl {
url = "https://dbeaver.io/files/${version}/dbeaver-ce-${version}-linux.gtk.x86_64.tar.gz";
sha256 = "0b9a2l8lcw8abilm9a3igbfm52fmix0vzh6kz6kwgmnflp6n9wib";
sha256 = "1v7zvvphkyw7x5ziysk4gs2rpgc4dr108fn4ja80kijs1jmj5dxr";
};
installPhase = ''

View File

@ -1,4 +1,4 @@
{ stdenv, fetchurl, python3Packages, qtbase, makeWrapper, lib }:
{ lib, fetchurl, python3Packages, qtbase, makeWrapper }:
let
@ -7,14 +7,14 @@ let
in
python3Packages.buildPythonApplication rec {
version = "3.3.2";
name = "electron-cash-${version}";
pname = "electron-cash";
version = "3.3.6";
src = fetchurl {
url = "https://electroncash.org/downloads/${version}/win-linux/ElectronCash-${version}.tar.gz";
url = "https://electroncash.org/downloads/${version}/win-linux/Electron-Cash-${version}.tar.gz";
# Verified using official SHA-1 and signature from
# https://github.com/fyookball/keys-n-hashes
sha256 = "4538044cfaa4f87a847635849e0733f32b183ac79abbd2797689c86dc3cb0d53";
sha256 = "ac435f2bf98b9b50c4bdcc9e3fb2ff19d9c66f8cce5df852f3a4727306bb0a84";
};
propagatedBuildInputs = with python3Packages; [
@ -30,6 +30,7 @@ python3Packages.buildPythonApplication rec {
qrcode
requests
tlslite-ng
qdarkstyle
# plugins
keepkey
@ -40,25 +41,18 @@ python3Packages.buildPythonApplication rec {
nativeBuildInputs = [ makeWrapper ];
postPatch = ''
# Remove pyqt5 check
sed -i '/pyqt5/d' setup.py
'';
substituteInPlace contrib/requirements/requirements.txt \
--replace "qdarkstyle<2.6" "qdarkstyle<3"
preBuild = ''
pyrcc5 icons.qrc -o gui/qt/icons_rc.py
# Recording the creation timestamps introduces indeterminism to the build
sed -i '/Created: .*/d' gui/qt/icons_rc.py
substituteInPlace setup.py \
--replace "(share_dir" "(\"share\""
'';
doCheck = false;
postInstall = ''
# These files are installed under $out/homeless-shelter ...
mv $out/${python.sitePackages}/homeless-shelter/.local/share $out
rm -rf $out/${python.sitePackages}/homeless-shelter
substituteInPlace $out/share/applications/electron-cash.desktop \
--replace "Exec=electron-cash %u" "Exec=$out/bin/electron-cash %u"
--replace "Exec=electron-cash" "Exec=$out/bin/electron-cash"
# Please remove this when #44047 is fixed
wrapProgram $out/bin/electron-cash \
@ -70,17 +64,17 @@ python3Packages.buildPythonApplication rec {
$out/bin/electron-cash help >/dev/null
'';
meta = with stdenv.lib; {
description = "A lightweight Bitcoin wallet";
meta = with lib; {
description = "A Bitcoin Cash SPV Wallet";
longDescription = ''
An easy-to-use Bitcoin client featuring wallets generated from
An easy-to-use Bitcoin Cash client featuring wallets generated from
mnemonic seeds (in addition to other, more advanced, wallet options)
and the ability to perform transactions without downloading a copy
of the blockchain.
'';
homepage = https://www.electroncash.org/;
platforms = platforms.linux;
maintainers = with maintainers; [ lassulus ];
maintainers = with maintainers; [ lassulus nyanloutre ];
license = licenses.mit;
};
}

View File

@ -1,17 +1,17 @@
{ stdenv, fetchFromGitHub, meson, ninja, gettext, python3,
pkgconfig, libxml2, json-glib , sqlite, itstool, librsvg,
vala, gnome3, desktop-file-utils, wrapGAppsHook, gobject-introspection
vala, gtk3, gnome3, desktop-file-utils, wrapGAppsHook, gobject-introspection
}:
stdenv.mkDerivation rec {
pname = "font-manager";
version = "0.7.4.2";
version = "0.7.4.3";
src = fetchFromGitHub {
owner = "FontManager";
repo = "master";
rev = version;
sha256 = "15814czap0qg2h9nkcn9fg4i4xxa1lgw1vi6h3hi242qfwc7fh3i";
sha256 = "0v6zn25vxsn3ng31zgsgkb2wwrl0kdv4ikw4ij4yqv49aid3qjd5";
};
nativeBuildInputs = [
@ -25,7 +25,7 @@ stdenv.mkDerivation rec {
vala
gnome3.yelp-tools
wrapGAppsHook
# For setup hook
# For https://github.com/FontManager/master/blob/master/lib/unicode/meson.build
gobject-introspection
];
@ -34,7 +34,7 @@ stdenv.mkDerivation rec {
json-glib
sqlite
librsvg
gnome3.gtk
gtk3
gnome3.adwaita-icon-theme
];
@ -49,7 +49,7 @@ stdenv.mkDerivation rec {
patchShebangs meson_post_install.py
'';
meta = {
meta = with stdenv.lib; {
homepage = https://fontmanager.github.io/;
description = "Simple font management for GTK+ desktop environments";
longDescription = ''
@ -61,9 +61,9 @@ stdenv.mkDerivation rec {
Font Manager is NOT a professional-grade font management solution.
'';
license = stdenv.lib.licenses.gpl3;
license = licenses.gpl3;
repositories.git = https://github.com/FontManager/master;
platforms = stdenv.lib.platforms.unix;
maintainers = [ stdenv.lib.maintainers.romildo ];
platforms = platforms.unix;
maintainers = [ maintainers.romildo ];
};
}

View File

@ -22,13 +22,13 @@ let
in
stdenv.mkDerivation rec {
name = "glava-${version}";
version = "1.5.8";
version = "1.6.3";
src = fetchFromGitHub {
owner = "wacossusca34";
repo = "glava";
rev = "v${version}";
sha256 = "0mps82qw2mhxx8069jvqz1v8n4x7ybrrjv92ij6cms8xi1y8v0fm";
sha256 = "0kqkjxmpqkmgby05lsf6c6iwm45n33jk5qy6gi3zvjx4q4yzal1i";
};
buildInputs = [
@ -45,6 +45,9 @@ in
];
preConfigure = ''
substituteInPlace Makefile \
--replace 'unknown' 'v${version}'
export CFLAGS="-march=native"
'';

View File

@ -1,6 +1,6 @@
{ stdenv, buildGoPackage, fetchFromGitHub }:
{ stdenv, buildGoModule, fetchFromGitHub }:
buildGoPackage rec {
buildGoModule rec {
name = "hugo-${version}";
version = "0.54.0";
@ -13,13 +13,11 @@ buildGoPackage rec {
sha256 = "01grfbr3kpd4qf5cbcmzc6yfq34cm0nkak4pqzgrn46r254y0ymv";
};
goDeps = ./deps.nix;
modSha256 = "01gni3ksw9whf388c6cj0vcbpsyhdrwfl8cyw85kjx8r56dv88y5";
buildFlags = "-tags extended";
postInstall = ''
rm $bin/bin/generate
'';
subPackages = [ "." ];
meta = with stdenv.lib; {
description = "A fast and modern static website engine.";

View File

@ -1,777 +0,0 @@
# file generated from go.mod using vgo2nix (https://github.com/adisbladis/vgo2nix)
[
{
goPackagePath = "github.com/gobuffalo/envy";
fetch = {
type = "git";
url = "https://github.com/gobuffalo/envy";
rev = "v1.6.8";
"sha256" = "1xh26j9bji8c4hr05f89kbc4fhqniba00bdcic4gs5xfnp2vj7gk";
};
}
{
goPackagePath = "github.com/joho/godotenv";
fetch = {
type = "git";
url = "https://github.com/joho/godotenv";
rev = "v1.3.0";
"sha256" = "0ri8if0pc3x6jg4c3i8wr58xyfpxkwmcjk3rp8gb398a1aa3gpjm";
};
}
{
goPackagePath = "github.com/BurntSushi/locker";
fetch = {
type = "git";
url = "https://github.com/BurntSushi/locker";
rev = "a6e239ea1c69";
sha256 = "1xak4aync4klswq5217qvw191asgla51jr42y94vp109lirm5dzg";
};
}
{
goPackagePath = "github.com/BurntSushi/toml";
fetch = {
type = "git";
url = "https://github.com/BurntSushi/toml";
rev = "a368813c5e64";
sha256 = "1sjxs2lwc8jpln80s4rlzp7nprbcljhy5mz4rf9995gq93wqnym5";
};
}
{
goPackagePath = "github.com/PuerkitoBio/purell";
fetch = {
type = "git";
url = "https://github.com/PuerkitoBio/purell";
rev = "v1.1.0";
sha256 = "0vsxyn1fbm7g873b8kf3hcsgqgncb5nmfq3zfsc35a9yhzarka91";
};
}
{
goPackagePath = "github.com/PuerkitoBio/urlesc";
fetch = {
type = "git";
url = "https://github.com/PuerkitoBio/urlesc";
rev = "de5bf2ad4578";
sha256 = "0n0srpqwbaan1wrhh2b7ysz543pjs1xw2rghvqyffg9l0g8kzgcw";
};
}
{
goPackagePath = "github.com/alecthomas/assert";
fetch = {
type = "git";
url = "https://github.com/alecthomas/assert";
rev = "405dbfeb8e38";
sha256 = "1l567pi17k593nrd1qlbmiq8z9jy3qs60px2a16fdpzjsizwqx8l";
};
}
{
goPackagePath = "github.com/alecthomas/chroma";
fetch = {
type = "git";
url = "https://github.com/alecthomas/chroma";
rev = "v0.6.2";
sha256 = "1bcppy1s148iikr78qjm0akahn01ywh83a8pw544prr9yc16jvmz";
};
}
{
goPackagePath = "github.com/alecthomas/colour";
fetch = {
type = "git";
url = "https://github.com/alecthomas/colour";
rev = "60882d9e2721";
sha256 = "0iq566534gbzkd16ixg7fk298wd766821vvs80838yifx9yml5vs";
};
}
{
goPackagePath = "github.com/alecthomas/kong";
fetch = {
type = "git";
url = "https://github.com/alecthomas/kong";
rev = "v0.1.15";
sha256 = "1llxabcdzlb2hard0h931knqkdnyjyz8dp3k0nli0m0mags7l31b";
};
}
{
goPackagePath = "github.com/alecthomas/repr";
fetch = {
type = "git";
url = "https://github.com/alecthomas/repr";
rev = "d37bc2a10ba1";
sha256 = "0jnx1ypdl4zi010ds2z857ajkr5cx51wkx950rfqb126hvql7svx";
};
}
{
goPackagePath = "github.com/armon/consul-api";
fetch = {
type = "git";
url = "https://github.com/armon/consul-api";
rev = "eb2c6b5be1b6";
sha256 = "1j6fdr1sg36qy4n4xjl7brq739fpm5npq98cmvklzjc9qrx98nk9";
};
}
{
goPackagePath = "github.com/bep/debounce";
fetch = {
type = "git";
url = "https://github.com/bep/debounce";
rev = "v1.1.0";
sha256 = "1sh4zv0hv7f454mhzpl2mbv7ar5rm00wyy5qr78x1h84bgph87wy";
};
}
{
goPackagePath = "github.com/bep/gitmap";
fetch = {
type = "git";
url = "https://github.com/bep/gitmap";
rev = "v1.0.0";
sha256 = "0zqdl5h4ayi2gi5aqf35f1sjszhbcriksm2bf84fkrg7ngr48jn6";
};
}
{
goPackagePath = "github.com/bep/go-tocss";
fetch = {
type = "git";
url = "https://github.com/bep/go-tocss";
rev = "v0.6.0";
sha256 = "0w5i3ig3bbdrwbrcwzx8xsxhlb8xr17jj3wdcb6klqglg7551yvm";
};
}
{
goPackagePath = "github.com/chaseadamsio/goorgeous";
fetch = {
type = "git";
url = "https://github.com/chaseadamsio/goorgeous";
rev = "v1.1.0";
sha256 = "07qdqi46klizq3wigxqbiksnlgbrdc8hvmizgzg0aas5iqy88dcb";
};
}
{
goPackagePath = "github.com/cheekybits/is";
fetch = {
type = "git";
url = "https://github.com/cheekybits/is";
rev = "68e9c0620927";
sha256 = "1mkbyzhwq3rby832ikq00nxv3jnckxsm3949wkxd8ya9js2jmg4d";
};
}
{
goPackagePath = "github.com/coreos/etcd";
fetch = {
type = "git";
url = "https://github.com/coreos/etcd";
rev = "v3.3.10";
sha256 = "1x2ii1hj8jraba8rbxz6dmc03y3sjxdnzipdvg6fywnlq1f3l3wl";
};
}
{
goPackagePath = "github.com/coreos/go-etcd";
fetch = {
type = "git";
url = "https://github.com/coreos/go-etcd";
rev = "v2.0.0";
sha256 = "1xb34hzaa1lkbq5vkzy9vcz6gqwj7hp6cdbvyack2bf28dwn33jj";
};
}
{
goPackagePath = "github.com/coreos/go-semver";
fetch = {
type = "git";
url = "https://github.com/coreos/go-semver";
rev = "v0.2.0";
sha256 = "1gghi5bnqj50hfxhqc1cxmynqmh2yk9ii7ab9gsm75y5cp94ymk0";
};
}
{
goPackagePath = "github.com/cpuguy83/go-md2man";
fetch = {
type = "git";
url = "https://github.com/cpuguy83/go-md2man";
rev = "v1.0.8";
sha256 = "1w22dfdamsq63b5rvalh9k2y7rbwfkkjs7vm9vd4a13h2ql70lg2";
};
}
{
goPackagePath = "github.com/danwakefield/fnmatch";
fetch = {
type = "git";
url = "https://github.com/danwakefield/fnmatch";
rev = "cbb64ac3d964";
sha256 = "0cbf511ppsa6hf59mdl7nbyn2b2n71y0bpkzbmfkdqjhanqh1lqz";
};
}
{
goPackagePath = "github.com/davecgh/go-spew";
fetch = {
type = "git";
url = "https://github.com/davecgh/go-spew";
rev = "v1.1.1";
sha256 = "0hka6hmyvp701adzag2g26cxdj47g21x6jz4sc6jjz1mn59d474y";
};
}
{
goPackagePath = "github.com/disintegration/imaging";
fetch = {
type = "git";
url = "https://github.com/disintegration/imaging";
rev = "v1.5.0";
sha256 = "1laxccmzi7q51zxn81ringmdwp8iaipivrl375yc3gq56d70sp0r";
};
}
{
goPackagePath = "github.com/dlclark/regexp2";
fetch = {
type = "git";
url = "https://github.com/dlclark/regexp2";
rev = "v1.1.6";
sha256 = "144s81ndviwhyy20ipxvvfvap8phv5p762glxrz6aqxprkxfarj5";
};
}
{
goPackagePath = "github.com/dustin/go-humanize";
fetch = {
type = "git";
url = "https://github.com/dustin/go-humanize";
rev = "v1.0.0";
sha256 = "1kqf1kavdyvjk7f8kx62pnm7fbypn9z1vbf8v2qdh3y7z7a0cbl3";
};
}
{
goPackagePath = "github.com/eknkc/amber";
fetch = {
type = "git";
url = "https://github.com/eknkc/amber";
rev = "cdade1c07385";
sha256 = "152w97yckwncgw7lwjvgd8d00wy6y0nxzlvx72kl7nqqxs9vhxd9";
};
}
{
goPackagePath = "github.com/fortytw2/leaktest";
fetch = {
type = "git";
url = "https://github.com/fortytw2/leaktest";
rev = "v1.2.0";
sha256 = "1lf9l6zgzjbcc7hmcjhhg3blx0y8icyxvjmjqqwfbwdk502803ra";
};
}
{
goPackagePath = "github.com/fsnotify/fsnotify";
fetch = {
type = "git";
url = "https://github.com/fsnotify/fsnotify";
rev = "v1.4.7";
sha256 = "07va9crci0ijlivbb7q57d2rz9h27zgn2fsm60spjsqpdbvyrx4g";
};
}
{
goPackagePath = "github.com/gobwas/glob";
fetch = {
type = "git";
url = "https://github.com/gobwas/glob";
rev = "v0.2.3";
sha256 = "0jxk1x806zn5x86342s72dq2qy64ksb3zrvrlgir2avjhwb18n6z";
};
}
{
goPackagePath = "github.com/gorilla/websocket";
fetch = {
type = "git";
url = "https://github.com/gorilla/websocket";
rev = "v1.4.0";
sha256 = "00i4vb31nsfkzzk7swvx3i75r2d960js3dri1875vypk3v2s0pzk";
};
}
{
goPackagePath = "github.com/hashicorp/go-immutable-radix";
fetch = {
type = "git";
url = "https://github.com/hashicorp/go-immutable-radix";
rev = "v1.0.0";
sha256 = "1v3nmsnk1s8bzpclrhirz7iq0g5xxbw9q5gvrg9ss6w9crs72qr6";
};
}
{
goPackagePath = "github.com/hashicorp/go-uuid";
fetch = {
type = "git";
url = "https://github.com/hashicorp/go-uuid";
rev = "v1.0.0";
sha256 = "1jflywlani7583qm4ysph40hsgx3n66n5zr2k84i057fmwa1ypfy";
};
}
{
goPackagePath = "github.com/hashicorp/golang-lru";
fetch = {
type = "git";
url = "https://github.com/hashicorp/golang-lru";
rev = "v0.5.0";
sha256 = "12k2cp2k615fjvfa5hyb9k2alian77wivds8s65diwshwv41939f";
};
}
{
goPackagePath = "github.com/hashicorp/hcl";
fetch = {
type = "git";
url = "https://github.com/hashicorp/hcl";
rev = "v1.0.0";
sha256 = "0q6ml0qqs0yil76mpn4mdx4lp94id8vbv575qm60jzl1ijcl5i66";
};
}
{
goPackagePath = "github.com/inconshreveable/mousetrap";
fetch = {
type = "git";
url = "https://github.com/inconshreveable/mousetrap";
rev = "v1.0.0";
sha256 = "1mn0kg48xkd74brf48qf5hzp0bc6g8cf5a77w895rl3qnlpfw152";
};
}
{
goPackagePath = "github.com/jdkato/prose";
fetch = {
type = "git";
url = "https://github.com/jdkato/prose";
rev = "v1.1.0";
sha256 = "1gjqgrpc7wbqvnhgwyfhxng24qvx37qjy0x2mbikiw1vaygxqsmy";
};
}
{
goPackagePath = "github.com/kr/pretty";
fetch = {
type = "git";
url = "https://github.com/kr/pretty";
rev = "v0.1.0";
sha256 = "18m4pwg2abd0j9cn5v3k2ksk9ig4vlwxmlw9rrglanziv9l967qp";
};
}
{
goPackagePath = "github.com/kr/pty";
fetch = {
type = "git";
url = "https://github.com/kr/pty";
rev = "v1.1.1";
sha256 = "0383f0mb9kqjvncqrfpidsf8y6ns5zlrc91c6a74xpyxjwvzl2y6";
};
}
{
goPackagePath = "github.com/kr/text";
fetch = {
type = "git";
url = "https://github.com/kr/text";
rev = "v0.1.0";
sha256 = "1gm5bsl01apvc84bw06hasawyqm4q84vx1pm32wr9jnd7a8vjgj1";
};
}
{
goPackagePath = "github.com/kyokomi/emoji";
fetch = {
type = "git";
url = "https://github.com/kyokomi/emoji";
rev = "v1.5.1";
sha256 = "005rxyxlqcd2sfjn686xb52l11wn2w0g5jv042ka6pnsx24r812a";
};
}
{
goPackagePath = "github.com/magefile/mage";
fetch = {
type = "git";
url = "https://github.com/magefile/mage";
rev = "v1.4.0";
sha256 = "177hzmmzhk7bcm3jj2cj6d5l9h5ql3cikvndhk4agkslrhwr3xka";
};
}
{
goPackagePath = "github.com/magiconair/properties";
fetch = {
type = "git";
url = "https://github.com/magiconair/properties";
rev = "v1.8.0";
sha256 = "1a10362wv8a8qwb818wygn2z48lgzch940hvpv81hv8gc747ajxn";
};
}
{
goPackagePath = "github.com/markbates/inflect";
fetch = {
type = "git";
url = "https://github.com/markbates/inflect";
rev = "v1.0.0";
sha256 = "072a73ij23mp8vabr8xwga2kj8dimya44ciiy9g4x4r9imm86psw";
};
}
{
goPackagePath = "github.com/matryer/try";
fetch = {
type = "git";
url = "https://github.com/matryer/try";
rev = "9ac251b645a2";
sha256 = "19fnqmpl3p54vmxgm1hmqvdc87brqx754wf3cdhq1bj04fcbb5h9";
};
}
{
goPackagePath = "github.com/mattn/go-colorable";
fetch = {
type = "git";
url = "https://github.com/mattn/go-colorable";
rev = "v0.0.9";
sha256 = "1nwjmsppsjicr7anq8na6md7b1z84l9ppnlr045hhxjvbkqwalvx";
};
}
{
goPackagePath = "github.com/mattn/go-isatty";
fetch = {
type = "git";
url = "https://github.com/mattn/go-isatty";
rev = "v0.0.4";
sha256 = "0zs92j2cqaw9j8qx1sdxpv3ap0rgbs0vrvi72m40mg8aa36gd39w";
};
}
{
goPackagePath = "github.com/mattn/go-runewidth";
fetch = {
type = "git";
url = "https://github.com/mattn/go-runewidth";
rev = "v0.0.3";
sha256 = "0lc39b6xrxv7h3v3y1kgz49cgi5qxwlygs715aam6ba35m48yi7g";
};
}
{
goPackagePath = "github.com/miekg/mmark";
fetch = {
type = "git";
url = "https://github.com/miekg/mmark";
rev = "v1.3.6";
sha256 = "0q2zrwa2vwk7a0zhmi000zpqrc01zssrj9c5n3573rg68fksg77m";
};
}
{
goPackagePath = "github.com/mitchellh/hashstructure";
fetch = {
type = "git";
url = "https://github.com/mitchellh/hashstructure";
rev = "v1.0.0";
sha256 = "0zgl5c03ip2yzkb9b7fq9ml08i7j8prgd46ha1fcg8c6r7k9xl3i";
};
}
{
goPackagePath = "github.com/mitchellh/mapstructure";
fetch = {
type = "git";
url = "https://github.com/mitchellh/mapstructure";
rev = "v1.1.2";
sha256 = "03bpv28jz9zhn4947saqwi328ydj7f6g6pf1m2d4m5zdh5jlfkrr";
};
}
{
goPackagePath = "github.com/muesli/smartcrop";
fetch = {
type = "git";
url = "https://github.com/muesli/smartcrop";
rev = "f6ebaa786a12";
sha256 = "0xbv5wbn0z36nkw9ay3ly6z23lpsrs0khryl1w54fz85lvwh66gp";
};
}
{
goPackagePath = "github.com/nfnt/resize";
fetch = {
type = "git";
url = "https://github.com/nfnt/resize";
rev = "83c6a9932646";
sha256 = "005cpiwq28krbjf0zjwpfh63rp4s4is58700idn24fs3g7wdbwya";
};
}
{
goPackagePath = "github.com/nicksnyder/go-i18n";
fetch = {
type = "git";
url = "https://github.com/nicksnyder/go-i18n";
rev = "v1.10.0";
sha256 = "1nlvq85c232z5yjs86pxpmkv7hk6gb5pa6j4hhzgdz85adk2ma04";
};
}
{
goPackagePath = "github.com/olekukonko/tablewriter";
fetch = {
type = "git";
url = "https://github.com/olekukonko/tablewriter";
rev = "d4647c9c7a84";
sha256 = "1274k5r9ardh1f6gsmadxmdds7zy8rkr55fb9swvnm0vazr3y01l";
};
}
{
goPackagePath = "github.com/pelletier/go-toml";
fetch = {
type = "git";
url = "https://github.com/pelletier/go-toml";
rev = "v1.2.0";
sha256 = "1fjzpcjng60mc3a4b2ql5a00d5gah84wj740dabv9kq67mpg8fxy";
};
}
{
goPackagePath = "github.com/pkg/errors";
fetch = {
type = "git";
url = "https://github.com/pkg/errors";
rev = "v0.8.0";
sha256 = "001i6n71ghp2l6kdl3qq1v2vmghcz3kicv9a5wgcihrzigm75pp5";
};
}
{
goPackagePath = "github.com/pmezard/go-difflib";
fetch = {
type = "git";
url = "https://github.com/pmezard/go-difflib";
rev = "v1.0.0";
sha256 = "0c1cn55m4rypmscgf0rrb88pn58j3ysvc2d0432dp3c6fqg6cnzw";
};
}
{
goPackagePath = "github.com/russross/blackfriday";
fetch = {
type = "git";
url = "https://github.com/russross/blackfriday";
rev = "46c73eb196ba";
sha256 = "01z1jsdkac09cw95lqq4pahkw9xnini2mb956lvb772bby2x3dmj";
};
}
{
goPackagePath = "github.com/sanity-io/litter";
fetch = {
type = "git";
url = "https://github.com/sanity-io/litter";
rev = "v1.1.0";
sha256 = "09nywwxxd6rmhxc7rsvs96ynjszmnvmhwr7dvh1n35hb6h9y7s2r";
};
}
{
goPackagePath = "github.com/sergi/go-diff";
fetch = {
type = "git";
url = "https://github.com/sergi/go-diff";
rev = "v1.0.0";
sha256 = "0swiazj8wphs2zmk1qgq75xza6m19snif94h2m6fi8dqkwqdl7c7";
};
}
{
goPackagePath = "github.com/shurcooL/sanitized_anchor_name";
fetch = {
type = "git";
url = "https://github.com/shurcooL/sanitized_anchor_name";
rev = "86672fcb3f95";
sha256 = "142m507s9971cl8qdmbcw7sqxnkgi3xqd8wzvfq15p0w7w8i4a3h";
};
}
{
goPackagePath = "github.com/spf13/afero";
fetch = {
type = "git";
url = "https://github.com/spf13/afero";
rev = "v1.2.1";
sha256 = "14qqj0cz6a595vn4dp747vddx05fd77jdsyl85qjmf9baymaxlam";
};
}
{
goPackagePath = "github.com/spf13/cast";
fetch = {
type = "git";
url = "https://github.com/spf13/cast";
rev = "v1.3.0";
sha256 = "0xq1ffqj8y8h7dcnm0m9lfrh0ga7pssnn2c1dnr09chqbpn4bdc5";
};
}
{
goPackagePath = "github.com/spf13/cobra";
fetch = {
type = "git";
url = "https://github.com/spf13/cobra";
rev = "v0.0.3";
sha256 = "1q1nsx05svyv9fv3fy6xv6gs9ffimkyzsfm49flvl3wnvf1ncrkd";
};
}
{
goPackagePath = "github.com/spf13/fsync";
fetch = {
type = "git";
url = "https://github.com/spf13/fsync";
rev = "12a01e648f05";
sha256 = "1vvbgxbbsc4mvi1axgqgn9pzjz1p495dsmwpc7mr8qxh8f6s0nhv";
};
}
{
goPackagePath = "github.com/spf13/jwalterweatherman";
fetch = {
type = "git";
url = "https://github.com/spf13/jwalterweatherman";
rev = "94f6ae3ed3bc";
sha256 = "1ywmkwci5zyd88ijym6f30fj5c0k2yayxarkmnazf5ybljv50q7b";
};
}
{
goPackagePath = "github.com/spf13/nitro";
fetch = {
type = "git";
url = "https://github.com/spf13/nitro";
rev = "24d7ef30a12d";
sha256 = "143sbpx0jdgf8f8ayv51x6l4jg6cnv6nps6n60qxhx4vd90s6mib";
};
}
{
goPackagePath = "github.com/spf13/pflag";
fetch = {
type = "git";
url = "https://github.com/spf13/pflag";
rev = "v1.0.3";
sha256 = "1cj3cjm7d3zk0mf1xdybh0jywkbbw7a6yr3y22x9sis31scprswd";
};
}
{
goPackagePath = "github.com/spf13/viper";
fetch = {
type = "git";
url = "https://github.com/spf13/viper";
rev = "v1.3.1";
sha256 = "1190mg04718r03qriav99sf4kx2n7wdgr8vdni15f74bpbzrdjrl";
};
}
{
goPackagePath = "github.com/stretchr/testify";
fetch = {
type = "git";
url = "https://github.com/stretchr/testify";
rev = "04af85275a5c";
sha256 = "1al7hgvg34xbajds99ss5wmlndxbzzmz5l0wrg6wchvvfaiwxlx0";
};
}
{
goPackagePath = "github.com/tdewolff/minify";
fetch = {
type = "git";
url = "https://github.com/tdewolff/minify";
rev = "v2.3.7";
sha256 = "1mj1lmd8s0mrg9cfj1ihvsqrbsbpzh3icm0pmayd2r6jp6rbffw6";
};
}
{
goPackagePath = "github.com/tdewolff/parse";
fetch = {
type = "git";
url = "https://github.com/tdewolff/parse";
rev = "v2.3.5";
sha256 = "05w859s31dx6525wrjryby601z9c0xpncilznk6shgqygpxda6cz";
};
}
{
goPackagePath = "github.com/tdewolff/test";
fetch = {
type = "git";
url = "https://github.com/tdewolff/test";
rev = "v1.0.0";
sha256 = "10vyp4bhanzg3yl9k8zqfdrxpsmx8yc53xv4lqxfymd7jjyqgssj";
};
}
{
goPackagePath = "github.com/ugorji/go";
fetch = {
type = "git";
url = "https://github.com/ugorji/go";
rev = "d75b2dcb6bc8";
sha256 = "0di1k35gpq9bp958ywranpbskx2vdwlb38s22vl9rybm3wa5g3ps";
};
}
{
goPackagePath = "github.com/wellington/go-libsass";
fetch = {
type = "git";
url = "https://github.com/wellington/go-libsass";
rev = "c63644206701";
sha256 = "1ml0fk4wldnjlkmliydnig9f3rpp3cdzwgz331mlqyadvma3c0lf";
};
}
{
goPackagePath = "github.com/xordataexchange/crypt";
fetch = {
type = "git";
url = "https://github.com/xordataexchange/crypt";
rev = "b2862e3d0a77";
sha256 = "04q3856anpzl4gdfgmg7pbp9cx231nkz3ymq2xp27rnmmwhfxr8y";
};
}
{
goPackagePath = "github.com/yosssi/ace";
fetch = {
type = "git";
url = "https://github.com/yosssi/ace";
rev = "v0.0.5";
sha256 = "1kbvbc56grrpnl65grygd23gyn3nkkhxdg8awhzkjmd0cvki8w1f";
};
}
{
goPackagePath = "golang.org/x/crypto";
fetch = {
type = "git";
url = "https://go.googlesource.com/crypto";
rev = "505ab145d0a9";
sha256 = "1vbsvcvmjz6c00p5vf8ls533p52fx2y3gy6v4k5qrdlzl4wf0i5s";
};
}
{
goPackagePath = "golang.org/x/image";
fetch = {
type = "git";
url = "https://go.googlesource.com/image";
rev = "c73c2afc3b81";
sha256 = "1kkafy29vz5xf6r29ghbvvbwrgjxwxvzk6dsa2qhyp1ddk6l2vkz";
};
}
{
goPackagePath = "golang.org/x/net";
fetch = {
type = "git";
url = "https://go.googlesource.com/net";
rev = "161cd47e91fd";
sha256 = "0254ld010iijygbzykib2vags1dc0wlmcmhgh4jl8iny159lhbcv";
};
}
{
goPackagePath = "golang.org/x/sync";
fetch = {
type = "git";
url = "https://go.googlesource.com/sync";
rev = "1d60e4601c6f";
sha256 = "046jlanz2lkxq1r57x9bl6s4cvfqaic6p2xybsj8mq1120jv4rs6";
};
}
{
goPackagePath = "golang.org/x/sys";
fetch = {
type = "git";
url = "https://go.googlesource.com/sys";
rev = "b4a75ba826a6";
sha256 = "0kzrd2wywkcq35iakbzplqyma4bvf2ng3mzi7917kxcbdq3fflrj";
};
}
{
goPackagePath = "golang.org/x/text";
fetch = {
type = "git";
url = "https://go.googlesource.com/text";
rev = "v0.3.0";
sha256 = "0r6x6zjzhr8ksqlpiwm5gdd7s209kwk5p4lw54xjvz10cs3qlq19";
};
}
{
goPackagePath = "gopkg.in/check.v1";
fetch = {
type = "git";
url = "https://gopkg.in/check.v1";
rev = "788fd7840127";
sha256 = "0v3bim0j375z81zrpr5qv42knqs0y2qv2vkjiqi5axvb78slki1a";
};
}
{
goPackagePath = "gopkg.in/yaml.v2";
fetch = {
type = "git";
url = "https://gopkg.in/yaml.v2";
rev = "v2.2.2";
sha256 = "01wj12jzsdqlnidpyjssmj0r4yavlqy7dwrg7adqd8dicjc4ncsa";
};
}
]

View File

@ -0,0 +1,41 @@
{ stdenv, appimage-run, fetchurl }:
let
version = "1.0.120";
sha256 = "0j32rg6hm5dirdcibhfhrclnx7vm37fbm4iwkzzinqhzj4jfgbfm";
in
stdenv.mkDerivation rec {
name = "joplin-${version}";
src = fetchurl {
url = "https://github.com/laurent22/joplin/releases/download/v${version}/Joplin-${version}-x86_64.AppImage";
inherit sha256;
};
buildInputs = [ appimage-run ];
unpackPhase = ":";
installPhase = ''
mkdir -p $out/{bin,share}
cp $src $out/share/joplin.AppImage
echo "#!/bin/sh" > $out/bin/joplin-desktop
echo "${appimage-run}/bin/appimage-run $out/share/joplin.AppImage" >> $out/bin/joplin-desktop
chmod +x $out/bin/joplin-desktop $out/share/joplin.AppImage
'';
meta = with stdenv.lib; {
description = "An open source note taking and to-do application with synchronisation capabilities";
longDescription = ''
Joplin is a free, open source note taking and to-do application, which can
handle a large number of notes organised into notebooks. The notes are
searchable, can be copied, tagged and modified either from the
applications directly or from your own text editor. The notes are in
Markdown format.
'';
homepage = https://joplin.cozic.net/;
license = licenses.mit;
maintainers = with maintainers; [ rafaelgg raquelgb ];
platforms = [ "x86_64-linux" ];
};
}

View File

@ -2,11 +2,11 @@
stdenv.mkDerivation rec {
name = "josm-${version}";
version = "14620";
version = "14760";
src = fetchurl {
url = "https://josm.openstreetmap.de/download/josm-snapshot-${version}.jar";
sha256 = "0ypn2awmclxsx4i7mmghs5blz2j5srdayzcxcqn5b4p1r57072bn";
sha256 = "1ya05z3i37ynpaqrm99cirkbap03q7wgbbps2y95l7r2k9l4sxsi";
};
buildInputs = [ jdk11 makeWrapper ];

View File

@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
description = "Qt password manager compatible with its Win32 and Pocket PC versions";
homepage = https://www.keepassx.org/;
license = stdenv.lib.licenses.gpl2;
maintainers = with stdenv.lib.maintainers; [ qknight jgeerds ];
maintainers = with stdenv.lib.maintainers; [ qknight ];
platforms = with stdenv.lib.platforms; linux;
};
}

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