diff --git a/doc/cross-compilation.xml b/doc/cross-compilation.xml index 3b90596bcc2..c7187d86d1b 100644 --- a/doc/cross-compilation.xml +++ b/doc/cross-compilation.xml @@ -47,13 +47,9 @@ In Nixpkgs, these three platforms are defined as attribute sets under the - names buildPlatform, hostPlatform, - and targetPlatform. All three are always defined as - attributes in the standard environment, and at the top level. That means - one can get at them just like a dependency in a function that is imported - with callPackage: -{ stdenv, buildPlatform, hostPlatform, fooDep, barDep, .. }: ...buildPlatform... - , or just off stdenv: + names buildPlatform, hostPlatform, and + targetPlatform. They are always defined as attributes in + the standard environment. That means one can access them like: { stdenv, fooDep, barDep, .. }: ...stdenv.buildPlatform... . diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix index c3b32789382..726cbd74313 100644 --- a/maintainers/maintainer-list.nix +++ b/maintainers/maintainer-list.nix @@ -376,6 +376,11 @@ github = "auntie"; name = "Jonathan Glines"; }; + avery = { + email = "averyl+nixos@protonmail.com"; + github = "AveryLychee"; + name = "Avery Lychee"; + }; avnik = { email = "avn@avnik.info"; github = "avnik"; diff --git a/nixos/doc/manual/default.nix b/nixos/doc/manual/default.nix index aaa6e0da545..faae4f20544 100644 --- a/nixos/doc/manual/default.nix +++ b/nixos/doc/manual/default.nix @@ -252,7 +252,7 @@ in rec { ''; # */ # Generate the NixOS manual. - manual = runCommand "nixos-manual" + manualHTML = runCommand "nixos-manual-html" { inherit sources; nativeBuildInputs = [ buildPackages.libxml2.bin buildPackages.libxslt.bin ]; meta.description = "The NixOS manual in HTML format"; @@ -281,6 +281,11 @@ in rec { echo "doc manual $dst" >> $out/nix-support/hydra-build-products ''; # */ + # Alias for backward compatibility. TODO(@oxij): remove eventually. + manual = manualHTML; + + # Index page of the NixOS manual. + manualHTMLIndex = "${manualHTML}/share/doc/nixos/index.html"; manualEpub = runCommand "nixos-manual-epub" { inherit sources; diff --git a/nixos/doc/manual/development/building-parts.xml b/nixos/doc/manual/development/building-parts.xml index eaffc0ef47c..b4791b72970 100644 --- a/nixos/doc/manual/development/building-parts.xml +++ b/nixos/doc/manual/development/building-parts.xml @@ -34,7 +34,7 @@ $ nix-build -A system - system.build.manual.manual + system.build.manual.manualHTML diff --git a/nixos/doc/manual/release-notes/rl-1809.xml b/nixos/doc/manual/release-notes/rl-1809.xml index 21ea98d012b..5a565f08b2c 100644 --- a/nixos/doc/manual/release-notes/rl-1809.xml +++ b/nixos/doc/manual/release-notes/rl-1809.xml @@ -139,50 +139,6 @@ $ nix-instantiate -E '(import <nixpkgsunstable> {}).gitFull' seen a complete rewrite. (See above.) - - - The minimum version of Nix required to evaluate Nixpkgs is now 2.0. - - - - - For users of NixOS 18.03, NixOS 18.03 defaulted to Nix 2.0, but - supported using Nix 1.11 by setting nix.package = - pkgs.nix1;. If this option is set to a Nix 1.11 package, you - will need to either unset the option or upgrade it to Nix 2.0. - - - - - For users of NixOS 17.09, you will first need to upgrade Nix by setting - nix.package = pkgs.nixStable2; and run - nixos-rebuild switch as the root - user. - - - - - For users of a daemon-less Nix installation on Linux or macOS, you can - upgrade Nix by running curl https://nixos.org/nix/install | - sh, or prior to doing a channel update, running - nix-env -iA nix. - - - If you have already run a channel update and Nix is no longer able to - evaluate Nixpkgs, the error message printed should provide adequate - directions for upgrading Nix. - - - - - For users of the Nix daemon on macOS, you can upgrade Nix by running - sudo -i sh -c 'nix-channel --update && nix-env -iA - nixpkgs.nix'; sudo launchctl stop org.nixos.nix-daemon; sudo launchctl - start org.nixos.nix-daemon. - - - - lib.strict is removed. Use diff --git a/nixos/doc/manual/release-notes/rl-1903.xml b/nixos/doc/manual/release-notes/rl-1903.xml index 9ae34dd58ab..8c8237e6371 100644 --- a/nixos/doc/manual/release-notes/rl-1903.xml +++ b/nixos/doc/manual/release-notes/rl-1903.xml @@ -42,6 +42,66 @@ +
+ Backward Incompatibilities + + + When upgrading from a previous release, please be aware of the following + incompatible changes: + + + + + + The minimum version of Nix required to evaluate Nixpkgs is now 2.0. + + + + + For users of NixOS 18.03 and 19.03, NixOS defaults to Nix 2.0, but + supports using Nix 1.11 by setting nix.package = + pkgs.nix1;. If this option is set to a Nix 1.11 package, you + will need to either unset the option or upgrade it to Nix 2.0. + + + + + For users of NixOS 17.09, you will first need to upgrade Nix by setting + nix.package = pkgs.nixStable2; and run + nixos-rebuild switch as the root + user. + + + + + For users of a daemon-less Nix installation on Linux or macOS, you can + upgrade Nix by running curl https://nixos.org/nix/install | + sh, or prior to doing a channel update, running + nix-env -iA nix. + + + If you have already run a channel update and Nix is no longer able to + evaluate Nixpkgs, the error message printed should provide adequate + directions for upgrading Nix. + + + + + For users of the Nix daemon on macOS, you can upgrade Nix by running + sudo -i sh -c 'nix-channel --update && nix-env -iA + nixpkgs.nix'; sudo launchctl stop org.nixos.nix-daemon; sudo launchctl + start org.nixos.nix-daemon. + + + + + +
+
+ This includes man pages like + configuration.nix + 5 if is + set. + This includes the HTML manual and the nixos-help command if + is set. + + ''; + }; + }; }; @@ -99,6 +179,21 @@ let cfg = config.documentation; in environment.extraOutputsToInstall = [ "doc" ] ++ optional cfg.dev.enable "devdoc"; }) + (mkIf cfg.nixos.enable { + system.build.manual = manual; + + environment.systemPackages = [] + ++ optional cfg.man.enable manual.manpages + ++ optionals cfg.doc.enable ([ manual.manualHTML helpScript ] + ++ optionals config.services.xserver.enable [ desktopItem pkgs.nixos-icons ]); + + services.mingetty.helpLine = mkIf cfg.doc.enable ( + "\nRun `nixos-help` " + + optionalString config.services.nixosManual.showManual "or press " + + "for the NixOS manual." + ); + }) + ]); } diff --git a/nixos/modules/profiles/graphical.nix b/nixos/modules/profiles/graphical.nix index 332cf58aa53..1a8372ddc43 100644 --- a/nixos/modules/profiles/graphical.nix +++ b/nixos/modules/profiles/graphical.nix @@ -11,5 +11,5 @@ libinput.enable = true; # for touchpad support on many laptops }; - environment.systemPackages = [ pkgs.glxinfo ]; + environment.systemPackages = [ pkgs.glxinfo pkgs.firefox ]; } diff --git a/nixos/modules/profiles/installation-device.nix b/nixos/modules/profiles/installation-device.nix index ff4a23a18d0..22d1af42694 100644 --- a/nixos/modules/profiles/installation-device.nix +++ b/nixos/modules/profiles/installation-device.nix @@ -22,7 +22,7 @@ with lib; config = { # Enable in installer, even if the minimal profile disables it. - services.nixosManual.enable = mkForce true; + documentation.nixos.enable = mkForce true; # Show the manual. services.nixosManual.showManual = true; diff --git a/nixos/modules/profiles/minimal.nix b/nixos/modules/profiles/minimal.nix index ed04e46c77d..dd81e61460c 100644 --- a/nixos/modules/profiles/minimal.nix +++ b/nixos/modules/profiles/minimal.nix @@ -12,7 +12,7 @@ with lib; i18n.supportedLocales = [ (config.i18n.defaultLocale + "/UTF-8") ]; documentation.enable = mkDefault false; - services.nixosManual.enable = mkDefault false; + documentation.nixos.enable = mkDefault false; sound.enable = mkDefault false; } diff --git a/nixos/modules/rename.nix b/nixos/modules/rename.nix index 4a6bdfe83dd..bc9ff9f63dd 100644 --- a/nixos/modules/rename.nix +++ b/nixos/modules/rename.nix @@ -276,6 +276,7 @@ with lib; (mkRenamedOptionModule [ "programs" "info" "enable" ] [ "documentation" "info" "enable" ]) (mkRenamedOptionModule [ "programs" "man" "enable" ] [ "documentation" "man" "enable" ]) + (mkRenamedOptionModule [ "services" "nixosManual" "enable" ] [ "documentation" "nixos" "enable" ]) ] ++ (flip map [ "blackboxExporter" "collectdExporter" "fritzboxExporter" "jsonExporter" "minioExporter" "nginxExporter" "nodeExporter" diff --git a/nixos/modules/services/mail/rmilter.nix b/nixos/modules/services/mail/rmilter.nix index 7f38d757013..0d91b247cd3 100644 --- a/nixos/modules/services/mail/rmilter.nix +++ b/nixos/modules/services/mail/rmilter.nix @@ -89,7 +89,7 @@ in bindSocket.path = mkOption { type = types.str; - default = "/run/rmilter/rmilter.sock"; + default = "/run/rmilter.sock"; description = '' Path to Unix domain socket to listen on. ''; @@ -193,6 +193,9 @@ in config = mkMerge [ (mkIf cfg.enable { + warnings = [ + ''`config.services.rmilter' is deprecated, `rmilter' deprecated and unsupported by upstream, and will be removed from next releases. Use built-in rspamd milter instead.'' + ]; users.users = singleton { name = cfg.user; diff --git a/nixos/modules/services/misc/emby.nix b/nixos/modules/services/misc/emby.nix index 64cc9c610ac..ff68b850cd9 100644 --- a/nixos/modules/services/misc/emby.nix +++ b/nixos/modules/services/misc/emby.nix @@ -36,11 +36,18 @@ in after = [ "network.target" ]; wantedBy = [ "multi-user.target" ]; preStart = '' - test -d ${cfg.dataDir} || { - echo "Creating initial Emby data directory in ${cfg.dataDir}" - mkdir -p ${cfg.dataDir} - chown -R ${cfg.user}:${cfg.group} ${cfg.dataDir} - } + if [ -d ${cfg.dataDir} ] + then + for plugin in ${cfg.dataDir}/plugins/* + do + echo "Correcting permissions of plugin: $plugin" + chmod u+w $plugin + done + else + echo "Creating initial Emby data directory in ${cfg.dataDir}" + mkdir -p ${cfg.dataDir} + chown -R ${cfg.user}:${cfg.group} ${cfg.dataDir} + fi ''; serviceConfig = { diff --git a/nixos/modules/services/misc/nixos-manual.nix b/nixos/modules/services/misc/nixos-manual.nix index 993b59590bb..023a933fd89 100644 --- a/nixos/modules/services/misc/nixos-manual.nix +++ b/nixos/modules/services/misc/nixos-manual.nix @@ -1,91 +1,18 @@ -# This module includes the NixOS man-pages in the system environment, -# and optionally starts a browser that shows the NixOS manual on one -# of the virtual consoles. The latter is useful for the installation +# This module optionally starts a browser that shows the NixOS manual +# on one of the virtual consoles which is useful for the installation # CD. -{ config, lib, pkgs, baseModules, ... }: +{ config, lib, pkgs, ... }: with lib; -let - - cfg = config.services.nixosManual; - - /* For the purpose of generating docs, evaluate options with each derivation - in `pkgs` (recursively) replaced by a fake with path "\${pkgs.attribute.path}". - It isn't perfect, but it seems to cover a vast majority of use cases. - Caveat: even if the package is reached by a different means, - the path above will be shown and not e.g. `${config.services.foo.package}`. */ - manual = import ../../../doc/manual rec { - inherit pkgs config; - version = config.system.nixos.release; - revision = "release-${version}"; - options = - let - scrubbedEval = evalModules { - modules = [ { nixpkgs.localSystem = config.nixpkgs.localSystem; } ] ++ baseModules; - args = (config._module.args) // { modules = [ ]; }; - specialArgs = { pkgs = scrubDerivations "pkgs" pkgs; }; - }; - scrubDerivations = namePrefix: pkgSet: mapAttrs - (name: value: - let wholeName = "${namePrefix}.${name}"; in - if isAttrs value then - scrubDerivations wholeName value - // (optionalAttrs (isDerivation value) { outPath = "\${${wholeName}}"; }) - else value - ) - pkgSet; - in scrubbedEval.options; - }; - - entry = "${manual.manual}/share/doc/nixos/index.html"; - - helpScript = pkgs.writeScriptBin "nixos-help" - '' - #! ${pkgs.runtimeShell} -e - # Finds first executable browser in a colon-separated list. - # (see how xdg-open defines BROWSER) - browser="$( - IFS=: ; for b in $BROWSER; do - [ -n "$(type -P "$b" || true)" ] && echo "$b" && break - done - )" - if [ -z "$browser" ]; then - browser="$(type -P xdg-open || true)" - if [ -z "$browser" ]; then - browser="$(type -P w3m || true)" - if [ -z "$browser" ]; then - echo "$0: unable to start a web browser; please set \$BROWSER" - exit 1 - fi - fi - fi - exec "$browser" ${entry} - ''; - - desktopItem = pkgs.makeDesktopItem { - name = "nixos-manual"; - desktopName = "NixOS Manual"; - genericName = "View NixOS documentation in a web browser"; - icon = "nix-snowflake"; - exec = "${helpScript}/bin/nixos-help"; - categories = "System"; - }; -in +let cfg = config.services.nixosManual; in { options = { - services.nixosManual.enable = mkOption { - type = types.bool; - default = true; - description = '' - Whether to build the NixOS manual pages. - ''; - }; - + # TODO(@oxij): rename this to `.enable` eventually. services.nixosManual.showManual = mkOption { type = types.bool; default = false; @@ -114,36 +41,28 @@ in }; - config = mkIf cfg.enable { + config = mkIf cfg.showManual { - system.build.manual = manual; + assertions = [{ + assertion = config.documentation.nixos.enable; + message = "Can't enable `service.nixosManual.showManual` without `documentation.nixos.enable`"; + }]; - environment.systemPackages = [] - ++ optionals config.services.xserver.enable [ desktopItem pkgs.nixos-icons ] - ++ optional config.documentation.man.enable manual.manpages - ++ optionals config.documentation.doc.enable [ manual.manual helpScript ]; + boot.extraTTYs = [ "tty${toString cfg.ttyNumber}" ]; - boot.extraTTYs = mkIf cfg.showManual ["tty${toString cfg.ttyNumber}"]; - - systemd.services = optionalAttrs cfg.showManual - { "nixos-manual" = - { description = "NixOS Manual"; - wantedBy = [ "multi-user.target" ]; - serviceConfig = - { ExecStart = "${cfg.browser} ${entry}"; - StandardInput = "tty"; - StandardOutput = "tty"; - TTYPath = "/dev/tty${toString cfg.ttyNumber}"; - TTYReset = true; - TTYVTDisallocate = true; - Restart = "always"; - }; - }; + systemd.services."nixos-manual" = { + description = "NixOS Manual"; + wantedBy = [ "multi-user.target" ]; + serviceConfig = { + ExecStart = "${cfg.browser} ${config.system.build.manual.manualHTMLIndex}"; + StandardInput = "tty"; + StandardOutput = "tty"; + TTYPath = "/dev/tty${toString cfg.ttyNumber}"; + TTYReset = true; + TTYVTDisallocate = true; + Restart = "always"; }; - - services.mingetty.helpLine = "\nRun `nixos-help` " - + lib.optionalString cfg.showManual "or press " - + "for the NixOS manual."; + }; }; diff --git a/nixos/modules/services/networking/iwd.nix b/nixos/modules/services/networking/iwd.nix index eb03d2e1d63..18ed20e2888 100644 --- a/nixos/modules/services/networking/iwd.nix +++ b/nixos/modules/services/networking/iwd.nix @@ -22,6 +22,8 @@ in { systemd.packages = [ pkgs.iwd ]; + systemd.services.iwd.wantedBy = [ "multi-user.target" ]; + systemd.tmpfiles.rules = [ "d /var/lib/iwd 0700 root root -" ]; diff --git a/nixos/modules/services/networking/teamspeak3.nix b/nixos/modules/services/networking/teamspeak3.nix index 3703921ff70..410d650b1f6 100644 --- a/nixos/modules/services/networking/teamspeak3.nix +++ b/nixos/modules/services/networking/teamspeak3.nix @@ -124,7 +124,7 @@ in dbsqlpath=${ts3}/lib/teamspeak/sql/ logpath=${cfg.logPath} \ voice_ip=${cfg.voiceIP} default_voice_port=${toString cfg.defaultVoicePort} \ filetransfer_ip=${cfg.fileTransferIP} filetransfer_port=${toString cfg.fileTransferPort} \ - query_ip=${cfg.queryIP} query_port=${toString cfg.queryPort} + query_ip=${cfg.queryIP} query_port=${toString cfg.queryPort} license_accepted=1 ''; WorkingDirectory = cfg.dataDir; User = user; diff --git a/nixos/modules/services/x11/desktop-managers/plasma5.nix b/nixos/modules/services/x11/desktop-managers/plasma5.nix index d1cb962f6ff..e759f69db89 100644 --- a/nixos/modules/services/x11/desktop-managers/plasma5.nix +++ b/nixos/modules/services/x11/desktop-managers/plasma5.nix @@ -81,6 +81,7 @@ in kconfig kconfigwidgets kcoreaddons + kdoctools kdbusaddons kdeclarative kded diff --git a/nixos/modules/virtualisation/qemu-vm.nix b/nixos/modules/virtualisation/qemu-vm.nix index 4e9c87222d0..eec1a85162b 100644 --- a/nixos/modules/virtualisation/qemu-vm.nix +++ b/nixos/modules/virtualisation/qemu-vm.nix @@ -32,15 +32,21 @@ let # expressions and shell script stuff. mkDiskIfaceDriveFlag = idx: driveArgs: let inherit (cfg.qemu) diskInterface; + isSCSI = diskInterface == "scsi"; # The drive identifier created by incrementing the index by one using the # shell. drvId = "drive$((${idx} + 1))"; + dvcId = "${diskInterface}$((${idx} + 1))"; # NOTE: DO NOT shell escape, because this may contain shell variables. - commonArgs = "index=${idx},id=${drvId},${driveArgs}"; - isSCSI = diskInterface == "scsi"; - devArgs = "${diskInterface}-hd,drive=${drvId}"; - args = "-drive ${commonArgs},if=none -device lsi53c895a -device ${devArgs}"; - in if isSCSI then args else "-drive ${commonArgs},if=${diskInterface}"; + commonDriveArgs = "media=disk,id=${drvId},${driveArgs}"; + commonInterfaceArgs = "drive=${drvId},id=${dvcId},bootindex=${idx}"; + in lib.concatStrings [ + "-drive ${commonDriveArgs},if=none " + ''${if isSCSI then + "-device lsi53c895a -device ${diskInterface}-hd,${commonInterfaceArgs}" + else + "-device virtio-blk-pci,scsi=off,${commonInterfaceArgs}"} '' + ]; # Shell script to start the VM. startVM = @@ -97,15 +103,15 @@ let -virtfs local,path=/nix/store,security_model=none,mount_tag=store \ -virtfs local,path=$TMPDIR/xchg,security_model=none,mount_tag=xchg \ -virtfs local,path=''${SHARED_DIR:-$TMPDIR/xchg},security_model=none,mount_tag=shared \ + ${mkDiskIfaceDriveFlag "1" "file=$NIX_DISK_IMAGE,media=disk,cache=writeback,werror=report"} \ ${if cfg.useBootLoader then '' - ${mkDiskIfaceDriveFlag "0" "file=$NIX_DISK_IMAGE,cache=writeback,werror=report"} \ - ${mkDiskIfaceDriveFlag "1" "file=$TMPDIR/disk.img,media=disk"} \ + -boot menu=on \ + ${mkDiskIfaceDriveFlag "0" "file=$TMPDIR/disk.img,media=disk"} \ ${if cfg.useEFIBoot then '' -pflash $TMPDIR/bios.bin \ '' else '' - ''} - '' else '' - ${mkDiskIfaceDriveFlag "0" "file=$NIX_DISK_IMAGE,cache=writeback,werror=report"} \ + \''} + '' else '' \ -kernel ${config.system.build.toplevel}/kernel \ -initrd ${config.system.build.toplevel}/initrd \ -append "$(cat ${config.system.build.toplevel}/kernel-params) init=${config.system.build.toplevel}/init regInfo=${regInfo}/registration ${consoles} $QEMU_KERNEL_PARAMS" \ @@ -141,8 +147,9 @@ let ''; buildInputs = [ pkgs.utillinux ]; QEMU_OPTS = if cfg.useEFIBoot - then "-pflash $out/bios.bin -nographic -serial pty" - else "-nographic -serial pty"; + then "-pflash $out/bios.bin -nographic" + else "-nographic"; + diskInterface = cfg.qemu.diskInterface; } '' # Create a /boot EFI partition with 40M and arbitrary but fixed GUIDs for reproducibility @@ -155,10 +162,10 @@ let --partition-guid=1:1C06F03B-704E-4657-B9CD-681A087A2FDC \ --partition-guid=2:970C694F-AFD0-4B99-B750-CDB7A329AB6F \ --hybrid 2 \ - --recompute-chs /dev/vda - ${pkgs.dosfstools}/bin/mkfs.fat -F16 /dev/vda2 + --recompute-chs ${config.virtualisation.bootDevice} + ${pkgs.dosfstools}/bin/mkfs.fat -F16 ${config.virtualisation.bootDevice}2 export MTOOLS_SKIP_CHECK=1 - ${pkgs.mtools}/bin/mlabel -i /dev/vda2 ::boot + ${pkgs.mtools}/bin/mlabel -i ${config.virtualisation.bootDevice}2 ::boot # Mount /boot; load necessary modules first. ${pkgs.kmod}/bin/insmod ${pkgs.linux}/lib/modules/*/kernel/fs/nls/nls_cp437.ko.xz || true @@ -167,11 +174,11 @@ let ${pkgs.kmod}/bin/insmod ${pkgs.linux}/lib/modules/*/kernel/fs/fat/vfat.ko.xz || true ${pkgs.kmod}/bin/insmod ${pkgs.linux}/lib/modules/*/kernel/fs/efivarfs/efivarfs.ko.xz || true mkdir /boot - mount /dev/vda2 /boot + mount ${config.virtualisation.bootDevice}2 /boot # This is needed for GRUB 0.97, which doesn't know about virtio devices. mkdir /boot/grub - echo '(hd0) /dev/vda' > /boot/grub/device.map + echo '(hd0) ${config.virtualisation.bootDevice}' > /boot/grub/device.map # Install GRUB and generate the GRUB boot menu. touch /etc/NIXOS @@ -464,7 +471,8 @@ in boot.initrd.availableKernelModules = optional cfg.writableStore "overlay" - ++ optional (cfg.qemu.diskInterface == "scsi") "sym53c8xx"; + ++ optional (cfg.qemu.diskInterface == "scsi") "sym53c8xx" + ++ optional (cfg.qemu.diskInterface == "scsi") "virtio_scsi"; virtualisation.bootDevice = mkDefault (if cfg.qemu.diskInterface == "scsi" then "/dev/sda" else "/dev/vda"); diff --git a/nixos/release.nix b/nixos/release.nix index 14983edb0ce..cce2c54f02b 100644 --- a/nixos/release.nix +++ b/nixos/release.nix @@ -128,7 +128,8 @@ in rec { channel = import lib/make-channel.nix { inherit pkgs nixpkgs version versionSuffix; }; - manual = buildFromConfig ({ ... }: { }) (config: config.system.build.manual.manual); + manualHTML = buildFromConfig ({ ... }: { }) (config: config.system.build.manual.manualHTML); + manual = manualHTML; # TODO(@oxij): remove eventually manualEpub = (buildFromConfig ({ ... }: { }) (config: config.system.build.manual.manualEpub)); manpages = buildFromConfig ({ ... }: { }) (config: config.system.build.manual.manpages); manualGeneratedSources = buildFromConfig ({ ... }: { }) (config: config.system.build.manual.generatedSources); diff --git a/nixos/tests/misc.nix b/nixos/tests/misc.nix index b0bc1d083b1..6d72ac997f8 100644 --- a/nixos/tests/misc.nix +++ b/nixos/tests/misc.nix @@ -14,7 +14,7 @@ import ./make-test.nix ({ pkgs, ...} : rec { { swapDevices = mkOverride 0 [ { device = "/root/swapfile"; size = 128; } ]; environment.variables.EDITOR = mkOverride 0 "emacs"; - services.nixosManual.enable = mkOverride 0 true; + documentation.nixos.enable = mkOverride 0 true; systemd.tmpfiles.rules = [ "d /tmp 1777 root root 10d" ]; fileSystems = mkVMOverride { "/tmp2" = { fsType = "tmpfs"; diff --git a/nixos/tests/prosody.nix b/nixos/tests/prosody.nix index 5d33aaf8d65..61ae5bb38ed 100644 --- a/nixos/tests/prosody.nix +++ b/nixos/tests/prosody.nix @@ -6,6 +6,9 @@ import ./make-test.nix { enable = true; # TODO: use a self-signed certificate c2sRequireEncryption = false; + extraConfig = '' + storage = "sql" + ''; }; environment.systemPackages = let sendMessage = pkgs.writeScriptBin "send-message" '' diff --git a/pkgs/applications/audio/opusfile/default.nix b/pkgs/applications/audio/opusfile/default.nix index d864d5972bc..993e3c4fe8c 100644 --- a/pkgs/applications/audio/opusfile/default.nix +++ b/pkgs/applications/audio/opusfile/default.nix @@ -1,10 +1,10 @@ { stdenv, fetchurl, pkgconfig, openssl, libogg, libopus }: stdenv.mkDerivation rec { - name = "opusfile-0.10"; + name = "opusfile-0.11"; src = fetchurl { url = "http://downloads.xiph.org/releases/opus/${name}.tar.gz"; - sha256 = "0bs1376sd131qdh7198jp64vv5d17az5wyy4y7srrvw7p8k3bq28"; + sha256 = "1gq3aszzl5glgbajw5p1f5a1kdyf23w5vjdmwwrk246syin9pkkl"; }; nativeBuildInputs = [ pkgconfig ]; diff --git a/pkgs/applications/audio/quodlibet/default.nix b/pkgs/applications/audio/quodlibet/default.nix index f1a22bd839a..baf49ff78e5 100644 --- a/pkgs/applications/audio/quodlibet/default.nix +++ b/pkgs/applications/audio/quodlibet/default.nix @@ -1,5 +1,5 @@ { stdenv, fetchurl, python3, wrapGAppsHook, gettext, intltool, libsoup, gnome3, gtk3, gdk_pixbuf, - tag ? "", xvfb_run, dbus, glibcLocales, glib, gobjectIntrospection, + tag ? "", xvfb_run, dbus, glibcLocales, glib, glib-networking, gobjectIntrospection, gst_all_1, withGstPlugins ? true, xineBackend ? false, xineLib, withDbusPython ? false, withPyInotify ? false, withMusicBrainzNgs ? false, withPahoMqtt ? false, @@ -24,7 +24,7 @@ python3.pkgs.buildPythonApplication rec { checkInputs = with python3.pkgs; [ pytest pytest_xdist pyflakes pycodestyle polib xvfb_run dbus.daemon glibcLocales ]; - buildInputs = [ gnome3.defaultIconTheme libsoup glib gtk3 webkitgtk gdk_pixbuf keybinder3 gtksourceview libmodplug libappindicator-gtk3 kakasi gobjectIntrospection ] + buildInputs = [ gnome3.defaultIconTheme libsoup glib glib-networking gtk3 webkitgtk gdk_pixbuf keybinder3 gtksourceview libmodplug libappindicator-gtk3 kakasi gobjectIntrospection ] ++ (if xineBackend then [ xineLib ] else with gst_all_1; [ gstreamer gst-plugins-base ] ++ optionals withGstPlugins [ gst-plugins-good gst-plugins-ugly gst-plugins-bad ]); diff --git a/pkgs/applications/misc/electron-cash/default.nix b/pkgs/applications/misc/electron-cash/default.nix index 891222a0f10..66a423238b3 100644 --- a/pkgs/applications/misc/electron-cash/default.nix +++ b/pkgs/applications/misc/electron-cash/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchurl, python3Packages }: +{ stdenv, fetchurl, python3Packages, qtbase, makeWrapper, lib }: let @@ -7,14 +7,14 @@ let in python3Packages.buildPythonApplication rec { - version = "3.1.6"; + version = "3.3.1"; name = "electron-cash-${version}"; src = fetchurl { url = "https://electroncash.org/downloads/${version}/win-linux/ElectronCash-${version}.tar.gz"; # Verified using official SHA-1 and signature from # https://github.com/fyookball/keys-n-hashes - sha256 = "062k5iw0jcp10zxrffvgiyfg51c5xzs7gmm638icx01yy67d58dm"; + sha256 = "1jdy89rfdwc2jadx3rqj5yvynpcn90cx6482ax9f1cj9gfxp9j2b"; }; propagatedBuildInputs = with python3Packages; [ @@ -36,13 +36,14 @@ python3Packages.buildPythonApplication rec { trezor ]; + nativeBuildInputs = [ makeWrapper ]; + postPatch = '' # Remove pyqt5 check sed -i '/pyqt5/d' setup.py ''; preBuild = '' - sed -i 's,usr_share = .*,usr_share = "'$out'/share",g' setup.py pyrcc5 icons.qrc -o gui/qt/icons_rc.py # Recording the creation timestamps introduces indeterminism to the build sed -i '/Created: .*/d' gui/qt/icons_rc.py @@ -51,18 +52,21 @@ python3Packages.buildPythonApplication rec { doCheck = false; postInstall = '' - # Despite setting usr_share above, these files are installed under - # $out/nix ... - mv $out/${python.sitePackages}/nix/store"/"*/share $out - rm -rf $out/${python.sitePackages}/nix + # These files are installed under $out/homeless-shelter ... + mv $out/${python.sitePackages}/homeless-shelter/.local/share $out + rm -rf $out/${python.sitePackages}/homeless-shelter substituteInPlace $out/share/applications/electron-cash.desktop \ --replace "Exec=electron-cash %u" "Exec=$out/bin/electron-cash %u" + + # Please remove this when #44047 is fixed + wrapProgram $out/bin/electron-cash \ + --prefix QT_PLUGIN_PATH : ${qtbase}/lib/qt-5.${lib.versions.minor qtbase.version}/plugins ''; doInstallCheck = true; installCheckPhase = '' - $out/bin/electrum help >/dev/null + $out/bin/electron-cash help >/dev/null ''; meta = with stdenv.lib; { diff --git a/pkgs/applications/misc/gnuradio/limesdr.nix b/pkgs/applications/misc/gnuradio/limesdr.nix new file mode 100644 index 00000000000..535dbfa3c53 --- /dev/null +++ b/pkgs/applications/misc/gnuradio/limesdr.nix @@ -0,0 +1,38 @@ +{ stdenv, fetchFromGitHub, cmake, boost, gnuradio +, pythonSupport ? true, python, swig, limesuite +} : + +assert pythonSupport -> python != null && swig != null; + +let + version = "1.0.0-RC"; + +in stdenv.mkDerivation rec { + name = "gnuradio-limesdr-${version}"; + + src = fetchFromGitHub { + owner = "myriadrf"; + repo = "gr-limesdr"; + rev = "v${version}"; + sha256 = "0b34mg9nfar2gcir98004ixrxmxi8p3p2hrvvi1razd869x2a0lf"; + }; + + nativeBuildInputs = [ + cmake + ] ++ stdenv.lib.optionals pythonSupport [ swig ]; + + buildInputs = [ + boost gnuradio limesuite + ] ++ stdenv.lib.optionals pythonSupport [ python ]; + + + enableParallelBuilding = true; + + meta = with stdenv.lib; { + description = "Gnuradio source and sink blocks for LimeSDR"; + homepage = https://wiki.myriadrf.org/Gr-limesdr_Plugin_for_GNURadio; + license = licenses.mit; + platforms = platforms.linux ++ platforms.darwin; + maintainers = [ maintainers.markuskowa ]; + }; +} diff --git a/pkgs/applications/misc/mwic/default.nix b/pkgs/applications/misc/mwic/default.nix index 67e6ed3fa9c..15904ab7c0a 100644 --- a/pkgs/applications/misc/mwic/default.nix +++ b/pkgs/applications/misc/mwic/default.nix @@ -1,12 +1,12 @@ { stdenv, fetchurl, pythonPackages }: stdenv.mkDerivation rec { - version = "0.7.5"; + version = "0.7.6"; name = "mwic-${version}"; src = fetchurl { url = "https://github.com/jwilk/mwic/releases/download/${version}/${name}.tar.gz"; - sha256 = "1b4fz9vs0aihg9nj9aj6d2jmykpa9nxi9rvz06v50wwk515plpmc"; + sha256 = "0dl56979i54hrmz5l27c4q1f7jd1bpkmi7sm86946dagi4l1ns3i"; }; makeFlags=["PREFIX=\${out}"]; diff --git a/pkgs/applications/networking/instant-messengers/jackline/default.nix b/pkgs/applications/networking/instant-messengers/jackline/default.nix index 9f85c940c1b..689445d7dcb 100644 --- a/pkgs/applications/networking/instant-messengers/jackline/default.nix +++ b/pkgs/applications/networking/instant-messengers/jackline/default.nix @@ -3,21 +3,19 @@ assert stdenv.lib.versionAtLeast ocamlPackages.ocaml.version "4.02.2"; stdenv.mkDerivation rec { - version = "2017-12-24"; + version = "2018-05-11"; name = "jackline-${version}"; src = fetchFromGitHub { owner = "hannesm"; repo = "jackline"; - rev = "8678e8a1a06e641218a31ae25150040202f89289"; - sha256 = "05z9kvd7gwr59ic7hnmbayhwyyqd41xxz01cvdlcgplk3z7zlwg5"; + rev = "bc36b1c8b80fee6baba4f91011cd01b82a06e8eb"; + sha256 = "1xx2yx8a95m84sa1bkxi3rlx7pd39zkqwk3znj0zzz3cni6apfrz"; }; - patches = [ ./tls-0.9.0.patch ]; - buildInputs = with ocamlPackages; [ ocaml ocamlbuild findlib topkg ppx_sexp_conv - erm_xmpp_0_3 tls nocrypto x509 ocaml_lwt otr astring + erm_xmpp tls nocrypto x509 ocaml_lwt otr astring ptime notty sexplib hex uutf ]; diff --git a/pkgs/applications/networking/instant-messengers/jackline/tls-0.9.0.patch b/pkgs/applications/networking/instant-messengers/jackline/tls-0.9.0.patch deleted file mode 100644 index 38f38a03a80..00000000000 --- a/pkgs/applications/networking/instant-messengers/jackline/tls-0.9.0.patch +++ /dev/null @@ -1,29 +0,0 @@ -diff --git a/cli/cli_config.ml b/cli/cli_config.ml -index 991ee77..59a0edb 100644 ---- a/cli/cli_config.ml -+++ b/cli/cli_config.ml -@@ -207,7 +207,9 @@ let configure term () = - ask above "CA file: " (fun x -> x) (fun x -> if Sys.file_exists x then `Ok x else `Invalid) term >>= fun trust_anchor -> - Lwt_unix.access trust_anchor [ Unix.F_OK ; Unix.R_OK ] >>= fun () -> - X509_lwt.certs_of_pem trust_anchor >>= fun tas -> -- (match X509.Validation.valid_cas ~time:(Unix.time ()) tas with -+ let time = match Ptime.of_float_s (Unix.time ()) -+ with Some time -> time | None -> assert false in -+ (match X509.Validation.valid_cas ~time tas with - | [] -> Lwt.fail (Invalid_argument "trust anchor file is empty!") - | _ -> Lwt.return (`Trust_anchor trust_anchor)) - | Some fp -> Lwt.return (`Fingerprint fp) ) >>= fun authenticator -> -diff --git a/cli/cli_state.ml b/cli/cli_state.ml -index d5db502..91540c9 100644 ---- a/cli/cli_state.ml -+++ b/cli/cli_state.ml -@@ -262,7 +262,8 @@ module Connect = struct - (match config.Xconfig.authenticator with - | `Trust_anchor x -> X509_lwt.authenticator (`Ca_file x) - | `Fingerprint fp -> -- let time = Unix.gettimeofday () in -+ let time = match Ptime.of_float_s (Unix.gettimeofday ()) -+ with Some time -> time | None -> assert false in - let fp = - Nocrypto.Uncommon.Cs.of_hex - (String.map (function ':' -> ' ' | x -> x) fp) diff --git a/pkgs/applications/networking/instant-messengers/teamspeak/server.nix b/pkgs/applications/networking/instant-messengers/teamspeak/server.nix index c86de07bc84..bd1346b1219 100644 --- a/pkgs/applications/networking/instant-messengers/teamspeak/server.nix +++ b/pkgs/applications/networking/instant-messengers/teamspeak/server.nix @@ -1,7 +1,7 @@ { stdenv, fetchurl, makeWrapper }: let - version = "3.0.13.6"; + version = "3.3.0"; arch = if stdenv.is64bit then "amd64" else "x86"; libDir = if stdenv.is64bit then "lib64" else "lib"; in @@ -14,9 +14,9 @@ stdenv.mkDerivation { "http://dl.4players.de/ts/releases/${version}/teamspeak3-server_linux_${arch}-${version}.tar.bz2" "http://teamspeak.gameserver.gamed.de/ts3/releases/${version}/teamspeak3-server_linux_${arch}-${version}.tar.bz2" ]; - sha256 = if stdenv.is64bit - then "19ccd8db5427758d972a864b70d4a1263ebb9628fcc42c3de75ba87de105d179" - else "2f70b3e70a3d9bf86106fab67a938922c8d27fec24e66e229913f78a0791b967"; + sha256 = if stdenv.is64bit + then "1jv5c1br3ypxz8px7fl5rg75j0kfdg8mqasdk2gka6yvgf7qc97i" + else "0m889xl9iz3fmq7wyjjn42swprpspagbkn52a82nzkhgvagd45bz"; }; buildInputs = [ makeWrapper ]; diff --git a/pkgs/applications/office/treesheets/default.nix b/pkgs/applications/office/treesheets/default.nix index d8e6cdd86ea..d0a4953c426 100644 --- a/pkgs/applications/office/treesheets/default.nix +++ b/pkgs/applications/office/treesheets/default.nix @@ -2,13 +2,13 @@ stdenv.mkDerivation rec { name = "treesheets-${version}"; - version = "2017-03-27"; + version = "2018-08-18"; src = fetchFromGitHub { owner = "aardappel"; repo = "treesheets"; - rev = "1d1d6b214e3ae88445eb1ec0032d5fef14160f32"; - sha256 = "0np91c4skq3yxq76c4zi33w73qb1w2nrcin490kkvrxk53jspklb"; + rev = "3af41d99c8f9f32603a36ab64af3560b6d61dd73"; + sha256 = "147y8ggh3clwjgsi15z8i4jnzlkh8p17mmlg532jym53zzbcva65"; }; buildInputs = [ wxGTK makeWrapper ]; @@ -49,7 +49,7 @@ stdenv.mkDerivation rec { ''; homepage = http://strlen.com/treesheets/; - maintainers = with maintainers; [ obadz ]; + maintainers = with maintainers; [ obadz avery ]; platforms = platforms.linux; license = licenses.zlib; }; diff --git a/pkgs/applications/version-management/git-and-tools/pre-commit/default.nix b/pkgs/applications/version-management/git-and-tools/pre-commit/default.nix index bc36a8879f4..331b020d8ca 100644 --- a/pkgs/applications/version-management/git-and-tools/pre-commit/default.nix +++ b/pkgs/applications/version-management/git-and-tools/pre-commit/default.nix @@ -1,11 +1,11 @@ { stdenv, python3Packages }: with python3Packages; buildPythonApplication rec { pname = "pre_commit"; - version = "1.11.0"; + version = "1.11.1"; src = fetchPypi { inherit pname version; - sha256 = "03nxkma8qp5j2bg6ailclnyqfhakp8r8d1mn6zcnjw0ac5r9imc8"; + sha256 = "1kjrq8z78b6aqhyyw07dlwf6cqls88kik6f5l07hs71fj5ddvs9w"; }; propagatedBuildInputs = [ diff --git a/pkgs/applications/version-management/git-and-tools/tig/default.nix b/pkgs/applications/version-management/git-and-tools/tig/default.nix index 6d2753e4543..a407f6e7ab1 100644 --- a/pkgs/applications/version-management/git-and-tools/tig/default.nix +++ b/pkgs/applications/version-management/git-and-tools/tig/default.nix @@ -31,6 +31,10 @@ stdenv.mkDerivation rec { installPhase = '' make install make install-doc + + substituteInPlace contrib/tig-completion.zsh \ + --replace 'e=$(dirname ''${funcsourcetrace[1]%:*})/tig-completion.bash' "e=$out/etc/bash_completion.d/tig-completion.bash" + install -D contrib/tig-completion.bash $out/etc/bash_completion.d/tig-completion.bash install -D contrib/tig-completion.zsh $out/share/zsh/site-functions/_tig cp contrib/vim.tigrc $out/etc/ diff --git a/pkgs/applications/video/obs-studio/default.nix b/pkgs/applications/video/obs-studio/default.nix index a07a15177d0..cacad5a3e62 100644 --- a/pkgs/applications/video/obs-studio/default.nix +++ b/pkgs/applications/video/obs-studio/default.nix @@ -18,6 +18,7 @@ , makeWrapper , pkgconfig , vlc +, mbedtls , alsaSupport ? false , alsaLib @@ -29,17 +30,15 @@ let optional = stdenv.lib.optional; in stdenv.mkDerivation rec { name = "obs-studio-${version}"; - version = "21.1.2"; + version = "22.0.2"; src = fetchFromGitHub { owner = "jp9000"; repo = "obs-studio"; rev = "${version}"; - sha256 = "1gl6qibvckczk3yl44h3yshml6sn3izwn58qpxils5837rpkwlc5"; + sha256 = "1bgp2lirpsbp54vvl3p345njlpgv0d78vac2aqwbl34wqx5sqdk0"; }; - patches = [ ./find-xcb.patch ]; - nativeBuildInputs = [ cmake pkgconfig ]; @@ -59,6 +58,7 @@ in stdenv.mkDerivation rec { x264 vlc makeWrapper + mbedtls ] ++ optional alsaSupport alsaLib ++ optional pulseaudioSupport libpulseaudio; diff --git a/pkgs/applications/video/obs-studio/find-xcb.patch b/pkgs/applications/video/obs-studio/find-xcb.patch deleted file mode 100644 index c45aba4ce2f..00000000000 --- a/pkgs/applications/video/obs-studio/find-xcb.patch +++ /dev/null @@ -1,31 +0,0 @@ -diff --git a/libobs/CMakeLists.txt b/libobs/CMakeLists.txt -index cd2b80e1..7d829cdb 100644 ---- a/libobs/CMakeLists.txt -+++ b/libobs/CMakeLists.txt -@@ -15,6 +15,7 @@ if(UNIX) - find_package(DBus QUIET) - if (NOT APPLE) - find_package(X11_XCB REQUIRED) -+ find_package(XCB REQUIRED) - endif() - else() - set(HAVE_DBUS "0") -@@ -161,12 +162,15 @@ elseif(UNIX) - endif() - - include_directories( -- ${X11_XCB_INCLUDE_DIRS}) -+ ${X11_XCB_INCLUDE_DIRS} -+ ${XCB_INCLUDE_DIRS}) - add_definitions( -- ${X11_XCB_DEFINITIONS}) -+ ${X11_XCB_DEFINITIONS} -+ ${XCB_DEFINITIONS}) - set(libobs_PLATFORM_DEPS - ${libobs_PLATFORM_DEPS} -- ${X11_XCB_LIBRARIES}) -+ ${X11_XCB_LIBRARIES} -+ ${XCB_LIBRARIES}) - - if(${CMAKE_SYSTEM_NAME} MATCHES "FreeBSD") - # use the sysinfo compatibility library on bsd diff --git a/pkgs/applications/video/smplayer/default.nix b/pkgs/applications/video/smplayer/default.nix index 10793908632..58ed3ec59b2 100644 --- a/pkgs/applications/video/smplayer/default.nix +++ b/pkgs/applications/video/smplayer/default.nix @@ -1,11 +1,11 @@ { stdenv, fetchurl, qmake, qtscript }: stdenv.mkDerivation rec { - name = "smplayer-18.6.0"; + name = "smplayer-18.9.0"; src = fetchurl { url = "mirror://sourceforge/smplayer/${name}.tar.bz2"; - sha256 = "0pb862l175ycm6fm90nryzgbqy8kbwpv3i6cbn13h7jh1yrz8nqx"; + sha256 = "0gff22yh2h76cyqsbjpa7rax51sfzygjl3isd8dk47zar9cyvw8d"; }; buildInputs = [ qtscript ]; diff --git a/pkgs/build-support/vm/default.nix b/pkgs/build-support/vm/default.nix index 03b3fb1f9f2..6e98099460f 100644 --- a/pkgs/build-support/vm/default.nix +++ b/pkgs/build-support/vm/default.nix @@ -3,8 +3,9 @@ , img ? pkgs.stdenv.hostPlatform.platform.kernelTarget , storeDir ? builtins.storeDir , rootModules ? - [ "virtio_pci" "virtio_mmio" "virtio_blk" "virtio_balloon" "virtio_rng" "ext4" "unix" "9p" "9pnet_virtio" "crc32c_generic" ] + [ "virtio_pci" "virtio_mmio" "virtio_blk" "virtio_balloon" "virtio_rng" "ext4" "unix" "9p" "9pnet_virtio" "crc32c_generic" "sym53c8xx" "virtio_scsi" "ahci "] ++ pkgs.lib.optional (pkgs.stdenv.isi686 || pkgs.stdenv.isx86_64) "rtc_cmos" +, config }: with pkgs; @@ -196,9 +197,17 @@ rec { ${qemuBinary qemu} \ -nographic -no-reboot \ -device virtio-rng-pci \ + ${if "$diskInterface" == "scsi" then '' \ + \ # FIXME: /dev/sda is not created within the VM + -device lsi53c895a \ + -device scsi-hd,drive=hd,id=scsi1,bootindex=1 \ + ''${diskImage:+-drive file=$diskImage,media=disk,if=none,id=hd,cache=unsafe,werror=report} \ + '' else '' \ + -drive file=$diskImage,media=disk,if=none,id=hd \ + -device virtio-blk-pci,scsi=off,drive=hd,id=virtio0,bootindex=1 \ + \''} -virtfs local,path=${storeDir},security_model=none,mount_tag=store \ -virtfs local,path=$TMPDIR/xchg,security_model=none,mount_tag=xchg \ - ''${diskImage:+-drive file=$diskImage,if=virtio,cache=unsafe,werror=report} \ -kernel ${kernel}/${img} \ -initrd ${initrd}/initrd \ -append "console=${qemuSerialDevice} panic=1 command=${stage2Init} out=$out mountDisk=$mountDisk loglevel=4" \ @@ -298,12 +307,13 @@ rec { `run-vm' will be left behind in the temporary build directory that allows you to boot into the VM and debug it interactively. */ - runInLinuxVM = drv: lib.overrideDerivation drv ({ memSize ? 512, QEMU_OPTS ? "", args, builder, ... }: { + runInLinuxVM = drv: lib.overrideDerivation drv ({ memSize ? 512, QEMU_OPTS ? "", args, builder, ... } @ moreArgs : { requiredSystemFeatures = [ "kvm" ]; builder = "${bash}/bin/sh"; args = ["-e" (vmRunCommand qemuCommandLinux)]; origArgs = args; origBuilder = builder; + diskInterface = "${moreArgs.diskInterface}"; QEMU_OPTS = "${QEMU_OPTS} -m ${toString memSize}"; passAsFile = []; # HACK fix - see https://github.com/NixOS/nixpkgs/issues/16742 }); diff --git a/pkgs/data/fonts/ultimate-oldschool-pc-font-pack/default.nix b/pkgs/data/fonts/ultimate-oldschool-pc-font-pack/default.nix new file mode 100644 index 00000000000..cb68c30a4a2 --- /dev/null +++ b/pkgs/data/fonts/ultimate-oldschool-pc-font-pack/default.nix @@ -0,0 +1,31 @@ +{ stdenv, fetchurl, unzip }: + +stdenv.mkDerivation rec { + name = "ultimate-oldschool-pc-font-pack-${version}"; + version = "1.0"; + + src = fetchurl { + url = "http://int10h.org/oldschool-pc-fonts/download/ultimate_oldschool_pc_font_pack_v${version}.zip"; + sha256 = "7666cf23176e34ea03a218b5c1500f4ad729d97150ab7bdb7cf2adf4c99a9a7a"; + }; + + buildInputs = [ unzip ]; + + dontBuild = true; + + sourceRoot = "."; + + installPhase = '' + mkdir -p $out/share/fonts/truetype + cp 'Px437 (TrueType - DOS charset)'/*.ttf $out/share/fonts/truetype + cp 'PxPlus (TrueType - extended charset)'/*.ttf $out/share/fonts/truetype + ''; + + meta = with stdenv.lib; { + description = "The Ultimate Oldschool PC Font Pack (TTF Fonts)"; + homepage = "http://int10h.org/oldschool-pc-fonts/"; + platforms = platforms.unix; + license = licenses.cc-by-sa-40; + maintainers = [ maintainers.endgame ]; + }; +} diff --git a/pkgs/development/compilers/llvm/3.5/default.nix b/pkgs/development/compilers/llvm/3.5/default.nix index f588eb4407b..b87fa747f14 100644 --- a/pkgs/development/compilers/llvm/3.5/default.nix +++ b/pkgs/development/compilers/llvm/3.5/default.nix @@ -6,7 +6,7 @@ let fetch = fetch_v version; fetch_v = ver: name: sha256: fetchurl { - url = "http://llvm.org/releases/${ver}/${name}-${ver}.src.tar.xz"; + url = "https://releases.llvm.org/${ver}/${name}-${ver}.src.tar.xz"; inherit sha256; }; diff --git a/pkgs/development/compilers/llvm/3.7/default.nix b/pkgs/development/compilers/llvm/3.7/default.nix index f176894dedb..3c557711449 100644 --- a/pkgs/development/compilers/llvm/3.7/default.nix +++ b/pkgs/development/compilers/llvm/3.7/default.nix @@ -9,7 +9,7 @@ let fetch = fetch_v version; fetch_v = ver: name: sha256: fetchurl { - url = "http://llvm.org/releases/${ver}/${name}-${ver}.src.tar.xz"; + url = "https://releases.llvm.org/${ver}/${name}-${ver}.src.tar.xz"; inherit sha256; }; diff --git a/pkgs/development/compilers/llvm/3.8/default.nix b/pkgs/development/compilers/llvm/3.8/default.nix index 99869e6e80a..a848c8b9252 100644 --- a/pkgs/development/compilers/llvm/3.8/default.nix +++ b/pkgs/development/compilers/llvm/3.8/default.nix @@ -8,7 +8,7 @@ let fetch = fetch_v version; fetch_v = ver: name: sha256: fetchurl { - url = "http://llvm.org/releases/${ver}/${name}-${ver}.src.tar.xz"; + url = "https://releases.llvm.org/${ver}/${name}-${ver}.src.tar.xz"; inherit sha256; }; diff --git a/pkgs/development/compilers/llvm/3.9/default.nix b/pkgs/development/compilers/llvm/3.9/default.nix index 01c08f4bd20..752790cdd85 100644 --- a/pkgs/development/compilers/llvm/3.9/default.nix +++ b/pkgs/development/compilers/llvm/3.9/default.nix @@ -8,7 +8,7 @@ let fetch = fetch_v version; fetch_v = ver: name: sha256: fetchurl { - url = "http://llvm.org/releases/${version}/${name}-${ver}.src.tar.xz"; + url = "https://releases.llvm.org/${version}/${name}-${ver}.src.tar.xz"; inherit sha256; }; diff --git a/pkgs/development/compilers/llvm/5/default.nix b/pkgs/development/compilers/llvm/5/default.nix index 38d2b0d461d..68ee80fa7a6 100644 --- a/pkgs/development/compilers/llvm/5/default.nix +++ b/pkgs/development/compilers/llvm/5/default.nix @@ -9,7 +9,7 @@ let version = release_version; # differentiating these is important for rc's fetch = name: sha256: fetchurl { - url = "http://llvm.org/releases/${release_version}/${name}-${version}.src.tar.xz"; + url = "https://releases.llvm.org/${release_version}/${name}-${version}.src.tar.xz"; inherit sha256; }; diff --git a/pkgs/development/compilers/llvm/6/default.nix b/pkgs/development/compilers/llvm/6/default.nix index 831e4b65344..5ee551f6b6b 100644 --- a/pkgs/development/compilers/llvm/6/default.nix +++ b/pkgs/development/compilers/llvm/6/default.nix @@ -9,7 +9,7 @@ let version = release_version; # differentiating these is important for rc's fetch = name: sha256: fetchurl { - url = "http://releases.llvm.org/${release_version}/${name}-${version}.src.tar.xz"; + url = "https://releases.llvm.org/${release_version}/${name}-${version}.src.tar.xz"; inherit sha256; }; diff --git a/pkgs/development/compilers/llvm/7/clang/default.nix b/pkgs/development/compilers/llvm/7/clang/default.nix new file mode 100644 index 00000000000..e1f4eb30360 --- /dev/null +++ b/pkgs/development/compilers/llvm/7/clang/default.nix @@ -0,0 +1,106 @@ +{ stdenv, fetch, cmake, libxml2, llvm, version, clang-tools-extra_src, python +, fixDarwinDylibNames +, enableManpages ? false +}: + +let + gcc = if stdenv.cc.isGNU then stdenv.cc.cc else stdenv.cc.cc.gcc; + self = stdenv.mkDerivation ({ + name = "clang-${version}"; + + unpackPhase = '' + unpackFile ${fetch "cfe" "0mdsbgj3p7mayhzm8hclzl3i46r2lwa8fr1cz399f9km3iqi40jm"} + mv cfe-${version}* clang + sourceRoot=$PWD/clang + unpackFile ${clang-tools-extra_src} + mv clang-tools-extra-* $sourceRoot/tools/extra + ''; + + nativeBuildInputs = [ cmake python ] + ++ stdenv.lib.optional enableManpages python.pkgs.sphinx; + + buildInputs = [ libxml2 llvm ] + ++ stdenv.lib.optional stdenv.isDarwin fixDarwinDylibNames; + + cmakeFlags = [ + "-DCMAKE_CXX_FLAGS=-std=c++11" + ] ++ 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 ]; + + 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 + ''; + + 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" + substituteInPlace $out/lib/cmake/clang/ClangTargets-release.cmake \ + --replace "\''${_IMPORT_PREFIX}/lib/libclang." "$lib/lib/libclang." + + 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 { + inherit gcc; + }; + + meta = { + description = "A c, c++, objective-c, and objective-c++ frontend for the llvm compiler"; + homepage = http://llvm.org/; + license = stdenv.lib.licenses.ncsa; + platforms = stdenv.lib.platforms.all; + }; + } // stdenv.lib.optionalAttrs enableManpages { + name = "clang-manpages-${version}"; + + 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 diff --git a/pkgs/development/compilers/llvm/7/clang/purity.patch b/pkgs/development/compilers/llvm/7/clang/purity.patch new file mode 100644 index 00000000000..b30d0d0b5d5 --- /dev/null +++ b/pkgs/development/compilers/llvm/7/clang/purity.patch @@ -0,0 +1,30 @@ +From 4add81bba40dcec62c4ea4481be8e35ac53e89d8 Mon Sep 17 00:00:00 2001 +From: Will Dietz +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 +@@ -494,13 +494,6 @@ void tools::gnutools::Linker::ConstructJob(Compilation &C, const JobAction &JA, + if (!Args.hasArg(options::OPT_static)) { + if (Args.hasArg(options::OPT_rdynamic)) + CmdArgs.push_back("-export-dynamic"); +- +- if (!Args.hasArg(options::OPT_shared)) { +- const std::string Loader = +- D.DyldPrefix + ToolChain.getDynamicLinker(Args); +- CmdArgs.push_back("-dynamic-linker"); +- CmdArgs.push_back(Args.MakeArgString(Loader)); +- } + } + + CmdArgs.push_back("-o"); +-- +2.11.0 + diff --git a/pkgs/development/compilers/llvm/7/compiler-rt-codesign.patch b/pkgs/development/compilers/llvm/7/compiler-rt-codesign.patch new file mode 100644 index 00000000000..3cc12b94b20 --- /dev/null +++ b/pkgs/development/compilers/llvm/7/compiler-rt-codesign.patch @@ -0,0 +1,33 @@ +From 3dec5f3475a26aeb4678627795c4b67c6b7b4785 Mon Sep 17 00:00:00 2001 +From: Will Dietz +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 - $ +- WORKING_DIRECTORY ${COMPILER_RT_LIBRARY_OUTPUT_DIR} +- ) +- endif() + endif() + install(TARGETS ${libname} + ARCHIVE DESTINATION ${COMPILER_RT_LIBRARY_INSTALL_DIR} +2.14.1 + diff --git a/pkgs/development/compilers/llvm/7/compiler-rt.nix b/pkgs/development/compilers/llvm/7/compiler-rt.nix new file mode 100644 index 00000000000..ec739d22dd7 --- /dev/null +++ b/pkgs/development/compilers/llvm/7/compiler-rt.nix @@ -0,0 +1,37 @@ +{ stdenv, version, fetch, cmake, python, llvm, libcxxabi }: +with stdenv.lib; +stdenv.mkDerivation rec { + name = "compiler-rt-${version}"; + inherit version; + src = fetch "compiler-rt" "1mkhqvs8cxbfmprkzwyq7lmnzr1sv45znzf0arbgb19crzipzv5x"; + + nativeBuildInputs = [ cmake python llvm ]; + buildInputs = stdenv.lib.optional stdenv.hostPlatform.isDarwin libcxxabi; + + configureFlags = [ + "-DCOMPILER_RT_DEFAULT_TARGET_ONLY=ON" + ]; + + outputs = [ "out" "dev" ]; + + patches = [ + ./compiler-rt-codesign.patch # Revert compiler-rt commit that makes codesign mandatory + ] ++ optional stdenv.hostPlatform.isMusl ./sanitizers-nongnu.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/config-ix.cmake \ + --replace 'set(COMPILER_RT_HAS_TSAN TRUE)' 'set(COMPILER_RT_HAS_TSAN FALSE)' + ''; + + # Hack around weird upsream RPATH bug + postInstall = stdenv.lib.optionalString stdenv.isDarwin '' + ln -s "$out/lib"/*/* "$out/lib" + ''; + + enableParallelBuilding = true; +} diff --git a/pkgs/development/compilers/llvm/7/default.nix b/pkgs/development/compilers/llvm/7/default.nix new file mode 100644 index 00000000000..5446f1b362a --- /dev/null +++ b/pkgs/development/compilers/llvm/7/default.nix @@ -0,0 +1,92 @@ +{ lowPrio, newScope, pkgs, stdenv, cmake, libstdcxxHook +, libxml2, python, isl, fetchurl, overrideCC, wrapCCWith +, buildLlvmTools # tools, but from the previous stage, for cross +, targetLlvmLibraries # libraries, but from the next stage, for cross +}: + +let + release_version = "7.0.0"; + version = release_version; # differentiating these is important for rc's + + fetch = name: sha256: fetchurl { + url = "https://releases.llvm.org/${release_version}/${name}-${version}.src.tar.xz"; + inherit sha256; + }; + + clang-tools-extra_src = fetch "clang-tools-extra" "1glxl7bnr4k3j16s8xy8r9cl0llyg524f50591g1ig23ij65lz4k"; + + tools = stdenv.lib.makeExtensible (tools: let + callPackage = newScope (tools // { inherit stdenv cmake libxml2 python 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 '' + echo "--gcc-toolchain=${tools.clang-unwrapped.gcc}" >> $out/nix-support/cc-cflags + ''; + in { + + llvm = callPackage ./llvm.nix { }; + + clang-unwrapped = callPackage ./clang { + inherit clang-tools-extra_src; + }; + + llvm-manpages = lowPrio (tools.llvm.override { + enableManpages = true; + python = pkgs.python; # don't use python-boot + }); + + clang-manpages = lowPrio (tools.clang-unwrapped.override { + enableManpages = true; + python = pkgs.python; # 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; + extraPackages = [ + libstdcxxHook + targetLlvmLibraries.compiler-rt + ]; + extraBuildCommands = mkExtraBuildCommands cc; + }; + + libcxxClang = wrapCCWith rec { + cc = tools.clang-unwrapped; + extraPackages = [ + targetLlvmLibraries.libcxx + targetLlvmLibraries.libcxxabi + targetLlvmLibraries.compiler-rt + ]; + extraBuildCommands = mkExtraBuildCommands cc; + }; + + lld = callPackage ./lld.nix {}; + + lldb = callPackage ./lldb.nix {}; + }); + + libraries = stdenv.lib.makeExtensible (libraries: let + callPackage = newScope (libraries // buildLlvmTools // { inherit stdenv cmake libxml2 python isl release_version version fetch; }); + in { + + compiler-rt = callPackage ./compiler-rt.nix {}; + + stdenv = overrideCC stdenv buildLlvmTools.clang; + + libcxxStdenv = overrideCC stdenv buildLlvmTools.libcxxClang; + + libcxx = callPackage ./libc++ {}; + + libcxxabi = callPackage ./libc++abi.nix {}; + + openmp = callPackage ./openmp.nix {}; + }); + +in { inherit tools libraries; } // libraries // tools diff --git a/pkgs/development/compilers/llvm/7/libc++/default.nix b/pkgs/development/compilers/llvm/7/libc++/default.nix new file mode 100644 index 00000000000..76bfb34975e --- /dev/null +++ b/pkgs/development/compilers/llvm/7/libc++/default.nix @@ -0,0 +1,50 @@ +{ lib, stdenv, fetch, cmake, python, libcxxabi, fixDarwinDylibNames, version }: + +stdenv.mkDerivation rec { + name = "libc++-${version}"; + + src = fetch "libcxx" "1w1l472p03csgz76p70pn9yk7h0nw5hj1av44ysnakigp8jjcd4v"; + + 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; + + prePatch = '' + substituteInPlace lib/CMakeLists.txt --replace "/usr/lib/libc++" "\''${LIBCXX_LIBCXXABI_LIB_PATH}/libc++" + ''; + + 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 python; + + 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 "-DLIBCXX_HAS_MUSL_LIBC=1"; + + enableParallelBuilding = true; + + linkCxxAbi = stdenv.isLinux; + + setupHooks = [ + ../../../../../build-support/setup-hooks/role.bash + ./setup-hook.sh + ]; + + meta = { + homepage = http://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.unix; + }; +} diff --git a/pkgs/development/compilers/llvm/7/libc++/setup-hook.sh b/pkgs/development/compilers/llvm/7/libc++/setup-hook.sh new file mode 100644 index 00000000000..6611259165a --- /dev/null +++ b/pkgs/development/compilers/llvm/7/libc++/setup-hook.sh @@ -0,0 +1,6 @@ +# See pkgs/build-support/setup-hooks/role.bash +getHostRole + +linkCxxAbi="@linkCxxAbi@" +export NIX_${role_pre}CXXSTDLIB_COMPILE+=" -isystem @out@/include/c++/v1" +export NIX_${role_pre}CXXSTDLIB_LINK=" -stdlib=libc++${linkCxxAbi:+" -lc++abi"}" diff --git a/pkgs/development/compilers/llvm/7/libc++abi.nix b/pkgs/development/compilers/llvm/7/libc++abi.nix new file mode 100644 index 00000000000..7dbda6c365e --- /dev/null +++ b/pkgs/development/compilers/llvm/7/libc++abi.nix @@ -0,0 +1,49 @@ +{ stdenv, cmake, fetch, libcxx, libunwind, llvm, version }: + +stdenv.mkDerivation { + name = "libc++abi-${version}"; + + src = fetch "libcxxabi" "0pr4xfx61r5mwmvhg4j9pb6df6vvha1gyf6rwkm14x9rzxcwficv"; + + nativeBuildInputs = [ cmake ]; + buildInputs = stdenv.lib.optional (!stdenv.isDarwin && !stdenv.isFreeBSD) libunwind; + + postUnpack = '' + unpackFile ${libcxx.src} + unpackFile ${llvm.src} + export 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} + ''; + + 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 + # http://www.cmake.org/Wiki/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.so.1.0 $out/lib + install -m 644 ../include/cxxabi.h $out/include + 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 = http://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.unix; + }; +} diff --git a/pkgs/development/compilers/llvm/7/lld.nix b/pkgs/development/compilers/llvm/7/lld.nix new file mode 100644 index 00000000000..f6ce768d648 --- /dev/null +++ b/pkgs/development/compilers/llvm/7/lld.nix @@ -0,0 +1,32 @@ +{ stdenv +, fetch +, cmake +, libxml2 +, llvm +, version +}: + +stdenv.mkDerivation { + name = "lld-${version}"; + + src = fetch "lld" "173z50vx5mlsaiqmbz7asxy2297z4xivrfxrdfncvx23wp2lgkzv"; + + nativeBuildInputs = [ cmake ]; + buildInputs = [ llvm libxml2 ]; + + outputs = [ "out" "dev" ]; + + enableParallelBuilding = true; + + postInstall = '' + moveToOutput include "$dev" + moveToOutput lib "$dev" + ''; + + meta = { + description = "The LLVM Linker"; + homepage = http://lld.llvm.org/; + license = stdenv.lib.licenses.ncsa; + platforms = stdenv.lib.platforms.all; + }; +} diff --git a/pkgs/development/compilers/llvm/7/lldb.nix b/pkgs/development/compilers/llvm/7/lldb.nix new file mode 100644 index 00000000000..6c3f0699978 --- /dev/null +++ b/pkgs/development/compilers/llvm/7/lldb.nix @@ -0,0 +1,56 @@ +{ stdenv +, fetch +, cmake +, zlib +, ncurses +, swig +, which +, libedit +, libxml2 +, llvm +, clang-unwrapped +, python +, version +, darwin +}: + +stdenv.mkDerivation { + name = "lldb-${version}"; + + src = fetch "lldb" "0cmah36ybyfws0z2ikq9fqn5k4kvjci7vgk97ddx4xwrwkzdixkz"; + + postPatch = '' + # Fix up various paths that assume llvm and clang are installed in the same place + sed -i 's,".*ClangConfig.cmake","${clang-unwrapped}/lib/cmake/clang/ClangConfig.cmake",' \ + cmake/modules/LLDBStandalone.cmake + sed -i 's,".*tools/clang/include","${clang-unwrapped}/include",' \ + cmake/modules/LLDBStandalone.cmake + sed -i 's,"$.LLVM_LIBRARY_DIR.",${llvm}/lib ${clang-unwrapped}/lib,' \ + cmake/modules/LLDBStandalone.cmake + ''; + + nativeBuildInputs = [ cmake python which swig ]; + 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 + ]; + + enableParallelBuilding = true; + + postInstall = '' + mkdir -p $out/share/man/man1 + cp ../docs/lldb.1 $out/share/man/man1/ + ''; + + meta = with stdenv.lib; { + description = "A next-generation high-performance debugger"; + homepage = http://llvm.org/; + license = licenses.ncsa; + platforms = platforms.all; + }; +} diff --git a/pkgs/development/compilers/llvm/7/llvm-outputs.patch b/pkgs/development/compilers/llvm/7/llvm-outputs.patch new file mode 100644 index 00000000000..40096fa3497 --- /dev/null +++ b/pkgs/development/compilers/llvm/7/llvm-outputs.patch @@ -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, diff --git a/pkgs/development/compilers/llvm/7/llvm.nix b/pkgs/development/compilers/llvm/7/llvm.nix new file mode 100644 index 00000000000..67bde813fee --- /dev/null +++ b/pkgs/development/compilers/llvm/7/llvm.nix @@ -0,0 +1,174 @@ +{ stdenv +, fetch +, cmake +, python +, libffi +, libbfd +, libpfm +, libxml2 +, ncurses +, version +, release_version +, zlib +, debugVersion ? false +, enableManpages ? false +, enableSharedLibraries ? true +, enableWasm ? true +, enablePFM ? !stdenv.isDarwin +}: + +let + src = fetch "llvm" "08p27wv1pr9ql2zc3f3qkkymci46q7myvh8r5ijippnbwr2gihcb"; + + # Used when creating a version-suffixed symlink of libLLVM.dylib + shortVersion = with stdenv.lib; + concatStringsSep "." (take 1 (splitString "." release_version)); +in stdenv.mkDerivation (rec { + name = "llvm-${version}"; + + unpackPhase = '' + unpackFile ${src} + mv llvm-${version}* llvm + sourceRoot=$PWD/llvm + ''; + + outputs = [ "out" "python" ] + ++ stdenv.lib.optional enableSharedLibraries "lib"; + + nativeBuildInputs = [ cmake python ] + ++ stdenv.lib.optional enableManpages python.pkgs.sphinx; + + buildInputs = [ libxml2 libffi ] + ++ stdenv.lib.optional enablePFM libpfm; # exegesis + + propagatedBuildInputs = [ ncurses zlib ]; + + postPatch = stdenv.lib.optionalString stdenv.isDarwin '' + substituteInPlace cmake/modules/AddLLVM.cmake \ + --replace 'set(_install_name_dir INSTALL_NAME_DIR "@rpath")' "set(_install_name_dir INSTALL_NAME_DIR "$lib/lib")" \ + --replace 'set(_install_rpath "@loader_path/../lib" ''${extra_libdir})' "" + '' + # Patch llvm-config to return correct library path based on --link-{shared,static}. + + stdenv.lib.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 + '' + stdenv.lib.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 + '' + '' + 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}" + "-DTARGET_TRIPLE=${stdenv.hostPlatform.config}" + + "-DLLVM_ENABLE_DUMP=ON" + ] + ++ stdenv.lib.optional enableSharedLibraries + "-DLLVM_LINK_LLVM_DYLIB=ON" + ++ stdenv.lib.optionals enableManpages [ + "-DLLVM_BUILD_DOCS=ON" + "-DLLVM_ENABLE_SPHINX=ON" + "-DSPHINX_OUTPUT_MAN=ON" + "-DSPHINX_OUTPUT_HTML=OFF" + "-DSPHINX_WARNINGS_AS_ERRORS=OFF" + ] + ++ stdenv.lib.optional (!isDarwin) + "-DLLVM_BINUTILS_INCDIR=${libbfd.dev}/include" + ++ stdenv.lib.optionals (isDarwin) [ + "-DLLVM_ENABLE_LIBCXX=ON" + "-DCAN_TARGET_i386=false" + ] + ++ stdenv.lib.optional enableWasm + "-DLLVM_EXPERIMENTAL_TARGETS_TO_BUILD=WebAssembly" + ; + + postBuild = '' + rm -fR $out + + paxmark m bin/{lli,llvm-rtdyld} + paxmark m unittests/ExecutionEngine/MCJIT/MCJITTests + paxmark m unittests/ExecutionEngine/Orc/OrcJITTests + paxmark m unittests/Support/SupportTests + paxmark m bin/lli-child-target + ''; + + preCheck = '' + export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$PWD/lib + ''; + + postInstall = '' + mkdir -p $python/share + mv $out/share/opt-viewer $python/share/opt-viewer + '' + + stdenv.lib.optionalString enableSharedLibraries '' + moveToOutput "lib/libLLVM-*" "$lib" + moveToOutput "lib/libLLVM${stdenv.hostPlatform.extensions.sharedLibrary}" "$lib" + substituteInPlace "$out/lib/cmake/llvm/LLVMExports-${if debugVersion then "debug" else "release"}.cmake" \ + --replace "\''${_IMPORT_PREFIX}/lib/libLLVM-" "$lib/lib/libLLVM-" + '' + + stdenv.lib.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.isi686); + + checkTarget = "check-all"; + + enableParallelBuilding = true; + + passthru.src = src; + + meta = { + description = "Collection of modular and reusable compiler and toolchain technologies"; + homepage = http://llvm.org/; + license = stdenv.lib.licenses.ncsa; + maintainers = with stdenv.lib.maintainers; [ lovek323 raskin dtzWill ]; + platforms = stdenv.lib.platforms.all; + }; +} // stdenv.lib.optionalAttrs enableManpages { + name = "llvm-manpages-${version}"; + + 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}"; +}) diff --git a/pkgs/development/compilers/llvm/7/openmp.nix b/pkgs/development/compilers/llvm/7/openmp.nix new file mode 100644 index 00000000000..31059b7c4c0 --- /dev/null +++ b/pkgs/development/compilers/llvm/7/openmp.nix @@ -0,0 +1,25 @@ +{ stdenv +, fetch +, cmake +, llvm +, perl +, version +}: + +stdenv.mkDerivation { + name = "openmp-${version}"; + + src = fetch "openmp" "1zrqlaxr954sp8lcr7g8m0z0pr8xyq4i6p11x6gcamjm5xijnrih"; + + nativeBuildInputs = [ cmake perl ]; + buildInputs = [ llvm ]; + + enableParallelBuilding = true; + + meta = { + description = "Components required to build an executable OpenMP program"; + homepage = http://openmp.llvm.org/; + license = stdenv.lib.licenses.mit; + platforms = stdenv.lib.platforms.all; + }; +} diff --git a/pkgs/development/compilers/llvm/7/sanitizers-nongnu.patch b/pkgs/development/compilers/llvm/7/sanitizers-nongnu.patch new file mode 100644 index 00000000000..6266eb1958d --- /dev/null +++ b/pkgs/development/compilers/llvm/7/sanitizers-nongnu.patch @@ -0,0 +1,413 @@ +From 7b4b3333a2718628b1d510ec1d8438ad67308299 Mon Sep 17 00:00:00 2001 +From: Will Dietz +Date: Fri, 29 Jun 2018 09:48:59 -0500 +Subject: [PATCH] Ported to 6.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 + +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 | 3 +- + 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(+), 35 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 + #endif + +-#if SANITIZER_ANDROID || SANITIZER_FREEBSD || SANITIZER_SOLARIS ++#if SANITIZER_ANDROID || SANITIZER_FREEBSD || SANITIZER_SOLARIS || SANITIZER_NONGNU + #include + 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 c991550a4..2b706418b 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 ++#if !SANITIZER_ANDROID && !SANITIZER_SOLARIS && !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 98fe51b85..c13302b98 100644 +--- a/lib/interception/interception_linux.h ++++ b/lib/interception/interception_linux.h +@@ -35,8 +35,7 @@ void *GetFuncAddrVer(const char *func_name, const char *ver); + (::__interception::uptr) & (func), \ + (::__interception::uptr) & WRAP(func)) + +-// Android and Solaris do not have dlvsym +-#if !SANITIZER_ANDROID && !SANITIZER_SOLARIS ++#if !SANITIZER_ANDROID && !SANITIZER_SOLARIS && !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 4e6321fcb..4d50feb82 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_thread.h" +diff --git a/lib/sanitizer_common/sanitizer_allocator.cc b/lib/sanitizer_common/sanitizer_allocator.cc +index fc4f7a75a..76cf4f769 100644 +--- a/lib/sanitizer_common/sanitizer_allocator.cc ++++ b/lib/sanitizer_common/sanitizer_allocator.cc +@@ -23,7 +23,7 @@ namespace __sanitizer { + + // 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 24e7548a5..20259b1d6 100644 +--- a/lib/sanitizer_common/sanitizer_common_interceptors_ioctl.inc ++++ b/lib/sanitizer_common/sanitizer_common_interceptors_ioctl.inc +@@ -102,7 +102,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); +@@ -363,7 +363,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 6c83e8db4..542c4fe64 100644 +--- a/lib/sanitizer_common/sanitizer_linux.cc ++++ b/lib/sanitizer_common/sanitizer_linux.cc +@@ -522,13 +522,13 @@ const char *GetEnv(const char *name) { + #endif + } + +-#if !SANITIZER_FREEBSD && !SANITIZER_NETBSD ++#if !SANITIZER_FREEBSD && !SANITIZER_NETBSD && !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 + static void ReadNullSepFileToArray(const char *path, char ***arr, + int arr_size) { + char *buff; +@@ -569,6 +569,10 @@ static void GetArgsAndEnv(char ***argv, char ***envp) { + #elif SANITIZER_NETBSD + *argv = __ps_strings->ps_argvstr; + *argv = __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 + #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 56fdfc870..a932d5db1 100644 +--- a/lib/sanitizer_common/sanitizer_linux_libcdep.cc ++++ b/lib/sanitizer_common/sanitizer_linux_libcdep.cc +@@ -174,7 +174,7 @@ bool SanitizerGetThreadName(char *name, int max_len) { + } + + #if !SANITIZER_FREEBSD && !SANITIZER_ANDROID && !SANITIZER_GO && \ +- !SANITIZER_NETBSD && !SANITIZER_SOLARIS ++ !SANITIZER_NETBSD && !SANITIZER_SOLARIS && !SANITIZER_NONGNU + static uptr g_tls_size; + + #ifdef __i386__ +@@ -207,7 +207,7 @@ void InitTlsSize() { } + + #if (defined(__x86_64__) || defined(__i386__) || defined(__mips__) \ + || defined(__aarch64__) || defined(__powerpc64__) || defined(__s390__) \ +- || defined(__arm__)) && SANITIZER_LINUX && !SANITIZER_ANDROID ++ || defined(__arm__)) && SANITIZER_LINUX && !SANITIZER_ANDROID && !SANITIZER_NONGNU + // sizeof(struct pthread) from glibc. + static atomic_uintptr_t kThreadDescriptorSize; + +@@ -391,7 +391,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(); +@@ -432,7 +432,7 @@ static void GetTls(uptr *addr, uptr *size) { + *addr = (uptr)tcb->tcb_dtv[1]; + } + } +-#elif SANITIZER_ANDROID ++#elif SANITIZER_ANDROID || SANITIZER_NONGNU + *addr = 0; + *size = 0; + #elif SANITIZER_SOLARIS +@@ -448,7 +448,7 @@ static void GetTls(uptr *addr, uptr *size) { + #if !SANITIZER_GO + uptr GetTlsSize() { + #if SANITIZER_FREEBSD || SANITIZER_ANDROID || SANITIZER_NETBSD || \ +- SANITIZER_SOLARIS ++ 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 334903c26..fc2afac2c 100644 +--- a/lib/sanitizer_common/sanitizer_platform.h ++++ b/lib/sanitizer_common/sanitizer_platform.h +@@ -195,6 +195,12 @@ + # define SANITIZER_SOLARIS32 0 + #endif + ++#if defined(__linux__) && !defined(__GLIBC__) ++# define SANITIZER_NONGNU 1 ++#else ++# define SANITIZER_NONGNU 0 ++#endif ++ + // By default we allow to use SizeClassAllocator64 on 64-bit platform. + // But in some cases (e.g. AArch64's 39-bit address space) SizeClassAllocator64 + // does not work well and we need to fallback to SizeClassAllocator32. +diff --git a/lib/sanitizer_common/sanitizer_platform_interceptors.h b/lib/sanitizer_common/sanitizer_platform_interceptors.h +index b99ac4480..628d226a1 100644 +--- a/lib/sanitizer_common/sanitizer_platform_interceptors.h ++++ b/lib/sanitizer_common/sanitizer_platform_interceptors.h +@@ -38,7 +38,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 +@@ -291,7 +291,7 @@ + (SI_FREEBSD || SI_MAC || SI_LINUX_NOT_ANDROID) + #define SANITIZER_INTERCEPT_ETHER_R (SI_FREEBSD || SI_LINUX_NOT_ANDROID) + #define SANITIZER_INTERCEPT_SHMCTL \ +- (SI_NETBSD || SI_SOLARIS || ((SI_FREEBSD || SI_LINUX_NOT_ANDROID) && \ ++ (SI_NETBSD || SI_SOLARIS || ((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 feb7bad6f..4e89ab2a6 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 +-#include ++# if !SANITIZER_NONGNU ++# include ++# endif + #include +-#include +-#include +-#include +-#include ++#include ++#include ++#include ++#include + #if HAVE_RPC_XDR_H + # include + #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 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 + + COMPILER_CHECK(sizeof(__sanitizer_dirent) <= sizeof(dirent)); + CHECK_SIZE_AND_OFFSET(dirent, d_ino); +@@ -1138,7 +1145,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); +@@ -1199,7 +1206,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 + +@@ -1249,7 +1256,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); +@@ -1268,7 +1275,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 e14d5f575..389a3bc88 100644 +--- a/lib/tsan/rtl/tsan_platform_linux.cc ++++ b/lib/tsan/rtl/tsan_platform_linux.cc +@@ -285,7 +285,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.18.0 + diff --git a/pkgs/development/haskell-modules/configuration-common.nix b/pkgs/development/haskell-modules/configuration-common.nix index 64a82ed42a8..8beca9572e7 100644 --- a/pkgs/development/haskell-modules/configuration-common.nix +++ b/pkgs/development/haskell-modules/configuration-common.nix @@ -927,8 +927,9 @@ self: super: { text-icu = dontCheck super.text-icu; # https://github.com/haskell/cabal/issues/4969 - haddock-library_1_4_4 = dontHaddock super.haddock-library_1_4_4; - haddock-api = super.haddock-api.override { haddock-library = self.haddock-library_1_4_4; }; + haddock-api = (super.haddock-api.overrideScope (self: super: { + haddock-library = self.haddock-library_1_6_0; + })).override { hspec = self.hspec_2_4_8; }; # Jailbreak "unix-compat >=0.1.2 && <0.5". # Jailbreak "graphviz >=2999.18.1 && <2999.20". @@ -1112,7 +1113,7 @@ self: super: { })) ./patches/sexpr-0.2.1.patch; # Can be removed once yi-language >= 0.18 is in the LTS - yi-core = super.yi-core.override { yi-language = self.yi-language_0_18_0; }; + yi-core = super.yi-core.overrideScope (self: super: { yi-language = self.yi-language_0_18_0; }); # https://github.com/MarcWeber/hasktags/issues/52 hasktags = dontCheck super.hasktags; @@ -1124,11 +1125,11 @@ self: super: { xmlhtml = doJailbreak super.xmlhtml; # https://github.com/NixOS/nixpkgs/issues/46467 - safe-money-aeson = super.safe-money-aeson.override { safe-money = self.safe-money_0_7; }; - safe-money-store = super.safe-money-store.override { safe-money = self.safe-money_0_7; }; - safe-money-cereal = super.safe-money-cereal.override { safe-money = self.safe-money_0_7; }; - safe-money-serialise = super.safe-money-serialise.override { safe-money = self.safe-money_0_7; }; - safe-money-xmlbf = super.safe-money-xmlbf.override { safe-money = self.safe-money_0_7; }; + safe-money-aeson = super.safe-money-aeson.overrideScope (self: super: { safe-money = self.safe-money_0_7; }); + safe-money-store = super.safe-money-store.overrideScope (self: super: { safe-money = self.safe-money_0_7; }); + safe-money-cereal = super.safe-money-cereal.overrideScope (self: super: { safe-money = self.safe-money_0_7; }); + safe-money-serialise = super.safe-money-serialise.overrideScope (self: super: { safe-money = self.safe-money_0_7; }); + safe-money-xmlbf = super.safe-money-xmlbf.overrideScope (self: super: { safe-money = self.safe-money_0_7; }); # https://github.com/adinapoli/mandrill/pull/52 mandrill = appendPatch super.mandrill (pkgs.fetchpatch { @@ -1136,4 +1137,17 @@ self: super: { sha256 = "1qair09xs6vln3vsjz7sy4hhv037146zak4mq3iv6kdhmp606hqv"; }); + # Can be removed once vinyl >= 0.10 is in the LTS. + Frames = super.Frames.overrideScope (self: super: { vinyl = self.vinyl_0_10_0; }); + + # https://github.com/Euterpea/Euterpea2/pull/22 + Euterpea = overrideSrc super.Euterpea { + src = pkgs.fetchFromGitHub { + owner = "Euterpea"; + repo = "Euterpea2"; + rev = "6f49b790adfb8b65d95a758116c20098fb0cd34c"; + sha256 = "0qz1svb96n42nmig16vyphwxas34hypgayvwc91ri7w7xd6yi1ba"; + }; + }; + } // import ./configuration-tensorflow.nix {inherit pkgs haskellLib;} self super diff --git a/pkgs/development/haskell-modules/configuration-hackage2nix.yaml b/pkgs/development/haskell-modules/configuration-hackage2nix.yaml index 2eefe636ca9..7f9e3143289 100644 --- a/pkgs/development/haskell-modules/configuration-hackage2nix.yaml +++ b/pkgs/development/haskell-modules/configuration-hackage2nix.yaml @@ -2400,7 +2400,6 @@ extra-packages: - haddock-api == 2.17.* # required on GHC 8.0.x - haddock-library == 1.2.* # required for haddock-api-2.16.x - haddock-library == 1.4.3 # required for haddock-api-2.17.x - - haddock-library == 1.4.4 # required for haddock-api-2.18.x - haddock-library == 1.5.* # required for stylish-cabal-0.4.0.1 - happy <1.19.6 # newer versions break Agda - haskell-gi-overloading == 0.0 # gi-* packages use this dependency to disable overloading support diff --git a/pkgs/development/haskell-modules/configuration-nix.nix b/pkgs/development/haskell-modules/configuration-nix.nix index c3df7d38bfd..43ba2d000eb 100644 --- a/pkgs/development/haskell-modules/configuration-nix.nix +++ b/pkgs/development/haskell-modules/configuration-nix.nix @@ -517,4 +517,7 @@ self: super: builtins.intersectAttrs super { postPatch = '' sed -i -e 's|"z3"|"${pkgs.z3}/bin/z3"|' Data/SBV/Provers/Z3.hs''; }); + + # The test-suite requires a running PostgreSQL server. + Frames-beam = dontCheck super.Frames-beam; } diff --git a/pkgs/development/interpreters/erlang/R18.nix b/pkgs/development/interpreters/erlang/R18.nix index ee524feb4c6..58b7fd71f0b 100644 --- a/pkgs/development/interpreters/erlang/R18.nix +++ b/pkgs/development/interpreters/erlang/R18.nix @@ -11,6 +11,16 @@ let sha256 = "00fx5wc88ki3z71z5q4xzi9h3whhjw1zblpn09w995ygn07m9qhm"; }; + makeOrderingPatch = fetchpatch { + url = "https://github.com/erlang/otp/commit/2f1a37f1011ff9d129bc35a6efa0ab937a2aa0e9.patch"; + sha256 = "0xfa6hzxh9d7qllkyidcgh57xrrx11w65y7s1hyg52alm06l6b9n"; + }; + + makeParallelInstallPatch = fetchpatch { + url ="https://github.com/erlang/otp/commit/de8fe86f67591dd992bae33f7451523dab36e5bd.patch"; + sha256 = "1cj9fjhdng6yllajjm3gkk04ag9bwyb3n70hrb5nk6c292v8a45c"; + }; + in mkDerivation rec { version = "18.3.4.8"; sha256 = "16c0h25hh5yvkv436ks5jbd7qmxzb6ndvk64mr404347a20iib0g"; @@ -18,5 +28,7 @@ in mkDerivation rec { patches = [ rmAndPwdPatch envAndCpPatch + makeOrderingPatch + makeParallelInstallPatch ]; } diff --git a/pkgs/development/interpreters/php/default.nix b/pkgs/development/interpreters/php/default.nix index 5af569a5e7c..67c38a354b4 100644 --- a/pkgs/development/interpreters/php/default.nix +++ b/pkgs/development/interpreters/php/default.nix @@ -133,6 +133,7 @@ let ++ optionals mysqliSupport [ "--with-mysqli=${if mysqlndSupport then "mysqlnd" else "${mysql.connector-c}/bin/mysql_config"}" ] + ++ optional ( pdo_mysqlSupport || mysqlSupport || mysqliSupport ) "--with-mysql-sock=/run/mysqld/mysqld.sock" ++ optional bcmathSupport "--enable-bcmath" # FIXME: Our own gd package doesn't work, see https://bugs.php.net/bug.php?id=60108. ++ optionals gdSupport [ diff --git a/pkgs/development/interpreters/wasm-gc/default.nix b/pkgs/development/interpreters/wasm-gc/default.nix new file mode 100644 index 00000000000..cf0fad18d1c --- /dev/null +++ b/pkgs/development/interpreters/wasm-gc/default.nix @@ -0,0 +1,25 @@ +{ stdenv, fetchFromGitHub, rustPlatform }: + +rustPlatform.buildRustPackage rec { + name = "wasm-gc-${version}"; + version = "0.1.6"; + + src = fetchFromGitHub { + owner = "alexcrichton"; + repo = "wasm-gc"; + rev = version; + sha256 = "1lc30xxqp3vv1r269xzznh2lf2dzdq89bi5f1vmqjw4yc3xmawm7"; + }; + + cargoPatches = [ ./fix-build.patch ]; # Cargo.lock is not up-to-date + + cargoSha256 = "1jvk9n324p3x3j6q6x0p5diig3b5c683k74cfflff25i7gsmmvc7"; + + meta = with stdenv.lib; { + description = "gc-sections for wasm"; + homepage = "https://github.com/alexcrichton/wasm-gc"; + maintainers = with maintainers; [ ekleog ]; + platforms = platforms.all; + license = with licenses; [ mit asl20 ]; + }; +} diff --git a/pkgs/development/interpreters/wasm-gc/fix-build.patch b/pkgs/development/interpreters/wasm-gc/fix-build.patch new file mode 100644 index 00000000000..3144dd89837 --- /dev/null +++ b/pkgs/development/interpreters/wasm-gc/fix-build.patch @@ -0,0 +1,34 @@ +diff --git a/Cargo.lock b/Cargo.lock +index 923ed91..71f17c8 100644 +--- a/Cargo.lock ++++ b/Cargo.lock +@@ -212,16 +212,16 @@ dependencies = [ + + [[package]] + name = "wasm-gc" +-version = "0.1.1" ++version = "0.1.6" + dependencies = [ + "env_logger 0.5.10 (registry+https://github.com/rust-lang/crates.io-index)", + "getopts 0.2.17 (registry+https://github.com/rust-lang/crates.io-index)", +- "wasm-gc-api 0.1.5", ++ "wasm-gc-api 0.1.6", + ] + + [[package]] + name = "wasm-gc-api" +-version = "0.1.5" ++version = "0.1.6" + dependencies = [ + "log 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)", + "parity-wasm 0.31.0 (registry+https://github.com/rust-lang/crates.io-index)", +@@ -234,7 +234,7 @@ version = "0.1.0" + dependencies = [ + "cfg-if 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", + "wasm-bindgen 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)", +- "wasm-gc-api 0.1.5", ++ "wasm-gc-api 0.1.6", + ] + + [[package]] + diff --git a/pkgs/development/libraries/libmediainfo/default.nix b/pkgs/development/libraries/libmediainfo/default.nix index c4f41663c84..1ef2c6914ae 100644 --- a/pkgs/development/libraries/libmediainfo/default.nix +++ b/pkgs/development/libraries/libmediainfo/default.nix @@ -1,11 +1,11 @@ { stdenv, fetchurl, autoreconfHook, pkgconfig, libzen, zlib }: stdenv.mkDerivation rec { - version = "18.08"; + version = "18.08.1"; name = "libmediainfo-${version}"; src = fetchurl { url = "https://mediaarea.net/download/source/libmediainfo/${version}/libmediainfo_${version}.tar.xz"; - sha256 = "0h9fkfkil9y5xjxa7q4gxxihkn9kv9hak6ral2isvks5x3sy0ca8"; + sha256 = "1h6brg98i39xprcl54gvs1scmv8d6f3iw5h2diwz5bbz4lspy8vs"; }; nativeBuildInputs = [ autoreconfHook pkgconfig ]; diff --git a/pkgs/development/libraries/mono-addins/default.nix b/pkgs/development/libraries/mono-addins/default.nix index 780f68e7d48..345c6e51f0b 100644 --- a/pkgs/development/libraries/mono-addins/default.nix +++ b/pkgs/development/libraries/mono-addins/default.nix @@ -2,14 +2,14 @@ stdenv.mkDerivation rec { name = "mono-addins-${version}"; - version = "1.2"; + version = "1.3.3"; src = fetchFromGitHub { owner = "mono"; repo = "mono-addins"; rev = "mono-addins-${version}"; - sha256 = "1hnn0a2qsjcjprsxas424bzvhsdwy0yc2jj5xbp698c0m9kfk24y"; + sha256 = "018g3bd8afjc39h22h2j5r6ldsdn08ynx7wg889gdvnxg3hrxgl2"; }; nativeBuildInputs = [ pkgconfig autoreconfHook ]; diff --git a/pkgs/development/ocaml-modules/doc-ock-html/default.nix b/pkgs/development/ocaml-modules/doc-ock-html/default.nix new file mode 100644 index 00000000000..cb2756b0977 --- /dev/null +++ b/pkgs/development/ocaml-modules/doc-ock-html/default.nix @@ -0,0 +1,27 @@ +{ stdenv, fetchFromGitHub, ocaml, findlib, dune, doc-ock, tyxml, xmlm }: + +stdenv.mkDerivation rec { + name = "ocaml${ocaml.version}-doc-ock-html-${version}"; + version = "1.2.1"; + + src = fetchFromGitHub { + owner = "ocaml-doc"; + repo = "doc-ock-html"; + rev = "v${version}"; + sha256 = "1y620h48qrplmcm78g7c78zibpkai4j3icwmnx95zb3r8xq8554y"; + }; + + buildInputs = [ ocaml findlib dune ]; + + propagatedBuildInputs = [ doc-ock tyxml xmlm ]; + + inherit (dune) installPhase; + + meta = { + description = "From doc-ock to HTML"; + license = stdenv.lib.licenses.isc; + maintainers = [ stdenv.lib.maintainers.vbgl ]; + inherit (ocaml.meta) platforms; + inherit (src.meta) homepage; + }; +} diff --git a/pkgs/development/ocaml-modules/doc-ock-xml/default.nix b/pkgs/development/ocaml-modules/doc-ock-xml/default.nix new file mode 100644 index 00000000000..72e562cb5f3 --- /dev/null +++ b/pkgs/development/ocaml-modules/doc-ock-xml/default.nix @@ -0,0 +1,27 @@ +{ stdenv, fetchFromGitHub, ocaml, findlib, dune, doc-ock, menhir, xmlm }: + +stdenv.mkDerivation rec { + name = "ocaml${ocaml.version}-doc-ock-xml-${version}"; + version = "1.2.1"; + + src = fetchFromGitHub { + owner = "ocaml-doc"; + repo = "doc-ock-xml"; + rev = "v${version}"; + sha256 = "1s27ri7vj9ixi5p5ixg6g6invk96807bvxbqjrr1dm8sxgl1nd20"; + }; + + buildInputs = [ ocaml findlib dune ]; + + propagatedBuildInputs = [ doc-ock menhir xmlm ]; + + inherit (dune) installPhase; + + meta = { + description = "XML printer and parser for Doc-Ock"; + license = stdenv.lib.licenses.isc; + maintainers = [ stdenv.lib.maintainers.vbgl ]; + inherit (ocaml.meta) platforms; + inherit (src.meta) homepage; + }; +} diff --git a/pkgs/development/ocaml-modules/doc-ock/default.nix b/pkgs/development/ocaml-modules/doc-ock/default.nix new file mode 100644 index 00000000000..c158f08b068 --- /dev/null +++ b/pkgs/development/ocaml-modules/doc-ock/default.nix @@ -0,0 +1,27 @@ +{ stdenv, fetchFromGitHub, ocaml, findlib, dune, octavius, cppo }: + +stdenv.mkDerivation rec { + name = "ocaml${ocaml.version}-doc-ock-${version}"; + version = "1.2.1"; + + src = fetchFromGitHub { + owner = "ocaml-doc"; + repo = "doc-ock"; + rev = "v${version}"; + sha256 = "090vprm12jrl55yllk1hdzbsqyr107yjs2qnc49yahdhvnr4h5b7"; + }; + + buildInputs = [ ocaml findlib dune cppo ]; + + propagatedBuildInputs = [ octavius ]; + + inherit (dune) installPhase; + + meta = { + description = "Extract documentation from OCaml files"; + license = stdenv.lib.licenses.isc; + maintainers = [ stdenv.lib.maintainers.vbgl ]; + inherit (ocaml.meta) platforms; + inherit (src.meta) homepage; + }; +} diff --git a/pkgs/development/ocaml-modules/erm_xml/default.nix b/pkgs/development/ocaml-modules/erm_xml/default.nix index c944752ff6b..35b5c73b578 100644 --- a/pkgs/development/ocaml-modules/erm_xml/default.nix +++ b/pkgs/development/ocaml-modules/erm_xml/default.nix @@ -1,17 +1,17 @@ { stdenv, fetchzip, ocaml, findlib, ocamlbuild }: -if stdenv.lib.versionAtLeast ocaml.version "4.06" +if !stdenv.lib.versionAtLeast ocaml.version "4.02" then throw "erm_xml is not available for OCaml ${ocaml.version}" else -let version = "0.3"; in +let version = "0.3+20180112"; in stdenv.mkDerivation { - name = "ocaml-erm_xml-${version}"; + name = "ocaml${ocaml.version}-erm_xml-${version}"; src = fetchzip { - url = "https://github.com/ermine/xml/archive/v${version}.tar.gz"; - sha256 = "19znk5w0qiw3wij4n6w3h5bcr221yy57jf815fr8k9m8kin710g3"; + url = "https://github.com/hannesm/xml/archive/bbabdade807d8281fc48806da054b70dfe482479.tar.gz"; + sha256 = "1gawpmg8plip0wia0xq60m024dn7l3ykwbjpbqx9f9bdmx74n1rr"; }; buildInputs = [ ocaml findlib ocamlbuild ]; @@ -19,7 +19,7 @@ stdenv.mkDerivation { createFindlibDestdir = true; meta = { - homepage = https://github.com/ermine/xml; + homepage = https://github.com/hannesm/xml; description = "XML Parser for discrete data"; platforms = ocaml.meta.platforms or []; license = stdenv.lib.licenses.bsd3; diff --git a/pkgs/development/ocaml-modules/erm_xmpp/0.3.nix b/pkgs/development/ocaml-modules/erm_xmpp/0.3.nix deleted file mode 100644 index 1a8f854185a..00000000000 --- a/pkgs/development/ocaml-modules/erm_xmpp/0.3.nix +++ /dev/null @@ -1,29 +0,0 @@ -{ stdenv, buildOcaml, fetchFromGitHub, ocaml, findlib, erm_xml, nocrypto }: - -buildOcaml rec { - version = "0.3"; - name = "erm_xmpp"; - - src = fetchFromGitHub { - owner = "hannesm"; - repo = "xmpp"; - rev = "eee18bd3dd343550169969c0b45548eafd51cfe1"; - sha256 = "0hzs528lrx1ayalv6fh555pjn0b4l8xch1f72hd3b07g1xahdas5"; - }; - - buildInputs = [ ocaml findlib ]; - propagatedBuildInputs = [ erm_xml nocrypto ]; - - configurePhase = "ocaml setup.ml -configure --prefix $out"; - buildPhase = "ocaml setup.ml -build"; - installPhase = "ocaml setup.ml -install"; - - createFindlibDestdir = true; - - meta = { - homepage = https://github.com/hannesm/xmpp; - description = "OCaml based XMPP implementation (fork)"; - license = stdenv.lib.licenses.bsd3; - maintainers = with stdenv.lib.maintainers; [ sternenseemann ]; - }; -} diff --git a/pkgs/development/ocaml-modules/erm_xmpp/default.nix b/pkgs/development/ocaml-modules/erm_xmpp/default.nix index c6027ce11ce..a6bb75e61c2 100644 --- a/pkgs/development/ocaml-modules/erm_xmpp/default.nix +++ b/pkgs/development/ocaml-modules/erm_xmpp/default.nix @@ -1,33 +1,32 @@ -{ stdenv, fetchurl, fetchzip, ocaml, findlib, ocamlbuild, erm_xml, cryptokit, camlp4 }: +{ stdenv, fetchFromGitHub, ocaml, findlib, camlp4, ocamlbuild +, erm_xml, nocrypto +}: -let - version = "0.2"; - disable-tests = fetchurl { - url = https://raw.githubusercontent.com/ocaml/opam-repository/master/packages/erm_xmpp/erm_xmpp.0.2/files/disable_tests.patch; - sha256 = "09d8630nmx2x8kb8ap1zmsb93zs14cqg7ga1gmdl92jvsjxbhgc1"; +stdenv.mkDerivation rec { + version = "0.3+20180112"; + name = "ocaml${ocaml.version}-erm_xmpp-${version}"; + + src = fetchFromGitHub { + owner = "hannesm"; + repo = "xmpp"; + rev = "184dc70fab7d46d09b9148ca4448f07f1e0a2df2"; + sha256 = "1dsqsfacvd9xqsqjzh6xwbnf2mv1dvhy210riyvjd260q085ch6n"; }; -in - -stdenv.mkDerivation { - name = "ocaml-erm_xmpp-${version}"; - - src = fetchzip { - url = "https://github.com/ermine/xmpp/archive/v${version}.tar.gz"; - sha256 = "0saw2dmrzv2aadrznvyvchnhivvcwm78x9nwf6flq5v0pqddapk2"; - }; - - patches = [ disable-tests ]; buildInputs = [ ocaml findlib ocamlbuild camlp4 ]; - propagatedBuildInputs = [ erm_xml cryptokit ]; + propagatedBuildInputs = [ erm_xml nocrypto ]; + + configurePhase = "ocaml setup.ml -configure --prefix $out"; + buildPhase = "ocaml setup.ml -build"; + installPhase = "ocaml setup.ml -install"; createFindlibDestdir = true; meta = { - homepage = https://github.com/ermine/xmpp; - description = "OCaml based XMPP implementation"; - platforms = ocaml.meta.platforms or []; + homepage = https://github.com/hannesm/xmpp; + description = "OCaml based XMPP implementation (fork)"; license = stdenv.lib.licenses.bsd3; - maintainers = with stdenv.lib.maintainers; [ vbgl ]; + maintainers = with stdenv.lib.maintainers; [ sternenseemann ]; + inherit (ocaml.meta) platforms; }; } diff --git a/pkgs/development/ocaml-modules/odoc/default.nix b/pkgs/development/ocaml-modules/odoc/default.nix new file mode 100644 index 00000000000..4c5da695eb6 --- /dev/null +++ b/pkgs/development/ocaml-modules/odoc/default.nix @@ -0,0 +1,28 @@ +{ stdenv, fetchFromGitHub, ocaml, findlib, dune +, bos, cmdliner, doc-ock-html, doc-ock-xml +}: + +stdenv.mkDerivation rec { + name = "ocaml${ocaml.version}-odoc-${version}"; + version = "1.2.0"; + src = fetchFromGitHub { + owner = "ocaml"; + repo = "odoc"; + rev = "v${version}"; + sha256 = "0ixnhfpm1nw4bvjj8qhcyy283pdr5acqpg5wxwq3n1l4mad79cgh"; + }; + + buildInputs = [ ocaml findlib dune cmdliner ]; + + propagatedBuildInputs = [ bos doc-ock-html doc-ock-xml ]; + + inherit (dune) installPhase; + + meta = { + description = "A documentation generator for OCaml"; + license = stdenv.lib.licenses.isc; + maintainers = [ stdenv.lib.maintainers.vbgl ]; + inherit (ocaml.meta) platforms; + inherit (src.meta) homepage; + }; +} diff --git a/pkgs/development/python-modules/flask-assets/default.nix b/pkgs/development/python-modules/flask-assets/default.nix index 7f3b6367b6e..a8e454f4a2c 100644 --- a/pkgs/development/python-modules/flask-assets/default.nix +++ b/pkgs/development/python-modules/flask-assets/default.nix @@ -9,6 +9,10 @@ buildPythonPackage rec { sha256 = "0ivqsihk994rxw58vdgzrx4d77d7lpzjm4qxb38hjdgvi5xm4cb0"; }; + patchPhase = '' + substituteInPlace tests/test_integration.py --replace 'static_path=' 'static_url_path=' + ''; + propagatedBuildInputs = [ flask webassets flask_script nose ]; meta = with lib; { diff --git a/pkgs/development/python-modules/pyftgl/default.nix b/pkgs/development/python-modules/pyftgl/default.nix index a8583747225..1163f007b09 100644 --- a/pkgs/development/python-modules/pyftgl/default.nix +++ b/pkgs/development/python-modules/pyftgl/default.nix @@ -1,5 +1,13 @@ -{ stdenv, buildPythonPackage, fetchFromGitHub, isPy3k -, boost, freetype, ftgl, libGLU_combined }: +{ lib, buildPythonPackage, fetchFromGitHub, isPy3k +, boost, freetype, ftgl, libGLU_combined +, python +}: + +let + + pythonVersion = with lib.versions; "${major python.version}${minor python.version}"; + +in buildPythonPackage rec { pname = "pyftgl"; @@ -13,13 +21,13 @@ buildPythonPackage rec { sha256 = "12zcjv4cwwjihiaf74kslrdmmk4bs47h7006gyqfwdfchfjdgg4r"; }; - postPatch = stdenv.lib.optional isPy3k '' - sed -i "s,'boost_python','boost_python3',g" setup.py + postPatch = '' + sed -i "s,'boost_python','boost_python${pythonVersion}',g" setup.py ''; buildInputs = [ boost freetype ftgl libGLU_combined ]; - meta = with stdenv.lib; { + meta = with lib; { description = "Python bindings for FTGL (FreeType for OpenGL)"; license = licenses.gpl2Plus; }; diff --git a/pkgs/development/python-modules/pyjet/default.nix b/pkgs/development/python-modules/pyjet/default.nix new file mode 100644 index 00000000000..69d20863a77 --- /dev/null +++ b/pkgs/development/python-modules/pyjet/default.nix @@ -0,0 +1,21 @@ +{ lib, buildPythonPackage, fetchPypi, nose, numpy }: + +buildPythonPackage rec { + pname = "pyjet"; + version = "1.3.0"; + + src = fetchPypi { + inherit pname version; + sha256 = "1glcwv9ni8i40smfw6m456xjadlkackim5nk33xmas1fa96lpagg"; + }; + + propagatedBuildInputs = [ numpy ]; + checkInputs = [ nose ]; + + meta = with lib; { + homepage = "https://github.com/scikit-hep/pyjet"; + description = "The interface between FastJet and NumPy"; + license = licenses.gpl3; + maintainers = with maintainers; [ veprbl ]; + }; +} diff --git a/pkgs/development/ruby-modules/solargraph/Gemfile.lock b/pkgs/development/ruby-modules/solargraph/Gemfile.lock index 436d31830ff..04d274d0562 100644 --- a/pkgs/development/ruby-modules/solargraph/Gemfile.lock +++ b/pkgs/development/ruby-modules/solargraph/Gemfile.lock @@ -26,7 +26,7 @@ GEM ruby-progressbar (~> 1.7) unicode-display_width (~> 1.0, >= 1.0.1) ruby-progressbar (1.10.0) - solargraph (0.27.1) + solargraph (0.28.1) coderay (~> 1.1) eventmachine (~> 1.2, >= 1.2.5) htmlentities (~> 4.3, >= 4.3.4) diff --git a/pkgs/development/ruby-modules/solargraph/gemset.nix b/pkgs/development/ruby-modules/solargraph/gemset.nix index 840cf922419..3319f2a68de 100644 --- a/pkgs/development/ruby-modules/solargraph/gemset.nix +++ b/pkgs/development/ruby-modules/solargraph/gemset.nix @@ -127,10 +127,10 @@ dependencies = ["coderay" "eventmachine" "htmlentities" "kramdown" "parser" "reverse_markdown" "rubocop" "thor" "tilt" "yard"]; source = { remotes = ["https://rubygems.org"]; - sha256 = "1wp4k6ayv9gv1rzxqccz6zb1fss7klszqwha9wvs6mj3c1vhghac"; + sha256 = "11l759mrzjla2iqy5wdd20r01196pfxkw0b0gzgskdbfi8y8mvg5"; type = "gem"; }; - version = "0.27.1"; + version = "0.28.1"; }; thor = { source = { diff --git a/pkgs/development/tools/misc/ycmd/default.nix b/pkgs/development/tools/misc/ycmd/default.nix index c0e12aa22c4..062f90e3389 100644 --- a/pkgs/development/tools/misc/ycmd/default.nix +++ b/pkgs/development/tools/misc/ycmd/default.nix @@ -7,12 +7,12 @@ stdenv.mkDerivation rec { name = "ycmd-${version}"; - version = "2018-07-24"; + version = "2018-09-20"; src = fetchgit { url = "https://github.com/Valloric/ycmd.git"; - rev = "f8a8b04892b925efeee24298a957cc6d6a69ad06"; - sha256 = "1br2sh6bs0fg1axq2hq9f48fz8klkzydi1mf0j0jdsh3zjzkmxbn"; + rev = "bf658fd78722c517674c0aaf2381e199bca8f163"; + sha256 = "1lwa8xr76vapfpncvp81cn3m9219yw14fl7fzk5gnly60zkphbbl"; }; nativeBuildInputs = [ cmake ]; diff --git a/pkgs/misc/libcardiacarrest/default.nix b/pkgs/misc/libcardiacarrest/default.nix index 28e9b81df86..1a07878b330 100644 --- a/pkgs/misc/libcardiacarrest/default.nix +++ b/pkgs/misc/libcardiacarrest/default.nix @@ -4,13 +4,13 @@ with stdenv.lib; stdenv.mkDerivation rec { name = "libcardiacarrest-${version}"; - version = "12.1-6"; # - + version = "12.1-7"; # - src = fetchFromGitHub { owner = "oxij"; repo = "libcardiacarrest"; - rev = "4df92b6cc66c7f9fe947dd9bbf4802cf20fe63a2"; - sha256 = "0zfjn4nvcx8r4f6czcix5b9nsszhhhlbypcwqzi4ddhazl1gyfm6"; + rev = "d44288d9a24d6b7793fb36a4c9a548b6b55375ec"; + sha256 = "0j3l5s6r9hgpy5y7q7kx0rkh05rk0bgfdvzbmadqps720lqjs4xm"; }; outputs = [ "out" "dev" ]; diff --git a/pkgs/os-specific/linux/iwd/default.nix b/pkgs/os-specific/linux/iwd/default.nix index 79179f3fcbb..1e3286f64d6 100644 --- a/pkgs/os-specific/linux/iwd/default.nix +++ b/pkgs/os-specific/linux/iwd/default.nix @@ -3,17 +3,17 @@ let ell = fetchgit { url = https://git.kernel.org/pub/scm/libs/ell/ell.git; - rev = "0.9"; - sha256 = "1kg7cx7ir8bvz33n624ncrq9r4fh7rg9z22fly894a3mk1imq22p"; + rev = "0.10"; + sha256 = "1yzbx4l3a6hbdmirgbvnrjfiwflyzd38mbxnp23gn9hg3ni3br34"; }; in stdenv.mkDerivation rec { name = "iwd-${version}"; - version = "0.7"; + version = "0.8"; src = fetchgit { url = https://git.kernel.org/pub/scm/network/wireless/iwd.git; rev = version; - sha256 = "0q76fh6fcl7nxyjl8z2n4plp2qaxc1fqx575by6xqf1rnv4nk0ab"; + sha256 = "0bx31f77mz3rbl3xja48lb5zgwgialg7hvax889kpkz92wg26mgv"; }; nativeBuildInputs = [ diff --git a/pkgs/os-specific/linux/kernel/linux-rpi.nix b/pkgs/os-specific/linux/kernel/linux-rpi.nix index d061e41eb2f..d95c2caa2cf 100644 --- a/pkgs/os-specific/linux/kernel/linux-rpi.nix +++ b/pkgs/os-specific/linux/kernel/linux-rpi.nix @@ -1,10 +1,10 @@ -{ stdenv, buildPackages, fetchFromGitHub, perl, buildLinux, ... } @ args: +{ stdenv, lib, buildPackages, fetchFromGitHub, perl, buildLinux, ... } @ args: let modDirVersion = "4.14.62"; tag = "1.20180817"; in -stdenv.lib.overrideDerivation (buildLinux (args // rec { +lib.overrideDerivation (buildLinux (args // rec { version = "${modDirVersion}-${tag}"; inherit modDirVersion; @@ -18,6 +18,7 @@ stdenv.lib.overrideDerivation (buildLinux (args // rec { defconfig = { "armv6l-linux" = "bcmrpi_defconfig"; "armv7l-linux" = "bcm2709_defconfig"; + "aarch64-linux" = "bcmrpi3_defconfig"; }.${stdenv.hostPlatform.system} or (throw "linux_rpi not supported on '${stdenv.hostPlatform.system}'"); features = { @@ -31,14 +32,15 @@ stdenv.lib.overrideDerivation (buildLinux (args // rec { sed -i $buildRoot/.config -e 's/^CONFIG_LOCALVERSION=.*/CONFIG_LOCALVERSION=""/' ''; + # Make copies of the DTBs named after the upstream names so that U-Boot finds them. + # This is ugly as heck, but I don't know a better solution so far. postFixup = '' - # Make copies of the DTBs named after the upstream names so that U-Boot finds them. - # This is ugly as heck, but I don't know a better solution so far. - rm $out/dtbs/bcm283*.dtb + dtbDir=${if stdenv.isAarch64 then "$out/dtbs/broadcom" else "$out/dtbs"} + rm $dtbDir/bcm283*.dtb copyDTB() { - cp -v "$out/dtbs/$1" "$out/dtbs/$2" + cp -v "$dtbDir/$1" "$dtbDir/$2" } - + '' + lib.optionalString (lib.elem stdenv.hostPlatform.system ["armv6l-linux"]) '' copyDTB bcm2708-rpi-0-w.dtb bcm2835-rpi-zero.dtb copyDTB bcm2708-rpi-0-w.dtb bcm2835-rpi-zero-w.dtb copyDTB bcm2708-rpi-b.dtb bcm2835-rpi-a.dtb @@ -48,7 +50,9 @@ stdenv.lib.overrideDerivation (buildLinux (args // rec { copyDTB bcm2708-rpi-b-plus.dtb bcm2835-rpi-b-plus.dtb copyDTB bcm2708-rpi-b-plus.dtb bcm2835-rpi-zero.dtb copyDTB bcm2708-rpi-cm.dtb bcm2835-rpi-cm.dtb + '' + lib.optionalString (lib.elem stdenv.hostPlatform.system ["armv7l-linux"]) '' copyDTB bcm2709-rpi-2-b.dtb bcm2836-rpi-2-b.dtb + '' + lib.optionalString (lib.elem stdenv.hostPlatform.system ["armv7l-linux" "aarch64-linux"]) '' copyDTB bcm2710-rpi-3-b.dtb bcm2837-rpi-3-b.dtb copyDTB bcm2710-rpi-3-b-plus.dtb bcm2837-rpi-3-b-plus.dtb copyDTB bcm2710-rpi-cm3.dtb bcm2837-rpi-cm3.dtb diff --git a/pkgs/os-specific/linux/kernel/linux-testing.nix b/pkgs/os-specific/linux/kernel/linux-testing.nix index 4bfea7a1098..4b6be255663 100644 --- a/pkgs/os-specific/linux/kernel/linux-testing.nix +++ b/pkgs/os-specific/linux/kernel/linux-testing.nix @@ -1,13 +1,13 @@ { stdenv, buildPackages, fetchurl, perl, buildLinux, libelf, utillinux, ... } @ args: buildLinux (args // rec { - version = "4.19-rc4"; - modDirVersion = "4.19.0-rc4"; + version = "4.19-rc5"; + modDirVersion = "4.19.0-rc5"; extraMeta.branch = "4.19"; src = fetchurl { url = "https://git.kernel.org/torvalds/t/linux-${version}.tar.gz"; - sha256 = "083nlh25zddrbg1hzyxfpg9i7h91ij9f299i52r5zwzi85yi8whn"; + sha256 = "0fpv2g6x1hgdrxvh1acjcxmyk2fzqcx1ypi0mqw72swbm587irck"; }; # Should the testing kernels ever be built on Hydra? diff --git a/pkgs/os-specific/linux/nvidia-x11/default.nix b/pkgs/os-specific/linux/nvidia-x11/default.nix index 16bab9979d0..d9ff157e142 100644 --- a/pkgs/os-specific/linux/nvidia-x11/default.nix +++ b/pkgs/os-specific/linux/nvidia-x11/default.nix @@ -17,11 +17,13 @@ in rec { # Policy: use the highest stable version as the default (on our master). stable = generic { - version = "390.77"; - sha256_32bit = "1yd313ghh2qbn07d5wbkshfwgkm4mh49vcqkydds3b3xk0mx4i8l"; - sha256_64bit = "10kjccrkdn360035lh985cadhwy6lk9xrw3wlmww2wqfaa25f775"; - settingsSha256 = "1wvxldpjkrx0ldjm5l6ycm6paxpcw89h0n6hfkznfkahkq7fwxdj"; - persistencedSha256 = "1gklmc0v17m018cwpdlzwdyd45y4sjvjhj8a3l44baygix5zn30f"; + version = "390.87"; + sha256_32bit = "0rlr1f4lnpb8c4qz4w5r8xw5gdy9bzz26qww45qyl1qav3wwaaaw"; + sha256_64bit = "07k1kq8lkgbvjyr2dnbxcz6nppcwpq17wf925w8kfq78345hla9q"; + settingsSha256 = "0xlaiy7jr95z0v2c6cwll89nxnb142pybw7m08jg44r7n13ffv3r"; + persistencedSha256 = "0mhwk321garyl6m12261cj03ycv0qz1sbrlbq6cqwjpq4f1s7h58"; + + patches = lib.optional (kernel.meta.branch == "4.19") ./drm_mode_connector.patch; }; beta = stable; # not enough interest to maintain beta ATM diff --git a/pkgs/os-specific/linux/nvidia-x11/drm_mode_connector.patch b/pkgs/os-specific/linux/nvidia-x11/drm_mode_connector.patch new file mode 100644 index 00000000000..58cf06fae45 --- /dev/null +++ b/pkgs/os-specific/linux/nvidia-x11/drm_mode_connector.patch @@ -0,0 +1,24 @@ +diff -ura a/kernel/nvidia-drm/nvidia-drm-connector.c b/kernel/nvidia-drm/nvidia-drm-connector.c +--- a/kernel/nvidia-drm/nvidia-drm-connector.c 2018-09-07 17:38:31.807453997 -0400 ++++ b/kernel/nvidia-drm/nvidia-drm-connector.c 2018-09-07 17:39:22.446185824 -0400 +@@ -226,7 +226,7 @@ + + + if (nv_connector->edid != NULL) { +- drm_mode_connector_update_edid_property( ++ drm_connector_update_edid_property( + connector, nv_connector->edid); + } + +diff -ura a/kernel/nvidia-drm/nvidia-drm-encoder.c b/kernel/nvidia-drm/nvidia-drm-encoder.c +--- a/kernel/nvidia-drm/nvidia-drm-encoder.c 2018-09-07 17:38:31.807453997 -0400 ++++ b/kernel/nvidia-drm/nvidia-drm-encoder.c 2018-09-07 17:39:35.083798484 -0400 +@@ -216,7 +216,7 @@ + + /* Attach encoder and connector */ + +- ret = drm_mode_connector_attach_encoder(connector, encoder); ++ ret = drm_connector_attach_encoder(connector, encoder); + + if (ret != 0) { + NV_DRM_DEV_LOG_ERR( diff --git a/pkgs/servers/nosql/influxdb/default.nix b/pkgs/servers/nosql/influxdb/default.nix index e73233bd144..a47553b975e 100644 --- a/pkgs/servers/nosql/influxdb/default.nix +++ b/pkgs/servers/nosql/influxdb/default.nix @@ -2,13 +2,13 @@ buildGoPackage rec { name = "influxdb-${version}"; - version = "1.4.1"; + version = "1.6.3"; src = fetchFromGitHub { owner = "influxdata"; repo = "influxdb"; rev = "v${version}"; - sha256 = "048ap70hdfkxhy0y8q1jsb0lql1i99jnf3cqaqar6qs2ynzsw9hd"; + sha256 = "0xf16liapllk8qnw0vsy1ja4if1xlazwwaa4p0r5j7bny5lxm7zy"; }; buildFlagsArray = [ ''-ldflags= @@ -19,7 +19,7 @@ buildGoPackage rec { excludedPackages = "test"; - # Generated with the nix2go + # Generated with dep2nix (for 1.6.3) / nix2go (for 1.4.1). goDeps = ./. + "/deps-${version}.nix"; meta = with lib; { diff --git a/pkgs/servers/nosql/influxdb/deps-1.6.3.nix b/pkgs/servers/nosql/influxdb/deps-1.6.3.nix new file mode 100644 index 00000000000..a2f4dfaeb8d --- /dev/null +++ b/pkgs/servers/nosql/influxdb/deps-1.6.3.nix @@ -0,0 +1,444 @@ +# file generated from Gopkg.lock using dep2nix (https://github.com/nixcloud/dep2nix) +[ + { + goPackagePath = "collectd.org"; + fetch = { + type = "git"; + url = "https://github.com/collectd/go-collectd"; + rev = "2ce144541b8903101fb8f1483cc0497a68798122"; + sha256 = "0rr9rnc777jk27a7yxhdb7vgkj493158a8k6q44x51s30dkp78x3"; + }; + } + { + goPackagePath = "github.com/BurntSushi/toml"; + fetch = { + type = "git"; + url = "https://github.com/BurntSushi/toml"; + rev = "a368813c5e648fee92e5f6c30e3944ff9d5e8895"; + sha256 = "1sjxs2lwc8jpln80s4rlzp7nprbcljhy5mz4rf9995gq93wqnym5"; + }; + } + { + goPackagePath = "github.com/RoaringBitmap/roaring"; + fetch = { + type = "git"; + url = "https://github.com/RoaringBitmap/roaring"; + rev = "d6540aab65a17321470b1661bfc52da1823871e9"; + sha256 = "1lsrz7j55blalpp95vgz214b35sjf8nfmrw3fxybdl4xipk2ssdj"; + }; + } + { + goPackagePath = "github.com/beorn7/perks"; + fetch = { + type = "git"; + url = "https://github.com/beorn7/perks"; + rev = "4c0e84591b9aa9e6dcfdf3e020114cd81f89d5f9"; + sha256 = "1hrybsql68xw57brzj805xx2mghydpdiysv3gbhr7f5wlxj2514y"; + }; + } + { + goPackagePath = "github.com/bmizerany/pat"; + fetch = { + type = "git"; + url = "https://github.com/bmizerany/pat"; + rev = "6226ea591a40176dd3ff9cd8eff81ed6ca721a00"; + sha256 = "0qjkm7169y6pybwh0s02fjjk251isa2b367xqfzrwvl6cy4yzfxp"; + }; + } + { + goPackagePath = "github.com/boltdb/bolt"; + fetch = { + type = "git"; + url = "https://github.com/boltdb/bolt"; + rev = "2f1ce7a837dcb8da3ec595b1dac9d0632f0f99e8"; + sha256 = "0z7j06lijfi4y30ggf2znak2zf2srv2m6c68ar712wd2ys44qb3r"; + }; + } + { + goPackagePath = "github.com/cespare/xxhash"; + fetch = { + type = "git"; + url = "https://github.com/cespare/xxhash"; + rev = "5c37fe3735342a2e0d01c87a907579987c8936cc"; + sha256 = "02aii7z46sasagw816zz3v0gzax1z5d1hkjslz7ng25386p0gzk1"; + }; + } + { + goPackagePath = "github.com/davecgh/go-spew"; + fetch = { + type = "git"; + url = "https://github.com/davecgh/go-spew"; + rev = "346938d642f2ec3594ed81d874461961cd0faa76"; + sha256 = "0d4jfmak5p6lb7n2r6yvf5p1zcw0l8j74kn55ghvr7zr7b7axm6c"; + }; + } + { + goPackagePath = "github.com/dgrijalva/jwt-go"; + fetch = { + type = "git"; + url = "https://github.com/dgrijalva/jwt-go"; + rev = "06ea1031745cb8b3dab3f6a236daf2b0aa468b7e"; + sha256 = "08m27vlms74pfy5z79w67f9lk9zkx6a9jd68k3c4msxy75ry36mp"; + }; + } + { + goPackagePath = "github.com/dgryski/go-bitstream"; + fetch = { + type = "git"; + url = "https://github.com/dgryski/go-bitstream"; + rev = "9f22ccc24718d9643ac427c8c897ae1a01575783"; + sha256 = "0x3hbsrn7qafhhjz6lgyc1pd1p5kgkrkbccvsr6yygkl785h5lhn"; + }; + } + { + goPackagePath = "github.com/glycerine/go-unsnap-stream"; + fetch = { + type = "git"; + url = "https://github.com/glycerine/go-unsnap-stream"; + rev = "62a9a9eb44fd8932157b1a8ace2149eff5971af6"; + sha256 = "1ray7p4q3vv5zn9w5xs7m9kjh68b2ck98nh25mxhfiwl9jxkabrc"; + }; + } + { + goPackagePath = "github.com/gogo/protobuf"; + fetch = { + type = "git"; + url = "https://github.com/gogo/protobuf"; + rev = "1adfc126b41513cc696b209667c8656ea7aac67c"; + sha256 = "1j7azzlnihcvnd1apw5zr0bz30h7n0gyimqqkgc76vzb1n5dpi7m"; + }; + } + { + goPackagePath = "github.com/golang/protobuf"; + fetch = { + type = "git"; + url = "https://github.com/golang/protobuf"; + rev = "925541529c1fa6821df4e44ce2723319eb2be768"; + sha256 = "1d3zjvhl115l23xakj0014qpjchivlg098h10v5nfirkk1i9f9sa"; + }; + } + { + goPackagePath = "github.com/golang/snappy"; + fetch = { + type = "git"; + url = "https://github.com/golang/snappy"; + rev = "d9eb7a3d35ec988b8585d4a0068e462c27d28380"; + sha256 = "0wynarlr1y8sm9y9l29pm9dgflxriiialpwn01066snzjxnpmbyn"; + }; + } + { + goPackagePath = "github.com/google/go-cmp"; + fetch = { + type = "git"; + url = "https://github.com/google/go-cmp"; + rev = "3af367b6b30c263d47e8895973edcca9a49cf029"; + sha256 = "1fbv0x27k9sn8svafc0hjwsnckk864lv4yi7bvzrxvmd3d5hskds"; + }; + } + { + goPackagePath = "github.com/influxdata/influxql"; + fetch = { + type = "git"; + url = "https://github.com/influxdata/influxql"; + rev = "a7267bff5327e316e54c54342b0bc9598753e3d5"; + sha256 = "0mqc9xki5l9yfbb0dqjb417cmv3pca1bj71m90dkshladr2wlcg3"; + }; + } + { + goPackagePath = "github.com/influxdata/usage-client"; + fetch = { + type = "git"; + url = "https://github.com/influxdata/usage-client"; + rev = "6d3895376368aa52a3a81d2a16e90f0f52371967"; + sha256 = "0a5adnid42f9vpckgcpkj7v60fh147j7zlg1rhxcpq5vkw698ifl"; + }; + } + { + goPackagePath = "github.com/influxdata/yamux"; + fetch = { + type = "git"; + url = "https://github.com/influxdata/yamux"; + rev = "1f58ded512de5feabbe30b60c7d33a7a896c5f16"; + sha256 = "08y1lgcyyaa8zrg24ck64b5dfassgb2pp1fb9x5lw9q16fb170bx"; + }; + } + { + goPackagePath = "github.com/influxdata/yarpc"; + fetch = { + type = "git"; + url = "https://github.com/influxdata/yarpc"; + rev = "f0da2db138cad2fb425541938fc28dd5a5bc6918"; + sha256 = "1g71flc8s8xas7vmaiwv0425paii1akc7jsdqsgxkhyfxx2gvib0"; + }; + } + { + goPackagePath = "github.com/jsternberg/zap-logfmt"; + fetch = { + type = "git"; + url = "https://github.com/jsternberg/zap-logfmt"; + rev = "ac4bd917e18a4548ce6e0e765b29a4e7f397b0b6"; + sha256 = "0pqp2nsqvsq8kqc7l14340lrvl03715s12bag63kdbi25s8fcdkx"; + }; + } + { + goPackagePath = "github.com/jwilder/encoding"; + fetch = { + type = "git"; + url = "https://github.com/jwilder/encoding"; + rev = "b4e1701a28efcc637d9afcca7d38e495fe909a09"; + sha256 = "195js5njz86k096p3ggglgpc7rw3801mpqzdfwfr3miflhnp7nwg"; + }; + } + { + goPackagePath = "github.com/klauspost/compress"; + fetch = { + type = "git"; + url = "https://github.com/klauspost/compress"; + rev = "6c8db69c4b49dd4df1fff66996cf556176d0b9bf"; + sha256 = "00h2lpqcyc3pg2xk3q4a9cgyv0vkn15bx0hb725j5zbkr9vah23x"; + }; + } + { + goPackagePath = "github.com/klauspost/cpuid"; + fetch = { + type = "git"; + url = "https://github.com/klauspost/cpuid"; + rev = "ae7887de9fa5d2db4eaa8174a7eff2c1ac00f2da"; + sha256 = "178apw89g8nsd7w6mbdylxn956h3iig6rbw3bkivp6lplhb5dvq4"; + }; + } + { + goPackagePath = "github.com/klauspost/crc32"; + fetch = { + type = "git"; + url = "https://github.com/klauspost/crc32"; + rev = "cb6bfca970f6908083f26f39a79009d608efd5cd"; + sha256 = "0q4yr4isgmph1yf1vq527lpmid7vqv56q7vxh3gkp5679fb90q6n"; + }; + } + { + goPackagePath = "github.com/klauspost/pgzip"; + fetch = { + type = "git"; + url = "https://github.com/klauspost/pgzip"; + rev = "0bf5dcad4ada2814c3c00f996a982270bb81a506"; + sha256 = "0dgp2iljvhibzxia1g3lsfg4bjmfh4kf0bfrmfi7sd49hwhrvk7s"; + }; + } + { + goPackagePath = "github.com/mattn/go-isatty"; + fetch = { + type = "git"; + url = "https://github.com/mattn/go-isatty"; + rev = "6ca4dbf54d38eea1a992b3c722a76a5d1c4cb25c"; + sha256 = "0zs92j2cqaw9j8qx1sdxpv3ap0rgbs0vrvi72m40mg8aa36gd39w"; + }; + } + { + goPackagePath = "github.com/matttproud/golang_protobuf_extensions"; + fetch = { + type = "git"; + url = "https://github.com/matttproud/golang_protobuf_extensions"; + rev = "3247c84500bff8d9fb6d579d800f20b3e091582c"; + sha256 = "12hcych25wf725zxdkpnyx4wa0gyxl8v4m8xmhdmmaki9bbmqd0d"; + }; + } + { + goPackagePath = "github.com/mschoch/smat"; + fetch = { + type = "git"; + url = "https://github.com/mschoch/smat"; + rev = "90eadee771aeab36e8bf796039b8c261bebebe4f"; + sha256 = "141saq6d4z3c7v3jw45zy4gn6wwjlyralqygjff1fzvz1gkvimk3"; + }; + } + { + goPackagePath = "github.com/opentracing/opentracing-go"; + fetch = { + type = "git"; + url = "https://github.com/opentracing/opentracing-go"; + rev = "328fceb7548c744337cd010914152b74eaf4c4ab"; + sha256 = "1w6s42n9glqwif6awyiapr7sh1wjvkxan41qhc1yi555byyw200k"; + }; + } + { + goPackagePath = "github.com/paulbellamy/ratecounter"; + fetch = { + type = "git"; + url = "https://github.com/paulbellamy/ratecounter"; + rev = "524851a93235ac051e3540563ed7909357fe24ab"; + sha256 = "0z4c61ac6v8mpnr9z37d91h1cf8v9psja5jfdxmsf69r1b7qr4f9"; + }; + } + { + goPackagePath = "github.com/peterh/liner"; + fetch = { + type = "git"; + url = "https://github.com/peterh/liner"; + rev = "6106ee4fe3e8435f18cd10e34557e5e50f0e792a"; + sha256 = "178s1amw5r60lywgmh24pd2ljim0b05fdfsm4c8px22fkycmn1qr"; + }; + } + { + goPackagePath = "github.com/philhofer/fwd"; + fetch = { + type = "git"; + url = "https://github.com/philhofer/fwd"; + rev = "bb6d471dc95d4fe11e432687f8b70ff496cf3136"; + sha256 = "1pg84khadh79v42y8sjsdgfb54vw2kzv7hpapxkifgj0yvcp30g2"; + }; + } + { + goPackagePath = "github.com/prometheus/client_golang"; + fetch = { + type = "git"; + url = "https://github.com/prometheus/client_golang"; + rev = "661e31bf844dfca9aeba15f27ea8aa0d485ad212"; + sha256 = "0r9sr3m57ks7rc5bbghl0gy9wxlznzmz331xdp42zlgk6g774xcn"; + }; + } + { + goPackagePath = "github.com/prometheus/client_model"; + fetch = { + type = "git"; + url = "https://github.com/prometheus/client_model"; + rev = "99fa1f4be8e564e8a6b613da7fa6f46c9edafc6c"; + sha256 = "19y4ywsivhpxj7ikf2j0gm9k3cmyw37qcbfi78n526jxcc7kw998"; + }; + } + { + goPackagePath = "github.com/prometheus/common"; + fetch = { + type = "git"; + url = "https://github.com/prometheus/common"; + rev = "e4aa40a9169a88835b849a6efb71e05dc04b88f0"; + sha256 = "0m1n616d694jca0qjwjn5ci7scfgm2jpi94dhi356arm9lhda4jc"; + }; + } + { + goPackagePath = "github.com/prometheus/procfs"; + fetch = { + type = "git"; + url = "https://github.com/prometheus/procfs"; + rev = "54d17b57dd7d4a3aa092476596b3f8a933bde349"; + sha256 = "1b5218hi6k9i637k6xc7ynpll577zbnrhjm9jr2iczy3j0rr4rvr"; + }; + } + { + goPackagePath = "github.com/retailnext/hllpp"; + fetch = { + type = "git"; + url = "https://github.com/retailnext/hllpp"; + rev = "101a6d2f8b52abfc409ac188958e7e7be0116331"; + sha256 = "1dyyjyrscd3d22jhh2pbn67c6nzva0v069215sjjmj313k1xzmj3"; + }; + } + { + goPackagePath = "github.com/tinylib/msgp"; + fetch = { + type = "git"; + url = "https://github.com/tinylib/msgp"; + rev = "b2b6a672cf1e5b90748f79b8b81fc8c5cf0571a1"; + sha256 = "0pypfknghg1hcjjrqz3f1riaylk6hcxn9h0qyzynb74rp0qmlxjc"; + }; + } + { + goPackagePath = "github.com/willf/bitset"; + fetch = { + type = "git"; + url = "https://github.com/willf/bitset"; + rev = "d860f346b89450988a379d7d705e83c58d1ea227"; + sha256 = "18419ip5mnblnyx2rjixad90dhjb1x2kaiidr7zk9b3qci799rh0"; + }; + } + { + goPackagePath = "github.com/xlab/treeprint"; + fetch = { + type = "git"; + url = "https://github.com/xlab/treeprint"; + rev = "f3a15cfd24bf976c724324cb6846a8b54b88b639"; + sha256 = "0fgbdyk2mfj5vh8902sga33w5gw7q0f1if4nqx631ca33fd6pfbn"; + }; + } + { + goPackagePath = "go.uber.org/atomic"; + fetch = { + type = "git"; + url = "https://github.com/uber-go/atomic"; + rev = "8474b86a5a6f79c443ce4b2992817ff32cf208b8"; + sha256 = "166shnjw8rvjvksymi2gqw1ygsbxlq15xb10j2dx5rwy4y4asq8x"; + }; + } + { + goPackagePath = "go.uber.org/multierr"; + fetch = { + type = "git"; + url = "https://github.com/uber-go/multierr"; + rev = "3c4937480c32f4c13a875a1829af76c98ca3d40a"; + sha256 = "1slfc6syvw8cvr6rbrjsy6ja5w8gsx0f8aq8qm16rp2x5c2pj07w"; + }; + } + { + goPackagePath = "go.uber.org/zap"; + fetch = { + type = "git"; + url = "https://github.com/uber-go/zap"; + rev = "35aad584952c3e7020db7b839f6b102de6271f89"; + sha256 = "0n79ir7jcr7s51j85swji7an0jgy1w5dxg1g68j722rmpbvsagwv"; + }; + } + { + goPackagePath = "golang.org/x/crypto"; + fetch = { + type = "git"; + url = "https://go.googlesource.com/crypto"; + rev = "c3a3ad6d03f7a915c0f7e194b7152974bb73d287"; + sha256 = "0x18275g5xlaw55bpx8hdna66d2hpbcw6hs0pxf1kmvfds6gzn6n"; + }; + } + { + goPackagePath = "golang.org/x/net"; + fetch = { + type = "git"; + url = "https://go.googlesource.com/net"; + rev = "92b859f39abd2d91a854c9f9c4621b2f5054a92d"; + sha256 = "1nzbay48k53pxa1sh102v571k6pa57540p0bzcil4qgan47yxba6"; + }; + } + { + goPackagePath = "golang.org/x/sync"; + fetch = { + type = "git"; + url = "https://go.googlesource.com/sync"; + rev = "1d60e4601c6fd243af51cc01ddf169918a5407ca"; + sha256 = "046jlanz2lkxq1r57x9bl6s4cvfqaic6p2xybsj8mq1120jv4rs6"; + }; + } + { + goPackagePath = "golang.org/x/sys"; + fetch = { + type = "git"; + url = "https://go.googlesource.com/sys"; + rev = "d8e400bc7db4870d786864138af681469693d18c"; + sha256 = "08d23f9gjarp63dw0wj54nlqh3x2lqnchzkw8n5d7ik3wy7qy4yf"; + }; + } + { + goPackagePath = "golang.org/x/text"; + fetch = { + type = "git"; + url = "https://go.googlesource.com/text"; + rev = "f21a4dfb5e38f5895301dc265a8def02365cc3d0"; + sha256 = "0r6x6zjzhr8ksqlpiwm5gdd7s209kwk5p4lw54xjvz10cs3qlq19"; + }; + } + { + goPackagePath = "golang.org/x/time"; + fetch = { + type = "git"; + url = "https://go.googlesource.com/time"; + rev = "26559e0f760e39c24d730d3224364aef164ee23f"; + sha256 = "00fx6m59cjbi7y0ri4a57q1zs6r310xbg5yqns5kfm2cax0dkmnf"; + }; + } +] \ No newline at end of file diff --git a/pkgs/servers/sql/postgresql/pgtap/default.nix b/pkgs/servers/sql/postgresql/pgtap/default.nix index c6eb4013c5c..2f37d3a85d3 100644 --- a/pkgs/servers/sql/postgresql/pgtap/default.nix +++ b/pkgs/servers/sql/postgresql/pgtap/default.nix @@ -2,13 +2,13 @@ stdenv.mkDerivation rec { name = "pgtap-${version}"; - version = "0.98.0"; + version = "0.99.0"; src = fetchFromGitHub { owner = "theory"; repo = "pgtap"; rev = "v${version}"; - sha256 = "17r3b409k05pbypmwdwgm1fl669jc6a1391szyxizx784k44a369"; + sha256 = "0xakjlbb99mgd8za6m0xa6n3s5fhif217iip6b3aywqw7nh1j6nv"; }; nativeBuildInputs = [ postgresql perl perlPackages.TAPParserSourceHandlerpgTAP which ]; diff --git a/pkgs/servers/x11/xorg/default.nix b/pkgs/servers/x11/xorg/default.nix index 561f8ba94d9..06dd540a481 100644 --- a/pkgs/servers/x11/xorg/default.nix +++ b/pkgs/servers/x11/xorg/default.nix @@ -1760,11 +1760,11 @@ let }) // {inherit inputproto xorgserver xproto ;}; xf86inputlibinput = (mkDerivation "xf86inputlibinput" { - name = "xf86-input-libinput-0.26.0"; + name = "xf86-input-libinput-0.28.0"; builder = ./builder.sh; src = fetchurl { - url = mirror://xorg/individual/driver/xf86-input-libinput-0.26.0.tar.bz2; - sha256 = "0yrqs88b7yn9nljwlxzn76jfmvf0sh939kzij5b2jvr2qa7mbjmb"; + url = mirror://xorg/individual/driver/xf86-input-libinput-0.28.0.tar.bz2; + sha256 = "189h8vl0005yizwrs4d0sng6j8lwkd3xi1zwqg8qavn2bw34v691"; }; nativeBuildInputs = [ pkgconfig ]; buildInputs = [ inputproto xorgserver xproto ]; diff --git a/pkgs/servers/x11/xorg/overrides.nix b/pkgs/servers/x11/xorg/overrides.nix index b1a749c7ec4..32a4e67642a 100644 --- a/pkgs/servers/x11/xorg/overrides.nix +++ b/pkgs/servers/x11/xorg/overrides.nix @@ -335,10 +335,10 @@ in }; xf86inputlibinput = attrs: attrs // rec { - name = "xf86-input-libinput-0.26.0"; + name = "xf86-input-libinput-0.28.0"; src = args.fetchurl { url = "mirror://xorg/individual/driver/${name}.tar.bz2"; - sha256 = "0yrqs88b7yn9nljwlxzn76jfmvf0sh939kzij5b2jvr2qa7mbjmb"; + sha256 = "189h8vl0005yizwrs4d0sng6j8lwkd3xi1zwqg8qavn2bw34v691"; }; outputs = [ "out" "dev" ]; buildInputs = attrs.buildInputs ++ [ args.libinput ]; diff --git a/pkgs/servers/x11/xorg/tarballs-7.7.list b/pkgs/servers/x11/xorg/tarballs-7.7.list index 6e67e8eb6e1..ca77e640814 100644 --- a/pkgs/servers/x11/xorg/tarballs-7.7.list +++ b/pkgs/servers/x11/xorg/tarballs-7.7.list @@ -123,7 +123,7 @@ mirror://xorg/X11R7.7/src/everything/xf86driproto-2.1.1.tar.bz2 mirror://xorg/individual/driver/xf86-input-evdev-2.10.5.tar.bz2 mirror://xorg/individual/driver/xf86-input-joystick-1.6.3.tar.bz2 mirror://xorg/individual/driver/xf86-input-keyboard-1.9.0.tar.bz2 -mirror://xorg/individual/driver/xf86-input-libinput-0.26.0.tar.bz2 +mirror://xorg/individual/driver/xf86-input-libinput-0.28.0.tar.bz2 mirror://xorg/individual/driver/xf86-input-mouse-1.9.2.tar.bz2 mirror://xorg/individual/driver/xf86-input-synaptics-1.9.0.tar.bz2 mirror://xorg/individual/driver/xf86-input-vmmouse-13.1.0.tar.bz2 diff --git a/pkgs/test/default.nix b/pkgs/test/default.nix index eb7fd82b945..24948ce9aa4 100644 --- a/pkgs/test/default.nix +++ b/pkgs/test/default.nix @@ -17,6 +17,8 @@ with pkgs; cc-wrapper-libcxx-5 = callPackage ./cc-wrapper { stdenv = llvmPackages_5.libcxxStdenv; }; cc-wrapper-clang-6 = callPackage ./cc-wrapper { stdenv = llvmPackages_6.stdenv; }; cc-wrapper-libcxx-6 = callPackage ./cc-wrapper { stdenv = llvmPackages_6.libcxxStdenv; }; + cc-wrapper-clang-7 = callPackage ./cc-wrapper { stdenv = llvmPackages_7.stdenv; }; + cc-wrapper-libcxx-7 = callPackage ./cc-wrapper { stdenv = llvmPackages_7.libcxxStdenv; }; stdenv-inputs = callPackage ./stdenv-inputs { }; cc-multilib-gcc = callPackage ./cc-wrapper/multilib.nix { stdenv = gccMultiStdenv; }; diff --git a/pkgs/tools/X11/xloadimage/default.nix b/pkgs/tools/X11/xloadimage/default.nix new file mode 100644 index 00000000000..a58d16ab82e --- /dev/null +++ b/pkgs/tools/X11/xloadimage/default.nix @@ -0,0 +1,88 @@ +{ stdenv +, fetchurl +, libX11 +, libXt + +, libjpeg ? null +, libpng ? null +, libtiff ? null + +, withJpegSupport ? true +, withPngSupport ? true +, withTiffSupport ? true +}: + +assert withJpegSupport -> libjpeg != null; +assert withPngSupport -> libpng != null; +assert withTiffSupport -> libtiff != null; + +let + deb_patch = "25"; +in +stdenv.mkDerivation rec { + version = "4.1"; + name = "xloadimage-${version}"; + + src = fetchurl { + url = "mirror://debian/pool/main/x/xloadimage/xloadimage_${version}.orig.tar.gz"; + sha256 = "1i7miyvk5ydhi6yi8593vapavhwxcwciir8wg9d2dcyg9pccf2s0"; + }; + + patches = fetchurl { + url = "mirror://debian/pool/main/x/xloadimage/xloadimage_${version}-${deb_patch}.debian.tar.xz"; + sha256 = "17k518vrdrya5c9dqhpmm4g0h2vlkq1iy87sg2ngzygypbli1xvn"; + }; + + buildInputs = [ + libX11 libXt + ] ++ stdenv.lib.optionals withJpegSupport [ + libjpeg + ] ++ stdenv.lib.optionals withPngSupport [ + libpng + ] ++ stdenv.lib.optionals withTiffSupport [ + libtiff + ]; + + # NOTE: we patch the build-info script so that it never detects the utilities + # it's trying to find; one of the Debian patches adds support for + # $SOURCE_DATE_EPOCH, but we want to make sure we don't even call these. + preConfigure = '' + substituteInPlace build-info \ + --replace '[ -x /bin/date ]' 'false' \ + --replace '[ -x /bin/id ]' 'false' \ + --replace '[ -x /bin/uname ]' 'false' \ + --replace '[ -x /usr/bin/id ]' 'false' + + chmod +x build-info configure + ''; + + enableParallelBuilding = true; + + # NOTE: we're not installing the `uufilter` binary; if needed, the standard + # `uudecode` tool should work just fine. + installPhase = '' + install -Dm755 xloadimage $out/bin/xloadimage + ln -sv $out/bin/{xloadimage,xsetbg} + + install -D -m644 xloadimagerc $out/etc/xloadimagerc.example + install -D -m644 xloadimage.man $out/share/man/man1/xloadimage.1x + ln -sv $out/share/man/man1/{xloadimage,xsetbg}.1x + ''; + + meta = { + description = "Graphics file viewer under X11"; + + longDescription = '' + Can view png, jpeg, gif, tiff, niff, sunraster, fbm, cmuraster, pbm, + faces, rle, xwd, vff, mcidas, vicar, pcx, gem, macpaint, xpm and xbm + files. Can view images, put them on the root window, or dump them. Does a + variety of processing, including: clipping, dithering, depth reduction, + zoom, brightening/darkening and merging. + ''; + + license = stdenv.lib.licenses.gpl2Plus; + + maintainers = with stdenv.lib.maintainers; [ andrew-d ]; + platforms = stdenv.lib.platforms.linux; # arbitrary choice + }; +} diff --git a/pkgs/tools/X11/xsecurelock/default.nix b/pkgs/tools/X11/xsecurelock/default.nix index c252894dbfe..4ee51100b33 100644 --- a/pkgs/tools/X11/xsecurelock/default.nix +++ b/pkgs/tools/X11/xsecurelock/default.nix @@ -1,21 +1,21 @@ { lib, stdenv, fetchFromGitHub, autoreconfHook, pkgconfig -, libX11, libXcomposite, libXft, pam, apacheHttpd, imagemagick +, libX11, libXcomposite, libXft, libXmu, pam, apacheHttpd, imagemagick , pamtester, xscreensaver }: stdenv.mkDerivation rec { name = "xsecurelock-${version}"; - version = "1.0"; + version = "1.1"; src = fetchFromGitHub { owner = "google"; repo = "xsecurelock"; rev = "v${version}"; - sha256 = "0k135hnfnn1j82wvc03b8jkq06wws1xk325x5m25ps6xwsn725sw"; + sha256 = "0yqp5xhkl9jpjyrmrxbyp7azwxmqc3lxv5lxrjqjaapl3q3096g5"; }; nativeBuildInputs = [ autoreconfHook pkgconfig ]; buildInputs = [ - libX11 libXcomposite libXft pam + libX11 libXcomposite libXft libXmu pam apacheHttpd imagemagick pamtester ]; diff --git a/pkgs/tools/misc/agedu/default.nix b/pkgs/tools/misc/agedu/default.nix index 2f9615a1fdb..d0254e9ce9f 100644 --- a/pkgs/tools/misc/agedu/default.nix +++ b/pkgs/tools/misc/agedu/default.nix @@ -1,7 +1,7 @@ {stdenv, fetchgit, autoreconfHook, halibut}: let - date = "20180522"; - rev = "5b12791"; + date = "20180918"; + rev = "80c7beb"; in stdenv.mkDerivation { name = "agedu-${date}.${rev}"; @@ -9,7 +9,7 @@ stdenv.mkDerivation { src = fetchgit { url = https://git.tartarus.org/simon/agedu.git; inherit rev; - sha256 = "1zyxif0i3yil4xm8y9aqk6wsdwi7b3jg682lv6ds6a6bl047fz1q"; + sha256 = "0i930izna3s73p2q52qa377ixd14zij5q1n7w3irl7csyy78g0cd"; }; nativeBuildInputs = [autoreconfHook halibut]; diff --git a/pkgs/tools/misc/bat/default.nix b/pkgs/tools/misc/bat/default.nix index ec2062805ab..0cacfa6e54e 100644 --- a/pkgs/tools/misc/bat/default.nix +++ b/pkgs/tools/misc/bat/default.nix @@ -4,17 +4,17 @@ rustPlatform.buildRustPackage rec { name = "bat-${version}"; - version = "0.7.0"; + version = "0.7.1"; src = fetchFromGitHub { owner = "sharkdp"; repo = "bat"; rev = "v${version}"; - sha256 = "1dhn88asf08dvl4827v4mkxafcr01m1h5jmicvzda9ywmr82g1cs"; + sha256 = "1fzk0z7r70rjvv2c6531zaa1jzbcb7j9wbi0xqb9y4dls538bmz0"; fetchSubmodules = true; }; - cargoSha256 = "10s8ig08prs1wcsisrllvsixqkrkwjx769y1w5fypldn9kfk2lka"; + cargoSha256 = "19syz0sxcpk3i4675bfq5gpb9i6hp81in36w820kkvamaimq10nd"; nativeBuildInputs = [ cmake pkgconfig zlib ]; diff --git a/pkgs/tools/misc/hdf4/default.nix b/pkgs/tools/misc/hdf4/default.nix index d0bbd10d1e5..ef3839f67de 100644 --- a/pkgs/tools/misc/hdf4/default.nix +++ b/pkgs/tools/misc/hdf4/default.nix @@ -1,4 +1,5 @@ { stdenv +, fetchpatch , fetchurl , cmake , libjpeg @@ -14,6 +15,22 @@ stdenv.mkDerivation rec { sha256 = "0n29klrrbwan9307np0d9hr128dlpc4nnlf57a140080ll3jmp8l"; }; + patches = let + # The Debian patch revision to fetch from; this may differ from our package + # version, but older patches should still apply. + patchRev = "4.2.13-4"; + getPatch = name: sha256: fetchpatch { + inherit sha256; + url = "https://salsa.debian.org/debian-gis-team/hdf4/raw/debian/${patchRev}/debian/patches/${name}"; + }; + + in [ + (getPatch "64bit" "1xqk9zpch4m6ipa0f3x2cm8rwaz4p0ppp1vqglvz18j6q91p8b5y") + (getPatch "hdfi.h" "01fr9csylnvk9jd9jn9y23bvxy192s07p32pr76mm3gwhgs9h7r4") + (getPatch "hdf-4.2.10-aarch64.patch" "1hl0xw5pd9xhpq49xpwgg7c4z6vv5p19x6qayixw0myvgwj1r4zn") + (getPatch "reproducible-builds.patch" "02j639w26xkxpxx3pdhbi18ywz8w3qmjpqjb83n47gq29y4g13hc") + ]; + buildInputs = [ cmake libjpeg diff --git a/pkgs/tools/networking/network-manager/fortisslvpn/default.nix b/pkgs/tools/networking/network-manager/fortisslvpn/default.nix index 16964e4db94..facf1b6a667 100644 --- a/pkgs/tools/networking/network-manager/fortisslvpn/default.nix +++ b/pkgs/tools/networking/network-manager/fortisslvpn/default.nix @@ -28,6 +28,7 @@ in stdenv.mkDerivation rec { "--without-libnm-glib" "--with-gnome=${if withGnome then "yes" else "no"}" "--localstatedir=/tmp" + "--enable-absolute-paths" ]; passthru = { diff --git a/pkgs/tools/networking/network-manager/iodine/default.nix b/pkgs/tools/networking/network-manager/iodine/default.nix index a6fd3e7303d..ad58dc97b0a 100644 --- a/pkgs/tools/networking/network-manager/iodine/default.nix +++ b/pkgs/tools/networking/network-manager/iodine/default.nix @@ -31,6 +31,7 @@ in stdenv.mkDerivation rec { "--without-libnm-glib" "--with-gnome=${if withGnome then "yes" else "no"}" "--localstatedir=/" # needed for the management socket under /run/NetworkManager + "--enable-absolute-paths" ]; passthru = { diff --git a/pkgs/tools/networking/network-manager/l2tp/default.nix b/pkgs/tools/networking/network-manager/l2tp/default.nix index 3cac1b5e63c..b44933f7f5f 100644 --- a/pkgs/tools/networking/network-manager/l2tp/default.nix +++ b/pkgs/tools/networking/network-manager/l2tp/default.nix @@ -35,6 +35,7 @@ stdenv.mkDerivation rec { "--with-gnome=${if withGnome then "yes" else "no"}" "--localstatedir=/var" "--sysconfdir=$(out)/etc" + "--enable-absolute-paths" ]; enableParallelBuilding = true; diff --git a/pkgs/tools/networking/network-manager/openconnect/default.nix b/pkgs/tools/networking/network-manager/openconnect/default.nix index 23d4c816a20..0c02569aa27 100644 --- a/pkgs/tools/networking/network-manager/openconnect/default.nix +++ b/pkgs/tools/networking/network-manager/openconnect/default.nix @@ -26,6 +26,7 @@ in stdenv.mkDerivation rec { configureFlags = [ "--with-gnome=${if withGnome then "yes" else "no"}" + "--enable-absolute-paths" ]; passthru = { diff --git a/pkgs/tools/networking/network-manager/openvpn/default.nix b/pkgs/tools/networking/network-manager/openvpn/default.nix index 0d3a4174744..66a306ffb66 100644 --- a/pkgs/tools/networking/network-manager/openvpn/default.nix +++ b/pkgs/tools/networking/network-manager/openvpn/default.nix @@ -28,6 +28,7 @@ in stdenv.mkDerivation rec { "--without-libnm-glib" "--with-gnome=${if withGnome then "yes" else "no"}" "--localstatedir=/" # needed for the management socket under /run/NetworkManager + "--enable-absolute-paths" ]; passthru = { diff --git a/pkgs/tools/networking/network-manager/vpnc/default.nix b/pkgs/tools/networking/network-manager/vpnc/default.nix index ef45defb7d5..5d77be86dff 100644 --- a/pkgs/tools/networking/network-manager/vpnc/default.nix +++ b/pkgs/tools/networking/network-manager/vpnc/default.nix @@ -26,6 +26,7 @@ in stdenv.mkDerivation rec { configureFlags = [ "--without-libnm-glib" "--with-gnome=${if withGnome then "yes" else "no"}" + "--enable-absolute-paths" ]; passthru = { diff --git a/pkgs/tools/package-management/packagekit/default.nix b/pkgs/tools/package-management/packagekit/default.nix index 456469f150f..2acb39c0b73 100644 --- a/pkgs/tools/package-management/packagekit/default.nix +++ b/pkgs/tools/package-management/packagekit/default.nix @@ -11,6 +11,8 @@ stdenv.mkDerivation rec { name = "packagekit-${version}"; version = "1.1.10"; + outputs = [ "out" "dev" ]; + src = fetchFromGitHub { owner = "hughsie"; repo = "PackageKit"; @@ -33,7 +35,7 @@ stdenv.mkDerivation rec { (if enableSystemd then "--enable-systemd" else "--disable-systemd") "--disable-dummy" "--disable-cron" - "--disable-introspection" + "--enable-introspection" "--disable-offline-update" "--localstatedir=/var" "--sysconfdir=/etc" diff --git a/pkgs/tools/security/qesteidutil/default.nix b/pkgs/tools/security/qesteidutil/default.nix index 016017205ab..20135895d76 100644 --- a/pkgs/tools/security/qesteidutil/default.nix +++ b/pkgs/tools/security/qesteidutil/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchFromGitHub +{ stdenv, fetchFromGitHub, fetchpatch , cmake, ccid, qttools, qttranslations , pkgconfig, pcsclite, hicolor-icon-theme }: @@ -19,6 +19,13 @@ stdenv.mkDerivation rec { fetchSubmodules = true; }; + patches = [ + (fetchpatch { + url = https://github.com/open-eid/qesteidutil/commit/868e8245f2481e29e1154e168ac92d32e93a5425.patch; + sha256 = "0pwrkd8inf0qaf7lcchmj558k6z34ah672zcb722aa5ybbif0lkn"; + }) + ]; + nativeBuildInputs = [ pkgconfig ]; buildInputs = [ cmake ccid qttools pcsclite qttranslations hicolor-icon-theme diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 0062289d204..0f4f2e8166d 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -6381,6 +6381,7 @@ with pkgs; }; }; + clang_7 = llvmPackages_7.clang; clang_6 = llvmPackages_6.clang; clang_5 = llvmPackages_5.clang; clang_4 = llvmPackages_4.clang; @@ -6978,15 +6979,18 @@ with pkgs; lld_4 = llvmPackages_4.lld; lld_5 = llvmPackages_5.lld; lld_6 = llvmPackages_6.lld; + lld_7 = llvmPackages_7.lld; lldb = llvmPackages.lldb; lldb_4 = llvmPackages_4.lldb; lldb_5 = llvmPackages_5.lldb; lldb_6 = llvmPackages_6.lldb; + lldb_7 = llvmPackages_7.lldb; llvm = llvmPackages.llvm; llvm-manpages = llvmPackages.llvm-manpages; + llvm_7 = llvmPackages_7.llvm; llvm_6 = llvmPackages_6.llvm; llvm_5 = llvmPackages_5.llvm; llvm_4 = llvmPackages_4.llvm; @@ -7051,6 +7055,14 @@ with pkgs; stdenv = overrideCC stdenv buildPackages.gcc6; # with gcc-7: undefined reference to `__divmoddi4' }); + llvmPackages_7 = callPackage ../development/compilers/llvm/7 ({ + inherit (stdenvAdapters) overrideCC; + buildLlvmTools = buildPackages.llvmPackages_7.tools; + targetLlvmLibraries = targetPackages.llvmPackages_7.libraries; + } // stdenv.lib.optionalAttrs (stdenv.cc.isGNU && stdenv.hostPlatform.isi686) { + stdenv = overrideCC stdenv buildPackages.gcc6; # with gcc-7: undefined reference to `__divmoddi4' + }); + manticore = callPackage ../development/compilers/manticore { }; mentorToolchains = recurseIntoAttrs ( @@ -7809,6 +7821,8 @@ with pkgs; wasm = callPackage ../development/interpreters/wasm { }; + wasm-gc = callPackage ../development/interpreters/wasm-gc { }; + ### DEVELOPMENT / MISC @@ -15316,6 +15330,8 @@ with pkgs; ucs-fonts = callPackage ../data/fonts/ucs-fonts { }; + ultimate-oldschool-pc-font-pack = callPackage ../data/fonts/ultimate-oldschool-pc-font-pack { }; + uni-vga = callPackage ../data/fonts/uni-vga { }; unifont = callPackage ../data/fonts/unifont { }; @@ -16399,7 +16415,7 @@ with pkgs; gnuradio-with-packages = callPackage ../applications/misc/gnuradio/wrapper.nix { inherit (python2Packages) python; - extraPackages = [ gnuradio-nacl gnuradio-osmosdr gnuradio-gsm gnuradio-ais gnuradio-rds ]; + extraPackages = [ gnuradio-nacl gnuradio-osmosdr gnuradio-gsm gnuradio-ais gnuradio-rds gnuradio-limesdr ]; }; gnuradio-nacl = callPackage ../applications/misc/gnuradio/nacl.nix { }; @@ -16408,6 +16424,8 @@ with pkgs; gnuradio-ais = callPackage ../applications/misc/gnuradio/ais.nix { }; + gnuradio-limesdr = callPackage ../applications/misc/gnuradio/limesdr.nix { }; + gnuradio-rds = callPackage ../applications/misc/gnuradio/rds.nix { }; gnuradio-osmosdr = callPackage ../applications/misc/gnuradio/osmosdr.nix { }; @@ -16944,9 +16962,7 @@ with pkgs; extra-packages = [ csound ]; }; - jackline = callPackage ../applications/networking/instant-messengers/jackline { - ocamlPackages = ocaml-ng.ocamlPackages_4_05; - }; + jackline = callPackage ../applications/networking/instant-messengers/jackline { }; slack = callPackage ../applications/networking/instant-messengers/slack { }; @@ -18988,7 +19004,7 @@ with pkgs; tree = callPackage ../tools/system/tree {}; - treesheets = callPackage ../applications/office/treesheets { wxGTK = wxGTK30; }; + treesheets = callPackage ../applications/office/treesheets { wxGTK = wxGTK31; }; trezor-bridge = callPackage ../applications/networking/browsers/mozilla-plugins/trezor { }; @@ -19596,6 +19612,8 @@ with pkgs; xss-lock = callPackage ../misc/screensavers/xss-lock { }; + xloadimage = callPackage ../tools/X11/xloadimage { }; + xssproxy = callPackage ../misc/screensavers/xssproxy { }; xsynth_dssi = callPackage ../applications/audio/xsynth-dssi { }; diff --git a/pkgs/top-level/ocaml-packages.nix b/pkgs/top-level/ocaml-packages.nix index f5e5cfb3972..779a24352bf 100644 --- a/pkgs/top-level/ocaml-packages.nix +++ b/pkgs/top-level/ocaml-packages.nix @@ -220,6 +220,12 @@ let digestif = callPackage ../development/ocaml-modules/digestif { }; + doc-ock = callPackage ../development/ocaml-modules/doc-ock { }; + + doc-ock-html = callPackage ../development/ocaml-modules/doc-ock-html { }; + + doc-ock-xml = callPackage ../development/ocaml-modules/doc-ock-xml { }; + dolmen = callPackage ../development/ocaml-modules/dolmen { }; dolog = callPackage ../development/ocaml-modules/dolog { }; @@ -240,8 +246,6 @@ let erm_xmpp = callPackage ../development/ocaml-modules/erm_xmpp { }; - erm_xmpp_0_3 = callPackage ../development/ocaml-modules/erm_xmpp/0.3.nix { }; - estring = callPackage ../development/ocaml-modules/estring { }; ezjsonm = callPackage ../development/ocaml-modules/ezjsonm { }; @@ -535,6 +539,8 @@ let octavius = callPackage ../development/ocaml-modules/octavius { }; + odoc = callPackage ../development/ocaml-modules/odoc { }; + ojquery = callPackage ../development/ocaml-modules/ojquery { }; omd = callPackage ../development/ocaml-modules/omd { }; diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index df28860accf..0354bdda6ef 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -1841,6 +1841,8 @@ in { pyjade = callPackage ../development/python-modules/pyjade {}; + pyjet = callPackage ../development/python-modules/pyjet {}; + PyLD = callPackage ../development/python-modules/PyLD { }; python-jose = callPackage ../development/python-modules/python-jose {}; diff --git a/pkgs/top-level/stage.nix b/pkgs/top-level/stage.nix index 06978d1067b..7637371a40f 100644 --- a/pkgs/top-level/stage.nix +++ b/pkgs/top-level/stage.nix @@ -83,7 +83,7 @@ let inherit (super.stdenv) buildPlatform hostPlatform targetPlatform; in { inherit buildPlatform hostPlatform targetPlatform; - inherit (buildPlatform) system; + inherit (hostPlatform) system; }; splice = self: super: import ./splice.nix lib self (buildPackages != null);