diff options
Diffstat (limited to 'px/packages/setup.scm')
-rw-r--r-- | px/packages/setup.scm | 271 |
1 files changed, 271 insertions, 0 deletions
diff --git a/px/packages/setup.scm b/px/packages/setup.scm new file mode 100644 index 0000000..307f0f1 --- /dev/null +++ b/px/packages/setup.scm @@ -0,0 +1,271 @@ +;;; Setup Packages Module for PantherX +;;; Author: Hamzeh Nasajpour (h.nasajpour@pantherx.org) +;;; + +(define-module (px packages setup) + #:use-module ((guix licenses) #:prefix license:) + #:use-module (guix download) + #:use-module (guix packages) + #:use-module (guix build-system cmake) + #:use-module (guix build-system python) + #:use-module (guix gexp) + #:use-module (guix utils) + #:use-module (gnu packages admin) + #:use-module (gnu packages base) + #:use-module (gnu packages boost) + #:use-module (gnu packages gettext) + #:use-module (gnu packages kde) + #:use-module (gnu packages kde-frameworks) + #:use-module (gnu packages pkg-config) + #:use-module (gnu packages polkit) + #:use-module (gnu packages qt) + #:use-module (gnu packages serialization) + #:use-module (gnu packages web) + #:use-module (gnu packages python) + #:use-module (gnu packages python-build) + #:use-module (gnu packages python-xyz) + #:use-module (gnu packages python-web) + #:use-module (gnu packages time) + #:use-module (gnu packages xorg) + #:use-module (px packages common)) + +(define-public px-first-login-welcome-screen + (package + (name "px-first-login-welcome-screen") + (version "0.0.4") + (source + (origin + (method url-fetch) + (uri (string-append "https://source.pantherx.org/" name "_"; + version + ".tgz")) + (sha256 + (base32 "1av540acbwpn7ccc790bifmndfx7kscx6y7y1nqln6cmmazvzfvn")))) + (build-system cmake-build-system) + (arguments + '(#:tests? #f ; no tests + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'patch-chpasswd-path + (lambda* (#:key inputs #:allow-other-keys) + (let ((shadow (assoc-ref inputs "shadow"))) + (substitute* "helper/px-first-login-password-helper.cpp" + (("chpasswd") + (string-append shadow "/sbin/chpasswd"))) + #t)))))) + (inputs + `(("qtbase" ,qtbase-5) + ("qtlinguist" ,qttools-5) + ("capnproto" ,capnproto-0.9) + ("polkit-qt" ,polkit-qt) + ("shadow" ,shadow))) + (propagated-inputs + `(("pkg-config" ,pkg-config))) + (home-page "https://www.pantherx.org/") + (synopsis "PantherX Setup Assistant") + (description "This package provides cli and gui applications for Setup PantherX Devices") + (license license:gpl3))) + +(define-public px-setup-assistant + (package + (name "px-setup-assistant") + (version "v0.2.4") + (source + (origin + (method url-fetch) + (uri (string-append "https://source.pantherx.org/px-setup-assistant_" + version + ".tgz")) + (sha256 + (base32 "0fkcldxrr6j3ig9b26ar7c11h9xqrrdb9cn0gj9fb63lhdv0zac5")))) + (build-system cmake-build-system) + (arguments + `(#:tests? #f + #:phases + (modify-phases %standard-phases + (add-after 'install 'set-executable + (lambda* (#:key outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + (invoke "chmod" "755" (string-append out "/bin/px-setup")) + #t)))))) + (inputs + `(("qtbase" ,qtbase-5) + ("qtlinguist" ,qttools-5) + ("rapidjson" ,rapidjson) + ("yaml-cpp" ,yaml-cpp))) + (propagated-inputs + `(("tzdata" ,tzdata))) + (home-page "https://www.pantherx.org/") + (synopsis "PantherX Setup Assistant") + (description "This package provides cli and gui applications for Setup PantherX Devices") + (license license:gpl3))) + +(define-public px-install + (package + (name "px-install") + (version "0.1.0") + (source + (origin + (method url-fetch) + (uri (string-append "https://source.pantherx.org/" name "_v" version ".tgz")) + (sha256 (base32 "132gnl6hxjm2zqf0sdcg0jy2kqd6bspcnmfnlkzf1wb9vz8kr0jm")))) + (build-system python-build-system) + (arguments + `(#:tests? #f)) + (inputs + `(("python-requests" ,python-requests) + ("python-tqdm" ,python-tqdm) + ("python-pytz" ,python-pytz) + ("python-qrcode" ,python-qrcode) + ("python-py-cpuinfo" ,python-py-cpuinfo) + ("python-urllib3" ,python-urllib3) + ("python-psutil" ,python-psutil))) + (native-inputs + `(("pkg-config" ,pkg-config))) + (home-page "https://www.pantherx.org/") + (synopsis "PantherX OS Installer") + (description "A command line driven installer with sane defaults.") + (license license:gpl3))) + + +(define-public calamares + (package + (name "calamares") + (version "3.2.61") + (source + (origin + (method url-fetch) + (uri (string-append "https://github.com/calamares/" name "/releases/download/v" version + "/" name "-" version ".tar.gz")) + (sha256 + (base32 "1lhxf4rbii8ss86ny03an1nh08dbc9admf72kmxvmg9q0yvbk4bm")))) + (build-system cmake-build-system) + (arguments + `(#:tests? #f + #:configure-flags + '("-DINSTALL_CONFIG=ON") + #:phases + (modify-phases + %standard-phases + (add-after 'unpack 'patch-source + (lambda _ + (let* ((out (assoc-ref %outputs "out")) + (zonefile (string-append (assoc-ref %build-inputs "tzdata") + "/share/zoneinfo/zone.tab")) + (xkb-file (string-append (assoc-ref %build-inputs "xkeyboard-config") + "/share/X11/xkb/rules/base.lst"))) + ;; patch polkit rules path + (substitute* "CMakeLists.txt" + (("DESTINATION \"\\$\\{POLKITQT-1_POLICY_FILES_INSTALL_DIR\\}") + "DESTINATION \"share/polkit-1/actions")) + ;; fix zone file path + (substitute* "src/libcalamares/locale/TimeZone.cpp" + (("/usr/share/zoneinfo/zone.tab") zonefile)) + ;; fix keyboard layout path + (substitute* "src/modules/keyboard/keyboardwidget/keyboardglobal.cpp" + (("/usr/share/X11/xkb/rules/base.lst") xkb-file)) + ;; settings.conf preparations + (call-with-output-file "settings.conf" + (lambda (port) + (format port "--- +modules-search: [ local ] +sequence: +- show: + - welcome + - locale + - keyboard + - summary +- show: + - finished +branding: default +prompt-install: false +dont-chroot: false +oem-setup: false +disable-cancel: false +disable-cancel-during-exec: false +hide-back-and-next-during-exec: false +quit-at-end: false\n"))) + #t)))))) + (native-inputs + (list boost + extra-cmake-modules + pkg-config)) + (inputs + (list + kcrash + kcoreaddons + kdbusaddons + kparts + kservice + kwidgetsaddons + polkit-qt + python + python-jsonschema + python-pyyaml + qtbase-5 + qtdeclarative-5 + qtquickcontrols-5 + qtquickcontrols2-5 + qtsvg-5 + qttools-5 + tzdata + xkeyboard-config + yaml-cpp)) + (propagated-inputs (list python)) + (home-page "https://calamares.io") + (synopsis " Distribution-independent installer framework ") + (description "Calamares is a distribution-independent system installer, +with an advanced partitioning feature for both manual and automated partitioning +operations. Calamares is designed to be customizable by distribution maintainers +without need for cumbersome patching, thanks to third party branding and external +modules support.") + (license license:gpl3))) + + +(define-public px-install-gui + (package + (inherit calamares) + (name "px-install-gui") + (version "3.2.61-b1") + (source + (origin + (method url-fetch) + (uri (string-append "https://source.pantherx.org/" name "_v" version ".tgz")) + (sha256 (base32 "1vdylrdkbvfq03i8rbzkamrjvg497j8zqlqwhvdkywqpazwgp8r9")))) + (arguments + (substitute-keyword-arguments (package-arguments calamares) + ((#:phases phases) + #~(modify-phases #$phases + (add-after 'patch-source 'setup-installer + (lambda _ + (call-with-output-file "settings.conf" + (lambda (port) + (format port "--- +modules-search: [ local ] +sequence: +- show: + - welcome + - locale + - packagechooser + - users + - summary +- exec: + - px-install +- show: + - finished +branding: default +prompt-install: false +dont-chroot: false +oem-setup: false +disable-cancel: false +disable-cancel-during-exec: false +hide-back-and-next-during-exec: false +quit-at-end: false\n"))))))))) + (propagated-inputs + (list python + python-requests + python-tqdm + python-pytz + python-qrcode + python-py-cpuinfo + python-urllib3)))) |