Merge master into staging-next
This commit is contained in:
commit
bd538d6bb0
@ -9,8 +9,10 @@ debug:
|
||||
|
||||
.PHONY: format
|
||||
format:
|
||||
find . -iname '*.xml' -type f -print0 | xargs -0 -I{} -n1 \
|
||||
xmlformat --config-file "$$XMLFORMAT_CONFIG" -i {}
|
||||
find . -iname '*.xml' -type f | while read f; do \
|
||||
echo $$f ;\
|
||||
xmlformat --config-file "$$XMLFORMAT_CONFIG" -i $$f ;\
|
||||
done
|
||||
|
||||
.PHONY: fix-misc-xml
|
||||
fix-misc-xml:
|
||||
|
@ -814,7 +814,7 @@ args.stdenv.mkDerivation (args // {
|
||||
|
||||
<para>
|
||||
There are multiple ways to fetch a package source in nixpkgs. The general
|
||||
guideline is that you should package sources with a high degree of
|
||||
guideline is that you should package reproducible sources with a high degree of
|
||||
availability. Right now there is only one fetcher which has mirroring
|
||||
support and that is <literal>fetchurl</literal>. Note that you should also
|
||||
prefer protocols which have a corresponding proxy environment variable.
|
||||
@ -876,6 +876,123 @@ src = fetchFromGitHub {
|
||||
</itemizedlist>
|
||||
</para>
|
||||
</section>
|
||||
<section xml:id="sec-source-hashes">
|
||||
<title>Obtaining source hash</title>
|
||||
|
||||
<para>
|
||||
Preferred source hash type is sha256. There are several ways to get it.
|
||||
</para>
|
||||
|
||||
<orderedlist>
|
||||
<listitem>
|
||||
<para>
|
||||
Prefetch URL (with <literal>nix-prefetch-<replaceable>XXX</replaceable>
|
||||
<replaceable>URL</replaceable></literal>, where
|
||||
<replaceable>XXX</replaceable> is one of <literal>url</literal>,
|
||||
<literal>git</literal>, <literal>hg</literal>, <literal>cvs</literal>,
|
||||
<literal>bzr</literal>, <literal>svn</literal>). Hash is printed to
|
||||
stdout.
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
Prefetch by package source (with <literal>nix-prefetch-url
|
||||
'<nixpkgs>' -A <replaceable>PACKAGE</replaceable>.src</literal>,
|
||||
where <replaceable>PACKAGE</replaceable> is package attribute name). Hash
|
||||
is printed to stdout.
|
||||
</para>
|
||||
<para>
|
||||
This works well when you've upgraded existing package version and want to
|
||||
find out new hash, but is useless if package can't be accessed by
|
||||
attribute or package has multiple sources (<literal>.srcs</literal>,
|
||||
architecture-dependent sources, etc).
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
Upstream provided hash: use it when upstream provides
|
||||
<literal>sha256</literal> or <literal>sha512</literal> (when upstream
|
||||
provides <literal>md5</literal>, don't use it, compute
|
||||
<literal>sha256</literal> instead).
|
||||
</para>
|
||||
<para>
|
||||
A little nuance is that <literal>nix-prefetch-*</literal> tools produce
|
||||
hash encoded with <literal>base32</literal>, but upstream usually provides
|
||||
hexadecimal (<literal>base16</literal>) encoding. Fetchers understand both
|
||||
formats. Nixpkgs does not standardize on any one format.
|
||||
</para>
|
||||
<para>
|
||||
You can convert between formats with nix-hash, for example:
|
||||
<screen>
|
||||
$ nix-hash --type sha256 --to-base32 <replaceable>HASH</replaceable>
|
||||
</screen>
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
Extracting hash from local source tarball can be done with
|
||||
<literal>sha256sum</literal>. Use <literal>nix-prefetch-url
|
||||
file:///path/to/tarball </literal> if you want base32 hash.
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
Fake hash: set fake hash in package expression, perform build and extract
|
||||
correct hash from error Nix prints.
|
||||
</para>
|
||||
<para>
|
||||
For package updates it is enough to change one symbol to make hash fake.
|
||||
For new packages, you can use <literal>lib.fakeSha256</literal>,
|
||||
<literal>lib.fakeSha512</literal> or any other fake hash.
|
||||
</para>
|
||||
<para>
|
||||
This is last resort method when reconstructing source URL is non-trivial
|
||||
and <literal>nix-prefetch-url -A</literal> isn't applicable (for example,
|
||||
<link xlink:href="https://github.com/NixOS/nixpkgs/blob/d2ab091dd308b99e4912b805a5eb088dd536adb9/pkgs/applications/video/kodi/default.nix#L73">
|
||||
one of <literal>kodi</literal> dependencies</link>). The easiest way then
|
||||
would be replace hash with a fake one and rebuild. Nix build will fail and
|
||||
error message will contain desired hash.
|
||||
</para>
|
||||
<warning><para>This method has security problems. Check below for details.</para></warning>
|
||||
</listitem>
|
||||
</orderedlist>
|
||||
|
||||
<section xml:id="sec-source-hashes-security">
|
||||
<title>Obtaining hashes securely</title>
|
||||
<para>
|
||||
Let's say Man-in-the-Middle (MITM) sits close to your network. Then instead of fetching
|
||||
source you can fetch malware, and instead of source hash you get hash of malware. Here are
|
||||
security considerations for this scenario:
|
||||
</para>
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>
|
||||
<literal>http://</literal> URLs are not secure to prefetch hash from;
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
hashes from upstream (in method 3) should be obtained via secure protocol;
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
<literal>https://</literal> URLs are secure in methods 1, 2, 3;
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
<literal>https://</literal> URLs are not secure in method 5. When obtaining hashes
|
||||
with fake hash method, TLS checks are disabled. So
|
||||
refetch source hash from several different networks to exclude MITM scenario.
|
||||
Alternatively, use fake hash method to make Nix error, but instead of extracting
|
||||
hash from error, extract <literal>https://</literal> URL and prefetch it
|
||||
with method 1.
|
||||
</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
</section>
|
||||
</section>
|
||||
<section xml:id="sec-patches">
|
||||
<title>Patches</title>
|
||||
|
||||
|
@ -180,7 +180,11 @@
|
||||
code:
|
||||
<programlisting>
|
||||
{
|
||||
allowUnfreePredicate = (pkg: builtins.elem (builtins.parseDrvName pkg.name).name [ "flashplayer" "vscode" ]);
|
||||
allowUnfreePredicate = (pkg: builtins.elem
|
||||
(builtins.parseDrvName pkg.name).name [
|
||||
"flashplayer"
|
||||
"vscode"
|
||||
]);
|
||||
}
|
||||
</programlisting>
|
||||
</para>
|
||||
@ -322,7 +326,18 @@
|
||||
packageOverrides = pkgs: with pkgs; {
|
||||
myPackages = pkgs.buildEnv {
|
||||
name = "my-packages";
|
||||
paths = [ aspell bc coreutils gdb ffmpeg nixUnstable emscripten jq nox silver-searcher ];
|
||||
paths = [
|
||||
aspell
|
||||
bc
|
||||
coreutils
|
||||
gdb
|
||||
ffmpeg
|
||||
nixUnstable
|
||||
emscripten
|
||||
jq
|
||||
nox
|
||||
silver-searcher
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
||||
@ -343,7 +358,18 @@
|
||||
packageOverrides = pkgs: with pkgs; {
|
||||
myPackages = pkgs.buildEnv {
|
||||
name = "my-packages";
|
||||
paths = [ aspell bc coreutils gdb ffmpeg nixUnstable emscripten jq nox silver-searcher ];
|
||||
paths = [
|
||||
aspell
|
||||
bc
|
||||
coreutils
|
||||
gdb
|
||||
ffmpeg
|
||||
nixUnstable
|
||||
emscripten
|
||||
jq
|
||||
nox
|
||||
silver-searcher
|
||||
];
|
||||
pathsToLink = [ "/share" "/bin" ];
|
||||
};
|
||||
};
|
||||
@ -378,7 +404,17 @@
|
||||
packageOverrides = pkgs: with pkgs; {
|
||||
myPackages = pkgs.buildEnv {
|
||||
name = "my-packages";
|
||||
paths = [ aspell bc coreutils ffmpeg nixUnstable emscripten jq nox silver-searcher ];
|
||||
paths = [
|
||||
aspell
|
||||
bc
|
||||
coreutils
|
||||
ffmpeg
|
||||
nixUnstable
|
||||
emscripten
|
||||
jq
|
||||
nox
|
||||
silver-searcher
|
||||
];
|
||||
pathsToLink = [ "/share/man" "/share/doc" "/bin" ];
|
||||
extraOutputsToInstall = [ "man" "doc" ];
|
||||
};
|
||||
|
@ -605,11 +605,11 @@ policy.
|
||||
-->
|
||||
|
||||
<para>
|
||||
In a case a contributor leaves definitively the Nix community, he should
|
||||
In a case a contributor definitively leaves the Nix community, they should
|
||||
create an issue or post on
|
||||
<link
|
||||
xlink:href="https://discourse.nixos.org">Discourse</link> with
|
||||
references of packages and modules he maintains so the maintainership can be
|
||||
references of packages and modules they maintain so the maintainership can be
|
||||
taken over by other contributors.
|
||||
</para>
|
||||
</section>
|
||||
|
@ -9,6 +9,7 @@
|
||||
body
|
||||
{
|
||||
font-family: "Nimbus Sans L", sans-serif;
|
||||
font-size: 1em;
|
||||
background: white;
|
||||
margin: 2em 1em 2em 1em;
|
||||
}
|
||||
@ -28,6 +29,25 @@ h2 /* chapters, appendices, subtitle */
|
||||
font-size: 180%;
|
||||
}
|
||||
|
||||
div.book
|
||||
{
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
div.book > div
|
||||
{
|
||||
/*
|
||||
* based on https://medium.com/@zkareemz/golden-ratio-62b3b6d4282a
|
||||
* we do 70 characters per line to fit code listings better
|
||||
* 70 * (font-size / 1.618)
|
||||
* expression for emacs:
|
||||
* (* 70 (/ 1 1.618))
|
||||
*/
|
||||
max-width: 43.2em;
|
||||
text-align: left;
|
||||
margin: auto;
|
||||
}
|
||||
|
||||
/* Extra space between chapters, appendices. */
|
||||
div.chapter > div.titlepage h2, div.appendix > div.titlepage h2
|
||||
{
|
||||
@ -102,8 +122,8 @@ pre.screen, pre.programlisting
|
||||
{
|
||||
border: 1px solid #b0b0b0;
|
||||
padding: 3px 3px;
|
||||
margin-left: 1.5em;
|
||||
margin-right: 1.5em;
|
||||
margin-left: 0.5em;
|
||||
margin-right: 0.5em;
|
||||
|
||||
background: #f4f4f8;
|
||||
font-family: monospace;
|
||||
|
@ -94,7 +94,7 @@ let
|
||||
callPackageWith callPackagesWith extendDerivation hydraJob
|
||||
makeScope;
|
||||
inherit (meta) addMetaAttrs dontDistribute setName updateName
|
||||
appendToName mapDerivationAttrset lowPrio lowPrioSet hiPrio
|
||||
appendToName mapDerivationAttrset setPrio lowPrio lowPrioSet hiPrio
|
||||
hiPrioSet;
|
||||
inherit (sources) pathType pathIsDirectory cleanSourceFilter
|
||||
cleanSource sourceByRegex sourceFilesBySuffices
|
||||
|
11
lib/meta.nix
11
lib/meta.nix
@ -41,16 +41,18 @@ rec {
|
||||
let x = builtins.parseDrvName name; in "${x.name}-${suffix}-${x.version}");
|
||||
|
||||
|
||||
/* Apply a function to each derivation and only to derivations in an attrset
|
||||
/* Apply a function to each derivation and only to derivations in an attrset.
|
||||
*/
|
||||
mapDerivationAttrset = f: set: lib.mapAttrs (name: pkg: if lib.isDerivation pkg then (f pkg) else pkg) set;
|
||||
|
||||
/* Set the nix-env priority of the package.
|
||||
*/
|
||||
setPrio = priority: addMetaAttrs { inherit priority; };
|
||||
|
||||
/* Decrease the nix-env priority of the package, i.e., other
|
||||
versions/variants of the package will be preferred.
|
||||
*/
|
||||
lowPrio = drv: addMetaAttrs { priority = 10; } drv;
|
||||
|
||||
lowPrio = setPrio 10;
|
||||
|
||||
/* Apply lowPrio to an attrset with derivations
|
||||
*/
|
||||
@ -60,8 +62,7 @@ rec {
|
||||
/* Increase the nix-env priority of the package, i.e., this
|
||||
version/variant of the package will be preferred.
|
||||
*/
|
||||
hiPrio = drv: addMetaAttrs { priority = -10; } drv;
|
||||
|
||||
hiPrio = setPrio (-10);
|
||||
|
||||
/* Apply hiPrio to an attrset with derivations
|
||||
*/
|
||||
|
@ -35,11 +35,11 @@
|
||||
</para>
|
||||
<para>
|
||||
NixOS’s default <emphasis>display manager</emphasis> (the program that
|
||||
provides a graphical login prompt and manages the X server) is SLiM. You can
|
||||
provides a graphical login prompt and manages the X server) is LightDM. You can
|
||||
select an alternative one by picking one of the following lines:
|
||||
<programlisting>
|
||||
<xref linkend="opt-services.xserver.displayManager.sddm.enable"/> = true;
|
||||
<xref linkend="opt-services.xserver.displayManager.lightdm.enable"/> = true;
|
||||
<xref linkend="opt-services.xserver.displayManager.slim.enable"/> = true;
|
||||
</programlisting>
|
||||
</para>
|
||||
<para>
|
||||
|
@ -23,7 +23,7 @@ $ diskutil list
|
||||
[..]
|
||||
$ diskutil unmountDisk diskN
|
||||
Unmount of all volumes on diskN was successful
|
||||
$ sudo dd bs=1m if=nix.iso of=/dev/rdiskN
|
||||
$ sudo dd bs=1000000 if=nix.iso of=/dev/rdiskN
|
||||
</programlisting>
|
||||
Using the 'raw' <command>rdiskN</command> device instead of
|
||||
<command>diskN</command> completes in minutes instead of hours. After
|
||||
|
@ -77,18 +77,22 @@
|
||||
Shared folders can be given a name and a path in the host system in the
|
||||
VirtualBox settings (Machine / Settings / Shared Folders, then click on the
|
||||
"Add" icon). Add the following to the
|
||||
<literal>/etc/nixos/configuration.nix</literal> to auto-mount them:
|
||||
<literal>/etc/nixos/configuration.nix</literal> to auto-mount them. If you
|
||||
do not add <literal>"nofail"</literal>, the system will no boot properly.
|
||||
The same goes for disabling <literal>rngd</literal> which is normally used
|
||||
to get randomness but this does not work in virtual machines.
|
||||
</para>
|
||||
|
||||
<programlisting>
|
||||
{ config, pkgs, ...} :
|
||||
{
|
||||
security.rngd.enable = false; // otherwise vm will not boot
|
||||
...
|
||||
|
||||
fileSystems."/virtualboxshare" = {
|
||||
fsType = "vboxsf";
|
||||
device = "nameofthesharedfolder";
|
||||
options = [ "rw" ];
|
||||
options = [ "rw" "nofail" ];
|
||||
};
|
||||
}
|
||||
</programlisting>
|
||||
|
@ -3,6 +3,9 @@
|
||||
, # The root directory of the squashfs filesystem is filled with the
|
||||
# closures of the Nix store paths listed here.
|
||||
storeContents ? []
|
||||
, # Compression parameters.
|
||||
# For zstd compression you can use "zstd -Xcompression-level 6".
|
||||
comp ? "xz -Xdict-size 100%"
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation {
|
||||
@ -20,6 +23,6 @@ stdenv.mkDerivation {
|
||||
|
||||
# Generate the squashfs image.
|
||||
mksquashfs nix-path-registration $(cat $closureInfo/store-paths) $out \
|
||||
-keep-as-directory -all-root -b 1048576 -comp xz -Xdict-size 100%
|
||||
-keep-as-directory -all-root -b 1048576 -comp ${comp}
|
||||
'';
|
||||
}
|
||||
|
@ -306,7 +306,7 @@
|
||||
rslsync = 279;
|
||||
minio = 280;
|
||||
kanboard = 281;
|
||||
pykms = 282;
|
||||
# pykms = 282; # DynamicUser = true
|
||||
kodi = 283;
|
||||
restya-board = 284;
|
||||
mighttpd2 = 285;
|
||||
@ -338,6 +338,7 @@
|
||||
minetest = 311;
|
||||
rss2email = 312;
|
||||
cockroachdb = 313;
|
||||
zoneminder = 314;
|
||||
|
||||
# When adding a uid, make sure it doesn't match an existing gid. And don't use uids above 399!
|
||||
|
||||
@ -604,7 +605,7 @@
|
||||
rslsync = 279;
|
||||
minio = 280;
|
||||
kanboard = 281;
|
||||
pykms = 282;
|
||||
# pykms = 282; # DynamicUser = true
|
||||
kodi = 283;
|
||||
restya-board = 284;
|
||||
mighttpd2 = 285;
|
||||
@ -636,6 +637,7 @@
|
||||
minetest = 311;
|
||||
rss2email = 312;
|
||||
cockroachdb = 313;
|
||||
zoneminder = 314;
|
||||
|
||||
# When adding a gid, make sure it doesn't match an existing
|
||||
# uid. Users and groups with the same name should have equal
|
||||
|
@ -248,6 +248,7 @@
|
||||
./services/desktops/gnome3/at-spi2-core.nix
|
||||
./services/desktops/gnome3/chrome-gnome-shell.nix
|
||||
./services/desktops/gnome3/evolution-data-server.nix
|
||||
./services/desktops/gnome3/file-roller.nix
|
||||
./services/desktops/gnome3/gnome-disks.nix
|
||||
./services/desktops/gnome3/gnome-documents.nix
|
||||
./services/desktops/gnome3/gnome-keyring.nix
|
||||
@ -432,6 +433,7 @@
|
||||
./services/misc/uhub.nix
|
||||
./services/misc/weechat.nix
|
||||
./services/misc/xmr-stak.nix
|
||||
./services/misc/zoneminder.nix
|
||||
./services/misc/zookeeper.nix
|
||||
./services/monitoring/alerta.nix
|
||||
./services/monitoring/apcupsd.nix
|
||||
|
32
nixos/modules/services/desktops/gnome3/file-roller.nix
Normal file
32
nixos/modules/services/desktops/gnome3/file-roller.nix
Normal file
@ -0,0 +1,32 @@
|
||||
# File Roller.
|
||||
|
||||
{ config, pkgs, lib, ... }:
|
||||
|
||||
with lib;
|
||||
|
||||
{
|
||||
|
||||
###### interface
|
||||
|
||||
options = {
|
||||
|
||||
services.gnome3.file-roller = {
|
||||
|
||||
enable = mkEnableOption "File Roller, an archive manager for GNOME";
|
||||
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
|
||||
###### implementation
|
||||
|
||||
config = mkIf config.services.gnome3.file-roller.enable {
|
||||
|
||||
environment.systemPackages = [ pkgs.gnome3.file-roller ];
|
||||
|
||||
services.dbus.packages = [ pkgs.gnome3.file-roller ];
|
||||
|
||||
};
|
||||
|
||||
}
|
@ -5,20 +5,8 @@ with lib;
|
||||
let
|
||||
cfg = config.services.pykms;
|
||||
|
||||
home = "/var/lib/pykms";
|
||||
|
||||
services = {
|
||||
serviceConfig = {
|
||||
Restart = "on-failure";
|
||||
RestartSec = "10s";
|
||||
StartLimitInterval = "1min";
|
||||
PrivateTmp = true;
|
||||
ProtectSystem = "full";
|
||||
ProtectHome = true;
|
||||
};
|
||||
};
|
||||
|
||||
in {
|
||||
meta.maintainers = with lib.maintainers; [ peterhoeg ];
|
||||
|
||||
options = {
|
||||
services.pykms = rec {
|
||||
@ -51,39 +39,38 @@ in {
|
||||
default = false;
|
||||
description = "Whether the listening port should be opened automatically.";
|
||||
};
|
||||
|
||||
memoryLimit = mkOption {
|
||||
type = types.str;
|
||||
default = "64M";
|
||||
description = "How much memory to use at most.";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
networking.firewall.allowedTCPPorts = lib.mkIf cfg.openFirewallPort [ cfg.port ];
|
||||
|
||||
systemd.services = {
|
||||
pykms = services // {
|
||||
description = "Python KMS";
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
serviceConfig = with pkgs; {
|
||||
User = "pykms";
|
||||
Group = "pykms";
|
||||
ExecStartPre = "${getBin pykms}/bin/create_pykms_db.sh ${home}/clients.db";
|
||||
ExecStart = "${getBin pykms}/bin/server.py ${optionalString cfg.verbose "--verbose"} ${cfg.listenAddress} ${toString cfg.port}";
|
||||
WorkingDirectory = home;
|
||||
MemoryLimit = "64M";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
users = {
|
||||
users.pykms = {
|
||||
name = "pykms";
|
||||
group = "pykms";
|
||||
home = home;
|
||||
createHome = true;
|
||||
uid = config.ids.uids.pykms;
|
||||
description = "PyKMS daemon user";
|
||||
};
|
||||
|
||||
groups.pykms = {
|
||||
gid = config.ids.gids.pykms;
|
||||
systemd.services.pykms = let
|
||||
home = "/var/lib/pykms";
|
||||
in {
|
||||
description = "Python KMS";
|
||||
after = [ "network.target" ];
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
# python programs with DynamicUser = true require HOME to be set
|
||||
environment.HOME = home;
|
||||
serviceConfig = with pkgs; {
|
||||
DynamicUser = true;
|
||||
StateDirectory = baseNameOf home;
|
||||
ExecStartPre = "${getBin pykms}/bin/create_pykms_db.sh ${home}/clients.db";
|
||||
ExecStart = lib.concatStringsSep " " ([
|
||||
"${getBin pykms}/bin/server.py"
|
||||
cfg.listenAddress
|
||||
(toString cfg.port)
|
||||
] ++ lib.optional cfg.verbose "--verbose");
|
||||
WorkingDirectory = home;
|
||||
Restart = "on-failure";
|
||||
MemoryLimit = cfg.memoryLimit;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
362
nixos/modules/services/misc/zoneminder.nix
Normal file
362
nixos/modules/services/misc/zoneminder.nix
Normal file
@ -0,0 +1,362 @@
|
||||
{ config, lib, pkgs, ... }:
|
||||
|
||||
let
|
||||
cfg = config.services.zoneminder;
|
||||
pkg = pkgs.zoneminder;
|
||||
|
||||
dirName = pkg.dirName;
|
||||
|
||||
user = "zoneminder";
|
||||
group = {
|
||||
nginx = config.services.nginx.group;
|
||||
none = user;
|
||||
}."${cfg.webserver}";
|
||||
|
||||
useNginx = cfg.webserver == "nginx";
|
||||
|
||||
defaultDir = "/var/lib/${user}";
|
||||
home = if useCustomDir then cfg.storageDir else defaultDir;
|
||||
|
||||
useCustomDir = !(builtins.isNull cfg.storageDir);
|
||||
|
||||
socket = "/run/phpfpm/${dirName}.sock";
|
||||
|
||||
zms = "/cgi-bin/zms";
|
||||
|
||||
dirs = dirList: [ dirName ] ++ map (e: "${dirName}/${e}") dirList;
|
||||
|
||||
cacheDirs = [ "swap" ];
|
||||
libDirs = [ "events" "exports" "images" "sounds" ];
|
||||
|
||||
dirStanzas = baseDir:
|
||||
lib.concatStringsSep "\n" (map (e:
|
||||
"ZM_DIR_${lib.toUpper e}=${baseDir}/${e}"
|
||||
) libDirs);
|
||||
|
||||
defaultsFile = pkgs.writeText "60-defaults.conf" ''
|
||||
# 01-system-paths.conf
|
||||
${dirStanzas home}
|
||||
ZM_PATH_ARP=${lib.getBin pkgs.nettools}/bin/arp
|
||||
ZM_PATH_LOGS=/var/log/${dirName}
|
||||
ZM_PATH_MAP=/dev/shm
|
||||
ZM_PATH_SOCKS=/run/${dirName}
|
||||
ZM_PATH_SWAP=/var/cache/${dirName}/swap
|
||||
ZM_PATH_ZMS=${zms}
|
||||
|
||||
# 02-multiserver.conf
|
||||
ZM_SERVER_HOST=
|
||||
|
||||
# Database
|
||||
ZM_DB_TYPE=mysql
|
||||
ZM_DB_HOST=${cfg.database.host}
|
||||
ZM_DB_NAME=${cfg.database.name}
|
||||
ZM_DB_USER=${cfg.database.username}
|
||||
ZM_DB_PASS=${cfg.database.password}
|
||||
|
||||
# Web
|
||||
ZM_WEB_USER=${user}
|
||||
ZM_WEB_GROUP=${group}
|
||||
'';
|
||||
|
||||
configFile = pkgs.writeText "80-nixos.conf" ''
|
||||
# You can override defaults here
|
||||
|
||||
${cfg.extraConfig}
|
||||
'';
|
||||
|
||||
phpExtensions = with pkgs.phpPackages; [
|
||||
{ pkg = apcu; name = "apcu"; }
|
||||
];
|
||||
|
||||
in {
|
||||
options = {
|
||||
services.zoneminder = with lib; {
|
||||
enable = lib.mkEnableOption ''
|
||||
ZoneMinder
|
||||
</para><para>
|
||||
If you intend to run the database locally, you should set
|
||||
`config.services.zoneminder.database.createLocally` to true. Otherwise,
|
||||
when set to `false` (the default), you will have to create the database
|
||||
and database user as well as populate the database yourself.
|
||||
'';
|
||||
|
||||
webserver = mkOption {
|
||||
type = types.enum [ "nginx" "none" ];
|
||||
default = "nginx";
|
||||
description = ''
|
||||
The webserver to configure for the PHP frontend.
|
||||
</para>
|
||||
<para>
|
||||
|
||||
Set it to `none` if you want to configure it yourself. PRs are welcome
|
||||
for support for other web servers.
|
||||
'';
|
||||
};
|
||||
|
||||
hostname = mkOption {
|
||||
type = types.str;
|
||||
default = "localhost";
|
||||
description = ''
|
||||
The hostname on which to listen.
|
||||
'';
|
||||
};
|
||||
|
||||
port = mkOption {
|
||||
type = types.int;
|
||||
default = 8095;
|
||||
description = ''
|
||||
The port on which to listen.
|
||||
'';
|
||||
};
|
||||
|
||||
openFirewall = mkOption {
|
||||
type = types.bool;
|
||||
default = false;
|
||||
description = ''
|
||||
Open the firewall port(s).
|
||||
'';
|
||||
};
|
||||
|
||||
database = {
|
||||
createLocally = mkOption {
|
||||
type = types.bool;
|
||||
default = false;
|
||||
description = ''
|
||||
Create the database and database user locally.
|
||||
'';
|
||||
};
|
||||
|
||||
host = mkOption {
|
||||
type = types.str;
|
||||
default = "localhost";
|
||||
description = ''
|
||||
Hostname hosting the database.
|
||||
'';
|
||||
};
|
||||
|
||||
name = mkOption {
|
||||
type = types.str;
|
||||
default = "zm";
|
||||
description = ''
|
||||
Name of database.
|
||||
'';
|
||||
};
|
||||
|
||||
username = mkOption {
|
||||
type = types.str;
|
||||
default = "zmuser";
|
||||
description = ''
|
||||
Username for accessing the database.
|
||||
'';
|
||||
};
|
||||
|
||||
password = mkOption {
|
||||
type = types.str;
|
||||
default = "zmpass";
|
||||
description = ''
|
||||
Username for accessing the database.
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
||||
cameras = mkOption {
|
||||
type = types.int;
|
||||
default = 1;
|
||||
description = ''
|
||||
Set this to the number of cameras you expect to support.
|
||||
'';
|
||||
};
|
||||
|
||||
storageDir = mkOption {
|
||||
type = types.nullOr types.str;
|
||||
default = null;
|
||||
example = "/storage/tank";
|
||||
description = ''
|
||||
ZoneMinder can generate quite a lot of data, so in case you don't want
|
||||
to use the default ${home}, you can override the path here.
|
||||
'';
|
||||
};
|
||||
|
||||
extraConfig = mkOption {
|
||||
type = types.lines;
|
||||
default = "";
|
||||
description = ''
|
||||
Additional configuration added verbatim to the configuration file.
|
||||
'';
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
|
||||
environment.etc = {
|
||||
"zoneminder/60-defaults.conf".source = defaultsFile;
|
||||
"zoneminder/80-nixos.conf".source = configFile;
|
||||
};
|
||||
|
||||
networking.firewall.allowedTCPPorts = lib.mkIf cfg.openFirewall [ cfg.port ];
|
||||
|
||||
services = {
|
||||
fcgiwrap = lib.mkIf useNginx {
|
||||
enable = true;
|
||||
preforkProcesses = cfg.cameras;
|
||||
inherit user group;
|
||||
};
|
||||
|
||||
mysql = lib.mkIf cfg.database.createLocally {
|
||||
ensureDatabases = [ cfg.database.name ];
|
||||
ensureUsers = {
|
||||
name = cfg.database.username;
|
||||
ensurePermissions = [
|
||||
{ "${cfg.database.name}.*" = "ALL PRIVILEGES"; }
|
||||
];
|
||||
initialDatabases = [
|
||||
{ inherit (cfg.database) name; schema = "${pkg}/share/zoneminder/db/zm_create.sql"; }
|
||||
];
|
||||
};
|
||||
};
|
||||
|
||||
nginx = lib.mkIf useNginx {
|
||||
enable = true;
|
||||
virtualHosts = {
|
||||
"${cfg.hostname}" = {
|
||||
default = true;
|
||||
root = "${pkg}/share/zoneminder/www";
|
||||
listen = [ { addr = "0.0.0.0"; inherit (cfg) port; } ];
|
||||
extraConfig = let
|
||||
fcgi = config.services.fcgiwrap;
|
||||
in ''
|
||||
index index.php;
|
||||
|
||||
location / {
|
||||
try_files $uri $uri/ /index.php?$args =404;
|
||||
|
||||
location ~ /api/(css|img|ico) {
|
||||
rewrite ^/api(.+)$ /api/app/webroot/$1 break;
|
||||
try_files $uri $uri/ =404;
|
||||
}
|
||||
|
||||
location ~ \.(gif|ico|jpg|jpeg|png)$ {
|
||||
access_log off;
|
||||
expires 30d;
|
||||
}
|
||||
|
||||
location /api {
|
||||
rewrite ^/api(.+)$ /api/app/webroot/index.php?p=$1 last;
|
||||
}
|
||||
|
||||
location /cgi-bin {
|
||||
gzip off;
|
||||
|
||||
include ${pkgs.nginx}/conf/fastcgi_params;
|
||||
fastcgi_param SCRIPT_FILENAME ${pkg}/libexec/zoneminder/${zms};
|
||||
fastcgi_param HTTP_PROXY "";
|
||||
fastcgi_intercept_errors on;
|
||||
|
||||
fastcgi_pass ${fcgi.socketType}:${fcgi.socketAddress};
|
||||
}
|
||||
|
||||
location /cache {
|
||||
alias /var/cache/${dirName};
|
||||
}
|
||||
|
||||
location ~ \.php$ {
|
||||
try_files $uri =404;
|
||||
fastcgi_index index.php;
|
||||
|
||||
include ${pkgs.nginx}/conf/fastcgi_params;
|
||||
fastcgi_param SCRIPT_FILENAME $request_filename;
|
||||
fastcgi_param HTTP_PROXY "";
|
||||
|
||||
fastcgi_pass unix:${socket};
|
||||
}
|
||||
}
|
||||
'';
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
phpfpm = lib.mkIf useNginx {
|
||||
phpOptions = ''
|
||||
date.timezone = "${config.time.timeZone}"
|
||||
|
||||
${lib.concatStringsSep "\n" (map (e:
|
||||
"extension=${e.pkg}/lib/php/extensions/${e.name}.so") phpExtensions)}
|
||||
'';
|
||||
pools.zoneminder = {
|
||||
listen = socket;
|
||||
extraConfig = ''
|
||||
user = ${user}
|
||||
group = ${group}
|
||||
|
||||
listen.owner = ${user}
|
||||
listen.group = ${group}
|
||||
listen.mode = 0660
|
||||
|
||||
pm = dynamic
|
||||
pm.start_servers = 1
|
||||
pm.min_spare_servers = 1
|
||||
pm.max_spare_servers = 2
|
||||
pm.max_requests = 500
|
||||
pm.max_children = 5
|
||||
pm.status_path = /$pool-status
|
||||
ping.path = /$pool-ping
|
||||
'';
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
systemd.services = {
|
||||
zoneminder = with pkgs; rec {
|
||||
inherit (zoneminder.meta) description;
|
||||
documentation = [ "https://zoneminder.readthedocs.org/en/latest/" ];
|
||||
path = [
|
||||
coreutils
|
||||
procps
|
||||
psmisc
|
||||
];
|
||||
after = [ "mysql.service" "nginx.service" ];
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
restartTriggers = [ defaultsFile configFile ];
|
||||
preStart = lib.mkIf useCustomDir ''
|
||||
install -dm775 -o ${user} -g ${group} ${cfg.storageDir}/{${lib.concatStringsSep "," libDirs}}
|
||||
'';
|
||||
serviceConfig = {
|
||||
User = user;
|
||||
Group = group;
|
||||
SupplementaryGroups = [ "video" ];
|
||||
ExecStart = "${zoneminder}/bin/zmpkg.pl start";
|
||||
ExecStop = "${zoneminder}/bin/zmpkg.pl stop";
|
||||
ExecReload = "${zoneminder}/bin/zmpkg.pl restart";
|
||||
PIDFile = "/run/${dirName}/zm.pid";
|
||||
Type = "forking";
|
||||
Restart = "on-failure";
|
||||
RestartSec = "10s";
|
||||
CacheDirectory = dirs cacheDirs;
|
||||
RuntimeDirectory = dirName;
|
||||
ReadWriteDirectories = lib.mkIf useCustomDir [ cfg.storageDir ];
|
||||
StateDirectory = dirs (if useCustomDir then [] else libDirs);
|
||||
LogsDirectory = dirName;
|
||||
PrivateTmp = true;
|
||||
ProtectSystem = "strict";
|
||||
ProtectKernelTunables = true;
|
||||
SystemCallArchitectures = "native";
|
||||
NoNewPrivileges = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
users.groups."${user}" = {
|
||||
gid = config.ids.gids.zoneminder;
|
||||
};
|
||||
|
||||
users.users."${user}" = {
|
||||
uid = config.ids.uids.zoneminder;
|
||||
group = user;
|
||||
inherit home;
|
||||
inherit (pkgs.zoneminder.meta) description;
|
||||
};
|
||||
};
|
||||
|
||||
meta.maintainers = with lib.maintainers; [ peterhoeg ];
|
||||
}
|
@ -5,14 +5,6 @@ with lib;
|
||||
let
|
||||
cfg = config.services.xserver.desktopManager.gnome3;
|
||||
|
||||
# Remove packages of ys from xs, based on their names
|
||||
removePackagesByName = xs: ys:
|
||||
let
|
||||
pkgName = drv: (builtins.parseDrvName drv.name).name;
|
||||
ysNames = map pkgName ys;
|
||||
in
|
||||
filter (x: !(builtins.elem (pkgName x) ysNames)) xs;
|
||||
|
||||
# Prioritize nautilus by default when opening directories
|
||||
mimeAppsList = pkgs.writeTextFile {
|
||||
name = "gnome-mimeapps";
|
||||
@ -103,6 +95,7 @@ in {
|
||||
services.dleyna-server.enable = mkDefault true;
|
||||
services.gnome3.at-spi2-core.enable = true;
|
||||
services.gnome3.evolution-data-server.enable = true;
|
||||
services.gnome3.file-roller.enable = mkDefault true;
|
||||
services.gnome3.gnome-disks.enable = mkDefault true;
|
||||
services.gnome3.gnome-documents.enable = mkDefault true;
|
||||
services.gnome3.gnome-keyring.enable = true;
|
||||
@ -167,7 +160,7 @@ in {
|
||||
"${pkgs.gnome3.glib-networking.out}/lib/gio/modules"
|
||||
"${pkgs.gnome3.gvfs}/lib/gio/modules" ];
|
||||
environment.systemPackages = pkgs.gnome3.corePackages ++ cfg.sessionPath
|
||||
++ (removePackagesByName pkgs.gnome3.optionalPackages config.environment.gnome3.excludePackages) ++ [
|
||||
++ (pkgs.gnome3.removePackagesByName pkgs.gnome3.optionalPackages config.environment.gnome3.excludePackages) ++ [
|
||||
pkgs.xdg-user-dirs # Update user dirs as described in http://freedesktop.org/wiki/Software/xdg-user-dirs/
|
||||
];
|
||||
|
||||
|
@ -3,15 +3,6 @@
|
||||
with lib;
|
||||
|
||||
let
|
||||
|
||||
# Remove packages of ys from xs, based on their names
|
||||
removePackagesByName = xs: ys:
|
||||
let
|
||||
pkgName = drv: (builtins.parseDrvName drv.name).name;
|
||||
ysNames = map pkgName ys;
|
||||
in
|
||||
filter (x: !(builtins.elem (pkgName x) ysNames)) xs;
|
||||
|
||||
xcfg = config.services.xserver;
|
||||
cfg = xcfg.desktopManager.lxqt;
|
||||
|
||||
@ -60,7 +51,7 @@ in
|
||||
environment.systemPackages =
|
||||
pkgs.lxqt.preRequisitePackages ++
|
||||
pkgs.lxqt.corePackages ++
|
||||
(removePackagesByName
|
||||
(pkgs.gnome3.removePackagesByName
|
||||
pkgs.lxqt.optionalPackages
|
||||
config.environment.lxqt.excludePackages);
|
||||
|
||||
|
@ -4,14 +4,6 @@ with lib;
|
||||
|
||||
let
|
||||
|
||||
# Remove packages of ys from xs, based on their names
|
||||
removePackagesByName = xs: ys:
|
||||
let
|
||||
pkgName = drv: (builtins.parseDrvName drv.name).name;
|
||||
ysNames = map pkgName ys;
|
||||
in
|
||||
filter (x: !(builtins.elem (pkgName x) ysNames)) xs;
|
||||
|
||||
addToXDGDirs = p: ''
|
||||
if [ -d "${p}/share/gsettings-schemas/${p.name}" ]; then
|
||||
export XDG_DATA_DIRS=$XDG_DATA_DIRS''${XDG_DATA_DIRS:+:}${p}/share/gsettings-schemas/${p.name}
|
||||
@ -96,7 +88,7 @@ in
|
||||
|
||||
environment.systemPackages =
|
||||
pkgs.mate.basePackages ++
|
||||
(removePackagesByName
|
||||
(pkgs.gnome3.removePackagesByName
|
||||
pkgs.mate.extraPackages
|
||||
config.environment.mate.excludePackages);
|
||||
|
||||
|
@ -158,9 +158,9 @@ in runCommand
|
||||
''
|
||||
mkdir -p $out/{bin,share/pixmaps}
|
||||
|
||||
# TODO: Rename preview -> beta (and add -stable suffix?):
|
||||
echo -n "$startScript" > $out/bin/${pname}
|
||||
chmod +x $out/bin/${pname}
|
||||
|
||||
ln -s ${androidStudio}/bin/studio.png $out/share/pixmaps/${drvName}.png
|
||||
ln -s ${desktopItem}/share/applications $out/share/applications
|
||||
''
|
||||
|
@ -23,8 +23,15 @@ let
|
||||
sha256Hash = "1f7lllj85fia02hgy4ksbqh80sdcml16fv1g892jc6lwykjrdw5y";
|
||||
};
|
||||
in rec {
|
||||
# Old alias
|
||||
preview = beta;
|
||||
# Old alias (TODO @primeos: Remove after 19.03 is branched off):
|
||||
preview = throw ''
|
||||
The attributes "android-studio-preview" and "androidStudioPackages.preview"
|
||||
are now deprecated and will be removed soon, please use
|
||||
"androidStudioPackages.beta" instead. This attribute corresponds to the
|
||||
beta channel, if you want the latest release you can use
|
||||
"androidStudioPackages.dev" or "androidStudioPackages.canary" instead
|
||||
(currently, there is no difference between both channels).
|
||||
'';
|
||||
|
||||
# Attributes are named by their corresponding release channels
|
||||
|
||||
@ -35,7 +42,7 @@ in rec {
|
||||
|
||||
beta = mkStudio (betaVersion // {
|
||||
channel = "beta";
|
||||
pname = "android-studio-preview";
|
||||
pname = "android-studio-beta";
|
||||
});
|
||||
|
||||
dev = mkStudio (latestVersion // {
|
||||
|
@ -32,14 +32,14 @@
|
||||
, wrapGAppsHook
|
||||
}:
|
||||
let
|
||||
version = "3.30.2";
|
||||
version = "3.30.3";
|
||||
pname = "gnome-builder";
|
||||
in stdenv.mkDerivation {
|
||||
name = "${pname}-${version}";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
|
||||
sha256 = "05yax7iv9g831xvw9xdc01qc0l7qpmh6rfd692x8cbg76hljxdrr";
|
||||
sha256 = "11h6apjyah91djf77m8xkl5rvdz7mwpp3bjc4yzzs9lm3pag764r";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
@ -11,13 +11,13 @@ let
|
||||
|
||||
neovim = stdenv.mkDerivation rec {
|
||||
name = "neovim-unwrapped-${version}";
|
||||
version = "0.3.3";
|
||||
version = "0.3.4";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "neovim";
|
||||
repo = "neovim";
|
||||
rev = "v${version}";
|
||||
sha256 = "0jf39br0c7kkvmc8b5n9b3lgy9cmf5sv1gghzafc8qk54bqymy2f";
|
||||
sha256 = "07ncvgp6xfhiwc6hd7qf7zk28n3yj47p26qj1ji29vqkwnk28y3s";
|
||||
};
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
@ -4,14 +4,14 @@ with stdenv.lib;
|
||||
|
||||
pythonPackages.buildPythonPackage rec {
|
||||
pname = "neovim-remote";
|
||||
version = "2.1.3";
|
||||
version = "2.1.4";
|
||||
disabled = !pythonPackages.isPy3k;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "mhinz";
|
||||
repo = "neovim-remote";
|
||||
rev = "v${version}";
|
||||
sha256 = "0nx987af29ajlpwnwfc3z8gplxv69gj53s4bzm6pwwsfbhfakdah";
|
||||
sha256 = "1s438cbyyzgg96b6639wk1ny6d6p2ywcba41l3r027wzyl7wrn8v";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = with pythonPackages; [ pynvim psutil ];
|
||||
|
@ -22,6 +22,11 @@ in pythonPackages.buildPythonApplication rec {
|
||||
|
||||
checkInputs = with pythonPackages; [ pytest mock ];
|
||||
|
||||
postPatch = ''
|
||||
substituteInPlace requirements.txt \
|
||||
--replace '==' '>='
|
||||
'';
|
||||
|
||||
preConfigure = ''
|
||||
export LC_ALL=en_US.utf-8
|
||||
'';
|
||||
|
@ -14,11 +14,11 @@ in
|
||||
|
||||
python3Packages.buildPythonApplication rec {
|
||||
name = "electrum-${version}";
|
||||
version = "3.2.3";
|
||||
version = "3.2.4";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://download.electrum.org/${version}/Electrum-${version}.tar.gz";
|
||||
sha256 = "139kzapas1l61w1in9f7c6ybricid4fzryfnvsrfhpaqh83ydn2c";
|
||||
sha256 = "0nwipn1alk3r54zpsv2bdwsqxw4f08bxnfmygnwakfkiaifmmhxg";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = with python3Packages; [
|
||||
|
@ -1,24 +1,33 @@
|
||||
{ stdenv, fetchgit, cmake, pkgconfig, boost, gnuradio, rtl-sdr, uhd
|
||||
, makeWrapper, hackrf, airspy
|
||||
{ stdenv, fetchgit, cmake, pkgconfig, makeWrapper
|
||||
, boost
|
||||
, pythonSupport ? true, python, swig
|
||||
, airspy
|
||||
, gnuradio
|
||||
, hackrf
|
||||
, libbladeRF
|
||||
, rtl-sdr
|
||||
, soapysdr-with-plugins
|
||||
, uhd
|
||||
}:
|
||||
|
||||
assert pythonSupport -> python != null && swig != null;
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "gnuradio-osmosdr-${version}";
|
||||
version = "0.1.4";
|
||||
version = "2018-08-15";
|
||||
|
||||
src = fetchgit {
|
||||
url = "git://git.osmocom.org/gr-osmosdr";
|
||||
rev = "refs/tags/v${version}";
|
||||
sha256 = "0vyzr4fhkblf2v3d7m0ch5hws4c493jw3ydl4y6b2dfbfzchhsz8";
|
||||
rev = "4d83c6067f059b0c5015c3f59f8117bbd361e877";
|
||||
sha256 = "1d5nb47506qry52bg4cn02d3l4lwxwz44g2fz1ph0q93c7892j60";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ pkgconfig ];
|
||||
buildInputs = [
|
||||
cmake boost gnuradio rtl-sdr uhd makeWrapper hackrf airspy
|
||||
] ++ stdenv.lib.optionals pythonSupport [ python swig ];
|
||||
cmake makeWrapper boost
|
||||
airspy gnuradio hackrf libbladeRF rtl-sdr uhd
|
||||
] ++ stdenv.lib.optionals stdenv.isLinux [ soapysdr-with-plugins ]
|
||||
++ stdenv.lib.optionals pythonSupport [ python swig ];
|
||||
|
||||
postInstall = ''
|
||||
for prog in "$out"/bin/*; do
|
||||
|
@ -6,13 +6,13 @@ assert pythonSupport -> python != null && swig != null;
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "gnuradio-rds-${version}";
|
||||
version = "1.0.0";
|
||||
version = "1.1.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "bastibl";
|
||||
repo = "gr-rds";
|
||||
rev = "v${version}";
|
||||
sha256 = "008284ya464q4h4fd0zvcn6g7bym231p8fl3kdxncz9ks4zsbsxs";
|
||||
sha256 = "0jkzchvw0ivcxsjhi1h0mf7k13araxf5m4wi5v9xdgqxvipjzqfy";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ pkgconfig ];
|
||||
|
@ -4,11 +4,11 @@ with python3Packages;
|
||||
|
||||
buildPythonApplication rec {
|
||||
pname = "img2pdf";
|
||||
version = "0.3.2";
|
||||
version = "0.3.3";
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "07wxgn5khmy94zqqv8l84q9b3yy84ddvwr2f7j4pjycrj2gg7si8";
|
||||
sha256 = "1ksn33j9d9df04n4jx7dli70d700rafbm37gjaz6lwsswrzc2xwx";
|
||||
};
|
||||
|
||||
doCheck = false; # needs pdfrw
|
||||
|
33
pkgs/applications/misc/tdrop/default.nix
Normal file
33
pkgs/applications/misc/tdrop/default.nix
Normal file
@ -0,0 +1,33 @@
|
||||
{ stdenv, lib, fetchFromGitHub, makeWrapper
|
||||
, xwininfo, xdotool, xprop }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "tdrop";
|
||||
version = "unstable-2018-11-13";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "noctuid";
|
||||
repo = "tdrop";
|
||||
rev = "198795c0d2573a31979330d6a2ae946eb81deebf";
|
||||
sha256 = "1fhibqgmls64mylcb6q46ipmg1q6pvaqm26vz933gqav6cqsbdzs";
|
||||
};
|
||||
|
||||
dontBuild = true;
|
||||
|
||||
installFlags = [ "PREFIX=$(out)" ];
|
||||
|
||||
postInstall = ''
|
||||
wrapProgram $out/bin/tdrop \
|
||||
--prefix PATH : ${lib.makeBinPath [ xwininfo xdotool xprop ]}
|
||||
'';
|
||||
|
||||
nativeBuildInputs = [ makeWrapper ];
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
description = "A Glorified WM-Independent Dropdown Creator";
|
||||
homepage = https://github.com/noctuid/tdrop;
|
||||
license = licenses.bsd2;
|
||||
platforms = platforms.linux;
|
||||
maintainers = with maintainers; [ wedens ];
|
||||
};
|
||||
}
|
@ -4,11 +4,11 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "xpad-${version}";
|
||||
version = "5.3.0";
|
||||
version = "5.4.0";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://launchpad.net/xpad/trunk/${version}/+download/xpad-${version}.tar.bz2";
|
||||
sha256 = "0gv9indihr2kbv9iqdqq4mfj6l6qgzwc06jm08gmg10f262sni34";
|
||||
sha256 = "1qpmlwn0bcw1q73ag0l0fdnlzmwawfvsy4g9y5b0vyrc58lcp5d3";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ autoreconfHook pkgconfig wrapGAppsHook ];
|
||||
|
@ -1,41 +1,56 @@
|
||||
{ stdenv, fetchurl, python27Packages, pcsclite, yubikey-personalization }:
|
||||
{ stdenv, fetchurl, fetchFromGitHub
|
||||
, qmake, qtbase, qtquickcontrols, qtsvg
|
||||
, python3, pyotherside, ncurses
|
||||
, pcsclite, yubikey-personalization
|
||||
, yubikey-manager, makeWrapper }:
|
||||
|
||||
python27Packages.buildPythonApplication rec {
|
||||
namePrefix = "";
|
||||
name = "yubioath-desktop-${version}";
|
||||
version = "3.1.0";
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "yubioath-desktop";
|
||||
version = "4.3.4";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://developers.yubico.com/yubioath-desktop/Releases/yubioath-desktop-${version}.tar.gz";
|
||||
sha256 = "0jfvllgh88g2vwd8sg6willlnn2hq05nd9d3xmv98lhl7gyy1akw";
|
||||
};
|
||||
src = fetchurl {
|
||||
url = "https://developers.yubico.com/yubioath-desktop/Releases/yubioath-desktop-${version}.tar.gz";
|
||||
sha256 = "0hb7j71032sigs8zd5r8yr0m59sjkb24vhs2l4jarpvj8q7hv30d";
|
||||
};
|
||||
|
||||
doCheck = false;
|
||||
doCheck = false;
|
||||
|
||||
buildInputs = [ stdenv ];
|
||||
buildInputs = [ stdenv qtbase qtquickcontrols pyotherside python3 ];
|
||||
|
||||
propagatedBuildInputs = [ python27Packages.pycrypto python27Packages.click python27Packages.pyscard python27Packages.pyside ];
|
||||
nativeBuildInputs = [ qmake makeWrapper python3.pkgs.wrapPython ];
|
||||
|
||||
# Need LD_PRELOAD for libykpers as the Nix cpython disables ctypes.cdll.LoadLibrary
|
||||
# support that the yubicommon library uses to load libykpers
|
||||
makeWrapperArgs = ''--prefix LD_LIBRARY_PATH : "${stdenv.lib.getLib pcsclite}/lib:${yubikey-personalization}/lib" --prefix LD_PRELOAD : "${yubikey-personalization}/lib/libykpers-1.so"'';
|
||||
postPatch = ''
|
||||
substituteInPlace deployment.pri \
|
||||
--replace '/usr/bin' "$out/bin"
|
||||
'';
|
||||
|
||||
pythonPath = [ yubikey-manager ];
|
||||
|
||||
# Need LD_PRELOAD for libykpers as the Nix cpython disables ctypes.cdll.LoadLibrary
|
||||
# support that the yubicommon library uses to load libykpers
|
||||
|
||||
postInstall = ''
|
||||
buildPythonPath "$out $pythonPath"
|
||||
wrapProgram $out/bin/yubioath-desktop \
|
||||
--prefix PYTHONPATH : "$program_PYTHONPATH" \
|
||||
--prefix LD_PRELOAD : "${yubikey-personalization}/lib/libykpers-1.so" \
|
||||
--prefix LD_LIBRARY_PATH : "${stdenv.lib.getLib pcsclite}/lib:${yubikey-personalization}/lib"
|
||||
|
||||
postInstall = ''
|
||||
mkdir -p $out/share/applications
|
||||
cp resources/yubioath.desktop $out/share/applications/yubioath.desktop
|
||||
cp resources/yubioath-desktop.desktop \
|
||||
$out/share/applications/yubioath-desktop.desktop
|
||||
mkdir -p $out/share/yubioath/icons
|
||||
cp resources/yubioath*.{icns,ico,png,xpm} $out/share/yubioath/icons
|
||||
substituteInPlace $out/share/applications/yubioath.desktop \
|
||||
--replace 'Exec=yubioath-gui' "Exec=$out/bin/yubioath-gui" \
|
||||
--replace 'Icon=yubioath' "Icon=$out/share/yubioath/icons"
|
||||
cp resources/icons/*.{icns,ico,png,xpm} $out/share/yubioath/icons
|
||||
substituteInPlace $out/share/applications/yubioath-desktop.desktop \
|
||||
--replace 'Exec=yubioath-desktop' "Exec=$out/bin/yubioath-desktop" \
|
||||
'';
|
||||
|
||||
'';
|
||||
meta = with stdenv.lib; {
|
||||
description = "Yubikey Desktop Authenticator";
|
||||
|
||||
meta = {
|
||||
description = "Yubikey Desktop Authenticator";
|
||||
homepage = https://www.yubico.com/support/knowledge-base/categories/articles/yubico-authenticator-download/;
|
||||
|
||||
homepage = https://www.yubico.com/support/knowledge-base/categories/articles/yubico-authenticator-download/;
|
||||
|
||||
license = stdenv.lib.licenses.gpl3;
|
||||
};
|
||||
license = stdenv.lib.licenses.gpl3;
|
||||
maintainers = with maintainers; [ mic92 ];
|
||||
};
|
||||
}
|
||||
|
@ -76,11 +76,11 @@ let rpath = lib.makeLibraryPath [
|
||||
|
||||
in stdenv.mkDerivation rec {
|
||||
pname = "brave";
|
||||
version = "0.58.18";
|
||||
version = "0.58.21";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://github.com/brave/brave-browser/releases/download/v${version}/brave-browser_${version}_amd64.deb";
|
||||
sha256 = "0xybcgsxjmd8bxi4x4midzw71s23j8icpspqf5sadskhldvshzr3";
|
||||
sha256 = "0mml8zjpm8gjw3krppr57y4p10ky975v0s4wyyx7ixr1lzk2qp11";
|
||||
};
|
||||
|
||||
dontConfigure = true;
|
||||
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -15,13 +15,13 @@ with lib;
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "kubernetes-${version}";
|
||||
version = "1.13.1";
|
||||
version = "1.13.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "kubernetes";
|
||||
repo = "kubernetes";
|
||||
rev = "v${version}";
|
||||
sha256 = "048ckirz7v1djari6l9ddkcd9i4yafcv57wk131dv0cs2zady9va";
|
||||
sha256 = "1j5yyzn3c481ba6bbyx6gsa41zhg3x35sdbajlnxmbnid0g21g8g";
|
||||
};
|
||||
|
||||
buildInputs = [ removeReferencesTo makeWrapper which go rsync go-bindata ];
|
||||
|
@ -2,7 +2,7 @@
|
||||
buildGoPackage rec {
|
||||
name = "${pname}-${version}";
|
||||
pname = "terraform-docs";
|
||||
version = "0.5.0";
|
||||
version = "0.6.0";
|
||||
|
||||
goPackagePath = "github.com/segmentio/${pname}";
|
||||
|
||||
@ -10,7 +10,7 @@ buildGoPackage rec {
|
||||
owner = "segmentio";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "12w2yr669hk5kxdb9rrzsn8hwvx8rzrc1rmn8hs9l8z1bkfhr4gg";
|
||||
sha256 = "1p6prhjf82qnhf1zwl9h92j4ds5g383a6g9pwwnqbc3wdwy5zx7d";
|
||||
};
|
||||
|
||||
preBuild = ''
|
||||
|
@ -11,8 +11,8 @@
|
||||
{
|
||||
owner = "terraform-providers";
|
||||
repo = "terraform-provider-alicloud";
|
||||
version = "1.25.0";
|
||||
sha256 = "09f0vdzkifj2mk1qccacpnlqiihbhhb2sfd21rpxbqscmj6a7vj1";
|
||||
version = "1.28.0";
|
||||
sha256 = "1clivywiv41dbdiix5cqghncf782jvpixlh02hlj4hn2cwq2j6mn";
|
||||
};
|
||||
archive =
|
||||
{
|
||||
@ -39,15 +39,22 @@
|
||||
{
|
||||
owner = "terraform-providers";
|
||||
repo = "terraform-provider-aws";
|
||||
version = "1.52.0";
|
||||
sha256 = "037n26spp49r4b4f6cyv6d3sgqw2d80g97fqgz1j0hcwi0am56h1";
|
||||
version = "1.56.0";
|
||||
sha256 = "1jsvkqr3l88z2lq89rjw0nrnm8dsm57nydi45mbzjl3k0j7g028m";
|
||||
};
|
||||
azuread =
|
||||
{
|
||||
owner = "terraform-providers";
|
||||
repo = "terraform-provider-azuread";
|
||||
version = "0.1.0";
|
||||
sha256 = "0jrsg3a9cb16jinzjhg2pfm65b1bfhdwnyhag1x3x4kffm3gm148";
|
||||
};
|
||||
azurerm =
|
||||
{
|
||||
owner = "terraform-providers";
|
||||
repo = "terraform-provider-azurerm";
|
||||
version = "1.20.0";
|
||||
sha256 = "0hfq5gk4bhmw65x1rsdpwv0massgr1sczvcbyh572qlkkhvm59xd";
|
||||
version = "1.21.0";
|
||||
sha256 = "1xvw884nmr3h5ai2ijm2vms12cghas0jbkb52mqbqbaqci7273lc";
|
||||
};
|
||||
azurestack =
|
||||
{
|
||||
@ -102,8 +109,8 @@
|
||||
{
|
||||
owner = "terraform-providers";
|
||||
repo = "terraform-provider-cloudflare";
|
||||
version = "1.9.0";
|
||||
sha256 = "0z11zaii99cilqcq4lgikaanb2zc457qv19sxdh6b3v88n5n8qsf";
|
||||
version = "1.11.0";
|
||||
sha256 = "14v4461bxxr5zdr11v1s89m1x9kpjxa1mff9inx2vwkdz9s02w0i";
|
||||
};
|
||||
cloudscale =
|
||||
{
|
||||
@ -116,8 +123,8 @@
|
||||
{
|
||||
owner = "terraform-providers";
|
||||
repo = "terraform-provider-cloudstack";
|
||||
version = "0.1.5";
|
||||
sha256 = "139wq6rr6fczjz496fqkxh6cmscx5hfnv2hvhfwpkhvqipsnlxmq";
|
||||
version = "0.2.0";
|
||||
sha256 = "1v46da55a8a0hnw319swz3pkd62afy7hdwzybxmp48hxh1i6af74";
|
||||
};
|
||||
cobbler =
|
||||
{
|
||||
@ -193,15 +200,15 @@
|
||||
{
|
||||
owner = "terraform-providers";
|
||||
repo = "terraform-provider-fastly";
|
||||
version = "0.4.0";
|
||||
sha256 = "1fkn9b6ibs36cmhknb3x05g31rf73w70xwx05rh9fhybrz5dd9z9";
|
||||
version = "0.5.0";
|
||||
sha256 = "08mnpf5j0pwhd38yl0phy5ipdvk9hwh8q9kcbv997y8mzpn5703g";
|
||||
};
|
||||
flexibleengine =
|
||||
{
|
||||
owner = "terraform-providers";
|
||||
repo = "terraform-provider-flexibleengine";
|
||||
version = "1.2.1";
|
||||
sha256 = "000v6fmmnwfibzfssk23s9qwrb8a9l0j1qd14x2dqsc7ql0kbnz8";
|
||||
version = "1.3.1";
|
||||
sha256 = "19jncf24hl448srk4r2vqn8sca1mx8pcql9p5nxn015q6gig510v";
|
||||
};
|
||||
github =
|
||||
{
|
||||
@ -214,8 +221,8 @@
|
||||
{
|
||||
owner = "terraform-providers";
|
||||
repo = "terraform-provider-gitlab";
|
||||
version = "1.0.0";
|
||||
sha256 = "1kxmzdzdb6fc64i2bzch6020zfk0ygms9gh5mm1bypsyqmj4qc6r";
|
||||
version = "1.1.0";
|
||||
sha256 = "07mj69w0bvvkbzgfj17z7j34dg19db1d2m4gxwzjj81qmgmvzs3x";
|
||||
};
|
||||
google =
|
||||
{
|
||||
@ -224,6 +231,13 @@
|
||||
version = "1.20.0";
|
||||
sha256 = "1brkq4iz140miai6gzvzxfl28qi4j8gcc22igd7cb4qzafnlbxaj";
|
||||
};
|
||||
google-beta =
|
||||
{
|
||||
owner = "terraform-providers";
|
||||
repo = "terraform-provider-google-beta";
|
||||
version = "1.20.0";
|
||||
sha256 = "0qbzacfm1ai0lflwrq49sjy5y84n8zvaxsp6yz7ifvylqmirj1j0";
|
||||
};
|
||||
grafana =
|
||||
{
|
||||
owner = "terraform-providers";
|
||||
@ -235,8 +249,15 @@
|
||||
{
|
||||
owner = "terraform-providers";
|
||||
repo = "terraform-provider-hcloud";
|
||||
version = "1.6.0";
|
||||
sha256 = "19kax1l2l6vr8cwgy14ahhafnvlxgkw86xx2g9ajfg70d0q4zs3g";
|
||||
version = "1.7.0";
|
||||
sha256 = "10i043mlcp4vvlsd22zcdj2ma3372cxfklrx30kav7w3lfsqgcl6";
|
||||
};
|
||||
hedvig =
|
||||
{
|
||||
owner = "terraform-providers";
|
||||
repo = "terraform-provider-hedvig";
|
||||
version = "1.0.1";
|
||||
sha256 = "1cbvr43qb2kxvsg17cnf91lnfv6cmj0dmc1manxrq1nicsnz6v5f";
|
||||
};
|
||||
helm =
|
||||
{
|
||||
@ -249,8 +270,8 @@
|
||||
{
|
||||
owner = "terraform-providers";
|
||||
repo = "terraform-provider-heroku";
|
||||
version = "1.7.0";
|
||||
sha256 = "0zk5w4xwbg631m7592gfmdbsmrr0r7vla5nd1p5frh6szg6psy6m";
|
||||
version = "1.7.2";
|
||||
sha256 = "0wliiks1cvxai3rca2nzy6dhc763fkrzagsl92c5xsz1zs59vy98";
|
||||
};
|
||||
http =
|
||||
{
|
||||
@ -263,8 +284,8 @@
|
||||
{
|
||||
owner = "terraform-providers";
|
||||
repo = "terraform-provider-huaweicloud";
|
||||
version = "1.2.0";
|
||||
sha256 = "0r05dfgpzci0lpc2ivbrj6ivib8svbks9612by3w3zakzclpv467";
|
||||
version = "1.3.0";
|
||||
sha256 = "1pm2zfss20spfwqidhn04hcq4nxxamjkn6xv8vxm3mgrky1ysvp5";
|
||||
};
|
||||
icinga2 =
|
||||
{
|
||||
@ -291,8 +312,8 @@
|
||||
{
|
||||
owner = "terraform-providers";
|
||||
repo = "terraform-provider-kubernetes";
|
||||
version = "1.4.0";
|
||||
sha256 = "14bhqrpx0z4qn51xwcklafva46ipx05q6myy7xh5wf6wpjz69j9p";
|
||||
version = "1.5.0";
|
||||
sha256 = "1rzydw8bg2rmwvcvjp1h2qd4izkfs96rnmff42h0av22sfxkd7ng";
|
||||
};
|
||||
librato =
|
||||
{
|
||||
@ -305,8 +326,8 @@
|
||||
{
|
||||
owner = "terraform-providers";
|
||||
repo = "terraform-provider-linode";
|
||||
version = "1.3.0";
|
||||
sha256 = "1683nkpq7wnc67pphablcmaifq2l1pz3gc9y5y9jbslllphy92v5";
|
||||
version = "1.4.0";
|
||||
sha256 = "0ak102bmi6yh7x9d3ryyvpck49vgdgwhbk958bbyhfpdr6jrvsrr";
|
||||
};
|
||||
local =
|
||||
{
|
||||
@ -361,15 +382,15 @@
|
||||
{
|
||||
owner = "terraform-providers";
|
||||
repo = "terraform-provider-nomad";
|
||||
version = "1.2.0";
|
||||
sha256 = "1z3knyjn5ymbk4vaja4ka9zn57cgl7vr7hqv6ybqw0q9i2ykaici";
|
||||
version = "1.3.0";
|
||||
sha256 = "06kq0qkrgnj7z13xrgb9shid356m55mz0hkdbm4vfz3fx863mvl3";
|
||||
};
|
||||
ns1 =
|
||||
{
|
||||
owner = "terraform-providers";
|
||||
repo = "terraform-provider-ns1";
|
||||
version = "1.0.0";
|
||||
sha256 = "0zjdhz6miwlg3b68pbd99c6nw7hhyzxy736734xz8g3w89xn18f5";
|
||||
version = "1.1.0";
|
||||
sha256 = "1qfzm35p6kgamm1ffdvll96br025sj496nqzhsnfh3n3hsxzf0b8";
|
||||
};
|
||||
nsxt =
|
||||
{
|
||||
@ -382,8 +403,8 @@
|
||||
{
|
||||
owner = "terraform-providers";
|
||||
repo = "terraform-provider-null";
|
||||
version = "1.0.0";
|
||||
sha256 = "12vpa09xrq8z1pjq0bwzq3889c4fl6c5kvynwqy0z1pdx21m60ha";
|
||||
version = "2.0.0";
|
||||
sha256 = "1qbb4pyzqys2010g6b4yzdzgalrf6az1s24y4sa577q2bix8x45v";
|
||||
};
|
||||
nutanix =
|
||||
{
|
||||
@ -396,8 +417,8 @@
|
||||
{
|
||||
owner = "terraform-providers";
|
||||
repo = "terraform-provider-oci";
|
||||
version = "3.10.0";
|
||||
sha256 = "0dhz3y62dp66jkn0q4x7v2cnqw8kiq34sgyfx8mw706hg9sdqb0l";
|
||||
version = "3.12.0";
|
||||
sha256 = "00mwyangy7n665wlvvr6jmrlfbhnw5spy47q64rmm4pp66gg9brw";
|
||||
};
|
||||
oneandone =
|
||||
{
|
||||
@ -410,22 +431,22 @@
|
||||
{
|
||||
owner = "terraform-providers";
|
||||
repo = "terraform-provider-opc";
|
||||
version = "1.3.1";
|
||||
sha256 = "0rpkhaja6vq1y1xah136vjlp1d5v9adymq300ajssbjkqf93wzs6";
|
||||
version = "1.3.2";
|
||||
sha256 = "0fm53xwgpsmfkqavichxb0vq86bqqpsadlyzqz5jafw3aavx91cb";
|
||||
};
|
||||
openstack =
|
||||
{
|
||||
owner = "terraform-providers";
|
||||
repo = "terraform-provider-openstack";
|
||||
version = "1.12.0";
|
||||
sha256 = "1zv5z55yiqvsh5sh26qlyw8fcc7kyw7v4p60kfnw2ds5kd0b51i1";
|
||||
version = "1.14.0";
|
||||
sha256 = "05vlcfnbfs4xwzfx8lihq63zya19gdgq2xh5ddwprzddm42v1i1z";
|
||||
};
|
||||
opentelekomcloud =
|
||||
{
|
||||
owner = "terraform-providers";
|
||||
repo = "terraform-provider-opentelekomcloud";
|
||||
version = "1.4.0";
|
||||
sha256 = "0dv756npyhadzr08zlv28ghazaj1fdp3avcld7y6ri99hamncm95";
|
||||
version = "1.5.2";
|
||||
sha256 = "1zprj2k86wad9c35jgv22imld8l8f1jjgv54dj54ry56964nhkh8";
|
||||
};
|
||||
opsgenie =
|
||||
{
|
||||
@ -438,8 +459,8 @@
|
||||
{
|
||||
owner = "terraform-providers";
|
||||
repo = "terraform-provider-oraclepaas";
|
||||
version = "1.4.0";
|
||||
sha256 = "1hhkijxnwmm21b0w9qc3lk5vfcg0ac0sg7v4g0ffjqv68mssrz6x";
|
||||
version = "1.4.1";
|
||||
sha256 = "12jsqsyrkmrxpz8zashjwnvn6nkrd6ya06d58m116a0qija1a4s3";
|
||||
};
|
||||
ovh =
|
||||
{
|
||||
@ -473,8 +494,8 @@
|
||||
{
|
||||
owner = "terraform-providers";
|
||||
repo = "terraform-provider-postgresql";
|
||||
version = "0.1.2";
|
||||
sha256 = "08wv03j70mych4nnamivjihwvca3aksjxgjlj8yasz5292qgl05w";
|
||||
version = "0.1.3";
|
||||
sha256 = "1jx907wrq3b9cvx0z4731d1vkp40g358czgpgmky6k8wg70mhp17";
|
||||
};
|
||||
powerdns =
|
||||
{
|
||||
@ -543,8 +564,15 @@
|
||||
{
|
||||
owner = "terraform-providers";
|
||||
repo = "terraform-provider-selvpc";
|
||||
version = "0.3.0";
|
||||
sha256 = "1s1p0qa9x007hq26i4h0gcqpyx54jnwvg8d6ya044gm7gghhviz4";
|
||||
version = "1.1.0";
|
||||
sha256 = "045mp6j5hll0lym9z035swxmdjq43mdpf881qgmk8sz8j2wgvm5f";
|
||||
};
|
||||
skytap =
|
||||
{
|
||||
owner = "terraform-providers";
|
||||
repo = "terraform-provider-skytap";
|
||||
version = "0.9.0";
|
||||
sha256 = "15p2rfaqw5iab8fkxcxigp7nxvs4gmgr2v8ysfyjz01mgwidd0rq";
|
||||
};
|
||||
softlayer =
|
||||
{
|
||||
@ -557,8 +585,8 @@
|
||||
{
|
||||
owner = "terraform-providers";
|
||||
repo = "terraform-provider-spotinst";
|
||||
version = "1.4.0";
|
||||
sha256 = "0kb09v18ksh2r4b5k9iv4rzq403zk1shpakk54pmq8s6i5jd085g";
|
||||
version = "1.5.0";
|
||||
sha256 = "15ggn37qsgzb78g0f6bj1l89zy65yqj66abs7xq5kjxsh62h9dij";
|
||||
};
|
||||
statuscake =
|
||||
{
|
||||
@ -578,8 +606,8 @@
|
||||
{
|
||||
owner = "terraform-providers";
|
||||
repo = "terraform-provider-template";
|
||||
version = "1.0.0";
|
||||
sha256 = "0jl6bp6gwg96sdk5j6s13vv1j9gxjpy2yva3barmzv9138i665mz";
|
||||
version = "2.0.0";
|
||||
sha256 = "0rn2qavvx1y0hv25iw8yd6acvrclmz17hzg2jpb161mnlh8q94r4";
|
||||
};
|
||||
tencentcloud =
|
||||
{
|
||||
@ -599,8 +627,8 @@
|
||||
{
|
||||
owner = "terraform-providers";
|
||||
repo = "terraform-provider-tfe";
|
||||
version = "0.5.0";
|
||||
sha256 = "1acmmsb4nj3l4d7zlzjrh97nhrkgm99wlazjrfavxwly253ck283";
|
||||
version = "0.6.0";
|
||||
sha256 = "1p8l034cjpj81vcvnz8mr2yyw3bz4zffmdg9pz9mp62s8rrrvwkw";
|
||||
};
|
||||
tls =
|
||||
{
|
||||
@ -616,6 +644,13 @@
|
||||
version = "0.5.1";
|
||||
sha256 = "1bn5x6nmhfkrzpxhyfclls85l9qqffvzx1xsgcb3368lhwzarn2f";
|
||||
};
|
||||
ucloud =
|
||||
{
|
||||
owner = "terraform-providers";
|
||||
repo = "terraform-provider-ucloud";
|
||||
version = "1.1.0";
|
||||
sha256 = "0v4f7rvyiwmm64v6gwqdz3mn9sjq5y8mlhd7v9saq7rh56pfx3n2";
|
||||
};
|
||||
ultradns =
|
||||
{
|
||||
owner = "terraform-providers";
|
||||
@ -641,8 +676,8 @@
|
||||
{
|
||||
owner = "terraform-providers";
|
||||
repo = "terraform-provider-vsphere";
|
||||
version = "1.9.0";
|
||||
sha256 = "1by9klwvdw3m854jffimfnsz1lnbaixi4zcv4zzs63dc3flwy2b2";
|
||||
version = "1.9.1";
|
||||
sha256 = "07pxzy8fw0n0kq9mf43bz4cycbwxp8vy0jbl44sknszmzbn4pam7";
|
||||
};
|
||||
matchbox =
|
||||
{
|
||||
|
@ -11,10 +11,12 @@ let
|
||||
inherit (data) owner repo version sha256;
|
||||
name = "${repo}-${version}";
|
||||
goPackagePath = "github.com/${owner}/${repo}";
|
||||
subPackages = [ "." ];
|
||||
src = fetchFromGitHub {
|
||||
inherit owner repo sha256;
|
||||
rev = "v${version}";
|
||||
};
|
||||
|
||||
|
||||
# Terraform allow checking the provider versions, but this breaks
|
||||
# if the versions are not provided via file paths.
|
||||
|
@ -7,7 +7,7 @@
|
||||
# <organisation>/<repo> - include only the named repository.
|
||||
|
||||
# include all terraform-providers
|
||||
terraform-providers terraform-provider- terraform-provider-\\(azure-classic\\|scaffolding\\|google-beta\\|skytap\\)
|
||||
terraform-providers terraform-provider- terraform-provider-\\(azure-classic\\|scaffolding\\)
|
||||
|
||||
# include terraform-provider-matchbox
|
||||
coreos/terraform-provider-matchbox
|
||||
|
@ -97,8 +97,8 @@ in rec {
|
||||
terraform_0_11-full = terraform_0_11.full;
|
||||
|
||||
terraform_0_12 = pluggable (generic {
|
||||
version = "0.12.0-alpha2";
|
||||
sha256 = "1rnxgwfk10b1g3jnh9gv4lqrcszhxq8shaqslml30hafs3dkg71q";
|
||||
version = "0.12.0-alpha4";
|
||||
sha256 = "16cwqxxb19m91d7rx7awri1awz7d8cfnrv0rbql9rbg5qjyqxcp9";
|
||||
patches = [ ./provider-path.patch ];
|
||||
passthru = { inherit plugins; };
|
||||
});
|
||||
|
@ -56,11 +56,11 @@ let
|
||||
|
||||
in stdenv.mkDerivation rec {
|
||||
name = "signal-desktop-${version}";
|
||||
version = "1.19.0";
|
||||
version = "1.20.0";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://updates.signal.org/desktop/apt/pool/main/s/signal-desktop/signal-desktop_${version}_amd64.deb";
|
||||
sha256 = "19a585mylbwrxd2m75hgp77ys1r350xkvawq2ysp0cxzr04l46z7";
|
||||
sha256 = "1w75g7i7hf9b3yilnd6ivhd4xgp4z000x9wnrqcba2dgbr5pz7c7";
|
||||
};
|
||||
|
||||
phases = [ "unpackPhase" "installPhase" ];
|
||||
|
@ -1,14 +1,15 @@
|
||||
{ darkMode ? false, stdenv, fetchurl, dpkg, makeWrapper
|
||||
, alsaLib, atk, cairo, cups, curl, dbus, expat, fontconfig, freetype, glib
|
||||
, gnome2, gtk3, gdk_pixbuf, libnotify, libxcb, nspr, nss, pango
|
||||
, systemd, xorg }:
|
||||
, systemd, xorg, at-spi2-atk }:
|
||||
|
||||
let
|
||||
|
||||
version = "3.3.3";
|
||||
version = "3.3.7";
|
||||
|
||||
rpath = stdenv.lib.makeLibraryPath [
|
||||
alsaLib
|
||||
at-spi2-atk
|
||||
atk
|
||||
cairo
|
||||
cups
|
||||
@ -47,7 +48,7 @@ let
|
||||
if stdenv.hostPlatform.system == "x86_64-linux" then
|
||||
fetchurl {
|
||||
url = "https://downloads.slack-edge.com/linux_releases/slack-desktop-${version}-amd64.deb";
|
||||
sha256 = "01x4anbm62y49zfkyfvxih5rk8g2qi32ppb8j2a5pwssyw4wqbfi";
|
||||
sha256 = "1q3866iaby8rqim8h2m398wzi0isnnlsxirlq63fzz7a4g1hnc8p";
|
||||
}
|
||||
else
|
||||
throw "Slack is not supported on ${stdenv.hostPlatform.system}";
|
||||
|
@ -8,7 +8,7 @@ with stdenv.lib;
|
||||
let
|
||||
bits = "x86_64";
|
||||
|
||||
version = "4.5.9";
|
||||
version = "4.5.10";
|
||||
|
||||
desktopItem = makeDesktopItem rec {
|
||||
name = "Wavebox";
|
||||
@ -25,7 +25,7 @@ in stdenv.mkDerivation rec {
|
||||
name = "wavebox-${version}";
|
||||
src = fetchurl {
|
||||
url = "https://github.com/wavebox/waveboxapp/releases/download/v${version}/${tarball}";
|
||||
sha256 = "158kj7r5p4p3xk5pwzvbd51h543panmgkr64knv418ksyqjdi16g";
|
||||
sha256 = "0863x3gyzzbm6qs26j821b4iy596cc2h7ppdj6hq5rgr7c01ac9k";
|
||||
};
|
||||
|
||||
# don't remove runtime deps
|
||||
|
@ -27,15 +27,15 @@ with stdenv.lib;
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "mutt-${version}";
|
||||
version = "1.11.1";
|
||||
version = "1.11.2";
|
||||
|
||||
src = fetchurl {
|
||||
url = "http://ftp.mutt.org/pub/mutt/${name}.tar.gz";
|
||||
sha256 = "01fvn5h7l9rkwx6qz46svl4hmww108v4bmcywiw3prb26q0l2lbh";
|
||||
sha256 = "08w7lbhj5ba2zkjcd0cxkgfiy9y82yhg731xjg9i9292kz1x8p6s";
|
||||
};
|
||||
|
||||
patches = optional smimeSupport (fetchpatch {
|
||||
url = "https://salsa.debian.org/mutt-team/mutt/raw/debian/1.11.1-2/debian/patches/misc/smime.rc.patch";
|
||||
url = "https://salsa.debian.org/mutt-team/mutt/raw/debian/1.11.2-2/debian/patches/misc/smime.rc.patch";
|
||||
sha256 = "1rl27qqwl4nw321ll5jcvfmkmz4fkvcsh5vihjcrhzzyf6vz8wmj";
|
||||
});
|
||||
|
||||
|
@ -3,12 +3,12 @@
|
||||
with stdenv.lib;
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
version = "1.4.1";
|
||||
version = "1.4.2";
|
||||
name = "mpop-${version}";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://marlam.de/mpop/releases/${name}.tar.xz";
|
||||
sha256 = "1b9mj6yfa8vg5flxw1xb8xalifjg87dghbg523i6fbr7679zl9iy";
|
||||
sha256 = "1rx5mhgqkm7swbynrhbsz32v85h0rydb4kqfgfs9jrznd9d14m2d";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ pkgconfig ];
|
||||
|
@ -1,7 +1,7 @@
|
||||
{ stdenv, fetchurl, buildFHSUserEnv, makeDesktopItem, runCommand, bash, wrapGAppsHook, gsettings-desktop-schemas, gtk3, gnome3 }:
|
||||
|
||||
let
|
||||
version = "5.0.35.1";
|
||||
version = "5.0.60";
|
||||
meta = with stdenv.lib; {
|
||||
homepage = https://www.zotero.org;
|
||||
description = "Collect, organize, cite, and share your research sources";
|
||||
@ -15,7 +15,7 @@ zoteroSrc = stdenv.mkDerivation rec {
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://download.zotero.org/client/release/${version}/Zotero-${version}_linux-x86_64.tar.bz2";
|
||||
sha256 = "0d2imvp84svllrnja1dl4nldp634z632g5xkm2q9v7j3dwbzw1hw";
|
||||
sha256 = "0753xk95shhxma4dvdxrj2q6y81z8lianxg7jnab9m17fb67jy2d";
|
||||
};
|
||||
|
||||
buildInputs= [ wrapGAppsHook gsettings-desktop-schemas gtk3 gnome3.adwaita-icon-theme gnome3.dconf ];
|
||||
@ -32,7 +32,7 @@ zoteroSrc = stdenv.mkDerivation rec {
|
||||
fhsEnv = buildFHSUserEnv {
|
||||
name = "zotero-fhs-env";
|
||||
targetPkgs = pkgs: with pkgs; with xorg; [
|
||||
gtk3 dbus-glib
|
||||
gtk3 dbus-glib glib
|
||||
libXt nss
|
||||
libX11
|
||||
];
|
||||
|
@ -2,11 +2,11 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "picard-tools-${version}";
|
||||
version = "2.18.21";
|
||||
version = "2.18.23";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://github.com/broadinstitute/picard/releases/download/${version}/picard.jar";
|
||||
sha256 = "0p1na79p0kz1x1nd88100487s4f306p8k4m7dq5r4m2kdsc1dqin";
|
||||
sha256 = "13521lcblbcb4vshcrrw6qlqlzvm88grp4vm8d0b3hwbl3rr0py4";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ makeWrapper ];
|
||||
|
@ -5,11 +5,60 @@
|
||||
, makeWrapper
|
||||
, m4
|
||||
, gmp
|
||||
# don't remove any packages -- results in a ~1.3G size increase
|
||||
# see https://github.com/NixOS/nixpkgs/pull/38754 for a discussion
|
||||
, keepAllPackages ? true
|
||||
# one of
|
||||
# - "minimal" (~400M):
|
||||
# Install the bare minimum of packages required by gap to start.
|
||||
# This is likely to break a lot of stuff. Do not expect upstream support with
|
||||
# this configuration.
|
||||
# - "standard" (~700M):
|
||||
# Install the "standard packages" which gap autoloads by default. These
|
||||
# packages are effectively considered a part of gap.
|
||||
# - "full" (~1.7G):
|
||||
# Install all available packages. This takes a lot of space.
|
||||
, packageSet ? "standard"
|
||||
# Kept for backwards compatibility. Overrides packageSet to "full".
|
||||
, keepAllPackages ? false
|
||||
}:
|
||||
let
|
||||
# packages absolutely required for gap to start
|
||||
# `*` represents the version where applicable
|
||||
requiredPackages = [
|
||||
"GAPDoc-*"
|
||||
"primgrp-*"
|
||||
"SmallGrp-*"
|
||||
"transgrp"
|
||||
];
|
||||
# packages autoloaded by default if available
|
||||
autoloadedPackages = [
|
||||
"atlasrep"
|
||||
"autpgrp-*"
|
||||
"alnuth-*"
|
||||
"crisp-*"
|
||||
"ctbllib"
|
||||
"FactInt-*"
|
||||
"fga"
|
||||
"irredsol-*"
|
||||
"laguna-*"
|
||||
"polenta-*"
|
||||
"polycyclic-*"
|
||||
"resclasses-*"
|
||||
"sophus-*"
|
||||
"tomlib-*"
|
||||
];
|
||||
standardPackages = requiredPackages ++ autoloadedPackages;
|
||||
keepAll = keepAllPackages || (packageSet == "full");
|
||||
packagesToKeep = requiredPackages ++ lib.optionals (packageSet == "standard") autoloadedPackages;
|
||||
|
||||
# Generate bash script that removes all packages from the `pkg` subdirectory
|
||||
# that are not on the whitelist. The whitelist consists of strings expected by
|
||||
# `find`'s `-name`.
|
||||
removeNonWhitelistedPkgs = whitelist: ''
|
||||
find pkg -type d -maxdepth 1 -mindepth 1 \
|
||||
'' + (lib.concatStringsSep "\n" (map (str: "-not -name '${str}' \\") whitelist)) + ''
|
||||
-exec echo "Removing package {}" \; \
|
||||
-exec rm -r '{}' \;
|
||||
'';
|
||||
in
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "gap";
|
||||
# https://www.gap-system.org/Releases/
|
||||
@ -21,14 +70,8 @@ stdenv.mkDerivation rec {
|
||||
};
|
||||
|
||||
# remove all non-essential packages (which take up a lot of space)
|
||||
preConfigure = ''
|
||||
preConfigure = lib.optionalString (!keepAll) (removeNonWhitelistedPkgs packagesToKeep) + ''
|
||||
patchShebangs .
|
||||
'' + lib.optionalString (!keepAllPackages) ''
|
||||
find pkg -type d -maxdepth 1 -mindepth 1 \
|
||||
-not -name 'GAPDoc-*' \
|
||||
-not -name 'autpgrp*' \
|
||||
-exec echo "Removing package {}" \; \
|
||||
-exec rm -r {} \;
|
||||
'';
|
||||
|
||||
configureFlags = [ "--with-gmp=system" ];
|
||||
@ -107,7 +150,16 @@ stdenv.mkDerivation rec {
|
||||
popd
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
installTargets = [
|
||||
"install-libgap"
|
||||
"install-headers"
|
||||
];
|
||||
|
||||
# full `make install` is not yet implemented, just for libgap and headers
|
||||
postInstall = ''
|
||||
# Install config.h, which is not currently handled by `make install-headers`
|
||||
cp gen/config.h "$out/include/gap"
|
||||
|
||||
mkdir -p "$out/bin" "$out/share/gap/"
|
||||
|
||||
mkdir -p "$out/share/gap"
|
||||
@ -129,6 +181,7 @@ stdenv.mkDerivation rec {
|
||||
[
|
||||
raskin
|
||||
chrisjefferson
|
||||
timokau
|
||||
];
|
||||
platforms = platforms.all;
|
||||
# keeping all packages increases the package size considerably, wchich
|
||||
|
@ -1,14 +1,14 @@
|
||||
{ stdenv, fetchurl, cmake, openblasCompat, gfortran, gmm, fltk, libjpeg
|
||||
, zlib, libGLU_combined, libGLU, xorg }:
|
||||
|
||||
let version = "4.0.7"; in
|
||||
let version = "4.1.0"; in
|
||||
|
||||
stdenv.mkDerivation {
|
||||
name = "gmsh-${version}";
|
||||
|
||||
src = fetchurl {
|
||||
url = "http://gmsh.info/src/gmsh-${version}-source.tgz";
|
||||
sha256 = "c6572320d0ffdf7d2488e113861bc4bd9c38a29f7fc5b67957f6fbcb63fbdbd5";
|
||||
sha256 = "0k53k6s4hmciakhrb3ka109vk06ckdbyms5ixizijlfh1dvh7iim";
|
||||
};
|
||||
|
||||
buildInputs = [ cmake openblasCompat gmm fltk libjpeg zlib libGLU_combined
|
||||
|
@ -7,7 +7,7 @@
|
||||
, graphs
|
||||
, elliptic_curves
|
||||
, polytopes_db
|
||||
, gap-libgap-compatible
|
||||
, gap
|
||||
, ecl
|
||||
, combinatorial_designs
|
||||
, jmol
|
||||
@ -35,7 +35,7 @@ writeTextFile rec {
|
||||
export GRAPHS_DATA_DIR='${graphs}/share/graphs'
|
||||
export ELLCURVE_DATA_DIR='${elliptic_curves}/share/ellcurves'
|
||||
export POLYTOPE_DATA_DIR='${polytopes_db}/share/reflexive_polytopes'
|
||||
export GAP_ROOT_DIR='${gap-libgap-compatible}/share/gap/build-dir'
|
||||
export GAP_ROOT_DIR='${gap}/share/gap/build-dir'
|
||||
export ECLDIR='${ecl}/lib/ecl-${ecl.version}/'
|
||||
export COMBINATORIAL_DESIGN_DATA_DIR="${combinatorial_designs}/share/combinatorial_designs"
|
||||
export CREMONA_MINI_DATA_DIR="${elliptic_curves}/share/cremona"
|
||||
|
@ -1,13 +0,0 @@
|
||||
diff --git a/src/sage/libs/gap/util.pyx b/src/sage/libs/gap/util.pyx
|
||||
index 5ff67107c1..1318df86fd 100644
|
||||
--- a/src/sage/libs/gap/util.pyx
|
||||
+++ b/src/sage/libs/gap/util.pyx
|
||||
@@ -165,7 +165,7 @@ def _guess_gap_root():
|
||||
EXAMPLES::
|
||||
|
||||
sage: from sage.libs.gap.util import _guess_gap_root
|
||||
- sage: _guess_gap_root()
|
||||
+ sage: _guess_gap_root() # not tested (not necessary on nixos)
|
||||
The gap-4.5.5.spkg (or later) seems to be not installed!
|
||||
...
|
||||
"""
|
@ -0,0 +1,19 @@
|
||||
diff --git a/src/sage/doctest/forker.py b/src/sage/doctest/forker.py
|
||||
index 02e18e67e7..2ebf6eb35f 100644
|
||||
--- a/src/sage/doctest/forker.py
|
||||
+++ b/src/sage/doctest/forker.py
|
||||
@@ -1075,6 +1075,14 @@ class SageDocTestRunner(doctest.DocTestRunner, object):
|
||||
sage: set(ex2.predecessors) == set([ex0,ex1])
|
||||
True
|
||||
"""
|
||||
+
|
||||
+ # Fix ECL dir race conditions by using a separate dir for each process
|
||||
+ # (https://trac.sagemath.org/ticket/26968)
|
||||
+ os.environ['MAXIMA_USERDIR'] = "{}/sage-maxima-{}".format(
|
||||
+ tempfile.gettempdir(),
|
||||
+ os.getpid()
|
||||
+ )
|
||||
+
|
||||
if isinstance(globs, RecordingDict):
|
||||
globs.start()
|
||||
example.sequence_number = len(self.history)
|
@ -14,8 +14,7 @@
|
||||
, python3
|
||||
, pkg-config
|
||||
, pari
|
||||
, gap-libgap-compatible
|
||||
, libgap
|
||||
, gap
|
||||
, ecl
|
||||
, maxima-ecl
|
||||
, singular
|
||||
@ -70,8 +69,7 @@ let
|
||||
binutils.bintools
|
||||
pkg-config
|
||||
pari
|
||||
gap-libgap-compatible
|
||||
libgap
|
||||
gap
|
||||
ecl
|
||||
maxima-ecl
|
||||
singular
|
||||
@ -118,7 +116,7 @@ writeTextFile rec {
|
||||
|
||||
# set dependent vars, like JUPYTER_CONFIG_DIR
|
||||
source "${sagelib.src}/src/bin/sage-env"
|
||||
export PATH="${runtimepath}:$orig_path" # sage-env messes with PATH
|
||||
export PATH="$RUNTIMEPATH_PREFIX:${runtimepath}:$orig_path" # sage-env messes with PATH
|
||||
|
||||
export SAGE_LOGS="$TMPDIR/sage-logs"
|
||||
export SAGE_DOC="''${SAGE_DOC_OVERRIDE:-doc-placeholder}"
|
||||
@ -133,7 +131,7 @@ writeTextFile rec {
|
||||
export LDFLAGS='${
|
||||
lib.concatStringsSep " " (map (pkg: "-L${pkg}/lib") [
|
||||
flint
|
||||
libgap
|
||||
gap
|
||||
glpk
|
||||
gmp
|
||||
mpfr
|
||||
@ -153,7 +151,7 @@ writeTextFile rec {
|
||||
gmp.dev
|
||||
glpk
|
||||
flint
|
||||
libgap
|
||||
gap
|
||||
pynac
|
||||
mpfr.dev
|
||||
])
|
||||
|
@ -9,14 +9,14 @@
|
||||
# all get the same sources with the same patches applied.
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
version = "8.5";
|
||||
version = "8.6";
|
||||
name = "sage-src-${version}";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "sagemath";
|
||||
repo = "sage";
|
||||
rev = version;
|
||||
sha256 = "08mb9626phsls2phdzqxsnp2df5pn5qr72m0mm4nncby26pwn19c";
|
||||
sha256 = "1vs3pbgbqpg0qnwr018bqsdmm7crgjp310cx8zwh7za3mv1cw5j3";
|
||||
};
|
||||
|
||||
# Patches needed because of particularities of nix or the way this is packaged.
|
||||
@ -47,7 +47,8 @@ stdenv.mkDerivation rec {
|
||||
# https://trac.sagemath.org/ticket/26110 for an upstream discussion.
|
||||
./patches/Only-test-py2-py3-optional-tests-when-all-of-sage-is.patch
|
||||
|
||||
./patches/dont-test-guess-gaproot.patch
|
||||
# Fixes a potential race condition which can lead to transient doctest failures.
|
||||
./patches/fix-ecl-race.patch
|
||||
];
|
||||
|
||||
# Patches needed because of package updates. We could just pin the versions of
|
||||
@ -60,12 +61,13 @@ stdenv.mkDerivation rec {
|
||||
# Fetch a diff between `base` and `rev` on sage's git server.
|
||||
# Used to fetch trac tickets by setting the `base` to the last release and the
|
||||
# `rev` to the last commit of the ticket.
|
||||
fetchSageDiff = { base, rev, ...}@args: (
|
||||
fetchSageDiff = { base, rev, name ? "sage-diff-${base}-${rev}.patch", ...}@args: (
|
||||
fetchpatch ({
|
||||
url = "https://git.sagemath.org/sage.git/patch?id2=${base}&id=${rev}";
|
||||
inherit name;
|
||||
url = "https://git.sagemath.org/sage.git/rawdiff?id2=${base}&id=${rev}";
|
||||
# We don't care about sage's own build system (which builds all its dependencies).
|
||||
# Exclude build system changes to avoid conflicts.
|
||||
excludes = [ "build/*" ];
|
||||
excludes = [ "/build/*" ];
|
||||
} // builtins.removeAttrs args [ "rev" "base" ])
|
||||
);
|
||||
in [
|
||||
@ -82,21 +84,6 @@ stdenv.mkDerivation rec {
|
||||
# https://trac.sagemath.org/ticket/26315
|
||||
./patches/giac-1.5.0.patch
|
||||
|
||||
# https://trac.sagemath.org/ticket/26326
|
||||
# needs to be split because there is a merge commit in between
|
||||
(fetchSageDiff {
|
||||
name = "networkx-2.2-1.patch";
|
||||
base = "8.4";
|
||||
rev = "68f5ad068184745b38ba6716bf967c8c956c52c5";
|
||||
sha256 = "112b5ywdqgyzgvql2jj5ss8la9i8rgnrzs8vigsfzg4shrcgh9p6";
|
||||
})
|
||||
(fetchSageDiff {
|
||||
name = "networkx-2.2-2.patch";
|
||||
base = "626485bbe5f33bf143d6dfba4de9c242f757f59b~1";
|
||||
rev = "db10d327ade93711da735a599a67580524e6f7b4";
|
||||
sha256 = "09v87id25fa5r9snfn4mv79syhc77jxfawj5aizmdpwdmpgxjk1f";
|
||||
})
|
||||
|
||||
# https://trac.sagemath.org/ticket/26442
|
||||
(fetchSageDiff {
|
||||
name = "cypari2-2.0.3.patch";
|
||||
|
@ -6,8 +6,7 @@
|
||||
, pkg-config
|
||||
, three
|
||||
, singular
|
||||
, libgap
|
||||
, gap-libgap-compatible
|
||||
, gap
|
||||
, giac
|
||||
, maxima-ecl
|
||||
, pari
|
||||
@ -35,8 +34,7 @@ let
|
||||
three
|
||||
pynac
|
||||
giac
|
||||
libgap
|
||||
gap-libgap-compatible
|
||||
gap
|
||||
pari
|
||||
gmp
|
||||
gfan
|
||||
|
@ -20,7 +20,7 @@
|
||||
, jinja2
|
||||
, lcalc
|
||||
, lrcalc
|
||||
, libgap
|
||||
, gap
|
||||
, linbox
|
||||
, m4ri
|
||||
, m4rie
|
||||
@ -88,7 +88,7 @@ buildPythonPackage rec {
|
||||
glpk
|
||||
gsl
|
||||
lcalc
|
||||
libgap
|
||||
gap
|
||||
libmpc
|
||||
linbox
|
||||
lrcalc
|
||||
|
@ -1,7 +1,7 @@
|
||||
{ stdenv, lib, fetchFromGitHub, makeWrapper, git, gnupg, gawk }:
|
||||
|
||||
let
|
||||
version = "0.2.4";
|
||||
version = "0.2.5";
|
||||
repo = "git-secret";
|
||||
|
||||
in stdenv.mkDerivation {
|
||||
@ -11,7 +11,7 @@ in stdenv.mkDerivation {
|
||||
inherit repo;
|
||||
owner = "sobolevn";
|
||||
rev = "v${version}";
|
||||
sha256 = "0lx2rjyhy3xh6ik755lbbl40v7a7ayyqk68jj8mnv42f2vhd66xl";
|
||||
sha256 = "1caxdx1ps662vfa79f7l1bwgwgwf974ahzii0hzaqfnkxy45i520";
|
||||
};
|
||||
|
||||
buildInputs = [ makeWrapper ];
|
||||
|
@ -4,7 +4,7 @@
|
||||
|
||||
let
|
||||
# if you bump version, update pkgs.tortoisehg too or ping maintainer
|
||||
version = "4.8.1";
|
||||
version = "4.8.2";
|
||||
name = "mercurial-${version}";
|
||||
inherit (python2Packages) docutils hg-git dulwich python;
|
||||
in python2Packages.buildPythonApplication {
|
||||
@ -13,7 +13,7 @@ in python2Packages.buildPythonApplication {
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://mercurial-scm.org/release/${name}.tar.gz";
|
||||
sha256 = "08gsn0s5802bs8ks77xqg7c8dwpbsh8df47kvb1gn14ivrf5z928";
|
||||
sha256 = "1cpx8nf6vcqz92kx6b5c4900pcay8zb89gvy8y33prh5rywjq83c";
|
||||
};
|
||||
|
||||
inherit python; # pass it so that the same version can be used in hg2git
|
||||
|
28
pkgs/data/fonts/agave/default.nix
Normal file
28
pkgs/data/fonts/agave/default.nix
Normal file
@ -0,0 +1,28 @@
|
||||
{ stdenv, fetchurl }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "agave-${version}";
|
||||
version = "008";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://github.com/agarick/agave/releases/download/v${version}/${name}.tar.gz";
|
||||
sha256 = "0g50mqpffn4dq761vibaf8dwfkbcl5da1cc89qz6pq35ircipbns";
|
||||
};
|
||||
|
||||
sourceRoot = ".";
|
||||
|
||||
dontBuild = true;
|
||||
installPhase = ''
|
||||
mkdir -p $out/share/fonts/truetype
|
||||
cp *.ttf $out/share/fonts/truetype
|
||||
'';
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
description = "truetype monospaced typeface designed for X environments";
|
||||
homepage = https://b.agaric.net/page/agave;
|
||||
license = licenses.mit;
|
||||
maintainers = with maintainers; [ dtzWill ];
|
||||
platforms = platforms.all;
|
||||
};
|
||||
}
|
||||
|
24
pkgs/data/fonts/ankacoder/condensed.nix
Normal file
24
pkgs/data/fonts/ankacoder/condensed.nix
Normal file
@ -0,0 +1,24 @@
|
||||
{ stdenv, fetchzip }:
|
||||
|
||||
let version = "1.100"; in
|
||||
fetchzip rec {
|
||||
name = "ankacoder-condensed-${version}";
|
||||
url = "https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/anka-coder-fonts/AnkaCoderCondensed.${version}.zip";
|
||||
|
||||
postFetch = ''
|
||||
unzip $downloadedFile
|
||||
mkdir -p $out/share/fonts/truetype
|
||||
cp *.ttf $out/share/fonts/truetype
|
||||
'';
|
||||
|
||||
sha256 = "0i80zpr2y9368rg2i6x8jv0g7d03kdyr5h7w9yz7pjd7i9xd8439";
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
description = "Anka/Coder Condensed font";
|
||||
homepage = https://code.google.com/archive/p/anka-coder-fonts;
|
||||
license = licenses.ofl;
|
||||
maintainers = with maintainers; [ dtzWill ];
|
||||
platforms = platforms.all;
|
||||
};
|
||||
}
|
||||
|
24
pkgs/data/fonts/ankacoder/default.nix
Normal file
24
pkgs/data/fonts/ankacoder/default.nix
Normal file
@ -0,0 +1,24 @@
|
||||
{ stdenv, fetchzip }:
|
||||
|
||||
let version = "1.100"; in
|
||||
fetchzip rec {
|
||||
name = "ankacoder-${version}";
|
||||
url = "https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/anka-coder-fonts/AnkaCoder.${version}.zip";
|
||||
|
||||
postFetch = ''
|
||||
unzip $downloadedFile
|
||||
mkdir -p $out/share/fonts/truetype
|
||||
cp *.ttf $out/share/fonts/truetype
|
||||
'';
|
||||
|
||||
sha256 = "1jqx9micfmiarqh9xp330gl96v3vxbwzz9cmg2vi845n9md4im85";
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
description = "Anka/Coder fonts";
|
||||
homepage = https://code.google.com/archive/p/anka-coder-fonts;
|
||||
license = licenses.ofl;
|
||||
maintainers = with maintainers; [ dtzWill ];
|
||||
platforms = platforms.all;
|
||||
};
|
||||
}
|
||||
|
35
pkgs/data/fonts/cherry/default.nix
Normal file
35
pkgs/data/fonts/cherry/default.nix
Normal file
@ -0,0 +1,35 @@
|
||||
{ stdenv, fetchFromGitHub, bdftopcf }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "${pname}-${version}";
|
||||
pname = "cherry";
|
||||
version = "1.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "turquoise-hexagon";
|
||||
repo = pname;
|
||||
rev = version;
|
||||
sha256 = "1sfajzndv78v8hb156876i2rw3zw8xys6qi8zr4yi0isgsqj5yx5";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ bdftopcf ];
|
||||
|
||||
buildPhase = ''
|
||||
patchShebangs make.sh
|
||||
./make.sh
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p $out/share/fonts/misc
|
||||
cp *.pcf $out/share/fonts/misc
|
||||
'';
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
description = "cherry font";
|
||||
homepage = https://github.com/turquoise-hexagon/cherry;
|
||||
license = licenses.mit;
|
||||
maintainers = with maintainers; [ dtzWill ];
|
||||
platforms = platforms.all;
|
||||
};
|
||||
}
|
||||
|
28
pkgs/data/fonts/hermit/default.nix
Normal file
28
pkgs/data/fonts/hermit/default.nix
Normal file
@ -0,0 +1,28 @@
|
||||
{ stdenv, fetchurl }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "hermit";
|
||||
version = "2.0";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://pcaro.es/d/otf-${pname}-${version}.tar.gz";
|
||||
sha256 = "09rmy3sbf1j1hr8zidighjgqc8kp0wsra115y27vrnlf10ml6jy0";
|
||||
};
|
||||
|
||||
sourceRoot = ".";
|
||||
|
||||
dontBuild = true;
|
||||
installPhase = ''
|
||||
mkdir -p $out/share/fonts/opentype
|
||||
cp *.otf $out/share/fonts/opentype/
|
||||
'';
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
description = "monospace font designed to be clear, pragmatic and very readable";
|
||||
homepage = https://pcaro.es/p/hermit;
|
||||
license = licenses.ofl;
|
||||
maintainers = with maintainers; [ dtzWill ];
|
||||
platforms = platforms.all;
|
||||
};
|
||||
}
|
||||
|
23
pkgs/data/fonts/luculent/default.nix
Normal file
23
pkgs/data/fonts/luculent/default.nix
Normal file
@ -0,0 +1,23 @@
|
||||
{ lib, fetchzip }:
|
||||
|
||||
let version = "2.0.0"; in
|
||||
fetchzip rec {
|
||||
name = "luculent-${version}";
|
||||
url = http://www.eastfarthing.com/luculent/luculent.tar.xz;
|
||||
|
||||
postFetch = ''
|
||||
tar -xJf $downloadedFile --strip-components=1
|
||||
mkdir -p $out/share/fonts/truetype
|
||||
cp *.ttf $out/share/fonts/truetype
|
||||
'';
|
||||
|
||||
sha256 = "1m3g64galwna1xjxb1fczmfplm6c1fn3ra1ln7f0vkm0ah5m4lbv";
|
||||
|
||||
meta = with lib; {
|
||||
description = "luculent font";
|
||||
homepage = http://www.eastfarthing.com/luculent/;
|
||||
license = licenses.ofl;
|
||||
maintainers = with maintainers; [ dtzWill ];
|
||||
platforms = platforms.all;
|
||||
};
|
||||
}
|
@ -2,13 +2,13 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "zafiro-icons";
|
||||
version = "0.8.1";
|
||||
version = "0.8.3";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "zayronxio";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "121fpg74vra8kfvgxi3i7p09qxhck45kv270x6cv5dq1fp2hdm8k";
|
||||
sha256 = "1hflpnliww5fkk7bsgmi8hlrbqvkijjjmbzjqnnl991nqsqxqxpl";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ gtk3 ];
|
||||
|
@ -1,4 +1,4 @@
|
||||
{ stdenv, meson, ninja, gettext, fetchurl, evince, gjs
|
||||
{ stdenv, meson, ninja, gettext, fetchurl, fetchpatch, evince, gjs
|
||||
, pkgconfig, gtk3, glib, tracker, tracker-miners
|
||||
, itstool, libxslt, webkitgtk, libgdata
|
||||
, gnome-desktop, libzapojit, libgepub
|
||||
@ -31,6 +31,14 @@ stdenv.mkDerivation rec {
|
||||
gnome-desktop libzapojit libgepub
|
||||
];
|
||||
|
||||
patches = [
|
||||
# fix RPATH to libgd
|
||||
(fetchpatch {
|
||||
url = "https://gitlab.gnome.org/GNOME/gnome-documents/commit/d18a92e0a940073ac766f609937539e4fc6cdbb7.patch";
|
||||
sha256 = "0s3mk8vrl1gzk93yvgqbnz44i27qw1d9yvvmnck3fv23phrxkzk9";
|
||||
})
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
chmod +x meson_post_install.py # patchShebangs requires executable file
|
||||
patchShebangs meson_post_install.py
|
||||
|
@ -1,16 +1,22 @@
|
||||
{ stdenv, fetchurl, pkgconfig, intltool, gobject-introspection, wrapGAppsHook, gjs, glib, gtk3, gdk_pixbuf, gst_all_1, gnome3 }:
|
||||
{ stdenv, fetchurl, fetchpatch, pkgconfig, intltool, gobject-introspection, wrapGAppsHook, gjs, glib, gtk3, gdk_pixbuf, gst_all_1, gnome3 }:
|
||||
|
||||
let
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "gnome-sound-recorder";
|
||||
version = "3.28.1";
|
||||
in stdenv.mkDerivation rec {
|
||||
name = "${pname}-${version}";
|
||||
version = "3.28.2";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
|
||||
sha256 = "0y0srj1hvr1waa35p6dj1r1mlgcsscc0i99jni50ijp4zb36fjqy";
|
||||
url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
|
||||
sha256 = "1k63xr3d16qbzi88md913ndaf2mzwmhmi6hipj0123sm7nsz1p94";
|
||||
};
|
||||
|
||||
patches = [
|
||||
# Fix crash when trying to play recordings
|
||||
(fetchpatch {
|
||||
url = https://gitlab.gnome.org/GNOME/gnome-sound-recorder/commit/2b311ef67909bc20d0e87f334fe37bf5c4e9f29f.patch;
|
||||
sha256 = "0hqmk846bxma0p66cqp94zd02zc1if836ywjq3sv5dsfwnz7jv3f";
|
||||
})
|
||||
];
|
||||
|
||||
nativeBuildInputs = [ pkgconfig intltool gobject-introspection wrapGAppsHook ];
|
||||
buildInputs = [ gjs glib gtk3 gdk_pixbuf ] ++ (with gst_all_1; [ gstreamer.dev gstreamer gst-plugins-base gst-plugins-good gst-plugins-bad ]);
|
||||
|
||||
|
@ -25,6 +25,15 @@ in stdenv.mkDerivation rec {
|
||||
patchShebangs meson_post_install.py
|
||||
'';
|
||||
|
||||
preFixup = ''
|
||||
gappsWrapperArgs+=(
|
||||
# Thumbnailers
|
||||
--prefix XDG_DATA_DIRS : "${gdk_pixbuf}/share"
|
||||
--prefix XDG_DATA_DIRS : "${librsvg}/share"
|
||||
--prefix XDG_DATA_DIRS : "${shared-mime-info}/share"
|
||||
)
|
||||
'';
|
||||
|
||||
passthru = {
|
||||
updateScript = gnome3.updateScript {
|
||||
packageName = pname;
|
||||
|
@ -5,13 +5,13 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "evolution-data-server-${version}";
|
||||
version = "3.30.3";
|
||||
version = "3.30.4";
|
||||
|
||||
outputs = [ "out" "dev" ];
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://gnome/sources/evolution-data-server/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
|
||||
sha256 = "1q1wpsc3p6b1cacwgkgqbni7rdx3skvb2fm6fyjs2wjgq6zi5753";
|
||||
sha256 = "1j8lwl04zz59sg7k3hpkzp829z8xyd1isz8xavm9vzxfvw5w776y";
|
||||
};
|
||||
|
||||
patches = [
|
||||
|
@ -5,11 +5,11 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "gnome-settings-daemon-${version}";
|
||||
version = "3.30.1.2";
|
||||
version = "3.30.2";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://gnome/sources/gnome-settings-daemon/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
|
||||
sha256 = "079dh609rvpwfyzg4m898q8km9g7x04hg18rwwb1izj1dr7zdp2w";
|
||||
sha256 = "0c663csa3gnsr6wm0xfll6aani45snkdj7zjwjfzcwfh8w4a3z12";
|
||||
};
|
||||
|
||||
patches = [
|
||||
|
@ -3,6 +3,22 @@
|
||||
lib.makeScope pkgs.newScope (self: with self; {
|
||||
updateScript = callPackage ./update.nix { };
|
||||
|
||||
/* Remove packages of packagesToRemove from packages, based on their names
|
||||
|
||||
Type:
|
||||
removePackagesByName :: [package] -> [package] -> [package]
|
||||
|
||||
Example:
|
||||
removePackagesByName [ nautilus file-roller ] [ file-roller totem ]
|
||||
=> [ nautilus ]
|
||||
*/
|
||||
removePackagesByName = packages: packagesToRemove:
|
||||
let
|
||||
pkgName = drv: (builtins.parseDrvName drv.name).name;
|
||||
namesToRemove = map pkgName packagesToRemove;
|
||||
in
|
||||
lib.filter (x: !(builtins.elem (pkgName x) namesToRemove)) packages;
|
||||
|
||||
maintainers = with pkgs.lib.maintainers; [ lethalman jtojnar hedning ];
|
||||
|
||||
corePackages = with gnome3; [
|
||||
|
@ -1,13 +1,15 @@
|
||||
{
|
||||
mkDerivation,
|
||||
extra-cmake-modules, gettext, kdoctools, python,
|
||||
kcoreaddons, knotifications, kwayland, kwidgetsaddons
|
||||
kcoreaddons, knotifications, kwayland, kwidgetsaddons,
|
||||
cups, pcre, pipewire
|
||||
}:
|
||||
|
||||
mkDerivation {
|
||||
name = "xdg-desktop-portal-kde";
|
||||
nativeBuildInputs = [ extra-cmake-modules gettext kdoctools python ];
|
||||
buildInputs = [
|
||||
cups pcre pipewire
|
||||
kcoreaddons knotifications kwayland kwidgetsaddons
|
||||
];
|
||||
}
|
||||
|
@ -3,11 +3,11 @@
|
||||
stdenvNoCC.mkDerivation rec {
|
||||
name = "fasm-bin-${version}";
|
||||
|
||||
version = "1.73.05";
|
||||
version = "1.73.06";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://flatassembler.net/fasm-${version}.tgz";
|
||||
sha256 = "0qpj6cs9rp1bg2rqxg1k8j71918rh86hplyw4n82n11ndwk23ni5";
|
||||
sha256 = "02wqkqxpn3p0iwcagsm92qd9cdfcnbx8a09qg03b3pjppp30hmp6";
|
||||
};
|
||||
|
||||
installPhase = ''
|
||||
|
@ -1,4 +1,4 @@
|
||||
{ stdenv, fetchFromGitHub, coq, ssreflect }:
|
||||
{ stdenv, fetchFromGitHub, coq, ssreflect, coq-ext-lib, simple-io }:
|
||||
|
||||
let params =
|
||||
{
|
||||
@ -19,6 +19,14 @@ let params =
|
||||
rev = "195e550a1cf0810497734356437a1720ebb6d744";
|
||||
sha256 = "0zm23y89z0h4iamy74qk9qi2pz2cj3ga6ygav0w79n0qyqwhxcq1";
|
||||
};
|
||||
"8.8" = rec {
|
||||
preConfigure = "substituteInPlace Makefile --replace quickChickTool.byte quickChickTool.native";
|
||||
version = "1.0.2";
|
||||
rev = "v${version}";
|
||||
sha256 = "1mcbsp07ra3gdcmir36pf27ig3xv8nagyfp7w5pwqi4gj9w81ffn";
|
||||
buildInputs = with coq.ocamlPackages; [ ocamlbuild num ];
|
||||
propagatedBuildInputs = [ coq-ext-lib simple-io ];
|
||||
};
|
||||
};
|
||||
param = params."${coq.coq-version}";
|
||||
in
|
||||
@ -33,11 +41,16 @@ stdenv.mkDerivation rec {
|
||||
inherit (param) rev sha256;
|
||||
};
|
||||
|
||||
buildInputs = with coq.ocamlPackages; [ ocaml camlp5 findlib ];
|
||||
propagatedBuildInputs = [ coq ssreflect ];
|
||||
buildInputs = [ coq ]
|
||||
++ (with coq.ocamlPackages; [ ocaml camlp5 findlib ])
|
||||
++ (param.buildInputs or [])
|
||||
;
|
||||
propagatedBuildInputs = [ ssreflect ] ++ (param.propagatedBuildInputs or []);
|
||||
|
||||
enableParallelBuilding = false;
|
||||
|
||||
preConfigure = param.preConfigure or null;
|
||||
|
||||
installPhase = ''
|
||||
make -f Makefile.coq COQLIB=$out/lib/coq/${coq.coq-version}/ install
|
||||
'';
|
||||
|
@ -39,7 +39,7 @@ core-packages:
|
||||
|
||||
# Hack: The following package is a core package of GHCJS. If we don't declare
|
||||
# it, then hackage2nix will generate a Hackage database where all dependants
|
||||
# of this library are maked as "broken".
|
||||
# of this library are marked as "broken".
|
||||
- ghcjs-base-0
|
||||
|
||||
default-package-overrides:
|
||||
|
@ -1,8 +1,8 @@
|
||||
{ mkDerivation }:
|
||||
|
||||
mkDerivation rec {
|
||||
version = "21.2";
|
||||
sha256 = "0v9smdp2vxkpsz65a6ypwzl12fqdfrsi7k29f5i7af0v27r308cm";
|
||||
version = "21.2.3";
|
||||
sha256 = "1v47c7bddbp31y6f8yzdjyvgcx9sskxql33k7cs0p5fmr05hhxws";
|
||||
|
||||
prePatch = ''
|
||||
substituteInPlace configure.in --replace '`sw_vers -productVersion`' '10.10'
|
||||
|
@ -10,6 +10,7 @@
|
||||
, disableDocs ? false
|
||||
, CoreFoundation
|
||||
, gsettings-desktop-schemas
|
||||
, wrapGAppsHook
|
||||
}:
|
||||
|
||||
let
|
||||
@ -59,7 +60,9 @@ stdenv.mkDerivation rec {
|
||||
(stdenv.lib.optionalString stdenv.isDarwin "-framework CoreFoundation")
|
||||
];
|
||||
|
||||
buildInputs = [ fontconfig libffi libtool makeWrapper sqlite gsettings-desktop-schemas gtk3 ]
|
||||
nativeBuildInputs = [ wrapGAppsHook ];
|
||||
|
||||
buildInputs = [ fontconfig libffi libtool sqlite gsettings-desktop-schemas gtk3 ]
|
||||
++ stdenv.lib.optionals stdenv.isDarwin [ libiconv CoreFoundation ];
|
||||
|
||||
preConfigure = ''
|
||||
@ -69,6 +72,8 @@ stdenv.mkDerivation rec {
|
||||
done
|
||||
mkdir src/build
|
||||
cd src/build
|
||||
|
||||
gappsWrapperArgs+=("--prefix" "LD_LIBRARY_PATH" ":" $LD_LIBRARY_PATH)
|
||||
'';
|
||||
|
||||
shared = if stdenv.isDarwin then "dylib" else "shared";
|
||||
@ -80,13 +85,6 @@ stdenv.mkDerivation rec {
|
||||
|
||||
enableParallelBuilding = false;
|
||||
|
||||
postInstall = ''
|
||||
for p in $(ls $out/bin/) ; do
|
||||
wrapProgram $out/bin/$p \
|
||||
--prefix LD_LIBRARY_PATH ":" "${LD_LIBRARY_PATH}" \
|
||||
--prefix XDG_DATA_DIRS ":" "$GSETTINGS_SCHEMAS_PATH";
|
||||
done
|
||||
'';
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
description = "A programmable programming language";
|
||||
|
@ -1,12 +1,12 @@
|
||||
{ stdenv, fetchurl, cmake, openblasCompat, superlu, hdf5 }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
version = "9.200.6";
|
||||
version = "9.200.7";
|
||||
name = "armadillo-${version}";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://sourceforge/arma/armadillo-${version}.tar.xz";
|
||||
sha256 = "1gm8dysb29f3p96bzjgdb5r70dc6y5jq1avg18sdixz0hgnxqq14";
|
||||
sha256 = "1y3xrchykwddlrnzgf7xjdmbkf6c4gayz92vyrqdyvnlpi07sy72";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ cmake ];
|
||||
|
@ -3,11 +3,11 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "box2d-${version}";
|
||||
version = "2.3.0";
|
||||
version = "2.3.1";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://github.com/erincatto/Box2D/archive/v${version}.tar.gz";
|
||||
sha256 = "1dmbswh4x2n5l3c9h0k72m0z4rdpzfy1xl8m8p3rf5rwkvk3bkg2";
|
||||
sha256 = "0llpcifl8zbjbpxdwz87drd01m3lwnv82xb4av6kca1xn4w2gmkm";
|
||||
};
|
||||
|
||||
sourceRoot = "Box2D-${version}/Box2D";
|
||||
|
@ -2,11 +2,11 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "capstone-${version}";
|
||||
version = "4.0";
|
||||
version = "4.0.1";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://github.com/aquynh/capstone/archive/${version}.tar.gz";
|
||||
sha256 = "0yp6y5m3v674i2pq6s804ikvz43gzgsjwq1maqhmj3b730b4dii6";
|
||||
sha256 = "1isxw2qwy1fi3m3w7igsr5klzczxc5cxndz0a78dfss6ps6ymfvr";
|
||||
};
|
||||
|
||||
configurePhase = '' patchShebangs make.sh '';
|
||||
|
@ -3,11 +3,11 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "gtkd-${version}";
|
||||
version = "3.8.4";
|
||||
version = "3.8.5";
|
||||
|
||||
src = fetchzip {
|
||||
url = "https://gtkd.org/Downloads/sources/GtkD-${version}.zip";
|
||||
sha256 = "0q2kf1jwr89i8ajjzyf3b4bbla33djvnwrvljq17y206q7qknfyz";
|
||||
sha256 = "12n2njsaplra7x15nqwrj2hrf8a27pfjj2mck4mkzxv03qk6mqky";
|
||||
stripRoot = false;
|
||||
};
|
||||
|
||||
|
@ -1,12 +1,12 @@
|
||||
{ stdenv, fetchurl, perl }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
version = "0.10.1";
|
||||
version = "0.10.2";
|
||||
name = "liburcu-${version}";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://lttng.org/files/urcu/userspace-rcu-${version}.tar.bz2";
|
||||
sha256 = "01pbg67qy5hcssy2yi0ckqapzfclgdq93li2rmzw4pa3wh5j42cw";
|
||||
sha256 = "1k31faqz9plx5dwxq8g1fnczxda1is4s1x4ph0gjrq3gmy6qixmk";
|
||||
};
|
||||
|
||||
checkInputs = [ perl ];
|
||||
|
@ -1,11 +1,11 @@
|
||||
{ stdenv, fetchurl, netcdf, hdf5, curl, gfortran }:
|
||||
stdenv.mkDerivation rec {
|
||||
name = "netcdf-fortran-${version}";
|
||||
version = "4.4.4";
|
||||
version = "4.4.5";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://github.com/Unidata/netcdf-fortran/archive/v${version}.tar.gz";
|
||||
sha256 = "0rwybszj1jjb25cx8vfyrd77x5qsdjzwspcjz56n12br89n9ica4";
|
||||
sha256 = "00qwg4v250yg8kxp68srrnvfbfim241fnlm071p9ila2mihk8r01";
|
||||
};
|
||||
|
||||
buildInputs = [ netcdf hdf5 curl gfortran ];
|
||||
|
29
pkgs/development/libraries/pyotherside/default.nix
Normal file
29
pkgs/development/libraries/pyotherside/default.nix
Normal file
@ -0,0 +1,29 @@
|
||||
{ stdenv, fetchFromGitHub
|
||||
, python3, qmake, qtbase, qtquickcontrols, qtsvg, ncurses }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "pyotherside";
|
||||
version = "1.5.3";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "thp";
|
||||
repo = "pyotherside";
|
||||
rev = version;
|
||||
sha256 = "1xaw1aarj8gpgpm4z3lk8klbssadrsf3xdyzqx10zcwy16amka7k";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ qmake ];
|
||||
buildInputs = [
|
||||
python3 qtbase qtquickcontrols qtsvg ncurses
|
||||
];
|
||||
|
||||
patches = [ ./qml-path.patch ];
|
||||
installTargets = [ "sub-src-install_subtargets" ];
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
description = "Asynchronous Python 3 Bindings for Qt 5";
|
||||
homepage = https://thp.io/2011/pyotherside/;
|
||||
license = licenses.isc;
|
||||
maintainers = [ maintainers.mic92 ];
|
||||
};
|
||||
}
|
12
pkgs/development/libraries/pyotherside/qml-path.patch
Normal file
12
pkgs/development/libraries/pyotherside/qml-path.patch
Normal file
@ -0,0 +1,12 @@
|
||||
diff -Naur --strip-trailing-cr source.org/src/src.pro source/src/src.pro
|
||||
--- source.org/src/src.pro 1970-01-01 01:00:01.000000000 +0100
|
||||
+++ source/src/src.pro 2019-01-17 19:14:46.256821852 +0000
|
||||
@@ -10,7 +10,7 @@
|
||||
CONFIG += qt plugin
|
||||
QT += qml quick svg
|
||||
|
||||
-target.path = $$[QT_INSTALL_QML]/$$PLUGIN_IMPORT_PATH
|
||||
+target.path = $$NIX_OUTPUT_QML/$$PLUGIN_IMPORT_PATH
|
||||
INSTALLS += target
|
||||
|
||||
qmldir.files += $$_PRO_FILE_PWD_/qmldir $$_PRO_FILE_PWD_/pyotherside.qmltypes
|
@ -1,10 +1,10 @@
|
||||
{ qtModule, lib, python2, qtbase, qtsvg, qtxmlpatterns }:
|
||||
{ qtModule, lib, python2, qtbase, qtsvg }:
|
||||
|
||||
with lib;
|
||||
|
||||
qtModule {
|
||||
name = "qtdeclarative";
|
||||
qtInputs = [ qtbase qtsvg qtxmlpatterns ];
|
||||
qtInputs = [ qtbase qtsvg ];
|
||||
nativeBuildInputs = [ python2 ];
|
||||
outputs = [ "out" "dev" "bin" ];
|
||||
preConfigure = ''
|
||||
|
@ -1,7 +1,7 @@
|
||||
{ qtModule, qtbase }:
|
||||
{ qtModule, qtbase, qtdeclarative }:
|
||||
|
||||
qtModule {
|
||||
name = "qtxmlpatterns";
|
||||
qtInputs = [ qtbase ];
|
||||
qtInputs = [ qtbase qtdeclarative ];
|
||||
devTools = [ "bin/xmlpatterns" "bin/xmlpatternsvalidator" ];
|
||||
}
|
||||
|
66
pkgs/development/libraries/readline/8.0.nix
Normal file
66
pkgs/development/libraries/readline/8.0.nix
Normal file
@ -0,0 +1,66 @@
|
||||
{ fetchurl, stdenv, ncurses
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "readline-${version}";
|
||||
version = "8.0p${toString (builtins.length upstreamPatches)}";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://gnu/readline/readline-${meta.branch}.tar.gz";
|
||||
sha256 = "0qg4924hf4hg0r0wbx2chswsr08734536fh5iagkd3a7f4czafg3";
|
||||
};
|
||||
|
||||
outputs = [ "out" "dev" "man" "doc" "info" ];
|
||||
|
||||
propagatedBuildInputs = [ncurses];
|
||||
|
||||
patchFlags = "-p0";
|
||||
|
||||
upstreamPatches =
|
||||
(let
|
||||
patch = nr: sha256:
|
||||
fetchurl {
|
||||
url = "mirror://gnu/readline/readline-${meta.branch}-patches/readline80-${nr}";
|
||||
inherit sha256;
|
||||
};
|
||||
in
|
||||
import ./readline-8.0-patches.nix patch);
|
||||
|
||||
patches =
|
||||
[ ./link-against-ncurses.patch
|
||||
./no-arch_only-6.3.patch
|
||||
]
|
||||
++ upstreamPatches;
|
||||
|
||||
# Don't run the native `strip' when cross-compiling.
|
||||
dontStrip = stdenv.hostPlatform != stdenv.buildPlatform;
|
||||
bash_cv_func_sigsetjmp = if stdenv.isCygwin then "missing" else null;
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
description = "Library for interactive line editing";
|
||||
|
||||
longDescription = ''
|
||||
The GNU Readline library provides a set of functions for use by
|
||||
applications that allow users to edit command lines as they are
|
||||
typed in. Both Emacs and vi editing modes are available. The
|
||||
Readline library includes additional functions to maintain a
|
||||
list of previously-entered command lines, to recall and perhaps
|
||||
reedit those lines, and perform csh-like history expansion on
|
||||
previous commands.
|
||||
|
||||
The history facilities are also placed into a separate library,
|
||||
the History library, as part of the build process. The History
|
||||
library may be used without Readline in applications which
|
||||
desire its capabilities.
|
||||
'';
|
||||
|
||||
homepage = https://savannah.gnu.org/projects/readline/;
|
||||
|
||||
license = licenses.gpl3Plus;
|
||||
|
||||
maintainers = with maintainers; [ vanschelven dtzWill ];
|
||||
|
||||
platforms = platforms.unix;
|
||||
branch = "8.0";
|
||||
};
|
||||
}
|
@ -0,0 +1,4 @@
|
||||
# Automatically generated by `update-patch-set.sh'; do not edit.
|
||||
|
||||
patch: [
|
||||
]
|
@ -28,6 +28,7 @@ stdenv.mkDerivation (
|
||||
PERL_USE_UNSAFE_INC = "1";
|
||||
|
||||
meta.homepage = "https://metacpan.org/release/${(builtins.parseDrvName name).name}";
|
||||
meta.platforms = perl.meta.platforms;
|
||||
}
|
||||
attrs
|
||||
)
|
||||
|
@ -1,9 +1,9 @@
|
||||
{ stdenv, buildPythonPackage, fetchPypi
|
||||
, dateutil }:
|
||||
, dateutil, mock, isPy3k }:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "aniso8601";
|
||||
version = "4.0.1";
|
||||
version = "4.1.0";
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
description = "Parses ISO 8601 strings.";
|
||||
@ -13,8 +13,10 @@ buildPythonPackage rec {
|
||||
|
||||
propagatedBuildInputs = [ dateutil ];
|
||||
|
||||
checkInputs = stdenv.lib.optional (!isPy3k) mock;
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "15cwnadw2xdczdi13k9grrgqq67hxgys4l155dqsl2zh3glhsmp7";
|
||||
sha256 = "1x49k287ky1spv3msc9fwmc7ydyw6rlcr14nslgcmpjfn3pgzh03";
|
||||
};
|
||||
}
|
||||
|
@ -1,17 +1,15 @@
|
||||
{ stdenv, fetchFromGitHub, buildPythonPackage, pytest, pyhamcrest }:
|
||||
{ stdenv, fetchPypi, buildPythonPackage, pytest, pyhamcrest }:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "base58";
|
||||
version = "1.0.0";
|
||||
version = "1.0.3";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "keis";
|
||||
repo = "base58";
|
||||
rev = "v${version}";
|
||||
sha256 = "0f8isdpvbgw0sqn9bj7hk47y8akpvdl8sn6rkszla0xb92ywj0f6";
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "9a793c599979c497800eb414c852b80866f28daaed5494703fc129592cc83e60";
|
||||
};
|
||||
|
||||
buildInputs = [ pytest pyhamcrest ];
|
||||
checkInputs = [ pytest pyhamcrest ];
|
||||
checkPhase = ''
|
||||
pytest
|
||||
'';
|
||||
|
@ -4,14 +4,14 @@
|
||||
, pytest, requests }:
|
||||
|
||||
buildPythonPackage rec {
|
||||
version = "2.1.3";
|
||||
version = "2.2.0";
|
||||
pname = "beancount";
|
||||
|
||||
disabled = !isPy3k;
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "4b7b0d3633c82ca88d3cb3d31ad2fd2e45a42401cfa94eaa1cb938ffece34f22";
|
||||
sha256 = "1j3fyyqnr5gq71rmkb9q3im8pqppa134zzhmmp4hk4b274g18w31";
|
||||
};
|
||||
|
||||
# No tests in archive
|
||||
|
@ -2,11 +2,11 @@
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "cfgv";
|
||||
version = "1.1.0";
|
||||
version = "1.4.0";
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "1akm5xdbi5kckgnhhfj6qavjwakm44cwqzhfx2ycgh7mkym1qyfi";
|
||||
sha256 = "01mpw8kx0f2py2jwf0fv60k01p11gs0dbar5zq42k4z38xf0bn9r";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [ six ];
|
||||
|
@ -1,5 +1,5 @@
|
||||
{ stdenv, fetchPypi, buildPythonPackage, pythonOlder, isPy3k
|
||||
, pyperclip, six, pyparsing, vim, wcwidth, colorama
|
||||
, pyperclip, six, pyparsing, vim, wcwidth, colorama, attrs
|
||||
, contextlib2 ? null, typing ? null, setuptools_scm
|
||||
, pytest, mock ? null, pytest-mock
|
||||
, which, glibcLocales
|
||||
@ -36,6 +36,7 @@ buildPythonPackage rec {
|
||||
six
|
||||
pyparsing
|
||||
wcwidth
|
||||
attrs
|
||||
]
|
||||
++ stdenv.lib.optionals (pythonOlder "3.5") [contextlib2 typing]
|
||||
;
|
||||
|
@ -2,11 +2,11 @@
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "ConfigArgParse";
|
||||
version = "0.13.0";
|
||||
version = "0.14.0";
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "e6441aa58e23d3d122055808e5e2220fd742dff6e1e51082d2a4e4ed145dd788";
|
||||
sha256 = "149fy4zya0rsnlkvxbbq43cyr8lscb5k4pj1m6n7f1grwcmzwbif";
|
||||
};
|
||||
|
||||
# no tests in tarball
|
||||
|
@ -1,4 +1,4 @@
|
||||
{ buildPythonPackage, fetchPypi
|
||||
{ buildPythonPackage, fetchPypi, isPy3k
|
||||
, six, jaraco_logging, jaraco_text, jaraco_stream, pytz, jaraco_itertools
|
||||
, setuptools_scm }:
|
||||
|
||||
@ -6,6 +6,8 @@ buildPythonPackage rec {
|
||||
pname = "irc";
|
||||
version = "17.0";
|
||||
|
||||
disabled = !isPy3k;
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "f9c5fcb72dd230e1387fd4a0114a1935605e0f59ac09dec962313baed74e1365";
|
||||
|
@ -2,10 +2,10 @@
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "jaraco.classes";
|
||||
version = "1.5";
|
||||
version = "2.0";
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "002zsifikv6qwigkjlij7jhyvbwv6793m8h9ckbkx2jizmgc80fi";
|
||||
sha256 = "1xfal9085bjh4fv57d6v9ibr5wf4llj73gp1ybdlqd2bralc9hnw";
|
||||
};
|
||||
doCheck = false;
|
||||
buildInputs = [ setuptools_scm ];
|
||||
|
@ -1,14 +1,26 @@
|
||||
{ buildPythonPackage, fetchPypi, setuptools_scm
|
||||
, inflect, more-itertools, six }:
|
||||
{ lib, buildPythonPackage, fetchPypi, setuptools_scm
|
||||
, inflect, more-itertools, six, pytest, pytest-flake8 }:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "jaraco.itertools";
|
||||
version = "3.0.0";
|
||||
version = "4.0.0";
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "19d8557a25c08f7a7b8f1cfa456ebfd615bafa0f045f89bbda55f99661b0626d";
|
||||
sha256 = "1d09zpi593bhr56rwm41kzffr18wif98plgy6xdy0zrbdwfarrxl";
|
||||
};
|
||||
doCheck = false;
|
||||
|
||||
buildInputs = [ setuptools_scm ];
|
||||
propagatedBuildInputs = [ inflect more-itertools six ];
|
||||
checkInputs = [ pytest pytest-flake8 ];
|
||||
|
||||
checkPhase = ''
|
||||
pytest
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description = "Tools for working with iterables";
|
||||
homepage = https://github.com/jaraco/jaraco.itertools;
|
||||
license = licenses.mit;
|
||||
};
|
||||
}
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user