(define-module (bolt-launcher) #:use-module ((guix licenses) #:prefix license:) #:use-module (guix gexp) #:use-module (guix packages) #:use-module (guix download) #:use-module (guix git-download) #:use-module (guix utils) #:use-module (gnu packages) #:use-module (gnu packages admin) #:use-module (gnu packages algebra) #:use-module (gnu packages assembly) #:use-module (gnu packages astronomy) #:use-module (gnu packages audio) #:use-module (gnu packages avahi) #:use-module (gnu packages autotools) #:use-module (gnu packages base) #:use-module (gnu packages backup) #:use-module (gnu packages bash) #:use-module (gnu packages boost) #:use-module (gnu packages check) #:use-module (gnu packages chromium) #:use-module (gnu packages commencement) #:use-module (gnu packages cmake) #:use-module (gnu packages compression) #:use-module (gnu packages curl) #:use-module (gnu packages databases) #:use-module (gnu packages documentation) #:use-module (gnu packages engineering) #:use-module (gnu packages fltk) #:use-module (gnu packages freedesktop) #:use-module (gnu packages gcc) #:use-module (gnu packages gd) #:use-module (gnu packages geo) #:use-module (gnu packages gettext) #:use-module (gnu packages ghostscript) #:use-module (gnu packages gl) #:use-module (gnu packages glib) #:use-module (gnu packages gnome) #:use-module (gnu packages golang) #:use-module (gnu packages golang-xyz) #:use-module (gnu packages gps) #:use-module (gnu packages graphviz) #:use-module (gnu packages gstreamer) #:use-module (gnu packages gtk) #:use-module (gnu packages image) #:use-module (gnu packages image-processing) #:use-module (gnu packages java) #:use-module (gnu packages javascript) #:use-module (gnu packages jemalloc) #:use-module (gnu packages libedit) #:use-module (gnu packages libusb) #:use-module (gnu packages linux) #:use-module (gnu packages logging) #:use-module (gnu packages lua) #:use-module (gnu packages man) #:use-module (gnu packages maths) #:use-module (gnu packages mp3) #:use-module (gnu packages multiprecision) #:use-module (gnu packages ncurses) #:use-module (gnu packages networking) #:use-module (gnu packages nss) #:use-module (gnu packages openstack) #:use-module (gnu packages perl) #:use-module (gnu packages pkg-config) #:use-module (gnu packages popt) #:use-module (gnu packages pulseaudio) #:use-module (gnu packages protobuf) #:use-module (gnu packages pretty-print) #:use-module (gnu packages python) #:use-module (gnu packages python-build) #:use-module (gnu packages python-check) #:use-module (gnu packages python-science) #:use-module (gnu packages python-web) #:use-module (gnu packages python-xyz) #:use-module (gnu packages qt) #:use-module (gnu packages readline) #:use-module (gnu packages ruby) #:use-module (gnu packages sdl) #:use-module (gnu packages serialization) #:use-module (gnu packages sphinx) #:use-module (gnu packages sqlite) #:use-module (gnu packages swig) #:use-module (gnu packages tcl) #:use-module (gnu packages tex) #:use-module (gnu packages texinfo) #:use-module (gnu packages tls) #:use-module (gnu packages toolkits) #:use-module (gnu packages vulkan) #:use-module (gnu packages video) #:use-module (gnu packages web) #:use-module (gnu packages wget) #:use-module (gnu packages wxwidgets) #:use-module (gnu packages xiph) #:use-module (gnu packages xdisorg) #:use-module (gnu packages xml) #:use-module (gnu packages xorg) #:use-module (gnu packages version-control) #:use-module (guix build-system copy) #:use-module (guix build-system glib-or-gtk) #:use-module (guix build-system gnu) #:use-module (guix build-system go) #:use-module (guix build-system pyproject) #:use-module (guix build-system python) #:use-module (guix build-system qt) #:use-module (guix build utils) #:use-module (guix build gnu-build-system) #:use-module (guix base16) #:use-module (nongnu packages chromium) #:use-module (nongnu packages editors) ) (define-public ghidra (package (name "ghidra") (version "11.3.1") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/NationalSecurityAgency/ghidra") (commit "Ghidra_11.3.1_build") (recursive? #t))) (sha256 (base32 "0dy8jvwggizb3wxmvikg50hadazdbqv9di659gv38mcz36h76w3h")))) (build-system copy-build-system) (inputs (list gcc gcc-toolchain python `(,openjdk "jdk") gnu-make unzip )) (arguments (list #:tests? #f ; no check target #:phases #~(modify-phases %standard-phases ;;(add-after 'unpack 'build ;;(lambda _ ;;(display (invoke "pwd")) ;;(invoke "ls" "-a") ;;)) (add-after 'unpack 'build (lambda _ (display (invoke "pwd")) (invoke "ls" "-a" "./") (let* ((gradle-url "https://services.gradle.org/distributions/gradle-8.12.1-bin.zip") (local-gradle-dir "./gradle-ins") (gradle-zip (string-append local-gradle-dir "/gradle-8.12.1-bin.zip")) (gradle (string-append local-gradle-dir "/gradle-8.12.1/bin/gradle"))) (mkdir-p local-gradle-dir) (invoke "wget" gradle-url "-O" gradle-zip) (system* "unzip" gradle-zip "-d" local-gradle-dir) (invoke (string-append local-gradle-dir "/gradle-8.12.1/bin/gradle") "tasks") (system* "sh" (gradle) "-I" "gradle/support/fetchDependencies.gradle" "-Dorg.gradle.dependency.locking=lockMode=DISABLED") (system* "sh" (gradle) "buildGhidra") ) ;; Open the file for both reading and writing (system* "sh" "-c" "echo '\ndependencyLocking {\n lockMode = LockMode.DISABLED\n}' >> './settings.gradle'") (system* "sh" "-c" "echo 'org.gradle.dependency.locking=lockMode=DISABLED' >> './gradle.properties'") (invoke "cat" "./gradle.properties") ;;(system* "sh" (gradle) "-I" "gradle/support/fetchDependencies.gradle" "-Dorg.gradle.dependency.locking=lockMode=DISABLED") ;;(system* "sh" (gradle) "buildGhidra") (display "CAT")) ) (delete 'install) ;;(add-after 'install 'link-cef ;;(lambda _ ;;(display (assoc-ref %outputs "out")) ;;(display "Do nothing.") #t) ;;) ) )) (native-inputs (list gcc-toolchain git unzip wget)) (synopsis "Soup") (home-page "https://ghidra-sre.org/") (description "A software reverse engineering (SRE) suite of tools developed by NSA's Research Directorate in support of the Cybersecurity mission") (license license:agpl3))) ghidra