From patchwork Tue Jul 9 16:18:18 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?S=C3=B6ren_Tempel?= X-Patchwork-Id: 66051 Return-Path: X-Original-To: patchwork@mira.cbaines.net Delivered-To: patchwork@mira.cbaines.net Received: by mira.cbaines.net (Postfix, from userid 113) id E017127BBE9; Tue, 9 Jul 2024 17:22:07 +0100 (BST) X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on mira.cbaines.net X-Spam-Level: X-Spam-Status: No, score=-2.7 required=5.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,MAILING_LIST_MULTI,SPF_HELO_PASS,URIBL_BLOCKED autolearn=unavailable autolearn_force=no version=3.4.6 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mira.cbaines.net (Postfix) with ESMTPS id 455C727BBE2 for ; Tue, 9 Jul 2024 17:22:05 +0100 (BST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1sRDbL-0002iJ-VA; Tue, 09 Jul 2024 12:21:59 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1sRDbJ-0002gj-1d for guix-patches@gnu.org; Tue, 09 Jul 2024 12:21:57 -0400 Received: from debbugs.gnu.org ([2001:470:142:5::43]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1sRDbI-0000T9-KC for guix-patches@gnu.org; Tue, 09 Jul 2024 12:21:56 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1sRDbO-0007cR-4m for guix-patches@gnu.org; Tue, 09 Jul 2024 12:22:02 -0400 X-Loop: help-debbugs@gnu.org Subject: [bug#72015] [PATCH] gnu: capstone: Backport upstream fix for Python bindings. Resent-From: soeren@soeren-tempel.net Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Tue, 09 Jul 2024 16:22:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 72015 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 72015@debbugs.gnu.org Cc: jgart@dismail.de X-Debbugs-Original-To: guix-patches@gnu.org Received: via spool by submit@debbugs.gnu.org id=B.172054211629270 (code B ref -1); Tue, 09 Jul 2024 16:22:02 +0000 Received: (at submit) by debbugs.gnu.org; 9 Jul 2024 16:21:56 +0000 Received: from localhost ([127.0.0.1]:53945 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1sRDbH-0007c2-PX for submit@debbugs.gnu.org; Tue, 09 Jul 2024 12:21:56 -0400 Received: from lists.gnu.org ([209.51.188.17]:40144) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1sRDbF-0007bu-Jd for submit@debbugs.gnu.org; Tue, 09 Jul 2024 12:21:54 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1sRDYz-0007rL-SN for guix-patches@gnu.org; Tue, 09 Jul 2024 12:19:36 -0400 Received: from magnesium.8pit.net ([45.76.88.171]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1sRDYv-0008J1-RW; Tue, 09 Jul 2024 12:19:32 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; s=opensmtpd; bh=LTh3kKOT fqK+7KR9OYtYqmmRFM0codwQqqJyTOEF7zQ=; h=date:subject:cc:to:from; d=soeren-tempel.net; b=a43NbmbSc7Ih2a7CxvqTaPgVXAxLEXz7YKFghFEP+vatKIX 2BTEOy5csyfaiZQtDbaKGn7VB4Ybu++KcUS3RnwC9Sky6JkTFNQwDpwLPRstfKznuvYcWa gVnwcCvHylsxJMZ1bLMsU4harV8+p0trQ1L8L/hREuNR37BxrtHn10= Received: from localhost (dynamic-2a02-3102-49da-001b-167b-bb16-88d3-7747.310.pool.telefonica.de [2a02:3102:49da:1b:167b:bb16:88d3:7747]) by magnesium.8pit.net (OpenSMTPD) with ESMTPSA id 994ffd7d (TLSv1.3:TLS_AES_256_GCM_SHA384:256:YES); Tue, 9 Jul 2024 18:19:18 +0200 (CEST) From: soeren@soeren-tempel.net Date: Tue, 9 Jul 2024 18:18:18 +0200 Message-ID: <9274cd3a46536b0ab71ff570328da49c56d61fb7.1720541898.git.soeren@soeren-tempel.net> X-Mailer: git-send-email 2.45.2 MIME-Version: 1.0 Received-SPF: pass client-ip=45.76.88.171; envelope-from=soeren@soeren-tempel.net; helo=magnesium.8pit.net X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: guix-patches@gnu.org List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-patches-bounces+patchwork=mira.cbaines.net@gnu.org Sender: guix-patches-bounces+patchwork=mira.cbaines.net@gnu.org X-getmail-retrieved-from-mailbox: Patches From: Sören Tempel * gnu/packages/patches/capstone-fix-python-constants.patch: New patch. * gnu/local.mk (dist_patch_DATA): Add it. * gnu/packages/engineering.scm (capstone): New patch. --- This patch includes a backport of an upstream patch which fixes several issues with the Python bindings that were discovered while packaging angr for Guix and running its test suite. The patch has been taken from #69074 as requested by jgart. gnu/local.mk | 1 + gnu/packages/engineering.scm | 3 +- .../capstone-fix-python-constants.patch | 84 +++++++++++++++++++ 3 files changed, 87 insertions(+), 1 deletion(-) create mode 100644 gnu/packages/patches/capstone-fix-python-constants.patch base-commit: 395a3a3b003f219beb33ed2539ff0a8a35502b59 diff --git a/gnu/local.mk b/gnu/local.mk index 3f493c3050..ea4cc251ae 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1023,6 +1023,7 @@ dist_patch_DATA = \ %D%/packages/patches/calls-disable-application-test.patch \ %D%/packages/patches/calls-disable-sip-test.patch \ %D%/packages/patches/camlboot-dynamically-allocate-stack-signal.patch \ + %D%/packages/patches/capstone-fix-python-constants.patch \ %D%/packages/patches/catdoc-CVE-2017-11110.patch \ %D%/packages/patches/ccextractor-add-missing-header.patch \ %D%/packages/patches/ccextractor-autoconf-tesseract.patch \ diff --git a/gnu/packages/engineering.scm b/gnu/packages/engineering.scm index 0f290de7eb..cc9020c6fd 100644 --- a/gnu/packages/engineering.scm +++ b/gnu/packages/engineering.scm @@ -1787,6 +1787,7 @@ (define-public capstone (version "5.0.1") (source (origin (method git-fetch) + (patches (search-patches "capstone-fix-python-constants.patch")) (uri (git-reference (url "https://github.com/capstone-engine/capstone") (commit version))) @@ -1798,7 +1799,7 @@ (define-public capstone (arguments `(#:tests? #f #:make-flags (list (string-append "PREFIX=" (assoc-ref %outputs "out")) - "CC=gcc") + (string-append "CC=" ,(cc-for-target))) #:phases (modify-phases %standard-phases (delete 'configure) ; no configure script diff --git a/gnu/packages/patches/capstone-fix-python-constants.patch b/gnu/packages/patches/capstone-fix-python-constants.patch new file mode 100644 index 0000000000..75100c6652 --- /dev/null +++ b/gnu/packages/patches/capstone-fix-python-constants.patch @@ -0,0 +1,84 @@ +Backport upstream patch fixing various constants in the Python bindings. + +Taken from: https://github.com/capstone-engine/capstone/commit/f180e176de3efb060db62820ff981d0291ea8525 + +diff --git a/bindings/python/capstone/__init__.py b/bindings/python/capstone/__init__.py +index bda2fdb6..52353c28 100755 +--- a/bindings/python/capstone/__init__.py ++++ b/bindings/python/capstone/__init__.py +@@ -113,7 +113,6 @@ __all__ = [ + 'CS_OPT_SYNTAX_NOREGNAME', + 'CS_OPT_SYNTAX_MASM', + 'CS_OPT_SYNTAX_MOTOROLA', +- 'CS_OPT_SYNTAX_CS_REG_ALIAS', + + 'CS_OPT_DETAIL', + 'CS_OPT_MODE', +@@ -152,19 +151,6 @@ __all__ = [ + 'CS_OP_REG', + 'CS_OP_IMM', + 'CS_OP_FP', +- 'CS_OP_PRED', +- 'CS_OP_RESERVED_5', +- 'CS_OP_RESERVED_6', +- 'CS_OP_RESERVED_7', +- 'CS_OP_RESERVED_8', +- 'CS_OP_RESERVED_9', +- 'CS_OP_RESERVED_10', +- 'CS_OP_RESERVED_11', +- 'CS_OP_RESERVED_12', +- 'CS_OP_RESERVED_13', +- 'CS_OP_RESERVED_14', +- 'CS_OP_RESERVED_15', +- 'CS_OP_SPECIAL', + 'CS_OP_MEM', + + 'CS_GRP_INVALID', +@@ -298,26 +284,13 @@ CS_OPT_NO_BRANCH_OFFSET = 9 # ARM, prints branch immediates without offset. + + # Capstone option value + CS_OPT_OFF = 0 # Turn OFF an option - default option of CS_OPT_DETAIL +-CS_OPT_ON = 1 << 0 # Turn ON an option (CS_OPT_DETAIL) ++CS_OPT_ON = 3 # Turn ON an option (CS_OPT_DETAIL) + + # Common instruction operand types - to be consistent across all architectures. + CS_OP_INVALID = 0 # uninitialized/invalid operand. + CS_OP_REG = 1 # Register operand. + CS_OP_IMM = 2 # Immediate operand. + CS_OP_FP = 3 # Floating-Point operand. +-CS_OP_PRED = 4 # Predicate operand. +-CS_OP_RESERVED_5 = 5 +-CS_OP_RESERVED_6 = 6 +-CS_OP_RESERVED_7 = 7 +-CS_OP_RESERVED_8 = 8 +-CS_OP_RESERVED_9 = 9 +-CS_OP_RESERVED_10 = 10 +-CS_OP_RESERVED_11 = 11 +-CS_OP_RESERVED_12 = 12 +-CS_OP_RESERVED_13 = 13 +-CS_OP_RESERVED_14 = 14 +-CS_OP_RESERVED_15 = 15 +-CS_OP_SPECIAL = 0x10 # Special operands from archs + CS_OP_MEM = 0x80 # Memory operand. Can be ORed with another operand type. + + # Common instruction groups - to be consistent across all architectures. +@@ -336,13 +309,12 @@ CS_AC_READ = (1 << 0) # Operand that is read from. + CS_AC_WRITE = (1 << 1) # Operand that is written to. + + # Capstone syntax value +-CS_OPT_SYNTAX_DEFAULT = 1 << 1 # Default assembly syntax of all platforms (CS_OPT_SYNTAX) +-CS_OPT_SYNTAX_INTEL = 1 << 2 # Intel X86 asm syntax - default syntax on X86 (CS_OPT_SYNTAX, CS_ARCH_X86) +-CS_OPT_SYNTAX_ATT = 1 << 3 # ATT asm syntax (CS_OPT_SYNTAX, CS_ARCH_X86) +-CS_OPT_SYNTAX_NOREGNAME = 1 << 4 # Asm syntax prints register name with only number - (CS_OPT_SYNTAX, CS_ARCH_PPC, CS_ARCH_ARM) +-CS_OPT_SYNTAX_MASM = 1 << 5 # MASM syntax (CS_OPT_SYNTAX, CS_ARCH_X86) +-CS_OPT_SYNTAX_MOTOROLA = 1 << 6 # MOS65XX use $ as hex prefix +-CS_OPT_SYNTAX_CS_REG_ALIAS = 1 << 7 # Prints common register alias which are not defined in LLVM (ARM: r9 = sb etc.) ++CS_OPT_SYNTAX_DEFAULT = 0 # Default assembly syntax of all platforms (CS_OPT_SYNTAX) ++CS_OPT_SYNTAX_INTEL = 1 # Intel X86 asm syntax - default syntax on X86 (CS_OPT_SYNTAX, CS_ARCH_X86) ++CS_OPT_SYNTAX_ATT = 2 # ATT asm syntax (CS_OPT_SYNTAX, CS_ARCH_X86) ++CS_OPT_SYNTAX_NOREGNAME = 3 # Asm syntax prints register name with only number - (CS_OPT_SYNTAX, CS_ARCH_PPC, CS_ARCH_ARM) ++CS_OPT_SYNTAX_MASM = 4 # MASM syntax (CS_OPT_SYNTAX, CS_ARCH_X86) ++CS_OPT_SYNTAX_MOTOROLA = 5 # MOS65XX use $ as hex prefix + + # Capstone error type + CS_ERR_OK = 0 # No error: everything was fine