diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix index 0abe185ebac..8a5b2cede46 100644 --- a/maintainers/maintainer-list.nix +++ b/maintainers/maintainer-list.nix @@ -2190,7 +2190,7 @@ name = "Nathaniel Baxter"; }; lightdiscord = { - email = "arnaud@lightdiscord.me"; + email = "root@arnaud.sh"; github = "lightdiscord"; name = "Arnaud Pascal"; }; diff --git a/nixos/modules/services/misc/docker-registry.nix b/nixos/modules/services/misc/docker-registry.nix index 08031d33c13..9a3966ab30a 100644 --- a/nixos/modules/services/misc/docker-registry.nix +++ b/nixos/modules/services/misc/docker-registry.nix @@ -5,6 +5,43 @@ with lib; let cfg = config.services.dockerRegistry; + blobCache = if cfg.enableRedisCache + then "redis" + else "inmemory"; + + registryConfig = { + version = "0.1"; + log.fields.service = "registry"; + storage = { + cache.blobdescriptor = blobCache; + filesystem.rootdirectory = cfg.storagePath; + delete.enabled = cfg.enableDelete; + }; + http = { + addr = ":${builtins.toString cfg.port}"; + headers.X-Content-Type-Options = ["nosniff"]; + }; + health.storagedriver = { + enabled = true; + interval = "10s"; + threshold = 3; + }; + }; + + registryConfig.redis = mkIf cfg.enableRedisCache { + addr = "${cfg.redisUrl}"; + password = "${cfg.redisPassword}"; + db = 0; + dialtimeout = "10ms"; + readtimeout = "10ms"; + writetimeout = "10ms"; + pool = { + maxidle = 16; + maxactive = 64; + idletimeout = "300s"; + }; + }; + configFile = pkgs.writeText "docker-registry-config.yml" (builtins.toJSON (recursiveUpdate registryConfig cfg.extraConfig)); in { diff --git a/nixos/release.nix b/nixos/release.nix index 007859259b1..649517130e0 100644 --- a/nixos/release.nix +++ b/nixos/release.nix @@ -277,6 +277,7 @@ in rec { tests.docker-tools = callTestOnMatchingSystems ["x86_64-linux"] tests/docker-tools.nix {}; tests.docker-tools-overlay = callTestOnMatchingSystems ["x86_64-linux"] tests/docker-tools-overlay.nix {}; tests.docker-edge = callTestOnMatchingSystems ["x86_64-linux"] tests/docker-edge.nix {}; + tests.docker-registry = callTest tests/docker-registry.nix {}; tests.dovecot = callTest tests/dovecot.nix {}; tests.dnscrypt-proxy = callTestOnMatchingSystems ["x86_64-linux"] tests/dnscrypt-proxy.nix {}; tests.ecryptfs = callTest tests/ecryptfs.nix {}; diff --git a/pkgs/applications/editors/emacs-modes/melpa-packages.nix b/pkgs/applications/editors/emacs-modes/melpa-packages.nix index 56b17a865df..a420c542556 100644 --- a/pkgs/applications/editors/emacs-modes/melpa-packages.nix +++ b/pkgs/applications/editors/emacs-modes/melpa-packages.nix @@ -52,19 +52,9 @@ self: # part of a larger package caml = dontConfigure super.caml; - # part of a larger package - # upstream issue: missing package version - cmake-mode = markBroken (dontConfigure super.cmake-mode); - # Expects bash to be at /bin/bash company-rtags = markBroken super.company-rtags; - # upstream issue: missing file header - connection = markBroken super.connection; - - # upstream issue: missing file header - dictionary = markBroken super.dictionary; - easy-kill-extras = super.easy-kill-extras.override { inherit (self.melpaPackages) easy-kill; }; @@ -79,6 +69,17 @@ self: inherit (self.melpaPackages) ess ctable popup; }; + evil-magit = super.evil-magit.overrideAttrs (attrs: { + # searches for Git at build time + nativeBuildInputs = + (attrs.nativeBuildInputs or []) ++ [ external.git ]; + }); + + # missing dependencies + evil-search-highlight-persist = super.evil-search-highlight-persist.overrideAttrs (attrs: { + packageRequires = with self; [ evil highlight ]; + }); + # missing OCaml flycheck-ocaml = markBroken super.flycheck-ocaml; @@ -108,15 +109,17 @@ self: # upstream issue: missing file header initsplit = super.initsplit; + # tries to write a log file to $HOME + insert-shebang = super.insert-shebang.overrideAttrs (attrs: { + HOME = "/tmp"; + }); + # Expects bash to be at /bin/bash ivy-rtags = markBroken super.ivy-rtags; # upstream issue: missing file header jsfmt = markBroken super.jsfmt; - # upstream issue: missing file header - link = markBroken super.link; - # upstream issue: missing file header maxframe = markBroken super.maxframe; @@ -131,6 +134,18 @@ self: (attrs.nativeBuildInputs or []) ++ [ external.git ]; }); + magit-annex = super.magit-annex.overrideAttrs (attrs: { + # searches for Git at build time + nativeBuildInputs = + (attrs.nativeBuildInputs or []) ++ [ external.git ]; + }); + + magit-gitflow = super.magit-gitflow.overrideAttrs (attrs: { + # searches for Git at build time + nativeBuildInputs = + (attrs.nativeBuildInputs or []) ++ [ external.git ]; + }); + # missing OCaml merlin = markBroken super.merlin; @@ -154,8 +169,10 @@ self: (attrs.nativeBuildInputs or []) ++ [ external.git ]; })); - # upstream issue: truncated file - powershell = markBroken super.powershell; + # tries to write to $HOME + php-auto-yasnippets = super.php-auto-yasnippets.overrideAttrs (attrs: { + HOME = "/tmp"; + }); # upstream issue: mismatched filename processing-snippets = markBroken super.processing-snippets; diff --git a/pkgs/applications/networking/browsers/jumanji/default.nix b/pkgs/applications/networking/browsers/jumanji/default.nix deleted file mode 100644 index 26a7e883c60..00000000000 --- a/pkgs/applications/networking/browsers/jumanji/default.nix +++ /dev/null @@ -1,31 +0,0 @@ -{ stdenv, fetchgit, pkgconfig, girara, gtk, webkitgtk, glib-networking, makeWrapper -, gsettings-desktop-schemas }: - -stdenv.mkDerivation rec { - name = "jumanji-${version}"; - version = "20150107"; - - src = fetchgit { - url = https://git.pwmt.org/pwmt/jumanji.git; - rev = "f8e04e5b5a9fec47d49ca63a096e5d35be281151"; - sha256 = "1dsbyz489fx7dp07i29q1rjkl7nhrfscc8ks8an2rdyhx3457asg"; - }; - - nativeBuildInputs = [ pkgconfig ]; - buildInputs = [ girara gtk webkitgtk makeWrapper gsettings-desktop-schemas ]; - - makeFlags = [ "PREFIX=$(out)" ]; - - preFixup='' - wrapProgram "$out/bin/jumanji" \ - --prefix GIO_EXTRA_MODULES : "${glib-networking.out}/lib/gio/modules" \ - --prefix XDG_DATA_DIRS : "$GSETTINGS_SCHEMAS_PATH" - ''; - - meta = with stdenv.lib; { - description = "Minimal web browser"; - homepage = https://pwmt.org/projects/jumanji/; - platforms = platforms.all; - maintainers = [ maintainers.koral ]; - }; -} diff --git a/pkgs/development/interpreters/duktape/default.nix b/pkgs/development/interpreters/duktape/default.nix index 46550c83510..2178f859007 100644 --- a/pkgs/development/interpreters/duktape/default.nix +++ b/pkgs/development/interpreters/duktape/default.nix @@ -2,10 +2,10 @@ stdenv.mkDerivation rec { name = "duktape-${version}"; - version = "2.2.1"; + version = "2.3.0"; src = fetchurl { url = "http://duktape.org/duktape-${version}.tar.xz"; - sha256 = "1wp7mpkhizknq72ivdbkzps4radi1daqzjcjp1i54c2k4pnjxgis"; + sha256 = "1s5g8lg0dga6x3rcq328a6hsd2sk2vzwq9zfmskjh5h6n8x2yvpd"; }; buildPhase = '' diff --git a/pkgs/development/libraries/agda/agda-stdlib/default.nix b/pkgs/development/libraries/agda/agda-stdlib/default.nix index 331039ec329..bd4270e8b93 100644 --- a/pkgs/development/libraries/agda/agda-stdlib/default.nix +++ b/pkgs/development/libraries/agda/agda-stdlib/default.nix @@ -1,14 +1,14 @@ { stdenv, agda, fetchFromGitHub, ghcWithPackages }: agda.mkDerivation (self: rec { - version = "0.15"; + version = "0.16"; name = "agda-stdlib-${version}"; src = fetchFromGitHub { repo = "agda-stdlib"; owner = "agda"; rev = "v${version}"; - sha256 = "0c2vfib4fmljy98c3s3s7jmpjlqxvsbv7wf6qxr38kamwzbryrjj"; + sha256 = "0kqfx6742vbyyr8glqm5bkvj0z0y0dkaajlw10p3pzidrc17767r"; }; nativeBuildInputs = [ (ghcWithPackages (self : [ self.filemanip ])) ]; diff --git a/pkgs/development/libraries/keybinder/default.nix b/pkgs/development/libraries/keybinder/default.nix index 5110908e0f2..20ab104874d 100644 --- a/pkgs/development/libraries/keybinder/default.nix +++ b/pkgs/development/libraries/keybinder/default.nix @@ -1,9 +1,9 @@ { stdenv, fetchurl, autoconf, automake, libtool, pkgconfig, gnome3 -, gtk-doc, gtk2, python2Packages, lua, libX11, libXext, libXrender, gobjectIntrospection +, gtk-doc, gtk2, python2Packages, lua, gobjectIntrospection }: let - inherit (python2Packages) python pygobject3 pygtk; + inherit (python2Packages) python pygtk; in stdenv.mkDerivation rec { name = "keybinder-${version}"; version = "0.3.0"; @@ -16,8 +16,8 @@ in stdenv.mkDerivation rec { nativeBuildInputs = [ pkgconfig ]; buildInputs = [ - autoconf automake libtool gnome3.gnome-common gtk-doc gnome3.gtk3 - python pygobject3 pygtk lua libX11 libXext libXrender gobjectIntrospection gtk2 + autoconf automake libtool gnome3.gnome-common gtk-doc gtk2 + python pygtk lua gobjectIntrospection ]; preConfigure = '' diff --git a/pkgs/misc/tmux-plugins/default.nix b/pkgs/misc/tmux-plugins/default.nix index 6d8a5a40c16..fc587d950c1 100644 --- a/pkgs/misc/tmux-plugins/default.nix +++ b/pkgs/misc/tmux-plugins/default.nix @@ -3,13 +3,14 @@ let rtpPath = "share/tmux-plugins"; - addRtp = path: pluginName: attrs: derivation: - derivation // { rtp = "${derivation}/${path}/${builtins.replaceStrings ["-"] ["_"] pluginName}.tmux"; } // { + addRtp = path: rtpFilePath: attrs: derivation: + derivation // { rtp = "${derivation}/${path}/${rtpFilePath}"; } // { overrideAttrs = f: buildTmuxPlugin (attrs // f attrs); }; buildTmuxPlugin = a@{ pluginName, + rtpFilePath ? (builtins.replaceStrings ["-"] ["_"] pluginName) + ".tmux", namePrefix ? "tmuxplugin-", src, unpackPhase ? "", @@ -22,7 +23,7 @@ let dependencies ? [], ... }: - addRtp "${rtpPath}/${path}" pluginName a (stdenv.mkDerivation (a // { + addRtp "${rtpPath}/${path}" rtpFilePath a (stdenv.mkDerivation (a // { name = namePrefix + pluginName; inherit pluginName unpackPhase configurePhase buildPhase addonInfo preInstall postInstall; @@ -102,6 +103,7 @@ in rec { fzf-tmux-url = buildTmuxPluginFrom2Nix { pluginName = "fzf-tmux-url"; + rtpFilePath = "fzf-url.tmux"; src = fetchgit { url = "https://github.com/wfxr/tmux-fzf-url"; rev = "ecd518eec1067234598c01e655b048ff9d06ef2f"; diff --git a/pkgs/os-specific/linux/firmware/raspberrypi-wireless/default.nix b/pkgs/os-specific/linux/firmware/raspberrypi-wireless/default.nix index 0918279cc9a..eb5b0bd294c 100644 --- a/pkgs/os-specific/linux/firmware/raspberrypi-wireless/default.nix +++ b/pkgs/os-specific/linux/firmware/raspberrypi-wireless/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchurl }: +{ stdenv, fetchurl, dpkg }: stdenv.mkDerivation rec { name = "raspberrypi-wireless-firmware-${version}"; @@ -20,11 +20,12 @@ stdenv.mkDerivation rec { # Firmware blobs do not need fixing and should not be modified dontFixup = true; + # Unpack the debian package + nativeBuildInputs = [ dpkg ]; unpackCmd = '' if ! [[ "$curSrc" =~ \.deb$ ]]; then return 1; fi - ar -xf "$curSrc" - tar -xf data.tar.xz + dpkg -x "$curSrc" . ''; installPhase = '' @@ -39,6 +40,10 @@ stdenv.mkDerivation rec { cp broadcom/*.hcd "$out/lib/firmware/brcm" ''; + outputHashMode = "recursive"; + outputHashAlgo = "sha256"; + outputHash = "1gwzasl5w5nc0awqv3w2081ns63wd1yds0xh0dg95dc6brnqhhf8"; + meta = with stdenv.lib; { description = "Firmware for builtin Wifi/Bluetooth devices in the Raspberry Pi 3 and Zero W"; homepage = https://archive.raspberrypi.org/debian/pool/main/f/firmware-nonfree/; diff --git a/pkgs/os-specific/linux/kernel/linux-4.14.nix b/pkgs/os-specific/linux/kernel/linux-4.14.nix index d8040fbf3bf..9c9957d2193 100644 --- a/pkgs/os-specific/linux/kernel/linux-4.14.nix +++ b/pkgs/os-specific/linux/kernel/linux-4.14.nix @@ -3,7 +3,7 @@ with stdenv.lib; buildLinux (args // rec { - version = "4.14.60"; + version = "4.14.61"; # modDirVersion needs to be x.y.z, will automatically add .0 if needed modDirVersion = if (modDirVersionArg == null) then concatStrings (intersperse "." (take 3 (splitString "." "${version}.0"))) else modDirVersionArg; @@ -13,6 +13,6 @@ buildLinux (args // rec { src = fetchurl { url = "mirror://kernel/linux/kernel/v4.x/linux-${version}.tar.xz"; - sha256 = "15djfcl4m388vm3wkfa6yx0sglyp8zh04s7m7xa1ybmsiwjl7qbc"; + sha256 = "1s3h3js073h4ww2dryip91d2lvmgv439ly2vya9x7rvilwhwa3hd"; }; } // (args.argsOverride or {})) diff --git a/pkgs/os-specific/linux/kernel/linux-4.17.nix b/pkgs/os-specific/linux/kernel/linux-4.17.nix index 6004577fad6..b98cf98904e 100644 --- a/pkgs/os-specific/linux/kernel/linux-4.17.nix +++ b/pkgs/os-specific/linux/kernel/linux-4.17.nix @@ -3,7 +3,7 @@ with stdenv.lib; buildLinux (args // rec { - version = "4.17.12"; + version = "4.17.13"; # modDirVersion needs to be x.y.z, will automatically add .0 if needed modDirVersion = if (modDirVersionArg == null) then concatStrings (intersperse "." (take 3 (splitString "." "${version}.0"))) else modDirVersionArg; @@ -13,6 +13,6 @@ buildLinux (args // rec { src = fetchurl { url = "mirror://kernel/linux/kernel/v4.x/linux-${version}.tar.xz"; - sha256 = "18xmkj1bmfrmvx6p8cl5l7pyv0zk5y3mxhyfnlzqwkxnvkjf5660"; + sha256 = "0x1zas3jwvhjkifh20cwpd2g0glgr8m7h8lqng7awrd116xkw2w2"; }; } // (args.argsOverride or {})) diff --git a/pkgs/os-specific/linux/kernel/linux-4.4.nix b/pkgs/os-specific/linux/kernel/linux-4.4.nix index 8bb2d53da9e..60a4d5a76ed 100644 --- a/pkgs/os-specific/linux/kernel/linux-4.4.nix +++ b/pkgs/os-specific/linux/kernel/linux-4.4.nix @@ -1,11 +1,11 @@ { stdenv, buildPackages, hostPlatform, fetchurl, perl, buildLinux, ... } @ args: buildLinux (args // rec { - version = "4.4.145"; + version = "4.4.146"; extraMeta.branch = "4.4"; src = fetchurl { url = "mirror://kernel/linux/kernel/v4.x/linux-${version}.tar.xz"; - sha256 = "1max0d1b1y1ndrfprrcyb7c9y12pkx2whxzlr70qypcb5jz0v7ff"; + sha256 = "1xbxw6yvbjam0xj8j44h730dpf5v94pcf9j7iivcmasgjp61120z"; }; } // (args.argsOverride or {})) diff --git a/pkgs/os-specific/linux/kernel/linux-4.9.nix b/pkgs/os-specific/linux/kernel/linux-4.9.nix index 231e24be911..1863aadf8f1 100644 --- a/pkgs/os-specific/linux/kernel/linux-4.9.nix +++ b/pkgs/os-specific/linux/kernel/linux-4.9.nix @@ -1,11 +1,11 @@ { stdenv, buildPackages, hostPlatform, fetchurl, perl, buildLinux, ... } @ args: buildLinux (args // rec { - version = "4.9.117"; + version = "4.9.118"; extraMeta.branch = "4.9"; src = fetchurl { url = "mirror://kernel/linux/kernel/v4.x/linux-${version}.tar.xz"; - sha256 = "1c3r0a4fchg358zff2ww8kw789kah3bhr750p9qlsy65d8rflcl2"; + sha256 = "0myx79rmxgjbr87r815vybmbg6iqgd3nycildrpwsh301kj8kxvx"; }; } // (args.argsOverride or {})) diff --git a/pkgs/os-specific/linux/kernel/linux-testing.nix b/pkgs/os-specific/linux/kernel/linux-testing.nix index ec4d9c29dbc..ec3baaf1e0a 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, hostPlatform, fetchurl, perl, buildLinux, libelf, utillinux, ... } @ args: buildLinux (args // rec { - version = "4.18-rc7"; - modDirVersion = "4.18.0-rc7"; + version = "4.18-rc8"; + modDirVersion = "4.18.0-rc8"; extraMeta.branch = "4.18"; src = fetchurl { url = "https://git.kernel.org/torvalds/t/linux-${version}.tar.gz"; - sha256 = "005kk7rxawkka60y31a5aiqrq3w6i1k27b5n2lcq63agjcxh54rq"; + sha256 = "0rqyqms63c15iwcwy40yqd9fvlvh3ah09gddv0wf45z9dqp7id1m"; }; # Should the testing kernels ever be built on Hydra? diff --git a/pkgs/os-specific/linux/kernel/patches.nix b/pkgs/os-specific/linux/kernel/patches.nix index 1a365046f5f..143671428c4 100644 --- a/pkgs/os-specific/linux/kernel/patches.nix +++ b/pkgs/os-specific/linux/kernel/patches.nix @@ -48,17 +48,6 @@ rec { }; }; - # https://patchwork.kernel.org/patch/9626797/ - # Should be included in 4.17, so this patch can be dropped when 4.16 becomes obsolete. - bcm2835_mmal_v4l2_camera_driver = rec { - name = "bcm2835_mmal_v4l2_camera_driver"; - patch = fetchpatch { - name = name + ".patch"; - url = https://patchwork.kernel.org/patch/9626797/raw/; - sha256 = "0iwb0yxsf95zv4qxkvlvhqfmzx0rk13g9clvxsharvwkb4w5lwa0"; - }; - }; - # https://github.com/NixOS/nixpkgs/issues/42755 xen-netfront_fix_mismatched_rtnl_unlock = rec { name = "xen-netfront_fix_mismatched_rtnl_unlock"; diff --git a/pkgs/servers/matterbridge/default.nix b/pkgs/servers/matterbridge/default.nix index 14662ff6cc2..9e5a9ffe780 100644 --- a/pkgs/servers/matterbridge/default.nix +++ b/pkgs/servers/matterbridge/default.nix @@ -2,13 +2,13 @@ buildGoPackage rec { name = "matterbridge-${version}"; - version = "1.7.1"; + version = "1.11.0"; goPackagePath = "github.com/42wim/matterbridge"; src = fetchurl { url = "https://github.com/42wim/matterbridge/archive/v${version}.tar.gz"; - sha256 = "0ajc7xswmwhc2xn937sv3b76s8hblfn9x9rj5825hi3d3s8zqq88"; + sha256 = "1fjpgdaq4mfgf36gzk3hhmlbpfn44b7xll2rdpy69y460jrjfg6k"; }; meta = with stdenv.lib; { diff --git a/pkgs/tools/package-management/appimagekit/default.nix b/pkgs/tools/package-management/appimagekit/default.nix new file mode 100644 index 00000000000..2c389c144b1 --- /dev/null +++ b/pkgs/tools/package-management/appimagekit/default.nix @@ -0,0 +1,112 @@ +{ stdenv, fetchFromGitHub +, pkgconfig, cmake, autoconf, automake, libtool +, wget, xxd, desktop-file-utils +, glib, zlib, cairo, openssl, fuse, xz, squashfuse, inotify-tools, libarchive +, squashfsTools +, gtest +}: + +let + + appimagekit_src = fetchFromGitHub { + owner = "AppImage"; + repo = "AppImageKit"; + rev = "b0859501df61cde198b54a317c03b41dbafc98b1"; + sha256 = "0qqg79jw9w9rs8c2w3lla4kz62ihafrf7jm370pp1dl8y2i81jzg"; + }; + + # squashfuse adapted to nix from cmake experession in "${appimagekit_src}/cmake/dependencies.cmake" + appimagekit_squashfuse = squashfuse.overrideAttrs (attrs: rec { + name = "squashfuse-${version}"; + version = "20161009"; + + src = fetchFromGitHub { + owner = "vasi"; + repo = "squashfuse"; + rev = "1f980303b89c779eabfd0a0fdd36d6a7a311bf92"; + sha256 = "0lrw9ff8k15l34wjwyllw3i35hl0cms97jj2hpnr2q8ipgxpb5q5"; + }; + + patches = [ + "${appimagekit_src}/squashfuse.patch" + "${appimagekit_src}/squashfuse_dlopen.patch" + ]; + + postPatch = '' + cp -v ${appimagekit_src}/squashfuse_dlopen.[hc] . + ''; + + preConfigure = '' + sed -i "/PKG_CHECK_MODULES.*/,/,:./d" configure + sed -i "s/typedef off_t sqfs_off_t/typedef int64_t sqfs_off_t/g" common.h + ''; + + configureFlags = [ + "--disable-demo" "--disable-high-level" "--without-lzo" "--without-lz4" + ]; + + postConfigure = '' + sed -i "s|XZ_LIBS = -llzma |XZ_LIBS = -Bstatic -llzma/|g" Makefile + ''; + + # only static libs and header files + installPhase = '' + mkdir -p $out/lib $out/include + cp -v ./.libs/*.a $out/lib + cp -v ./*.h $out/include + ''; + }); + +in stdenv.mkDerivation rec { + name = "appimagekit-20180727"; + + src = appimagekit_src; + + patches = [ ./nix.patch ]; + + nativeBuildInputs = [ + pkgconfig cmake autoconf automake libtool wget xxd + desktop-file-utils + ]; + + buildInputs = [ + glib zlib cairo openssl fuse + xz inotify-tools libarchive + squashfsTools + ]; + + preConfigure = '' + export HOME=$(pwd) + ''; + + cmakeFlags = [ + "-DUSE_SYSTEM_XZ=ON" + "-DUSE_SYSTEM_SQUASHFUSE=ON" + "-DSQUASHFUSE=${appimagekit_squashfuse}" + "-DUSE_SYSTEM_INOTIFY_TOOLS=ON" + "-DUSE_SYSTEM_LIBARCHIVE=ON" + "-DUSE_SYSTEM_GTEST=ON" + "-DUSE_SYSTEM_MKSQUASHFS=ON" + "-DBUILD_TESTING=${if doCheck then "ON" else "OFF"}" + ]; + + checkInputs = [ gtest ]; + doCheck = false; # fails 1 out of 4 tests, I'm too lazy to debug why + + # for debugging + passthru = { + squashfuse = appimagekit_squashfuse; + }; + + meta = with stdenv.lib; { + description = "A tool to package desktop applications as AppImages"; + longDescription = '' + AppImageKit is an implementation of the AppImage format that + provides tools such as appimagetool and appimaged for handling + AppImages. + ''; + license = licenses.mit; + homepage = src.meta.homepage; + platforms = platforms.linux; + }; +} diff --git a/pkgs/tools/package-management/appimagekit/nix.patch b/pkgs/tools/package-management/appimagekit/nix.patch new file mode 100644 index 00000000000..9725cef5ba7 --- /dev/null +++ b/pkgs/tools/package-management/appimagekit/nix.patch @@ -0,0 +1,174 @@ +diff --git a/cmake/dependencies.cmake b/cmake/dependencies.cmake +index ea133a3..916606c 100644 +--- a/cmake/dependencies.cmake ++++ b/cmake/dependencies.cmake +@@ -224,21 +224,23 @@ if(NOT USE_SYSTEM_XZ) + LIBRARY_DIRS /lib/ + LIBRARIES "/lib/liblzma.a" + INCLUDE_DIRS "/src/liblzma/api/" + ) + else() + message(STATUS "Using system xz") + + import_pkgconfig_target(TARGET_NAME xz PKGCONFIG_TARGET liblzma STATIC) + endif() + ++set(USE_SYSTEM_SQUASHFUSE OFF CACHE BOOL "Use system squashfuse instead of building our own") + ++if(NOT USE_SYSTEM_SQUASHFUSE) + # as distros don't provide suitable squashfuse and squashfs-tools, those dependencies are bundled in, can, and should + # be used from this repository + # TODO: implement out-of-source builds for squashfuse, as for the other dependencies + configure_file( + ${CMAKE_CURRENT_SOURCE_DIR}/src/patch-squashfuse.sh.in + ${CMAKE_CURRENT_BINARY_DIR}/patch-squashfuse.sh + @ONLY + ) + + ExternalProject_Add(squashfuse-EXTERNAL +@@ -259,20 +261,34 @@ ExternalProject_Add(squashfuse-EXTERNAL + BUILD_IN_SOURCE ON + INSTALL_COMMAND ${MAKE} install + ) + + import_external_project( + TARGET_NAME squashfuse + EXT_PROJECT_NAME squashfuse-EXTERNAL + LIBRARIES "/.libs/libsquashfuse.a;/.libs/libsquashfuse_ll.a;/.libs/libfuseprivate.a" + INCLUDE_DIRS "" + ) ++else() ++ message(STATUS "Using system squashfsfuse from ${SQUASHFUSE}") ++ ++ add_library(squashfuse INTERFACE IMPORTED GLOBAL) ++ ++ set(squashfuse_INCLUDE_DIRS "${SQUASHFUSE}/include") ++ set(squashfuse_LIBRARIES "${SQUASHFUSE}/lib/libsquashfuse.a;${SQUASHFUSE}/lib/libsquashfuse_ll.a;${SQUASHFUSE}/lib/libfuseprivate.a") ++ ++ set_property( ++ TARGET squashfuse ++ PROPERTY INTERFACE_LINK_LIBRARIES ${squashfuse_LIBRARIES} ++ ) ++ include_directories(${squashfuse_INCLUDE_DIRS}) ++endif() + + + set(USE_SYSTEM_INOTIFY_TOOLS OFF CACHE BOOL "Use system libinotifytools instead of building our own") + + if(NOT USE_SYSTEM_INOTIFY_TOOLS) + message(STATUS "Downloading and building inotify-tools") + + # TODO: build out of source + ExternalProject_Add(inotify-tools-EXTERNAL + URL https://github.com/downloads/rvoicilas/inotify-tools/inotify-tools-3.14.tar.gz +@@ -345,20 +361,23 @@ if(NOT USE_SYSTEM_GTEST) + INCLUDE_DIRS "/include/" + ) + else() + message(STATUS "Using system GTest") + + import_find_pkg_target(gtest GTest GTEST) + endif() + endif() + + ++set(USE_SYSTEM_MKSQUASHFS OFF CACHE BOOL "Use system mksquashfs instead of downloading and building our own") ++ ++if(NOT USE_SYSTEM_MKSQUASHFS) + # TODO: allow using system wide mksquashfs + set(mksquashfs_cflags "-DXZ_SUPPORT ${CFLAGS}") + + if(xz_LIBRARIES MATCHES "\\.a$") + set(mksquashfs_ldflags "${xz_LIBRARIES}") + else() + set(mksquashfs_ldflags "-l${xz_LIBRARIES}") + endif() + + if(xz_INCLUDE_DIRS) +@@ -385,20 +404,25 @@ ExternalProject_Add(mksquashfs + INSTALL_COMMAND ${MAKE} -C squashfs-tools/ install INSTALL_DIR= + ) + + ExternalProject_Get_Property(mksquashfs INSTALL_DIR) + set(mksquashfs_INSTALL_DIR "${INSTALL_DIR}") + mark_as_advanced(mksquashfs_INSTALL_DIR) + + # for later use when packaging as an AppImage + set(mksquashfs_BINARY "${mksquashfs_INSTALL_DIR}/mksquashfs") + mark_as_advanced(mksquashfs_BINARY) ++else() ++ message(STATUS "Using system mksquashfs") ++ ++ set(mksquashfs_BINARY "mksquashfs") ++endif() + + + #### build dependency configuration #### + + # only have to build custom xz when not using system libxz + if(TARGET xz-EXTERNAL) + if(TARGET squashfuse-EXTERNAL) + ExternalProject_Add_StepDependencies(squashfuse-EXTERNAL configure xz-EXTERNAL) + endif() + if(TARGET mksquashfs) +diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt +index 3f25442..974ed0e 100644 +--- a/src/CMakeLists.txt ++++ b/src/CMakeLists.txt +@@ -197,27 +197,27 @@ target_include_directories(digest_md5 + + target_link_libraries(digest_md5 + PRIVATE + libglib + ) + + + # install binaries + if(AUXILIARY_FILES_DESTINATION) + install( +- PROGRAMS ${mksquashfs_INSTALL_DIR}/mksquashfs ${CMAKE_CURRENT_BINARY_DIR}/runtime ++ PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/runtime + DESTINATION ${AUXILIARY_FILES_DESTINATION} + COMPONENT applications + ) + else() + install( +- PROGRAMS ${mksquashfs_INSTALL_DIR}/mksquashfs ${CMAKE_CURRENT_BINARY_DIR}/runtime ++ PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/runtime + DESTINATION bin + COMPONENT applications + ) + endif() + + install( + TARGETS AppRun appimagetool digest validate + RUNTIME DESTINATION bin COMPONENT applications + LIBRARY DESTINATION lib COMPONENT applications + ARCHIVE DESTINATION lib/static COMPONENT applications +diff --git a/src/shared.c b/src/shared.c +index cf5fd5c..4f48dbc 100644 +--- a/src/shared.c ++++ b/src/shared.c +@@ -34,21 +34,21 @@ + #include + #include + #include + #include + + #include + #include + #include + #include + +-#include "squashfuse.h" ++#include + #include + #include "getsection.h" + #include "elf.h" + + #include "xdg-basedir.h" + + // own header + #include "shared.h" + + #if HAVE_LIBARCHIVE3 == 1 // CentOS diff --git a/pkgs/tools/security/b2sum/default.nix b/pkgs/tools/security/b2sum/default.nix new file mode 100644 index 00000000000..1679b7fddd0 --- /dev/null +++ b/pkgs/tools/security/b2sum/default.nix @@ -0,0 +1,28 @@ +{ stdenv, fetchzip, openmp ? null }: + +with stdenv.lib; + +stdenv.mkDerivation rec { + name = "b2sum-${version}"; + version = "unstable-2018-06-11"; + + src = fetchzip { + url = "https://github.com/BLAKE2/BLAKE2/archive/320c325437539ae91091ce62efec1913cd8093c2.tar.gz"; + sha256 = "0agmc515avdpr64bsgv87wby2idm0d3wbndxzkhdfjgzhgv0rb8k"; + }; + + sourceRoot = "source/b2sum"; + + buildInputs = [ openmp ]; + + buildFlags = [ (optional (isNull openmp) "NO_OPENMP=1") ]; + installFlags = [ "PREFIX=$(out)" ]; + + meta = { + description = "The b2sum utility is similar to the md5sum or shasum utilities but for BLAKE2"; + homepage = "https://blake2.net"; + license = with licenses; [ asl20 cc0 openssl ]; + maintainers = with maintainers; [ kirelagin ]; + platforms = platforms.all; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 9236a92537a..88b1920afaf 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -508,6 +508,8 @@ with pkgs; appimage-run = callPackage ../tools/package-management/appimage-run {}; + appimagekit = callPackage ../tools/package-management/appimagekit {}; + apt-cacher-ng = callPackage ../servers/http/apt-cacher-ng { }; apt-offline = callPackage ../tools/misc/apt-offline { }; @@ -1581,6 +1583,10 @@ with pkgs; asynk = callPackage ../tools/networking/asynk { }; + b2sum = callPackage ../tools/security/b2sum { + inherit (llvmPackages) openmp; + }; + bacula = callPackage ../tools/backup/bacula { }; bareos = callPackage ../tools/backup/bareos { }; @@ -13837,7 +13843,6 @@ with pkgs; # when adding a new linux version # kernelPatches.cpu-cgroup-v2."4.11" kernelPatches.modinst_arg_list_too_long - kernelPatches.bcm2835_mmal_v4l2_camera_driver # Only needed for 4.16! ]; }; @@ -16908,11 +16913,6 @@ with pkgs; jbrout = callPackage ../applications/graphics/jbrout { }; - jumanji = callPackage ../applications/networking/browsers/jumanji { - webkitgtk = webkitgtk24x-gtk3; - gtk = gtk3; - }; - jwm = callPackage ../applications/window-managers/jwm { }; k3d = callPackage ../applications/graphics/k3d {