Merge master into haskell-updates

This commit is contained in:
github-actions[bot] 2022-01-17 00:08:44 +00:00 committed by GitHub
commit e49c2d09f8
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
288 changed files with 3989 additions and 3286 deletions

View file

@ -84,7 +84,7 @@ To package Dotnet applications, you can use `buildDotnetModule`. This has simila
<ProjectReference Include="../foo/bar.fsproj" />
<PackageReference Include="bar" Version="*" Condition=" '$(ContinuousIntegrationBuild)'=='true' "/>
```
* `executables` is used to specify which executables get wrapped to `$out/bin`, relative to `$out/lib/$pname`. If this is unset, all executables generated will get installed. If you do not want to install any, set this to `[]`.
* `executables` is used to specify which executables get wrapped to `$out/bin`, relative to `$out/lib/$pname`. If this is unset, all executables generated will get installed. If you do not want to install any, set this to `[]`. This gets done in the `preFixup` phase.
* `runtimeDeps` is used to wrap libraries into `LD_LIBRARY_PATH`. This is how dotnet usually handles runtime dependencies.
* `buildType` is used to change the type of build. Possible values are `Release`, `Debug`, etc. By default, this is set to `Release`.
* `dotnet-sdk` is useful in cases where you need to change what dotnet SDK is being used.

View file

@ -12172,6 +12172,12 @@
githubId = 1183303;
name = "Jakob Klepp";
};
trundle = {
name = "Andreas Stührk";
email = "andy@hammerhartes.de";
github = "Trundle";
githubId = 332418;
};
tscholak = {
email = "torsten.scholak@googlemail.com";
github = "tscholak";

View file

@ -1420,6 +1420,15 @@ Superuser created successfully.
for those who want to have all RetroArch cores available.
</para>
</listitem>
<listitem>
<para>
The Linux kernel for security reasons now restricts access to
BPF syscalls via <literal>BPF_UNPRIV_DEFAULT_OFF=y</literal>.
Unprivileged access can be reenabled via the
<literal>kernel.unprivileged_bpf_disabled</literal> sysctl
knob.
</para>
</listitem>
</itemizedlist>
</section>
<section xml:id="sec-release-21.11-notable-changes">

View file

@ -208,6 +208,13 @@
removed due to it being an outdated version.
</para>
</listitem>
<listitem>
<para>
The <literal>mailpile</literal> email webclient
(<literal>services.mailpile</literal>) has been removed due to
its reliance on python2.
</para>
</listitem>
<listitem>
<para>
The MoinMoin wiki engine
@ -334,6 +341,22 @@
unmaintained
</para>
</listitem>
<listitem>
<para>
MultiMC has been replaced with the fork PolyMC due to upstream
developers being hostile to 3rd party package maintainers.
PolyMC removes all MultiMC branding and is aimed at providing
proper 3rd party packages like the one contained in Nixpkgs.
This change affects the data folder where game instances and
other save and configuration files are stored. Users with
existing installations should rename
<literal>~/.local/share/multimc</literal> to
<literal>~/.local/share/polymc</literal>. The main config
files path has also moved from
<literal>~/.local/share/multimc/multimc.cfg</literal> to
<literal>~/.local/share/polymc/polymc.cfg</literal>.
</para>
</listitem>
</itemizedlist>
</section>
<section xml:id="sec-release-22.05-notable-changes">

View file

@ -417,6 +417,8 @@ In addition to numerous new and upgraded packages, this release has the followin
- `retroArchCores` has been removed. This means that using `nixpkgs.config.retroarch` to customize RetroArch cores is not supported anymore. Instead, use package overrides, for example: `retroarch.override { cores = with libretro; [ citra snes9x ]; };`. Also, `retroarchFull` derivation is available for those who want to have all RetroArch cores available.
- The Linux kernel for security reasons now restricts access to BPF syscalls via `BPF_UNPRIV_DEFAULT_OFF=y`. Unprivileged access can be reenabled via the `kernel.unprivileged_bpf_disabled` sysctl knob.
## Other Notable Changes {#sec-release-21.11-notable-changes}

View file

@ -71,6 +71,8 @@ In addition to numerous new and upgraded packages, this release has the followin
- `services.kubernetes.addons.dashboard` was removed due to it being an outdated version.
- The `mailpile` email webclient (`services.mailpile`) has been removed due to its reliance on python2.
- The MoinMoin wiki engine (`services.moinmoin`) has been removed, because Python 2 is being retired from nixpkgs.
- The `wafHook` hook now honors `NIX_BUILD_CORES` when `enableParallelBuilding` is not set explicitly. Packages can restore the old behaviour by setting `enableParallelBuilding=false`.
@ -107,6 +109,8 @@ In addition to numerous new and upgraded packages, this release has the followin
- `pkgs.docbookrx` was removed since it's unmaintained
- MultiMC has been replaced with the fork PolyMC due to upstream developers being hostile to 3rd party package maintainers. PolyMC removes all MultiMC branding and is aimed at providing proper 3rd party packages like the one contained in Nixpkgs. This change affects the data folder where game instances and other save and configuration files are stored. Users with existing installations should rename `~/.local/share/multimc` to `~/.local/share/polymc`. The main config file's path has also moved from `~/.local/share/multimc/multimc.cfg` to `~/.local/share/polymc/polymc.cfg`.
## Other Notable Changes {#sec-release-22.05-notable-changes}
- The option [services.redis.servers](#opt-services.redis.servers) was added

View file

@ -182,7 +182,7 @@ in
yandexdisk = 143;
mxisd = 144; # was once collectd
#consul = 145;# dynamically allocated as of 2021-09-03
mailpile = 146;
#mailpile = 146; # removed 2022-01-12
redmine = 147;
#seeks = 148; # removed 2020-06-21
prosody = 149;
@ -502,7 +502,7 @@ in
#yandexdisk = 143; # unused
mxisd = 144; # was once collectd
#consul = 145; # unused
mailpile = 146;
#mailpile = 146; # removed 2022-01-12
redmine = 147;
#seeks = 148; # removed 2020-06-21
prosody = 149;

View file

@ -791,7 +791,6 @@
./services/networking/lldpd.nix
./services/networking/logmein-hamachi.nix
./services/networking/lxd-image-server.nix
./services/networking/mailpile.nix
./services/networking/magic-wormhole-mailbox-server.nix
./services/networking/matterbridge.nix
./services/networking/mjpg-streamer.nix

View file

@ -17,35 +17,56 @@ with lib;
(mkAliasOptionModule [ "environment" "checkConfigurationOptions" ] [ "_module" "check" ])
# Completely removed modules
(mkRemovedOptionModule [ "environment" "blcr" "enable" ] "The BLCR module has been removed")
(mkRemovedOptionModule [ "fonts" "fontconfig" "penultimate" ] "The corresponding package has removed from nixpkgs.")
(mkRemovedOptionModule [ "services" "quagga" ] "the corresponding package has been removed from nixpkgs")
(mkRemovedOptionModule [ "hardware" "brightnessctl" ] ''
The brightnessctl module was removed because newer versions of
brightnessctl don't require the udev rules anymore (they can use the
systemd-logind API). Instead of using the module you can now
simply add the brightnessctl package to environment.systemPackages.
'')
(mkRemovedOptionModule [ "hardware" "u2f" ] ''
The U2F modules module was removed, as all it did was adding the
udev rules from libu2f-host to the system. Udev gained native support
to handle FIDO security tokens, so this isn't necessary anymore.
'')
(mkRemovedOptionModule [ "networking" "vpnc" ] "Use environment.etc.\"vpnc/service.conf\" instead.")
(mkRemovedOptionModule [ "networking" "wicd" ] "The corresponding package was removed from nixpkgs.")
(mkRemovedOptionModule [ "programs" "way-cooler" ] ("way-cooler is abandoned by its author: " +
"https://way-cooler.org/blog/2020/01/09/way-cooler-post-mortem.html"))
(mkRemovedOptionModule [ "security" "hideProcessInformation" ] ''
The hidepid module was removed, since the underlying machinery
is broken when using cgroups-v2.
'')
(mkRemovedOptionModule [ "services" "beegfs" ] "The BeeGFS module has been removed")
(mkRemovedOptionModule [ "services" "beegfsEnable" ] "The BeeGFS module has been removed")
(mkRemovedOptionModule [ "services" "cgmanager" "enable"] "cgmanager was deprecated by lxc and therefore removed from nixpkgs.")
(mkRemovedOptionModule [ "services" "chronos" ] "The corresponding package was removed from nixpkgs.")
(mkRemovedOptionModule [ "services" "couchpotato" ] "The corresponding package was removed from nixpkgs.")
(mkRemovedOptionModule [ "services" "deepin" ] "The corresponding packages were removed from nixpkgs.")
(mkRemovedOptionModule [ "services" "dnscrypt-proxy" ] "Use services.dnscrypt-proxy2 instead")
(mkRemovedOptionModule [ "services" "firefox" "syncserver" ] "The corresponding package was removed from nixpkgs.")
(mkRemovedOptionModule [ "services" "marathon" ] "The corresponding package was removed from nixpkgs.")
(mkRemovedOptionModule [ "services" "moinmoin" ] "The corresponding package was removed from nixpkgs.")
(mkRemovedOptionModule [ "services" "mesos" ] "The corresponding package was removed from nixpkgs.")
(mkRemovedOptionModule [ "services" "winstone" ] "The corresponding package was removed from nixpkgs.")
(mkRemovedOptionModule [ "networking" "vpnc" ] "Use environment.etc.\"vpnc/service.conf\" instead.")
(mkRemovedOptionModule [ "networking" "wicd" ] "The corresponding package was removed from nixpkgs.")
(mkRemovedOptionModule [ "environment" "blcr" "enable" ] "The BLCR module has been removed")
(mkRemovedOptionModule [ "services" "beegfsEnable" ] "The BeeGFS module has been removed")
(mkRemovedOptionModule [ "services" "beegfs" ] "The BeeGFS module has been removed")
(mkRemovedOptionModule ["services" "cgmanager" "enable"] "cgmanager was deprecated by lxc and therefore removed from nixpkgs.")
(mkRemovedOptionModule [ "services" "osquery" ] "The osquery module has been removed")
(mkRemovedOptionModule [ "services" "flashpolicyd" ] "The flashpolicyd module has been removed. Adobe Flash Player is deprecated.")
(mkRemovedOptionModule [ "services" "fourStore" ] "The fourStore module has been removed")
(mkRemovedOptionModule [ "services" "frab" ] "The frab module has been removed")
(mkRemovedOptionModule [ "services" "fourStoreEndpoint" ] "The fourStoreEndpoint module has been removed")
(mkRemovedOptionModule [ "services" "frab" ] "The frab module has been removed")
(mkRemovedOptionModule [ "services" "kippo" ] "The corresponding package was removed from nixpkgs.")
(mkRemovedOptionModule [ "services" "mailpile" ] "The corresponding package was removed from nixpkgs.")
(mkRemovedOptionModule [ "services" "marathon" ] "The corresponding package was removed from nixpkgs.")
(mkRemovedOptionModule [ "services" "mathics" ] "The Mathics module has been removed")
(mkRemovedOptionModule [ "services" "meguca" ] "Use meguca has been removed from nixpkgs")
(mkRemovedOptionModule [ "services" "mesos" ] "The corresponding package was removed from nixpkgs.")
(mkRemovedOptionModule [ "services" "moinmoin" ] "The corresponding package was removed from nixpkgs.")
(mkRemovedOptionModule [ "services" "mwlib" ] "The corresponding package was removed from nixpkgs.")
(mkRemovedOptionModule [ "programs" "way-cooler" ] ("way-cooler is abandoned by its author: " +
"https://way-cooler.org/blog/2020/01/09/way-cooler-post-mortem.html"))
(mkRemovedOptionModule [ "services" "xserver" "multitouch" ] ''
services.xserver.multitouch (which uses xf86_input_mtrack) has been removed
as the underlying package isn't being maintained. Working alternatives are
libinput and synaptics.
(mkRemovedOptionModule [ "services" "osquery" ] "The osquery module has been removed")
(mkRemovedOptionModule [ "services" "prey" ] ''
prey-bash-client is deprecated upstream
'')
(mkRemovedOptionModule [ "services" "quagga" ] "the corresponding package has been removed from nixpkgs")
(mkRemovedOptionModule [ "services" "seeks" ] "")
(mkRemovedOptionModule [ "services" "venus" ] "The corresponding package was removed from nixpkgs.")
(mkRemovedOptionModule [ "services" "wakeonlan"] "This module was removed in favor of enabling it with networking.interfaces.<name>.wakeOnLan")
(mkRemovedOptionModule [ "services" "winstone" ] "The corresponding package was removed from nixpkgs.")
(mkRemovedOptionModule [ "services" "xserver" "displayManager" "auto" ] ''
The services.xserver.displayManager.auto module has been removed
because it was only intended for use in internal NixOS tests, and gave the
@ -53,38 +74,13 @@ with lib;
LightDM. Please use the services.xserver.displayManager.autoLogin options
instead, or any other display manager in NixOS as they all support auto-login.
'')
(mkRemovedOptionModule [ "services" "dnscrypt-proxy" ] "Use services.dnscrypt-proxy2 instead")
(mkRemovedOptionModule [ "services" "meguca" ] "Use meguca has been removed from nixpkgs")
(mkRemovedOptionModule ["hardware" "brightnessctl" ] ''
The brightnessctl module was removed because newer versions of
brightnessctl don't require the udev rules anymore (they can use the
systemd-logind API). Instead of using the module you can now
simply add the brightnessctl package to environment.systemPackages.
(mkRemovedOptionModule [ "services" "xserver" "multitouch" ] ''
services.xserver.multitouch (which uses xf86_input_mtrack) has been removed
as the underlying package isn't being maintained. Working alternatives are
libinput and synaptics.
'')
(mkRemovedOptionModule [ "virtualisation" "rkt" ] "The rkt module has been removed, it was archived by upstream")
(mkRemovedOptionModule ["services" "prey" ] ''
prey-bash-client is deprecated upstream
'')
(mkRemovedOptionModule ["hardware" "u2f" ] ''
The U2F modules module was removed, as all it did was adding the
udev rules from libu2f-host to the system. Udev gained native support
to handle FIDO security tokens, so this isn't necessary anymore.
'')
(mkRemovedOptionModule [ "services" "seeks" ] "")
(mkRemovedOptionModule [ "services" "venus" ] "The corresponding package was removed from nixpkgs.")
(mkRemovedOptionModule [ "services" "flashpolicyd" ] "The flashpolicyd module has been removed. Adobe Flash Player is deprecated.")
(mkRemovedOptionModule [ "security" "hideProcessInformation" ] ''
The hidepid module was removed, since the underlying machinery
is broken when using cgroups-v2.
'')
(mkRemovedOptionModule ["services" "wakeonlan"] "This module was removed in favor of enabling it with networking.interfaces.<name>.wakeOnLan")
(mkRemovedOptionModule [ "services" "kippo" ] "The corresponding package was removed from nixpkgs.")
# Do NOT add any option renames here, see top of the file
];
}

View file

@ -30,7 +30,7 @@ let
}
trap 'on_exit' INT TERM QUIT EXIT
archiveName="${cfg.archiveBaseName}-$(date ${cfg.dateFormat})"
archiveName="${if cfg.archiveBaseName == null then "" else cfg.archiveBaseName + "-"}$(date ${cfg.dateFormat})"
archiveSuffix="${optionalString cfg.appendFailedSuffix ".failed"}"
${cfg.preHook}
'' + optionalString cfg.doInit ''
@ -60,7 +60,7 @@ let
'' + optionalString (cfg.prune.keep != { }) ''
borg prune $extraArgs \
${mkKeepArgs cfg} \
--prefix ${escapeShellArg cfg.prune.prefix} \
${optionalString (cfg.prune.prefix != null) "--prefix ${escapeShellArg cfg.prune.prefix} \\"}
$extraPruneArgs
${cfg.postPrune}
'';
@ -284,7 +284,7 @@ in {
};
archiveBaseName = mkOption {
type = types.strMatching "[^/{}]+";
type = types.nullOr (types.strMatching "[^/{}]+");
default = "${globalConfig.networking.hostName}-${name}";
defaultText = literalExpression ''"''${config.networking.hostName}-<name>"'';
description = ''
@ -292,6 +292,7 @@ in {
determined by <option>dateFormat</option>, will be appended. The full
name can be modified at runtime (<literal>$archiveName</literal>).
Placeholders like <literal>{hostname}</literal> must not be used.
Use <literal>null</literal> for no base name.
'';
};
@ -471,11 +472,11 @@ in {
};
prune.prefix = mkOption {
type = types.str;
type = types.nullOr (types.str);
description = ''
Only consider archive names starting with this prefix for pruning.
By default, only archives created by this job are considered.
Use <literal>""</literal> to consider all archives.
Use <literal>""</literal> or <literal>null</literal> to consider all archives.
'';
default = config.archiveBaseName;
defaultText = literalExpression "archiveBaseName";

View file

@ -4,7 +4,8 @@ with lib;
let
cfg = config.services.thermald;
in {
in
{
###### interface
options = {
services.thermald = {
@ -41,6 +42,7 @@ in {
description = "Thermal Daemon Service";
wantedBy = [ "multi-user.target" ];
serviceConfig = {
PrivateNetwork = true;
ExecStart = ''
${cfg.package}/sbin/thermald \
--no-daemon \

View file

@ -21,6 +21,8 @@ let
<para>
This must be in a format usable by findmnt; that could be a key=value
pair, or a bare path to a mount point.
Using bare paths will allow systemd to start the beesd service only
after mounting the associated path.
'';
example = "LABEL=MyBulkDataDrive";
};
@ -122,6 +124,7 @@ in
StartupIOWeight = 25;
SyslogIdentifier = "beesd"; # would otherwise be "bees-service-wrapper"
};
unitConfig.RequiresMountsFor = lib.mkIf (lib.hasPrefix "/" fs.spec) fs.spec;
wantedBy = [ "multi-user.target" ];
})
cfg.filesystems;

View file

@ -29,9 +29,9 @@ let
configFile = if (cfg.configFile != null) then cfg.configFile else configFile';
preStart = ''
install --owner ddclient -m600 ${configFile} /run/${RuntimeDirectory}/ddclient.conf
install ${configFile} /run/${RuntimeDirectory}/ddclient.conf
${lib.optionalString (cfg.configFile == null) (if (cfg.protocol == "nsupdate") then ''
install --owner ddclient -m600 ${cfg.passwordFile} /run/${RuntimeDirectory}/ddclient.key
install ${cfg.passwordFile} /run/${RuntimeDirectory}/ddclient.key
'' else if (cfg.passwordFile != null) then ''
password=$(printf "%q" "$(head -n 1 "${cfg.passwordFile}")")
sed -i "s|^password=$|password=$password|" /run/${RuntimeDirectory}/ddclient.conf

View file

@ -1,74 +0,0 @@
{ config, lib, pkgs, ... }:
with lib;
let
cfg = config.services.mailpile;
hostname = cfg.hostname;
port = cfg.port;
in
{
###### interface
options = {
services.mailpile = {
enable = mkEnableOption "Mailpile the mail client";
hostname = mkOption {
type = types.str;
default = "localhost";
description = "Listen to this hostname or ip.";
};
port = mkOption {
type = types.port;
default = 33411;
description = "Listen on this port.";
};
};
};
###### implementation
config = mkIf config.services.mailpile.enable {
users.users.mailpile =
{ uid = config.ids.uids.mailpile;
description = "Mailpile user";
createHome = true;
home = "/var/lib/mailpile";
};
users.groups.mailpile =
{ gid = config.ids.gids.mailpile;
};
systemd.services.mailpile =
{
description = "Mailpile server.";
after = [ "network.target" ];
wantedBy = [ "multi-user.target" ];
serviceConfig = {
User = "mailpile";
ExecStart = "${pkgs.mailpile}/bin/mailpile --www ${hostname}:${port} --wait";
# mixed - first send SIGINT to main process,
# then after 2min send SIGKILL to whole group if neccessary
KillMode = "mixed";
KillSignal = "SIGINT"; # like Ctrl+C - safe mailpile shutdown
TimeoutSec = 120; # wait 2min untill SIGKILL
};
environment.MAILPILE_HOME = "/var/lib/mailpile/.local/share/Mailpile";
};
environment.systemPackages = [ pkgs.mailpile ];
};
}

View file

@ -55,7 +55,11 @@ in
frontendUrl = lib.mkOption {
type = lib.types.str;
apply = x: if lib.hasSuffix "/" x then x else x + "/";
apply = x:
if x == "" || lib.hasSuffix "/" x then
x
else
x + "/";
example = "keycloak.example.com/auth";
description = ''
The public URL used as base for all frontend requests. Should
@ -229,8 +233,22 @@ in
'';
};
themes = lib.mkOption {
type = lib.types.attrsOf lib.types.package;
default = {};
description = ''
Additional theme packages for Keycloak. Each theme is linked into
subdirectory with a corresponding attribute name.
Theme packages consist of several subdirectories which provide
different theme types: for example, <literal>account</literal>,
<literal>login</literal> etc. After adding a theme to this option you
can select it by its name in Keycloak administration console.
'';
};
extraConfig = lib.mkOption {
type = lib.types.attrs;
type = lib.types.attrsOf lib.types.anything;
default = { };
example = lib.literalExpression ''
{
@ -289,16 +307,45 @@ in
${pkgs.jre}/bin/keytool -importcert -trustcacerts -alias MySQLCACert -file ${cfg.database.caCert} -keystore $out -storepass notsosecretpassword -noprompt
'';
# Both theme and theme type directories need to be actual directories in one hierarchy to pass Keycloak checks.
themesBundle = pkgs.runCommand "keycloak-themes" {} ''
linkTheme() {
theme="$1"
name="$2"
mkdir "$out/$name"
for typeDir in "$theme"/*; do
if [ -d "$typeDir" ]; then
type="$(basename "$typeDir")"
mkdir "$out/$name/$type"
for file in "$typeDir"/*; do
ln -sn "$file" "$out/$name/$type/$(basename "$file")"
done
fi
done
}
mkdir -p "$out"
for theme in ${cfg.package}/themes/*; do
if [ -d "$theme" ]; then
linkTheme "$theme" "$(basename "$theme")"
fi
done
${lib.concatStringsSep "\n" (lib.mapAttrsToList (name: theme: "linkTheme ${theme} ${lib.escapeShellArg name}") cfg.themes)}
'';
keycloakConfig' = builtins.foldl' lib.recursiveUpdate {
"interface=public".inet-address = cfg.bindAddress;
"socket-binding-group=standard-sockets"."socket-binding=http".port = cfg.httpPort;
"subsystem=keycloak-server"."spi=hostname" = {
"provider=default" = {
"subsystem=keycloak-server" = {
"spi=hostname"."provider=default" = {
enabled = true;
properties = {
inherit (cfg) frontendUrl forceBackendUrlToFrontendUrl;
};
};
"theme=defaults".dir = toString themesBundle;
};
"subsystem=datasources"."data-source=KeycloakDS" = {
max-pool-size = "20";
@ -348,11 +395,23 @@ in
})
(lib.optionalAttrs (cfg.sslCertificate != null && cfg.sslCertificateKey != null) {
"socket-binding-group=standard-sockets"."socket-binding=https".port = cfg.httpsPort;
"core-service=management"."security-realm=UndertowRealm"."server-identity=ssl" = {
keystore-path = "/run/keycloak/ssl/certificate_private_key_bundle.p12";
keystore-password = "notsosecretpassword";
"subsystem=elytron" = lib.mkOrder 900 {
"key-store=httpsKS" = lib.mkOrder 900 {
path = "/run/keycloak/ssl/certificate_private_key_bundle.p12";
credential-reference.clear-text = "notsosecretpassword";
type = "JKS";
};
"key-manager=httpsKM" = lib.mkOrder 901 {
key-store = "httpsKS";
credential-reference.clear-text = "notsosecretpassword";
};
"server-ssl-context=httpsSSC" = lib.mkOrder 902 {
key-manager = "httpsKM";
};
};
"subsystem=undertow" = lib.mkOrder 901 {
"server=default-server"."https-listener=https".ssl-context = "httpsSSC";
};
"subsystem=undertow"."server=default-server"."https-listener=https".security-realm = "UndertowRealm";
})
cfg.extraConfig
];
@ -441,9 +500,9 @@ in
# with `expression` to evaluate.
prefixExpression = string:
let
match = (builtins.match ''"\$\{.*}"'' string);
matchResult = builtins.match ''"\$\{.*}"'' string;
in
if match != null then
if matchResult != null then
"expression " + string
else
string;
@ -508,52 +567,57 @@ in
""
else
throw "Unsupported type '${type}' for attribute '${attribute}'!";
in
lib.concatStringsSep ", " (lib.mapAttrsToList makeArg set);
/* Recurses into the `attrs` attrset, beginning at the path
resolved from `state.path ++ node`; if `node` is `null`,
starts from `state.path`. Only subattrsets that are JBoss
paths, i.e. follows the `key=value` format, are recursed
/* Recurses into the `nodeValue` attrset. Only subattrsets that
are JBoss paths, i.e. follows the `key=value` format, are recursed
into - the rest are considered JBoss attributes / maps.
*/
recurse = state: node:
recurse = nodePath: nodeValue:
let
path = state.path ++ (lib.optional (node != null) node);
nodeContent =
if builtins.isAttrs nodeValue && nodeValue._type or "" == "order" then
nodeValue.content
else
nodeValue;
isPath = name:
let
value = lib.getAttrFromPath (path ++ [ name ]) attrs;
value = nodeContent.${name};
in
if (builtins.match ".*([=]).*" name) == [ "=" ] then
if builtins.isAttrs value || value == null then
true
else
throw "Parsing path '${lib.concatStringsSep "." (path ++ [ name ])}' failed: JBoss attributes cannot contain '='!"
throw "Parsing path '${lib.concatStringsSep "." (nodePath ++ [ name ])}' failed: JBoss attributes cannot contain '='!"
else
false;
jbossPath = "/" + (lib.concatStringsSep "/" path);
nodeValue = lib.getAttrFromPath path attrs;
children = if !builtins.isAttrs nodeValue then {} else nodeValue;
jbossPath = "/" + lib.concatStringsSep "/" nodePath;
children = if !builtins.isAttrs nodeContent then {} else nodeContent;
subPaths = builtins.filter isPath (builtins.attrNames children);
getPriority = name:
let value = children.${name};
in if value._type or "" == "order" then value.priority else 1000;
orderedSubPaths = lib.sort (a: b: getPriority a < getPriority b) subPaths;
jbossAttrs = lib.filterAttrs (name: _: !(isPath name)) children;
in
state // {
text = state.text + (
if nodeValue != null then ''
text =
if nodeContent != null then
''
if (outcome != success) of ${jbossPath}:read-resource()
${jbossPath}:add(${makeArgList jbossAttrs})
end-if
'' + (writeAttributes jbossPath jbossAttrs)
else ''
'' + writeAttributes jbossPath jbossAttrs
else
''
if (outcome == success) of ${jbossPath}:read-resource()
${jbossPath}:remove()
end-if
'') + (builtins.foldl' recurse { text = ""; inherit path; } subPaths).text;
};
'';
in text + lib.concatMapStringsSep "\n" (name: recurse (nodePath ++ [name]) children.${name}) orderedSubPaths;
in
(recurse { text = ""; path = []; } null).text;
recurse [] attrs;
jbossCliScript = pkgs.writeText "jboss-cli-script" (mkJbossScript keycloakConfig');

View file

@ -85,7 +85,12 @@
The frontend URL is used as base for all frontend requests and
must be configured through <xref linkend="opt-services.keycloak.frontendUrl" />.
It should normally include a trailing <literal>/auth</literal>
(the default web context).
(the default web context). If you use a reverse proxy, you need
to set this option to <literal>""</literal>, so that frontend URL
is derived from HTTP headers. <literal>X-Forwarded-*</literal> headers
support also should be enabled, using <link
xlink:href="https://www.keycloak.org/docs/latest/server_installation/index.html#identifying-client-ip-addresses">
respective guidelines</link>.
</para>
<para>
@ -131,6 +136,17 @@
</warning>
</section>
<section xml:id="module-services-keycloak-themes">
<title>Themes</title>
<para>
You can package custom themes and make them visible to Keycloak via
<xref linkend="opt-services.keycloak.themes" />
option. See the <link xlink:href="https://www.keycloak.org/docs/latest/server_development/#_themes">
Themes section of the Keycloak Server Development Guide</link>
and respective NixOS option description for more information.
</para>
</section>
<section xml:id="module-services-keycloak-extra-config">
<title>Additional configuration</title>
<para>

View file

@ -21,12 +21,10 @@ in {
type = settingsFormat.type;
example = literalExample ''
{
secret = "mysecret";
storeDir = "/srv/http/nginx/prosody-upload";
}
'';
example = {
secret = "mysecret";
storeDir = "/srv/http/nginx/prosody-upload";
};
defaultText = literalExpression ''
{

View file

@ -474,6 +474,7 @@ in
taskserver = handleTest ./taskserver.nix {};
telegraf = handleTest ./telegraf.nix {};
teleport = handleTest ./teleport.nix {};
thelounge = handleTest ./thelounge.nix {};
tiddlywiki = handleTest ./tiddlywiki.nix {};
tigervnc = handleTest ./tigervnc.nix {};
timezone = handleTest ./timezone.nix {};

29
nixos/tests/thelounge.nix Normal file
View file

@ -0,0 +1,29 @@
import ./make-test-python.nix {
nodes = {
private = { config, pkgs, ... }: {
services.thelounge = {
enable = true;
plugins = [ pkgs.theLoungePlugins.themes.solarized ];
};
};
public = { config, pkgs, ... }: {
services.thelounge = {
enable = true;
public = true;
};
};
};
testScript = ''
start_all()
for machine in machines:
machine.wait_for_unit("thelounge.service")
machine.wait_for_open_port(9000)
private.wait_until_succeeds("journalctl -u thelounge.service | grep thelounge-theme-solarized")
private.wait_until_succeeds("journalctl -u thelounge.service | grep 'in private mode'")
public.wait_until_succeeds("journalctl -u thelounge.service | grep 'in public mode'")
'';
}

View file

@ -26,7 +26,7 @@ buildDotnetModule rec {
makeWrapperArgs+=(--run "cd $out/lib/btcpayserver")
'';
postInstall = ''
postFixup = ''
mv $out/bin/{BTCPayServer,btcpayserver}
'';

View file

@ -17,7 +17,7 @@ buildDotnetModule rec {
dotnet-sdk = dotnetCorePackages.sdk_3_1;
dotnet-runtime = dotnetCorePackages.aspnetcore_3_1;
postInstall = ''
postFixup = ''
mv $out/bin/{NBXplorer,nbxplorer}
'';

View file

@ -36,7 +36,7 @@ buildDotnetModule rec {
)
'';
postInstall = ''
postFixup = ''
mv $out/bin/WalletWasabi.Backend $out/bin/WasabiBackend
'';

View file

@ -38,13 +38,13 @@ let
in
stdenv.mkDerivation rec {
pname = "cudatext";
version = "1.152.1";
version = "1.153.0";
src = fetchFromGitHub {
owner = "Alexey-T";
repo = "CudaText";
rev = version;
sha256 = "sha256-rFmgf/wg6/jIObBDN+viKX3KrewVWgxs8uVF1gCY72s=";
sha256 = "sha256-3p5wb3buZtd1gnNoEJOclNO8xEYJBZYc86HfrkFrBWU=";
};
postPatch = ''

View file

@ -16,23 +16,23 @@
},
"ATSynEdit": {
"owner": "Alexey-T",
"rev": "2021.12.22",
"sha256": "sha256-MmRJ3XDq7b9doPFfW7njSOasHej5ut0nYcJMFj+Y/Dc="
"rev": "2022.01.07",
"sha256": "sha256-KxeaTXv0qig3O2hqjJ5HG1KCN0TTQdnd3g9jBsEc0a4="
},
"ATSynEdit_Cmp": {
"owner": "Alexey-T",
"rev": "2021.09.14",
"sha256": "sha256-6eC75zAtWbM1XEI9OM3iqy/a8Vj1l5WU7HGJBpmoQsA="
"rev": "2021.12.28",
"sha256": "sha256-bXTjPdn0DIVTdoi30Ws5+M+UsC7F99IphMSTpI5ia/Q="
},
"EControl": {
"owner": "Alexey-T",
"rev": "2021.12.07",
"sha256": "sha256-givCklAHao26psWLI2qK246igxcAQEeIYTGH61FX6Xo="
"rev": "2022.01.07",
"sha256": "sha256-dgkyXrFs2hzuFjt9GW+WNyrLIp/i/AbRsM/MyMbatdA="
},
"ATSynEdit_Ex": {
"owner": "Alexey-T",
"rev": "2021.12.07",
"sha256": "sha256-/2Fv/vrpbHSiJro11cjbziUaT4gfwa6y5aQBoYgq3OQ="
"rev": "2022.01.07",
"sha256": "sha256-7QDHf0PYGMc611qrk+a8pNJHF1v1DFMWlt5hbaU/oD8="
},
"Python-for-Lazarus": {
"owner": "Alexey-T",

View file

@ -1,72 +0,0 @@
{ python2
, lib
, fetchurl
, pkg-config
, libXext
, libXxf86vm
, libX11
, libXrandr
, libXinerama
, libXScrnSaver
, argyllcms
}:
let
inherit (python2.pkgs) buildPythonApplication wxPython numpy dbus-python;
in buildPythonApplication rec {
pname = "displaycal";
version = "3.8.9.3";
enableParallelBuilding = true;
src = fetchurl {
url = "mirror://sourceforge/project/dispcalgui/release/${version}/DisplayCAL-${version}.tar.gz";
sha256 = "1sivi4q7sqsrc95qg5gh37bsm2761md4mpl89hflzwk6kyyxyd3w";
};
propagatedBuildInputs = [
libXext
libXxf86vm
libX11
libXrandr
libXinerama
libXScrnSaver
argyllcms
wxPython
numpy
dbus-python
];
nativeBuildInputs = [
pkg-config
];
preConfigure = ''
mkdir dist
cp {misc,dist}/net.displaycal.DisplayCAL.appdata.xml
touch dist/copyright
mkdir -p $out
ln -s $out/share/DisplayCAL $out/Resources
'';
# no idea why it looks there - symlink .json lang (everything)
postInstall = ''
for x in $out/share/DisplayCAL/*; do
ln -s $x $out/lib/python2.7/site-packages/DisplayCAL
done
for prog in "$out/bin/"*; do
wrapProgram "$prog" \
--prefix PYTHONPATH : "$PYTHONPATH" \
--prefix PATH : ${argyllcms}/bin
done
'';
meta = {
description = "Display Calibration and Characterization powered by Argyll CMS";
homepage = "https://displaycal.net/";
license = lib.licenses.gpl3;
maintainers = [lib.maintainers.marcweber];
platforms = lib.platforms.linux;
};
}

View file

@ -1,7 +1,7 @@
{ callPackage, ... } @ args:
callPackage ./generic.nix (args // {
version = "5.0.0";
version = "5.0.2";
kde-channel = "stable";
sha256 = "sha256-hNWDPbyrP9OkGPTDdnDYKtkZQw8MbQpXuZOQdHHuzFc=";
sha256 = "sha256-5nUfx+tQSXekiAo3brvTmVyH2tFUSGCE6COX5l1JnL8=";
})

View file

@ -19,6 +19,7 @@ buildDotnetModule rec {
];
runtimeDeps = [ gtk3 ];
buildInputs = runtimeDeps;
dotnet-sdk = dotnetCorePackages.sdk_6_0;
dotnet-runtime = dotnetCorePackages.runtime_6_0;
@ -39,16 +40,7 @@ buildDotnetModule rec {
sha256 = "sha256-iOKJPB2bI/GjeDxzG7r6ew7SGIzgrJTcRXhEYzOpC9k=";
};
# FIXME: this should be propagated by wrapGAppsHook already, however for some
# reason it is not working. Maybe a bug in buildDotnetModule?
preInstall = ''
gappsWrapperArgs+=(
--prefix XDG_DATA_DIRS : "${gtk3}/share/gsettings-schemas/${gtk3.name}"
--set GDK_PIXBUF_MODULE_FILE ${librsvg}/lib/gdk-pixbuf-2.0/2.10.0/loaders.cache
)
'';
postInstall = ''
postFixup = ''
# Rename the binary
mv $out/bin/Pinta $out/bin/pinta
@ -76,12 +68,12 @@ buildDotnetModule rec {
--replace _Keywords Keywords
'';
meta = {
meta = with lib; {
homepage = "https://www.pinta-project.com/";
description = "Drawing/editing program modeled after Paint.NET";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ thiagokokada ];
platforms = with lib.platforms; linux;
license = licenses.mit;
maintainers = with maintainers; [ thiagokokada ];
platforms = with platforms; linux;
mainProgram = "pinta";
};
}

View file

@ -0,0 +1,70 @@
{ lib
, stdenv
, fetchFromGitHub
, qtbase
, qmake
, wrapQtAppsHook
, copyDesktopItems
, makeDesktopItem
}:
stdenv.mkDerivation rec {
pname = "cubiomes-viewer";
version = "1.12.1";
src = fetchFromGitHub {
owner = "Cubitect";
repo = pname;
rev = version;
sha256 = "sha256-F0c6gMQKu35iBNRw+wpoxSUOhRUbPRKIXSNDDNZsfPE=";
fetchSubmodules = true;
};
buildInputs = [
qtbase
];
nativeBuildInputs = [
qmake
wrapQtAppsHook
copyDesktopItems
];
desktopItems = [ (makeDesktopItem {
name = pname;
desktopName = "Cubiomes Viewer";
exec = pname;
icon = pname;
categories = "Game";
comment = meta.description;
}) ];
preBuild = ''
# QMAKE_PRE_LINK is not executed (I dont know why)
make -C ./cubiomes libcubiomes CFLAGS="-DSTRUCT_CONFIG_OVERRIDE=1" all
'';
installPhase = ''
runHook preInstall
mkdir -p $out/bin
cp cubiomes-viewer $out/bin
mkdir -p $out/share/pixmaps
cp icons/map.png $out/share/pixmaps/cubiomes-viewer.png
runHook postInstall
'';
meta = with lib; {
homepage = "https://github.com/Cubitect/cubiomes-viewer";
description = "A graphical Minecraft seed finder and map viewer";
longDescription = ''
Cubiomes Viewer provides a graphical interface for the efficient and flexible seed-finding
utilities provided by cubiomes and a map viewer for the Minecraft biomes and structure generation.
'';
platforms = platforms.all;
license = licenses.gpl3Plus;
maintainers = with maintainers; [ hqurve ];
};
}

View file

@ -1,78 +0,0 @@
{ stdenv, runtimeShell, lib, fetchurl, python2Packages, unzip }:
# This package uses a precompiled "binary" distribution of CuraByDagoma,
# distributed by the editor.
#
# To update the package, follow the links on https://dist.dagoma.fr/:
# * Cura By Dagoma
# * Linux
# * 64 bits
# * Genric archive
#
# I made the arbitrary choice to compile this package only for x86_64.
# I guess people owning a 3D printer generally don't use i686.
# If, however, someone needs it, we certainly can find a solution.
let
pythonPackages = python2Packages;
in stdenv.mkDerivation rec {
pname = "curabydagoma";
# Version is the date, UNIX format
version = "1520506579";
# Hash of the user's choice: os, arch, package type...
hash = "58228cce5bbdcf764b7116850956f1e5";
src = fetchurl {
url = "https://dist.dagoma.fr/get/zip/CuraByDagoma/${version}/${hash}";
sha256 = "16wfipdyjkf6dq8awjzs4zgkmqk6230277mf3iz8swday9hns8pq";
};
unpackCmd = "unzip $curSrc && tar zxf CuraByDagoma_amd64.tar.gz";
nativeBuildInputs = [ unzip ];
buildInputs = [ pythonPackages.python pythonPackages.pyopengl pythonPackages.wxPython pythonPackages.pyserial pythonPackages.numpy ];
# Compile all pyc files because the included pyc files may be older than the
# py files. However, Python doesn't realize that because the packages
# have all dates set to epoch.
buildPhase = ''
python -m compileall -f curabydago
'';
# * Simply copy the stuff there
# * Create an executable with the correct path etc
# * Create a .desktop file to have a launcher in the desktop environments
installPhase = ''
mkdir $out
cp -r * $out/
mkdir $out/bin
cat > $out/bin/curabydago <<EOF
#!${runtimeShell}
export PYTHONPATH=$PYTHONPATH
${pythonPackages.python.interpreter} $out/curabydago/cura.py
EOF
chmod a+x $out/bin/curabydago
mkdir -p $out/share/applications
cat > $out/share/applications/curabydago.desktop <<EOF
[Desktop Entry]
Type=Application
Name=Cura-by-dagoma
Comment=CuraByDagoma is a fork of Legacy Cura made by Dagoma for its own printers.
Icon=$out/curabydago/resources/images/cura.ico
Exec=$out/bin/curabydago
Path=$out/
StartupNotify=true
Terminal=false
Categories=GNOME;GTK;Utility;
EOF
'';
meta = with lib; {
description = "Slicer for 3D printers built by Dagoma";
homepage = "https://dagoma.fr/cura-by-dagoma.html";
license = licenses.agpl3;
platforms = [ "x86_64-linux" ];
maintainers = with maintainers; [ tiramiseb ];
};
}

View file

@ -15,7 +15,8 @@ let
sha256 = "09h1153wgr5x2ny7ds0w2m81n3bb9j8hjb8sjfnrg506r01clkyx";
};
});
click = self.callPackage ../../../development/python-modules/click/7.nix { };
# Use click 7
click = self.callPackage ../../../development/python2-modules/click/default.nix { };
};
};
in

View file

@ -1,43 +0,0 @@
{ lib, stdenv, fetchgit, makeWrapper, gettext
, python27, python2Packages
}:
stdenv.mkDerivation {
pname = "metamorphose2";
version = "0.9.0beta";
# exif-py vendored via submodule
# mutagen vendored via copy
src = fetchgit {
url = "https://github.com/metamorphose/metamorphose2.git";
#rev = "refs/tags/v2.${version}"; #for when wxPython3 support is released
rev = "d2bdd6a86340b9668e93b35a6a568894c9909d68";
sha256 = "0ivcb3c8hidrff0ivl4dnwa2p3ihpqjdbvdig8dhg9mm5phdbabn";
};
postPatch = ''
substituteInPlace messages/Makefile \
--replace "\$(shell which msgfmt)" "${gettext}/bin/msgfmt"
'';
postInstall = ''
rm $out/bin/metamorphose2
makeWrapper ${python27}/bin/python $out/bin/metamorphose2 \
--prefix PYTHONPATH : $PYTHONPATH:$(toPythonPath "$out") \
--add-flags "-O $out/share/metamorphose2/metamorphose2.py -w=3"
'';
buildInput = [ gettext python27 ];
nativeBuildInputs = [ makeWrapper ];
propagatedBuildInputs = [ python2Packages.wxPython python2Packages.pillow ];
makeFlags = [ "PREFIX=$(out)" ];
meta = with lib; {
description = "a graphical mass renaming program for files and folders";
homepage = "https://github.com/metamorphose/metamorphose2";
license = with licenses; gpl3Plus;
maintainers = with maintainers; [ ramkromberg ];
platforms = with platforms; linux;
};
}

View file

@ -1,44 +0,0 @@
{ lib, stdenv, fetchFromGitHub, python2Packages }:
stdenv.mkDerivation rec {
pname = "neap";
version = "0.7.2";
src = fetchFromGitHub {
owner = "vzxwco";
repo = "neap";
rev = "v${version}";
sha256 = "04da8rq23rl1qcvrdm5m3l90xbwyli7x601sckv7hmkip2q3g1kz";
};
nativeBuildInputs = [
python2Packages.wrapPython
];
buildInputs = [
python2Packages.python
];
pythonPath = [
python2Packages.xlib
python2Packages.pygtk
];
installPhase = ''
install -D -t $out/bin neap
install -D -t $out/share/man/man1 neap.1
install -D -t $out/share/applications neap.desktop
'';
postFixup = ''
wrapPythonPrograms
'';
meta = with lib; {
description = "Systray workspace pager";
homepage = "https://github.com/vzxwco/neap";
license = licenses.bsd2;
platforms = platforms.unix;
maintainers = [ maintainers.romildo ];
};
}

View file

@ -20,8 +20,8 @@ let
sha256 = "ae2f05671588762dd83a21d8b18c51fe355e86783e24594995ff8d7380dffe38";
};
});
werkzeug = self.callPackage ../../../development/python-modules/werkzeug/1.nix { };
flask = self.callPackage ../../../development/python-modules/flask/1.nix { };
werkzeug = self.callPackage ../../../development/python2-modules/werkzeug { };
flask = self.callPackage ../../../development/python2-modules/flask { };
sqlsoup = super.sqlsoup.overrideAttrs ({ meta ? {}, ... }: {
meta = meta // { broken = false; };
});

View file

@ -161,13 +161,23 @@ let
./patches/no-build-timestamps.patch
# For bundling Widevine (DRM), might be replaceable via bundle_widevine_cdm=true in gnFlags:
./patches/widevine-79.patch
] ++ lib.optionals (versionRange "98" "99") [
] ++ lib.optionals (versionRange "97" "98") [
# A critical Ozone/Wayland fix:
# (Note: The patch for surface_augmenter.cc doesn't apply on M97 so we extract that part.)
(fetchpatch {
# [linux/wayland] Fixed terminate caused by binding to wrong version.
url = "https://github.com/chromium/chromium/commit/dd4c3ddadbb9869f59cee201a38e9ca3b9154f4d.patch";
excludes = [ "ui/ozone/platform/wayland/host/surface_augmenter.cc" ];
sha256 = "sha256-lp4kxPNAkafdE9NfD3ittTCpomRpX9Hqhtt9GFf4Ntw=";
})
./patches/m97-ozone-wayland-fix-surface_augmenter.patch
] ++ lib.optionals (versionRange "98" "99") [
(githubPatch {
# [linux/wayland] Fixed terminate caused by binding to wrong version.
commit = "dd4c3ddadbb9869f59cee201a38e9ca3b9154f4d";
sha256 = "sha256-FH7lBQTruMzkBT2XQ+kgADmJA0AxJfaV/gvtoqfQ4a4=";
})
] ++ lib.optionals (versionRange "97" "99") [
(githubPatch {
# [linux/wayland] Fixed terminate caused by binding to wrong version. (fixup)
commit = "a84b79daa8897b822336b8f348ef4daaae07af37";

View file

@ -0,0 +1,31 @@
diff --git a/ui/ozone/platform/wayland/host/surface_augmenter.cc b/ui/ozone/platform/wayland/host/surface_augmenter.cc
index d971d15e71426..6e5408398bcea 100644
--- a/ui/ozone/platform/wayland/host/surface_augmenter.cc
+++ b/ui/ozone/platform/wayland/host/surface_augmenter.cc
@@ -13,7 +13,8 @@
namespace ui {
namespace {
-constexpr uint32_t kMaxSurfaceAugmenterVersion = 1;
+constexpr uint32_t kMinVersion = 1;
+constexpr uint32_t kMaxVersion = 1;
}
// static
@@ -27,11 +28,13 @@ void SurfaceAugmenter::Instantiate(WaylandConnection* connection,
uint32_t version) {
DCHECK_EQ(interface, kInterfaceName);
- if (connection->surface_augmenter_)
+ if (connection->surface_augmenter_ ||
+ !wl::CanBind(interface, version, kMinVersion, kMaxVersion)) {
return;
+ }
- auto augmenter = wl::Bind<surface_augmenter>(
- registry, name, std::min(version, kMaxSurfaceAugmenterVersion));
+ auto augmenter = wl::Bind<surface_augmenter>(registry, name,
+ std::min(version, kMaxVersion));
if (!augmenter) {
LOG(ERROR) << "Failed to bind surface_augmenter";
return;

View file

@ -8,13 +8,13 @@
buildGoModule rec {
pname = "arkade";
version = "0.8.11";
version = "0.8.12";
src = fetchFromGitHub {
owner = "alexellis";
repo = "arkade";
rev = version;
sha256 = "0mdi5cjcs0qzj238lfjqbjgi131r2vxj810zx1gv1lc9y0aq0hkl";
sha256 = "sha256-OBcvJ1+VAE7jDeQ/I/9uc0wiU0iibeflRMmb+ulgDtQ=";
};
CGO_ENABLED = 0;

View file

@ -2,20 +2,20 @@
stdenv.mkDerivation rec {
pname = "terranix";
version = "2.5.0";
version = "2.5.3";
src = fetchFromGitHub {
owner = "mrVanDalo";
repo = "terranix";
rev = version;
sha256 = "sha256-HDiyJGgyDUoLnpL8N+wDm3cM/vEfYYc/p4N1kKH/kLk=";
sha256 = "sha256-Jhq0pkyF1KWJ6HgeWLoRfIxo7QHvOwwXzsIxZQgQtK4=";
};
nativeBuildInputs = [ makeWrapper ];
installPhase = ''
mkdir -p $out/{bin,core,modules,lib}
mv bin core modules lib $out/
mv bin core modules lib share $out/
wrapProgram $out/bin/terranix-doc-json \
--prefix PATH : ${lib.makeBinPath [ jq nix ]}

View file

@ -1,68 +0,0 @@
{ lib, fetchdarcs, python2Packages, libvncserver, zlib
, gnutls, libvpx, makeDesktopItem, mkDerivationWith }:
mkDerivationWith python2Packages.buildPythonApplication rec {
pname = "blink";
version = "3.2.0";
src = fetchdarcs {
url = "http://devel.ag-projects.com/repositories/blink-qt";
rev = "release-${version}";
sha256 = "19rcwr5scw48qnj79q1pysw95fz9h98nyc3161qy2kph5g7dwkc3";
};
patches = [ ./pythonpath.patch ];
postPatch = ''
sed -i 's|@out@|'"''${out}"'|g' blink/resources.py
'';
propagatedBuildInputs = with python2Packages; [
pyqt5_with_qtwebkit
cjson
sipsimple
twisted
google-api-python-client
];
buildInputs = [
python2Packages.cython
zlib
libvncserver
libvpx
];
desktopItem = makeDesktopItem {
name = "Blink";
exec = "blink";
comment = meta.description;
desktopName = "Blink";
icon = "blink";
genericName = "Instant Messaging";
categories = "Internet;";
};
dontWrapQtApps = true;
postInstall = ''
mkdir -p "$out/share/applications"
mkdir -p "$out/share/pixmaps"
cp "$desktopItem"/share/applications/* "$out/share/applications"
cp "$out"/share/blink/icons/blink.* "$out/share/pixmaps"
'';
preFixup = ''
makeWrapperArgs+=(
--prefix "LD_LIBRARY_PATH" ":" "${gnutls.out}/lib"
"''${qtWrapperArgs[@]}"
)
'';
meta = with lib; {
homepage = "https://icanblink.com/";
description = "A state of the art, easy to use SIP client for Voice, Video and IM";
platforms = platforms.linux;
license = licenses.gpl3;
maintainers = with maintainers; [ pSub ];
};
}

View file

@ -1,49 +0,0 @@
--- blink-2.0.0/blink/resources.py 2016-03-09 14:39:07.000000000 +0100
+++ blink-2.0.0/blink/resources-patched.py 2016-03-12 21:34:14.965476623 +0100
@@ -1,7 +1,10 @@
+# Copyright (C) 2010-2013 AG Projects. See LICENSE for details.
+#
"""Provide access to Blink's resources"""
-import __main__
+__all__ = ['ApplicationData', 'Resources', 'IconManager']
+
import imghdr
import os
import platform
@@ -19,14 +22,10 @@
from blink.util import run_in_gui_thread
-__all__ = ['ApplicationData', 'Resources', 'IconManager']
-
-
class DirectoryContextManager(unicode):
def __enter__(self):
self.directory = os.getcwdu()
os.chdir(self)
-
def __exit__(self, type, value, traceback):
os.chdir(self.directory)
@@ -61,18 +60,7 @@
@classproperty
def directory(cls):
if cls._cached_directory is None:
- try:
- binary_directory = os.path.dirname(os.path.realpath(__main__.__file__))
- except AttributeError:
- if hasattr(sys, 'frozen'):
- application_directory = os.path.dirname(os.path.realpath(sys.executable))
- else:
- application_directory = os.path.realpath('') # executed in interactive interpreter
- else:
- if os.path.basename(binary_directory) == 'bin':
- application_directory = os.path.dirname(binary_directory)
- else:
- application_directory = binary_directory
+ application_directory = '@out@'
if os.path.exists(os.path.join(application_directory, 'resources', 'blink.ui')):
cls._cached_directory = os.path.join(application_directory, 'resources').decode(sys.getfilesystemencoding())
else:

View file

@ -2,15 +2,15 @@
buildGoModule rec {
pname = "ipfs-cluster";
version = "0.14.1";
version = "0.14.4";
vendorSha256 = "sha256-vDNWYgWlM3kJqlHW/6Bj6P+t6M61TvOVRJwDN2p0mi4=";
vendorSha256 = "sha256-4j6aPs17YNXyPIRr5NshAPYIfNM08GlYV13jnGtJzQc=";
src = fetchFromGitHub {
owner = "ipfs";
repo = "ipfs-cluster";
rev = "v${version}";
sha256 = "sha256-GELCd12LhA4CBe9DRRBu4r+AwCksaRVIWcSAJScvnbk=";
sha256 = "sha256-82t3sHMKZiV6sYnW72N94qfRZ/aMkavj+hiAyg5viHQ=";
};
meta = with lib; {

View file

@ -2,16 +2,16 @@
buildGoModule rec {
pname = "ipget";
version = "0.7.0";
version = "0.8.0";
src = fetchFromGitHub {
owner = "ipfs";
repo = "ipget";
rev = "v${version}";
sha256 = "sha256-YD05HIVr99b8VmEJgzY2ClNv31I98d0NbfCk3XcB+xk=";
sha256 = "sha256-qRPke8/CUmGX6v+8qv9JQCUC8T9pjwRRyGmBWvatsJ0=";
};
vendorSha256 = "sha256-bymHVWskCt7bf02CveMXl1VhZYhRSEH7xIoESh31iGg=";
vendorSha256 = "sha256-La9V5B+UDaOswh/R8ad4xsnCF5ewtF7G+uiqnarM4Mg=";
postPatch = ''
# main module (github.com/ipfs/ipget) does not contain package github.com/ipfs/ipget/sharness/dependencies

View file

@ -1,9 +1,13 @@
{ lib, buildPythonPackage, python, fetchFromGitHub, isPy3k, pytestCheckHook
, notmuch2, urwid, urwidtrees, twisted, python_magic, configobj, mock, file, gpgme
, service-identity, gnupg, sphinx, gawk, procps, future , withManpage ? false
{ lib, python3, fetchFromGitHub, file, gnupg, gawk, notmuch, procps, withManpage ? false
}:
buildPythonPackage rec {
with python3.pkgs;
let
notmuch2 = callPackage ./notmuch.nix {
inherit notmuch;
};
in buildPythonApplication rec {
pname = "alot";
version = "0.10";
outputs = [ "out" ] ++ lib.optional withManpage "man";

View file

@ -1,52 +0,0 @@
{ lib, fetchFromGitHub, python2Packages, gnupg1orig, openssl, git }:
python2Packages.buildPythonApplication rec {
pname = "mailpile";
version = "1.0.0rc2";
src = fetchFromGitHub {
owner = "mailpile";
repo = "Mailpile";
rev = version;
sha256 = "1z5psh00fjr8gnl4yjcl4m9ywfj24y1ffa2rfb5q8hq4ksjblbdj";
};
postPatch = ''
patchShebangs scripts
'';
nativeBuildInputs = with python2Packages; [ pbr git ];
PBR_VERSION=version;
propagatedBuildInputs = with python2Packages; [
appdirs
cryptography
fasteners
gnupg1orig
jinja2
pgpdump
pillow
python2Packages.lxml
spambayes
];
postInstall = ''
wrapProgram $out/bin/mailpile \
--prefix PATH ":" "${lib.makeBinPath [ gnupg1orig openssl ]}" \
--set-default MAILPILE_SHARED "$out/share/mailpile"
'';
# No tests were found
doCheck = false;
meta = with lib; {
description = "A modern, fast web-mail client with user-friendly encryption and privacy features";
homepage = "https://www.mailpile.is/";
license = [ licenses.asl20 licenses.agpl3 ];
platforms = platforms.linux;
maintainers = [ ];
knownVulnerabilities = [
"Numerous and uncounted, upstream has requested we not package it. See more: https://github.com/NixOS/nixpkgs/pull/23058#issuecomment-283515104"
];
};
}

View file

@ -3,8 +3,8 @@
}:
let
apispec3 = callPackage ../apispec/3.nix {};
jinja2 = callPackage ../jinja2/2.nix {};
apispec3 = callPackage ./apispec.nix {};
jinja2 = callPackage ../../../../development/python2-modules/jinja2 {};
in
buildPythonPackage rec {
pname = "aiohttp-apispec";

View file

@ -6,8 +6,7 @@ let
libtorrent = (python3.pkgs.toPythonModule (
libtorrent-rasterbar-1_2_x.override { python = python3; })).python;
aiohttp-apispec = python3.pkgs.callPackage
../../../../development/python-modules/aiohttp-apispec/unstable.nix { };
aiohttp-apispec = python3.pkgs.callPackage ./aiohttp-apispec.nix { };
in
stdenv.mkDerivation rec {
pname = "tribler";

View file

@ -0,0 +1,25 @@
{ lib, mkDerivation, fetchFromGitHub, cmake, qtsvg, qtwebengine, qttranslations }:
mkDerivation rec {
pname = "PageEdit";
version = "1.7.0";
src = fetchFromGitHub {
owner = "Sigil-Ebook";
repo = pname;
rev = version;
hash = "sha256-/t08ZS2iYWIDkco0nhACBQs1X+X77SJ/g+ow7KemfRY=";
};
nativeBuildInputs = [ cmake qttranslations ];
propagatedBuildInputs = [ qtsvg qtwebengine ];
cmakeFlags = "-DINSTALL_BUNDLED_DICTS=0";
meta = with lib; {
description = "ePub XHTML Visual Editor";
homepage = "https://sigil-ebook.com/pageedit/";
license = licenses.gpl3Plus;
maintainers = [ maintainers.pasqui23 ];
platforms = platforms.all;
};
}

View file

@ -1,12 +1,12 @@
{ appimageTools, lib, fetchurl }:
let
pname = "notion-app-enhanced";
version = "2.0.16-5";
version = "2.0.18-1";
name = "${pname}-v${version}";
src = fetchurl {
url = "https://github.com/notion-enhancer/notion-repackaged/releases/download/v${version}/Notion-Enhanced-${version}.AppImage";
sha256 = "1v733b4clc9sjgb72fasmbqiyz26d09f3kmvd1nqshwp5d14dajz";
sha256 = "sha256-SqeMnoMzxxaViJ3NPccj3kyMc1xvXWULM6hQIDZySWY=";
};
appimageContents = appimageTools.extract { inherit name src; };

View file

@ -18,7 +18,7 @@ python3.pkgs.buildPythonApplication rec {
nativeBuildInputs = [ python3.pkgs.wrapPython copyDesktopItems ];
pythonPath = with python3.pkgs; [
wxPython_4_0 # not compatible with wxPython_4_1. reported upstream https://github.com/wxWidgets/Phoenix/issues/1956
wxPython_4_1
humblewx
icalendar
markdown

View file

@ -10,7 +10,8 @@ let
# Workaround the issue by providing click 7 explicitly.
python = python3.override {
packageOverrides = self: super: {
click = self.callPackage ../../../development/python-modules/click/7.nix { };
# Use click 7
click = self.callPackage ../../../development/python2-modules/click/default.nix { };
};
};
in with python.pkgs; buildPythonApplication rec {

View file

@ -7,7 +7,6 @@
, pkg-config
, volk
, cppunit
, swig
, orc
, boost
, log4cpp
@ -21,33 +20,39 @@
, libjack2
, CoreAudio
, uhd
, comedilib
, libusb1
, SDL
, gsl
, soapysdr
, libsodium
, libsndfile
, libunwind
, thrift
, cppzmq
, zeromq
# Needed only if qt-gui is disabled, from some reason
, icu
# GUI related
, gtk2
, gtk3
, pango
, gobject-introspection
, cairo
, qt4
, qwt6_qt4
, qt5
, libsForQt5
# Features available to override, the list of them is in featuresInfo. They
# are all turned on by default
# are all turned on by default.
, features ? {}
# If one wishes to use a different src or name for a very custom build
, overrideSrc ? {}
, pname ? "gnuradio"
, versionAttr ? {
major = "3.7";
minor = "14";
major = "3.9";
minor = "5";
patch = "0";
}
}:
let
sourceSha256 = "BiUDibXV/5cEYmAAaIxT4WTxF/ni4MJumF5oJ/vuOyc=";
sourceSha256 = "sha256-TWCXLoS+ImKNd2zkxMks4FXsQMvGKgcW5/MW8S1Y1TY=";
featuresInfo = {
# Needed always
basic = {
@ -56,27 +61,30 @@ let
pkg-config
orc
];
runtime = [ boost log4cpp mpir ];
pythonNative = with python.pkgs; [ Mako six ];
};
volk = {
cmakeEnableFlag = "VOLK";
runtime = [
volk
boost
log4cpp
mpir
]
# when gr-qtgui is disabled, icu needs to be included, otherwise
# building with boost 1.7x fails
++ lib.optionals (!(hasFeature "gr-qtgui")) [ icu ];
pythonNative = with python.pkgs; [
Mako
six
];
};
doxygen = {
native = [ doxygen ];
cmakeEnableFlag = "DOXYGEN";
};
sphinx = {
pythonNative = with python.pkgs; [ sphinx ];
cmakeEnableFlag = "SPHINX";
man-pages = {
cmakeEnableFlag = "MANPAGES";
};
python-support = {
pythonRuntime = [ python.pkgs.six ];
native = [
swig
python
];
cmakeEnableFlag = "PYTHON";
@ -85,31 +93,44 @@ let
native = [ cppunit ];
cmakeEnableFlag = "TESTING";
};
post-install = {
cmakeEnableFlag = "POSTINSTALL";
};
gnuradio-runtime = {
cmakeEnableFlag = "GNURADIO_RUNTIME";
pythonRuntime = [
python.pkgs.pybind11
];
};
gr-ctrlport = {
cmakeEnableFlag = "GR_CTRLPORT";
native = [
swig
runtime = [
libunwind
thrift
];
pythonRuntime = with python.pkgs; [
python.pkgs.thrift
# For gr-perf-monitorx
matplotlib
networkx
];
cmakeEnableFlag = "GR_CTRLPORT";
};
gnuradio-companion = {
pythonRuntime = with python.pkgs; [
pyyaml
cheetah
lxml
pygtk
Mako
numpy
# propagated by pygtk, but since wrapping is done externally, it help
# the wrapper if it's here
pycairo
pygobject2
pygobject3
];
native = [
python.pkgs.pytest
];
runtime = [
gtk2
gtk3
pango
gobject-introspection
cairo
libsndfile
];
cmakeEnableFlag = "GRC";
};
@ -126,6 +147,10 @@ let
gr-filter = {
runtime = [ fftwFloat ];
cmakeEnableFlag = "GR_FILTER";
pythonRuntime = with python.pkgs; [
scipy
pyqtgraph
];
};
gr-analog = {
cmakeEnableFlag = "GR_ANALOG";
@ -136,9 +161,6 @@ let
gr-dtv = {
cmakeEnableFlag = "GR_DTV";
};
gr-atsc = {
cmakeEnableFlag = "GR_ATSC";
};
gr-audio = {
runtime = []
++ lib.optionals stdenv.isLinux [ alsa-lib libjack2 ]
@ -146,33 +168,46 @@ let
;
cmakeEnableFlag = "GR_AUDIO";
};
gr-comedi = {
runtime = [ comedilib ];
cmakeEnableFlag = "GR_COMEDI";
};
gr-channels = {
cmakeEnableFlag = "GR_CHANNELS";
};
gr-noaa = {
cmakeEnableFlag = "GR_NOAA";
};
gr-pager = {
cmakeEnableFlag = "GR_PAGER";
};
gr-qtgui = {
runtime = [ qt4 qwt6_qt4 ];
pythonRuntime = [ python.pkgs.pyqt4 ];
runtime = [ qt5.qtbase libsForQt5.qwt ];
pythonRuntime = [ python.pkgs.pyqt5 ];
cmakeEnableFlag = "GR_QTGUI";
};
gr-trellis = {
cmakeEnableFlag = "GR_TRELLIS";
};
gr-uhd = {
runtime = [ uhd ];
runtime = [
uhd
];
cmakeEnableFlag = "GR_UHD";
};
gr-uhd-rfnoc = {
runtime = [
uhd
];
cmakeEnableFlag = "UHD_RFNOC";
};
gr-utils = {
cmakeEnableFlag = "GR_UTILS";
pythonRuntime = with python.pkgs; [
# For gr_plot
matplotlib
];
};
gr-modtool = {
pythonRuntime = with python.pkgs; [
setuptools
click
click-plugins
];
cmakeEnableFlag = "GR_MODTOOL";
};
gr-blocktool = {
cmakeEnableFlag = "GR_BLOCKTOOL";
};
gr-video-sdl = {
runtime = [ SDL ];
@ -182,27 +217,28 @@ let
runtime = [ codec2 gsm ];
cmakeEnableFlag = "GR_VOCODER";
};
gr-fcd = {
runtime = [ libusb1 ];
cmakeEnableFlag = "GR_FCD";
};
gr-wavelet = {
cmakeEnableFlag = "GR_WAVELET";
runtime = [ gsl ];
runtime = [ gsl libsodium ];
};
gr-zeromq = {
runtime = [ cppzmq zeromq ];
cmakeEnableFlag = "GR_ZEROMQ";
};
gr-wxgui = {
pythonRuntime = with python.pkgs; [ numpy wxPython ];
cmakeEnableFlag = "GR_WXGUI";
gr-network = {
cmakeEnableFlag = "GR_NETWORK";
};
gr-soapy = {
cmakeEnableFlag = "GR_SOAPY";
runtime = [
soapysdr
];
};
};
shared = (import ./shared.nix {
inherit
lib
stdenv
lib
python
removeReferencesTo
featuresInfo
@ -212,8 +248,8 @@ let
overrideSrc
fetchFromGitHub
;
qt = qt4;
gtk = gtk2;
qt = qt5;
gtk = gtk3;
});
inherit (shared) hasFeature; # function
in
@ -225,57 +261,33 @@ stdenv.mkDerivation rec {
src
nativeBuildInputs
buildInputs
cmakeFlags
disallowedReferences
postInstall
stripDebugList
doCheck
dontWrapPythonPrograms
dontWrapQtApps
meta
;
patches = [
# Not accepted upstream, see https://github.com/gnuradio/gnuradio/pull/5227
./modtool-newmod-permissions.patch
];
passthru = shared.passthru // {
# Deps that are potentially overriden and are used inside GR plugins - the same version must
inherit boost volk;
} // lib.optionalAttrs (hasFeature "gr-uhd") {
inherit uhd;
} // lib.optionalAttrs (hasFeature "gr-qtgui") {
inherit (libsForQt5) qwt;
};
cmakeFlags = shared.cmakeFlags
# From some reason, if these are not set, libcodec2 and gsm are
# not detected properly (slightly different then what's in
# ./default.nix).
++ lib.optionals (hasFeature "gr-vocoder") [
"-DLIBCODEC2_LIBRARIES=${codec2}/lib/libcodec2.so"
"-DLIBCODEC2_INCLUDE_DIR=${codec2}/include"
"-DLIBGSM_LIBRARIES=${gsm}/lib/libgsm.so"
"-DLIBGSM_INCLUDE_DIR=${gsm}/include/gsm"
]
++ lib.optionals (hasFeature "volk" && volk != null) [
"-DENABLE_INTERNAL_VOLK=OFF"
]
;
stripDebugList = shared.stripDebugList
# gr-fcd feature was dropped in 3.8
++ lib.optionals (hasFeature "gr-fcd") [ "share/gnuradio/examples/fcd" ]
;
preConfigure = ""
# wxgui and pygtk are not looked up properly, so we force them to be
# detected as found, if they are requested by the `features` attrset.
+ lib.optionalString (hasFeature "gr-wxgui") ''
sed -i 's/.*wx\.version.*/set(WX_FOUND TRUE)/g' gr-wxgui/CMakeLists.txt
''
+ lib.optionalString (hasFeature "gnuradio-companion") ''
sed -i 's/.*pygtk_version.*/set(PYGTK_FOUND TRUE)/g' grc/CMakeLists.txt
postInstall = shared.postInstall
# This is the only python reference worth removing, if needed.
+ lib.optionalString (!hasFeature "python-support") ''
${removeReferencesTo}/bin/remove-references-to -t ${python} $out/lib/cmake/gnuradio/GnuradioConfig.cmake
${removeReferencesTo}/bin/remove-references-to -t ${python} $(readlink -f $out/lib/libgnuradio-runtime.so)
${removeReferencesTo}/bin/remove-references-to -t ${python.pkgs.pybind11} $out/lib/cmake/gnuradio/gnuradio-runtimeTargets.cmake
''
;
patches = [
# Don't install python referencing files if python support is disabled.
# See: https://github.com/gnuradio/gnuradio/pull/3856
(fetchpatch {
url = "https://github.com/gnuradio/gnuradio/commit/acef55433d15c231661fa44751f9a2d90a4baa4b.diff";
sha256 = "2CEX44Ll8frfLXTIWjdDhKl7aXcjiAWsezVdwrynelE=";
})
(fetchpatch {
url = "https://github.com/gnuradio/gnuradio/commit/a2681edcfaabcb1ecf878ae861161b6a6bf8459d.diff";
sha256 = "2Pitgu8accs16B5X5+/q51hr+IY9DMsA15f56gAtBs8=";
})
];
}

View file

@ -9,7 +9,7 @@
, cppunit
, orc
, boost
, log4cpp
, spdlog
, mpir
, doxygen
, python
@ -18,6 +18,8 @@
, fftwFloat
, alsa-lib
, libjack2
, libiio
, libad9361
, CoreAudio
, uhd
, SDL
@ -45,14 +47,14 @@
, overrideSrc ? {}
, pname ? "gnuradio"
, versionAttr ? {
major = "3.9";
minor = "5";
major = "3.10";
minor = "0";
patch = "0";
}
}:
let
sourceSha256 = "sha256-TWCXLoS+ImKNd2zkxMks4FXsQMvGKgcW5/MW8S1Y1TY=";
sourceSha256 = "sha256-1K8nlNiirks3MJ+9cH9bkILVFtu5OxhKkNhetGqojn4=";
featuresInfo = {
# Needed always
basic = {
@ -64,7 +66,7 @@ let
runtime = [
volk
boost
log4cpp
spdlog
mpir
]
# when gr-qtgui is disabled, icu needs to be included, otherwise
@ -171,6 +173,22 @@ let
gr-channels = {
cmakeEnableFlag = "GR_CHANNELS";
};
gr-pdu = {
cmakeEnableFlag = "GR_PDU";
runtime = [
libiio
libad9361
];
};
gr-iio = {
cmakeEnableFlag = "GR_IIO";
runtime = [
libiio
];
};
common-precompiled-headers = {
cmakeEnableFlag = "COMMON_PCH";
};
gr-qtgui = {
runtime = [ qt5.qtbase libsForQt5.qwt ];
pythonRuntime = [ python.pkgs.pyqt5 ];

View file

@ -24,13 +24,13 @@ assert !(pulseaudioSupport && portaudioSupport);
gnuradio3_8Minimal.pkgs.mkDerivation rec {
pname = "gqrx";
version = "2.15.2";
version = "2.15.4";
src = fetchFromGitHub {
owner = "gqrx-sdr";
repo = "gqrx";
rev = "v${version}";
sha256 = "sha256-LWuSJbzQKHoCbkyRQ7KqUxFXzA99kuafPibH8Xx7mXs=";
sha256 = "sha256-iQlrnkc1EMR8sUUAHh+7RfS/05unrcDm/kJ/Q4Vst2Q=";
};
nativeBuildInputs = [

View file

@ -1,50 +0,0 @@
{ lib, stdenv, fetchFromGitHub, htslib, zlib, curl, openssl, samblaster, sambamba
, samtools, hexdump, python2Packages, which }:
let
python =
python2Packages.python.withPackages (pkgs: with pkgs; [ pysam numpy ]);
in stdenv.mkDerivation rec {
pname = "lumpy";
version = "0.3.1";
src = fetchFromGitHub {
owner = "arq5x";
repo = "lumpy-sv";
rev = "v${version}";
sha256 = "0r71sg7qch8r6p6dw995znrqdj6q49hjdylhzbib2qmv8nvglhs9";
fetchSubmodules = true;
};
nativeBuildInputs = [ which ];
buildInputs =
[ htslib zlib curl openssl python samblaster sambamba samtools hexdump ];
preConfigure = ''
patchShebangs ./.
# Use Nix htslib over bundled version
sed -i 's/lumpy_filter: htslib/lumpy_filter:/' Makefile
sed -i 's|../../lib/htslib/libhts.a|-lhts|' src/filter/Makefile
# Also make sure we use the includes from Nix's htslib
sed -i 's|../../lib/htslib/|${htslib}|' src/filter/Makefile
'';
# Upstream's makefile doesn't have an install target
installPhase = ''
mkdir -p $out
cp -r bin $out
cp -r scripts $out
sed -i 's|/build/source|'$out'|' $out/bin/lumpyexpress.config
'';
meta = with lib; {
description = "Probabilistic structural variant caller";
homepage = "https://github.com/arq5x/lumpy-sv";
maintainers = with maintainers; [ jbedo ];
license = licenses.mit;
platforms = [ "x86_64-linux" ];
};
}

View file

@ -3,8 +3,10 @@
libstartup_notification, libGL, libX11, libXrandr, libXinerama, libXcursor,
libxkbcommon, libXi, libXext, wayland-protocols, wayland,
lcms2,
librsync,
installShellFiles,
dbus,
darwin,
Cocoa,
CoreGraphics,
Foundation,
@ -21,20 +23,21 @@
with python3Packages;
buildPythonApplication rec {
pname = "kitty";
version = "0.23.1";
version = "0.24.1";
format = "other";
src = fetchFromGitHub {
owner = "kovidgoyal";
repo = "kitty";
rev = "v${version}";
sha256 = "sha256-2RwDU6EOJWF0u2ikJFg9U2yqSXergDkJH3h2i+QJ7G4=";
sha256 = "sha256-WPkyub7CwNXRksUmqiZeznnSqEPFpyHTeFLQ+D4Fb5c=";
};
buildInputs = [
harfbuzz
ncurses
lcms2
librsync
] ++ lib.optionals stdenv.isDarwin [
Cocoa
CoreGraphics
@ -45,6 +48,8 @@ buildPythonApplication rec {
libpng
python3
zlib
] ++ lib.optionals (stdenv.isDarwin && (builtins.hasAttr "UserNotifications" darwin.apple_sdk.frameworks)) [
darwin.apple_sdk.frameworks.UserNotifications
] ++ lib.optionals stdenv.isLinux [
fontconfig libunistring libcanberra libX11
libXrandr libXinerama libXcursor libxkbcommon libXi libXext
@ -67,26 +72,31 @@ buildPythonApplication rec {
propagatedBuildInputs = lib.optional stdenv.isLinux libGL;
outputs = [ "out" "terminfo" ];
outputs = [ "out" "terminfo" "shell_integration" ];
# Causes build failure due to warning
hardeningDisable = lib.optional stdenv.cc.isClang "strictoverflow";
dontConfigure = true;
buildPhase = ''
buildPhase = let
commonOptions = ''
--update-check-interval=0 \
--shell-integration=enabled\ no-rc
'';
in ''
runHook preBuild
${if stdenv.isDarwin then ''
${python.interpreter} setup.py kitty.app \
--update-check-interval=0 \
--disable-link-time-optimization
--disable-link-time-optimization \
${commonOptions}
make man
'' else ''
${python.interpreter} setup.py linux-package \
--update-check-interval=0 \
--egl-library='${lib.getLib libGL}/lib/libEGL.so.1' \
--startup-notification-library='${libstartup_notification}/lib/libstartup-notification-1.so' \
--canberra-library='${libcanberra}/lib/libcanberra.so'
--canberra-library='${libcanberra}/lib/libcanberra.so' \
${commonOptions}
''}
runHook postBuild
'';
@ -125,10 +135,7 @@ buildPythonApplication rec {
--bash <("$out/bin/kitty" + complete setup bash) \
--fish <("$out/bin/kitty" + complete setup fish) \
--zsh <("$out/bin/kitty" + complete setup zsh)
runHook postInstall
'';
postInstall = ''
terminfo_src=${if stdenv.isDarwin then
''"$out/Applications/kitty.app/Contents/Resources/terminfo"''
else
@ -139,6 +146,10 @@ buildPythonApplication rec {
mkdir -p $out/nix-support
echo "$terminfo" >> $out/nix-support/propagated-user-env-packages
cp -r 'shell-integration' "$shell_integration"
runHook postInstall
'';
meta = with lib; {

View file

@ -1,5 +1,5 @@
{ lib
, python3Packages
, python3
, fetchFromGitHub
, enableGoogle ? false
, enableAWS ? false
@ -7,59 +7,88 @@
, enableSSH ? false
}:
with python3Packages;
buildPythonApplication rec {
python3.pkgs.buildPythonApplication rec {
pname = "dvc";
version = "0.24.3";
version = "2.9.3";
format = "setuptools";
# PyPi only has wheel
src = fetchFromGitHub {
owner = "iterative";
repo = "dvc";
repo = pname;
rev = version;
sha256 = "1wqq4i23hppilp20fx5a5nj93xwf3wwwr2f8aasvn6jkv2l22vpl";
hash = "sha256-nRlgo7Wjs7RgTUxoMYQh5YEsqiJtdWH2ex79rhXagAQ=";
};
propagatedBuildInputs = [
ply
configparser
zc_lockfile
future
nativeBuildInputs = with python3.pkgs; [
setuptools-scm
setuptools-scm-git-archive
];
propagatedBuildInputs = with python3.pkgs; [
appdirs
aiohttp-retry
colorama
configobj
networkx
pyyaml
GitPython
setuptools
nanotime
pyasn1
schema
jsonpath_rw
requests
grandalf
asciimatics
configobj
dictdiffer
diskcache
distro
appdirs
]
++ lib.optional enableGoogle google-cloud-storage
++ lib.optional enableAWS boto3
++ lib.optional enableAzure azure-storage-blob
++ lib.optional enableSSH paramiko;
# tests require access to real cloud services
# nix build tests have to be isolated and run locally
doCheck = false;
dpath
flatten-dict
flufl_lock
funcy
grandalf
nanotime
networkx
pathspec
ply
psutil
pydot
pygtrie
pyparsing
python-benedict
requests
rich
ruamel-yaml
scmrepo
shortuuid
shtab
tabulate
toml
tqdm
typing-extensions
voluptuous
zc_lockfile
] ++ lib.optional enableGoogle [
google-cloud-storage
] ++ lib.optional enableAWS [
boto3
] ++ lib.optional enableAzure [
azure-storage-blob
] ++ lib.optional enableSSH [
paramiko
] ++ lib.optionals (pythonOlder "3.8") [
importlib-metadata
] ++ lib.optionals (pythonOlder "3.9") [
importlib-resources
];
patches = [ ./dvc-daemon.patch ];
postPatch = ''
substituteInPlace dvc/daemon.py --subst-var-by dvc "$out/bin/dcv"
substituteInPlace setup.cfg \
--replace "grandalf==0.6" "grandalf>=0.6"
substituteInPlace dvc/daemon.py \
--subst-var-by dvc "$out/bin/dcv"
'';
# Tests require access to real cloud services
doCheck = false;
meta = with lib; {
description = "Version Control System for Machine Learning Projects";
license = licenses.asl20;
homepage = "https://dvc.org";
maintainers = with maintainers; [ cmcdragonkai ];
license = licenses.asl20;
maintainers = with maintainers; [ cmcdragonkai fab ];
};
}

View file

@ -1,21 +1,18 @@
diff --git a/dvc/daemon.py b/dvc/daemon.py
index 1d67a37..7ce6fde 100644
index 9854a0e1..fefdd613 100644
--- a/dvc/daemon.py
+++ b/dvc/daemon.py
@@ -67,14 +67,8 @@ def daemon(args):
Args:
args (list): list of arguments to append to `dvc daemon` command.
"""
- cmd = [sys.executable]
- if not is_binary():
- cmd += ['-m', 'dvc']
- cmd += ['daemon', '-q'] + args
@@ -103,11 +103,8 @@ def daemon(args):
logger.debug("skipping launching a new daemon.")
return
- cmd = ["daemon", "-q"] + args
-
- env = fix_env()
- file_path = os.path.abspath(inspect.stack()[0][1])
- env['PYTHONPATH'] = os.path.dirname(os.path.dirname(file_path))
- env["PYTHONPATH"] = os.path.dirname(os.path.dirname(file_path))
+ cmd = [ "@dvc@" , "daemon", "-q"] + args
+ env = None
env[DVC_DAEMON] = "1"
logger.debug("Trying to spawn '{}' with env '{}'".format(cmd, env))
_spawn(cmd, env)

View file

@ -1,17 +1,20 @@
{ lib, fetchFromGitHub, python2Packages }:
{ lib, fetchFromGitHub, python3 }:
python2Packages.buildPythonApplication rec {
python3.pkgs.buildPythonApplication rec {
pname = "git-crecord";
version = "20161216.0";
version = "20201025.0";
src = fetchFromGitHub {
owner = "andrewshadura";
repo = "git-crecord";
rev = version;
sha256 = "0v3y90zi43myyi4k7q3892dcrbyi9dn2q6xgk12nw9db9zil269i";
sha256 = "1rkdmy2d2vsx22fx97nd9afh0g5lq4pns7rdxyl711apq1bhiihn";
};
propagatedBuildInputs = with python2Packages; [ docutils ];
propagatedBuildInputs = with python3.pkgs; [ docutils ];
# has no tests
doCheck = false;
meta = {
homepage = "https://github.com/andrewshadura/git-crecord";

View file

@ -1,26 +0,0 @@
{ lib, fetchFromGitHub, python2Packages }:
python2Packages.buildPythonApplication rec {
pname = "gitinspector";
version = "0.4.4";
namePrefix = "";
src = fetchFromGitHub {
owner = "ejwa";
repo = "gitinspector";
rev = "v${version}";
sha256 = "sha256-9bChvE5aAZFunu599pH7QKHZFd7aQzv0i9LURrvh2t0=";
};
checkInputs = with python2Packages; [
unittest2
];
meta = with lib; {
homepage = "https://github.com/ejwa/gitinspector";
description = "Statistical analysis tool for git repositories";
license = licenses.gpl3;
platforms = platforms.all;
maintainers = [ maintainers.bjornfor ];
};
}

View file

@ -6,10 +6,10 @@ buildPythonApplication rec {
version = "0.8.8";
src = fetchFromGitHub {
owner = "sdg-mit";
owner = "gitless-vcs";
repo = "gitless";
rev = "v${version}";
sha256 = "1q6y38f8ap6q1livvfy0pfnjr0l8b68hyhc9r5v87fmdyl7y7y8g";
sha256 = "sha256-xo5EWtP2aN8YzP8ro3bnxZwUGUp0PHD0g8hk+Y+gExE=";
};
propagatedBuildInputs = with pythonPackages; [ sh pygit2 clint ];

View file

@ -0,0 +1,30 @@
{ lib, buildKodiAddon, fetchzip, addonUpdateScript, dateutil, typing_extensions }:
buildKodiAddon rec {
pname = "arrow";
namespace = "script.module.arrow";
version = "1.0.3.1";
src = fetchzip {
url = "https://mirrors.kodi.tv/addons/matrix/${namespace}/${namespace}-${version}.zip";
sha256 = "0xa16sb2hls59l4gsg1xwb1qbkhcvbykq02l05n5rcm0alg80l3l";
};
propagatedBuildInputs = [
dateutil
typing_extensions
];
passthru = {
pythonPath = "lib";
updateScript = addonUpdateScript {
attrPath = "kodi.packages.arrow";
};
};
meta = with lib; {
homepage = "https://github.com/razzeee/script.module.arrow";
description = "Better dates & times for Python";
license = licenses.asl20;
maintainers = teams.kodi.members;
};
}

View file

@ -0,0 +1,31 @@
{ lib, buildKodiAddon, fetchzip, addonUpdateScript, requests, six, arrow }:
buildKodiAddon rec {
pname = "trakt-module";
namespace = "script.module.trakt";
version = "4.4.0+matrix.1";
src = fetchzip {
url = "https://mirrors.kodi.tv/addons/matrix/${namespace}/${namespace}-${version}.zip";
sha256 = "19kjhrykx92sy67cajxjckzdwgq47ipwml0bx9vmdr9d191h14p8";
};
propagatedBuildInputs = [
requests
six
arrow
];
passthru = {
pythonPath = "lib";
updateScript = addonUpdateScript {
attrPath = "kodi.packages.trakt-module";
};
};
meta = with lib; {
homepage = "https://github.com/Razzeee/script.module.trakt";
description = "Python trakt.py library packed for Kodi";
license = licenses.mit;
maintainers = teams.kodi.members;
};
}

View file

@ -0,0 +1,30 @@
{ lib, buildKodiAddon, fetchzip, addonUpdateScript, trakt-module, dateutil }:
buildKodiAddon rec {
pname = "trakt";
namespace = "script.trakt";
version = "3.5.0";
src = fetchzip {
url = "https://mirrors.kodi.tv/addons/matrix/${namespace}/${namespace}-${version}.zip";
sha256 = "07fb0wjcr8ggidswrjs1r1hzi6grykiyi855bgm7pjzzk95kl99v";
};
propagatedBuildInputs = [
dateutil
trakt-module
];
passthru = {
pythonPath = "lib";
updateScript = addonUpdateScript {
attrPath = "kodi.packages.trakt";
};
};
meta = with lib; {
homepage = "https://kodi.wiki/view/Add-on:Trakt";
description = "Trakt.tv movie and TV show scrobbler for Kodi";
license = licenses.gpl2Only;
maintainers = teams.kodi.members;
};
}

View file

@ -0,0 +1,25 @@
{ lib, buildKodiAddon, fetchzip, addonUpdateScript }:
buildKodiAddon rec {
pname = "typing_extensions";
namespace = "script.module.typing_extensions";
version = "3.7.4.3";
src = fetchzip {
url = "https://mirrors.kodi.tv/addons/matrix/${namespace}/${namespace}-${version}.zip";
sha256 = "0p28hchj05hmccs6b2836kh4vqdqnl169409f2845d0nw9y4wkqq";
};
passthru = {
pythonPath = "lib";
updateScript = addonUpdateScript {
attrPath = "kodi.packages.typing_extensions";
};
};
meta = with lib; {
homepage = "https://github.com/python/typing/tree/master/typing_extensions";
description = "Python typing extensions";
license = licenses.psfl;
maintainers = teams.kodi.members;
};
}

View file

@ -1,4 +1,4 @@
{ i3lock-color, lib, fetchFromGitHub }:
{ i3lock-color, lib, stdenv, fetchFromGitHub }:
i3lock-color.overrideAttrs (oldAttrs : rec {
pname = "i3lock-blur";
@ -17,5 +17,6 @@ i3lock-color.overrideAttrs (oldAttrs : rec {
license = licenses.bsd3;
maintainers = with maintainers; [ dan4ik605743 ];
platforms = platforms.all;
broken = stdenv.isDarwin; # never built on Hydra https://hydra.nixos.org/job/nixpkgs/trunk/i3lock-blur.x86_64-darwin
};
})

View file

@ -224,7 +224,7 @@ let
"''${dotnetInstallFlags[@]}" \
"''${dotnetFlags[@]}"
done
'' + (lib.optionalString packNupkg ''
'' + lib.optionalString packNupkg ''
for project in ''${projectFile[@]}; do
dotnet pack "$project" \
-p:ContinuousIntegrationBuild=true \
@ -235,16 +235,24 @@ let
"''${dotnetPackFlags[@]}" \
"''${dotnetFlags[@]}"
done
'') + (if executables != null then ''
for executable in $executables; do
'' + ''
runHook postInstall
'';
preFixup = ''
_wrapDotnetProgram() {
makeWrapper "$1" "$out/bin/$(basename "$executable")" \
--set DOTNET_ROOT "${dotnet-runtime}" \
--suffix LD_LIBRARY_PATH : "${lib.makeLibraryPath runtimeDeps}" \
"''${gappsWrapperArgs[@]}" \
"''${makeWrapperArgs[@]}"
}
'' + (if executables != null then ''
for executable in ''${executables[@]}; do
execPath="$out/lib/${args.pname}/$executable"
if [[ -f "$execPath" && -x "$execPath" ]]; then
makeWrapper "$execPath" "$out/bin/$(basename "$executable")" \
--set DOTNET_ROOT "${dotnet-runtime}" \
--suffix LD_LIBRARY_PATH : "${lib.makeLibraryPath runtimeDeps}" \
"''${gappsWrapperArgs[@]}" \
"''${makeWrapperArgs[@]}"
_wrapDotnetProgram $execPath
else
echo "Specified binary \"$executable\" is either not an executable, or does not exist!"
exit 1
@ -253,16 +261,10 @@ let
'' else ''
for executable in $out/lib/${args.pname}/*; do
if [[ -f "$executable" && -x "$executable" && "$executable" != *"dll"* ]]; then
makeWrapper "$executable" "$out/bin/$(basename "$executable")" \
--set DOTNET_ROOT "${dotnet-runtime}" \
--suffix LD_LIBRARY_PATH : "${lib.makeLibraryPath runtimeDeps}" \
"''${gappsWrapperArgs[@]}" \
"''${makeWrapperArgs[@]}"
_wrapDotnetProgram $executable
fi
done
'') + ''
runHook postInstall
'';
'');
});
in
package

View file

@ -21,9 +21,9 @@
# : lines
, postInstall
# : list Maintainer
, maintainers ? []
, maintainers ? [ ]
# : passtrhu arguments (e.g. tests)
, passthru ? {}
, passthru ? { }
}:
@ -54,7 +54,8 @@ let
"CONTRIBUTING"
];
in stdenv.mkDerivation {
in
stdenv.mkDerivation {
inherit pname version;
src = fetchurl {
@ -73,8 +74,8 @@ in stdenv.mkDerivation {
# This might not hold for e.g. BSD.
"--with-sysdep-devurandom=yes"
(if stdenv.isDarwin
then "--disable-shared"
else "--enable-shared")
then "--disable-shared"
else "--enable-shared")
]
# On darwin, the target triplet from -dumpmachine includes version number,
# but skarnet.org software uses the triplet to test binary compatibility.
@ -82,10 +83,12 @@ in stdenv.mkDerivation {
# binary built on a different version of darwin.
# http://www.skarnet.org/cgi-bin/archive.cgi?1:mss:623:heiodchokfjdkonfhdph
++ (lib.optional stdenv.isDarwin
"--build=${stdenv.hostPlatform.system}");
"--build=${stdenv.hostPlatform.system}");
inherit postConfigure;
makeFlags = lib.optional stdenv.cc.isClang [ "AR=${stdenv.cc.targetPrefix}ar" "RANLIB=${stdenv.cc.targetPrefix}ranlib" ];
# TODO(Profpatsch): ensure that there is always a $doc output!
postInstall = ''
echo "Cleaning & moving common files"

View file

@ -0,0 +1,65 @@
{ lib
, stdenvNoCC
, fetchFromGitHub
, gtk3
, hicolor-icon-theme
, jdupes
, allColorVariants ? false
, circularFolder ? false
, colorVariants ? [] # default is standard
}:
let
pname = "tela-circle-icon-theme";
in
lib.checkListOfEnum "${pname}: color variants" [ "standard" "black" "blue" "brown" "green" "grey" "orange" "pink" "purple" "red" "yellow" "manjaro" "ubuntu" ] colorVariants
stdenvNoCC.mkDerivation rec {
inherit pname;
version = "unstable-2021-12-24";
src = fetchFromGitHub {
owner = "vinceliuice";
repo = pname;
rev = "aa1f1446b6dbc6acfe3ee247e6841369c68e1495";
sha256 = "03f79h6kv5vbf92fhpi1wivzvcrfvvdvkhbmy805x4b4wl7qynki";
};
nativeBuildInputs = [
gtk3
jdupes
];
propagatedBuildInputs = [
hicolor-icon-theme
];
dontDropIconThemeCache = true;
# These fixup steps are slow and unnecessary for this package.
# Package may installs almost 400 000 small files.
dontPatchELF = true;
dontRewriteSymlinks = true;
installPhase = ''
runHook preInstall
patchShebangs install.sh
./install.sh -d $out/share/icons \
${lib.optionalString circularFolder "-c"} \
${if allColorVariants then "-a" else builtins.toString colorVariants}
jdupes -L -r $out/share/icons
runHook postInstall
'';
meta = with lib; {
description = "Flat and colorful personality icon theme";
homepage = "https://github.com/vinceliuice/Tela-circle-icon-theme";
license = licenses.gpl3Only;
platforms = platforms.unix;
maintainers = with maintainers; [ romildo ];
};
}

View file

@ -1,34 +0,0 @@
{ lib, stdenv, fetchFromGitHub, python2Packages }:
stdenv.mkDerivation rec {
pname = "cdetheme";
version = "1.3";
src = fetchFromGitHub {
owner = "josvanr";
repo = "cde-motif-theme";
rev = version;
sha256 = "1v5c4db69cmzdci8xxlkx3s3cifg1h5160qq5siwfps0sj7pvggj";
};
dontBuild = true;
pythonPath = with python2Packages; [ pyqt4 pillow pyxdg pyyaml ];
nativeBuildInputs = with python2Packages; [ python wrapPython ];
installPhase = ''
mkdir -p $out/share/themes
cp -r cdetheme $out/share/themes
patchShebangs $out/share/themes/cdetheme/scripts/switchtheme
wrapPythonProgramsIn "$out/share/themes/cdetheme/scripts" "$out $pythonPath"
'';
meta = with lib; {
description = "Gtk2 / Gtk3 theme mimicking CDE / Motif";
homepage = "https://www.gnome-look.org/p/1231025";
license = licenses.gpl3;
platforms = platforms.all;
maintainers = with maintainers; [ ];
hydraPlatforms = [];
};
}

View file

@ -15,28 +15,21 @@
let
pname = "graphite-gtk-theme";
throwIfNotSubList = name: given: valid:
let
unexpected = lib.subtractLists valid given;
in
lib.throwIfNot (unexpected == [])
"${name}: ${builtins.concatStringsSep ", " (builtins.map builtins.toString unexpected)} unexpected; valid ones: ${builtins.concatStringsSep ", " (builtins.map builtins.toString valid)}";
in
throwIfNotSubList "${pname}: theme variants" themeVariants [ "default" "purple" "pink" "red" "orange" "yellow" "green" "teal" "blue" "all" ]
throwIfNotSubList "${pname}: color variants" colorVariants [ "standard" "light" "dark" ]
throwIfNotSubList "${pname}: size variants" sizeVariants [ "standard" "compact" ]
throwIfNotSubList "${pname}: tweaks" tweaks [ "nord" "black" "midblack" "rimless" "normal" ]
lib.checkListOfEnum "${pname}: theme variants" [ "default" "purple" "pink" "red" "orange" "yellow" "green" "teal" "blue" "all" ] themeVariants
lib.checkListOfEnum "${pname}: color variants" [ "standard" "light" "dark" ] colorVariants
lib.checkListOfEnum "${pname}: size variants" [ "standard" "compact" ] sizeVariants
lib.checkListOfEnum "${pname}: tweaks" [ "nord" "black" "midblack" "rimless" "normal" ] tweaks
stdenvNoCC.mkDerivation {
inherit pname;
version = "unstable-2022-01-04";
version = "unstable-2022-01-07";
src = fetchFromGitHub {
owner = "vinceliuice";
repo = pname;
rev = "947cac4966377d8f5b5a4e2966ec2b9a6041d205";
sha256 = "11pl8hzk4fwniqdib0ffvjilpspr1n5pg1gw39kal13wxh4sdg28";
rev = "78e5421fee63b4c2a2a3d2e321538367b01a24ec";
sha256 = "1vfvv1gfbr9yr9mz0kb7c7ij6pxcryni1fjs87gn4hpyzns431wk";
};
nativeBuildInputs = [

View file

@ -0,0 +1,42 @@
{ mkDerivation
, lib
, fetchFromGitHub
, cmake
, extra-cmake-modules
, kdecoration
, plasma-workspace
, qtbase
, qt5
}:
mkDerivation rec {
pname = "lightly-qt";
version = "0.4.1";
src = fetchFromGitHub {
owner = "Luwx";
repo = "Lightly";
rev = "v${version}";
sha256 = "0qkjzgjplgwczhk6959iah4ilvazpprv7yb809jy75kkp1jw8mwk";
};
buildInputs = [
kdecoration
plasma-workspace
qtbase
qt5.qtx11extras
];
nativeBuildInputs = [
cmake
extra-cmake-modules
];
meta = with lib; {
description = "A fork of breeze theme style that aims to be visually modern and minimalistic";
homepage = "https://github.com/Luwx/Lightly";
license = licenses.gpl2Plus;
maintainers = [ maintainers.pwoelfel ];
platforms = platforms.all;
};
}

View file

@ -10,24 +10,42 @@
, optipng
, sassc
, which
, buttonSizeVariants ? [] # default to standard
, buttonVariants ? [] # default to all
, colorVariants ? [] # default to all
, opacityVariants ? [] # default to all
, themeVariants ? [] # default to MacOS blue
, wallpapers ? false
}:
stdenv.mkDerivation rec {
let
pname = "mojave-gtk-theme";
version = "2021-07-20";
in
lib.checkListOfEnum "${pname}: button size variants" [ "standard" "small" ] buttonSizeVariants
lib.checkListOfEnum "${pname}: button variants" [ "standard" "alt" ] buttonVariants
lib.checkListOfEnum "${pname}: color variants" [ "light" "dark" ] colorVariants
lib.checkListOfEnum "${pname}: opacity variants" [ "standard" "solid" ] opacityVariants
lib.checkListOfEnum "${pname}: theme variants" [ "default" "blue" "purple" "pink" "red" "orange" "yellow" "green" "grey" "all" ] themeVariants
stdenv.mkDerivation rec {
inherit pname;
version = "unstable-2021-12-20";
srcs = [
(fetchFromGitHub {
owner = "vinceliuice";
repo = pname;
rev = version;
sha256 = "08j70kmjhvh06c3ahcracarrfq4vpy0zsp6zkcivbw4nf3bzp2zc";
rev = "c148646ccab382f7a2d5fdc421fc32d843cb4172";
sha256 = "sha256-h4MSSh8cu9M81bM+WJSyl1SQ7CVth1DvjIVOUJXqpxs";
})
]
++
lib.optional wallpapers
(fetchurl {
url = "https://github.com/vinceliuice/Mojave-gtk-theme/raw/11741a99d96953daf9c27e44c94ae50a7247c0ed/macOS_Mojave_Wallpapers.tar.xz";
sha256 = "18zzkwm1kqzsdaj8swf0xby1n65gxnyslpw4lnxcx1rphip0rwf7";
})
];
;
sourceRoot = "source";
@ -76,9 +94,23 @@ stdenv.mkDerivation rec {
installPhase = ''
runHook preInstall
name= ./install.sh --theme all --dest $out/share/themes
install -D -t $out/share/wallpapers ../"macOS Mojave Wallpapers"/*
jdupes -l -r $out/share
name= ./install.sh \
${lib.optionalString (buttonSizeVariants != []) "--small " + builtins.toString buttonSizeVariants} \
${lib.optionalString (buttonVariants != []) "--alt " + builtins.toString buttonVariants} \
${lib.optionalString (colorVariants != []) "--color " + builtins.toString colorVariants} \
${lib.optionalString (opacityVariants != []) "--opacity " + builtins.toString opacityVariants} \
${lib.optionalString (themeVariants != []) "--theme " + builtins.toString themeVariants} \
--dest $out/share/themes
${lib.optionalString wallpapers ''
install -D -t $out/share/wallpapers ../"macOS Mojave Wallpapers"/*
''}
# Replace duplicate files with hardlinks to the first file in each
# set of duplicates, reducing the installed size in about 53%
jdupes -L -r $out/share
runHook postInstall
'';

View file

@ -1,77 +1,84 @@
{ lib, stdenv, fetchFromGitHub, gtk-engine-murrine }:
{ lib
, stdenv
, fetchFromGitHub
, gtk-engine-murrine
, jdupes
}:
stdenv.mkDerivation rec {
pname = "nordic";
version = "2.1.0";
version = "unstable-2022-01-08";
srcs = [
(fetchFromGitHub {
owner = "EliverLara";
repo = pname;
rev = "0112af91943b8819f7a1af9a508cda7fe3d74051";
sha256 = "sha256-ccOA5/jXTx20495NpTgVu7DvsjfTEULqL3IyJ+Pd/ug";
rev = "85086324c2a8fa7ca538b85ad0681e03733b2c86";
sha256 = "sha256-p1nr71iJZm+2123WF67NkunBX2dR4ruK2Afqd7XdeGc=";
name = "Nordic";
})
(fetchFromGitHub {
owner = "EliverLara";
repo = pname;
rev = "b30d2c844cc6ef5d020308f1c02791de45b607a7";
sha256 = "sha256-g5yCCFXzipZLmUat+1r6QWHB7DWQvMKhMexHPV/DJHM";
rev = "46c9e6665963ccb54938d7730e520bd8c52f4307";
sha256 = "sha256-uFnNLshyKOvzaij7tEKb0fw0j3/GGfzznAf/aaKx7XI=";
name = "Nordic-standard-buttons";
})
(fetchFromGitHub {
owner = "EliverLara";
repo = pname;
rev = "6d38d6af363528f42619f663e3ecd4c08dfd2411";
sha256 = "sha256-jaRiSE6yfTltzZ2vr8w4d+YtSz7REOcL7vOOhQvIMlQ";
rev = "da5c930386427fce65ea185f164709c8a20e362f";
sha256 = "sha256-Ee9ymuMWs2ZgU+8FVLaviGtHMT4Sz5NWLaEGln2Z4V0=";
name = "Nordic-darker";
})
(fetchFromGitHub {
owner = "EliverLara";
repo = pname;
rev = "4142817c14c27b371d42796445bedc84dc94672c";
sha256 = "sha256-FAb1+EREcwYrfSxAl6LrPaJtkHMt67NV3bG87g1cFT4";
rev = "fd85fb2712ac1192e35c92149b75bfc3c440b1c7";
sha256 = "sha256-6WUQBeNq7EKNkYcCt/fUYloue90gxfp8bDYawkQQ6ss=";
name = "Nordic-darker-standard-buttons";
})
(fetchFromGitHub {
owner = "EliverLara";
repo = pname;
rev = "2a91d6f3db70412b0a80ed33546fbe93075627d8";
sha256 = "sha256-Su+amS7moc2IDONNvqw3bjL6Q0WLJWzHu6WvfcVDcDY";
rev = "259e30ce13566214c7594b038dd2c240648a07a0";
sha256 = "sha256-F6hC6XbT9yJl6SW9qJNlwmmBcvOrOS5yPCQALZFhgbM=";
name = "Nordic-bluish-accent";
})
(fetchFromGitHub {
owner = "EliverLara";
repo = pname;
rev = "3ebd334f97d638fdc888b16d69851e3ee31131f2";
sha256 = "sha256-h0IXtWcdDvAEVi/1cLZF4Vacdl6VAY+5uo0LGPNe0bg";
rev = "2a27051d87558dfa595fb94eff34241d3a1b8c30";
sha256 = "sha256-JIld6GVtr1tz02Do2Ft92qtza6iGrPapasd6jmMFG6k=";
name = "Nordic-bluish-accent-standard-buttons";
})
(fetchFromGitHub {
owner = "EliverLara";
repo = "${pname}-polar";
rev = "803926882f8178c72b433466a377aaa33c5b372a";
sha256 = "sha256-G7Vu03PoFOEU9uxb5JiHR4Tr8qk47fPo7Gg7Vt9Zzns";
rev = "0bea76aed39bb2a2669278b8403c4129aa47be0f";
sha256 = "sha256-OXmz6uHXh1zl93sgv5WEwARkEUCr4PRh0/mJyMLXpnk=";
name = "Nordic-Polar";
})
(fetchFromGitHub {
owner = "EliverLara";
repo = "${pname}-polar";
rev = "988cb8a16ece3901b8b0e7a5b86503400491cb1e";
sha256 = "sha256-Zx1mrzJm5o4wQwOR8ZU2OEcjD3/6UXwLrBYpMtCkQbg";
rev = "8fe52b6c276a7e548e87a558db6734cf9f003b06";
sha256 = "sha256-/IxlBvMLAK+mGRyaa7bTv/oZS24nSNeE5GsyJIeN6UU=";
name = "Nordic-Polar-standard-buttons";
})
];
sourceRoot = ".";
nativeBuildInputs = [ jdupes ];
propagatedUserEnvPkgs = [ gtk-engine-murrine ];
installPhase = ''
@ -101,6 +108,10 @@ stdenv.mkDerivation rec {
mv -v $out/share/themes/Nordic/kde/sddm/* $out/share/sddm/themes/Nordic/
rm -rf $out/share/themes/Nordic/kde
# Replace duplicate files with hardlinks to the first file in each
# set of duplicates, reducing the installed size in about 65%
jdupes -L -r $out/share
runHook postInstall
'';

View file

@ -22,11 +22,11 @@
}:
let
version = "11.50.19";
openjdk = "11.0.12";
version = "11.52.13";
openjdk = "11.0.13";
sha256_linux = "b8e8a63b79bc312aa90f3558edbea59e71495ef1a9c340e38900dd28a1c579f3";
sha256_darwin = "9bc6874932f7f88d0a48220d3200449ddf7dc5c0e82af2df2738bc13d21b0e4e";
sha256_linux = "77a126669b26b3a89e0117b0f28cddfcd24fcd7699b2c1d35f921487148b9a9f";
sha256_darwin = "a96f9f859350f977319ebb5c2a999c182ab6b99b24c60e19d97c54367868a63e";
platform = if stdenv.isDarwin then "macosx" else "linux";
hash = if stdenv.isDarwin then sha256_darwin else sha256_linux;

View file

@ -1,46 +0,0 @@
{ lib, fetchurl, python2Packages, picocom
, avrdude, arduino-core }:
python2Packages.buildPythonApplication rec {
pname = "ino";
version = "0.3.6";
src = fetchurl {
url = "mirror://pypi/i/ino/ino-${version}.tar.gz";
sha256 = "0k6lzfcn55favbj0w4afrvnmwyskf7bgzg9javv2ycvskp35srwv";
};
# TODO: add avrgcclibc, it must be rebuild with C++ support
propagatedBuildInputs = with python2Packages; [
arduino-core
avrdude
picocom
configobj
jinja2
pyserial
six
];
patchPhase = ''
echo "Patching Arduino distribution path"
sed -i 's@/usr/local/share/arduino@${arduino-core}/share/arduino@g' \
ino/environment.py
sed -i -e 's@argparse@@' -e 's@ordereddict@@' \
requirements.txt
sed -i -e 's@from ordereddict@from collections@' \
ino/environment.py ino/utils.py
# Patch the upload command so it uses the correct avrdude
substituteInPlace ino/commands/upload.py \
--replace "self.e['avrdude']" "'${avrdude}/bin/avrdude'" \
--replace "'-C', self.e['avrdude.conf']," ""
'';
meta = with lib; {
description = "Command line toolkit for working with Arduino hardware";
homepage = "http://inotool.org/";
license = licenses.mit;
maintainers = with maintainers; [ antono ];
platforms = platforms.linux;
};
}

View file

@ -52,6 +52,7 @@ mkDerivation {
pname = "gr-grnet";
version = version.name;
inherit src;
disabledForGRafter = "3.10";
buildInputs = [
boost

View file

@ -20,7 +20,6 @@ let
version = {
"3.7" = "2.0.0";
"3.8" = "3.0.1";
"3.9" = null;
}.${gnuradio.versionAttr.major};
src = fetchFromGitHub {
owner = "myriadrf";
@ -29,7 +28,6 @@ let
sha256 = {
"3.7" = "0ldqvfwl0gil89l9s31fjf9d7ki0dk572i8vna336igfaz348ypq";
"3.8" = "ffs+8TU0yr6IW1xZJ/abQ1CQWGZM+zYqPRJxy3ZvM9U=";
"3.9" = null;
}.${gnuradio.versionAttr.major};
};
in mkDerivation {

View file

@ -24,16 +24,14 @@
let
version = {
"3.7" = "0.1.5";
"3.8" = "0.2.2";
"3.9" = null;
"3.8" = "0.2.3";
}.${gnuradio.versionAttr.major};
src = fetchgit {
url = "git://git.osmocom.org/gr-osmosdr";
rev = "v${version}";
sha256 = {
"3.7" = "0bf9bnc1c3c4yqqqgmg3nhygj6rcfmyk6pybi27f7461d2cw1drv";
"3.8" = "HT6xlN6cJAnvF+s1g2I1uENhBJJizdADlLXeSD0rEqs=";
"3.9" = null;
"3.8" = "sha256-ZfI8MshhZOdJ1U5FlnZKXsg2Rsvb6oKg943ZVYd/IWo=";
}.${gnuradio.versionAttr.major};
};
in mkDerivation {

View file

@ -2,16 +2,16 @@
rustPlatform.buildRustPackage rec {
pname = "lunatic";
version = "0.7.0";
version = "0.7.4";
src = fetchFromGitHub {
owner = "lunatic-solutions";
repo = pname;
rev = "v${version}";
sha256 = "sha256-+4014p+4QJ7nytFHHszAOYQHXLYXqR+Cip+vHxsH9l8=";
sha256 = "sha256-RX8JarGpY6dhPGpvOX1FuUjirEPff0wGqLkGFxOa+bc=";
};
cargoSha256 = "sha256-RnaAiumTP4cW2eHUbnwyPdgJQLK65gqDI/NP2SOrO4E=";
cargoSha256 = "sha256-UvrDqxaZSgUJ/a6abigTuiUOfw+C7UolBApt5kVR+yo=";
nativeBuildInputs = [ cmake ];

View file

@ -1,19 +0,0 @@
{ lib, fetchurl, python2Packages }:
python2Packages.buildPythonPackage rec {
pname = "pyrex";
version = "0.9.5.1.1";
src = fetchurl {
url = "https://www.cosc.canterbury.ac.nz/greg.ewing/python/Pyrex/oldtar/Pyrex-${version}.tar.gz";
sha256 = "0lxxvn4mjfb83swcbqb5908q4iy53w4ip5i0f9angm2va1jyhd3z";
};
doCheck = false;
meta = {
homepage = "http://www.cosc.canterbury.ac.nz/greg.ewing/python/Pyrex/";
description = "A language for writing Python extension modules";
license = lib.licenses.asl20;
};
}

View file

@ -1,19 +0,0 @@
{ lib, fetchurl, python2Packages }:
python2Packages.buildPythonPackage rec {
pname = "pyrex";
version = "0.9.6.4";
src = fetchurl {
url = "https://www.cosc.canterbury.ac.nz/greg.ewing/python/Pyrex/oldtar/Pyrex-${version}.tar.gz";
sha256 = "18pd9f8al3l6i27cc0ddhgg7hxf28lnfs75x4a8jzscydxgiq5a8";
};
doCheck = false;
meta = {
homepage = "http://www.cosc.canterbury.ac.nz/greg.ewing/python/Pyrex/";
description = "A language for writing Python extension modules";
license = lib.licenses.asl20;
};
}

View file

@ -1,62 +0,0 @@
{ lib, stdenv, fetchurl, python2Packages, pkg-config, SDL2
, libpng, ffmpeg, freetype, glew, libGL, libGLU, fribidi, zlib
, glib
}:
with python2Packages;
stdenv.mkDerivation rec {
pname = "renpy";
version = "7.3.5";
meta = with lib; {
description = "Ren'Py Visual Novel Engine";
homepage = "https://renpy.org/";
license = licenses.mit;
platforms = platforms.linux;
};
src = fetchurl {
url = "https://www.renpy.org/dl/${version}/renpy-${version}-source.tar.bz2";
sha256 = "1anr5cfbvbsbik4v4rvrkdkciwhg700k4lydfbs4n85raimz9mw4";
};
patches = [
./launcherenv.patch
];
postPatch = ''
substituteInPlace launcher/game/choose_directory.rpy --replace /usr/bin/python ${python.interpreter}
'';
nativeBuildInputs = [ pkg-config ];
buildInputs = [
python cython wrapPython tkinter
SDL2 libpng ffmpeg freetype glew libGLU libGL fribidi zlib pygame_sdl2 glib
];
pythonPath = [ pygame_sdl2 tkinter ];
RENPY_DEPS_INSTALL = lib.concatStringsSep "::" (map (path: path) [
SDL2 SDL2.dev libpng ffmpeg ffmpeg.out freetype glew.dev glew.out libGLU libGL fribidi zlib
]);
buildPhase = ''
python module/setup.py build
'';
installPhase = ''
mkdir -p $out/share/renpy
cp -vr * $out/share/renpy
rm -rf $out/share/renpy/module
python module/setup.py install --prefix=$out --install-lib=$out/share/renpy/module
makeWrapper ${python}/bin/python $out/bin/renpy \
--set PYTHONPATH $PYTHONPATH \
--set RENPY_BASE $out/share/renpy \
--add-flags "-O $out/share/renpy/renpy.py"
'';
NIX_CFLAGS_COMPILE = "-I${pygame_sdl2}/include/${python.libPrefix}";
}

View file

@ -1,14 +0,0 @@
# The launcher game starts projects in a separate python process
# with the -E flag, which prevents the nix set PYTHONPATH envvar
# from taking effect, preventing the loading of pygame_sdl2
--- a/launcher/game/project.rpy
+++ b/launcher/game/project.rpy
@@ -239,7 +239,7 @@
raise Exception("Python interpreter not found: %r", executables)
# Put together the basic command line.
- cmd = [ executable, "-EO", sys.argv[0] ]
+ cmd = [ executable, "-O", sys.argv[0] ]
cmd.append(self.path)
cmd.extend(args)

View file

@ -0,0 +1,24 @@
{ lib, stdenv, rustPlatform, fetchFromGitHub }:
rustPlatform.buildRustPackage rec {
pname = "yex-lang";
version = "unstable-2021-12-25";
src = fetchFromGitHub {
owner = "nonamescm";
repo = "yex-lang";
rev = "a97def1431b73b8693700f530ec023f1776eaf83";
hash = "sha256-CEzJtlEVMvMnRyUKdko1UDTluv8Fc88tfOpKGIFMnRw=";
};
cargoSha256 = "sha256-mHMenqcdt9Yjm/6H1Ywf637Sv8ddq6a4Eu2/A/jX9gQ=";
meta = with lib; {
homepage = "https://github.com/nonamesc/yex-lang";
description = "A cool functional scripting language written in rust";
license = licenses.mit;
maintainers = with maintainers; [ AndersonTorres ];
platforms = platforms.unix;
broken = stdenv.isAarch64 && stdenv.isLinux;
};
}

View file

@ -2,10 +2,10 @@
stdenv.mkDerivation rec {
pname = "zita-alsa-pcmi";
version = "0.3.2";
version = "0.4.0";
src = fetchurl {
url = "http://kokkinizita.linuxaudio.org/linuxaudio/downloads/${pname}-${version}.tar.bz2";
sha256 = "12d7vdg74yh21w69qi0wg57iz4876j94qbiq09bvscih6xz9y78s";
sha256 = "sha256-vYyfNg37VB+2DkinE7rx4i1BssdMGaD+ny005y9Q8cU=";
};
buildInputs = [ alsa-lib ];

View file

@ -1,5 +1,5 @@
{ lib, stdenv, fetchurl, libjpeg, libtiff, zlib
, postgresql, libmysqlclient, libgeotiff, python2Packages, proj, geos, openssl
, postgresql, libmysqlclient, libgeotiff, python3Packages, proj, geos, openssl
, libpng, sqlite, libspatialite, poppler, hdf4, qhull, giflib, expat
, libiconv, libxml2
, netcdfSupport ? true, netcdf, hdf5, curl
@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
buildInputs = [ libjpeg libtiff libgeotiff libpng proj openssl sqlite
libspatialite poppler hdf4 qhull giflib expat libxml2 proj ]
++ (with python2Packages; [ python numpy wrapPython ])
++ (with python3Packages; [ python numpy wrapPython ])
++ lib.optional stdenv.isDarwin libiconv
++ lib.optionals netcdfSupport [ netcdf hdf5 curl ];

View file

@ -0,0 +1,29 @@
{ stdenv
, lib
, fetchFromGitHub
, cmake
}:
stdenv.mkDerivation rec {
pname = "nsync";
version = "1.24.0";
src = fetchFromGitHub {
owner = "google";
repo = pname;
rev = version;
sha256 = "sha256-jQJtlBDR6efBe1tFOUOZ6awaMTT33qM/GbvbwiWTZxw=";
};
nativeBuildInputs = [ cmake ];
meta = {
homepage = "https://github.com/google/nsync";
description = "C library that exports various synchronization primitives";
license = lib.licenses.asl20;
maintainers = with lib.maintainers; [ puffnfresh ];
# On macOS we get an error for some reason:
# > mkdir: cannot create directory 'build': File exists
platforms = lib.platforms.linux;
};
}

View file

@ -1,6 +1,6 @@
{ lib, stdenv, fetchFromGitHub, cmake
, libuuid, json_c
, doxygen, perl, python2, python2Packages
, doxygen, perl, python3
}:
stdenv.mkDerivation rec {
@ -23,10 +23,11 @@ stdenv.mkDerivation rec {
NIX_CFLAGS_COMPILE = [
"-Wno-error=format-truncation"
"-Wno-error=address-of-packed-member"
"-Wno-array-bounds"
];
nativeBuildInputs = [ cmake doxygen perl python2Packages.sphinx ];
buildInputs = [ libuuid json_c python2 ];
nativeBuildInputs = [ cmake doxygen perl python3.pkgs.sphinx ];
buildInputs = [ libuuid json_c python3 ];
# Set the Epoch to 1980; otherwise the Python wheel/zip code
# gets very angry

View file

@ -25,6 +25,8 @@
, elogind
# needed until gobject-introspection does cross-compile (https://github.com/NixOS/nixpkgs/pull/88222)
, withIntrospection ? (stdenv.buildPlatform == stdenv.hostPlatform)
# cross build fails on polkit-1-scan (https://github.com/NixOS/nixpkgs/pull/152704)
, withGtkDoc ? (stdenv.buildPlatform == stdenv.hostPlatform)
# A few tests currently fail on musl (polkitunixusertest, polkitunixgrouptest, polkitidentitytest segfault).
# Not yet investigated; it may be due to the "Make netgroup support optional"
# patch not updating the tests correctly yet, or doing something wrong,
@ -119,7 +121,7 @@ stdenv.mkDerivation rec {
"-Dos_type=redhat" # only affects PAM includes
"-Dintrospection=${lib.boolToString withIntrospection}"
"-Dtests=${lib.boolToString doCheck}"
"-Dgtk_doc=${lib.boolToString true}"
"-Dgtk_doc=${lib.boolToString withGtkDoc}"
"-Dman=true"
] ++ lib.optionals stdenv.isLinux [
"-Dsession_tracking=${if useSystemd then "libsystemd-login" else "libelogind"}"

View file

@ -1,4 +1,4 @@
{ lib, stdenv, fetchFromGitHub, python2Packages, hexio
{ lib, stdenv, fetchFromGitHub, python3Packages, hexio
, cmake, bash, arpa2cm, git, asn2quickder }:
stdenv.mkDerivation rec {
@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
nativeBuildInputs = [ cmake ];
buildInputs = with python2Packages; [
buildInputs = with python3Packages; [
arpa2cm
asn1ate
hexio

View file

@ -30,6 +30,15 @@
let
version = "2019.1.0";
# TODO: test with newer pytest
pytest = pythonPackages.callPackage
../../../../python2-modules/pytest {
# hypothesis tests require pytest that causes dependency cycle
hypothesis = pythonPackages.hypothesis.override {
doCheck = false;
};
};
dijitso = pythonPackages.buildPythonPackage {
pname = "dijitso";
inherit version;

View file

@ -1,199 +0,0 @@
{ stdenv, lib, fetchgit, fetchFromGitHub, gyp, readline, python, which, icu
, patchelf, coreutils, xcbuild
, doCheck ? false
, static ? false
}:
assert readline != null;
let
arch = if stdenv.isx86_64 then "x64"
else if stdenv.isi686 then "ia32"
else if stdenv.isAarch64 then "arm64"
else if stdenv.isAarch32 then "arm"
else throw "Unknown architecture for v8";
git_url = "https://chromium.googlesource.com";
clangFlag = if stdenv.isDarwin then "1" else "0";
sharedFlag = if static then "static_library" else "shared_library";
deps = {
build = fetchgit {
url = "${git_url}/chromium/src/build.git";
rev = "2c67d4d74b6b3673228fab191918500a582ef3b0";
sha256 = "0jc7hci5yh792pw0ahjfxrk5xzllnlrv9llmwlgcgn2x8x6bn34q";
};
"tools/gyp" = fetchgit {
url = "${git_url}/external/gyp.git";
rev = "e7079f0e0e14108ab0dba58728ff219637458563";
sha256 = "0yd1ds13z0r9d2sb67f9i1gjn1zgzwyfv96qqqp6pn5pcfbialg6";
};
"third_party/icu" = fetchgit {
url = "${git_url}/chromium/deps/icu.git";
rev = "b5ecbb29a26532f72ef482569b223d5a51fd50bf";
sha256 = "0ld47wdnk8grcba221z67l3pnphv9zwifk4y44f5b946w3iwmpns";
};
buildtools = fetchgit {
url = "${git_url}/chromium/buildtools.git";
rev = "60f7f9a8b421ebf9a46041dfa2ff11c0fe59c582";
sha256 = "0i10bw7yhslklqwcx5krs3k05sicb73cpwd0mkaz96yxsvmkvjq0";
};
"base/trace_event/common" = fetchgit {
url = "${git_url}/chromium/src/base/trace_event/common.git";
rev = "315bf1e2d45be7d53346c31cfcc37424a32c30c8";
sha256 = "1pp2ygvp20j6g4868hrmiw0j704kdvsi9d9wx2gbk7w79rc36695";
};
"platform/inspector_protocol" = fetchgit {
url = "${git_url}/chromium/src/third_party/WebKit/Source/platform/inspector_protocol.git";
rev = "f49542089820a34a9a6e33264e09b73779407512";
sha256 = "1lwpass3p4rpp2kjmxxxpkqyv4lznxhf4i0yy7mmrd7jkpc7kn8k";
};
"tools/mb" = fetchgit {
url = "${git_url}/chromium/src/tools/mb.git";
rev = "0c4dc43c454f26936ddf3074ab8e9a41e3dc03a3";
sha256 = "0f96qphbmwn1pprv0a6xf68p01s1jzx2sz6pmadqbrs1dgh1xwnk";
};
"tools/swarming_client" = fetchgit {
url = "${git_url}/external/swarming.client.git";
rev = "7f63a272f7d9785ce41b6d10bb3106c49a968e57";
sha256 = "1pmb8bq4qifjf2dzz8c4jdwhlvwgrl9ycjaalcyh1sbh4lx3yvv2";
};
"testing/gtest" = fetchgit {
url = "${git_url}/external/github.com/google/googletest.git";
rev = "6f8a66431cb592dad629028a50b3dd418a408c87";
sha256 = "0bdba2lr6pg15bla9600zg0r0vm4lnrx0wqz84p376wfdxra24vw";
};
"testing/gmock" = fetchgit {
url = "${git_url}/external/googlemock.git";
rev = "0421b6f358139f02e102c9c332ce19a33faf75be";
sha256 = "1xiky4v98maxs8fg1avcd56y0alv3hw8qyrlpd899zgzbq2k10pp";
};
"test/benchmarks/data" = fetchgit {
url = "${git_url}/v8/deps/third_party/benchmarks.git";
rev = "05d7188267b4560491ff9155c5ee13e207ecd65f";
sha256 = "0ad2ay14bn67d61ks4dmzadfnhkj9bw28r4yjdjjyzck7qbnzchl";
};
"test/mozilla/data" = fetchgit {
url = "${git_url}/v8/deps/third_party/mozilla-tests.git";
rev = "f6c578a10ea707b1a8ab0b88943fe5115ce2b9be";
sha256 = "0rfdan76yfawqxbwwb35aa57b723j3z9fx5a2w16nls02yk2kqyn";
};
"test/simdjs/data" = fetchgit {
url = "${git_url}/external/github.com/tc39/ecmascript_simd.git";
rev = "baf493985cb9ea7cdbd0d68704860a8156de9556";
sha256 = "178r0k40a58c1187gfzqz2i6as34l8cliy1g1x870wyy0qcvlq2q";
};
"test/test262/data" = fetchgit {
url = "${git_url}/external/github.com/tc39/test262.git";
rev = "88bc7fe7586f161201c5f14f55c9c489f82b1b67";
sha256 = "0gc7fmaqrgwb6rl02jnrm3synpwzzg0dfqy3zm386r1qcisl93xs";
};
"test/test262/harness" = fetchgit {
url = "${git_url}/external/github.com/test262-utils/test262-harness-py.git";
rev = "cbd968f54f7a95c6556d53ba852292a4c49d11d8";
sha256 = "094c3600a4wh1m3fvvlivn290kik1pzzvwabq77lk8bh4jkkv7ki";
};
"tools/clang" = fetchgit {
url = "${git_url}/chromium/src/tools/clang.git";
rev = "496622ab4aaa5be7e5a9b80617013cb02f45dc87";
sha256 = "1gkhk2bzpxwzkirzcqfixxpprbr8mn6rk00krm25daarm3smydmf";
};
};
in
stdenv.mkDerivation rec {
pname = "v8";
version = "5.4.232";
inherit doCheck;
src = fetchFromGitHub {
owner = "v8";
repo = "v8";
rev = version;
sha256 = "1nqxbkz75m8xrjih0sj3f3iqvif4192vxdaxzy8r787rihjwg9nx";
};
postUnpack = ''
${lib.concatStringsSep "\n" (
lib.mapAttrsToList (n: v: ''
mkdir -p $sourceRoot/${n}
cp -r ${v}/* $sourceRoot/${n}
'') deps)}
'';
# Patch based off of:
# https://github.com/cowboyd/libv8/tree/v5.1.281.67.0/patches
patches = lib.optional (!doCheck) ./libv8-5.4.232.patch;
postPatch = ''
sed -i 's,#!/usr/bin/env python,#!${python}/bin/python,' gypfiles/gyp_v8
sed -i 's,/bin/echo,${coreutils}/bin/echo,' gypfiles/standalone.gypi
sed -i '/CR_CLANG_REVISION/ d' gypfiles/standalone.gypi
sed -i 's/-Wno-format-pedantic//g' gypfiles/standalone.gypi
'';
configurePhase = ''
PYTHONPATH="tools/generate_shim_headers:$PYTHONPATH" \
PYTHONPATH="$(toPythonPath ${gyp}):$PYTHONPATH" \
gypfiles/gyp_v8 \
-f make \
--generator-output="out" \
-Dflock_index=0 \
-Dclang=${clangFlag} \
-Dv8_enable_i18n_support=1 \
-Duse_system_icu=1 \
-Dcomponent=${sharedFlag} \
-Dconsole=readline \
-Dv8_target_arch=${arch} \
-Dv8_use_external_startup_data=0
'';
nativeBuildInputs = [ which ];
buildInputs = [ readline python icu ]
++ lib.optional stdenv.isDarwin xcbuild
++ lib.optional stdenv.isLinux patchelf;
NIX_CFLAGS_COMPILE = "-Wno-error=strict-overflow -Wno-error=unused-function -Wno-error=attributes"
+ lib.optionalString stdenv.cc.isClang " -Wno-error=unused-lambda-capture";
buildFlags = [
"LINK=c++"
"-C out"
"builddir=$(CURDIR)/Release"
"BUILDTYPE=Release"
];
enableParallelBuilding = true;
dontUpdateAutotoolsGnuConfigScripts = if stdenv.isAarch64 then true else null;
# the `libv8_libplatform` target is _only_ built as a static library,
# and is expected to be statically linked in when needed.
# see the following link for further commentary:
# https://github.com/cowboyd/therubyracer/issues/391
installPhase = ''
install -vD out/Release/d8 "$out/bin/d8"
install -vD out/Release/mksnapshot "$out/bin/mksnapshot"
${if static then ""
else if stdenv.isDarwin then ''
install -vD out/Release/libv8.dylib "$out/lib/libv8.dylib"
install_name_tool -change /usr/local/lib/libv8.dylib $out/lib/libv8.dylib -change /usr/lib/libgcc_s.1.dylib ${stdenv.cc.cc.lib}/lib/libgcc_s.1.dylib $out/bin/d8
install_name_tool -id $out/lib/libv8.dylib -change /usr/lib/libgcc_s.1.dylib ${stdenv.cc.cc.lib}/lib/libgcc_s.1.dylib $out/lib/libv8.dylib
'' else ''
install -vD out/Release/lib.target/libv8.so "$out/lib/libv8.so"
''}
mkdir -p "$out/include"
cp -vr include/*.h "$out/include"
cp -vr include/libplatform "$out/include"
mkdir -p "$out/lib"
cp -v out/Release/*.a "$out/lib"
'';
meta = with lib; {
description = "Google's open source JavaScript engine";
maintainers = with maintainers; [ cstrahan proglodyte ];
platforms = platforms.linux ++ platforms.darwin;
license = licenses.bsd3;
};
}

View file

@ -0,0 +1,169 @@
{ stdenv, lib, fetchgit, fetchFromGitHub
, gn, ninja, python3, glib, pkg-config, icu
, xcbuild, darwin
, fetchpatch
}:
# Use update.sh to update all checksums.
let
version = "8.8.278.14";
v8Src = fetchgit {
url = "https://chromium.googlesource.com/v8/v8";
rev = version;
sha256 = "0w6zldyas9w6p394876ssn3pnr5rjzjy1a5dcsmdkfj51m4rlg8m";
};
git_url = "https://chromium.googlesource.com";
# This data is from the DEPS file in the root of a V8 checkout.
deps = {
"base/trace_event/common" = fetchgit {
url = "${git_url}/chromium/src/base/trace_event/common.git";
rev = "eb94f1c7aa96207f469008f29989a43feb2718f8";
sha256 = "14gym38ncc9cysknv3jrql7jvcpjxf2d1dh4m8jgqb967jyzy5cj";
};
"build" = fetchgit {
url = "${git_url}/chromium/src/build.git";
rev = "2101eff1ac4bfd25f2dfa71ad632a600a38c1ed9";
sha256 = "0i3xcwzi4pkv4xpgjkbmcpj5h6mji80zqskkx0jx3sx0ji63fylz";
};
"third_party/googletest/src" = fetchgit {
url = "${git_url}/external/github.com/google/googletest.git";
rev = "4fe018038f87675c083d0cfb6a6b57c274fb1753";
sha256 = "1ilm9dmnm2v4y6l1wyfsajsbqv56j29ldfbpd0ykg4q90gpxz201";
};
"third_party/icu" = fetchgit {
url = "${git_url}/chromium/deps/icu.git";
rev = "c2a4cae149aae7fd30c4cbe3cf1b30df03b386f1";
sha256 = "0lgzxf7hmfsgqazs74v5li9ifg8r0jx5m3gxh1mnw33vpwp7qqf4";
};
"third_party/zlib" = fetchgit {
url = "${git_url}/chromium/src/third_party/zlib.git";
rev = "e84c9a3fd75fdc39055b7ae27d6ec508e50bd39e";
sha256 = "03z30djnb3srhd0nvlxvx58sjqm2bvxk7j3vp4fk6h7a0sa2bdpi";
};
"third_party/jinja2" = fetchgit {
url = "${git_url}/chromium/src/third_party/jinja2.git";
rev = "a82a4944a7f2496639f34a89c9923be5908b80aa";
sha256 = "02mkjwkrzhrg16zx97z792l0faz7gc8vga8w10r5y94p98jymnyz";
};
"third_party/markupsafe" = fetchgit {
url = "${git_url}/chromium/src/third_party/markupsafe.git";
rev = "0944e71f4b2cb9a871bcbe353f95e889b64a611a";
sha256 = "052ij8i7nkqchbvzv6ykj929hvfxjbzq7az2l01r0l2gfazhvdb9";
};
};
# See `gn_version` in DEPS.
gnSrc = fetchgit {
url = "https://gn.googlesource.com/gn";
rev = "53d92014bf94c3893886470a1c7c1289f8818db0";
sha256 = "1xcm07qjk6m2czi150fiqqxql067i832adck6zxrishm70c9jbr9";
};
myGn = gn.overrideAttrs (oldAttrs: {
version = "for-v8";
src = gnSrc;
});
in
stdenv.mkDerivation rec {
pname = "v8";
inherit version;
doCheck = true;
patches = [
./darwin.patch
];
src = v8Src;
postUnpack = ''
${lib.concatStringsSep "\n" (
lib.mapAttrsToList (n: v: ''
mkdir -p $sourceRoot/${n}
cp -r ${v}/* $sourceRoot/${n}
'') deps)}
chmod u+w -R .
'';
postPatch = ''
${lib.optionalString stdenv.isAarch64 ''
substituteInPlace build/toolchain/linux/BUILD.gn \
--replace 'toolprefix = "aarch64-linux-gnu-"' 'toolprefix = ""'
''}
${lib.optionalString stdenv.isDarwin ''
substituteInPlace build/config/compiler/compiler.gni \
--replace 'strip_absolute_paths_from_debug_symbols = true' \
'strip_absolute_paths_from_debug_symbols = false'
substituteInPlace build/config/compiler/BUILD.gn \
--replace 'current_toolchain == host_toolchain || !use_xcode_clang' \
'false'
''}
echo 'checkout_google_benchmark = false' > build/config/gclient_args.gni
'';
gnFlags = [
"use_custom_libcxx=false"
"is_clang=${lib.boolToString stdenv.cc.isClang}"
"use_sysroot=false"
# "use_system_icu=true"
"clang_use_chrome_plugins=false"
"is_component_build=false"
"v8_use_external_startup_data=false"
"v8_monolithic=true"
"is_debug=true"
"is_official_build=false"
"treat_warnings_as_errors=false"
"v8_enable_i18n_support=true"
"use_gold=false"
# ''custom_toolchain="//build/toolchain/linux/unbundle:default"''
''host_toolchain="//build/toolchain/linux/unbundle:default"''
''v8_snapshot_toolchain="//build/toolchain/linux/unbundle:default"''
] ++ lib.optional stdenv.cc.isClang ''clang_base_path="${stdenv.cc}"'';
NIX_CFLAGS_COMPILE = "-O2";
FORCE_MAC_SDK_MIN = stdenv.targetPlatform.sdkVer or "10.12";
nativeBuildInputs = [
myGn
ninja
pkg-config
python3
] ++ lib.optionals stdenv.isDarwin [
xcbuild
darwin.DarwinTools
python3.pkgs.setuptools
];
buildInputs = [ glib icu ];
ninjaFlags = [ ":d8" "v8_monolith" ];
enableParallelBuilding = true;
installPhase = ''
install -D d8 $out/bin/d8
install -D -m644 obj/libv8_monolith.a $out/lib/libv8.a
install -D -m644 icudtl.dat $out/share/v8/icudtl.dat
cp -r ../../include $out
mkdir -p $out/lib/pkgconfig
cat > $out/lib/pkgconfig/v8.pc << EOF
Name: v8
Description: V8 JavaScript Engine
Version: ${version}
Libs: -L$out/lib -lv8 -pthread
Cflags: -I$out/include
EOF
'';
meta = with lib; {
description = "Google's open source JavaScript engine";
maintainers = with maintainers; [ cstrahan proglodyte matthewbauer ];
platforms = platforms.unix;
license = licenses.bsd3;
};
}

View file

@ -1,75 +1,85 @@
{ stdenv, lib, fetchgit, fetchFromGitHub
, gn, ninja, python, pythonPackages, glib, pkg-config, icu
, gn, ninja, python3, glib, pkg-config, icu
, xcbuild, darwin
, fetchpatch
}:
# Use update.sh to update all checksums.
let
version = "9.7.106.18";
v8Src = fetchgit {
url = "https://chromium.googlesource.com/v8/v8";
rev = version;
sha256 = "0cb3w733w1xn6zq9dsr43nx6llcg9hrmb2dkxairarj9c0igpzyh";
};
git_url = "https://chromium.googlesource.com";
# This data is from the DEPS file in the root of a V8 checkout
# This data is from the DEPS file in the root of a V8 checkout.
deps = {
"base/trace_event/common" = fetchgit {
url = "${git_url}/chromium/src/base/trace_event/common.git";
rev = "dab187b372fc17e51f5b9fad8201813d0aed5129";
sha256 = "0dmpj9hj4xv3xb0fl1kb9hm4bhpbs2s5csx3z8cgjd5vwvhdzig4";
rev = "7f36dbc19d31e2aad895c60261ca8f726442bfbb";
sha256 = "01b2fhbxznqbakxv42ivrzg6w8l7i9yrd9nf72d6p5xx9dm993j4";
};
build = fetchgit {
"build" = fetchgit {
url = "${git_url}/chromium/src/build.git";
rev = "26e9d485d01d6e0eb9dadd21df767a63494c8fea";
sha256 = "1jjvsgj0cs97d26i3ba531ic1f9gqan8x7z4aya8yl8jx02l342q";
rev = "cf325916d58a194a935c26a56fcf6b525d1e2bf4";
sha256 = "1ix4h1cpx9bvgln8590xh7lllhsd9w1hd5k9l1gx5yxxrmywd3s4";
};
"third_party/googletest/src" = fetchgit {
url = "${git_url}/external/github.com/google/googletest.git";
rev = "e3f0319d89f4cbf32993de595d984183b1a9fc57";
sha256 = "18xz71l2xjrqsc0q317whgw4xi1i5db24zcj7v04f5g6r1hyf1a5";
rev = "16f637fbf4ffc3f7a01fa4eceb7906634565242f";
sha256 = "11012k3c3mxzdwcw2iparr9lrckafpyhqzclsj26hmfbgbdi0rrh";
};
"third_party/icu" = fetchgit {
url = "${git_url}/chromium/deps/icu.git";
rev = "f2223961702f00a8833874b0560d615a2cc42738";
sha256 = "0z5p53kbrjfkjn0i12dpk55cp8976j2zk7a4wk88423s2c5w87zl";
};
"third_party/jinja2" = fetchgit {
url = "${git_url}/chromium/src/third_party/jinja2.git";
rev = "b41863e42637544c2941b574c7877d3e1f663e25";
sha256 = "1qgilclkav67m6cl2xq2kmzkswrkrb2axc2z8mw58fnch4j1jf1r";
};
"third_party/markupsafe" = fetchgit {
url = "${git_url}/chromium/src/third_party/markupsafe.git";
rev = "8f45f5cfa0009d2a70589bcda0349b8cb2b72783";
sha256 = "168ppjmicfdh4i1l0l25s86mdbrz9fgxmiq1rx33x79mph41scfz";
rev = "eedbaf76e49d28465d9119b10c30b82906e606ff";
sha256 = "0mppvx7wf9zlqjsfaa1cf06brh1fjb6nmiib0lhbb9hd55mqjdjj";
};
"third_party/zlib" = fetchgit {
url = "${git_url}/chromium/src/third_party/zlib.git";
rev = "156be8c52f80cde343088b4a69a80579101b6e67";
sha256 = "0hxbkkzmlv714fjq2jlp5dd2jc339xyh6gkjx1sz3srwv33mlk92";
rev = "6da1d53b97c89b07e47714d88cab61f1ce003c68";
sha256 = "0v7ylmbwfwv6w6wp29qdf77kjjnfr2xzin08n0v1yvbhs01h5ppy";
};
"third_party/jinja2" = fetchgit {
url = "${git_url}/chromium/src/third_party/jinja2.git";
rev = "ee69aa00ee8536f61db6a451f3858745cf587de6";
sha256 = "1fsnd5h0gisfp8bdsfd81kk5v4mkqf8z368c7qlm1qcwc4ri4x7a";
};
"third_party/markupsafe" = fetchgit {
url = "${git_url}/chromium/src/third_party/markupsafe.git";
rev = "1b882ef6372b58bfd55a3285f37ed801be9137cd";
sha256 = "1jnjidbh03lhfaawimkjxbprmsgz4snr0jl06630dyd41zkdw5kr";
};
};
# See `gn_version` in DEPS.
gnSrc = fetchgit {
url = "https://gn.googlesource.com/gn";
rev = "8926696a4186279489cc2b8d768533e61bba73d7";
sha256 = "1084lnyb0a1khbgjvak05fcx6jy973wqvsf77n0alxjys18sg2yk";
};
myGn = gn.overrideAttrs (oldAttrs: {
version = "for-v8";
src = gnSrc;
});
in
stdenv.mkDerivation rec {
pname = "v8";
version = "8.4.255";
inherit version;
doCheck = true;
patches = [
# Remove unrecognized clang debug flags
(fetchpatch {
url = "https://raw.githubusercontent.com/saiarcot895/chromium-ubuntu-build/663dbfc492fd2f8ba28d9af40fb3b1327e6aa56e/debian/patches/revert-Xclang-instcombine-lower-dbg-declare.patch";
sha256 = "07qp4bjgbwbdrzqslvl2bgbzr3v97b9isbp0539x3lc8cy3h02g1";
})
./darwin.patch
./gcc_arm.patch # Fix building zlib with gcc on aarch64, from https://gist.github.com/Adenilson/d973b6fd96c7709d33ddf08cf1dcb149
];
src = fetchFromGitHub {
owner = "v8";
repo = "v8";
rev = version;
sha256 = "07ymw4kqbz7kv311gpk5bs5q90wj73n2q7jkyfhqk4hvhs1q5bw7";
};
src = v8Src;
postUnpack = ''
${lib.concatStringsSep "\n" (
@ -80,16 +90,20 @@ stdenv.mkDerivation rec {
chmod u+w -R .
'';
postPatch = lib.optionalString stdenv.isAarch64 ''
substituteInPlace build/toolchain/linux/BUILD.gn \
--replace 'toolprefix = "aarch64-linux-gnu-"' 'toolprefix = ""'
'' + lib.optionalString stdenv.isDarwin ''
substituteInPlace build/config/compiler/compiler.gni \
--replace 'strip_absolute_paths_from_debug_symbols = true' \
'strip_absolute_paths_from_debug_symbols = false'
substituteInPlace build/config/compiler/BUILD.gn \
--replace 'current_toolchain == host_toolchain || !use_xcode_clang' \
'false'
postPatch = ''
${lib.optionalString stdenv.isAarch64 ''
substituteInPlace build/toolchain/linux/BUILD.gn \
--replace 'toolprefix = "aarch64-linux-gnu-"' 'toolprefix = ""'
''}
${lib.optionalString stdenv.isDarwin ''
substituteInPlace build/config/compiler/compiler.gni \
--replace 'strip_absolute_paths_from_debug_symbols = true' \
'strip_absolute_paths_from_debug_symbols = false'
substituteInPlace build/config/compiler/BUILD.gn \
--replace 'current_toolchain == host_toolchain || !use_xcode_clang' \
'false'
''}
touch build/config/gclient_args.gni
'';
gnFlags = [
@ -106,7 +120,6 @@ stdenv.mkDerivation rec {
"treat_warnings_as_errors=false"
"v8_enable_i18n_support=true"
"use_gold=false"
"init_stack_vars=false"
# ''custom_toolchain="//build/toolchain/linux/unbundle:default"''
''host_toolchain="//build/toolchain/linux/unbundle:default"''
''v8_snapshot_toolchain="//build/toolchain/linux/unbundle:default"''
@ -116,14 +129,14 @@ stdenv.mkDerivation rec {
FORCE_MAC_SDK_MIN = stdenv.targetPlatform.sdkVer or "10.12";
nativeBuildInputs = [
gn
myGn
ninja
pkg-config
python
python3
] ++ lib.optionals stdenv.isDarwin [
xcbuild
darwin.DarwinTools
pythonPackages.setuptools
python3.pkgs.setuptools
];
buildInputs = [ glib icu ];
@ -133,7 +146,8 @@ stdenv.mkDerivation rec {
installPhase = ''
install -D d8 $out/bin/d8
install -D obj/libv8_monolith.a $out/lib/libv8.a
install -D -m644 obj/libv8_monolith.a $out/lib/libv8.a
install -D -m644 icudtl.dat $out/share/v8/icudtl.dat
cp -r ../../include $out
mkdir -p $out/lib/pkgconfig

View file

@ -1,31 +0,0 @@
diff --git a/third_party/zlib/contrib/optimizations/insert_string.h b/third_party/zlib/contrib/optimizations/insert_string.h
index 1826601..d123305 100644
--- a/third_party/zlib/contrib/optimizations/insert_string.h
+++ b/third_party/zlib/contrib/optimizations/insert_string.h
@@ -26,15 +26,23 @@
#define _cpu_crc32_u32 _mm_crc32_u32
#elif defined(CRC32_ARMV8_CRC32)
- #if defined(__clang__)
+ #if defined(__GNUC__) || defined(__clang__)
#undef TARGET_CPU_WITH_CRC
- #define __crc32cw __builtin_arm_crc32cw
+ #if defined(__clang__)
+ #define __crc32cw __builtin_arm_crc32cw
+ #elif defined(__GNUC__)
+ #define __crc32cw __builtin_aarch64_crc32cw
+ #endif
#endif
#define _cpu_crc32_u32 __crc32cw
#if defined(__aarch64__)
- #define TARGET_CPU_WITH_CRC __attribute__((target("crc")))
+ #if defined(__clang__)
+ #define TARGET_CPU_WITH_CRC __attribute__((target("crc")))
+ #elif defined(__GNUC__)
+ #define TARGET_CPU_WITH_CRC __attribute__((target("+crc")))
+ #endif
#else // !defined(__aarch64__)
#define TARGET_CPU_WITH_CRC __attribute__((target("armv8-a,crc")))
#endif // defined(__aarch64__)

View file

@ -1,97 +0,0 @@
From c9f42d1314c6026efcfcc01824f4e2fdfd05ebcf Mon Sep 17 00:00:00 2001
From: Ben Sklaroff <bsklaroff@gmail.com>
Date: Sat, 23 Jul 2016 18:16:55 -0400
Subject: [PATCH] libv8-5.4.232
---
Makefile | 5 +----
gypfiles/all.gyp | 32 --------------------------------
gypfiles/standalone.gypi | 5 ++++-
3 files changed, 5 insertions(+), 37 deletions(-)
diff --git a/Makefile b/Makefile
index 5ea5c58..d1b2d73 100644
--- a/Makefile
+++ b/Makefile
@@ -261,11 +261,8 @@ GYPFILES = third_party/icu/icu.gypi third_party/icu/icu.gyp \
gypfiles/shim_headers.gypi gypfiles/features.gypi \
gypfiles/standalone.gypi \
gypfiles/toolchain.gypi gypfiles/all.gyp gypfiles/mac/asan.gyp \
- test/cctest/cctest.gyp test/fuzzer/fuzzer.gyp \
- test/unittests/unittests.gyp src/v8.gyp \
- tools/parser-shell.gyp testing/gmock.gyp testing/gtest.gyp \
buildtools/third_party/libc++abi/libc++abi.gyp \
- buildtools/third_party/libc++/libc++.gyp samples/samples.gyp \
+ buildtools/third_party/libc++/libc++.gyp \
src/third_party/vtune/v8vtune.gyp src/d8.gyp
# If vtunejit=on, the v8vtune.gyp will be appended.
diff --git a/gypfiles/all.gyp b/gypfiles/all.gyp
index ff1bea4..96820a0 100644
--- a/gypfiles/all.gyp
+++ b/gypfiles/all.gyp
@@ -16,38 +16,6 @@
'../tools/parser-shell.gyp:parser-shell',
],
}],
- # These items don't compile for Android on Mac.
- ['host_os!="mac" or OS!="android"', {
- 'dependencies': [
- '../samples/samples.gyp:*',
- '../test/cctest/cctest.gyp:*',
- '../test/fuzzer/fuzzer.gyp:*',
- '../test/unittests/unittests.gyp:*',
- ],
- }],
- ['test_isolation_mode != "noop"', {
- 'dependencies': [
- '../test/bot_default.gyp:*',
- '../test/benchmarks/benchmarks.gyp:*',
- '../test/default.gyp:*',
- '../test/ignition.gyp:*',
- '../test/intl/intl.gyp:*',
- '../test/message/message.gyp:*',
- '../test/mjsunit/mjsunit.gyp:*',
- '../test/mozilla/mozilla.gyp:*',
- '../test/optimize_for_size.gyp:*',
- '../test/perf.gyp:*',
- '../test/preparser/preparser.gyp:*',
- '../test/simdjs/simdjs.gyp:*',
- '../test/test262/test262.gyp:*',
- '../test/webkit/webkit.gyp:*',
- '../tools/check-static-initializers.gyp:*',
- '../tools/gcmole/run_gcmole.gyp:*',
- '../tools/jsfunfuzz/jsfunfuzz.gyp:*',
- '../tools/run-deopt-fuzzer.gyp:*',
- '../tools/run-valgrind.gyp:*',
- ],
- }],
]
}
]
diff --git a/gypfiles/standalone.gypi b/gypfiles/standalone.gypi
index 89f06a0..a43976d 100644
--- a/gypfiles/standalone.gypi
+++ b/gypfiles/standalone.gypi
@@ -506,6 +506,9 @@
}], # fastbuild!=0
],
'target_conditions': [
+ ['_type=="static_library"', {
+ 'standalone_static_library': 1,
+ }],
['v8_code == 0', {
'defines!': [
'DEBUG',
@@ -770,7 +773,7 @@
[ 'visibility=="hidden" and v8_enable_backtrace==0', {
'cflags': [ '-fvisibility=hidden' ],
}],
- [ 'component=="shared_library"', {
+ [ 'component=="shared_library" or component=="static_library" and (v8_target_arch=="x64" or v8_target_arch=="arm64" or v8_target_arch=="arm")', {
'cflags': [ '-fPIC', ],
}],
[ 'clang==0 and coverage==1', {
--
2.9.0

View file

@ -1,29 +1,45 @@
#!/usr/bin/env nix-shell
#! nix-shell -i bash -p curl -p nix-prefetch-git
#! nix-shell -i bash -p curl -p nix-prefetch-git -p jq
VERSION_OVERVIEW=https://omahaproxy.appspot.com/all?os=linux
TARGET_CHANNEL=beta
FILE_PATH=6_x.nix
TARGET_CHANNEL=stable
set -eo pipefail
v8_version=$(curl -s "$VERSION_OVERVIEW" | awk -F "," "\$2 ~ /${TARGET_CHANNEL}/ { print \$11 }")
if [ -n "$1" ]; then
v8_version="$1"
shift
else
v8_version=$(curl -s "$VERSION_OVERVIEW" | awk -F "," "\$2 ~ /${TARGET_CHANNEL}/ { print \$11 }")
fi
if [ -n "$1" ]; then
file_path="$1"
else
file_path=default.nix
fi
echo "Using V8 version --> $v8_version"
sed -e "s#\\(version = \\)\"[0-9\.]*\"#\1\"$v8_version\"#" -i ${FILE_PATH}
sha256=$(nix-prefetch-git --no-deepClone https://github.com/v8/v8.git "refs/tags/${v8_version}" \
| sed -ne '/sha256/ { s#.*: "\(.*\)".*#\1#; p }')
sed -e "/repo = \"v8\"/ { n;n; s#\".*\"#\"${sha256}\"# }" -i ${FILE_PATH}
prefetched=$(nix-prefetch-git --no-deepClone https://chromium.googlesource.com/v8/v8 "refs/tags/${v8_version}")
deps="$(mktemp)"
path=$(echo "$prefetched" | jq -r .path)
sha256=$(echo "$prefetched" | jq -r .sha256)
sed -e "s#\\(version = \\)\"[0-9\.]*\"#\1\"$v8_version\"#" -i ${file_path}
sed -e "/v8Src = fetchgit/ { n; n; n; s/\".*\"/\"${sha256}\"/ }" -i ${file_path}
curl -s -o "$deps" "https://raw.githubusercontent.com/v8/v8/${v8_version}/DEPS"
echo $deps
deps="$path/DEPS"
sed -ne '/= fetchgit {/ { s/.*"\(.*\)".*/\1/; p }' < ${FILE_PATH} | while read dep; do
echo "$deps"
echo "Processing gn"
gn_rev=$(sed -ne "s/.*'gn_version': 'git_revision:\([^']*\).*/\1/p" < "$deps")
gn_sha256=$(nix-prefetch-git --no-deepClone https://gn.googlesource.com/gn "$gn_rev" 2>/dev/null | jq -r .sha256)
sed -e "/gnSrc = fetchgit/ { n; n; s/\".*\"/\"${gn_rev}\"/; n; s/\".*\"/\"${gn_sha256}\"/ }" -i ${file_path}
sed -ne '/" = fetchgit {/ { s/.*"\(.*\)".*/\1/; p }' < ${file_path} | while read dep; do
echo "Processing dependency --> $dep"
escaped_dep=$(echo "$dep" | sed -e 's#/#\\/#g')
dep_rev=$(sed -ne "/\"v8\/${escaped_dep}\":/ { n; s#.*+ \"##; s#\".*##; p }" "$deps")
dep_rev=$(sed -ne "/'${escaped_dep}':/ { n; s#.*+ '##; s#'.*##; p }" "$deps")
if [ "$dep_rev" = "" ]; then
echo "Failed to resolve dependency $dep, not listed in DEPS file"
@ -31,8 +47,8 @@ sed -ne '/= fetchgit {/ { s/.*"\(.*\)".*/\1/; p }' < ${FILE_PATH} | while read d
exit 2
fi
repo_url=$(sed -ne "/\"${escaped_dep}\" = fetchgit/ { n; s/.*\"\(.*\)\".*/\1/; s#\${git_url}#https://chromium.googlesource.com#; p }" ${FILE_PATH})
sha256=$(nix-prefetch-git --no-deepClone "$repo_url" "$dep_rev" 2>/dev/null | sed -ne '/sha256/ { s#.*: "\(.*\)".*#\1#; p }')
repo_url=$(sed -ne "/\"${escaped_dep}\" = fetchgit/ { n; s/.*\"\(.*\)\".*/\1/; s#\${git_url}#https://chromium.googlesource.com#; p }" ${file_path})
sha256=$(nix-prefetch-git --no-deepClone "$repo_url" "$dep_rev" 2>/dev/null | jq -r .sha256)
if [ "$sha256" = "" ]; then
echo "Failed to get sha256 via nix-prefetch-git $repo_url $dep_rev"
@ -40,8 +56,7 @@ sed -ne '/= fetchgit {/ { s/.*"\(.*\)".*/\1/; p }' < ${FILE_PATH} | while read d
exit 2
fi
sed -e "/\"${escaped_dep}\" = fetchgit/ { n; n; s/\".*\"/\"${dep_rev}\"/; n; s/\".*\"/\"${sha256}\"/ }" -i ${FILE_PATH}
sed -e "/\"${escaped_dep}\" = fetchgit/ { n; n; s/\".*\"/\"${dep_rev}\"/; n; s/\".*\"/\"${sha256}\"/ }" -i ${file_path}
done
rm -f "$deps"
echo done.

View file

@ -12,12 +12,11 @@
, libpng
, libtiff
, openexr
, python2Packages
, python3
}:
let
inherit (python2Packages) python numpy;
# Might want to use `python2.withPackages(ps: [ps.numpy]);` here...
python = python3.withPackages (py: with py; [ numpy ]);
in
stdenv.mkDerivation rec {
pname = "vigra";
@ -50,7 +49,6 @@ stdenv.mkDerivation rec {
libjpeg
libpng
libtiff
numpy
openexr
python
];

View file

@ -1,4 +1,4 @@
{ pkgs, nodejs, stdenv, applyPatches, fetchFromGitHub, fetchpatch, fetchurl }:
{ pkgs, nodejs, stdenv, applyPatches, fetchFromGitHub, fetchpatch, fetchurl, nixosTests }:
let
inherit (pkgs) lib;
@ -442,6 +442,8 @@ let
echo /var/lib/thelounge > $out/lib/node_modules/thelounge/.thelounge_home
patch -d $out/lib/node_modules/thelounge -p1 < ${./thelounge-packages-path.patch}
'';
passthru.tests = { inherit (nixosTests) thelounge; };
meta = super.thelounge.meta // { maintainers = with lib.maintainers; [ winter ]; };
};
yaml-language-server = super.yaml-language-server.override {

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