Merge master into staging-next
This commit is contained in:
commit
b61ad0afc2
5
.github/workflows/pending-clear.yml
vendored
5
.github/workflows/pending-clear.yml
vendored
@ -13,10 +13,15 @@ jobs:
|
||||
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 \
|
||||
|
5
.github/workflows/pending-set.yml
vendored
5
.github/workflows/pending-set.yml
vendored
@ -12,10 +12,15 @@ jobs:
|
||||
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 \
|
||||
|
@ -6749,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";
|
||||
|
@ -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";
|
||||
|
||||
|
@ -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)
|
||||
|
@ -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
|
||||
|
@ -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 {};
|
||||
|
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
|
||||
'';
|
||||
|
||||
|
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";
|
||||
};
|
||||
}
|
@ -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 ];
|
||||
|
||||
|
@ -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 = [
|
||||
systemd.lib
|
||||
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
|
||||
|
@ -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 ]
|
||||
|
@ -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;
|
||||
|
@ -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/";
|
||||
|
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
|
||||
|
@ -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"
|
||||
|
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" ];
|
||||
|
||||
|
@ -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";
|
||||
pname = "vid.stab";
|
||||
version = "1.1.0";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://github.com/georgmartius/vid.stab/archive/release-${version}.tar.gz";
|
||||
sha256 = "09fh6xbd1f5xp3il3dpvr87skmnp2mm2hfmg4s9rvj4y8zvhn3sk";
|
||||
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;
|
||||
};
|
||||
}
|
||||
|
||||
|
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 ];
|
||||
};
|
||||
}
|
@ -6,13 +6,13 @@
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "pylatexenc";
|
||||
version = "2.4";
|
||||
version = "2.7";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "phfaist";
|
||||
repo = "pylatexenc";
|
||||
rev = "v${version}";
|
||||
sha256 = "0i4frypbv90mjir8bkp03cwkvwhgvc9p3fw6q2jz1dn7fw94v2rv";
|
||||
sha256 = "1hpcwbknfah3mky2m4asw15b9qdvv4k5ni0js764n1jpi83m1zgk";
|
||||
};
|
||||
|
||||
pythonImportsCheck = [ "pylatexenc" ];
|
||||
|
@ -6,6 +6,9 @@
|
||||
, cmake
|
||||
, cvxpy
|
||||
, cython
|
||||
, muparserx
|
||||
, ninja
|
||||
, nlohmann_json
|
||||
, numpy
|
||||
, openblas
|
||||
, pybind11
|
||||
@ -19,7 +22,7 @@
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "qiskit-aer";
|
||||
version = "0.5.2";
|
||||
version = "0.6.1";
|
||||
|
||||
disabled = pythonOlder "3.5";
|
||||
|
||||
@ -27,18 +30,20 @@ buildPythonPackage rec {
|
||||
owner = "Qiskit";
|
||||
repo = "qiskit-aer";
|
||||
rev = version;
|
||||
fetchSubmodules = true; # fetch muparserx and other required libraries
|
||||
sha256 = "0vw6b69h8pvzxhaz3k8sg9ac792gz3kklfv0izs6ra83y1dfwhjz";
|
||||
sha256 = "1fnv11diis0as8zcc57mamz0gbjd6vj7nw3arxzvwa77ja803sr4";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
cmake
|
||||
ninja
|
||||
scikit-build
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
openblas
|
||||
spdlog
|
||||
nlohmann_json
|
||||
muparserx
|
||||
];
|
||||
|
||||
propagatedBuildInputs = [
|
||||
@ -48,10 +53,10 @@ buildPythonPackage rec {
|
||||
pybind11
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
# remove dependency on PyPi cmake package, which isn't in Nixpkgs
|
||||
substituteInPlace setup.py --replace "'cmake!=3.17,!=3.17.0'" ""
|
||||
'';
|
||||
patches = [
|
||||
# TODO: remove in favor of qiskit-aer PR #877 patch once accepted/stable
|
||||
./remove-conan-install.patch
|
||||
];
|
||||
|
||||
dontUseCmakeConfigure = true;
|
||||
|
||||
@ -60,11 +65,6 @@ buildPythonPackage rec {
|
||||
"-DAER_THRUST_BACKEND=OMP"
|
||||
];
|
||||
|
||||
# Needed to find qiskit.providers.aer modules in cython. This exists in GitHub, don't know why it isn't copied by default
|
||||
postFixup = ''
|
||||
touch $out/${python.sitePackages}/qiskit/__init__.pxd
|
||||
'';
|
||||
|
||||
# *** Testing ***
|
||||
|
||||
pythonImportsCheck = [
|
||||
@ -77,11 +77,6 @@ buildPythonPackage rec {
|
||||
pytestCheckHook
|
||||
];
|
||||
dontUseSetuptoolsCheck = true; # Otherwise runs tests twice
|
||||
disabledTests = [
|
||||
# broken with cvxpy >= 1.1.0, see https://github.com/Qiskit/qiskit-aer/issues/779.
|
||||
# TODO: Remove once resolved, probably next qiskit-aer version
|
||||
"test_clifford"
|
||||
];
|
||||
|
||||
preCheck = ''
|
||||
# Tests include a compiled "circuit" which is auto-built in $HOME
|
||||
@ -100,11 +95,8 @@ buildPythonPackage rec {
|
||||
description = "High performance simulators for Qiskit";
|
||||
homepage = "https://qiskit.org/aer";
|
||||
downloadPage = "https://github.com/QISKit/qiskit-aer/releases";
|
||||
changelog = "https://qiskit.org/documentation/release_notes.html";
|
||||
license = licenses.asl20;
|
||||
maintainers = with maintainers; [ drewrisinger ];
|
||||
# Doesn't build on aarch64 (libmuparserx issue).
|
||||
# Can fix by building muparserx from source (https://github.com/beltoforion/muparserx)
|
||||
# or in future updates (e.g. Raspberry Pi enabled via https://github.com/Qiskit/qiskit-aer/pull/651 & https://github.com/Qiskit/qiskit-aer/pull/660)
|
||||
platforms = platforms.x86_64;
|
||||
};
|
||||
}
|
||||
|
@ -0,0 +1,63 @@
|
||||
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
||||
index efeacfc..77bd6bd 100755
|
||||
--- a/CMakeLists.txt
|
||||
+++ b/CMakeLists.txt
|
||||
@@ -121,7 +121,11 @@ endif()
|
||||
# Looking for external libraries
|
||||
#
|
||||
|
||||
-setup_conan()
|
||||
+find_package(muparserx REQUIRED)
|
||||
+find_package(nlohmann_json REQUIRED)
|
||||
+find_package(spdlog REQUIRED)
|
||||
+# for tests only
|
||||
+find_package(catch2)
|
||||
|
||||
# If we do not set them with a space CMake fails afterwards if nothing is set for this vars!
|
||||
set(AER_LINKER_FLAGS " ")
|
||||
@@ -269,16 +273,16 @@ endif()
|
||||
set(AER_LIBRARIES
|
||||
${AER_LIBRARIES}
|
||||
${BLAS_LIBRARIES}
|
||||
- CONAN_PKG::nlohmann_json
|
||||
+ nlohmann_json
|
||||
Threads::Threads
|
||||
- CONAN_PKG::spdlog
|
||||
+ spdlog
|
||||
${DL_LIB}
|
||||
${THRUST_DEPENDANT_LIBS})
|
||||
|
||||
set(AER_COMPILER_DEFINITIONS ${AER_COMPILER_DEFINITIONS} ${CONAN_DEFINES})
|
||||
# Cython build is only enabled if building through scikit-build.
|
||||
if(SKBUILD) # Terra Addon build
|
||||
- set(AER_LIBRARIES ${AER_LIBRARIES} CONAN_PKG::muparserx)
|
||||
+ set(AER_LIBRARIES ${AER_LIBRARIES} muparserx)
|
||||
add_subdirectory(qiskit/providers/aer/pulse/qutip_extra_lite/cy)
|
||||
add_subdirectory(qiskit/providers/aer/backends/wrappers)
|
||||
add_subdirectory(src/open_pulse)
|
||||
diff --git a/setup.py b/setup.py
|
||||
index fd71e9f..1561cc4 100644
|
||||
--- a/setup.py
|
||||
+++ b/setup.py
|
||||
@@ -11,12 +11,6 @@ import inspect
|
||||
|
||||
PACKAGE_NAME = os.getenv('QISKIT_AER_PACKAGE_NAME', 'qiskit-aer')
|
||||
|
||||
-try:
|
||||
- from conans import client
|
||||
-except ImportError:
|
||||
- subprocess.call([sys.executable, '-m', 'pip', 'install', 'conan'])
|
||||
- from conans import client
|
||||
-
|
||||
try:
|
||||
from skbuild import setup
|
||||
except ImportError:
|
||||
@@ -46,8 +40,6 @@ common_requirements = [
|
||||
|
||||
setup_requirements = common_requirements + [
|
||||
'scikit-build',
|
||||
- 'cmake!=3.17,!=3.17.0',
|
||||
- 'conan>=1.22.2'
|
||||
]
|
||||
|
||||
requirements = common_requirements + ['qiskit-terra>=0.12.0']
|
@ -2,6 +2,7 @@
|
||||
, pythonOlder
|
||||
, buildPythonPackage
|
||||
, fetchFromGitHub
|
||||
, fetchpatch
|
||||
# , cplex
|
||||
, cvxpy
|
||||
, dlx
|
||||
@ -16,6 +17,7 @@
|
||||
, qiskit-terra
|
||||
, quandl
|
||||
, scikitlearn
|
||||
, yfinance
|
||||
# Check Inputs
|
||||
, ddt
|
||||
, pytestCheckHook
|
||||
@ -24,7 +26,7 @@
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "qiskit-aqua";
|
||||
version = "0.7.3";
|
||||
version = "0.7.5";
|
||||
|
||||
disabled = pythonOlder "3.5";
|
||||
|
||||
@ -33,9 +35,18 @@ buildPythonPackage rec {
|
||||
owner = "Qiskit";
|
||||
repo = "qiskit-aqua";
|
||||
rev = version;
|
||||
sha256 = "04zcnrc0vi6dfjahp1019h2ngdgi7l7jvfs9aw0y306nd9g6qgjc";
|
||||
sha256 = "19sdv7lnc4b1c86rd1dv7pjpi8cmrpzbv7nav0fb899ki8ldqdwq";
|
||||
};
|
||||
|
||||
# TODO: remove in next release
|
||||
patches = [
|
||||
(fetchpatch {
|
||||
name = "qiskit-aqua-fix-test-issue-1214.patch";
|
||||
url = "https://github.com/Qiskit/qiskit-aqua/commit/284a4323192ac85787b22cbe5f344996fae16f7d.patch";
|
||||
sha256 = "0zl8hqa2fq9ng793x4dhh0ny67nnbjcd8l1cdsaaab4ca1y0xcfr";
|
||||
})
|
||||
];
|
||||
|
||||
# Optional packages: pyscf (see below NOTE) & pytorch. Can install via pip/nix if needed.
|
||||
propagatedBuildInputs = [
|
||||
# cplex
|
||||
@ -51,6 +62,7 @@ buildPythonPackage rec {
|
||||
qiskit-ignis
|
||||
quandl
|
||||
scikitlearn
|
||||
yfinance
|
||||
];
|
||||
|
||||
# *** NOTE ***
|
||||
@ -105,8 +117,9 @@ buildPythonPackage rec {
|
||||
# Disabled due to missing pyscf
|
||||
"test_validate" # test/chemistry/test_inputparser.py
|
||||
|
||||
"test_binary" # in SklearnSVM, seems to have trouble with eigenvectors converging
|
||||
"test_pauli_expect_single" # fails for unknown reason, 3e-3 out of tolerance
|
||||
# Online tests
|
||||
"test_exchangedata"
|
||||
"test_yahoo"
|
||||
|
||||
# Disabling slow tests > 10 seconds
|
||||
"TestVQE"
|
||||
@ -119,7 +132,6 @@ buildPythonPackage rec {
|
||||
"TestQGAN"
|
||||
"test_evaluate_qasm_mode"
|
||||
"test_measurement_error_mitigation_auto_refresh"
|
||||
"test_exchangedata"
|
||||
"test_wikipedia"
|
||||
"test_shor_factoring_1__15___qasm_simulator____3__5__"
|
||||
"test_readme_sample"
|
||||
@ -138,11 +150,13 @@ buildPythonPackage rec {
|
||||
"test_oh"
|
||||
"test_confidence_intervals_00001"
|
||||
"test_eoh"
|
||||
"test_qasm_5"
|
||||
];
|
||||
|
||||
meta = with lib; {
|
||||
description = "An extensible library of quantum computing algorithms";
|
||||
homepage = "https://github.com/QISKit/qiskit-aqua";
|
||||
changelog = "https://qiskit.org/documentation/release_notes.html";
|
||||
license = licenses.asl20;
|
||||
maintainers = with maintainers; [ drewrisinger ];
|
||||
};
|
||||
|
@ -26,7 +26,7 @@
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "qiskit-ibmq-provider";
|
||||
version = "0.7.2";
|
||||
version = "0.8.0";
|
||||
|
||||
disabled = pythonOlder "3.6";
|
||||
|
||||
@ -34,7 +34,7 @@ buildPythonPackage rec {
|
||||
owner = "Qiskit";
|
||||
repo = pname;
|
||||
rev = version;
|
||||
sha256 = "11h1ca4v11pajzn1cxqhim1hfziqzj27xzakwln13g8zmiqx3csp";
|
||||
sha256 = "0rrpwr4a82j69j5ibl2g0nw8wbpg201cfz6f234k2v6pj500x9nl";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [
|
||||
@ -85,6 +85,7 @@ buildPythonPackage rec {
|
||||
meta = with lib; {
|
||||
description = "Qiskit provider for accessing the quantum devices and simulators at IBMQ";
|
||||
homepage = "https://github.com/Qiskit/qiskit-ibmq-provider";
|
||||
changelog = "https://qiskit.org/documentation/release_notes.html";
|
||||
license = licenses.asl20;
|
||||
maintainers = with maintainers; [ drewrisinger ];
|
||||
};
|
||||
|
@ -9,14 +9,15 @@
|
||||
, scikitlearn
|
||||
, scipy
|
||||
# Check Inputs
|
||||
, ddt
|
||||
, pytestCheckHook
|
||||
, ddt
|
||||
, pyfakefs
|
||||
, qiskit-aer
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "qiskit-ignis";
|
||||
version = "0.3.3";
|
||||
version = "0.4.0";
|
||||
|
||||
disabled = pythonOlder "3.6";
|
||||
|
||||
@ -25,7 +26,7 @@ buildPythonPackage rec {
|
||||
owner = "Qiskit";
|
||||
repo = "qiskit-ignis";
|
||||
rev = version;
|
||||
sha256 = "0sy9qpw0jqirsk9y61j5kr18jrw1wa812n7y98fjj6w668rrv560";
|
||||
sha256 = "07mxhaknkp121xm6mgrpcrbj9qw6j924ra3k0s6vr8qgvfcxvh0y";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [
|
||||
@ -41,18 +42,21 @@ buildPythonPackage rec {
|
||||
dontUseSetuptoolsCheck = true;
|
||||
preCheck = "export HOME=$TMPDIR";
|
||||
checkInputs = [
|
||||
ddt
|
||||
pytestCheckHook
|
||||
ddt
|
||||
pyfakefs
|
||||
qiskit-aer
|
||||
];
|
||||
# Test is in test/verification/test_entanglemet.py. test fails due to out-of-date calls & bad logic with this file since qiskit-ignis#328
|
||||
# see qiskit-ignis#386 for all issues. Should be able to re-enable in future.
|
||||
disabledTests = [ "TestEntanglement" ];
|
||||
disabledTests = [
|
||||
"test_tensored_meas_cal_on_circuit" # Flaky test, occasionally returns result outside bounds
|
||||
"test_qv_fitter" # execution hangs, ran for several minutes
|
||||
];
|
||||
|
||||
meta = with lib; {
|
||||
description = "Qiskit tools for quantum hardware verification, noise characterization, and error correction";
|
||||
homepage = "https://qiskit.org/ignis";
|
||||
downloadPage = "https://github.com/QISKit/qiskit-ignis/releases";
|
||||
changelog = "https://qiskit.org/documentation/release_notes.html";
|
||||
license = licenses.asl20;
|
||||
maintainers = with maintainers; [ drewrisinger ];
|
||||
};
|
||||
|
@ -8,12 +8,11 @@
|
||||
, fastjsonschema
|
||||
, jsonschema
|
||||
, numpy
|
||||
, marshmallow
|
||||
, marshmallow-polyfield
|
||||
, networkx
|
||||
, ply
|
||||
, psutil
|
||||
, python-constraint
|
||||
, python-dateutil
|
||||
, retworkx
|
||||
, scipy
|
||||
, sympy
|
||||
@ -36,7 +35,7 @@
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "qiskit-terra";
|
||||
version = "0.14.2";
|
||||
version = "0.15.1";
|
||||
|
||||
disabled = pythonOlder "3.5";
|
||||
|
||||
@ -44,7 +43,7 @@ buildPythonPackage rec {
|
||||
owner = "Qiskit";
|
||||
repo = pname;
|
||||
rev = version;
|
||||
sha256 = "0p5wapjvy81pnks100xbb23kbs2wyys9ykyc8z4968wl487lq4g5";
|
||||
sha256 = "1p7y36gj3675dmp05nwi0m9nc7h0bwyimir3ncf9wbkx3crrh99c";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ cython ];
|
||||
@ -54,13 +53,12 @@ buildPythonPackage rec {
|
||||
fastjsonschema
|
||||
jsonschema
|
||||
numpy
|
||||
marshmallow
|
||||
marshmallow-polyfield
|
||||
matplotlib
|
||||
networkx
|
||||
ply
|
||||
psutil
|
||||
python-constraint
|
||||
python-dateutil
|
||||
retworkx
|
||||
scipy
|
||||
sympy
|
||||
@ -74,10 +72,6 @@ buildPythonPackage rec {
|
||||
seaborn
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
# Fix relative imports in tests
|
||||
touch test/python/dagcircuit/__init__.py
|
||||
'';
|
||||
|
||||
# *** Tests ***
|
||||
checkInputs = [
|
||||
@ -94,9 +88,6 @@ buildPythonPackage rec {
|
||||
"qiskit.transpiler.passes.routing.cython.stochastic_swap.swap_trial"
|
||||
];
|
||||
|
||||
disabledTests = [
|
||||
"test_random_clifford_valid" # random test, fails at least once when testing locally.
|
||||
];
|
||||
pytestFlagsArray = [
|
||||
"--ignore=test/randomized/test_transpiler_equivalence.py" # collection requires qiskit-aer, which would cause circular dependency
|
||||
];
|
||||
@ -106,9 +97,9 @@ buildPythonPackage rec {
|
||||
preCheck = ''
|
||||
export PACKAGEDIR=$out/${python.sitePackages}
|
||||
echo "Moving Qiskit test files to package directory"
|
||||
cp -r $TMP/source/test $PACKAGEDIR
|
||||
cp -r $TMP/source/examples $PACKAGEDIR
|
||||
cp -r $TMP/source/qiskit/schemas/examples $PACKAGEDIR/qiskit/schemas/
|
||||
cp -r $TMP/$sourceRoot/test $PACKAGEDIR
|
||||
cp -r $TMP/$sourceRoot/examples $PACKAGEDIR
|
||||
cp -r $TMP/$sourceRoot/qiskit/schemas/examples $PACKAGEDIR/qiskit/schemas/
|
||||
|
||||
# run pytest from Nix's $out path
|
||||
pushd $PACKAGEDIR
|
||||
@ -127,6 +118,7 @@ buildPythonPackage rec {
|
||||
'';
|
||||
homepage = "https://qiskit.org/terra";
|
||||
downloadPage = "https://github.com/QISKit/qiskit-terra/releases";
|
||||
changelog = "https://qiskit.org/documentation/release_notes.html";
|
||||
license = licenses.asl20;
|
||||
maintainers = with maintainers; [ drewrisinger ];
|
||||
};
|
||||
|
@ -15,7 +15,7 @@
|
||||
buildPythonPackage rec {
|
||||
pname = "qiskit";
|
||||
# NOTE: This version denotes a specific set of subpackages. See https://qiskit.org/documentation/release_notes.html#version-history
|
||||
version = "0.19.6";
|
||||
version = "0.20.0";
|
||||
|
||||
disabled = pythonOlder "3.5";
|
||||
|
||||
@ -23,7 +23,7 @@ buildPythonPackage rec {
|
||||
owner = "Qiskit";
|
||||
repo = "qiskit";
|
||||
rev = version;
|
||||
sha256 = "0liby6ffgrla6wr4k742qkg8m80im372p6hmr4gkz47nmc76zy1i";
|
||||
sha256 = "1r23pjnql49gczf4k4m6ir5rr95gqdxjrks60p8a93d243mxx3c9";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [
|
||||
@ -36,14 +36,21 @@ buildPythonPackage rec {
|
||||
|
||||
checkInputs = [ pytestCheckHook ];
|
||||
dontUseSetuptoolsCheck = true;
|
||||
# following doesn't work b/c they are distributed across different nix sitePackages dirs. Tested with pytest though.
|
||||
pythonImportsCheck = [ "qiskit" "qiskit.circuit" "qiskit.ignis" "qiskit.providers.aer" "qiskit.aqua" ];
|
||||
|
||||
meta = {
|
||||
pythonImportsCheck = [
|
||||
"qiskit"
|
||||
"qiskit.aqua"
|
||||
"qiskit.circuit"
|
||||
"qiskit.ignis"
|
||||
"qiskit.providers.aer"
|
||||
];
|
||||
|
||||
meta = with lib; {
|
||||
description = "Software for developing quantum computing programs";
|
||||
homepage = "https://qiskit.org";
|
||||
downloadPage = "https://github.com/QISKit/qiskit/releases";
|
||||
license = lib.licenses.asl20;
|
||||
maintainers = with lib.maintainers; [ drewrisinger pandaman ];
|
||||
changelog = "https://qiskit.org/documentation/release_notes.html";
|
||||
license = licenses.asl20;
|
||||
maintainers = with maintainers; [ drewrisinger pandaman ];
|
||||
};
|
||||
}
|
||||
|
@ -1,53 +1,60 @@
|
||||
{ lib
|
||||
, buildPythonPackage
|
||||
, pythonOlder
|
||||
, pythonAtLeast
|
||||
, rustPlatform
|
||||
, python
|
||||
, fetchpatch
|
||||
, fetchFromGitHub
|
||||
, fetchPypi
|
||||
, pipInstallHook
|
||||
, maturin
|
||||
, pip
|
||||
# Check inputs
|
||||
, pytestCheckHook
|
||||
, numpy
|
||||
}:
|
||||
let
|
||||
rx-version = "0.3.4";
|
||||
|
||||
wheel-hashes = {
|
||||
"3.7" = { python = "cp37"; sha256 = "1hfrdj8svkfdraa299gcj18a601l4zn646fkgq7m56brpagssf9l"; };
|
||||
"3.8" = { python = "cp38"; sha256 = "0jm10ywaqr0b456pcp01pb7035nawlndfi998jv8p1a2f5xwjgiq"; };
|
||||
};
|
||||
lookup = set: key: default: if (builtins.hasAttr key set) then (builtins.getAttr key set) else default;
|
||||
wheel-args = lookup
|
||||
wheel-hashes
|
||||
python.pythonVersion
|
||||
(throw "retworkx python version & hash not included. Override attribute `wheel-args` with version & hash at https://pypi.org/project/retworkx");
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "retworkx";
|
||||
version = "0.4.0";
|
||||
|
||||
github-source = fetchFromGitHub {
|
||||
src = fetchFromGitHub {
|
||||
owner = "Qiskit";
|
||||
repo = "retworkx";
|
||||
rev = rx-version;
|
||||
sha256 = "0cd3x64y49q9a3jrkiknlfkiccxkxgl624x5pqk7gm34s1lnzl8h";
|
||||
};
|
||||
in
|
||||
buildPythonPackage rec {
|
||||
pname = "retworkx";
|
||||
version = rx-version;
|
||||
format = "wheel";
|
||||
|
||||
disabled = pythonOlder "3.5" || pythonAtLeast "3.9"; # compiled versions only included for 3.5 <= py <= 3.8
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version format;
|
||||
inherit (wheel-args) python sha256;
|
||||
abi = if pythonOlder "3.8" then "${wheel-args.python}m" else wheel-args.python;
|
||||
platform = "manylinux2010_x86_64"; # i686, aarch64, and ppc64 also available, restricting to x86 for simplicity
|
||||
rev = version;
|
||||
sha256 = "1xqp6d39apkjvd0ad9vw81cp2iqzhpagfa4p171xqm3bwfn2imdc";
|
||||
};
|
||||
|
||||
pythonImportsCheck = [ "retworkx" ];
|
||||
cargoSha256 = "0bma0l14jv5qhcsxck7vw3ak1w3c8v84cq4hii86i4iqk523zns5";
|
||||
cargoPatches = [
|
||||
( fetchpatch {
|
||||
name = "retworkx-cargo-lock.patch";
|
||||
url = "https://github.com/Qiskit/retworkx/commit/a02fd33d357a92dbe9530696a6d85aa59fe8a5b9.patch";
|
||||
sha256 = "0gvxr1nqp9ll4skfks4p4d964pshal25kb1nbfzhpyipnzddizr5";
|
||||
} )
|
||||
];
|
||||
|
||||
checkInputs = [ pytestCheckHook ];
|
||||
propagatedBuildInputs = [ python ];
|
||||
|
||||
nativeBuildInputs = [ pipInstallHook maturin pip ];
|
||||
|
||||
# Need to check AFTER python wheel is installed (b/c using Rust Build, not buildPythonPackage)
|
||||
doCheck = false;
|
||||
doInstallCheck = true;
|
||||
|
||||
buildPhase = ''
|
||||
runHook preBuild
|
||||
maturin build --release --manylinux off --strip --interpreter ${python.interpreter}
|
||||
runHook postBuild
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
install -Dm644 -t dist target/wheels/*.whl
|
||||
pipInstallPhase
|
||||
'';
|
||||
|
||||
installCheckInputs = [ pytestCheckHook numpy ];
|
||||
preCheck = ''
|
||||
pushd $(mktemp -d)
|
||||
cp -r ${github-source}/$sourceRoot/tests .
|
||||
export TESTDIR=$(mktemp -d)
|
||||
cp -r $TMP/$sourceRoot/tests $TESTDIR
|
||||
pushd $TESTDIR
|
||||
'';
|
||||
postCheck = "popd";
|
||||
|
||||
@ -55,8 +62,8 @@ buildPythonPackage rec {
|
||||
description = "A python graph library implemented in Rust.";
|
||||
homepage = "https://retworkx.readthedocs.io/en/latest/index.html";
|
||||
downloadPage = "https://github.com/Qiskit/retworkx/releases";
|
||||
changelog = "https://github.com/Qiskit/retworkx/releases/tag/${version}";
|
||||
license = licenses.asl20;
|
||||
maintainers = with maintainers; [ drewrisinger ];
|
||||
platforms = platforms.x86_64;
|
||||
};
|
||||
}
|
||||
|
36
pkgs/development/python-modules/yfinance/default.nix
Normal file
36
pkgs/development/python-modules/yfinance/default.nix
Normal file
@ -0,0 +1,36 @@
|
||||
{ lib
|
||||
, buildPythonPackage
|
||||
, fetchPypi
|
||||
, multitasking
|
||||
, numpy
|
||||
, pandas
|
||||
, requests
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "yfinance";
|
||||
version = "0.1.54";
|
||||
|
||||
# GitHub source releases aren't tagged
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "cee223cbd31e14955869f7978bcf83776d644345c7dea31ba5d41c309bfb0d3d";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [
|
||||
multitasking
|
||||
numpy
|
||||
pandas
|
||||
requests
|
||||
];
|
||||
|
||||
doCheck = false; # Tests require internet access
|
||||
pythonImportsCheck = [ "yfinance" ];
|
||||
|
||||
meta = with lib; {
|
||||
description = "Yahoo! Finance market data downloader (+faster Pandas Datareader)";
|
||||
homepage = "https://aroussi.com/post/python-yahoo-finance";
|
||||
license = licenses.asl20;
|
||||
maintainers = with maintainers; [ drewrisinger ];
|
||||
};
|
||||
}
|
@ -44,7 +44,7 @@ let generic = { major, version, src }:
|
||||
homepage = "http://alloytools.org/";
|
||||
downloadPage = "http://alloytools.org/download.html";
|
||||
license = licenses.mit;
|
||||
platforms = platforms.linux;
|
||||
platforms = platforms.unix;
|
||||
maintainers = with maintainers; [ notbandali ];
|
||||
};
|
||||
};
|
||||
|
@ -2,13 +2,13 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "flow";
|
||||
version = "0.131.0";
|
||||
version = "0.132.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "facebook";
|
||||
repo = "flow";
|
||||
rev = "refs/tags/v${version}";
|
||||
sha256 = "13a7gfsnfyssyi3b48s0d9k34rim493rarxd2rdyxyr4ir7jnb1p";
|
||||
sha256 = "1080kf2zxhbgz1zhm54w3hqbbvwpfllapcq4pgwahfyvf6zb86d7";
|
||||
};
|
||||
|
||||
installPhase = ''
|
||||
|
@ -26,7 +26,7 @@ ghcide_old_version="$(sed -En 's/.*\bversion = "(.*?)".*/\1/p' "$ghcide_derivati
|
||||
# This is the revision of ghcide used by hls on GitHub.
|
||||
ghcide_new_version=$(curl --silent "https://api.github.com/repos/haskell/haskell-language-server/contents/ghcide" | jq '.sha' --raw-output)
|
||||
|
||||
echo "Updating haskell-language-server from old version $ghcide_old_version to new version $ghcide_new_version."
|
||||
echo "Updating haskell-language-server's ghcide from old version $ghcide_old_version to new version $ghcide_new_version."
|
||||
echo "Running cabal2nix and outputting to ${ghcide_derivation_file}..."
|
||||
|
||||
cabal2nix --revision "$ghcide_new_version" "https://github.com/wz1000/ghcide" > "$ghcide_derivation_file"
|
||||
|
@ -2,14 +2,14 @@
|
||||
|
||||
buildGoPackage rec {
|
||||
pname = "open-policy-agent";
|
||||
version = "0.22.0";
|
||||
version = "0.23.2";
|
||||
|
||||
goPackagePath = "github.com/open-policy-agent/opa";
|
||||
src = fetchFromGitHub {
|
||||
owner = "open-policy-agent";
|
||||
repo = "opa";
|
||||
rev = "v${version}";
|
||||
sha256 = "1kndiiqf6b4j8zhv0ypjr9dfjgck25qiqa2bb0pmpm3j9460zzjs";
|
||||
sha256 = "18hpanfrzg6xnq1g0yws6g0lw4y191pnrqphccv13j6kqk3k10ps";
|
||||
};
|
||||
goDeps = ./deps.nix;
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
From: Antonio Terceiro <terceiro@debian.org>
|
||||
Date: Wed, 27 May 2015 09:36:17 -0300
|
||||
Subject: Support system-installed plugins
|
||||
Source: https://salsa.debian.org/ruby-team/vagrant/blob/cb672c6dc0c63f6552c5ec4d6d7d22929d353503/debian/patches/0004-Support-system-installed-plugins.patch
|
||||
Source: https://salsa.debian.org/ruby-team/vagrant/-/blob/9d86f222/debian/patches/0004-Support-system-installed-plugins.patch
|
||||
|
||||
Plugins must be installed as regular Ruby libraries, and they must
|
||||
contain /usr/share/vagrant-plugins/plugins.d/$PLUGINNAME.json with the
|
||||
@ -22,7 +22,7 @@ following content:
|
||||
2 files changed, 23 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/lib/vagrant/plugin/manager.rb b/lib/vagrant/plugin/manager.rb
|
||||
index 567347d..d9d76a0 100644
|
||||
index 9058e68..2772131 100644
|
||||
--- a/lib/vagrant/plugin/manager.rb
|
||||
+++ b/lib/vagrant/plugin/manager.rb
|
||||
@@ -18,7 +18,7 @@ module Vagrant
|
||||
@ -80,17 +80,13 @@ index c6872d4..935d431 100644
|
||||
end
|
||||
|
||||
# Add a plugin that is installed to the state file.
|
||||
@@ -107,6 +123,14 @@ module Vagrant
|
||||
@@ -107,6 +123,10 @@ module Vagrant
|
||||
f.close
|
||||
FileUtils.mv(f.path, @path)
|
||||
end
|
||||
+ rescue Errno::EACCES
|
||||
+ # Ignore permission denied against system-installed plugins; regular
|
||||
+ # users are not supposed to write there.
|
||||
+ raise unless @system
|
||||
+ rescue Errno::EROFS
|
||||
+ # Ignore read-only filesystem against system-installed plugins; regular
|
||||
+ # users are not supposed to write there.
|
||||
+ raise unless @system
|
||||
end
|
||||
|
||||
|
@ -5,9 +5,9 @@
|
||||
let
|
||||
# NOTE: bumping the version and updating the hash is insufficient;
|
||||
# you must use bundix to generate a new gemset.nix in the Vagrant source.
|
||||
version = "2.2.9";
|
||||
version = "2.2.10";
|
||||
url = "https://github.com/hashicorp/vagrant/archive/v${version}.tar.gz";
|
||||
sha256 = "0fbickjjliaw3cpkh3pl9bp56b2gcqn87c5ag67amc450ah43rdq";
|
||||
sha256 = "07wlj4m79m9li3za1jkk4imdhqwpca86qz3c0h706s0w8cmv4bbj";
|
||||
|
||||
deps = bundlerEnv rec {
|
||||
name = "${pname}-${version}";
|
||||
@ -54,13 +54,6 @@ in buildRubyGem rec {
|
||||
./unofficial-installation-nowarn.patch
|
||||
./use-system-bundler-version.patch
|
||||
./0004-Support-system-installed-plugins.patch
|
||||
|
||||
# fix deprecation warning on ruby 2.6.5.
|
||||
# See also https://github.com/hashicorp/vagrant/pull/11307
|
||||
(fetchpatch {
|
||||
url = "https://github.com/hashicorp/vagrant/commit/d18ed567aaa5da23c9e91ab87f360e7bf6760f13.patch";
|
||||
sha256 = "0f61qj41rc3fdggmnha4jrqg4pzmfiriwpsz4fcgf7c0bx6qha7q";
|
||||
})
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
|
@ -24,20 +24,20 @@
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "1ic028k8xgm2dds9mqnvwwx3ibaz32j8455zxr9f4bcnviyahya5";
|
||||
sha256 = "08hd3d2lfi19cns4d6wkq51scasn17l83fgbzbjjk3dqccz4rg3j";
|
||||
type = "gem";
|
||||
};
|
||||
version = "3.0.0";
|
||||
version = "4.0.0";
|
||||
};
|
||||
concurrent-ruby = {
|
||||
groups = ["default"];
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "094387x4yasb797mv07cs3g6f08y56virc2rjcpb1k79rzaj3nhl";
|
||||
sha256 = "1vnxrbhi7cq3p4y2v9iwd10v1c7l15is4var14hwnb2jip4fyjzz";
|
||||
type = "gem";
|
||||
};
|
||||
version = "1.1.6";
|
||||
version = "1.1.7";
|
||||
};
|
||||
domain_name = {
|
||||
dependencies = ["unf"];
|
||||
@ -149,21 +149,21 @@
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "10nq1xjqvkhngiygji831qx9bryjwws95r4vrnlq9142bzkg670s";
|
||||
sha256 = "153sx77p16vawrs4qpkv7qlzf9v5fks4g7xqcj1dwk40i6g7rfzk";
|
||||
type = "gem";
|
||||
};
|
||||
version = "1.8.3";
|
||||
version = "1.8.5";
|
||||
};
|
||||
listen = {
|
||||
dependencies = ["rb-fsevent" "rb-inotify" "ruby_dep"];
|
||||
dependencies = ["rb-fsevent" "rb-inotify"];
|
||||
groups = ["default"];
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "01v5mrnfqm6sgm8xn2v5swxsn1wlmq7rzh2i48d4jzjsc7qvb6mx";
|
||||
sha256 = "1w923wmdi3gyiky0asqdw5dnh3gcjs2xyn82ajvjfjwh6sn0clgi";
|
||||
type = "gem";
|
||||
};
|
||||
version = "3.1.5";
|
||||
version = "3.2.1";
|
||||
};
|
||||
little-plugger = {
|
||||
groups = ["default"];
|
||||
@ -191,10 +191,20 @@
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "06j6iaj89h9jhkx1x3hlswqrfnqds8br05xb1qra69dpvbdmjcwn";
|
||||
sha256 = "0pkmhcxi8lp74bq5gz9lxrvaiv5w0745kk7s4bw2b1x07qqri0n9";
|
||||
type = "gem";
|
||||
};
|
||||
version = "2.2.2";
|
||||
version = "2.3.0";
|
||||
};
|
||||
mime = {
|
||||
groups = ["default"];
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "0nskys7brz2bylhxiknl0z9i19w3wb1knf0h93in6mjq70jdw5cr";
|
||||
type = "gem";
|
||||
};
|
||||
version = "0.4.4";
|
||||
};
|
||||
mime-types = {
|
||||
dependencies = ["mime-types-data"];
|
||||
@ -222,10 +232,10 @@
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "0xy54mjf7xg41l8qrg1bqri75agdqmxap9z466fjismc1rn2jwfr";
|
||||
sha256 = "0pb1g1y3dsiahavspyzkdy39j4q377009f6ix0bh1ag4nqw43l0z";
|
||||
type = "gem";
|
||||
};
|
||||
version = "1.14.1";
|
||||
version = "1.15.0";
|
||||
};
|
||||
net-scp = {
|
||||
dependencies = ["net-ssh"];
|
||||
@ -244,20 +254,20 @@
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "04674g4n6mryjajlcd82af8g8k95la4b1bj712dh71hw1c9vhw1y";
|
||||
sha256 = "185vsybznqgqbb4i2qnxvf1gam8lb634nqcrq7r3i2zy1g6xd8mi";
|
||||
type = "gem";
|
||||
};
|
||||
version = "2.1.2";
|
||||
version = "3.0.0";
|
||||
};
|
||||
net-ssh = {
|
||||
groups = ["default"];
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "101wd2px9lady54aqmkibvy4j62zk32w0rjz4vnigyg974fsga40";
|
||||
sha256 = "0jp3jgcn8cij407xx9ldb5h9c6jv13jc4cf6kk2idclz43ww21c9";
|
||||
type = "gem";
|
||||
};
|
||||
version = "5.2.0";
|
||||
version = "6.1.0";
|
||||
};
|
||||
netrc = {
|
||||
groups = ["default"];
|
||||
|
@ -1,8 +1,8 @@
|
||||
diff --git i/lib/vagrant/bundler.rb w/lib/vagrant/bundler.rb
|
||||
index 301e40e37..e361ab510 100644
|
||||
--- i/lib/vagrant/bundler.rb
|
||||
+++ w/lib/vagrant/bundler.rb
|
||||
@@ -217,7 +217,7 @@ module Vagrant
|
||||
diff --git a/lib/vagrant/bundler.rb b/lib/vagrant/bundler.rb
|
||||
index 336ac1e05..1bfd84c0d 100644
|
||||
--- a/lib/vagrant/bundler.rb
|
||||
+++ b/lib/vagrant/bundler.rb
|
||||
@@ -470,7 +470,7 @@ module Vagrant
|
||||
source_list = {}
|
||||
system_plugins = plugins.map do |plugin_name, plugin_info|
|
||||
plugin_name if plugin_info["system"]
|
||||
|
@ -13,17 +13,25 @@
|
||||
, opencl-headers ? null
|
||||
, ocl-icd ? null
|
||||
, gperftools ? null
|
||||
, eigen ? null
|
||||
, gpuEnabled ? true
|
||||
, useAVX2 ? false
|
||||
, cudaSupport ? false
|
||||
, useTcmalloc ? true}:
|
||||
|
||||
assert !gpuEnabled -> (
|
||||
eigen != null &&
|
||||
!cudaSupport);
|
||||
|
||||
assert cudaSupport -> (
|
||||
libGL_driver != null &&
|
||||
cudatoolkit != null &&
|
||||
cudnn != null);
|
||||
|
||||
assert !cudaSupport -> (
|
||||
opencl-headers != null &&
|
||||
ocl-icd != null);
|
||||
!gpuEnabled || (
|
||||
opencl-headers != null &&
|
||||
ocl-icd != null));
|
||||
|
||||
assert useTcmalloc -> (
|
||||
gperftools != null);
|
||||
@ -35,13 +43,13 @@ let
|
||||
|
||||
in env.mkDerivation rec {
|
||||
pname = "katago";
|
||||
version = "1.5.0";
|
||||
version = "1.6.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "lightvector";
|
||||
repo = "katago";
|
||||
rev = "${version}";
|
||||
sha256 = "0ajdjdmlzwh7zwk5v0k9zzjawgkf7w30pzqp5bhcsdqz4svvyll2";
|
||||
rev = "v${version}";
|
||||
sha256 = "1r84ws2rj7j8085v1cqffy9rg65rzrhk6z8jbxivqxsmsgs2zs48";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
@ -52,10 +60,12 @@ in env.mkDerivation rec {
|
||||
buildInputs = [
|
||||
libzip
|
||||
boost
|
||||
] ++ lib.optionals cudaSupport [
|
||||
] ++ lib.optionals (!gpuEnabled) [
|
||||
eigen
|
||||
] ++ lib.optionals (gpuEnabled && cudaSupport) [
|
||||
cudnn
|
||||
libGL_driver
|
||||
] ++ lib.optionals (!cudaSupport) [
|
||||
] ++ lib.optionals (gpuEnabled && !cudaSupport) [
|
||||
opencl-headers
|
||||
ocl-icd
|
||||
] ++ lib.optionals useTcmalloc [
|
||||
@ -64,9 +74,13 @@ in env.mkDerivation rec {
|
||||
|
||||
cmakeFlags = [
|
||||
"-DNO_GIT_REVISION=ON"
|
||||
] ++ lib.optionals cudaSupport [
|
||||
] ++ lib.optionals (!gpuEnabled) [
|
||||
"-DUSE_BACKEND=EIGEN"
|
||||
] ++ lib.optionals useAVX2 [
|
||||
"-DUSE_AVX2=ON"
|
||||
] ++ lib.optionals (gpuEnabled && cudaSupport) [
|
||||
"-DUSE_BACKEND=CUDA"
|
||||
] ++ lib.optionals (!cudaSupport) [
|
||||
] ++ lib.optionals (gpuEnabled && !cudaSupport) [
|
||||
"-DUSE_BACKEND=OPENCL"
|
||||
] ++ lib.optionals useTcmalloc [
|
||||
"-DUSE_TCMALLOC=ON"
|
||||
|
@ -1,4 +1,4 @@
|
||||
{ stdenv, fetchurl, jre }:
|
||||
{ stdenv, fetchurl, bash, jre }:
|
||||
let
|
||||
mcVersion = "1.16.2";
|
||||
buildNum = "141";
|
||||
@ -13,22 +13,23 @@ in stdenv.mkDerivation {
|
||||
preferLocalBuild = true;
|
||||
|
||||
dontUnpack = true;
|
||||
installPhase = ''
|
||||
mkdir -p $out/bin
|
||||
cp ${jar} $out/papermc.jar
|
||||
cat > $out/bin/minecraft-server << EOF
|
||||
#!/bin/sh
|
||||
exec ${jre}/bin/java \$@ -jar $out/papermc.jar nogui
|
||||
EOF
|
||||
chmod +x $out/bin/minecraft-server
|
||||
dontConfigure = true;
|
||||
|
||||
buildPhase = ''
|
||||
cat > minecraft-server << EOF
|
||||
#!${bash}/bin/sh
|
||||
exec ${jre}/bin/java \$@ -jar $out/share/papermc/papermc.jar nogui
|
||||
'';
|
||||
|
||||
phases = "installPhase";
|
||||
installPhase = ''
|
||||
install -Dm444 ${jar} $out/share/papermc/papermc.jar
|
||||
install -Dm555 -t $out/bin minecraft-server
|
||||
'';
|
||||
|
||||
meta = {
|
||||
description = "High-performance Minecraft Server";
|
||||
homepage = "https://papermc.io/";
|
||||
license = stdenv.lib.licenses.gpl3;
|
||||
license = stdenv.lib.licenses.gpl3Only;
|
||||
platforms = stdenv.lib.platforms.unix;
|
||||
maintainers = with stdenv.lib.maintainers; [ aaronjanse ];
|
||||
};
|
||||
|
40
pkgs/games/xcowsay/default.nix
Normal file
40
pkgs/games/xcowsay/default.nix
Normal file
@ -0,0 +1,40 @@
|
||||
{ stdenv, fetchurl, makeWrapper, pkg-config
|
||||
, dbus, dbus-glib, gtk3, gdk-pixbuf, librsvg
|
||||
, fortune
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "xcowsay";
|
||||
version = "1.5";
|
||||
|
||||
src = fetchurl {
|
||||
url = "http://www.nickg.me.uk/files/xcowsay-${version}.tar.gz";
|
||||
sha256 = "0pyaa062z1ag26dhkm1yzp2hivnlmhlpqn5xg7mx9r1m652mm91y";
|
||||
};
|
||||
|
||||
buildInputs = [
|
||||
dbus
|
||||
dbus-glib
|
||||
gtk3
|
||||
gdk-pixbuf # loading cow images
|
||||
librsvg # dreaming SVG images
|
||||
];
|
||||
nativeBuildInputs = [ makeWrapper pkg-config ];
|
||||
|
||||
configureFlags = [ "--enable-dbus" ];
|
||||
|
||||
postInstall = ''
|
||||
for tool in xcowdream xcowsay xcowthink xcowfortune; do
|
||||
wrapProgram $out/bin/$tool \
|
||||
--prefix PATH : $out/bin:${fortune}/bin
|
||||
done
|
||||
'';
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
homepage = "http://www.doof.me.uk/xcowsay";
|
||||
description =
|
||||
"A program based on cowsay that displays a cute cow and message on your desktop";
|
||||
license = licenses.gpl3;
|
||||
maintainers = with maintainers; [ das_j ];
|
||||
};
|
||||
}
|
@ -1,46 +1,30 @@
|
||||
{ lib, stdenv, fetchurl, makeWrapper, curl, icu60, openssl, zlib }:
|
||||
{ lib, stdenv, fetchurl, mono, makeWrapper, curl, icu60, openssl, zlib }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "jackett";
|
||||
version = "0.16.175";
|
||||
version = "0.16.998";
|
||||
|
||||
src = {
|
||||
x86_64-linux = fetchurl {
|
||||
url = "https://github.com/Jackett/Jackett/releases/download/v${version}/Jackett.Binaries.LinuxAMDx64.tar.gz";
|
||||
sha512 = "269n84qc8sfrmnidgrjywanbqr65mhkmk24dlqfi17pi0l27wi4fc4qmnjj683xwprz5hqjsmkqf963pbx4k3jaz0rp0jnizan91wij";
|
||||
};
|
||||
aarch64-linux = fetchurl {
|
||||
url = "https://github.com/Jackett/Jackett/releases/download/v${version}/Jackett.Binaries.LinuxARM64.tar.gz";
|
||||
sha512 = "0dmyhprd2vi2z9q5g79psqgsc3w0zdac4s6k20rngi8jxm5jgphzrzcic4rgdijyryap99my619k447w701a08vh9sfcfk0fjg9pgwb";
|
||||
};
|
||||
}."${stdenv.targetPlatform.system}" or (throw "Missing hash for host system: ${stdenv.targetPlatform.system}");
|
||||
src = fetchurl {
|
||||
url = "https://github.com/Jackett/Jackett/releases/download/v${version}/Jackett.Binaries.Mono.tar.gz";
|
||||
sha256 = "16f8ipw4sbdxwv79zjhr5ihd3m6biyhj1gj7cqpjr34ad7zqna3c";
|
||||
};
|
||||
|
||||
buildInputs = [ makeWrapper ];
|
||||
nativeBuildInputs = [ makeWrapper ];
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p $out/{bin,opt/${pname}-${version}}
|
||||
cp -r * $out/opt/${pname}-${version}
|
||||
mkdir -p $out/{bin,share/${pname}-${version}}
|
||||
cp -r * $out/share/${pname}-${version}
|
||||
|
||||
makeWrapper "$out/opt/${pname}-${version}/jackett" $out/bin/Jackett \
|
||||
--prefix LD_LIBRARY_PATH ':' "${curl.out}/lib:${icu60.out}/lib:${openssl.out}/lib:${zlib.out}/lib"
|
||||
'';
|
||||
|
||||
preFixup = let
|
||||
libPath = lib.makeLibraryPath [
|
||||
stdenv.cc.cc.lib # libstdc++.so.6
|
||||
];
|
||||
in ''
|
||||
patchelf \
|
||||
--set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
|
||||
--set-rpath "${libPath}" \
|
||||
$out/opt/${pname}-${version}/jackett
|
||||
makeWrapper "${mono}/bin/mono" $out/bin/Jackett \
|
||||
--add-flags "$out/share/${pname}-${version}/JackettConsole.exe" \
|
||||
--prefix LD_LIBRARY_PATH : ${stdenv.lib.makeLibraryPath [ curl icu60 openssl zlib ]}
|
||||
'';
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
description = "API Support for your favorite torrent trackers.";
|
||||
homepage = "https://github.com/Jackett/Jackett/";
|
||||
license = licenses.gpl2;
|
||||
maintainers = with maintainers; [ edwtjo nyanloutre ];
|
||||
platforms = [ "x86_64-linux" "aarch64-linux" ];
|
||||
maintainers = with maintainers; [ edwtjo nyanloutre purcell ];
|
||||
platforms = platforms.all;
|
||||
};
|
||||
}
|
||||
|
@ -56,6 +56,6 @@ in stdenv.mkDerivation rec {
|
||||
description = "The Free Software Media System";
|
||||
homepage = "https://jellyfin.org/";
|
||||
license = licenses.gpl2;
|
||||
maintainers = with maintainers; [ nyanloutre minijackson ];
|
||||
maintainers = with maintainers; [ nyanloutre minijackson purcell ];
|
||||
};
|
||||
}
|
||||
|
@ -25,7 +25,7 @@ stdenv.mkDerivation rec {
|
||||
description = "A Usenet/BitTorrent movie downloader";
|
||||
homepage = "https://radarr.video/";
|
||||
license = licenses.gpl3;
|
||||
maintainers = with maintainers; [ edwtjo ];
|
||||
maintainers = with maintainers; [ edwtjo purcell ];
|
||||
platforms = platforms.all;
|
||||
};
|
||||
}
|
||||
|
@ -25,7 +25,7 @@ stdenv.mkDerivation rec {
|
||||
description = "Smart PVR for newsgroup and bittorrent users";
|
||||
homepage = "https://sonarr.tv/";
|
||||
license = stdenv.lib.licenses.gpl3;
|
||||
maintainers = [ stdenv.lib.maintainers.fadenb ];
|
||||
maintainers = with stdenv.lib.maintainers; [ fadenb purcell ];
|
||||
platforms = stdenv.lib.platforms.all;
|
||||
};
|
||||
}
|
||||
|
@ -1,24 +1,25 @@
|
||||
{ gnustep, lib, fetchFromGitHub, fetchpatch, makeWrapper, python2, lndir
|
||||
, openssl_1_1, openldap, sope, libmemcached, curl }: with lib; gnustep.stdenv.mkDerivation rec {
|
||||
, openssl_1_1, openldap, sope, libmemcached, curl, libsodium, libzip, pkgconfig }:
|
||||
with lib; gnustep.stdenv.mkDerivation rec {
|
||||
pname = "SOGo";
|
||||
version = "4.3.2";
|
||||
version = "5.0.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "inverse-inc";
|
||||
repo = pname;
|
||||
rev = "SOGo-${version}";
|
||||
sha256 = "1xxad23a8zy6w850x5nrrf54db0x73lc9drmc5kpfk870fk2lmr0";
|
||||
sha256 = "sha256-SEyyHekUCSkb5rOh7Ty8AhtT4S9KicTRbo9iWhijdGE=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ gnustep.make makeWrapper python2 ];
|
||||
buildInputs = [ gnustep.base sope openssl_1_1 libmemcached (curl.override { openssl = openssl_1_1; }) ]
|
||||
buildInputs = [ gnustep.base sope openssl_1_1 libmemcached (curl.override { openssl = openssl_1_1; }) libsodium libzip pkgconfig ]
|
||||
++ optional (openldap != null) openldap;
|
||||
|
||||
patches = [
|
||||
# TODO: take a closer look at other patches in https://sources.debian.org/patches/sogo/ and https://github.com/Skrupellos/sogo-patches
|
||||
(fetchpatch {
|
||||
url = "https://sources.debian.org/data/main/s/sogo/4.3.0-1/debian/patches/0005-Remove-build-date.patch";
|
||||
sha256 = "0lrh3bkfj3r0brahfkyb0g7zx7r2jjd5cxzjl43nqla0fs09wsh8";
|
||||
url = "https://salsa.debian.org/debian/sogo/-/raw/120ac6390602c811908c7fcb212a79acbc7f7f28/debian/patches/0005-Remove-build-date.patch";
|
||||
sha256 = "151i8504kwdlcirgd0pbif7cxnb1q6jsp5j7dbh9p6zw2xgwkp25";
|
||||
})
|
||||
];
|
||||
|
||||
|
@ -2,7 +2,7 @@
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "elvish";
|
||||
version = "0.14.0";
|
||||
version = "0.14.1";
|
||||
|
||||
excludedPackages = [ "website" ];
|
||||
|
||||
@ -12,7 +12,7 @@ buildGoModule rec {
|
||||
owner = "elves";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "1jsxhnm82pjzwvcjq7vrlldyjnv5j6c83a13dj6zphlqq99z68l4";
|
||||
sha256 = "05wp3cx4s2cjf60yncdpmycs5h4z1dlin56dmljmfwz4z099079b";
|
||||
};
|
||||
|
||||
vendorSha256 = "1f971n17h9bc0qcgs9ipiaw0x9807mz761fqm605br4ch1kp0897";
|
||||
|
@ -2,11 +2,11 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "debianutils";
|
||||
version = "4.11";
|
||||
version = "4.11.1";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://debian/pool/main/d/${pname}/${pname}_${version}.tar.xz";
|
||||
sha256 = "0lbizfnf3qwsiz2ggia6ff7sjjj8gwhys8bm6wixdc4n0qlycp5v";
|
||||
sha256 = "0g4qmzb2ff0rqszzpsal465hcslnpdl4nhghv59qvhamkkqnks4b";
|
||||
};
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
|
@ -2,13 +2,13 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "fluent-bit";
|
||||
version = "1.5.3";
|
||||
version = "1.5.4";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "fluent";
|
||||
repo = "fluent-bit";
|
||||
rev = "v${version}";
|
||||
sha256 = "153c7hafmzwxa24h923irfhzaqqd8wbr2aaab6l3hjhgx5q8s5bf";
|
||||
sha256 = "0w96f86i2jlzjk2plf8jbdw4q748khbhhjkbzfb8dkq2lhc9i80h";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ cmake flex bison ];
|
||||
|
@ -2,16 +2,16 @@
|
||||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "topgrade";
|
||||
version = "5.4.0";
|
||||
version = "5.5.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "r-darwish";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "1v57dqkrh67cmj1ish650z8yk737hm1qynqr5yv0vlna86gwhrhs";
|
||||
sha256 = "1adx029cq30g0qnrvdq2di8bpadzdxrpbsqchxfsda8zg6cprh1j";
|
||||
};
|
||||
|
||||
cargoSha256 = "00vxrv8lbdwwbdbaqb4rq0w3bc8n9qwk9zgb1j656lyswib7g1d3";
|
||||
cargoSha256 = "0jpjn6sb8bkwnq7np487hb8bkm6rv84mihmqwy3ymgdzlqcng6sk";
|
||||
|
||||
buildInputs = lib.optional stdenv.isDarwin Foundation;
|
||||
|
||||
|
@ -2,13 +2,13 @@
|
||||
|
||||
buildGoPackage rec {
|
||||
pname = "vault";
|
||||
version = "1.5.0";
|
||||
version = "1.5.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "hashicorp";
|
||||
repo = "vault";
|
||||
rev = "v${version}";
|
||||
sha256 = "1bdhcsx7hwz4kb68jrrrzlbr7k744g0pym996dq1p5rvz05j3pqc";
|
||||
sha256 = "0a16slrg0kx7i1xwixc920lkgbbywvb6wpmkbqjvz1xx72nq9ap4";
|
||||
};
|
||||
|
||||
goPackagePath = "github.com/hashicorp/vault";
|
||||
|
@ -1,30 +1,30 @@
|
||||
{ stdenv, fetchurl, unzip }:
|
||||
|
||||
let
|
||||
version = "1.3.0";
|
||||
version = "1.5.2";
|
||||
|
||||
sources = let
|
||||
base = "https://releases.hashicorp.com/vault/${version}";
|
||||
in {
|
||||
x86_64-linux = fetchurl {
|
||||
url = "${base}/vault_${version}_linux_amd64.zip";
|
||||
sha256 = "1crfj4gd1qwwa2xidd0pjffv0n6hf5hbhv6568m6zc1ig0qqm6yq";
|
||||
sha256 = "1m9svs1ncgdwwh16xavwikq4ji9rzkb2wlr59sx61rlz0l18mknd";
|
||||
};
|
||||
i686-linux = fetchurl {
|
||||
url = "${base}/vault_${version}_linux_386.zip";
|
||||
sha256 = "0pyf0kyvxpmx3fwfvin1r0x30r9byx9lyi81894q06xrhiwbqc0l";
|
||||
sha256 = "0hd6gsrmjfly3075kq0rsxhgy927g1462qih0iiwphrhik7l0pwr";
|
||||
};
|
||||
x86_64-darwin = fetchurl {
|
||||
url = "${base}/vault_${version}_darwin_amd64.zip";
|
||||
sha256 = "113vnpz9n6y7z2k9jqpfpxqxqbrmd9bhny79yaxqzkfdqw8vyv3g";
|
||||
sha256 = "092xqjm69ljn70hn9f93qkc0ila0hgj2l14plhsza52d924qnq3l";
|
||||
};
|
||||
i686-darwin = fetchurl {
|
||||
url = "${base}/vault_${version}_darwin_386.zip";
|
||||
sha256 = "0d191qai0bpl7cyivca26wqgycsj2dz08809z147d1vnrz321v6w";
|
||||
sha256 = "161j15n6kfd3m5hakc0qn824kp0nwdghcm81j9vqzpq900sbg6ak";
|
||||
};
|
||||
aarch64-linux = fetchurl {
|
||||
url = "${base}/vault_${version}_linux_arm64.zip";
|
||||
sha256 = "1bk5y3knc42mh07gnnn6p109qz908014620h1s0348wp4qfdy49w";
|
||||
sha256 = "1f6ckfqqj9gsaizwxa7xrjgkkj3nd6m1md7smz0xnxgnc4f7g4z0";
|
||||
};
|
||||
};
|
||||
|
||||
|
@ -4,13 +4,13 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "fio";
|
||||
version = "3.21";
|
||||
version = "3.22";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "axboe";
|
||||
repo = "fio";
|
||||
rev = "fio-${version}";
|
||||
sha256 = "0v8bq79n2nfnrs8pw2f3a93f8k691dnfzd5qxb5srwak4y2za7hn";
|
||||
sha256 = "16p17l1xbqqkgppvwmfaywknhk4ybafnx8hm56ffd8bls9vaqw5m";
|
||||
};
|
||||
|
||||
buildInputs = [ python zlib ]
|
||||
|
@ -8414,6 +8414,7 @@ in
|
||||
};
|
||||
};
|
||||
|
||||
clang_11 = llvmPackages_11.clang;
|
||||
clang_10 = llvmPackages_10.clang;
|
||||
clang_9 = llvmPackages_9.clang;
|
||||
clang_8 = llvmPackages_8.clang;
|
||||
@ -9230,6 +9231,7 @@ in
|
||||
lld_8 = llvmPackages_8.lld;
|
||||
lld_9 = llvmPackages_9.lld;
|
||||
lld_10 = llvmPackages_10.lld;
|
||||
lld_11 = llvmPackages_11.lld;
|
||||
|
||||
lldb = llvmPackages.lldb;
|
||||
lldb_5 = llvmPackages_5.lldb;
|
||||
@ -9238,10 +9240,12 @@ in
|
||||
lldb_8 = llvmPackages_8.lldb;
|
||||
lldb_9 = llvmPackages_9.lldb;
|
||||
lldb_10 = llvmPackages_10.lldb;
|
||||
lldb_11 = llvmPackages_11.lldb;
|
||||
|
||||
llvm = llvmPackages.llvm;
|
||||
llvm-manpages = llvmPackages.llvm-manpages;
|
||||
|
||||
llvm_11 = llvmPackages_11.llvm;
|
||||
llvm_10 = llvmPackages_10.llvm;
|
||||
llvm_9 = llvmPackages_9.llvm;
|
||||
llvm_8 = llvmPackages_8.llvm;
|
||||
@ -9287,6 +9291,14 @@ in
|
||||
targetLlvmLibraries = targetPackages.llvmPackages_10.libraries;
|
||||
};
|
||||
|
||||
llvmPackages_11 = callPackage ../development/compilers/llvm/11 ({
|
||||
inherit (stdenvAdapters) overrideCC;
|
||||
buildLlvmTools = buildPackages.llvmPackages_11.tools;
|
||||
targetLlvmLibraries = targetPackages.llvmPackages_11.libraries;
|
||||
} // stdenv.lib.optionalAttrs (stdenv.hostPlatform.isi686 && buildPackages.stdenv.cc.isGNU) {
|
||||
stdenv = gcc7Stdenv;
|
||||
});
|
||||
|
||||
llvmPackages_latest = llvmPackages_10;
|
||||
|
||||
llvmPackages_rocm = callPackage ../development/compilers/llvm/rocm { };
|
||||
@ -14305,6 +14317,8 @@ in
|
||||
inherit (darwin.stubs) setfile;
|
||||
};
|
||||
|
||||
muparserx = callPackage ../development/libraries/muparserx { };
|
||||
|
||||
mutest = callPackage ../development/libraries/mutest { };
|
||||
|
||||
mygpoclient = pythonPackages.mygpoclient;
|
||||
@ -15520,7 +15534,9 @@ in
|
||||
|
||||
vcg = callPackage ../development/libraries/vcg { };
|
||||
|
||||
vid-stab = callPackage ../development/libraries/vid-stab { };
|
||||
vid-stab = callPackage ../development/libraries/vid-stab {
|
||||
inherit (llvmPackages) openmp;
|
||||
};
|
||||
|
||||
vigra = callPackage ../development/libraries/vigra { };
|
||||
|
||||
@ -22135,6 +22151,10 @@ in
|
||||
|
||||
opentimestamps-client = python3Packages.callPackage ../tools/misc/opentimestamps-client {};
|
||||
|
||||
opentoonz = (qt5.overrideScope' (_: _: {
|
||||
libtiff = callPackage ../applications/graphics/opentoonz/libtiff.nix { };
|
||||
})).callPackage ../applications/graphics/opentoonz { };
|
||||
|
||||
opentx = libsForQt5.callPackage ../applications/misc/opentx { };
|
||||
|
||||
opera = callPackage ../applications/networking/browsers/opera {};
|
||||
@ -23409,6 +23429,8 @@ in
|
||||
inherit (lua52Packages) lpeg;
|
||||
};
|
||||
|
||||
viw = callPackage ../applications/editors/viw { };
|
||||
|
||||
virt-viewer = callPackage ../applications/virtualization/virt-viewer { };
|
||||
|
||||
virt-top = callPackage ../applications/virtualization/virt-top { };
|
||||
@ -24624,6 +24646,10 @@ in
|
||||
cudatoolkit = cudatoolkit_10_2;
|
||||
};
|
||||
|
||||
katagoCPU = katago.override {
|
||||
gpuEnabled = false;
|
||||
};
|
||||
|
||||
klavaro = callPackage ../games/klavaro {};
|
||||
|
||||
kobodeluxe = callPackage ../games/kobodeluxe { };
|
||||
@ -25133,6 +25159,8 @@ in
|
||||
tk = tk-8_5;
|
||||
};
|
||||
|
||||
xcowsay = callPackage ../games/xcowsay { };
|
||||
|
||||
xjump = callPackage ../games/xjump { };
|
||||
# TODO: the corresponding nix file is missing
|
||||
# xracer = callPackage ../games/xracer { };
|
||||
@ -26482,9 +26510,7 @@ in
|
||||
|
||||
hatari = callPackage ../misc/emulators/hatari { };
|
||||
|
||||
helm = callPackage ../applications/audio/helm {
|
||||
stdenv = gcc8Stdenv;
|
||||
};
|
||||
helm = callPackage ../applications/audio/helm { };
|
||||
|
||||
helmfile = callPackage ../applications/networking/cluster/helmfile { };
|
||||
|
||||
|
@ -4917,6 +4917,8 @@ in {
|
||||
|
||||
multiprocess = callPackage ../development/python-modules/multiprocess { };
|
||||
|
||||
multitasking = callPackage ../development/python-modules/multitasking { };
|
||||
|
||||
munkres = callPackage ../development/python-modules/munkres { };
|
||||
|
||||
musicbrainzngs = callPackage ../development/python-modules/musicbrainzngs { };
|
||||
@ -5950,7 +5952,8 @@ in {
|
||||
|
||||
readchar = callPackage ../development/python-modules/readchar { };
|
||||
|
||||
retworkx = callPackage ../development/python-modules/retworkx { };
|
||||
retworkx = disabledIf (pythonOlder "3.5")
|
||||
(toPythonModule (callPackage ../development/python-modules/retworkx { } ));
|
||||
|
||||
rivet = disabledIf (!isPy3k) (toPythonModule (pkgs.rivet.override {
|
||||
python3 = python;
|
||||
@ -7746,6 +7749,8 @@ in {
|
||||
|
||||
yattag = callPackage ../development/python-modules/yattag { };
|
||||
|
||||
yfinance = callPackage ../development/python-modules/yfinance { };
|
||||
|
||||
xenomapper = disabledIf (!isPy3k) (callPackage ../applications/science/biology/xenomapper { });
|
||||
|
||||
z3 = (toPythonModule (pkgs.z3.override {
|
||||
|
Loading…
Reference in New Issue
Block a user