diff --git a/pkgs/tools/misc/calamares/default.nix b/pkgs/tools/misc/calamares/default.nix new file mode 100644 index 00000000000..d4ee1661801 --- /dev/null +++ b/pkgs/tools/misc/calamares/default.nix @@ -0,0 +1,64 @@ +{ stdenv, fetchurl, boost, cmake, extra-cmake-modules, kparts, kpmcore +, kservice, libatasmart, libxcb, libyamlcpp, parted, polkit-qt, python, qtbase +, qtquickcontrols, qtsvg, qttools, qtwebengine, utillinux, glibc, tzdata +, ckbcomp, xkeyboard_config +}: + +stdenv.mkDerivation rec { + name = "${pname}-${version}"; + pname = "calamares"; + version = "3.1.10"; + + # release including submodule + src = fetchurl { + url = "https://github.com/${pname}/${pname}/releases/download/v${version}/${name}.tar.gz"; + sha256 = "12phmirx0fgvykvkl8frv5agxqi7n04sxf5bpwjwq12mydq2x7kc"; + }; + + buildInputs = [ + boost cmake extra-cmake-modules kparts.dev kpmcore.out kservice.dev + libatasmart libxcb libyamlcpp parted polkit-qt python qtbase + qtquickcontrols qtsvg qttools qtwebengine.dev utillinux + ]; + + enableParallelBuilding = false; + + cmakeFlags = [ + "-DPYTHON_LIBRARY=${python}/lib/libpython${python.majorVersion}m.so" + "-DPYTHON_INCLUDE_DIR=${python}/include/python${python.majorVersion}m" + "-DCMAKE_VERBOSE_MAKEFILE=True" + "-DCMAKE_BUILD_TYPE=Release" + "-DWITH_PYTHONQT:BOOL=ON" + ]; + + POLKITQT-1_POLICY_FILES_INSTALL_DIR = "$(out)/share/polkit-1/actions"; + + 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 + + sed "s,\''${POLKITQT-1_POLICY_FILES_INSTALL_DIR},''${out}/share/polkit-1/actions," \ + -i CMakeLists.txt + ''; + + meta = with stdenv.lib; { + description = "Distribution-independent installer framework"; + license = licenses.gpl3; + maintainers = with stdenv.lib.maintainers; [ manveru ]; + platforms = platforms.linux; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 6e0da961637..2b50df01211 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 = libsForQt59.callPackage ../tools/misc/calamares { + python = python3; + boost = pkgs.boost.override { python = python3; }; + libyamlcpp = callPackage ../development/libraries/libyaml-cpp { inherit boost; }; + }; + capstone = callPackage ../development/libraries/capstone { }; unicorn-emu = callPackage ../development/libraries/unicorn-emu { };