ghidra scaffolded (lack of socket access/caps makes the java build impossible. need to see if we can work around that)
This commit is contained in:
191
Ghidra.scm
Normal file
191
Ghidra.scm
Normal file
@@ -0,0 +1,191 @@
|
||||
(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
|
||||
Reference in New Issue
Block a user