From patchwork Tue Apr 22 14:51:53 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Suhail Singh X-Patchwork-Id: 41940 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 8AB4C27BC4B; Tue, 22 Apr 2025 16:34:15 +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=-6.4 required=5.0 tests=BAYES_00,DKIM_ADSP_CUSTOM_MED, DKIM_INVALID,DKIM_SIGNED,FREEMAIL_FROM,MAILING_LIST_MULTI, RCVD_IN_DNSWL_BLOCKED,RCVD_IN_VALIDITY_CERTIFIED,RCVD_IN_VALIDITY_RPBL, RCVD_IN_VALIDITY_SAFE,SPF_HELO_PASS,URIBL_BLOCKED autolearn=ham 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 E5A0427BC49 for ; Tue, 22 Apr 2025 16:34:14 +0100 (BST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1u7FdC-0005Cy-JG; Tue, 22 Apr 2025 11:33: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 1u7FcN-00051o-I4 for guix-patches@gnu.org; Tue, 22 Apr 2025 11:33:08 -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 1u7FcN-0001gg-8H for guix-patches@gnu.org; Tue, 22 Apr 2025 11:33:03 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=debbugs.gnu.org; s=debbugs-gnu-org; h=MIME-Version:Date:From:To:In-Reply-To:References:Subject; bh=zlDIu0FINcKY3iuuRJgnysw7DnURGB5pooycwq8wPms=; b=H1kNPepRa4200kzLElgIC3iV3IiwwRcSVXfNq3rMf9f/yoW2Jr6c4AXKKIy7JgmoZ6z1Jr1NM7QXud0SoxHh7tH0xksbnqC8mnq3lLGLfl8OVlMeavT6cSz+QNkGQWZxW/ii7/Z6C9YP6qvMIq3b9Bhz0bfiGGvJCXGker0ZghN0tS63OpkgykOX3NmmwknkVudq3swKgpK4Evd4qTYfph/AV6Z7aisQGqeKn9hTK8rpct36wUF66lj8JZBe6+EeEfPCHZnzA0UXV61onrbjmWMRPGp+B8to7gIWRGwlaC9fztVdKeCEro/THP7n+30+bQp6ArcL8tcgl6Gt57QX+A==; Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1u7FcM-0001KC-5u; Tue, 22 Apr 2025 11:33:02 -0400 X-Loop: help-debbugs@gnu.org Subject: [bug#77990] [PATCH v2] gnu: Add emacs-ffi. References: <8514e002c91917232069fcff792b089241b02cbc.1745335509.git.suhail@bayesians.ca> In-Reply-To: <8514e002c91917232069fcff792b089241b02cbc.1745335509.git.suhail@bayesians.ca> Resent-From: "Suhail Singh" Original-Sender: "Debbugs-submit" Resent-CC: andrew@trop.in, csantosb@inventati.org, divya@subvertising.org, hako@ultrarare.space, ian@retrospec.tv, cox.katherine.e+guix@gmail.com, liliana.prikler@gmail.com, guix-patches@gnu.org Resent-Date: Tue, 22 Apr 2025 15:33:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 77990 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 77990@debbugs.gnu.org Cc: Andrew Tropin , Cayetano Santos , Divya Ranjan Pattanaik , Hilton Chain , Ian Eure , Katherine Cox-Buday , Liliana Marie Prikler X-Debbugs-Original-Xcc: Andrew Tropin , Cayetano Santos , Divya Ranjan Pattanaik , Hilton Chain , Ian Eure , Katherine Cox-Buday , Liliana Marie Prikler Received: via spool by 77990-submit@debbugs.gnu.org id=B77990.17453359455021 (code B ref 77990); Tue, 22 Apr 2025 15:33:02 +0000 Received: (at 77990) by debbugs.gnu.org; 22 Apr 2025 15:32:25 +0000 Received: from localhost ([127.0.0.1]:49460 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1u7Fbk-0001Iv-W7 for submit@debbugs.gnu.org; Tue, 22 Apr 2025 11:32:25 -0400 Received: from mail-qv1-xf44.google.com ([2607:f8b0:4864:20::f44]:56589) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from ) id 1u7Fbi-0001Ie-D9 for 77990@debbugs.gnu.org; Tue, 22 Apr 2025 11:32:23 -0400 Received: by mail-qv1-xf44.google.com with SMTP id 6a1803df08f44-6e8f4c50a8fso50473856d6.1 for <77990@debbugs.gnu.org>; Tue, 22 Apr 2025 08:32:22 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1745335936; x=1745940736; darn=debbugs.gnu.org; h=mime-version:message-id:date:subject:to:from:from:to:cc:subject :date:message-id:reply-to; bh=zlDIu0FINcKY3iuuRJgnysw7DnURGB5pooycwq8wPms=; b=dhpoVlInr23JrgKxuWzR+Jmq5ibCc/hyPVWdq9qEKSRpaau6hFwvPJaMfPQ0o2q5pu yJ0Hb84DnAaPRJ8Ks7UJ05b7UKZpy4kA4kxBzwLm6sdzOh0I5iZtjsKQz+QWIKFqsIu2 YphRZAGZ7E5cFISnqC+d3/fGZ4alYE7npTu63tyryuOL72Gu1sfcl9ddRFZ09posw321 q91EEzNgt7AAgeTihXFYr3euXR/39yocsLoGe/IfZrn7WWQmRVqcLrKSDPdBjUhDt6kT QAdl3ZaR0Woi1uqjqtkKSgnLKmH0w+c+f6i0kIM6eMN6AxYYmSBzcYSCjTJyO6Nx1a8x MZRQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1745335936; x=1745940736; h=mime-version:message-id:date:subject:to:from:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=zlDIu0FINcKY3iuuRJgnysw7DnURGB5pooycwq8wPms=; b=hnk9LSQOVDgCuKszF3/KRtFlXrgwYovCxtc3+nIlpL03aUeIkUviMTnZdsz3bcN2EP E50CqPJ6KuVDsKK1EqZWc1fpeBmdZaFg/DF47b4Nt61FuI4GU5Kh1zz6mhFxElQjCSwU x36Uvy3qWc5ksGORXycJ/mJ2k8XqBf4pl01gDNbHztGGA4bbYkmBdKDy06hctmavaQ9O NBqdoaT4joBIO8AqEDPz1Zd2uu4KIgJCrqutXwQEun+EUTvwmfG2rogPdFM4fEJgpi4e 1DJpEUmzYTEwtJfsPgVNsWD6ZwoEK8QdR3WeCEorCY/a3/BTx8NTvmaqguZ7SxVz67hv 65jg== X-Gm-Message-State: AOJu0YxeIt7SIt2Mi9Kh4AZhsWZZ9C+tgAVW7lsAMsccGrf2c/05/oBo /HHgbPS19zP6wVFpYGPkPRTOsyl1kHWHT5ra+bIsxEpQ6FQ766OPxj7lCqtp X-Gm-Gg: ASbGncujBC48Hp3MMst7yAeFpA3gC7LZ0jkPvNFskXalg3M+RuCMGcnKNBtha9Z4cIw HHlt9P0vRuW7e9F8p+Q6iFezh+TIR/Ld3KNy+YuhxVzv4q/rXHdd9zGqNr/P+I7Lrp26WrY3Z9f E+ARY3C3JrRB3YRXRY5WRVtYSc7qyWcmtvY+nyfrGJI21Jz2tfzMF5jY8sb+AEaFPL70zjhitQH 5Thy2HHpcNzrSPIx5WKT/qUv22OrI0c6b7Pjjx73se4LgTVKwhjQEIf8K/UuSpRIDciiWm9wdiv cGoVKTKZlwkKWplKgvXulA3eOVQvV/t/Et/8brp4FvM9xcA0q57RCbrQViyz1ODiCi77n8a54hB KhAxtTZxUSFTq0eWpaQacCFXK+g== X-Google-Smtp-Source: AGHT+IFC40HG0AjCetYkQtc6RydZ/Q4+Fr7TidId9CCBAp2mduBMbfCfkJyPelws8RYvN7iw/7kHZA== X-Received: by 2002:a05:6214:202a:b0:6e8:f4d3:e8a5 with SMTP id 6a1803df08f44-6f2c4559993mr252719946d6.15.1745335935694; Tue, 22 Apr 2025 08:32:15 -0700 (PDT) Received: from gnus (lnsm2-montreal01-69-158-82-155.internet.virginmobile.ca. [69.158.82.155]) by smtp.gmail.com with ESMTPSA id 6a1803df08f44-6f2c2af48c3sm58681686d6.8.2025.04.22.08.32.14 for <77990@debbugs.gnu.org> (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 22 Apr 2025 08:32:15 -0700 (PDT) From: "Suhail Singh" Date: Tue, 22 Apr 2025 10:51:53 -0400 Message-Id: MIME-Version: 1.0 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 * gnu/packages/emacs-xyz.scm (emacs-ffi): New variable. Change-Id: I3379ff4728d3e3f45d5327978b5e284fcc0e664e --- gnu/packages/emacs-xyz.scm | 53 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) base-commit: c8194a529724721e2b96e0fe259cd92b63ff57aa diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index 08bd88fd08..e6253089e8 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -236,6 +236,7 @@ (define-module (gnu packages emacs-xyz) #:use-module (gnu packages llvm) #:use-module (gnu packages image) #:use-module (gnu packages image-viewers) + #:use-module (gnu packages libffi) #:use-module (gnu packages linux) #:use-module (gnu packages libevent) #:use-module (gnu packages lisp) @@ -23092,6 +23093,58 @@ (define-public emacs-display-wttr @uref{https://wttr.in} and then displays it on the mode line.") (license license:gpl3+))) +(define-public emacs-ffi + (package + (name "emacs-ffi") + (version "0.2.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/emacs-ffi/emacs-ffi") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 "05crpgscpbzkg4k0ylbfjz2wyw2r8lki8q9w2kmdpljsqrpdrwl0")))) + (build-system emacs-build-system) + (arguments + (list + #:tests? (not (%current-target-system)) + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'patch-module-load + (lambda _ + (make-file-writable "src/ffi.el") + (emacs-substitute-sexps "src/ffi.el" + ("(require 'ffi-module nil t)" + `(module-load + ,(string-append #$output "/lib/ffi-module.so")))))) + (add-before 'check 'build-emacs-module + (lambda _ + ;; Compile the shared object file. + (invoke "make" + #$(string-append "CC=" + (cc-for-target))) + ;; Copy the build artifacts to root and let the install phase do + ;; its thing + (copy-recursively "build/lib" ".") + ;; Install the shared object file into /lib. + (install-file "build/lib/ffi-module.so" + (string-append #$output "/lib")))) + (add-before 'install 'installinfo + (lambda _ + (install-file "build/doc/emacs-ffi.info" + (string-append #$output "/share/info"))))))) + (inputs (list emacs-compat libltdl libffi)) + (native-inputs (list texinfo)) + (home-page "https://emacs-ffi.github.io/emacs-ffi/") + (synopsis "FFI for Emacs based on libffi") + (description + "This package provides an FFI for Emacs. It is based on +libffi and relies on the dynamic module support in order to be loaded into +Emacs. It is relatively full-featured, but for the time being low-level.") + (license license:gpl3+))) + (define-public emacs-free-keys (package (name "emacs-free-keys")