mirror of
https://github.com/NixOS/nixpkgs.git
synced 2025-04-14 00:47:40 +00:00
Merge staging-next into staging
This commit is contained in:
commit
081bd762e5
35
.github/workflows/pending-clear.yml
vendored
Normal file
35
.github/workflows/pending-clear.yml
vendored
Normal file
@ -0,0 +1,35 @@
|
||||
name: "clear pending status"
|
||||
|
||||
on:
|
||||
check_suite:
|
||||
types: [ completed ]
|
||||
|
||||
jobs:
|
||||
action:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: clear pending status
|
||||
if: github.repository_owner == 'NixOS' && github.event.check_suite.app.name == 'OfBorg'
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
GSU_VERSION: "0.5.0"
|
||||
GSU_HASH: "49df54dc0ed5eaa037400b66be8114bd62fa0af51ed36565f6203dc312711cc6"
|
||||
GSU_URL: "https://github.com/cloudposse/github-status-updater/releases/download"
|
||||
run: |
|
||||
curl -sSf -O -L -C - \
|
||||
"$GSU_URL/$GSU_VERSION/github-status-updater_linux_amd64" && \
|
||||
if [ "$(shasum -a 256 github-status-updater_linux_amd64 | cut -c1-64)" != "$GSU_HASH" ]; then
|
||||
echo "checksum mismatch"
|
||||
exit 1
|
||||
fi
|
||||
chmod +x github-status-updater_linux_amd64 && \
|
||||
./github-status-updater_linux_amd64 \
|
||||
-action update_state \
|
||||
-token "$GITHUB_TOKEN" \
|
||||
-owner NixOS \
|
||||
-repo nixpkgs \
|
||||
-state success \
|
||||
-context "Wait for ofborg" \
|
||||
-description " " \
|
||||
-url " " \
|
||||
-ref "${{ github.event.check_suite.head_sha }}"
|
34
.github/workflows/pending-set.yml
vendored
Normal file
34
.github/workflows/pending-set.yml
vendored
Normal file
@ -0,0 +1,34 @@
|
||||
name: "set pending status"
|
||||
|
||||
on:
|
||||
pull_request_target:
|
||||
|
||||
jobs:
|
||||
action:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: set pending status
|
||||
if: github.repository_owner == 'NixOS'
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
GSU_VERSION: "0.5.0"
|
||||
GSU_HASH: "49df54dc0ed5eaa037400b66be8114bd62fa0af51ed36565f6203dc312711cc6"
|
||||
GSU_URL: "https://github.com/cloudposse/github-status-updater/releases/download"
|
||||
run: |
|
||||
curl -sSf -O -L -C - \
|
||||
"$GSU_URL/$GSU_VERSION/github-status-updater_linux_amd64" && \
|
||||
if [ "$(shasum -a 256 github-status-updater_linux_amd64 | cut -c1-64)" != "$GSU_HASH" ]; then
|
||||
echo "checksum mismatch"
|
||||
exit 1
|
||||
fi
|
||||
chmod +x github-status-updater_linux_amd64 && \
|
||||
./github-status-updater_linux_amd64 \
|
||||
-action update_state \
|
||||
-token "$GITHUB_TOKEN" \
|
||||
-owner NixOS \
|
||||
-repo nixpkgs \
|
||||
-state failure \
|
||||
-context "Wait for ofborg" \
|
||||
-description "This failed status will be cleared when ofborg finishes eval." \
|
||||
-url " " \
|
||||
-ref "${{ github.event.pull_request.head.sha }}"
|
@ -17,7 +17,6 @@ pkgs.runCommandNoCC "nixpkgs-lib-tests" {
|
||||
export TEST_ROOT=$(pwd)/test-tmp
|
||||
export NIX_BUILD_HOOK=
|
||||
export NIX_CONF_DIR=$TEST_ROOT/etc
|
||||
export NIX_DB_DIR=$TEST_ROOT/db
|
||||
export NIX_LOCALSTATE_DIR=$TEST_ROOT/var
|
||||
export NIX_LOG_DIR=$TEST_ROOT/var/log/nix
|
||||
export NIX_STATE_DIR=$TEST_ROOT/var/nix
|
||||
|
@ -3733,6 +3733,12 @@
|
||||
}];
|
||||
name = "Jiri Daněk";
|
||||
};
|
||||
jdbaldry = {
|
||||
email = "jack.baldry@grafana.com";
|
||||
github = "jdbaldry";
|
||||
githubId = 4599384;
|
||||
name = "Jack Baldry";
|
||||
};
|
||||
jdehaas = {
|
||||
email = "qqlq@nullptr.club";
|
||||
github = "jeroendehaas";
|
||||
@ -6743,6 +6749,12 @@
|
||||
githubId = 37715;
|
||||
name = "Brian McKenna";
|
||||
};
|
||||
purcell = {
|
||||
email = "steve@sanityinc.com";
|
||||
github = "purcell";
|
||||
githubId = 5636;
|
||||
name = "Steve Purcell";
|
||||
};
|
||||
puzzlewolf = {
|
||||
email = "nixos@nora.pink";
|
||||
github = "puzzlewolf";
|
||||
|
@ -970,6 +970,8 @@ services.transmission.settings.rpc-bind-address = "0.0.0.0";
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
Nginx module <literal>nginxModules.fastcgi-cache-purge</literal> renamed to official name <literal>nginxModules.cache-purge</literal>.
|
||||
Nginx module <literal>nginxModules.ngx_aws_auth</literal> renamed to official name <literal>nginxModules.aws-auth</literal>.
|
||||
The packages <package>perl</package>, <package>rsync</package> and <package>strace</package> were removed from <option>systemPackages</option>. If you need them, install them again with <code><xref linkend="opt-environment.systemPackages"/> = with pkgs; [ perl rsync strace ];</code> in your <filename>configuration.nix</filename>.
|
||||
</para>
|
||||
</listitem>
|
||||
|
@ -127,7 +127,7 @@ in {
|
||||
{ LOCATE_PATH = cfg.output;
|
||||
};
|
||||
|
||||
warnings = optional (isMLocate && cfg.localuser != null) "mlocate does not support searching as user other than root"
|
||||
warnings = optional (isMLocate && cfg.localuser != null) "mlocate does not support the services.locate.localuser option; updatedb will run as root. (Silence with services.locate.localuser = null.)"
|
||||
++ optional (isFindutils && cfg.pruneNames != []) "findutils locate does not support pruning by directory component"
|
||||
++ optional (isFindutils && cfg.pruneBindMounts) "findutils locate does not support skipping bind mounts";
|
||||
|
||||
|
@ -300,6 +300,7 @@
|
||||
./services/desktops/dleyna-renderer.nix
|
||||
./services/desktops/dleyna-server.nix
|
||||
./services/desktops/pantheon/files.nix
|
||||
./services/desktops/espanso.nix
|
||||
./services/desktops/flatpak.nix
|
||||
./services/desktops/geoclue2.nix
|
||||
./services/desktops/gsignond.nix
|
||||
|
25
nixos/modules/services/desktops/espanso.nix
Normal file
25
nixos/modules/services/desktops/espanso.nix
Normal file
@ -0,0 +1,25 @@
|
||||
{ config, lib, pkgs, ... }:
|
||||
|
||||
with lib;
|
||||
let cfg = config.services.espanso;
|
||||
in {
|
||||
meta = { maintainers = with lib.maintainers; [ numkem ]; };
|
||||
|
||||
options = {
|
||||
services.espanso = { enable = options.mkEnableOption "Espanso"; };
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
systemd.user.services.espanso = {
|
||||
description = "Espanso daemon";
|
||||
path = with pkgs; [ espanso libnotify xclip ];
|
||||
serviceConfig = {
|
||||
ExecStart = "${pkgs.espanso}/bin/espanso daemon";
|
||||
Restart = "on-failure";
|
||||
};
|
||||
wantedBy = [ "default.target" ];
|
||||
};
|
||||
|
||||
environment.systemPackages = [ pkgs.espanso ];
|
||||
};
|
||||
}
|
@ -15,7 +15,7 @@ let
|
||||
jupyterhubConfig = pkgs.writeText "jupyterhub_config.py" ''
|
||||
c.JupyterHub.bind_url = "http://${cfg.host}:${toString cfg.port}"
|
||||
|
||||
c.JupyterHub.authentication_class = "${cfg.authentication}"
|
||||
c.JupyterHub.authenticator_class = "${cfg.authentication}"
|
||||
c.JupyterHub.spawner_class = "${cfg.spawner}"
|
||||
|
||||
c.SystemdSpawner.default_url = '/lab'
|
||||
|
@ -68,8 +68,8 @@ in
|
||||
plugins = mkOption {
|
||||
default = plugins: [];
|
||||
defaultText = "plugins: []";
|
||||
example = literalExample "plugins: [ m3d-fio ]";
|
||||
description = "Additional plugins.";
|
||||
example = literalExample "plugins: with plugins; [ m33-fio stlviewer ]";
|
||||
description = "Additional plugins to be used. Available plugins are passed through the plugins input.";
|
||||
};
|
||||
|
||||
extraConfig = mkOption {
|
||||
|
@ -69,7 +69,7 @@ in {
|
||||
mode = "0400";
|
||||
};
|
||||
|
||||
system.nssModules = pkgs.sssd;
|
||||
system.nssModules = [ pkgs.sssd ];
|
||||
system.nssDatabases = {
|
||||
group = [ "sss" ];
|
||||
passwd = [ "sss" ];
|
||||
@ -92,4 +92,6 @@ in {
|
||||
services.openssh.authorizedKeysCommand = "/etc/ssh/authorized_keys_command";
|
||||
services.openssh.authorizedKeysCommandUser = "nobody";
|
||||
})];
|
||||
|
||||
meta.maintainers = with maintainers; [ bbigras ];
|
||||
}
|
||||
|
@ -233,6 +233,9 @@ in {
|
||||
path = [ pkgs.wpa_supplicant ];
|
||||
|
||||
script = ''
|
||||
if [ -f /etc/wpa_supplicant.conf -a "/etc/wpa_supplicant.conf" != "${configFile}" ]
|
||||
then echo >&2 "<3>/etc/wpa_supplicant.conf present but ignored. Generated ${configFile} is used instead."
|
||||
fi
|
||||
iface_args="-s -u -D${cfg.driver} -c ${configFile}"
|
||||
${if ifaces == [] then ''
|
||||
for i in $(cd /sys/class/net && echo *); do
|
||||
|
@ -77,7 +77,6 @@ in {
|
||||
// Paths
|
||||
WOSendMail = "/run/wrappers/bin/sendmail";
|
||||
SOGoMailSpoolPath = "/var/lib/sogo/spool";
|
||||
SOGoZipPath = "${pkgs.zip}/bin/zip";
|
||||
// Enable CSRF protection
|
||||
SOGoXSRFValidationEnabled = YES;
|
||||
// Remove dates from log (jornald does that)
|
||||
|
@ -36,7 +36,7 @@ let
|
||||
set -euo pipefail
|
||||
|
||||
declare -A seen
|
||||
declare -a left
|
||||
left=()
|
||||
|
||||
patchelf="${pkgs.buildPackages.patchelf}/bin/patchelf"
|
||||
|
||||
@ -48,7 +48,7 @@ let
|
||||
done
|
||||
}
|
||||
|
||||
add_needed $1
|
||||
add_needed "$1"
|
||||
|
||||
while [ ''${#left[@]} -ne 0 ]; do
|
||||
next=''${left[0]}
|
||||
@ -87,7 +87,9 @@ let
|
||||
# copy what we need. Instead of using statically linked binaries,
|
||||
# we just copy what we need from Glibc and use patchelf to make it
|
||||
# work.
|
||||
extraUtils = pkgs.runCommandCC "extra-utils"
|
||||
extraUtils = let
|
||||
# Use lvm2 without udev support, which is the same lvm2 we already have in the closure anyways
|
||||
lvm2 = pkgs.lvm2.override { udev = null; }; in pkgs.runCommandCC "extra-utils"
|
||||
{ nativeBuildInputs = [pkgs.buildPackages.nukeReferences];
|
||||
allowedReferences = [ "out" ]; # prevent accidents like glibc being included in the initrd
|
||||
}
|
||||
@ -111,8 +113,8 @@ let
|
||||
copy_bin_and_libs ${pkgs.utillinux}/sbin/blkid
|
||||
|
||||
# Copy dmsetup and lvm.
|
||||
copy_bin_and_libs ${getBin pkgs.lvm2}/bin/dmsetup
|
||||
copy_bin_and_libs ${getBin pkgs.lvm2}/bin/lvm
|
||||
copy_bin_and_libs ${getBin lvm2}/bin/dmsetup
|
||||
copy_bin_and_libs ${getBin lvm2}/bin/lvm
|
||||
|
||||
# Add RAID mdadm tool.
|
||||
copy_bin_and_libs ${pkgs.mdadm}/sbin/mdadm
|
||||
|
@ -1129,7 +1129,6 @@ in
|
||||
++ optionals config.networking.wireless.enable [
|
||||
pkgs.wirelesstools # FIXME: obsolete?
|
||||
pkgs.iw
|
||||
pkgs.rfkill
|
||||
]
|
||||
++ bridgeStp;
|
||||
|
||||
|
@ -321,6 +321,7 @@ in
|
||||
spike = handleTest ./spike.nix {};
|
||||
sonarr = handleTest ./sonarr.nix {};
|
||||
sslh = handleTest ./sslh.nix {};
|
||||
sssd = handleTestOn ["x86_64-linux"] ./sssd.nix {};
|
||||
strongswan-swanctl = handleTest ./strongswan-swanctl.nix {};
|
||||
sudo = handleTest ./sudo.nix {};
|
||||
switchTest = handleTest ./switch-test.nix {};
|
||||
|
@ -1,4 +1,4 @@
|
||||
import ./make-test.nix ({pkgs, lib, ...}:
|
||||
import ./make-test-python.nix ({pkgs, lib, ...}:
|
||||
let
|
||||
# A filesystem image with a (presumably) bootable debian
|
||||
debianImage = pkgs.vmTools.diskImageFuns.debian9i386 {
|
||||
@ -34,9 +34,6 @@ let
|
||||
'';
|
||||
};
|
||||
|
||||
# options to add the disk to the test vm
|
||||
QEMU_OPTS = "-drive index=2,file=${debianImage}/disk-image.qcow2,read-only,if=virtio";
|
||||
|
||||
# a part of the configuration of the test vm
|
||||
simpleConfig = {
|
||||
boot.loader.grub = {
|
||||
@ -71,7 +68,7 @@ in {
|
||||
machine = { config, pkgs, ... }: (simpleConfig // {
|
||||
imports = [ ../modules/profiles/installation-device.nix
|
||||
../modules/profiles/base.nix ];
|
||||
virtualisation.memorySize = 1024;
|
||||
virtualisation.memorySize = 1300;
|
||||
# The test cannot access the network, so any packages
|
||||
# nixos-rebuild needs must be included in the VM.
|
||||
system.extraDependencies = with pkgs;
|
||||
@ -99,22 +96,28 @@ in {
|
||||
|
||||
testScript = ''
|
||||
# hack to add the secondary disk
|
||||
$machine->{startCommand} = "QEMU_OPTS=\"\$QEMU_OPTS \"${lib.escapeShellArg QEMU_OPTS} ".$machine->{startCommand};
|
||||
os.environ[
|
||||
"QEMU_OPTS"
|
||||
] = "-drive index=2,file=${debianImage}/disk-image.qcow2,read-only,if=virtio"
|
||||
|
||||
$machine->start;
|
||||
$machine->succeed("udevadm settle");
|
||||
$machine->waitForUnit("multi-user.target");
|
||||
machine.start()
|
||||
machine.succeed("udevadm settle")
|
||||
machine.wait_for_unit("multi-user.target")
|
||||
print(machine.succeed("lsblk"))
|
||||
|
||||
# check that os-prober works standalone
|
||||
$machine->succeed("${pkgs.os-prober}/bin/os-prober | grep /dev/vdb1");
|
||||
machine.succeed(
|
||||
"${pkgs.os-prober}/bin/os-prober | grep /dev/vdb1"
|
||||
)
|
||||
|
||||
# rebuild and test that debian is available in the grub menu
|
||||
$machine->succeed("nixos-generate-config");
|
||||
$machine->copyFileFromHost(
|
||||
machine.succeed("nixos-generate-config")
|
||||
machine.copy_from_host(
|
||||
"${configFile}",
|
||||
"/etc/nixos/configuration.nix");
|
||||
$machine->succeed("nixos-rebuild boot >&2");
|
||||
"/etc/nixos/configuration.nix",
|
||||
)
|
||||
machine.succeed("nixos-rebuild boot >&2")
|
||||
|
||||
$machine->succeed("egrep 'menuentry.*debian' /boot/grub/grub.cfg");
|
||||
machine.succeed("egrep 'menuentry.*debian' /boot/grub/grub.cfg")
|
||||
'';
|
||||
})
|
||||
|
17
nixos/tests/sssd.nix
Normal file
17
nixos/tests/sssd.nix
Normal file
@ -0,0 +1,17 @@
|
||||
import ./make-test-python.nix ({ pkgs, ... }:
|
||||
|
||||
{
|
||||
name = "sssd";
|
||||
meta = with pkgs.stdenv.lib.maintainers; {
|
||||
maintainers = [ bbigras ];
|
||||
};
|
||||
machine = { pkgs, ... }: {
|
||||
services.sssd.enable = true;
|
||||
};
|
||||
|
||||
testScript = ''
|
||||
start_all()
|
||||
machine.wait_for_unit("multi-user.target")
|
||||
machine.wait_for_unit("sssd.service")
|
||||
'';
|
||||
})
|
@ -31,7 +31,7 @@ import ./make-test-python.nix ({pkgs, ...}: {
|
||||
firewall.enable = false;
|
||||
interfaces.eth1.ipv4.addresses = lib.mkForce []; # no need for legacy IP
|
||||
interfaces.eth1.ipv6.addresses = lib.mkForce [
|
||||
{ address = "2001:DB8::"; prefixLength = 64; }
|
||||
{ address = "2001:DB8::1"; prefixLength = 64; }
|
||||
];
|
||||
};
|
||||
|
||||
@ -260,7 +260,7 @@ import ./make-test-python.nix ({pkgs, ...}: {
|
||||
client.wait_until_succeeds("ping -6 -c 1 FD42::1")
|
||||
|
||||
# the global IP of the ISP router should still not be a reachable
|
||||
router.fail("ping -6 -c 1 2001:DB8::")
|
||||
router.fail("ping -6 -c 1 2001:DB8::1")
|
||||
|
||||
# Once we have internal connectivity boot up the ISP
|
||||
isp.start()
|
||||
@ -273,11 +273,11 @@ import ./make-test-python.nix ({pkgs, ...}: {
|
||||
|
||||
# wait until the uplink interface has a good status
|
||||
router.wait_for_unit("network-online.target")
|
||||
router.wait_until_succeeds("ping -6 -c1 2001:DB8::")
|
||||
router.wait_until_succeeds("ping -6 -c1 2001:DB8::1")
|
||||
|
||||
# shortly after that the client should have received it's global IPv6
|
||||
# address and thus be able to ping the ISP
|
||||
client.wait_until_succeeds("ping -6 -c1 2001:DB8::")
|
||||
client.wait_until_succeeds("ping -6 -c1 2001:DB8::1")
|
||||
|
||||
# verify that we got a globally scoped address in eth1 from the
|
||||
# documentation prefix
|
||||
|
@ -1,5 +1,16 @@
|
||||
{ stdenv, fetchFromGitHub , xorg, freetype, alsaLib, curl, libjack2
|
||||
, lv2, pkgconfig, libGLU, libGL }:
|
||||
{ stdenv
|
||||
, fetchFromGitHub
|
||||
, fetchpatch
|
||||
, xorg
|
||||
, freetype
|
||||
, alsaLib
|
||||
, curl
|
||||
, libjack2
|
||||
, lv2
|
||||
, pkgconfig
|
||||
, libGLU
|
||||
, libGL
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation {
|
||||
version = "0.9.0";
|
||||
@ -20,7 +31,15 @@
|
||||
|
||||
CXXFLAGS = "-DHAVE_LROUND";
|
||||
|
||||
patchPhase = ''
|
||||
patches = [
|
||||
# gcc9 compatibility https://github.com/mtytel/helm/pull/233
|
||||
(fetchpatch {
|
||||
url = "https://github.com/mtytel/helm/commit/cb611a80bd5a36d31bfc31212ebbf79aa86c6f08.patch";
|
||||
sha256 = "1i2289srcfz17c3zzab6f51aznzdj62kk53l4afr32bkjh9s4ixk";
|
||||
})
|
||||
];
|
||||
|
||||
prePatch = ''
|
||||
sed -i 's|usr/||g' Makefile
|
||||
'';
|
||||
|
||||
|
@ -12,13 +12,13 @@ let
|
||||
;
|
||||
in pythonPackages.buildPythonApplication rec {
|
||||
pname = "picard";
|
||||
version = "2.4.1";
|
||||
version = "2.4.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "metabrainz";
|
||||
repo = pname;
|
||||
rev = "release-${version}";
|
||||
sha256 = "0s4jmcg1n6ayxf7x0amq67rgn6y127h98s2k4fcna6n9477krrwf";
|
||||
sha256 = "0sbccsisk9w0gnblvhg7wk1c5ydppldjbvaa0zhl3yrid5a363ah";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ gettext qt5.wrapQtAppsHook qt5.qtbase ]
|
||||
|
@ -19,9 +19,9 @@ let
|
||||
sha256Hash = "11lkwcbzdl86cyz4lci65cx9z5jjhrc4z40maqx2r5hw1xka9290";
|
||||
};
|
||||
latestVersion = { # canary & dev
|
||||
version = "4.2.0.5"; # "Android Studio 4.2 Canary 5"
|
||||
build = "201.6682321";
|
||||
sha256Hash = "076q6d7kmi0wcsqak7n6ggp1qns4xj1134xcpdzb92qk3dmg3wrh";
|
||||
version = "4.2.0.7"; # "Android Studio 4.2 Canary 7"
|
||||
build = "201.6720134";
|
||||
sha256Hash = "1c9s6rd0z596qr7hbil5rl3fqby7c8h7ma52d1qj5rxra73k77nz";
|
||||
};
|
||||
in {
|
||||
# Attributes are named by their corresponding release channels
|
||||
|
@ -20,11 +20,11 @@ let
|
||||
|
||||
in stdenv.mkDerivation rec {
|
||||
pname = "nano";
|
||||
version = "5.0";
|
||||
version = "5.2";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://gnu/nano/${pname}-${version}.tar.xz";
|
||||
sha256 = "0dmagj4p1llb1a2w0iwdrqbd9cgp0bda4s18vwh6y1ndd6z983bw";
|
||||
sha256 = "1qd7pn9g5dgzbfg4fb3nqxqgi2iqq0g6x33x8d1mx6mfw51xmhij";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ texinfo ] ++ optional enableNls gettext;
|
||||
|
@ -17,13 +17,13 @@
|
||||
|
||||
python3.pkgs.buildPythonApplication rec {
|
||||
pname = "setzer";
|
||||
version = "0.2.8";
|
||||
version = "0.3.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "cvfosammmm";
|
||||
repo = "Setzer";
|
||||
rev = "v${version}";
|
||||
sha256 = "1llxxjj038nd2p857bjdyyhzskn56826qi259v47vaqlv9hkifil";
|
||||
sha256 = "0gx5fnyi932lswkhdvxfqs0wxx7hz690cbnpv4m3ysydi96mxwiv";
|
||||
};
|
||||
|
||||
format = "other";
|
||||
|
30
pkgs/applications/editors/viw/default.nix
Normal file
30
pkgs/applications/editors/viw/default.nix
Normal file
@ -0,0 +1,30 @@
|
||||
{ stdenv, fetchFromGitHub, ncurses }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "viw";
|
||||
version = "unstable-20171029";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "lpan";
|
||||
repo = pname;
|
||||
rev = "2cf317f6d82a6fa58f284074400297b6dc0f44c2";
|
||||
sha256 = "0bnkh57v01zay6ggk0rbddaf75i48h8z06xsv33wfbjldclaljp1";
|
||||
};
|
||||
|
||||
buildInputs = [ ncurses ];
|
||||
|
||||
makeFlags = [ "CC=cc" ];
|
||||
checkFlags = [ "test-command" "test-buffer" "test-state" ];
|
||||
|
||||
installPhase = ''
|
||||
install -Dm 755 -t $out/bin viw
|
||||
install -Dm 644 -t $out/share/doc/${pname} README.md
|
||||
'';
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
description = "VI Worsened, a fun and light clone of VI";
|
||||
homepage = "https://github.com/lpan/viw";
|
||||
license = licenses.gpl3Only;
|
||||
maintainers = with maintainers; [ AndersonTorres ];
|
||||
};
|
||||
}
|
51
pkgs/applications/graphics/opentoonz/default.nix
Normal file
51
pkgs/applications/graphics/opentoonz/default.nix
Normal file
@ -0,0 +1,51 @@
|
||||
{ boost, cmake, fetchFromGitHub, freeglut, freetype, glew, libjpeg, libmypaint
|
||||
, libpng, libtiff, libusb1, lz4, lzma, lzo, openblas, pkgconfig, qtbase
|
||||
, qtmultimedia, qtscript, stdenv, superlu, wrapQtAppsHook, }:
|
||||
let source = import ./source.nix { inherit fetchFromGitHub; };
|
||||
in stdenv.mkDerivation rec {
|
||||
inherit (source) src;
|
||||
|
||||
pname = "opentoonz";
|
||||
version = source.versions.opentoonz;
|
||||
|
||||
nativeBuildInputs = [ cmake pkgconfig wrapQtAppsHook ];
|
||||
|
||||
buildInputs = [
|
||||
boost
|
||||
freeglut
|
||||
freetype
|
||||
glew
|
||||
libjpeg
|
||||
libmypaint
|
||||
libpng
|
||||
libtiff
|
||||
libusb1
|
||||
lz4
|
||||
lzma
|
||||
lzo
|
||||
openblas
|
||||
qtbase
|
||||
qtmultimedia
|
||||
qtscript
|
||||
superlu
|
||||
];
|
||||
|
||||
postUnpack = "sourceRoot=$sourceRoot/toonz";
|
||||
|
||||
cmakeDir = "../sources";
|
||||
cmakeFlags = [
|
||||
"-DTIFF_INCLUDE_DIR=${libtiff.dev}/include"
|
||||
"-DTIFF_LIBRARY=${libtiff.out}/lib/libtiff.so"
|
||||
];
|
||||
|
||||
postInstall = ''
|
||||
sed -i '/cp -r .*stuff/a\ chmod -R u+w $HOME/.config/OpenToonz/stuff' $out/bin/opentoonz
|
||||
'';
|
||||
|
||||
meta = {
|
||||
description = "Full-featured 2D animation creation software";
|
||||
homepage = "https://opentoonz.github.io/";
|
||||
license = stdenv.lib.licenses.bsd3;
|
||||
maintainers = with stdenv.lib.maintainers; [ chkno ];
|
||||
};
|
||||
}
|
21
pkgs/applications/graphics/opentoonz/libtiff.nix
Normal file
21
pkgs/applications/graphics/opentoonz/libtiff.nix
Normal file
@ -0,0 +1,21 @@
|
||||
# Per https://github.com/opentoonz/opentoonz/blob/master/doc/how_to_build_linux.md ,
|
||||
# opentoonz requires its own modified version of libtiff. We still build it as
|
||||
# a separate package
|
||||
# 1. For visibility for tools like vulnix, and
|
||||
# 2. To avoid a diamond-dependency problem with qt linking the normal libtiff
|
||||
# and opentoonz linking qt and this modified libtiff, we build a qt against
|
||||
# this modified libtiff as well.
|
||||
|
||||
{ fetchFromGitHub, libtiff }:
|
||||
let source = import ./source.nix { inherit fetchFromGitHub; };
|
||||
in libtiff.overrideAttrs (old: {
|
||||
inherit (source) src;
|
||||
version = source.versions.libtiff + "-opentoonz";
|
||||
postUnpack = (old.postUnpack or "") + ''
|
||||
sourceRoot="$sourceRoot/thirdparty/tiff-${source.versions.libtiff}"
|
||||
'';
|
||||
# opentoonz uses internal libtiff headers
|
||||
postInstall = (old.postInstall or "") + ''
|
||||
cp libtiff/{tif_config,tif_dir,tiffiop}.h $dev/include
|
||||
'';
|
||||
})
|
16
pkgs/applications/graphics/opentoonz/source.nix
Normal file
16
pkgs/applications/graphics/opentoonz/source.nix
Normal file
@ -0,0 +1,16 @@
|
||||
# opentoonz's source archive contains both opentoonz's source and a modified
|
||||
# version of libtiff that opentoonz requires.
|
||||
|
||||
{ fetchFromGitHub, }: rec {
|
||||
versions = {
|
||||
opentoonz = "1.4.0";
|
||||
libtiff = "4.0.3";
|
||||
};
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "opentoonz";
|
||||
repo = "opentoonz";
|
||||
rev = "v${versions.opentoonz}";
|
||||
sha256 = "0vgclx2yydsm5i2smff3fj8m750nhf35wfhva37kywgws01s189b";
|
||||
};
|
||||
}
|
@ -11,13 +11,13 @@ assert x11Support -> xlibs != null && xorg != null;
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "bemenu";
|
||||
version = "0.4.1";
|
||||
version = "0.5.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "Cloudef";
|
||||
repo = pname;
|
||||
rev = version;
|
||||
sha256 = "1fjcs9d3533ay3nz79cx3c0lmy2chgragr2lhsy0xl2ckr0iins0";
|
||||
sha256 = "1ifq5bk7782b9m6bl111x33fn38rpppdrww7hfavqia9a9gi2sl5";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ pkgconfig pcre ];
|
||||
|
@ -17,11 +17,11 @@ let python = python3Packages.python; in
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "blender";
|
||||
version = "2.83.4";
|
||||
version = "2.83.5";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://download.blender.org/source/${pname}-${version}.tar.xz";
|
||||
sha256 = "1y4phkzrxy17kpjbg0jbz1236nw8w8p006x1crbqmvwz8wd3dm46";
|
||||
sha256 = "0xyawly00a59hfdb6b7va84k5fhcv2mxnzd77vs22bzi9y7sap43";
|
||||
};
|
||||
|
||||
patches = lib.optional stdenv.isDarwin ./darwin.patch;
|
||||
|
@ -3,13 +3,13 @@
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "cheat";
|
||||
version = "4.0.3";
|
||||
version = "4.0.4";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "cheat";
|
||||
repo = "cheat";
|
||||
rev = version;
|
||||
sha256 = "1bzlbd8lvagpipyv553icv17bafhaydscrrlly8jz7kfi4d9xvkk";
|
||||
sha256 = "0cracw6pja3d7z6ip6lbmpvfxlxcnh3fbgh5ba8c87bhfz99idqn";
|
||||
};
|
||||
|
||||
subPackages = [ "cmd/cheat" ];
|
||||
|
@ -97,7 +97,7 @@ in buildFHSUserEnv {
|
||||
libcap libtiff libva libgphoto2 libxslt libsndfile giflib zlib glib
|
||||
alsaLib zziplib bash dbus keyutils zip cabextract freetype unzip coreutils
|
||||
readline gcc SDL SDL2 curl graphite2 gtk2 gtk3 udev ncurses wayland libglvnd
|
||||
vulkan-loader xdg_utils sqlite gnutls p11-kit libbsd
|
||||
vulkan-loader xdg_utils sqlite gnutls p11-kit libbsd harfbuzz
|
||||
|
||||
# PCSX2 // TODO: "libgobject-2.0.so.0: wrong ELF class: ELFCLASS64"
|
||||
|
||||
|
@ -2,16 +2,16 @@
|
||||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "navi";
|
||||
version = "2.7.1";
|
||||
version = "2.8.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "denisidoro";
|
||||
repo = "navi";
|
||||
rev = "v${version}";
|
||||
sha256 = "12p9l41k7isaapr0xbsm7brkjrv7i8826y029i12psz92nsynk29";
|
||||
sha256 = "0w63yx4c60r05nfswv61jw3l3zbl5n1s396a6f4ayn52fb6rxwg1";
|
||||
};
|
||||
|
||||
cargoSha256 = "11dc3gc7fyikbbgacmljhysr2sl7lmq6w3bsfcf2cqny39r25yp0";
|
||||
cargoSha256 = "06xpk04nxkm7h4nn235x8a4gi0qhscj8kkl2f9gqphlfmm56kjfn";
|
||||
|
||||
nativeBuildInputs = [ makeWrapper ];
|
||||
|
||||
|
@ -17,10 +17,10 @@ let
|
||||
|
||||
pname = "simplenote";
|
||||
|
||||
version = "1.21.0";
|
||||
version = "1.21.1";
|
||||
|
||||
sha256 = {
|
||||
x86_64-linux = "073dg4agqgimsgs3ia7g0pjv4vxkh24bj7vpmssiysdxhm4li1j1";
|
||||
x86_64-linux = "00qx82d17yrrg2mxwhm40av0mpf5hy14j338i5ijhwp79yc8fk8x";
|
||||
}.${system} or throwSystem;
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
|
@ -2,13 +2,13 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "systembus-notify";
|
||||
version = "1.0";
|
||||
version = "1.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "rfjakob";
|
||||
repo = "systembus-notify";
|
||||
rev = "v${version}";
|
||||
sha256 = "11zq84qfmbyl51d3r6294l2bjhlgwa9bx7d263g9fkqrwsg0si0y";
|
||||
sha256 = "1pdn45rfpwhrf20hs87qmk2j8sr7ab8161f81019wnypnb1q2fsv";
|
||||
};
|
||||
|
||||
buildInputs = [ systemd ];
|
||||
|
@ -108,7 +108,7 @@ stdenv.mkDerivation ({
|
||||
dbus dbus-glib pango freetype fontconfig xorg.libXi xorg.libXcursor
|
||||
xorg.libX11 xorg.libXrender xorg.libXft xorg.libXt file
|
||||
libnotify xorg.pixman yasm libGLU libGL
|
||||
xorg.libXScrnSaver xorg.xorgproto
|
||||
xorg.xorgproto
|
||||
xorg.libXext unzip makeWrapper
|
||||
libevent libstartup_notification /* cairo */
|
||||
libpng jemalloc glib
|
||||
@ -277,6 +277,7 @@ stdenv.mkDerivation ({
|
||||
patchelf --set-rpath "${lib.getLib libnotify
|
||||
}/lib:$(patchelf --print-rpath "$out"/lib/${binaryName}*/libxul.so)" \
|
||||
"$out"/lib/${binaryName}*/libxul.so
|
||||
patchelf --add-needed ${xorg.libXScrnSaver.out}/lib/libXss.so $out/lib/${binaryName}/${binaryName}
|
||||
'';
|
||||
|
||||
doInstallCheck = true;
|
||||
|
@ -2,16 +2,16 @@
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "terragrunt";
|
||||
version = "0.23.32";
|
||||
version = "0.23.33";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "gruntwork-io";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "1pa3k0hjdb5bj0bp4aj3lfcgz98l3wd9kfa12rn9zzbcmp087kih";
|
||||
sha256 = "0fsyvmdg2llnzy0yzmiihnb865ccq2sn6d3i935dflppnjyp01p4";
|
||||
};
|
||||
|
||||
vendorSha256 = "1xn7c6y32vpanqvf1sfpw6bs73dbjniavjbf00j0vx83bfyklsr4";
|
||||
vendorSha256 = "05p72l724qqf61dn0frahf4awvkkcw8cpl6nhwlacd1jw8c14fjl";
|
||||
|
||||
doCheck = false;
|
||||
|
||||
|
@ -54,11 +54,6 @@ mkDerivation rec {
|
||||
qtquickcontrols2
|
||||
qtgraphicaleffects
|
||||
] ++ lib.optional stdenv.isDarwin qtmacextras;
|
||||
# Quick and dirty fix to https://github.com/NixOS/nixpkgs/issues/94952
|
||||
# and/or: https://github.com/NixOS/nixpkgs/issues/94905
|
||||
cmakeFlags = [
|
||||
"-DCMAKE_OSX_ARCHITECTURES="
|
||||
];
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
description = "Desktop client for the Matrix protocol";
|
||||
|
@ -2,7 +2,9 @@
|
||||
, gnome2, gtk3, atk, at-spi2-atk, cairo, pango, gdk-pixbuf, glib, freetype, fontconfig
|
||||
, dbus, libX11, xorg, libXi, libXcursor, libXdamage, libXrandr, libXcomposite
|
||||
, libXext, libXfixes, libXrender, libXtst, libXScrnSaver, nss, nspr, alsaLib
|
||||
, cups, expat, systemd, libnotify, libuuid, at-spi2-core, libappindicator-gtk3
|
||||
, cups, expat, libuuid, at-spi2-core, libappindicator-gtk3
|
||||
# Runtime dependencies:
|
||||
, systemd, libnotify, libdbusmenu
|
||||
# Unfortunately this also overwrites the UI language (not just the spell
|
||||
# checking language!):
|
||||
, hunspellDicts, spellcheckerLanguage ? null # E.g. "de_DE"
|
||||
@ -81,6 +83,7 @@ in stdenv.mkDerivation rec {
|
||||
runtimeDependencies = [
|
||||
(lib.getLib systemd)
|
||||
libnotify
|
||||
libdbusmenu
|
||||
];
|
||||
|
||||
unpackPhase = "dpkg-deb -x $src .";
|
||||
|
@ -1,4 +1,4 @@
|
||||
{ mkDerivation, lib, fetchurl, fetchsvn, stdenv
|
||||
{ mkDerivation, lib, fetchurl, fetchsvn
|
||||
, pkgconfig, cmake, ninja, python3, wrapGAppsHook, wrapQtAppsHook
|
||||
, qtbase, qtimageformats, gtk3, libsForQt5, enchant2, lz4, xxHash
|
||||
, dee, ffmpeg, openalSoft, minizip, libopus, alsaLib, libpulseaudio, range-v3
|
||||
@ -63,8 +63,6 @@ mkDerivation rec {
|
||||
"-DDESKTOP_APP_DISABLE_WEBRTC_INTEGRATION=ON"
|
||||
#"-DDESKTOP_APP_SPECIAL_TARGET=\"\"" # TODO: Error when set to "": Bad special target '""'
|
||||
"-DTDESKTOP_LAUNCHER_BASENAME=telegramdesktop" # Note: This is the default
|
||||
] ++ optionals stdenv.isLinux [ # TODO: Remove workaround once #94905 is resolved:
|
||||
"-DCMAKE_OSX_ARCHITECTURES="
|
||||
];
|
||||
|
||||
# Note: The following packages could be packaged system-wide, but it's
|
||||
|
@ -7,6 +7,8 @@
|
||||
|
||||
weechat-matrix = python3Packages.callPackage ./weechat-matrix { };
|
||||
|
||||
weechat-notify-send = python3Packages.callPackage ./weechat-notify-send { };
|
||||
|
||||
wee-slack = callPackage ./wee-slack { };
|
||||
|
||||
weechat-autosort = callPackage ./weechat-autosort { };
|
||||
|
@ -0,0 +1,31 @@
|
||||
{ stdenv, fetchFromGitHub, libnotify }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "weechat-notify-send";
|
||||
version = "0.9";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "s3rvac";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "1693b7axm9ls5p7hm6kq6avddsisi491khr5irvswr5lpizvys6a";
|
||||
};
|
||||
|
||||
passthru.scripts = [ "notify_send.py" ];
|
||||
|
||||
dontBuild = true;
|
||||
doCheck = false;
|
||||
|
||||
installPhase = ''
|
||||
install -D notify_send.py $out/share/notify_send.py
|
||||
substituteInPlace $out/share/notify_send.py \
|
||||
--replace "'notify-send'" "'${libnotify}/bin/notify-send'"
|
||||
'';
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
description = "A WeeChat script that sends highlight and message notifications through notify-send";
|
||||
homepage = "https://github.com/s3rvac/weechat-notify-srnd";
|
||||
license = licenses.mit;
|
||||
maintainers = with maintainers; [ tobim ];
|
||||
};
|
||||
}
|
@ -2,13 +2,13 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "notmuch-bower";
|
||||
version = "0.11";
|
||||
version = "0.12";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "wangp";
|
||||
repo = "bower";
|
||||
rev = version;
|
||||
sha256 = "0vhac8yjnhb1gz60jfzg27spyn96c1rr849gc6vjym5xamw7zp0v";
|
||||
sha256 = "0hvvlbvad6h73iiyn9xshlj073p2ddchgh0pyizh9gi8niir4fn5";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ gawk mercury pandoc ];
|
||||
|
@ -1,14 +1,26 @@
|
||||
{ callPackage, fetchurl, ... } @ args:
|
||||
{ callPackage
|
||||
, fetchurl
|
||||
|
||||
callPackage ./generic.nix (args // rec {
|
||||
pname = "freeoffice";
|
||||
# This is a bit unusual, but makes version and hash easily
|
||||
# overridable. This is useful when the upstream archive was replaced
|
||||
# and nixpkgs is not in sync yet.
|
||||
, officeVersion ? {
|
||||
version = "976";
|
||||
edition = "2018";
|
||||
sha256 = "13yh4lyqakbdqf4r8vw8imy5gwpfva697iqfd85qmp3wimqvzskl";
|
||||
}
|
||||
|
||||
, ... } @ args:
|
||||
|
||||
callPackage ./generic.nix (args // rec {
|
||||
inherit (officeVersion) version edition;
|
||||
|
||||
pname = "freeoffice";
|
||||
suiteName = "FreeOffice";
|
||||
|
||||
src = fetchurl {
|
||||
inherit (officeVersion) sha256;
|
||||
url = "https://www.softmaker.net/down/softmaker-freeoffice-${version}-amd64.tgz";
|
||||
sha256 = "13yh4lyqakbdqf4r8vw8imy5gwpfva697iqfd85qmp3wimqvzskl";
|
||||
};
|
||||
|
||||
archive = "freeoffice${edition}.tar.lzma";
|
||||
|
@ -1,14 +1,27 @@
|
||||
{ callPackage, fetchurl, ... } @ args:
|
||||
{ callPackage
|
||||
, fetchurl
|
||||
|
||||
# This is a bit unusual, but makes version and hash easily
|
||||
# overridable. This is useful when people have an older version of
|
||||
# Softmaker Office or when the upstream archive was replaced and
|
||||
# nixpkgs is not in sync yet.
|
||||
, officeVersion ? {
|
||||
version = "1018";
|
||||
edition = "2021";
|
||||
sha256 = "1g9mcn0z7s3xw7d5bcjxbnamh6knzndcysahydskfcds6czdxg0c";
|
||||
}
|
||||
|
||||
, ... } @ args:
|
||||
|
||||
callPackage ./generic.nix (args // rec {
|
||||
inherit (officeVersion) version edition;
|
||||
|
||||
pname = "softmaker-office";
|
||||
version = "1016";
|
||||
edition = "2021";
|
||||
suiteName = "SoftMaker Office";
|
||||
|
||||
src = fetchurl {
|
||||
inherit (officeVersion) sha256;
|
||||
url = "https://www.softmaker.net/down/softmaker-office-${edition}-${version}-amd64.tgz";
|
||||
sha256 = "0s8kzpc6w2cjkfqmhb2p1pkmkiq9vk9gnc7z2992kijaf9bwk3qz";
|
||||
};
|
||||
|
||||
archive = "office${edition}.tar.lzma";
|
||||
|
@ -8,20 +8,21 @@
|
||||
, gnuradio
|
||||
, liquid-dsp
|
||||
, qtbase
|
||||
, wrapQtAppsHook
|
||||
}:
|
||||
|
||||
mkDerivation {
|
||||
mkDerivation rec {
|
||||
pname = "inspectrum";
|
||||
version = "unstable-2017-05-31";
|
||||
version = "0.2.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "miek";
|
||||
repo = "inspectrum";
|
||||
rev = "a89d1337efb31673ccb6a6681bb89c21894c76f7";
|
||||
sha256 = "1fvnr8gca25i6s9mg9b2hyqs0zzr4jicw13mimc9dhrgxklrr1yv";
|
||||
rev = "v${version}";
|
||||
sha256 = "1a517y7s1xi66y5kjrpjay450pad9nc228pa8801mxq1c7m1lamm";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ cmake pkgconfig ];
|
||||
nativeBuildInputs = [ cmake pkgconfig wrapQtAppsHook ];
|
||||
buildInputs = [
|
||||
fftwFloat
|
||||
boost
|
||||
|
@ -7,6 +7,12 @@
|
||||
let allVersions = with lib; flip map
|
||||
# N.B. Versions in this list should be ordered from newest to oldest.
|
||||
[
|
||||
{
|
||||
version = "12.1.1";
|
||||
lang = "en";
|
||||
language = "English";
|
||||
sha256 = "02mk8gmv8idnakva1nc7r7mx8ld02lk7jgsj1zbn962aps3bhixd";
|
||||
}
|
||||
{
|
||||
version = "12.1.0";
|
||||
lang = "en";
|
||||
|
@ -5,7 +5,7 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "fossil";
|
||||
version = "2.11.1";
|
||||
version = "2.12.1";
|
||||
|
||||
src = fetchurl {
|
||||
urls =
|
||||
@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
|
||||
"https://www.fossil-scm.org/index.html/uv/fossil-src-${version}.tar.gz"
|
||||
];
|
||||
name = "${pname}-${version}.tar.gz";
|
||||
sha256 = "1sxq1hn87fdikhbg9y3v4sjy4gxaifnx4dig8nx6xwd5mm7z74dk";
|
||||
sha256 = "00v6gmn2wpfms5jzf103hkm5s8i3bfs5mzacmznlhdzdrzzjc8w2";
|
||||
};
|
||||
|
||||
buildInputs = [ zlib openssl readline sqlite which ed ]
|
||||
|
@ -6,7 +6,7 @@
|
||||
|
||||
buildGoPackage rec {
|
||||
pname = "docker-slim";
|
||||
version = "1.31.0";
|
||||
version = "1.32.0";
|
||||
|
||||
goPackagePath = "github.com/docker-slim/docker-slim";
|
||||
|
||||
@ -14,7 +14,7 @@ buildGoPackage rec {
|
||||
owner = "docker-slim";
|
||||
repo = "docker-slim";
|
||||
rev = version;
|
||||
sha256 = "0kj97kwyjs9hksaas0zic4m7w8b17c1d7c8vhiq2862w97ngxrsk";
|
||||
sha256 = "0pd2v7df176ca923c4nw9ns5gz442jkb0jhzqjl53rwfwz1vxy9h";
|
||||
};
|
||||
|
||||
subPackages = [ "cmd/docker-slim" "cmd/docker-slim-sensor" ];
|
||||
|
@ -16,13 +16,13 @@
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "podman";
|
||||
version = "2.0.4";
|
||||
version = "2.0.5";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "containers";
|
||||
repo = "podman";
|
||||
rev = "v${version}";
|
||||
sha256 = "0rnli16nh5m3a8jjkkm1k4f896yk1k1rg48rjiajqhfrr98qwr0f";
|
||||
sha256 = "0db0q52va9w8aprzx08xnv6y84l4x4lc113sd97hjgjnhknp8d3m";
|
||||
};
|
||||
|
||||
vendorSha256 = null;
|
||||
|
32
pkgs/applications/window-managers/i3/lock-fancy-rapid.nix
Normal file
32
pkgs/applications/window-managers/i3/lock-fancy-rapid.nix
Normal file
@ -0,0 +1,32 @@
|
||||
{ stdenv, fetchFromGitHub, xorg, i3lock }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "i3lock-fancy-rapid";
|
||||
version = "2019-10-09";
|
||||
src = fetchFromGitHub {
|
||||
owner = "yvbbrjdr";
|
||||
repo = "i3lock-fancy-rapid";
|
||||
rev = "c67f09bc8a48798c7c820d7d4749240b10865ce0";
|
||||
sha256 = "0jhvlj6v6wx70239pgkjxd42z1s2bzfg886ra6n1rzsdclf4rkc6";
|
||||
};
|
||||
|
||||
buildInputs = [ xorg.libX11 ];
|
||||
propagatedBuildInputs = [ i3lock ];
|
||||
|
||||
postPatch = ''
|
||||
substituteInPlace i3lock-fancy-rapid.c \
|
||||
--replace '"i3lock"' '"${i3lock}/bin/i3lock"'
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
install -D i3lock-fancy-rapid $out/bin/i3lock-fancy-rapid
|
||||
'';
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
description = "A faster implementation of i3lock-fancy";
|
||||
homepage = "https://github.com/yvbbrjdr/i3lock-fancy-rapid";
|
||||
maintainers = with maintainers; [ nickhu ];
|
||||
license = licenses.bsd3;
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
@ -1,7 +1,7 @@
|
||||
{ stdenv, fetchzip }:
|
||||
|
||||
let
|
||||
version = "3.4.1";
|
||||
version = "3.4.6";
|
||||
in fetchzip {
|
||||
name = "iosevka-bin-${version}";
|
||||
|
||||
@ -12,7 +12,7 @@ in fetchzip {
|
||||
unzip -j $downloadedFile \*.ttc -d $out/share/fonts/truetype
|
||||
'';
|
||||
|
||||
sha256 = "0qqzgfplib6jdn1fra7fwx25jkzlw21brj45q8gn3gxvndvqabvd";
|
||||
sha256 = "1nab49gkpxahwvvw39xcc32q425qkccr7ffmz87jbcdv71qy7pp9";
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
homepage = "https://be5invis.github.io/Iosevka/";
|
||||
|
@ -1,7 +1,7 @@
|
||||
{ lib, fetchzip }:
|
||||
|
||||
let
|
||||
version = "1.057";
|
||||
version = "1.059";
|
||||
in
|
||||
fetchzip {
|
||||
name = "recursive-${version}";
|
||||
@ -15,7 +15,7 @@ fetchzip {
|
||||
unzip -j $downloadedFile \*.woff2 -d $out/share/fonts/woff2
|
||||
'';
|
||||
|
||||
sha256 = "0qsqldnhgl93h1izminjajjymvyxsw91ngdbxlhgbqvadg77325y";
|
||||
sha256 = "0dlv8nrcqdn5vn3s918in5ph6kx6rg607kgp66p6ibpbg2s8ljy7";
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://recursive.design/";
|
||||
|
@ -20,7 +20,7 @@
|
||||
, librsvg
|
||||
, poppler
|
||||
, pulseaudio
|
||||
, rfkill
|
||||
, utillinux
|
||||
, xcur2png
|
||||
}:
|
||||
|
||||
@ -49,7 +49,7 @@ buildGoPackage rec {
|
||||
blur-effect # run (is it really needed?)
|
||||
coreutils # run (is it really needed?)
|
||||
fontconfig # run (is it really needed?)
|
||||
rfkill # run
|
||||
utillinux # run
|
||||
xcur2png # run
|
||||
grub2 # run (is it really needed?)
|
||||
];
|
||||
|
@ -1,12 +1,15 @@
|
||||
{stdenv, fetchurl, jre}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "aspectj-1.5.2";
|
||||
pname = "aspectj";
|
||||
version = "1.9.6";
|
||||
builder = ./builder.sh;
|
||||
|
||||
src = fetchurl {
|
||||
url = "http://archive.eclipse.org/tools/aspectj/${name}.jar";
|
||||
sha256 = "1b3mx248dc1xka1vgsl0jj4sm0nfjsqdcj9r9036mvixj1zj3nmh";
|
||||
src = let
|
||||
versionSnakeCase = builtins.replaceStrings ["."] ["_"] version;
|
||||
in fetchurl {
|
||||
url = "https://github.com/eclipse/org.aspectj/releases/download/V${versionSnakeCase}/aspectj-${version}.jar";
|
||||
sha256 = "02jh66l3vw57k9a4dxlga3qh3487r36gyi6k2z2mmqxbpqajslja";
|
||||
};
|
||||
|
||||
inherit jre;
|
||||
|
32
pkgs/development/compilers/copper/default.nix
Normal file
32
pkgs/development/compilers/copper/default.nix
Normal file
@ -0,0 +1,32 @@
|
||||
{ stdenv
|
||||
, fetchurl
|
||||
, libffi
|
||||
}:
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "copper";
|
||||
version = "4.4";
|
||||
src = fetchurl {
|
||||
url = "https://tibleiz.net/download/copper-${version}-src.tar.gz";
|
||||
sha256 = "1nf0bw143rjhd019yms3k6k531rahl8anidwh6bif0gm7cngfwfw";
|
||||
};
|
||||
buildInputs = [
|
||||
libffi
|
||||
];
|
||||
postPatch = ''
|
||||
substituteInPlace Makefile --replace "-s scripts/" "scripts/"
|
||||
patchShebangs .
|
||||
'';
|
||||
buildPhase = ''
|
||||
make BACKEND=elf64 boot-elf64
|
||||
make BACKEND=elf64 COPPER=stage3/copper-elf64 copper-elf64
|
||||
'';
|
||||
installPhase = ''
|
||||
make BACKEND=elf64 install prefix=$out
|
||||
'';
|
||||
meta = with stdenv.lib; {
|
||||
description = "Simple imperative language, statically typed with type inference and genericity.";
|
||||
homepage = "https://tibleiz.net/copper/";
|
||||
license = licenses.bsd2;
|
||||
platforms = platforms.x86_64;
|
||||
};
|
||||
}
|
@ -1,14 +1,14 @@
|
||||
{ stdenv, fetchurl, makeWrapper, jre, unzip }:
|
||||
|
||||
let
|
||||
version = "1.3.72";
|
||||
version = "1.4.0";
|
||||
in stdenv.mkDerivation {
|
||||
inherit version;
|
||||
pname = "kotlin";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://github.com/JetBrains/kotlin/releases/download/v${version}/kotlin-compiler-${version}.zip";
|
||||
sha256 = "0v6c4vjiflwbjjc1lmiyzrilxwbqcz5ll6ls40zhw70zk23xpl6c";
|
||||
sha256 = "0qgiabpkisqjm9iryidrynqy452vzmpgaw54rd9blr9w7g8r20sr";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [ jre ] ;
|
||||
|
29
pkgs/development/compilers/llvm/11/bintools.nix
Normal file
29
pkgs/development/compilers/llvm/11/bintools.nix
Normal file
@ -0,0 +1,29 @@
|
||||
{ runCommand, stdenv, llvm, lld, version }:
|
||||
|
||||
let
|
||||
prefix =
|
||||
if stdenv.hostPlatform != stdenv.targetPlatform
|
||||
then "${stdenv.targetPlatform.config}-"
|
||||
else "";
|
||||
in runCommand "llvm-binutils-${version}" { preferLocalBuild = true; } ''
|
||||
mkdir -p $out/bin
|
||||
for prog in ${lld}/bin/*; do
|
||||
ln -s $prog $out/bin/${prefix}$(basename $prog)
|
||||
done
|
||||
for prog in ${llvm}/bin/*; do
|
||||
ln -sf $prog $out/bin/${prefix}$(basename $prog)
|
||||
done
|
||||
|
||||
ln -s ${llvm}/bin/llvm-ar $out/bin/${prefix}ar
|
||||
ln -s ${llvm}/bin/llvm-as $out/bin/${prefix}as
|
||||
ln -s ${llvm}/bin/llvm-dwp $out/bin/${prefix}dwp
|
||||
ln -s ${llvm}/bin/llvm-nm $out/bin/${prefix}nm
|
||||
ln -s ${llvm}/bin/llvm-objcopy $out/bin/${prefix}objcopy
|
||||
ln -s ${llvm}/bin/llvm-objdump $out/bin/${prefix}objdump
|
||||
ln -s ${llvm}/bin/llvm-ranlib $out/bin/${prefix}ranlib
|
||||
ln -s ${llvm}/bin/llvm-readelf $out/bin/${prefix}readelf
|
||||
ln -s ${llvm}/bin/llvm-size $out/bin/${prefix}size
|
||||
ln -s ${llvm}/bin/llvm-strip $out/bin/${prefix}strip
|
||||
|
||||
ln -s ${lld}/bin/lld $out/bin/${prefix}ld
|
||||
''
|
117
pkgs/development/compilers/llvm/11/clang/default.nix
Normal file
117
pkgs/development/compilers/llvm/11/clang/default.nix
Normal file
@ -0,0 +1,117 @@
|
||||
{ stdenv, fetch, cmake, libxml2, llvm, version, clang-tools-extra_src, python3, lld
|
||||
, fixDarwinDylibNames
|
||||
, enableManpages ? false
|
||||
}:
|
||||
|
||||
let
|
||||
self = stdenv.mkDerivation ({
|
||||
pname = "clang";
|
||||
inherit version;
|
||||
|
||||
src = fetch "clang" "18rv5nxk04fgk4ziix7z4s2cargdpqgvqrk3lnp3wvd6yb5g5p98";
|
||||
|
||||
unpackPhase = ''
|
||||
unpackFile $src
|
||||
mv clang-${version}* clang
|
||||
sourceRoot=$PWD/clang
|
||||
unpackFile ${clang-tools-extra_src}
|
||||
mv clang-tools-extra-* $sourceRoot/tools/extra
|
||||
'';
|
||||
|
||||
nativeBuildInputs = [ cmake python3 lld ]
|
||||
++ stdenv.lib.optional enableManpages python3.pkgs.sphinx;
|
||||
|
||||
buildInputs = [ libxml2 llvm ]
|
||||
++ stdenv.lib.optional stdenv.isDarwin fixDarwinDylibNames;
|
||||
|
||||
cmakeFlags = [
|
||||
"-DCMAKE_CXX_FLAGS=-std=c++14"
|
||||
"-DCLANGD_BUILD_XPC=OFF"
|
||||
] ++ stdenv.lib.optionals enableManpages [
|
||||
"-DCLANG_INCLUDE_DOCS=ON"
|
||||
"-DLLVM_ENABLE_SPHINX=ON"
|
||||
"-DSPHINX_OUTPUT_MAN=ON"
|
||||
"-DSPHINX_OUTPUT_HTML=OFF"
|
||||
"-DSPHINX_WARNINGS_AS_ERRORS=OFF"
|
||||
];
|
||||
|
||||
patches = [
|
||||
./purity.patch
|
||||
# https://reviews.llvm.org/D51899
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
sed -i -e 's/DriverArgs.hasArg(options::OPT_nostdlibinc)/true/' \
|
||||
-e 's/Args.hasArg(options::OPT_nostdlibinc)/true/' \
|
||||
lib/Driver/ToolChains/*.cpp
|
||||
|
||||
# Patch for standalone doc building
|
||||
sed -i '1s,^,find_package(Sphinx REQUIRED)\n,' docs/CMakeLists.txt
|
||||
'' + stdenv.lib.optionalString stdenv.hostPlatform.isMusl ''
|
||||
sed -i -e 's/lgcc_s/lgcc_eh/' lib/Driver/ToolChains/*.cpp
|
||||
'' + stdenv.lib.optionalString stdenv.hostPlatform.isDarwin ''
|
||||
substituteInPlace tools/extra/clangd/CMakeLists.txt \
|
||||
--replace "NOT HAVE_CXX_ATOMICS64_WITHOUT_LIB" FALSE
|
||||
'';
|
||||
|
||||
outputs = [ "out" "lib" "python" ];
|
||||
|
||||
# Clang expects to find LLVMgold in its own prefix
|
||||
postInstall = ''
|
||||
if [ -e ${llvm}/lib/LLVMgold.so ]; then
|
||||
ln -sv ${llvm}/lib/LLVMgold.so $out/lib
|
||||
fi
|
||||
|
||||
ln -sv $out/bin/clang $out/bin/cpp
|
||||
|
||||
# Move libclang to 'lib' output
|
||||
moveToOutput "lib/libclang.*" "$lib"
|
||||
moveToOutput "lib/libclang-cpp.*" "$lib"
|
||||
substituteInPlace $out/lib/cmake/clang/ClangTargets-release.cmake \
|
||||
--replace "\''${_IMPORT_PREFIX}/lib/libclang." "$lib/lib/libclang." \
|
||||
--replace "\''${_IMPORT_PREFIX}/lib/libclang-cpp." "$lib/lib/libclang-cpp."
|
||||
|
||||
mkdir -p $python/bin $python/share/clang/
|
||||
mv $out/bin/{git-clang-format,scan-view} $python/bin
|
||||
if [ -e $out/bin/set-xcode-analyzer ]; then
|
||||
mv $out/bin/set-xcode-analyzer $python/bin
|
||||
fi
|
||||
mv $out/share/clang/*.py $python/share/clang
|
||||
rm $out/bin/c-index-test
|
||||
'';
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
passthru = {
|
||||
isClang = true;
|
||||
inherit llvm;
|
||||
} // stdenv.lib.optionalAttrs (stdenv.targetPlatform.isLinux || (stdenv.cc.isGNU && stdenv.cc.cc ? gcc)) {
|
||||
gcc = if stdenv.cc.isGNU then stdenv.cc.cc else stdenv.cc.cc.gcc;
|
||||
};
|
||||
|
||||
meta = {
|
||||
description = "A c, c++, objective-c, and objective-c++ frontend for the llvm compiler";
|
||||
homepage = "https://llvm.org/";
|
||||
license = stdenv.lib.licenses.ncsa;
|
||||
platforms = stdenv.lib.platforms.all;
|
||||
};
|
||||
} // stdenv.lib.optionalAttrs enableManpages {
|
||||
pname = "clang-manpages";
|
||||
|
||||
buildPhase = ''
|
||||
make docs-clang-man
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p $out/share/man/man1
|
||||
# Manually install clang manpage
|
||||
cp docs/man/*.1 $out/share/man/man1/
|
||||
'';
|
||||
|
||||
outputs = [ "out" ];
|
||||
|
||||
doCheck = false;
|
||||
|
||||
meta.description = "man page for Clang ${version}";
|
||||
});
|
||||
in self
|
28
pkgs/development/compilers/llvm/11/clang/purity.patch
Normal file
28
pkgs/development/compilers/llvm/11/clang/purity.patch
Normal file
@ -0,0 +1,28 @@
|
||||
From 4add81bba40dcec62c4ea4481be8e35ac53e89d8 Mon Sep 17 00:00:00 2001
|
||||
From: Will Dietz <w@wdtz.org>
|
||||
Date: Thu, 18 May 2017 11:56:12 -0500
|
||||
Subject: [PATCH] "purity" patch for 5.0
|
||||
|
||||
---
|
||||
lib/Driver/ToolChains/Gnu.cpp | 7 -------
|
||||
1 file changed, 7 deletions(-)
|
||||
|
||||
diff --git a/lib/Driver/ToolChains/Gnu.cpp b/lib/Driver/ToolChains/Gnu.cpp
|
||||
index fe3c0191bb..c6a482bece 100644
|
||||
--- a/lib/Driver/ToolChains/Gnu.cpp
|
||||
+++ b/lib/Driver/ToolChains/Gnu.cpp
|
||||
@@ -487,12 +487,6 @@ void tools::gnutools::Linker::ConstructJob(Compilation &C, const JobAction &JA,
|
||||
if (!IsStatic) {
|
||||
if (Args.hasArg(options::OPT_rdynamic))
|
||||
CmdArgs.push_back("-export-dynamic");
|
||||
-
|
||||
- if (!Args.hasArg(options::OPT_shared) && !IsStaticPIE) {
|
||||
- CmdArgs.push_back("-dynamic-linker");
|
||||
- CmdArgs.push_back(Args.MakeArgString(Twine(D.DyldPrefix) +
|
||||
- ToolChain.getDynamicLinker(Args)));
|
||||
- }
|
||||
}
|
||||
|
||||
CmdArgs.push_back("-o");
|
||||
--
|
||||
2.11.0
|
32
pkgs/development/compilers/llvm/11/compiler-rt-armv7l.patch
Normal file
32
pkgs/development/compilers/llvm/11/compiler-rt-armv7l.patch
Normal file
@ -0,0 +1,32 @@
|
||||
diff -ur compiler-rt-10.0.0.src/cmake/builtin-config-ix.cmake compiler-rt-10.0.0.src-patched/cmake/builtin-config-ix.cmake
|
||||
--- compiler-rt-10.0.0.src/cmake/builtin-config-ix.cmake 2020-03-24 00:01:02.000000000 +0900
|
||||
+++ compiler-rt-10.0.0.src-patched/cmake/builtin-config-ix.cmake 2020-05-10 03:42:00.883450706 +0900
|
||||
@@ -24,7 +24,7 @@
|
||||
|
||||
|
||||
set(ARM64 aarch64)
|
||||
-set(ARM32 arm armhf armv6m armv7m armv7em armv7 armv7s armv7k)
|
||||
+set(ARM32 arm armhf armv6m armv7m armv7em armv7 armv7s armv7k armv7l)
|
||||
set(HEXAGON hexagon)
|
||||
set(X86 i386)
|
||||
set(X86_64 x86_64)
|
||||
diff -ur compiler-rt-10.0.0.src/lib/builtins/CMakeLists.txt compiler-rt-10.0.0.src-patched/lib/builtins/CMakeLists.txt
|
||||
--- compiler-rt-10.0.0.src/lib/builtins/CMakeLists.txt 2020-03-24 00:01:02.000000000 +0900
|
||||
+++ compiler-rt-10.0.0.src-patched/lib/builtins/CMakeLists.txt 2020-05-10 03:44:49.468579650 +0900
|
||||
@@ -474,6 +474,7 @@
|
||||
set(armv7_SOURCES ${arm_SOURCES})
|
||||
set(armv7s_SOURCES ${arm_SOURCES})
|
||||
set(armv7k_SOURCES ${arm_SOURCES})
|
||||
+set(armv7l_SOURCES ${arm_SOURCES})
|
||||
set(arm64_SOURCES ${aarch64_SOURCES})
|
||||
|
||||
# macho_embedded archs
|
||||
@@ -595,7 +596,7 @@
|
||||
foreach (arch ${BUILTIN_SUPPORTED_ARCH})
|
||||
if (CAN_TARGET_${arch})
|
||||
# For ARM archs, exclude any VFP builtins if VFP is not supported
|
||||
- if (${arch} MATCHES "^(arm|armhf|armv7|armv7s|armv7k|armv7m|armv7em)$")
|
||||
+ if (${arch} MATCHES "^(arm|armhf|armv7|armv7s|armv7k|armv7l|armv7m|armv7em)$")
|
||||
string(REPLACE ";" " " _TARGET_${arch}_CFLAGS "${TARGET_${arch}_CFLAGS}")
|
||||
check_compile_definition(__VFP_FP__ "${CMAKE_C_FLAGS} ${_TARGET_${arch}_CFLAGS}" COMPILER_RT_HAS_${arch}_VFP)
|
||||
if(NOT COMPILER_RT_HAS_${arch}_VFP)
|
@ -0,0 +1,33 @@
|
||||
From 3dec5f3475a26aeb4678627795c4b67c6b7b4785 Mon Sep 17 00:00:00 2001
|
||||
From: Will Dietz <w@wdtz.org>
|
||||
Date: Tue, 19 Sep 2017 13:13:06 -0500
|
||||
Subject: [PATCH] remove codesign use on Apple, disable ios sim testing that
|
||||
needs it
|
||||
|
||||
---
|
||||
cmake/Modules/AddCompilerRT.cmake | 8 ------
|
||||
test/asan/CMakeLists.txt | 52 ---------------------------------------
|
||||
test/tsan/CMakeLists.txt | 47 -----------------------------------
|
||||
3 files changed, 107 deletions(-)
|
||||
|
||||
diff --git a/cmake/Modules/AddCompilerRT.cmake b/cmake/Modules/AddCompilerRT.cmake
|
||||
index bc5fb9ff7..b64eb4246 100644
|
||||
--- a/cmake/Modules/AddCompilerRT.cmake
|
||||
+++ b/cmake/Modules/AddCompilerRT.cmake
|
||||
@@ -210,14 +210,6 @@ function(add_compiler_rt_runtime name type)
|
||||
set_target_properties(${libname} PROPERTIES IMPORT_PREFIX "")
|
||||
set_target_properties(${libname} PROPERTIES IMPORT_SUFFIX ".lib")
|
||||
endif()
|
||||
- if(APPLE)
|
||||
- # Ad-hoc sign the dylibs
|
||||
- add_custom_command(TARGET ${libname}
|
||||
- POST_BUILD
|
||||
- COMMAND codesign --sign - $<TARGET_FILE:${libname}>
|
||||
- WORKING_DIRECTORY ${COMPILER_RT_LIBRARY_OUTPUT_DIR}
|
||||
- )
|
||||
- endif()
|
||||
endif()
|
||||
install(TARGETS ${libname}
|
||||
ARCHIVE DESTINATION ${COMPILER_RT_LIBRARY_INSTALL_DIR}
|
||||
2.14.1
|
||||
|
85
pkgs/development/compilers/llvm/11/compiler-rt.nix
Normal file
85
pkgs/development/compilers/llvm/11/compiler-rt.nix
Normal file
@ -0,0 +1,85 @@
|
||||
{ stdenv, version, fetch, cmake, python3, llvm, libcxxabi }:
|
||||
|
||||
let
|
||||
|
||||
useLLVM = stdenv.hostPlatform.useLLVM or false;
|
||||
bareMetal = stdenv.hostPlatform.parsed.kernel.name == "none";
|
||||
inherit (stdenv.hostPlatform) isMusl;
|
||||
|
||||
in
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "compiler-rt";
|
||||
inherit version;
|
||||
src = fetch pname "0qfgap6acxffm01hzk38pmzq8ac3isk90531dz0qf7fd5015jvvg";
|
||||
|
||||
nativeBuildInputs = [ cmake python3 llvm ];
|
||||
buildInputs = stdenv.lib.optional stdenv.hostPlatform.isDarwin libcxxabi;
|
||||
|
||||
NIX_CFLAGS_COMPILE = [
|
||||
"-DSCUDO_DEFAULT_OPTIONS=DeleteSizeMismatch=0:DeallocationTypeMismatch=0"
|
||||
];
|
||||
|
||||
cmakeFlags = [
|
||||
"-DCOMPILER_RT_DEFAULT_TARGET_ONLY=ON"
|
||||
"-DCMAKE_C_COMPILER_TARGET=${stdenv.hostPlatform.config}"
|
||||
"-DCMAKE_ASM_COMPILER_TARGET=${stdenv.hostPlatform.config}"
|
||||
] ++ stdenv.lib.optionals (useLLVM || bareMetal || isMusl) [
|
||||
"-DCOMPILER_RT_BUILD_SANITIZERS=OFF"
|
||||
"-DCOMPILER_RT_BUILD_XRAY=OFF"
|
||||
"-DCOMPILER_RT_BUILD_LIBFUZZER=OFF"
|
||||
"-DCOMPILER_RT_BUILD_PROFILE=OFF"
|
||||
] ++ stdenv.lib.optionals (useLLVM || bareMetal) [
|
||||
"-DCMAKE_C_COMPILER_WORKS=ON"
|
||||
"-DCMAKE_CXX_COMPILER_WORKS=ON"
|
||||
"-DCOMPILER_RT_BAREMETAL_BUILD=ON"
|
||||
"-DCMAKE_SIZEOF_VOID_P=${toString (stdenv.hostPlatform.parsed.cpu.bits / 8)}"
|
||||
] ++ stdenv.lib.optionals (useLLVM) [
|
||||
"-DCOMPILER_RT_BUILD_BUILTINS=ON"
|
||||
"-DCMAKE_C_FLAGS=-nodefaultlibs"
|
||||
#https://stackoverflow.com/questions/53633705/cmake-the-c-compiler-is-not-able-to-compile-a-simple-test-program
|
||||
"-DCMAKE_TRY_COMPILE_TARGET_TYPE=STATIC_LIBRARY"
|
||||
] ++ stdenv.lib.optionals (bareMetal) [
|
||||
"-DCOMPILER_RT_OS_DIR=baremetal"
|
||||
];
|
||||
|
||||
outputs = [ "out" "dev" ];
|
||||
|
||||
patches = [
|
||||
./compiler-rt-codesign.patch # Revert compiler-rt commit that makes codesign mandatory
|
||||
]# ++ stdenv.lib.optional stdenv.hostPlatform.isMusl ./sanitizers-nongnu.patch
|
||||
++ stdenv.lib.optional stdenv.hostPlatform.isAarch32 ./compiler-rt-armv7l.patch;
|
||||
|
||||
|
||||
# TSAN requires XPC on Darwin, which we have no public/free source files for. We can depend on the Apple frameworks
|
||||
# to get it, but they're unfree. Since LLVM is rather central to the stdenv, we patch out TSAN support so that Hydra
|
||||
# can build this. If we didn't do it, basically the entire nixpkgs on Darwin would have an unfree dependency and we'd
|
||||
# get no binary cache for the entire platform. If you really find yourself wanting the TSAN, make this controllable by
|
||||
# a flag and turn the flag off during the stdenv build.
|
||||
postPatch = stdenv.lib.optionalString (!stdenv.isDarwin) ''
|
||||
substituteInPlace cmake/builtin-config-ix.cmake \
|
||||
--replace 'set(X86 i386)' 'set(X86 i386 i486 i586 i686)'
|
||||
'' + stdenv.lib.optionalString stdenv.isDarwin ''
|
||||
substituteInPlace cmake/config-ix.cmake \
|
||||
--replace 'set(COMPILER_RT_HAS_TSAN TRUE)' 'set(COMPILER_RT_HAS_TSAN FALSE)'
|
||||
'' + stdenv.lib.optionalString (useLLVM) ''
|
||||
substituteInPlace lib/builtins/int_util.c \
|
||||
--replace "#include <stdlib.h>" ""
|
||||
substituteInPlace lib/builtins/clear_cache.c \
|
||||
--replace "#include <assert.h>" ""
|
||||
substituteInPlace lib/builtins/cpu_model.c \
|
||||
--replace "#include <assert.h>" ""
|
||||
'';
|
||||
|
||||
# Hack around weird upsream RPATH bug
|
||||
postInstall = stdenv.lib.optionalString (stdenv.hostPlatform.isDarwin || stdenv.hostPlatform.isWasm) ''
|
||||
ln -s "$out/lib"/*/* "$out/lib"
|
||||
'' + stdenv.lib.optionalString (useLLVM) ''
|
||||
ln -s $out/lib/*/clang_rt.crtbegin-*.o $out/lib/crtbegin.o
|
||||
ln -s $out/lib/*/clang_rt.crtend-*.o $out/lib/crtend.o
|
||||
ln -s $out/lib/*/clang_rt.crtbegin_shared-*.o $out/lib/crtbeginS.o
|
||||
ln -s $out/lib/*/clang_rt.crtend_shared-*.o $out/lib/crtendS.o
|
||||
'';
|
||||
|
||||
enableParallelBuilding = true;
|
||||
}
|
195
pkgs/development/compilers/llvm/11/default.nix
Normal file
195
pkgs/development/compilers/llvm/11/default.nix
Normal file
@ -0,0 +1,195 @@
|
||||
{ lowPrio, newScope, pkgs, stdenv, cmake
|
||||
, libxml2, python3, isl, fetchurl, overrideCC, wrapCCWith, wrapBintoolsWith
|
||||
, buildLlvmTools # tools, but from the previous stage, for cross
|
||||
, targetLlvmLibraries # libraries, but from the next stage, for cross
|
||||
}:
|
||||
|
||||
let
|
||||
release_version = "11.0.0";
|
||||
candidate = "rc2";
|
||||
version = "${release_version}${candidate}"; # differentiating these (variables) is important for RCs
|
||||
targetConfig = stdenv.targetPlatform.config;
|
||||
|
||||
fetch = name: sha256: fetchurl {
|
||||
url = "https://github.com/llvm/llvm-project/releases/download/llvmorg-${release_version}-${candidate}/${name}-${version}.src.tar.xz";
|
||||
inherit sha256;
|
||||
};
|
||||
|
||||
clang-tools-extra_src = fetch "clang-tools-extra" "0bg2a9nmkdbj5qfd0vvqj8bgchcx1yzmylxxgvh8y5hhj4fz13fs";
|
||||
|
||||
tools = stdenv.lib.makeExtensible (tools: let
|
||||
callPackage = newScope (tools // { inherit stdenv cmake libxml2 python3 isl release_version version fetch; });
|
||||
mkExtraBuildCommands = cc: ''
|
||||
rsrc="$out/resource-root"
|
||||
mkdir "$rsrc"
|
||||
ln -s "${cc}/lib/clang/${release_version}/include" "$rsrc"
|
||||
ln -s "${targetLlvmLibraries.compiler-rt.out}/lib" "$rsrc/lib"
|
||||
echo "-resource-dir=$rsrc" >> $out/nix-support/cc-cflags
|
||||
'' + stdenv.lib.optionalString (stdenv.targetPlatform.isLinux && tools.clang-unwrapped ? gcc && !(stdenv.targetPlatform.useLLVM or false)) ''
|
||||
echo "--gcc-toolchain=${tools.clang-unwrapped.gcc}" >> $out/nix-support/cc-cflags
|
||||
'';
|
||||
in {
|
||||
|
||||
llvm = callPackage ./llvm.nix { };
|
||||
|
||||
clang-unwrapped = callPackage ./clang {
|
||||
inherit (tools) lld;
|
||||
inherit clang-tools-extra_src;
|
||||
};
|
||||
|
||||
# disabled until recommonmark supports sphinx 3
|
||||
#Llvm-manpages = lowPrio (tools.llvm.override {
|
||||
# enableManpages = true;
|
||||
# python3 = pkgs.python3; # don't use python-boot
|
||||
#});
|
||||
|
||||
clang-manpages = lowPrio (tools.clang-unwrapped.override {
|
||||
enableManpages = true;
|
||||
python3 = pkgs.python3; # don't use python-boot
|
||||
});
|
||||
|
||||
# disabled until recommonmark supports sphinx 3
|
||||
# lldb-manpages = lowPrio (tools.lldb.override {
|
||||
# enableManpages = true;
|
||||
# python3 = pkgs.python3; # don't use python-boot
|
||||
# });
|
||||
|
||||
libclang = tools.clang-unwrapped.lib;
|
||||
|
||||
clang = if stdenv.cc.isGNU then tools.libstdcxxClang else tools.libcxxClang;
|
||||
|
||||
libstdcxxClang = wrapCCWith rec {
|
||||
cc = tools.clang-unwrapped;
|
||||
libcxx = null; # libstdcxx is smuggled in with clang.gcc
|
||||
extraPackages = [
|
||||
targetLlvmLibraries.compiler-rt
|
||||
];
|
||||
extraBuildCommands = mkExtraBuildCommands cc;
|
||||
};
|
||||
|
||||
libcxxClang = wrapCCWith rec {
|
||||
cc = tools.clang-unwrapped;
|
||||
libcxx = targetLlvmLibraries.libcxx;
|
||||
extraPackages = [
|
||||
targetLlvmLibraries.libcxxabi
|
||||
targetLlvmLibraries.compiler-rt
|
||||
];
|
||||
extraBuildCommands = mkExtraBuildCommands cc;
|
||||
};
|
||||
|
||||
lld = callPackage ./lld.nix {};
|
||||
|
||||
lldb = callPackage ./lldb.nix {};
|
||||
|
||||
# Below, is the LLVM bootstrapping logic. It handles building a
|
||||
# fully LLVM toolchain from scratch. No GCC toolchain should be
|
||||
# pulled in. As a consequence, it is very quick to build different
|
||||
# targets provided by LLVM and we can also build for what GCC
|
||||
# doesn’t support like LLVM. Probably we should move to some other
|
||||
# file.
|
||||
|
||||
bintools = callPackage ./bintools.nix {};
|
||||
|
||||
lldClang = wrapCCWith rec {
|
||||
cc = tools.clang-unwrapped;
|
||||
libcxx = targetLlvmLibraries.libcxx;
|
||||
bintools = wrapBintoolsWith {
|
||||
inherit (tools) bintools;
|
||||
};
|
||||
extraPackages = [
|
||||
targetLlvmLibraries.libcxxabi
|
||||
targetLlvmLibraries.compiler-rt
|
||||
] ++ stdenv.lib.optionals (!stdenv.targetPlatform.isWasm) [
|
||||
targetLlvmLibraries.libunwind
|
||||
];
|
||||
extraBuildCommands = ''
|
||||
echo "-rtlib=compiler-rt -Wno-unused-command-line-argument" >> $out/nix-support/cc-cflags
|
||||
echo "-B${targetLlvmLibraries.compiler-rt}/lib" >> $out/nix-support/cc-cflags
|
||||
'' + stdenv.lib.optionalString (!stdenv.targetPlatform.isWasm) ''
|
||||
echo "--unwindlib=libunwind" >> $out/nix-support/cc-cflags
|
||||
'' + stdenv.lib.optionalString stdenv.targetPlatform.isWasm ''
|
||||
echo "-fno-exceptions" >> $out/nix-support/cc-cflags
|
||||
'' + mkExtraBuildCommands cc;
|
||||
};
|
||||
|
||||
lldClangNoLibcxx = wrapCCWith rec {
|
||||
cc = tools.clang-unwrapped;
|
||||
libcxx = null;
|
||||
bintools = wrapBintoolsWith {
|
||||
inherit (tools) bintools;
|
||||
};
|
||||
extraPackages = [
|
||||
targetLlvmLibraries.compiler-rt
|
||||
];
|
||||
extraBuildCommands = ''
|
||||
echo "-rtlib=compiler-rt" >> $out/nix-support/cc-cflags
|
||||
echo "-B${targetLlvmLibraries.compiler-rt}/lib" >> $out/nix-support/cc-cflags
|
||||
echo "-nostdlib++" >> $out/nix-support/cc-cflags
|
||||
'' + mkExtraBuildCommands cc;
|
||||
};
|
||||
|
||||
lldClangNoLibc = wrapCCWith rec {
|
||||
cc = tools.clang-unwrapped;
|
||||
libcxx = null;
|
||||
bintools = wrapBintoolsWith {
|
||||
inherit (tools) bintools;
|
||||
libc = null;
|
||||
};
|
||||
extraPackages = [
|
||||
targetLlvmLibraries.compiler-rt
|
||||
];
|
||||
extraBuildCommands = ''
|
||||
echo "-rtlib=compiler-rt" >> $out/nix-support/cc-cflags
|
||||
echo "-B${targetLlvmLibraries.compiler-rt}/lib" >> $out/nix-support/cc-cflags
|
||||
'' + mkExtraBuildCommands cc;
|
||||
};
|
||||
|
||||
lldClangNoCompilerRt = wrapCCWith {
|
||||
cc = tools.clang-unwrapped;
|
||||
libcxx = null;
|
||||
bintools = wrapBintoolsWith {
|
||||
inherit (tools) bintools;
|
||||
libc = null;
|
||||
};
|
||||
extraPackages = [ ];
|
||||
extraBuildCommands = ''
|
||||
echo "-nostartfiles" >> $out/nix-support/cc-cflags
|
||||
'';
|
||||
};
|
||||
|
||||
});
|
||||
|
||||
libraries = stdenv.lib.makeExtensible (libraries: let
|
||||
callPackage = newScope (libraries // buildLlvmTools // { inherit stdenv cmake libxml2 python3 isl release_version version fetch; });
|
||||
in {
|
||||
|
||||
compiler-rt = callPackage ./compiler-rt.nix ({} //
|
||||
(stdenv.lib.optionalAttrs (stdenv.hostPlatform.useLLVM or false) {
|
||||
stdenv = overrideCC stdenv buildLlvmTools.lldClangNoCompilerRt;
|
||||
}));
|
||||
|
||||
stdenv = overrideCC stdenv buildLlvmTools.clang;
|
||||
|
||||
libcxxStdenv = overrideCC stdenv buildLlvmTools.libcxxClang;
|
||||
|
||||
libcxx = callPackage ./libc++ ({} //
|
||||
(stdenv.lib.optionalAttrs (stdenv.hostPlatform.useLLVM or false) {
|
||||
stdenv = overrideCC stdenv buildLlvmTools.lldClangNoLibcxx;
|
||||
}));
|
||||
|
||||
libcxxabi = callPackage ./libc++abi.nix ({} //
|
||||
(stdenv.lib.optionalAttrs (stdenv.hostPlatform.useLLVM or false) {
|
||||
stdenv = overrideCC stdenv buildLlvmTools.lldClangNoLibcxx;
|
||||
libunwind = libraries.libunwind;
|
||||
}));
|
||||
|
||||
openmp = callPackage ./openmp.nix {};
|
||||
|
||||
libunwind = callPackage ./libunwind.nix ({} //
|
||||
(stdenv.lib.optionalAttrs (stdenv.hostPlatform.useLLVM or false) {
|
||||
stdenv = overrideCC stdenv buildLlvmTools.lldClangNoLibcxx;
|
||||
}));
|
||||
|
||||
});
|
||||
|
||||
in { inherit tools libraries; } // libraries // tools
|
52
pkgs/development/compilers/llvm/11/libc++/default.nix
Normal file
52
pkgs/development/compilers/llvm/11/libc++/default.nix
Normal file
@ -0,0 +1,52 @@
|
||||
{ lib, stdenv, fetch, cmake, python3, libcxxabi, fixDarwinDylibNames, version
|
||||
, enableShared ? true }:
|
||||
|
||||
stdenv.mkDerivation {
|
||||
pname = "libc++";
|
||||
inherit version;
|
||||
|
||||
src = fetch "libcxx" "0aaci7iblfczv1jb22zjrwzxcrcx6x7klvjivmxm2zni0n2x3bd4";
|
||||
|
||||
postUnpack = ''
|
||||
unpackFile ${libcxxabi.src}
|
||||
export LIBCXXABI_INCLUDE_DIR="$PWD/$(ls -d libcxxabi-${version}*)/include"
|
||||
'';
|
||||
|
||||
patches = stdenv.lib.optional stdenv.hostPlatform.isMusl ../../libcxx-0001-musl-hacks.patch;
|
||||
|
||||
preConfigure = ''
|
||||
# Get headers from the cxxabi source so we can see private headers not installed by the cxxabi package
|
||||
cmakeFlagsArray=($cmakeFlagsArray -DLIBCXX_CXX_ABI_INCLUDE_PATHS="$LIBCXXABI_INCLUDE_DIR")
|
||||
'' + lib.optionalString stdenv.hostPlatform.isMusl ''
|
||||
patchShebangs utils/cat_files.py
|
||||
'';
|
||||
nativeBuildInputs = [ cmake ]
|
||||
++ stdenv.lib.optional (stdenv.hostPlatform.isMusl || stdenv.hostPlatform.isWasi) python3;
|
||||
|
||||
buildInputs = [ libcxxabi ] ++ lib.optional stdenv.isDarwin fixDarwinDylibNames;
|
||||
|
||||
cmakeFlags = [
|
||||
"-DLIBCXX_LIBCXXABI_LIB_PATH=${libcxxabi}/lib"
|
||||
"-DLIBCXX_LIBCPPABI_VERSION=2"
|
||||
"-DLIBCXX_CXX_ABI=libcxxabi"
|
||||
] ++ stdenv.lib.optional (stdenv.hostPlatform.isMusl || stdenv.hostPlatform.isWasi) "-DLIBCXX_HAS_MUSL_LIBC=1"
|
||||
++ stdenv.lib.optional (stdenv.hostPlatform.useLLVM or false) "-DLIBCXX_USE_COMPILER_RT=ON"
|
||||
++ stdenv.lib.optional stdenv.hostPlatform.isWasm [
|
||||
"-DLIBCXX_ENABLE_THREADS=OFF"
|
||||
"-DLIBCXX_ENABLE_FILESYSTEM=OFF"
|
||||
"-DLIBCXX_ENABLE_EXCEPTIONS=OFF"
|
||||
] ++ stdenv.lib.optional (!enableShared) "-DLIBCXX_ENABLE_SHARED=OFF";
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
passthru = {
|
||||
isLLVM = true;
|
||||
};
|
||||
|
||||
meta = {
|
||||
homepage = "https://libcxx.llvm.org/";
|
||||
description = "A new implementation of the C++ standard library, targeting C++11";
|
||||
license = with stdenv.lib.licenses; [ ncsa mit ];
|
||||
platforms = stdenv.lib.platforms.all;
|
||||
};
|
||||
}
|
67
pkgs/development/compilers/llvm/11/libc++abi.nix
Normal file
67
pkgs/development/compilers/llvm/11/libc++abi.nix
Normal file
@ -0,0 +1,67 @@
|
||||
{ stdenv, cmake, fetch, libcxx, libunwind, llvm, version
|
||||
, enableShared ? true }:
|
||||
|
||||
stdenv.mkDerivation {
|
||||
pname = "libc++abi";
|
||||
inherit version;
|
||||
|
||||
src = fetch "libcxxabi" "04gqdzs13sw7f7a06h5zm5917d9f1k79l4rcm096grgvf0r7lnqx";
|
||||
|
||||
nativeBuildInputs = [ cmake ];
|
||||
buildInputs = stdenv.lib.optional (!stdenv.isDarwin && !stdenv.isFreeBSD && !stdenv.hostPlatform.isWasm) libunwind;
|
||||
|
||||
cmakeFlags = stdenv.lib.optionals (stdenv.hostPlatform.useLLVM or false) [
|
||||
"-DLLVM_ENABLE_LIBCXX=ON"
|
||||
"-DLIBCXXABI_USE_LLVM_UNWINDER=ON"
|
||||
] ++ stdenv.lib.optionals stdenv.hostPlatform.isWasm [
|
||||
"-DLIBCXXABI_ENABLE_THREADS=OFF"
|
||||
"-DLIBCXXABI_ENABLE_EXCEPTIONS=OFF"
|
||||
] ++ stdenv.lib.optionals (!enableShared) [
|
||||
"-DLIBCXXABI_ENABLE_SHARED=OFF"
|
||||
];
|
||||
|
||||
patches = [ ./libcxxabi-no-threads.patch ];
|
||||
|
||||
postUnpack = ''
|
||||
unpackFile ${libcxx.src}
|
||||
unpackFile ${llvm.src}
|
||||
cmakeFlags+=" -DLLVM_PATH=$PWD/$(ls -d llvm-*) -DLIBCXXABI_LIBCXX_PATH=$PWD/$(ls -d libcxx-*)"
|
||||
'' + stdenv.lib.optionalString stdenv.isDarwin ''
|
||||
export TRIPLE=x86_64-apple-darwin
|
||||
'' + stdenv.lib.optionalString stdenv.hostPlatform.isMusl ''
|
||||
patch -p1 -d $(ls -d libcxx-*) -i ${../libcxx-0001-musl-hacks.patch}
|
||||
'' + stdenv.lib.optionalString stdenv.hostPlatform.isWasm ''
|
||||
patch -p1 -d $(ls -d llvm-*) -i ${./libcxxabi-wasm.patch}
|
||||
'';
|
||||
|
||||
installPhase = if stdenv.isDarwin
|
||||
then ''
|
||||
for file in lib/*.dylib; do
|
||||
# this should be done in CMake, but having trouble figuring out
|
||||
# the magic combination of necessary CMake variables
|
||||
# if you fancy a try, take a look at
|
||||
# https://gitlab.kitware.com/cmake/community/-/wikis/doc/cmake/RPATH-handling
|
||||
install_name_tool -id $out/$file $file
|
||||
done
|
||||
make install
|
||||
install -d 755 $out/include
|
||||
install -m 644 ../include/*.h $out/include
|
||||
''
|
||||
else ''
|
||||
install -d -m 755 $out/include $out/lib
|
||||
install -m 644 lib/libc++abi.a $out/lib
|
||||
install -m 644 ../include/cxxabi.h $out/include
|
||||
'' + stdenv.lib.optionalString enableShared ''
|
||||
install -m 644 lib/libc++abi.so.1.0 $out/lib
|
||||
ln -s libc++abi.so.1.0 $out/lib/libc++abi.so
|
||||
ln -s libc++abi.so.1.0 $out/lib/libc++abi.so.1
|
||||
'';
|
||||
|
||||
meta = {
|
||||
homepage = "https://libcxxabi.llvm.org/";
|
||||
description = "A new implementation of low level support for a standard C++ library";
|
||||
license = with stdenv.lib.licenses; [ ncsa mit ];
|
||||
maintainers = with stdenv.lib.maintainers; [ vlstill ];
|
||||
platforms = stdenv.lib.platforms.all;
|
||||
};
|
||||
}
|
@ -0,0 +1,12 @@
|
||||
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
||||
index 4138acf..41b4763 100644
|
||||
--- a/CMakeLists.txt
|
||||
+++ b/CMakeLists.txt
|
||||
@@ -362,6 +362,7 @@ if (NOT LIBCXXABI_ENABLE_THREADS)
|
||||
" is also set to ON.")
|
||||
endif()
|
||||
add_definitions(-D_LIBCXXABI_HAS_NO_THREADS)
|
||||
+ add_definitions(-D_LIBCPP_HAS_NO_THREADS)
|
||||
endif()
|
||||
|
||||
if (LIBCXXABI_HAS_EXTERNAL_THREAD_API)
|
16
pkgs/development/compilers/llvm/11/libcxxabi-wasm.patch
Normal file
16
pkgs/development/compilers/llvm/11/libcxxabi-wasm.patch
Normal file
@ -0,0 +1,16 @@
|
||||
diff --git a/cmake/modules/HandleLLVMOptions.cmake b/cmake/modules/HandleLLVMOptions.cmake
|
||||
index 15497d405e0..33f7f18193a 100644
|
||||
--- a/cmake/modules/HandleLLVMOptions.cmake
|
||||
+++ b/cmake/modules/HandleLLVMOptions.cmake
|
||||
@@ -127,7 +127,10 @@ else(WIN32)
|
||||
set(LLVM_HAVE_LINK_VERSION_SCRIPT 1)
|
||||
endif()
|
||||
else(FUCHSIA OR UNIX)
|
||||
- MESSAGE(SEND_ERROR "Unable to determine platform")
|
||||
+ if(${CMAKE_SYSTEM_NAME} MATCHES "Wasi")
|
||||
+ else()
|
||||
+ MESSAGE(SEND_ERROR "Unable to determine platform")
|
||||
+ endif()
|
||||
endif(FUCHSIA OR UNIX)
|
||||
endif(WIN32)
|
||||
|
14
pkgs/development/compilers/llvm/11/libunwind.nix
Normal file
14
pkgs/development/compilers/llvm/11/libunwind.nix
Normal file
@ -0,0 +1,14 @@
|
||||
{ stdenv, version, fetch, cmake, fetchpatch, enableShared ? true }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "libunwind";
|
||||
inherit version;
|
||||
|
||||
src = fetch pname "1ch4a2yp821lgzxh9898f7nw2fnkrn3wh25sqg05hlks45znv30y";
|
||||
|
||||
nativeBuildInputs = [ cmake ];
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
cmakeFlags = stdenv.lib.optional (!enableShared) "-DLIBUNWIND_ENABLE_SHARED=OFF";
|
||||
}
|
33
pkgs/development/compilers/llvm/11/lld.nix
Normal file
33
pkgs/development/compilers/llvm/11/lld.nix
Normal file
@ -0,0 +1,33 @@
|
||||
{ stdenv
|
||||
, fetch
|
||||
, cmake
|
||||
, libxml2
|
||||
, llvm
|
||||
, version
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "lld";
|
||||
inherit version;
|
||||
|
||||
src = fetch pname "0lqz5cfids0rrl02p0qq5s18p8ikaa9r5gwa2yvj3bismdhvmar8";
|
||||
|
||||
nativeBuildInputs = [ cmake ];
|
||||
buildInputs = [ llvm libxml2 ];
|
||||
|
||||
outputs = [ "out" "dev" ];
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
postInstall = ''
|
||||
moveToOutput include "$dev"
|
||||
moveToOutput lib "$dev"
|
||||
'';
|
||||
|
||||
meta = {
|
||||
description = "The LLVM Linker";
|
||||
homepage = "https://lld.llvm.org/";
|
||||
license = stdenv.lib.licenses.ncsa;
|
||||
platforms = stdenv.lib.platforms.all;
|
||||
};
|
||||
}
|
31
pkgs/development/compilers/llvm/11/lldb-procfs.patch
Normal file
31
pkgs/development/compilers/llvm/11/lldb-procfs.patch
Normal file
@ -0,0 +1,31 @@
|
||||
--- a/source/Plugins/Process/Linux/Procfs.h
|
||||
+++ b/source/Plugins/Process/Linux/Procfs.h
|
||||
@@ -11,21 +11,12 @@
|
||||
// sys/procfs.h on Android/Linux for all supported architectures.
|
||||
|
||||
#include <sys/ptrace.h>
|
||||
+#include <asm/ptrace.h>
|
||||
|
||||
-#ifdef __ANDROID__
|
||||
-#if defined(__arm64__) || defined(__aarch64__)
|
||||
-typedef unsigned long elf_greg_t;
|
||||
-typedef elf_greg_t
|
||||
- elf_gregset_t[(sizeof(struct user_pt_regs) / sizeof(elf_greg_t))];
|
||||
-typedef struct user_fpsimd_state elf_fpregset_t;
|
||||
-#ifndef NT_FPREGSET
|
||||
-#define NT_FPREGSET NT_PRFPREG
|
||||
-#endif // NT_FPREGSET
|
||||
-#elif defined(__mips__)
|
||||
-#ifndef NT_FPREGSET
|
||||
-#define NT_FPREGSET NT_PRFPREG
|
||||
-#endif // NT_FPREGSET
|
||||
-#endif
|
||||
-#else // __ANDROID__
|
||||
+#if !defined(__GLIBC__) && defined(__powerpc__)
|
||||
+#define pt_regs musl_pt_regs
|
||||
+#include <sys/procfs.h>
|
||||
+#undef pt_regs
|
||||
+#else
|
||||
#include <sys/procfs.h>
|
||||
-#endif // __ANDROID__
|
||||
+#endif
|
101
pkgs/development/compilers/llvm/11/lldb.nix
Normal file
101
pkgs/development/compilers/llvm/11/lldb.nix
Normal file
@ -0,0 +1,101 @@
|
||||
{ stdenv
|
||||
, fetch
|
||||
, cmake
|
||||
, zlib
|
||||
, ncurses
|
||||
, swig
|
||||
, which
|
||||
, libedit
|
||||
, libxml2
|
||||
, llvm
|
||||
, clang-unwrapped
|
||||
, python3
|
||||
, version
|
||||
, darwin
|
||||
, lit
|
||||
, enableManpages ? false
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation (rec {
|
||||
pname = "lldb";
|
||||
inherit version;
|
||||
|
||||
src = fetch pname "0hb582kvhxp3kcckz7imrihs0kszdaz09z22xfymyi4vgmcy62q3";
|
||||
|
||||
patches = [ ./lldb-procfs.patch ];
|
||||
|
||||
nativeBuildInputs = [ cmake python3 which swig lit ]
|
||||
++ stdenv.lib.optionals enableManpages [ python3.pkgs.sphinx python3.pkgs.recommonmark ];
|
||||
|
||||
buildInputs = [
|
||||
ncurses
|
||||
zlib
|
||||
libedit
|
||||
libxml2
|
||||
llvm
|
||||
]
|
||||
++ stdenv.lib.optionals stdenv.isDarwin [
|
||||
darwin.libobjc
|
||||
darwin.apple_sdk.libs.xpc
|
||||
darwin.apple_sdk.frameworks.Foundation
|
||||
darwin.bootstrap_cmds
|
||||
darwin.apple_sdk.frameworks.Carbon
|
||||
darwin.apple_sdk.frameworks.Cocoa
|
||||
];
|
||||
|
||||
CXXFLAGS = "-fno-rtti";
|
||||
hardeningDisable = [ "format" ];
|
||||
|
||||
cmakeFlags = [
|
||||
"-DLLDB_CODESIGN_IDENTITY=" # codesigning makes nondeterministic
|
||||
"-DClang_DIR=${clang-unwrapped}/lib/cmake"
|
||||
"-DLLVM_EXTERNAL_LIT=${lit}/bin/lit"
|
||||
] ++ stdenv.lib.optionals stdenv.isDarwin [
|
||||
"-DLLDB_USE_SYSTEM_DEBUGSERVER=ON"
|
||||
] ++ stdenv.lib.optionals enableManpages [
|
||||
"-DLLVM_ENABLE_SPHINX=ON"
|
||||
"-DSPHINX_OUTPUT_MAN=ON"
|
||||
"-DSPHINX_OUTPUT_HTML=OFF"
|
||||
]
|
||||
;
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
postInstall = ''
|
||||
# Editor support
|
||||
# vscode:
|
||||
install -D ../tools/lldb-vscode/package.json $out/share/vscode/extensions/llvm-org.lldb-vscode-0.1.0/package.json
|
||||
mkdir -p $out/share/vscode/extensions/llvm-org.lldb-vscode-0.1.0/bin
|
||||
ln -s $out/bin/lldb-vscode $out/share/vscode/extensions/llvm-org.lldb-vscode-0.1.0/bin
|
||||
'';
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
description = "A next-generation high-performance debugger";
|
||||
homepage = "https://lldb.llvm.org";
|
||||
license = licenses.ncsa;
|
||||
platforms = platforms.all;
|
||||
};
|
||||
} // stdenv.lib.optionalAttrs enableManpages {
|
||||
pname = "lldb-manpages";
|
||||
|
||||
buildPhase = ''
|
||||
make docs-lldb-man
|
||||
'';
|
||||
|
||||
propagatedBuildInputs = [];
|
||||
|
||||
installPhase = ''
|
||||
# manually install lldb man page
|
||||
mkdir -p $out/share/man/man1
|
||||
install docs/man/lldb.1 -t $out/share/man/man1/
|
||||
'';
|
||||
|
||||
postPatch = null;
|
||||
postInstall = null;
|
||||
|
||||
outputs = [ "out" ];
|
||||
|
||||
doCheck = false;
|
||||
|
||||
meta.description = "man pages for LLDB ${version}";
|
||||
})
|
26
pkgs/development/compilers/llvm/11/llvm-outputs.patch
Normal file
26
pkgs/development/compilers/llvm/11/llvm-outputs.patch
Normal file
@ -0,0 +1,26 @@
|
||||
diff --git a/tools/llvm-config/llvm-config.cpp b/tools/llvm-config/llvm-config.cpp
|
||||
index 94d426b..37f7794 100644
|
||||
--- a/tools/llvm-config/llvm-config.cpp
|
||||
+++ b/tools/llvm-config/llvm-config.cpp
|
||||
@@ -333,6 +333,21 @@ int main(int argc, char **argv) {
|
||||
ActiveIncludeOption = "-I" + ActiveIncludeDir;
|
||||
}
|
||||
|
||||
+ /// Nix-specific multiple-output handling: override ActiveLibDir if --link-shared
|
||||
+ if (!IsInDevelopmentTree) {
|
||||
+ bool WantShared = true;
|
||||
+ for (int i = 1; i < argc; ++i) {
|
||||
+ StringRef Arg = argv[i];
|
||||
+ if (Arg == "--link-shared")
|
||||
+ WantShared = true;
|
||||
+ else if (Arg == "--link-static")
|
||||
+ WantShared = false; // the last one wins
|
||||
+ }
|
||||
+
|
||||
+ if (WantShared)
|
||||
+ ActiveLibDir = std::string("@lib@") + "/lib" + LLVM_LIBDIR_SUFFIX;
|
||||
+ }
|
||||
+
|
||||
/// We only use `shared library` mode in cases where the static library form
|
||||
/// of the components provided are not available; note however that this is
|
||||
/// skipped if we're run from within the build dir. However, once installed,
|
187
pkgs/development/compilers/llvm/11/llvm.nix
Normal file
187
pkgs/development/compilers/llvm/11/llvm.nix
Normal file
@ -0,0 +1,187 @@
|
||||
{ stdenv
|
||||
, fetch
|
||||
, cmake
|
||||
, python3
|
||||
, libffi
|
||||
, libbfd
|
||||
, libpfm
|
||||
, libxml2
|
||||
, ncurses
|
||||
, version
|
||||
, release_version
|
||||
, zlib
|
||||
, buildPackages
|
||||
, debugVersion ? false
|
||||
, enableManpages ? false
|
||||
, enableSharedLibraries ? true
|
||||
, enablePFM ? !(stdenv.isDarwin
|
||||
|| stdenv.isAarch64 # broken for Ampere eMAG 8180 (c2.large.arm on Packet) #56245
|
||||
|| stdenv.isAarch32 # broken for the armv7l builder
|
||||
)
|
||||
, enablePolly ? false
|
||||
}:
|
||||
|
||||
let
|
||||
inherit (stdenv.lib) optional optionals optionalString;
|
||||
|
||||
# Used when creating a version-suffixed symlink of libLLVM.dylib
|
||||
shortVersion = with stdenv.lib;
|
||||
concatStringsSep "." (take 1 (splitString "." release_version));
|
||||
|
||||
in stdenv.mkDerivation (rec {
|
||||
pname = "llvm";
|
||||
inherit version;
|
||||
|
||||
src = fetch pname "151c7nphn18dcw04yxyp6qdj8w19psb8nigf26djf7rhpi1fn0sh";
|
||||
polly_src = fetch "polly" "0caxfpaxhf38nam4gkb9xqlrw20v29cm8jf95ykkbngqw64rmgij";
|
||||
|
||||
unpackPhase = ''
|
||||
unpackFile $src
|
||||
mv llvm-${version}* llvm
|
||||
sourceRoot=$PWD/llvm
|
||||
'' + optionalString enablePolly ''
|
||||
unpackFile $polly_src
|
||||
mv polly-* $sourceRoot/tools/polly
|
||||
'';
|
||||
|
||||
outputs = [ "out" "python" ]
|
||||
++ optional enableSharedLibraries "lib";
|
||||
|
||||
nativeBuildInputs = [ cmake python3 ]
|
||||
++ optionals enableManpages [ python3.pkgs.sphinx python3.pkgs.recommonmark ];
|
||||
|
||||
buildInputs = [ libxml2 libffi ]
|
||||
++ optional enablePFM libpfm; # exegesis
|
||||
|
||||
propagatedBuildInputs = [ ncurses zlib ];
|
||||
|
||||
postPatch = optionalString stdenv.isDarwin ''
|
||||
substituteInPlace cmake/modules/AddLLVM.cmake \
|
||||
--replace 'set(_install_name_dir INSTALL_NAME_DIR "@rpath")' "set(_install_name_dir)" \
|
||||
--replace 'set(_install_rpath "@loader_path/../lib''${LLVM_LIBDIR_SUFFIX}" ''${extra_libdir})' ""
|
||||
''
|
||||
# Patch llvm-config to return correct library path based on --link-{shared,static}.
|
||||
+ optionalString (enableSharedLibraries) ''
|
||||
substitute '${./llvm-outputs.patch}' ./llvm-outputs.patch --subst-var lib
|
||||
patch -p1 < ./llvm-outputs.patch
|
||||
'' + ''
|
||||
# FileSystem permissions tests fail with various special bits
|
||||
substituteInPlace unittests/Support/CMakeLists.txt \
|
||||
--replace "Path.cpp" ""
|
||||
rm unittests/Support/Path.cpp
|
||||
'' + optionalString stdenv.hostPlatform.isMusl ''
|
||||
patch -p1 -i ${../TLI-musl.patch}
|
||||
substituteInPlace unittests/Support/CMakeLists.txt \
|
||||
--replace "add_subdirectory(DynamicLibrary)" ""
|
||||
rm unittests/Support/DynamicLibrary/DynamicLibraryTest.cpp
|
||||
# valgrind unhappy with musl or glibc, but fails w/musl only
|
||||
rm test/CodeGen/AArch64/wineh4.mir
|
||||
'' + optionalString stdenv.hostPlatform.isAarch32 ''
|
||||
# skip failing X86 test cases on 32-bit ARM
|
||||
rm test/DebugInfo/X86/convert-debugloc.ll
|
||||
rm test/DebugInfo/X86/convert-inlined.ll
|
||||
rm test/DebugInfo/X86/convert-linked.ll
|
||||
rm test/tools/dsymutil/X86/op-convert.test
|
||||
'' + optionalString (stdenv.hostPlatform.system == "armv6l-linux") ''
|
||||
# Seems to require certain floating point hardware (NEON?)
|
||||
rm test/ExecutionEngine/frem.ll
|
||||
'' + ''
|
||||
patchShebangs test/BugPoint/compile-custom.ll.py
|
||||
'';
|
||||
|
||||
# hacky fix: created binaries need to be run before installation
|
||||
preBuild = ''
|
||||
mkdir -p $out/
|
||||
ln -sv $PWD/lib $out
|
||||
'';
|
||||
|
||||
cmakeFlags = with stdenv; [
|
||||
"-DCMAKE_BUILD_TYPE=${if debugVersion then "Debug" else "Release"}"
|
||||
"-DLLVM_INSTALL_UTILS=ON" # Needed by rustc
|
||||
"-DLLVM_BUILD_TESTS=ON"
|
||||
"-DLLVM_ENABLE_FFI=ON"
|
||||
"-DLLVM_ENABLE_RTTI=ON"
|
||||
"-DLLVM_HOST_TRIPLE=${stdenv.hostPlatform.config}"
|
||||
"-DLLVM_DEFAULT_TARGET_TRIPLE=${stdenv.hostPlatform.config}"
|
||||
"-DLLVM_ENABLE_DUMP=ON"
|
||||
] ++ optionals enableSharedLibraries [
|
||||
"-DLLVM_LINK_LLVM_DYLIB=ON"
|
||||
] ++ optionals enableManpages [
|
||||
"-DLLVM_BUILD_DOCS=ON"
|
||||
"-DLLVM_ENABLE_SPHINX=ON"
|
||||
"-DSPHINX_OUTPUT_MAN=ON"
|
||||
"-DSPHINX_OUTPUT_HTML=OFF"
|
||||
"-DSPHINX_WARNINGS_AS_ERRORS=OFF"
|
||||
] ++ optionals (!isDarwin) [
|
||||
"-DLLVM_BINUTILS_INCDIR=${libbfd.dev}/include"
|
||||
] ++ optionals isDarwin [
|
||||
"-DLLVM_ENABLE_LIBCXX=ON"
|
||||
"-DCAN_TARGET_i386=false"
|
||||
] ++ optionals (stdenv.hostPlatform != stdenv.buildPlatform) [
|
||||
"-DCMAKE_CROSSCOMPILING=True"
|
||||
"-DLLVM_TABLEGEN=${buildPackages.llvm_10}/bin/llvm-tblgen"
|
||||
];
|
||||
|
||||
postBuild = ''
|
||||
rm -fR $out
|
||||
'';
|
||||
|
||||
preCheck = ''
|
||||
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH''${LD_LIBRARY_PATH:+:}$PWD/lib
|
||||
'';
|
||||
|
||||
postInstall = ''
|
||||
mkdir -p $python/share
|
||||
mv $out/share/opt-viewer $python/share/opt-viewer
|
||||
''
|
||||
+ optionalString enableSharedLibraries ''
|
||||
moveToOutput "lib/libLLVM-*" "$lib"
|
||||
moveToOutput "lib/libLLVM${stdenv.hostPlatform.extensions.sharedLibrary}" "$lib"
|
||||
''
|
||||
+ optionalString (enableSharedLibraries && (!stdenv.isDarwin)) ''
|
||||
substituteInPlace "$out/lib/cmake/llvm/LLVMExports-${if debugVersion then "debug" else "release"}.cmake" \
|
||||
--replace "\''${_IMPORT_PREFIX}/lib/libLLVM-" "$lib/lib/libLLVM-"
|
||||
''
|
||||
+ optionalString (stdenv.isDarwin && enableSharedLibraries) ''
|
||||
substituteInPlace "$out/lib/cmake/llvm/LLVMExports-${if debugVersion then "debug" else "release"}.cmake" \
|
||||
--replace "\''${_IMPORT_PREFIX}/lib/libLLVM.dylib" "$lib/lib/libLLVM.dylib"
|
||||
ln -s $lib/lib/libLLVM.dylib $lib/lib/libLLVM-${shortVersion}.dylib
|
||||
ln -s $lib/lib/libLLVM.dylib $lib/lib/libLLVM-${release_version}.dylib
|
||||
'';
|
||||
|
||||
doCheck = stdenv.isLinux && (!stdenv.isx86_32);
|
||||
|
||||
checkTarget = "check-all";
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
requiredSystemFeatures = [ "big-parallel" ];
|
||||
meta = {
|
||||
description = "Collection of modular and reusable compiler and toolchain technologies";
|
||||
homepage = "https://llvm.org/";
|
||||
license = stdenv.lib.licenses.ncsa;
|
||||
maintainers = with stdenv.lib.maintainers; [ lovek323 raskin dtzWill ];
|
||||
platforms = stdenv.lib.platforms.all;
|
||||
};
|
||||
} // stdenv.lib.optionalAttrs enableManpages {
|
||||
pname = "llvm-manpages";
|
||||
|
||||
buildPhase = ''
|
||||
make docs-llvm-man
|
||||
'';
|
||||
|
||||
propagatedBuildInputs = [];
|
||||
|
||||
installPhase = ''
|
||||
make -C docs install
|
||||
'';
|
||||
|
||||
postPatch = null;
|
||||
postInstall = null;
|
||||
|
||||
outputs = [ "out" ];
|
||||
|
||||
doCheck = false;
|
||||
|
||||
meta.description = "man pages for LLVM ${version}";
|
||||
})
|
26
pkgs/development/compilers/llvm/11/openmp.nix
Normal file
26
pkgs/development/compilers/llvm/11/openmp.nix
Normal file
@ -0,0 +1,26 @@
|
||||
{ stdenv
|
||||
, fetch
|
||||
, cmake
|
||||
, llvm
|
||||
, perl
|
||||
, version
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "openmp";
|
||||
inherit version;
|
||||
|
||||
src = fetch pname "1025dwn68iw664df831zbkxy8bxilvjkbc6mw4nhv6p5ff7dcw7f";
|
||||
|
||||
nativeBuildInputs = [ cmake perl ];
|
||||
buildInputs = [ llvm ];
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
meta = {
|
||||
description = "Components required to build an executable OpenMP program";
|
||||
homepage = "https://openmp.llvm.org/";
|
||||
license = stdenv.lib.licenses.mit;
|
||||
platforms = stdenv.lib.platforms.all;
|
||||
};
|
||||
}
|
412
pkgs/development/compilers/llvm/11/sanitizers-nongnu.patch
Normal file
412
pkgs/development/compilers/llvm/11/sanitizers-nongnu.patch
Normal file
@ -0,0 +1,412 @@
|
||||
From f7a253f8f85d0f49df6b73996737a3e84ac64236 Mon Sep 17 00:00:00 2001
|
||||
From: Will Dietz <w@wdtz.org>
|
||||
Date: Mon, 24 Sep 2018 11:17:25 -0500
|
||||
Subject: [PATCH] Ported to 7.0, taken from gentoo-musl project.
|
||||
|
||||
------
|
||||
Ported to compiler-rt-sanitizers-5.0.0. Taken from
|
||||
|
||||
https://gist.githubusercontent.com/pwaller/2337f3290f12634cad3e3730cff0a6c1/raw/83c87a8585e2f9662494db5662e5361beb093c26/nongnu.patch
|
||||
Signed-off-by: Jory A. Pratt <anarchy@gentoo.org>
|
||||
|
||||
Taken from gentoo-musl project, with a few additional minor fixes.
|
||||
---
|
||||
lib/asan/asan_linux.cc | 4 +-
|
||||
lib/interception/interception_linux.cc | 2 +-
|
||||
lib/interception/interception_linux.h | 2 +-
|
||||
lib/msan/msan_linux.cc | 2 +-
|
||||
lib/sanitizer_common/sanitizer_allocator.cc | 2 +-
|
||||
.../sanitizer_common_interceptors_ioctl.inc | 4 +-
|
||||
.../sanitizer_common_syscalls.inc | 2 +-
|
||||
lib/sanitizer_common/sanitizer_linux.cc | 8 +++-
|
||||
.../sanitizer_linux_libcdep.cc | 10 ++---
|
||||
lib/sanitizer_common/sanitizer_platform.h | 6 +++
|
||||
.../sanitizer_platform_interceptors.h | 4 +-
|
||||
.../sanitizer_platform_limits_posix.cc | 37 +++++++++++--------
|
||||
lib/tsan/rtl/tsan_platform_linux.cc | 2 +-
|
||||
13 files changed, 51 insertions(+), 34 deletions(-)
|
||||
|
||||
diff --git a/lib/asan/asan_linux.cc b/lib/asan/asan_linux.cc
|
||||
index 625f32d40..73cf77aca 100644
|
||||
--- a/lib/asan/asan_linux.cc
|
||||
+++ b/lib/asan/asan_linux.cc
|
||||
@@ -46,7 +46,7 @@
|
||||
#include <link.h>
|
||||
#endif
|
||||
|
||||
-#if SANITIZER_ANDROID || SANITIZER_FREEBSD || SANITIZER_SOLARIS
|
||||
+#if SANITIZER_ANDROID || SANITIZER_FREEBSD || SANITIZER_SOLARIS || SANITIZER_NONGNU
|
||||
#include <ucontext.h>
|
||||
extern "C" void* _DYNAMIC;
|
||||
#elif SANITIZER_NETBSD
|
||||
@@ -139,7 +139,7 @@ void AsanApplyToGlobals(globals_op_fptr op, const void *needle) {
|
||||
UNIMPLEMENTED();
|
||||
}
|
||||
|
||||
-#if SANITIZER_ANDROID
|
||||
+#if SANITIZER_ANDROID || SANITIZER_NONGNU
|
||||
// FIXME: should we do anything for Android?
|
||||
void AsanCheckDynamicRTPrereqs() {}
|
||||
void AsanCheckIncompatibleRT() {}
|
||||
diff --git a/lib/interception/interception_linux.cc b/lib/interception/interception_linux.cc
|
||||
index 26bfcd8f6..529b234f7 100644
|
||||
--- a/lib/interception/interception_linux.cc
|
||||
+++ b/lib/interception/interception_linux.cc
|
||||
@@ -43,7 +43,7 @@ bool GetRealFunctionAddress(const char *func_name, uptr *func_addr,
|
||||
}
|
||||
|
||||
// Android and Solaris do not have dlvsym
|
||||
-#if !SANITIZER_ANDROID && !SANITIZER_SOLARIS && !SANITIZER_OPENBSD
|
||||
+#if !SANITIZER_ANDROID && !SANITIZER_SOLARIS && !SANITIZER_OPENBSD && !SANITIZER_NONGNU
|
||||
void *GetFuncAddrVer(const char *func_name, const char *ver) {
|
||||
return dlvsym(RTLD_NEXT, func_name, ver);
|
||||
}
|
||||
diff --git a/lib/interception/interception_linux.h b/lib/interception/interception_linux.h
|
||||
index 942c25609..24a4d5080 100644
|
||||
--- a/lib/interception/interception_linux.h
|
||||
+++ b/lib/interception/interception_linux.h
|
||||
@@ -36,7 +36,7 @@ void *GetFuncAddrVer(const char *func_name, const char *ver);
|
||||
(::__interception::uptr) & WRAP(func))
|
||||
|
||||
// Android, Solaris and OpenBSD do not have dlvsym
|
||||
-#if !SANITIZER_ANDROID && !SANITIZER_SOLARIS && !SANITIZER_OPENBSD
|
||||
+#if !SANITIZER_ANDROID && !SANITIZER_SOLARIS && !SANITIZER_OPENBSD && !SANITIZER_NONGNU
|
||||
#define INTERCEPT_FUNCTION_VER_LINUX_OR_FREEBSD(func, symver) \
|
||||
(::__interception::real_##func = (func##_f)( \
|
||||
unsigned long)::__interception::GetFuncAddrVer(#func, symver))
|
||||
diff --git a/lib/msan/msan_linux.cc b/lib/msan/msan_linux.cc
|
||||
index 385a650c4..6e30a8ce9 100644
|
||||
--- a/lib/msan/msan_linux.cc
|
||||
+++ b/lib/msan/msan_linux.cc
|
||||
@@ -13,7 +13,7 @@
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
#include "sanitizer_common/sanitizer_platform.h"
|
||||
-#if SANITIZER_FREEBSD || SANITIZER_LINUX || SANITIZER_NETBSD
|
||||
+#if SANITIZER_FREEBSD || (SANITIZER_LINUX && !SANITIZER_NONGNU) || SANITIZER_NETBSD
|
||||
|
||||
#include "msan.h"
|
||||
#include "msan_report.h"
|
||||
diff --git a/lib/sanitizer_common/sanitizer_allocator.cc b/lib/sanitizer_common/sanitizer_allocator.cc
|
||||
index 6bfd5e5ee..048f6154f 100644
|
||||
--- a/lib/sanitizer_common/sanitizer_allocator.cc
|
||||
+++ b/lib/sanitizer_common/sanitizer_allocator.cc
|
||||
@@ -27,7 +27,7 @@ const char *SecondaryAllocatorName = "LargeMmapAllocator";
|
||||
|
||||
// ThreadSanitizer for Go uses libc malloc/free.
|
||||
#if SANITIZER_GO || defined(SANITIZER_USE_MALLOC)
|
||||
-# if SANITIZER_LINUX && !SANITIZER_ANDROID
|
||||
+# if SANITIZER_LINUX && !SANITIZER_ANDROID && !SANITIZER_NONGNU
|
||||
extern "C" void *__libc_malloc(uptr size);
|
||||
# if !SANITIZER_GO
|
||||
extern "C" void *__libc_memalign(uptr alignment, uptr size);
|
||||
diff --git a/lib/sanitizer_common/sanitizer_common_interceptors_ioctl.inc b/lib/sanitizer_common/sanitizer_common_interceptors_ioctl.inc
|
||||
index 2d633c173..b6eb23116 100644
|
||||
--- a/lib/sanitizer_common/sanitizer_common_interceptors_ioctl.inc
|
||||
+++ b/lib/sanitizer_common/sanitizer_common_interceptors_ioctl.inc
|
||||
@@ -104,7 +104,7 @@ static void ioctl_table_fill() {
|
||||
_(SIOCGETVIFCNT, WRITE, struct_sioc_vif_req_sz);
|
||||
#endif
|
||||
|
||||
-#if SANITIZER_LINUX
|
||||
+#if SANITIZER_LINUX && !SANITIZER_NONGNU
|
||||
// Conflicting request ids.
|
||||
// _(CDROMAUDIOBUFSIZ, NONE, 0);
|
||||
// _(SNDCTL_TMR_CONTINUE, NONE, 0);
|
||||
@@ -365,7 +365,7 @@ static void ioctl_table_fill() {
|
||||
_(VT_WAITACTIVE, NONE, 0);
|
||||
#endif
|
||||
|
||||
-#if SANITIZER_LINUX && !SANITIZER_ANDROID
|
||||
+#if SANITIZER_LINUX && !SANITIZER_ANDROID && !SANITIZER_NONGNU
|
||||
// _(SIOCDEVPLIP, WRITE, struct_ifreq_sz); // the same as EQL_ENSLAVE
|
||||
_(CYGETDEFTHRESH, WRITE, sizeof(int));
|
||||
_(CYGETDEFTIMEOUT, WRITE, sizeof(int));
|
||||
diff --git a/lib/sanitizer_common/sanitizer_common_syscalls.inc b/lib/sanitizer_common/sanitizer_common_syscalls.inc
|
||||
index 469c8eb7e..24f87867d 100644
|
||||
--- a/lib/sanitizer_common/sanitizer_common_syscalls.inc
|
||||
+++ b/lib/sanitizer_common/sanitizer_common_syscalls.inc
|
||||
@@ -2038,7 +2038,7 @@ POST_SYSCALL(setrlimit)(long res, long resource, void *rlim) {
|
||||
}
|
||||
}
|
||||
|
||||
-#if !SANITIZER_ANDROID
|
||||
+#if !SANITIZER_ANDROID && !SANITIZER_NONGNU
|
||||
PRE_SYSCALL(prlimit64)(long pid, long resource, const void *new_rlim,
|
||||
void *old_rlim) {
|
||||
if (new_rlim) PRE_READ(new_rlim, struct_rlimit64_sz);
|
||||
diff --git a/lib/sanitizer_common/sanitizer_linux.cc b/lib/sanitizer_common/sanitizer_linux.cc
|
||||
index 96d6c1eff..9e2b7fb9d 100644
|
||||
--- a/lib/sanitizer_common/sanitizer_linux.cc
|
||||
+++ b/lib/sanitizer_common/sanitizer_linux.cc
|
||||
@@ -541,13 +541,13 @@ const char *GetEnv(const char *name) {
|
||||
#endif
|
||||
}
|
||||
|
||||
-#if !SANITIZER_FREEBSD && !SANITIZER_NETBSD && !SANITIZER_OPENBSD
|
||||
+#if !SANITIZER_FREEBSD && !SANITIZER_NETBSD && !SANITIZER_OPENBSD && !SANITIZER_NONGNU
|
||||
extern "C" {
|
||||
SANITIZER_WEAK_ATTRIBUTE extern void *__libc_stack_end;
|
||||
}
|
||||
#endif
|
||||
|
||||
-#if !SANITIZER_GO && !SANITIZER_FREEBSD && !SANITIZER_NETBSD && \
|
||||
+#if (!SANITIZER_GO || SANITIZER_NONGNU) && !SANITIZER_FREEBSD && !SANITIZER_NETBSD && \
|
||||
!SANITIZER_OPENBSD
|
||||
static void ReadNullSepFileToArray(const char *path, char ***arr,
|
||||
int arr_size) {
|
||||
@@ -590,6 +590,10 @@ static void GetArgsAndEnv(char ***argv, char ***envp) {
|
||||
#elif SANITIZER_NETBSD
|
||||
*argv = __ps_strings->ps_argvstr;
|
||||
*envp = __ps_strings->ps_envstr;
|
||||
+#elif SANITIZER_NONGNU
|
||||
+ static const int kMaxArgv = 2000, kMaxEnvp = 2000;
|
||||
+ ReadNullSepFileToArray("/proc/self/cmdline", argv, kMaxArgv);
|
||||
+ ReadNullSepFileToArray("/proc/self/environ", envp, kMaxEnvp);
|
||||
#else // SANITIZER_FREEBSD
|
||||
#if !SANITIZER_GO
|
||||
if (&__libc_stack_end) {
|
||||
diff --git a/lib/sanitizer_common/sanitizer_linux_libcdep.cc b/lib/sanitizer_common/sanitizer_linux_libcdep.cc
|
||||
index 4962ff832..438f94dbe 100644
|
||||
--- a/lib/sanitizer_common/sanitizer_linux_libcdep.cc
|
||||
+++ b/lib/sanitizer_common/sanitizer_linux_libcdep.cc
|
||||
@@ -179,7 +179,7 @@ __attribute__((unused)) static bool GetLibcVersion(int *major, int *minor,
|
||||
}
|
||||
|
||||
#if !SANITIZER_FREEBSD && !SANITIZER_ANDROID && !SANITIZER_GO && \
|
||||
- !SANITIZER_NETBSD && !SANITIZER_OPENBSD && !SANITIZER_SOLARIS
|
||||
+ !SANITIZER_NETBSD && !SANITIZER_OPENBSD && !SANITIZER_SOLARIS && !SANITIZER_NONGNU
|
||||
static uptr g_tls_size;
|
||||
|
||||
#ifdef __i386__
|
||||
@@ -261,7 +261,7 @@ void InitTlsSize() { }
|
||||
#if (defined(__x86_64__) || defined(__i386__) || defined(__mips__) || \
|
||||
defined(__aarch64__) || defined(__powerpc64__) || defined(__s390__) || \
|
||||
defined(__arm__)) && \
|
||||
- SANITIZER_LINUX && !SANITIZER_ANDROID
|
||||
+ SANITIZER_LINUX && !SANITIZER_ANDROID && !SANITIZER_NONGNU
|
||||
// sizeof(struct pthread) from glibc.
|
||||
static atomic_uintptr_t thread_descriptor_size;
|
||||
|
||||
@@ -426,7 +426,7 @@ int GetSizeFromHdr(struct dl_phdr_info *info, size_t size, void *data) {
|
||||
|
||||
#if !SANITIZER_GO
|
||||
static void GetTls(uptr *addr, uptr *size) {
|
||||
-#if SANITIZER_LINUX && !SANITIZER_ANDROID
|
||||
+#if SANITIZER_LINUX && !SANITIZER_ANDROID && !SANITIZER_NONGNU
|
||||
# if defined(__x86_64__) || defined(__i386__) || defined(__s390__)
|
||||
*addr = ThreadSelf();
|
||||
*size = GetTlsSize();
|
||||
@@ -470,7 +470,7 @@ static void GetTls(uptr *addr, uptr *size) {
|
||||
#elif SANITIZER_OPENBSD
|
||||
*addr = 0;
|
||||
*size = 0;
|
||||
-#elif SANITIZER_ANDROID
|
||||
+#elif SANITIZER_ANDROID || SANITIZER_NONGNU
|
||||
*addr = 0;
|
||||
*size = 0;
|
||||
#elif SANITIZER_SOLARIS
|
||||
@@ -486,7 +486,7 @@ static void GetTls(uptr *addr, uptr *size) {
|
||||
#if !SANITIZER_GO
|
||||
uptr GetTlsSize() {
|
||||
#if SANITIZER_FREEBSD || SANITIZER_ANDROID || SANITIZER_NETBSD || \
|
||||
- SANITIZER_OPENBSD || SANITIZER_SOLARIS
|
||||
+ SANITIZER_OPENBSD || SANITIZER_SOLARIS || SANITIZER_NONGNU
|
||||
uptr addr, size;
|
||||
GetTls(&addr, &size);
|
||||
return size;
|
||||
diff --git a/lib/sanitizer_common/sanitizer_platform.h b/lib/sanitizer_common/sanitizer_platform.h
|
||||
index d81e25580..e10680ac8 100644
|
||||
--- a/lib/sanitizer_common/sanitizer_platform.h
|
||||
+++ b/lib/sanitizer_common/sanitizer_platform.h
|
||||
@@ -208,6 +208,12 @@
|
||||
# define SANITIZER_SOLARIS32 0
|
||||
#endif
|
||||
|
||||
+#if defined(__linux__) && !defined(__GLIBC__)
|
||||
+# define SANITIZER_NONGNU 1
|
||||
+#else
|
||||
+# define SANITIZER_NONGNU 0
|
||||
+#endif
|
||||
+
|
||||
#if defined(__myriad2__)
|
||||
# define SANITIZER_MYRIAD2 1
|
||||
#else
|
||||
diff --git a/lib/sanitizer_common/sanitizer_platform_interceptors.h b/lib/sanitizer_common/sanitizer_platform_interceptors.h
|
||||
index f95539a73..6c53b3415 100644
|
||||
--- a/lib/sanitizer_common/sanitizer_platform_interceptors.h
|
||||
+++ b/lib/sanitizer_common/sanitizer_platform_interceptors.h
|
||||
@@ -39,7 +39,7 @@
|
||||
# include "sanitizer_platform_limits_solaris.h"
|
||||
#endif
|
||||
|
||||
-#if SANITIZER_LINUX && !SANITIZER_ANDROID
|
||||
+#if SANITIZER_LINUX && !SANITIZER_ANDROID && !SANITIZER_NONGNU
|
||||
# define SI_LINUX_NOT_ANDROID 1
|
||||
#else
|
||||
# define SI_LINUX_NOT_ANDROID 0
|
||||
@@ -322,7 +322,7 @@
|
||||
#define SANITIZER_INTERCEPT_ETHER_R (SI_FREEBSD || SI_LINUX_NOT_ANDROID)
|
||||
#define SANITIZER_INTERCEPT_SHMCTL \
|
||||
(SI_NETBSD || SI_OPENBSD || SI_SOLARIS || \
|
||||
- ((SI_FREEBSD || SI_LINUX_NOT_ANDROID) && \
|
||||
+ ((SI_FREEBSD || SI_LINUX_NOT_ANDROID || SANITIZER_NONGNU) && \
|
||||
SANITIZER_WORDSIZE == 64)) // NOLINT
|
||||
#define SANITIZER_INTERCEPT_RANDOM_R SI_LINUX_NOT_ANDROID
|
||||
#define SANITIZER_INTERCEPT_PTHREAD_ATTR_GET SI_POSIX
|
||||
diff --git a/lib/sanitizer_common/sanitizer_platform_limits_posix.cc b/lib/sanitizer_common/sanitizer_platform_limits_posix.cc
|
||||
index 54da635d7..2f6ff69c3 100644
|
||||
--- a/lib/sanitizer_common/sanitizer_platform_limits_posix.cc
|
||||
+++ b/lib/sanitizer_common/sanitizer_platform_limits_posix.cc
|
||||
@@ -14,6 +14,9 @@
|
||||
|
||||
#include "sanitizer_platform.h"
|
||||
|
||||
+// Workaround musl <--> linux conflicting definition of 'struct sysinfo'
|
||||
+#define _LINUX_SYSINFO_H
|
||||
+
|
||||
#if SANITIZER_LINUX || SANITIZER_FREEBSD || SANITIZER_MAC
|
||||
// Tests in this file assume that off_t-dependent data structures match the
|
||||
// libc ABI. For example, struct dirent here is what readdir() function (as
|
||||
@@ -138,12 +141,14 @@ typedef struct user_fpregs elf_fpregset_t;
|
||||
|
||||
#if SANITIZER_LINUX && !SANITIZER_ANDROID
|
||||
#include <glob.h>
|
||||
-#include <obstack.h>
|
||||
+# if !SANITIZER_NONGNU
|
||||
+# include <obstack.h>
|
||||
+# endif
|
||||
#include <mqueue.h>
|
||||
-#include <net/if_ppp.h>
|
||||
-#include <netax25/ax25.h>
|
||||
-#include <netipx/ipx.h>
|
||||
-#include <netrom/netrom.h>
|
||||
+#include <linux/if_ppp.h>
|
||||
+#include <linux/ax25.h>
|
||||
+#include <linux/ipx.h>
|
||||
+#include <linux/netrom.h>
|
||||
#if HAVE_RPC_XDR_H
|
||||
# include <rpc/xdr.h>
|
||||
#elif HAVE_TIRPC_RPC_XDR_H
|
||||
@@ -251,7 +256,7 @@ namespace __sanitizer {
|
||||
unsigned struct_itimerspec_sz = sizeof(struct itimerspec);
|
||||
#endif // SANITIZER_LINUX || SANITIZER_FREEBSD
|
||||
|
||||
-#if SANITIZER_LINUX && !SANITIZER_ANDROID
|
||||
+#if SANITIZER_LINUX && !SANITIZER_ANDROID && !SANITIZER_NONGNU
|
||||
// Use pre-computed size of struct ustat to avoid <sys/ustat.h> which
|
||||
// has been removed from glibc 2.28.
|
||||
#if defined(__aarch64__) || defined(__s390x__) || defined (__mips64) \
|
||||
@@ -322,7 +327,7 @@ unsigned struct_ElfW_Phdr_sz = sizeof(ElfW(Phdr));
|
||||
unsigned struct_ElfW_Phdr_sz = sizeof(Elf_Phdr);
|
||||
#endif
|
||||
|
||||
-#if (SANITIZER_LINUX || SANITIZER_FREEBSD) && !SANITIZER_ANDROID
|
||||
+#if (SANITIZER_LINUX || SANITIZER_FREEBSD) && !SANITIZER_ANDROID && !SANITIZER_NONGNU
|
||||
int glob_nomatch = GLOB_NOMATCH;
|
||||
int glob_altdirfunc = GLOB_ALTDIRFUNC;
|
||||
#endif
|
||||
@@ -416,7 +421,7 @@ unsigned struct_ElfW_Phdr_sz = sizeof(Elf_Phdr);
|
||||
unsigned struct_termios_sz = sizeof(struct termios);
|
||||
unsigned struct_winsize_sz = sizeof(struct winsize);
|
||||
|
||||
-#if SANITIZER_LINUX
|
||||
+#if SANITIZER_LINUX && !SANITIZER_NONGNU
|
||||
unsigned struct_arpreq_sz = sizeof(struct arpreq);
|
||||
unsigned struct_cdrom_msf_sz = sizeof(struct cdrom_msf);
|
||||
unsigned struct_cdrom_multisession_sz = sizeof(struct cdrom_multisession);
|
||||
@@ -466,7 +471,7 @@ unsigned struct_ElfW_Phdr_sz = sizeof(Elf_Phdr);
|
||||
unsigned struct_vt_mode_sz = sizeof(struct vt_mode);
|
||||
#endif // SANITIZER_LINUX || SANITIZER_FREEBSD
|
||||
|
||||
-#if SANITIZER_LINUX && !SANITIZER_ANDROID
|
||||
+#if SANITIZER_LINUX && !SANITIZER_ANDROID && !SANITIZER_NONGNU
|
||||
unsigned struct_ax25_parms_struct_sz = sizeof(struct ax25_parms_struct);
|
||||
unsigned struct_cyclades_monitor_sz = sizeof(struct cyclades_monitor);
|
||||
#if EV_VERSION > (0x010000)
|
||||
@@ -834,7 +839,7 @@ unsigned struct_ElfW_Phdr_sz = sizeof(Elf_Phdr);
|
||||
unsigned IOCTL_VT_WAITACTIVE = VT_WAITACTIVE;
|
||||
#endif // SANITIZER_LINUX || SANITIZER_FREEBSD
|
||||
|
||||
-#if SANITIZER_LINUX && !SANITIZER_ANDROID
|
||||
+#if SANITIZER_LINUX && !SANITIZER_ANDROID && !SANITIZER_NONGNU
|
||||
unsigned IOCTL_CYGETDEFTHRESH = CYGETDEFTHRESH;
|
||||
unsigned IOCTL_CYGETDEFTIMEOUT = CYGETDEFTIMEOUT;
|
||||
unsigned IOCTL_CYGETMON = CYGETMON;
|
||||
@@ -989,7 +994,7 @@ CHECK_SIZE_AND_OFFSET(dl_phdr_info, dlpi_phdr);
|
||||
CHECK_SIZE_AND_OFFSET(dl_phdr_info, dlpi_phnum);
|
||||
#endif // SANITIZER_LINUX || SANITIZER_FREEBSD
|
||||
|
||||
-#if (SANITIZER_LINUX || SANITIZER_FREEBSD) && !SANITIZER_ANDROID
|
||||
+#if (SANITIZER_LINUX || SANITIZER_FREEBSD) && !SANITIZER_ANDROID && !SANITIZER_NONGNU
|
||||
CHECK_TYPE_SIZE(glob_t);
|
||||
CHECK_SIZE_AND_OFFSET(glob_t, gl_pathc);
|
||||
CHECK_SIZE_AND_OFFSET(glob_t, gl_pathv);
|
||||
@@ -1023,6 +1028,7 @@ CHECK_TYPE_SIZE(iovec);
|
||||
CHECK_SIZE_AND_OFFSET(iovec, iov_base);
|
||||
CHECK_SIZE_AND_OFFSET(iovec, iov_len);
|
||||
|
||||
+#if !SANITIZER_NONGNU
|
||||
CHECK_TYPE_SIZE(msghdr);
|
||||
CHECK_SIZE_AND_OFFSET(msghdr, msg_name);
|
||||
CHECK_SIZE_AND_OFFSET(msghdr, msg_namelen);
|
||||
@@ -1036,6 +1042,7 @@ CHECK_TYPE_SIZE(cmsghdr);
|
||||
CHECK_SIZE_AND_OFFSET(cmsghdr, cmsg_len);
|
||||
CHECK_SIZE_AND_OFFSET(cmsghdr, cmsg_level);
|
||||
CHECK_SIZE_AND_OFFSET(cmsghdr, cmsg_type);
|
||||
+#endif
|
||||
|
||||
#ifndef __GLIBC_PREREQ
|
||||
#define __GLIBC_PREREQ(x, y) 0
|
||||
@@ -1145,7 +1152,7 @@ CHECK_SIZE_AND_OFFSET(mntent, mnt_passno);
|
||||
|
||||
CHECK_TYPE_SIZE(ether_addr);
|
||||
|
||||
-#if (SANITIZER_LINUX || SANITIZER_FREEBSD) && !SANITIZER_ANDROID
|
||||
+#if (SANITIZER_LINUX || SANITIZER_FREEBSD) && !SANITIZER_ANDROID && !SANITIZER_NONGNU
|
||||
CHECK_TYPE_SIZE(ipc_perm);
|
||||
# if SANITIZER_FREEBSD
|
||||
CHECK_SIZE_AND_OFFSET(ipc_perm, key);
|
||||
@@ -1206,7 +1213,7 @@ CHECK_SIZE_AND_OFFSET(ifaddrs, ifa_dstaddr);
|
||||
CHECK_SIZE_AND_OFFSET(ifaddrs, ifa_data);
|
||||
#endif
|
||||
|
||||
-#if SANITIZER_LINUX
|
||||
+#if SANITIZER_LINUX && !SANITIZER_NONGNU
|
||||
COMPILER_CHECK(sizeof(__sanitizer_mallinfo) == sizeof(struct mallinfo));
|
||||
#endif
|
||||
|
||||
@@ -1256,7 +1263,7 @@ COMPILER_CHECK(__sanitizer_XDR_DECODE == XDR_DECODE);
|
||||
COMPILER_CHECK(__sanitizer_XDR_FREE == XDR_FREE);
|
||||
#endif
|
||||
|
||||
-#if SANITIZER_LINUX && !SANITIZER_ANDROID
|
||||
+#if SANITIZER_LINUX && !SANITIZER_ANDROID && !SANITIZER_NONGNU
|
||||
COMPILER_CHECK(sizeof(__sanitizer_FILE) <= sizeof(FILE));
|
||||
CHECK_SIZE_AND_OFFSET(FILE, _flags);
|
||||
CHECK_SIZE_AND_OFFSET(FILE, _IO_read_ptr);
|
||||
@@ -1275,7 +1282,7 @@ CHECK_SIZE_AND_OFFSET(FILE, _chain);
|
||||
CHECK_SIZE_AND_OFFSET(FILE, _fileno);
|
||||
#endif
|
||||
|
||||
-#if SANITIZER_LINUX && !SANITIZER_ANDROID
|
||||
+#if SANITIZER_LINUX && !SANITIZER_ANDROID && !SANITIZER_NONGNU
|
||||
COMPILER_CHECK(sizeof(__sanitizer__obstack_chunk) <= sizeof(_obstack_chunk));
|
||||
CHECK_SIZE_AND_OFFSET(_obstack_chunk, limit);
|
||||
CHECK_SIZE_AND_OFFSET(_obstack_chunk, prev);
|
||||
diff --git a/lib/tsan/rtl/tsan_platform_linux.cc b/lib/tsan/rtl/tsan_platform_linux.cc
|
||||
index de989b780..51a97b554 100644
|
||||
--- a/lib/tsan/rtl/tsan_platform_linux.cc
|
||||
+++ b/lib/tsan/rtl/tsan_platform_linux.cc
|
||||
@@ -294,7 +294,7 @@ void InitializePlatform() {
|
||||
// This is required to properly "close" the fds, because we do not see internal
|
||||
// closes within glibc. The code is a pure hack.
|
||||
int ExtractResolvFDs(void *state, int *fds, int nfd) {
|
||||
-#if SANITIZER_LINUX && !SANITIZER_ANDROID
|
||||
+#if SANITIZER_LINUX && !SANITIZER_ANDROID && !SANITIZER_NONGNU
|
||||
int cnt = 0;
|
||||
struct __res_state *statp = (struct __res_state*)state;
|
||||
for (int i = 0; i < MAXNS && cnt < nfd; i++) {
|
||||
--
|
||||
2.19.0
|
||||
|
@ -972,6 +972,9 @@ self: super: {
|
||||
# Generate shell completions
|
||||
generateOptparseApplicativeCompletion "purs" dontHaddockPurescript;
|
||||
|
||||
# Generate shell completion for spago
|
||||
spago = generateOptparseApplicativeCompletion "spago" super.spago;
|
||||
|
||||
# 2020-06-05: HACK: Package can not pass test suite,
|
||||
# Upstream Report: https://github.com/kcsongor/generic-lens/issues/83
|
||||
generic-lens = dontCheck super.generic-lens;
|
||||
|
@ -1,6 +1,6 @@
|
||||
{ stdenv, fetchFromGitHub, makeWrapper }:
|
||||
let
|
||||
version = "0.9";
|
||||
version = "0.9.1";
|
||||
name = "chibi-scheme-${version}";
|
||||
in
|
||||
stdenv.mkDerivation {
|
||||
@ -18,7 +18,7 @@ stdenv.mkDerivation {
|
||||
owner = "ashinn";
|
||||
repo = "chibi-scheme";
|
||||
rev = version;
|
||||
sha256 = "1lnap41gl9vg82h557f4rlr69jgmd2gh0iqs6cxm77d39kv1scb8";
|
||||
sha256 = "0nd63i924ifh39cba1hd4sbi6vh1cb73v97nrn4bf8rrjh3k8pdi";
|
||||
};
|
||||
|
||||
buildInputs = [ makeWrapper ];
|
||||
|
@ -28,7 +28,7 @@ let
|
||||
|
||||
# TODO: Add a "dev" output containing the header files.
|
||||
outputs = [ "out" "man" "devdoc" ] ++
|
||||
optional crossCompiling "dev";
|
||||
optional crossCompiling "mini";
|
||||
setOutputFlags = false;
|
||||
|
||||
disallowedReferences = [ stdenv.cc ];
|
||||
@ -144,13 +144,13 @@ let
|
||||
--replace "$man" /no-such-path
|
||||
'' + optionalString crossCompiling
|
||||
''
|
||||
mkdir -p $dev/lib/perl5/cross_perl/${version}
|
||||
mkdir -p $mini/lib/perl5/cross_perl/${version}
|
||||
for dir in cnf/{stub,cpan}; do
|
||||
cp -r $dir/* $dev/lib/perl5/cross_perl/${version}
|
||||
cp -r $dir/* $mini/lib/perl5/cross_perl/${version}
|
||||
done
|
||||
|
||||
mkdir -p $dev/bin
|
||||
install -m755 miniperl $dev/bin/perl
|
||||
mkdir -p $mini/bin
|
||||
install -m755 miniperl $mini/bin/perl
|
||||
|
||||
export runtimeArch="$(ls $out/lib/perl5/site_perl/${version})"
|
||||
# wrapProgram should use a runtime-native SHELL by default, but
|
||||
@ -161,9 +161,9 @@ let
|
||||
# miniperl can't load the native modules there. However, it can
|
||||
# (and sometimes needs to) load and run some of the pure perl
|
||||
# code there, so we add it anyway. When needed, stubs can be put
|
||||
# into $dev/lib/perl5/cross_perl/${version}.
|
||||
wrapProgram $dev/bin/perl --prefix PERL5LIB : \
|
||||
"$dev/lib/perl5/cross_perl/${version}:$out/lib/perl5/${version}:$out/lib/perl5/${version}/$runtimeArch"
|
||||
# into $mini/lib/perl5/cross_perl/${version}.
|
||||
wrapProgram $mini/bin/perl --prefix PERL5LIB : \
|
||||
"$mini/lib/perl5/cross_perl/${version}:$out/lib/perl5/${version}:$out/lib/perl5/${version}/$runtimeArch"
|
||||
''; # */
|
||||
|
||||
meta = {
|
||||
|
@ -9,4 +9,4 @@ addPerlLibPath () {
|
||||
addToSearchPath PERL5LIB $1/lib/perl5/site_perl/@version@/@runtimeArch@
|
||||
}
|
||||
|
||||
addEnvHooks "$targetOffset" addPerlLibPath
|
||||
addEnvHooks "$hostOffset" addPerlLibPath
|
||||
|
@ -2,11 +2,11 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "rakudo";
|
||||
version = "2020.07";
|
||||
version = "2020.08.1";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://www.rakudo.org/dl/rakudo/rakudo-${version}.tar.gz";
|
||||
sha256 = "1f6ay09k4n7dbcvvla45yg1lfb7vk2ssymmll2xiagjb77hlsqir";
|
||||
sha256 = "1jwlqppm2g6ivzpipkcyihsxzsii3qyx1f35n7wj5dsf99b3hkfm";
|
||||
};
|
||||
|
||||
buildInputs = [ icu zlib gmp perl ];
|
||||
|
@ -3,11 +3,11 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "moarvm";
|
||||
version = "2020.07";
|
||||
version = "2020.08";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://www.moarvm.org/releases/MoarVM-${version}.tar.gz";
|
||||
sha256 = "1kzp76vqvny8gpp0b4xg1hg4vih4gmic4w1lddc9gqz03dx8hj6s";
|
||||
sha256 = "1gq7z4z5lnkai01721waawkkal82sdmyra05nnbfb1986mq5xpiy";
|
||||
};
|
||||
|
||||
buildInputs = [ perl ] ++ stdenv.lib.optionals stdenv.isDarwin [ CoreServices ApplicationServices ];
|
||||
|
@ -2,11 +2,11 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "nqp";
|
||||
version = "2020.07";
|
||||
version = "2020.08.1";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://github.com/perl6/nqp/releases/download/${version}/nqp-${version}.tar.gz";
|
||||
sha256 = "0kian8xsyj51m120nh68c9q359l7iipkddph3r8yzvn41zql3y8v";
|
||||
sha256 = "0pxmg22dx6rhfgrxq4gbwqf6d2nahw6iprjvrg8brkbcbyj3ryhd";
|
||||
};
|
||||
|
||||
buildInputs = [ perl ];
|
||||
|
@ -2,12 +2,12 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "red";
|
||||
version = "0.6.3";
|
||||
version = "0.6.4";
|
||||
src = fetchFromGitHub {
|
||||
rev = "6a43c767fa2e85d668b83f749158a18e62c30f70";
|
||||
rev = "755eb943ccea9e78c2cab0f20b313a52404355cb";
|
||||
owner = "red";
|
||||
repo = "red";
|
||||
sha256 = "1zh6xc728bs7r4v5jz1jjrdk0xd838xsxmvy9gfg75a3zffm0slr";
|
||||
sha256 = "sha256:045rrg9666zczgrwyyyglivzdzja103s52b0fzj7hqmr1fz68q37";
|
||||
};
|
||||
|
||||
rebol = fetchurl {
|
||||
@ -36,7 +36,7 @@ stdenv.mkDerivation rec {
|
||||
${r2} -qw red.r tests/hello.red
|
||||
|
||||
# Compiling the Red console...
|
||||
${r2} -qw red.r -r environment/console/console.red
|
||||
${r2} -qw red.r -r environment/console/CLI/console.red
|
||||
|
||||
# Generating docs...
|
||||
cd docs
|
||||
|
@ -18,6 +18,6 @@ stdenv.mkDerivation rec {
|
||||
homepage = "http://assimp.sourceforge.net/";
|
||||
license = licenses.bsd3;
|
||||
maintainers = with maintainers; [ ehmry ];
|
||||
platforms = platforms.linux;
|
||||
platforms = platforms.linux ++ platforms.darwin;
|
||||
};
|
||||
}
|
||||
|
@ -1,11 +1,11 @@
|
||||
# TODO: Resolve the issues with the Mono bindings.
|
||||
|
||||
{ stdenv, fetchurl, fetchpatch, lib
|
||||
{ stdenv, fetchgit, lib
|
||||
, pkgconfig, autoreconfHook
|
||||
, glib, dbus-glib, gtkVersion ? "3"
|
||||
, gtk2 ? null, libindicator-gtk2 ? null, libdbusmenu-gtk2 ? null
|
||||
, gtk3 ? null, libindicator-gtk3 ? null, libdbusmenu-gtk3 ? null
|
||||
, vala, gobject-introspection
|
||||
, gtk-doc, vala, gobject-introspection
|
||||
, monoSupport ? false, mono ? null, gtk-sharp-2_0 ? null
|
||||
}:
|
||||
|
||||
@ -15,18 +15,17 @@ with lib;
|
||||
stdenv.mkDerivation rec {
|
||||
name = let postfix = if gtkVersion == "2" && monoSupport then "sharp" else "gtk${gtkVersion}";
|
||||
in "libappindicator-${postfix}-${version}";
|
||||
version = "${versionMajor}.${versionMinor}";
|
||||
versionMajor = "12.10";
|
||||
versionMinor = "0";
|
||||
version = "12.10.1+20.10.20200706.1";
|
||||
|
||||
outputs = [ "out" "dev" ];
|
||||
|
||||
src = fetchurl {
|
||||
url = "${meta.homepage}/${versionMajor}/${version}/+download/libappindicator-${version}.tar.gz";
|
||||
sha256 = "17xlqd60v0zllrxp8bgq3k5a1jkj0svkqn8rzllcyjh8k0gpr46m";
|
||||
src = fetchgit {
|
||||
url = "https://git.launchpad.net/ubuntu/+source/libappindicator";
|
||||
rev = "fe25e53bc7e39cd59ad6b3270cd7a6a9c78c4f44";
|
||||
sha256 = "0xjvbl4gn7ra2fs6gn2g9s787kzb5cg9hv79iqsz949rxh4iw32d";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ pkgconfig autoreconfHook vala gobject-introspection ];
|
||||
nativeBuildInputs = [ pkgconfig autoreconfHook vala gobject-introspection gtk-doc ];
|
||||
|
||||
propagatedBuildInputs =
|
||||
if gtkVersion == "2"
|
||||
@ -39,14 +38,9 @@ stdenv.mkDerivation rec {
|
||||
then [ libindicator-gtk2 ] ++ optionals monoSupport [ mono gtk-sharp-2_0 ]
|
||||
else [ libindicator-gtk3 ]);
|
||||
|
||||
patches = [
|
||||
# Remove python2 from libappindicator.
|
||||
(fetchpatch {
|
||||
name = "no-python.patch";
|
||||
url = "https://src.fedoraproject.org/rpms/libappindicator/raw/8508f7a52437679fd95a79b4630373f08315f189/f/nopython.patch";
|
||||
sha256 = "18b1xzvwsbhhfpbzf5zragij4g79pa04y1dk6v5ci1wsjvii725s";
|
||||
})
|
||||
];
|
||||
preAutoreconf = ''
|
||||
gtkdocize
|
||||
'';
|
||||
|
||||
configureFlags = [
|
||||
"CFLAGS=-Wno-error"
|
||||
|
@ -23,6 +23,8 @@ stdenv.mkDerivation rec {
|
||||
|
||||
configureFlags = stdenv.lib.optional stdenv.cc.isClang "--host=${stdenv.hostPlatform.system}";
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
buildInputs =
|
||||
[ glib cairo fontconfig libtiff giflib
|
||||
libjpeg libpng libXrender libexif
|
||||
|
@ -4,22 +4,29 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "librseq";
|
||||
version = "0.1.0pre54_${builtins.substring 0 7 src.rev}";
|
||||
version = "0.1.0pre70_${builtins.substring 0 7 src.rev}";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "compudj";
|
||||
repo = "librseq";
|
||||
rev = "152600188dd214a0b2c6a8c66380e50c6ad27154";
|
||||
sha256 = "0mivjmgdkgrr6z2gz3k6q6wgnvyvw9xzy65f6ipvqva68sxhk0mx";
|
||||
rev = "d1cdec98d476b16ca5e2d9d7eabcf9f1c97e6111";
|
||||
sha256 = "0vgillrxc1knq591gjj99x2ws6q1xpm5dmfrhsxisngfpcnjr10v";
|
||||
};
|
||||
|
||||
outputs = [ "out" "dev" ];
|
||||
outputs = [ "out" "dev" "man" ];
|
||||
nativeBuildInputs = [ autoreconfHook ];
|
||||
buildInputs = [ linuxHeaders ];
|
||||
|
||||
installTargets = [ "install" "install-man" ];
|
||||
|
||||
doCheck = true;
|
||||
separateDebugInfo = true;
|
||||
enableParallelBuilding = true;
|
||||
|
||||
patchPhase = ''
|
||||
patchShebangs tests
|
||||
'';
|
||||
|
||||
# The share/ subdir only contains a doc/ with a README.md that just describes
|
||||
# how to compile the library, which clearly isn't very useful! So just get
|
||||
# rid of it anyway.
|
||||
|
@ -1,19 +1,19 @@
|
||||
{ stdenv, fetchFromGitHub, meson, ninja }:
|
||||
{ stdenv, fetchFromGitHub, meson, ninja, nasm }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "libvmaf";
|
||||
version = "1.5.2";
|
||||
version = "1.5.3";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "netflix";
|
||||
repo = "vmaf";
|
||||
rev = "v${version}";
|
||||
sha256 = "18w0z3w90fdbzsqaa4diwvq0xmvg0aiw4hi3aaa4pq0zgnb8g3mk";
|
||||
sha256 = "0x3l3g0hgrrjh3ygmxr1pd3rd5589s07c7id35nvj76ch5b7gy63";
|
||||
};
|
||||
|
||||
sourceRoot = "source/libvmaf";
|
||||
|
||||
nativeBuildInputs = [ meson ninja ];
|
||||
nativeBuildInputs = [ meson ninja nasm ];
|
||||
outputs = [ "out" "dev" ];
|
||||
doCheck = true;
|
||||
|
||||
|
42
pkgs/development/libraries/muparserx/default.nix
Normal file
42
pkgs/development/libraries/muparserx/default.nix
Normal file
@ -0,0 +1,42 @@
|
||||
{ stdenv
|
||||
, fetchFromGitHub
|
||||
, cmake
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "muparserx";
|
||||
version = "4.0.8";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "beltoforion";
|
||||
repo = "muparserx";
|
||||
rev = "v${version}";
|
||||
sha256 = "097pkdffv0phr0345hy06mjm5pfy259z13plsvbxvcmds80wl48v";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ cmake ];
|
||||
|
||||
cmakeFlags = [
|
||||
"-DCMAKE_BUILD_TYPE=Release"
|
||||
];
|
||||
|
||||
doCheck = true;
|
||||
checkPhase = ''
|
||||
echo "***Muparserx self-test***"
|
||||
echo "quit" | ./example > test_result.log
|
||||
cat test_result.log
|
||||
if grep -Fqi "failed" test_result.log; then
|
||||
echo ">=1 muparserx tests failed"
|
||||
exit 1
|
||||
else
|
||||
echo -e "\nmuparserx tests succeeded"
|
||||
fi
|
||||
'';
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
description = "A C++ Library for Parsing Expressions with Strings, Complex Numbers, Vectors, Matrices and more.";
|
||||
homepage = "https://beltoforion.de/en/muparserx/";
|
||||
license = licenses.bsd2;
|
||||
maintainers = with maintainers; [ drewrisinger ];
|
||||
};
|
||||
}
|
@ -11,8 +11,7 @@ stdenv.mkDerivation rec {
|
||||
configureFlags = [
|
||||
"--enable-pcre2-16"
|
||||
"--enable-pcre2-32"
|
||||
"--enable-jit"
|
||||
];
|
||||
] ++ stdenv.lib.optional (!stdenv.hostPlatform.isRiscV) "--enable-jit";
|
||||
|
||||
outputs = [ "bin" "dev" "out" "doc" "man" "devdoc" ];
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
{ qtModule, lib, fetchpatch, python3, qtbase, qtsvg }:
|
||||
{ qtModule, lib, python3, qtbase, qtsvg }:
|
||||
|
||||
with lib;
|
||||
|
||||
@ -23,12 +23,4 @@ qtModule {
|
||||
"bin/qmlscene"
|
||||
"bin/qmltestrunner"
|
||||
];
|
||||
patches =
|
||||
# https://mail.kde.org/pipermail/kde-distro-packagers/2020-June/000419.html
|
||||
lib.optional (lib.versionAtLeast qtbase.version "5.14.2")
|
||||
(fetchpatch {
|
||||
url = "https://codereview.qt-project.org/gitweb?p=qt/qtdeclarative.git;a=patch;h=3e47ac319b0f53c43cc02a8356c2dec4f0daeef4";
|
||||
sha256 = "0wvncg7047q73nm0svc6kb14sigwk7sc53r4778kn033aj0qqszj";
|
||||
name = "qtdeclarative-QQuickItemView-fix-max-extent.patch";
|
||||
});
|
||||
}
|
||||
|
@ -15,7 +15,7 @@
|
||||
, gn
|
||||
, cups, darwin, openbsm, runCommand, xcbuild, writeScriptBin
|
||||
, ffmpeg_3 ? null
|
||||
, lib, stdenv
|
||||
, lib, stdenv, fetchpatch
|
||||
}:
|
||||
|
||||
with stdenv.lib;
|
||||
@ -38,6 +38,17 @@ qtModule {
|
||||
# which cannot be set at the same time as -Wformat-security
|
||||
hardeningDisable = [ "format" ];
|
||||
|
||||
patches = [
|
||||
# Fix build with bison-3.7: https://code.qt.io/cgit/qt/qtwebengine-chromium.git/commit/?id=1a53f599
|
||||
(fetchpatch {
|
||||
name = "qtwebengine-bison-3.7-build.patch";
|
||||
url = "https://code.qt.io/cgit/qt/qtwebengine-chromium.git/patch/?id=1a53f599";
|
||||
sha256 = "1nqpyn5fq37q7i9nasag6i14lnz0d7sld5ikqhlm8qwq9d7gbmjy";
|
||||
stripLen = 1;
|
||||
extraPrefix = "src/3rdparty/";
|
||||
})
|
||||
];
|
||||
|
||||
postPatch =
|
||||
# Patch Chromium build tools
|
||||
''
|
||||
|
@ -1,13 +1,13 @@
|
||||
{ gnustep, lib, fetchFromGitHub , libxml2, openssl_1_1
|
||||
, openldap, mysql, libmysqlclient, postgresql }: with lib; gnustep.stdenv.mkDerivation rec {
|
||||
pname = "sope";
|
||||
version = "4.3.2";
|
||||
version = "5.0.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "inverse-inc";
|
||||
repo = pname;
|
||||
rev = "SOPE-${version}";
|
||||
sha256 = "0ny1ihx38gd25w8f3dfybyswvyjfljvb2fhfmkajgg6hhjrkfar2";
|
||||
sha256 = "sha256-7NM9wcyHDSVmjjqu489Ff3iJgl9VM+UBF3XYWoiHHTg=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ gnustep.make ];
|
||||
|
@ -1,22 +1,25 @@
|
||||
{ stdenv, fetchurl, cmake }:
|
||||
{ stdenv, fetchFromGitHub, cmake, openmp }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "vid-stab";
|
||||
version = "0.98b";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://github.com/georgmartius/vid.stab/archive/release-${version}.tar.gz";
|
||||
sha256 = "09fh6xbd1f5xp3il3dpvr87skmnp2mm2hfmg4s9rvj4y8zvhn3sk";
|
||||
pname = "vid.stab";
|
||||
version = "1.1.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "georgmartius";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "0a3frpm2kdbx7vszhg64p3alisag73bcspl7fp3a2f1kgq7rbh38";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ cmake ];
|
||||
|
||||
|
||||
buildInputs = stdenv.lib.optionals stdenv.cc.isClang [ openmp ];
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
description = "Video stabilization library";
|
||||
homepage = "http://public.hronopik.de/vid.stab/";
|
||||
license = licenses.gpl2;
|
||||
homepage = "http://public.hronopik.de/vid.stab/";
|
||||
license = licenses.gpl2Plus;
|
||||
maintainers = with maintainers; [ codyopel ];
|
||||
platforms = platforms.all;
|
||||
platforms = platforms.all;
|
||||
};
|
||||
}
|
||||
|
||||
|
@ -8,13 +8,13 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "wxsqlite3";
|
||||
version = "4.5.1";
|
||||
version = "4.6.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "utelle";
|
||||
repo = "wxsqlite3";
|
||||
rev = "v${version}";
|
||||
sha256 = "0090f7r3blks18vifkna4l890fwaya58ajh9qblbw9065zj5hrm3";
|
||||
sha256 = "0snsysfrr5h66mybls8r8k781v732dlfn4jdnmk348jgvny275fj";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ autoreconfHook ];
|
||||
|
@ -4,13 +4,13 @@
|
||||
assert withSystemd -> systemd != null;
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "yder";
|
||||
version = "1.4.10";
|
||||
version = "1.4.11";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "babelouest";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "1m1aw4im1vvddkl7mknq0h0nj0x2zpql3r17lxhw4mmib05zbdgj";
|
||||
sha256 = "0gm6l9y4jkxbq6vskdv1ivlq795ic28nhiyq21mzk3mx6j8klwip";
|
||||
};
|
||||
|
||||
patches = [
|
||||
|
@ -4,11 +4,11 @@ buildDunePackage rec {
|
||||
minimumOCamlVersion = "4.08";
|
||||
|
||||
pname = "mirage-crypto";
|
||||
version = "0.8.3";
|
||||
version = "0.8.4";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://github.com/mirage/mirage-crypto/releases/download/v${version}/mirage-crypto-v${version}.tbz";
|
||||
sha256 = "08rmhjrk046nnhbdk16vg7w7ink4bj6yq9dsjcky5psn982aqiwi";
|
||||
sha256 = "1w09wllls4rp1abq0awffxf69dn0xciy6hsqz413ing5r151wjxr";
|
||||
};
|
||||
|
||||
useDune2 = true;
|
||||
|
@ -42,7 +42,7 @@ toPerlModule(stdenv.mkDerivation (
|
||||
version = lib.getVersion attrs; # TODO: phase-out `attrs.name`
|
||||
builder = ./builder.sh;
|
||||
buildInputs = buildInputs ++ [ perl ];
|
||||
nativeBuildInputs = nativeBuildInputs ++ [ (perl.dev or perl) ];
|
||||
nativeBuildInputs = nativeBuildInputs ++ [ (perl.mini or perl) ];
|
||||
fullperl = buildPerl;
|
||||
}
|
||||
))
|
||||
|
25
pkgs/development/python-modules/multitasking/default.nix
Normal file
25
pkgs/development/python-modules/multitasking/default.nix
Normal file
@ -0,0 +1,25 @@
|
||||
{ lib
|
||||
, buildPythonPackage
|
||||
, fetchPypi
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "multitasking";
|
||||
version = "0.0.9";
|
||||
|
||||
# GitHub source releases aren't tagged
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "b59d99f709d2e17d60ccaa2be09771b6e9ed9391c63f083c0701e724f624d2e0";
|
||||
};
|
||||
|
||||
doCheck = false; # No tests included
|
||||
pythonImportsCheck = [ "multitasking" ];
|
||||
|
||||
meta = with lib; {
|
||||
description = "Non-blocking Python methods using decorators";
|
||||
homepage = "https://github.com/ranaroussi/multitasking";
|
||||
license = licenses.asl20;
|
||||
maintainers = with maintainers; [ drewrisinger ];
|
||||
};
|
||||
}
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user