[PATCH 1/4] gnu: Add keystone.

  • Open
  • quality assurance status badge
Details
One participant
  • phodina
Owner
unassigned
Submitted by
phodina
Severity
normal
P
P
phodina wrote on 14 Dec 2022 00:34
(name . Guix Patches)(address . guix-patches@gnu.org)
gvrZumfRCPOodB2aFXGKMU3uhrCARh_5P73Rgv2dQyKn6wqCeKbIT71Wd-TDFtKgXsByCo6sFSKQiDJhet1rIdShHJHjFMKCW7R9_B0Yyoo=@protonmail.com
Hi,

this patch set add support to interface with Mediatek SoC devices found mostly in smart phones.

----
Petr
Attachment: file
From 304bf8877e4e401724cde02d4f20d53072bf0f59 Mon Sep 17 00:00:00 2001
From: Petr Hodina <phodina@protonmail.com>
Date: Tue, 13 Dec 2022 23:00:21 +0100
Subject: [PATCH 4/4] gnu: Add mtkclient.

* gnu/local.mk: Add patch.
* gnu/packages/patches/mtkclient-remove-usb.patch: New file.

Toggle diff (110 lines)
diff --git a/gnu/packages/engineering.scm b/gnu/packages/engineering.scm
index a9bf6fa6ba..50e9bbcdfa 100644
--- a/gnu/packages/engineering.scm
+++ b/gnu/packages/engineering.scm
@@ -123,6 +123,7 @@ (define-module (gnu packages engineering)
#:use-module (gnu packages multiprecision)
#:use-module (gnu packages mpi)
#:use-module (gnu packages ncurses)
+ #:use-module (gnu packages openstack)
#:use-module (gnu packages parallel)
#:use-module (gnu packages pcre)
#:use-module (gnu packages perl)
@@ -1330,6 +1331,45 @@ (define-public libredwg
replacement for the OpenDWG libraries.")
(license license:gpl3+)))
+(define-public mtkclient
+ (package
+ (name "mtkclient")
+ (version "1.52")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://github.com/bkerler/mtkclient/archive/refs/tags/"
+ version ".tar.gz"))
+ (patches (search-patches
+ "mtkclient-remove-usb.patch"))
+ (sha256
+ (base32
+ "1wlz9sipwzgfph57jzmnjlhhsmphfcnl9y0rvpa2wfb5rg6n74ss"))))
+ (build-system python-build-system)
+ (arguments
+ (list #:tests? #f ;no test suite
+ #:phases #~(modify-phases %standard-phases
+ (add-after 'install 'install-udev-rules
+ (lambda* _
+ (let ((udev (string-append #$output "/lib/udev.d")))
+ (mkdir-p udev)
+ (install-file "Setup/Linux/50-android.rules"
+ udev)
+ (install-file "Setup/Linux/51-edl.rules" udev)))))))
+ (native-inputs (list python-keystone-engine))
+ (inputs (list python-pyusb
+ python-pycryptodome
+ python-colorama
+ python-capstone
+ python-mock
+ python-pyserial
+ libusb))
+ (home-page "https://github.com/bkerler/mtkclient")
+ (synopsis "MTK reverse engineering and flash tool")
+ (description "This package provides a tool for reading/writing flash
+Mediatek chips.")
+ (license license:gpl3+)))
+
(define-public minicom
(package
(name "minicom")
diff --git a/gnu/packages/patches/mtkclient-remove-usb.patch b/gnu/packages/patches/mtkclient-remove-usb.patch
new file mode 100644
index 0000000000..44105d1884
--- /dev/null
+++ b/gnu/packages/patches/mtkclient-remove-usb.patch
@@ -0,0 +1,44 @@
+From d1ade84a4d320fd26cc77414f53d87293f41a70f Mon Sep 17 00:00:00 2001
+From: Petr Hodina <phodina@protonmail.com>
+Date: Mon, 14 Nov 2022 14:08:43 +0100
+Subject: [PATCH] Remove usb.
+
+
+diff --git a/pyproject.toml b/pyproject.toml
+index 348cdce..36d4168 100644
+--- a/pyproject.toml
++++ b/pyproject.toml
+@@ -4,7 +4,6 @@ requires = [
+ "wheel",
+ "pyusb",
+ "pycryptodome",
+- "colorama",
+- "usb"
++ "colorama"
+ ]
+ build-backend = "setuptools.build_meta"
+diff --git a/requirements.txt b/requirements.txt
+index 946fe9a..cde3398 100644
+--- a/requirements.txt
++++ b/requirements.txt
+@@ -2,5 +2,3 @@ wheel
+ pyusb
+ pycryptodome
+ colorama
+-usb
+-
+diff --git a/setup.py b/setup.py
+index 9031d23..3bd7cd9 100755
+--- a/setup.py
++++ b/setup.py
+@@ -22,7 +22,6 @@ setup(
+ license='MIT License',
+ install_requires=[
+ 'colorama',
+- 'usb',
+ 'pyusb',
+ 'pycryptodome'
+ ],
+--
+2.37.2
+
--
2.38.1
From 628ac395bb20fd3875b67614d967bee7f9f24cb6 Mon Sep 17 00:00:00 2001
From: Petr Hodina <phodina@protonmail.com>
Date: Tue, 13 Dec 2022 23:00:42 +0100
Subject: [PATCH 3/4] gnu: python-capstone: Disable broken tests.

* gnu/packages/engineering.scm (python-capstone)[arguments]: Disable broken
tests.

Toggle diff (16 lines)
diff --git a/gnu/packages/engineering.scm b/gnu/packages/engineering.scm
index ee224ad173..a9bf6fa6ba 100644
--- a/gnu/packages/engineering.scm
+++ b/gnu/packages/engineering.scm
@@ -1626,7 +1626,8 @@ (define-public python-capstone
(list capstone))
(build-system python-build-system)
(arguments
- `(#:phases
+ `(#:tests? #f
+ #:phases
(modify-phases %standard-phases
(add-after 'unpack 'chdir-and-fix-setup-py
(lambda _
--
2.38.1
From 29ccfe284b90fcf9a2e502e62f6b968237ab0fb5 Mon Sep 17 00:00:00 2001
From: Petr Hodina <phodina@protonmail.com>
Date: Tue, 13 Dec 2022 23:00:03 +0100
Subject: [PATCH 2/4] gnu: Add python-keystone-engine.

* gnu/packages/openstack.scm (python-keystone-engine): New variable.

* gnu/local.mk: Add patch.
* gnu/packages/patches/python-keystone-engine-dont-build-libs.patch: New file.

Toggle diff (65 lines)
diff --git a/gnu/packages/openstack.scm b/gnu/packages/openstack.scm
index 008237bd63..870a9853f3 100644
--- a/gnu/packages/openstack.scm
+++ b/gnu/packages/openstack.scm
@@ -885,6 +885,36 @@ (define-public python-keystoneauth1
process of writing new clients.")
(license asl2.0)))
+(define-public python-keystone-engine
+ (package
+ (name "python-keystone-engine")
+ (version "0.9.2")
+ (source (origin
+ (method url-fetch)
+ (uri (pypi-uri "keystone-engine" version))
+ (patches
+ (search-patches
+"python-keystone-engine-dont-build-libs.patch"
+))
+ (sha256
+ (base32
+ "1xahdr6bh3dw5swrc2r8kqa8ljhqlb7k2kxv5mrw5rhcmcnzcyig"))))
+ (build-system python-build-system)
+ (arguments
+ (list #:tests? #f ; TODO: Fails to find the shared object
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'lib-path
+ (lambda* _
+ (substitute* "keystone/keystone.py"
+ ((".usr.local.lib") (string-append #$keystone "/lib")))))
+ )))
+ (inputs (list keystone))
+ (home-page "https://www.keystone-engine.org")
+ (synopsis "Keystone assembler engine")
+ (description "Keystone assembler engine")
+ (license gpl2+)))
+
(define-public python-keystoneclient
(package
(name "python-keystoneclient")
diff --git a/gnu/packages/patches/python-keystone-engine-dont-build-libs.patch b/gnu/packages/patches/python-keystone-engine-dont-build-libs.patch
new file mode 100644
index 0000000000..04a66548ba
--- /dev/null
+++ b/gnu/packages/patches/python-keystone-engine-dont-build-libs.patch
@@ -0,0 +1,16 @@
+--- a/setup.py 2022-11-14 14:27:56.167776515 +0100
++++ b/setup.py 2022-11-14 14:28:53.912037545 +0100
+@@ -135,13 +135,11 @@
+ class build(_build):
+ def run(self):
+ log.info("Building C++ extensions")
+- build_libraries()
+ return _build.run(self)
+
+ class develop(_develop):
+ def run(self):
+ log.info("Building C++ extensions")
+- build_libraries()
+ return _develop.run(self)
+
+ class bdist_egg(_bdist_egg):
--
2.38.1
From 90948a520d5347aaff737546ab33b21cc3b689f6 Mon Sep 17 00:00:00 2001
From: Petr Hodina <phodina@protonmail.com>
Date: Tue, 13 Dec 2022 22:59:32 +0100
Subject: [PATCH 1/4] gnu: Add keystone.

* gnu/packages/openstack.scm (keystone): New variable.

Toggle diff (58 lines)
diff --git a/gnu/packages/openstack.scm b/gnu/packages/openstack.scm
index 169df27f7c..008237bd63 100644
--- a/gnu/packages/openstack.scm
+++ b/gnu/packages/openstack.scm
@@ -42,13 +42,49 @@ (define-module (gnu packages openstack)
#:use-module (gnu packages tls)
#:use-module (gnu packages version-control)
#:use-module (gnu packages xml)
+ #:use-module (gnu packages pkg-config)
+ #:use-module (guix build-system cmake)
#:use-module (guix build-system python)
#:use-module (guix download)
- #:use-module ((guix licenses)
- #:select (asl2.0))
+ #:use-module (guix gexp)
+ #:use-module (guix licenses)
#:use-module (guix packages)
#:use-module (srfi srfi-1))
+(define-public keystone
+ (package
+ (name "keystone")
+ (version "0.9.2")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://github.com/keystone-engine/keystone/archive/refs/tags/"
+ version ".tar.gz"))
+ (sha256
+ (base32
+ "093wbddxa8cy5ly81ikl5kxyzydg42cgini9ilbfw19yxm1s7cy9"))))
+ (build-system cmake-build-system)
+ (arguments
+ (list #:configure-flags #~(list "-DBUILD_SHARED_LIBS=ON")
+ #:tests? #f)) ;TODO: enable test suite
+ (native-inputs (list pkg-config))
+ (inputs (list python))
+ (home-page "https://www.keystone-engine.org/")
+ (synopsis "Keystone assembler framework")
+ (description
+ "The @code{keystone} provides assembler framework:
+ @itemize
+@item Multi-architecture, with support for Arm, Arm64 (AArch64/Armv8),
+Ethereum Virtual Machine, Hexagon, Mips, PowerPC, Sparc, SystemZ,
+& X86 (include 16/32/64bit)
+@item Clean/simple/lightweight/intuitive architecture-neutral API
+@item Implemented in C/C++ languages, with bindings for Java, Masm,
+Visual Basic, C#, PowerShell, Perl, Python, NodeJS, Ruby, Go, Rust,
+Haskell & OCaml available
+@item Thread-safe by design
+@end itemize")
+ (license gpl2+)))
+
(define-public python-bandit
(package
(name "python-bandit")
--
2.38.1
?
Your comment

Commenting via the web interface is currently disabled.

To comment on this conversation send an email to 60051@debbugs.gnu.org

To respond to this issue using the mumi CLI, first switch to it
mumi current 60051
Then, you may apply the latest patchset in this issue (with sign off)
mumi am -- -s
Or, compose a reply to this issue
mumi compose
Or, send patches to this issue
mumi send-email *.patch