guix-glicid/glicid/packages/wazuh.scm
2023-08-23 08:58:17 +02:00

178 lines
12 KiB
Scheme

(define-module (glicid packages wazuh)
#:use-module ((guix licenses) #:prefix lic:)
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (guix utils)
#:use-module (guix build utils)
#:use-module (guix build-system cmake)
#:use-module (guix build-system gnu)
#:use-module (guix build-system cargo)
#:use-module (gnu packages)
#:use-module (gnu packages autotools)
#:use-module (gnu packages base)
#:use-module (gnu packages compression)
#:use-module (gnu packages selinux)
#:use-module (gnu packages wget)
#:use-module (gnu packages curl)
#:use-module (gnu packages certs) ; not sure if needed
#:use-module (gnu packages perl)
#:use-module (gnu packages gawk)
#:use-module (gnu packages cmake)
#:use-module (gnu packages javascript)
#:use-module (gnu packages sqlite)
#:use-module (gnu packages serialization)
#:use-module (gnu packages admin)
#:use-module (gnu packages libffi)
#:use-module (gnu packages gnupg)
#:use-module (gnu packages libusb)
#:use-module (gnu packages python-xyz)
#:use-module (gnu packages check)
#:use-module (gnu packages pcre)
#:use-module (gnu packages popt)
#:use-module (gnu packages package-management)
#:use-module (gnu packages llvm)
#:use-module (gnu packages tls)
#:use-module (gnu packages commencement)
#:use-module (gnu packages python)
#:use-module (gnu packages bash)
#:use-module (gnu packages shells)
#:use-module (gnu packages ruby)
#:use-module (gnu packages tcl)
#:use-module (gnu packages crates-io)
#:use-module (glicid utils)
)
(define-public wazuh-agent
(package
(name "wazuh-agent")
(version "4.4.3")
(source (origin
(method url-fetch)
(uri (string-append "https://github.com/wazuh/wazuh/archive/refs/tags/v" version ".tar.gz" ))
(sha256 (base32 "1wr9i4vgqfmm9cgi6yfchbmzakcsnb5bww7vqw38c702c9fa1l31"))))
(build-system cmake-build-system)
(arguments
`(
#:phases (modify-phases %standard-phases
(add-after 'unpack 'extract-deps
(lambda* (#:key inputs native-inputs #:allow-other-keys)
(begin
(for-each (lambda (deps)
(format #t (string-append "decompressing source code for " deps "~%"))
(mkdir-p (string-append "src/external/" deps))
(let ((tar (assoc-ref inputs "tar")) (deps-src (assoc-ref inputs deps )))
(invoke (string-append tar "/bin/tar") "xvf" deps-src "--strip-components=1" "-C" (string-append "src/external/" deps))))
(list "zlib" "sqlite" "openssl" "curl" "libyaml" "audit" "libffi" "libplist" "python-cython" "msgpack" "bzip2" "pcre2" "rpm" "popt") )
(for-each (lambda (deps)
(format #t (string-append "decompressing source code for " deps "~%"))
(let ((deps-src (assoc-ref inputs deps )))
(invoke "cp" "-rv" deps-src (string-append "src/external/" deps))))
(list "cjson" "googletest")
)
(invoke "mv" "src/external/pcre2" "src/external/libpcre2")
(invoke "mv" "src/external/audit" "src/external/audit-userspace")
(invoke "mv" "src/external/cjson" "src/external/cJSON")
(chmod "src/external/cJSON" #o750)
(for-each (lambda (file)
(chmod file #o750))
(find-files "src/external/cJSON"))
(for-each (lambda (file)
(chmod file #o750))
(find-files "src/external/cJSON" #:directories? #t))
(chmod "src/external/googletest" #o750)
(for-each (lambda (file)
(chmod file #o750))
(find-files "src/external/googletest"))
(for-each (lambda (file)
(chmod file #o750))
(find-files "src/external/googletest" #:directories? #t))
(chmod "src/external/libpcre2" #o750)
(for-each (lambda (file)
(chmod file #o750))
(find-files "src/external/libpcre2"))
(for-each (lambda (file)
(chmod file #o750))
(find-files "src/external/libpcre2" #:directories? #t))
#t)))
(delete 'configure)
(replace 'build
(lambda* (#:key outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out"))
)
(setenv "CC" ,(cc-for-target))
(setenv "PREFIX" out)
(setenv "CONFIG_SHELL" "/gnu/store/m6c5hgqg569mbcjjbp8l8m7q82ascpdl-bash-5.1.16/bin/bash")
(setenv "SHELL" "/gnu/store/m6c5hgqg569mbcjjbp8l8m7q82ascpdl-bash-5.1.16/bin/bash")
(invoke "mkdir" "build")
(invoke "cd" "build")
(invoke "cmake" "build_sysinfo build_shared_modules" "..")
(invoke "cmake" "wazuh-agentd agent-auth wazuh-logcollector wazuh-syscheckd wazuh-execd manage_agents active-responses wazuh-modulesd" "..")
; (invoke "make" "-C" "src" "SHELL=/gnu/store/m6c5hgqg569mbcjjbp8l8m7q82ascpdl-bash-5.1.16/bin/bash" "CONFIG_SHELL=/gnu/store/m6c5hgqg569mbcjjbp8l8m7q82ascpdl-bash-5.1.16/bin/bash" (string-append "PREFIX=" out) "TARGET=agent" "build")
)
))
)))
(inputs `(("cjson" ,(package-source cjson))
("zlib" ,(package-source zlib))
("sqlite" ,(package-source sqlite))
("openssl" ,(package-source openssl))
("curl" ,(package-source curl))
("libyaml" ,(package-source libyaml))
("audit" ,(package-source audit))
("libffi" ,(package-source libffi))
("libplist" ,(package-source libplist))
("python-cython" ,(package-source python-cython))
("msgpack" ,(package-source msgpack))
("bzip2" ,(package-source bzip2))
("googletest" ,(package-source googletest))
("pcre2" ,(package-source pcre2))
("rpm" ,(package-source rpm))
("popt" ,(package-source popt))
("zlib" ,(package-source zlib))
("perl", perl)
("python", python)
("python-wrapper", python-wrapper)
("oksh", oksh)
("rc", rc)
("ruby", ruby)
("expect", expect)
("runscript", runscript)
("bash", bash)
("libgcrypt", libgcrypt)
))
(synopsis "")
(description "")
(home-page "https://github.com/wazuh/wazuh/")
(license lic:gpl2)))
(define-public runscript
(package
(name "runscript")
(version "1.0.0-beta.7+2")
(source (origin
(method url-fetch)
(uri (string-append "https://github.com/TheOnlyMrCat/runscript/archive/refs/tags/v" version ".tar.gz" ))
(sha256 (base32 "168h815vdkvya2jbv0gddcy5lbah08wsvs14v9qcbkpp8ixr59qk"))))
(build-system cargo-build-system)
(inputs (list rust-atty-0.2 rust-cfg-if-1 rust-clap-3 rust-exitcode-1 rust-glob-0.3 rust-indexmap-1 rust-itertools-0.10 rust-os-info-3
rust-serde-1 rust-tempfile-3 rust-termcolor-1 rust-toml-0.5 rust-uuid-0.8 rust-nix-0.23 rust-winapi-0.3
rust-hermit-abi-0.1 rust-libc-0.2 rust-bitflags-1.2 rust-clap-derive-3 rust-clap-lex-0.2 rust-once-cell-1 rust-strsim-0.10
rust-textwrap-0.16 rust-hashbrown-0.12 rust-autocfg-1 rust-either-1 rust-log-0.4 rust-serde-derive-1 rust-fastrand-1
rust-remove-dir-all-0.5 rust-redox-syscall-0.2 rust-winapi-util-0.1 rust-getrandom-0.2 rust-memoffset-0.6
rust-cc-1 rust-heck-0.4 rust-proc-macro-error-1 rust-proc-macro2-1 rust-quote-1 rust-syn-1 rust-syn-2 rust-os-str-bytes-6
rust-instant-0.1 rust-wasi-0.11 rust-proc-macro-error-attr-1 rust-version-check-0.9
))
(synopsis "")
(description "")
(home-page "https://github.com/TheOnlyMrCat/runscript")
(license lic:asl2.0)))
wazuh-agent