From 3abcc2c514c5b7dfb926a8e7d7967b40d2bae104 Mon Sep 17 00:00:00 2001 From: Michael Fellinger Date: Fri, 8 Dec 2017 21:08:17 +0100 Subject: [PATCH] Revert "calamares: remove due to being broken and insecure." This reverts commit c677c35922b06f8861bfd97e79c3e8803e55fe0c. --- pkgs/tools/misc/calamares/default.nix | 57 +++++++++++++++++++++++++++ pkgs/top-level/all-packages.nix | 6 +++ 2 files changed, 63 insertions(+) create mode 100644 pkgs/tools/misc/calamares/default.nix diff --git a/pkgs/tools/misc/calamares/default.nix b/pkgs/tools/misc/calamares/default.nix new file mode 100644 index 00000000000..9356eb36549 --- /dev/null +++ b/pkgs/tools/misc/calamares/default.nix @@ -0,0 +1,57 @@ +{ stdenv, fetchurl, cmake, polkit-qt, libyamlcpp, python, boost, parted +, extra-cmake-modules, kconfig, ki18n, kcoreaddons, solid, utillinux, libatasmart +, ckbcomp, glibc, tzdata, xkeyboard_config, qtbase, qtsvg, qttools }: + +stdenv.mkDerivation rec { + name = "${pname}-${version}"; + pname = "calamares"; + version = "1.1.4.2"; + + # release including submodule + src = fetchurl { + url = "https://github.com/${pname}/${pname}/releases/download/v${version}/${name}.tar.gz"; + sha256 = "1mh0nmzc3i1aqcj79q2s3vpccn0mirlfbj26sfyb0v6gcrvf707d"; + }; + + buildInputs = [ + cmake qtbase qtsvg qttools libyamlcpp python boost polkit-qt parted + extra-cmake-modules kconfig ki18n kcoreaddons solid utillinux libatasmart + ]; + + cmakeFlags = [ + "-DPYTHON_LIBRARY=${python}/lib/libpython${python.majorVersion}m.so" + "-DPYTHON_INCLUDE_DIR=${python}/include/python${python.majorVersion}m" + "-DWITH_PARTITIONMANAGER=1" + ]; + + patchPhase = '' + sed -e "s,/usr/bin/calamares,$out/bin/calamares," \ + -i calamares.desktop \ + -i com.github.calamares.calamares.policy + + sed -e 's,/usr/share/zoneinfo,${tzdata}/share/zoneinfo,' \ + -i src/modules/locale/timezonewidget/localeconst.h \ + -i src/modules/locale/SetTimezoneJob.cpp + + sed -e 's,/usr/share/i18n/locales,${glibc.out}/share/i18n/locales,' \ + -i src/modules/locale/timezonewidget/localeconst.h + + sed -e 's,/usr/share/X11/xkb/rules/base.lst,${xkeyboard_config}/share/X11/xkb/rules/base.lst,' \ + -i src/modules/keyboard/keyboardwidget/keyboardglobal.h + + sed -e 's,"ckbcomp","${ckbcomp}/bin/ckbcomp",' \ + -i src/modules/keyboard/keyboardwidget/keyboardpreview.cpp + ''; + + preInstall = '' + substituteInPlace cmake_install.cmake --replace "${polkit-qt}" "$out" + ''; + + meta = with stdenv.lib; { + description = "Distribution-independent installer framework"; + license = licenses.gpl3; + maintainers = with stdenv.lib.maintainers; [ tstrobel ]; + platforms = platforms.linux; + broken = true; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 1d018f92766..b4053ab61a4 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -856,6 +856,12 @@ with pkgs; caddy = callPackage ../servers/caddy { }; traefik = callPackage ../servers/traefik { }; + calamares = qt5.callPackage ../tools/misc/calamares rec { + python = python3; + boost = pkgs.boost.override { python=python3; }; + libyamlcpp = callPackage ../development/libraries/libyaml-cpp { boost=boost; }; + }; + capstone = callPackage ../development/libraries/capstone { }; unicorn-emu = callPackage ../development/libraries/unicorn-emu { };