From debbugs-submit-bounces@debbugs.gnu.org Tue May 19 13:27:12 2020 Received: (at submit) by debbugs.gnu.org; 19 May 2020 17:27:12 +0000 Received: from localhost ([127.0.0.1]:50831 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jb61A-0000ZG-40 for submit@debbugs.gnu.org; Tue, 19 May 2020 13:27:12 -0400 Received: from lists.gnu.org ([209.51.188.17]:39268) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jb60y-0000Yf-QC for submit@debbugs.gnu.org; Tue, 19 May 2020 13:27:02 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:36020) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jb60y-0007C6-Jx for guix-patches@gnu.org; Tue, 19 May 2020 13:26:52 -0400 Received: from mail-qk1-x734.google.com ([2607:f8b0:4864:20::734]:42721) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1jb60u-0005xe-Eg for guix-patches@gnu.org; Tue, 19 May 2020 13:26:52 -0400 Received: by mail-qk1-x734.google.com with SMTP id s1so232587qkf.9 for ; Tue, 19 May 2020 10:26:47 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:subject:date:message-id:mime-version; bh=laGk+HVI38iyyQZcQHPiim7pUHI2DfJGGyQfze3bp1s=; b=R++r06BaYKtxuKoZPbQna2GvgBXu2i5u9/ZbGsY8BKXQUAVWjd7ilgTxONqc59qM6e O9/mvlg/5KKOnFMg0vzjG1LVumJLomL6W0AVu9Tt7LhnoOdTxP421bA9WlSg0uAjsadb Jzb5X3OhcFqazYCwSHNykRvNaR6k0vs9dRAG68zAf00gbhQNdoT/b7Jolw8t2Pzhbhx9 TGxf34sQeysW0geXt23jbe17MmyWDKz3YhX3mL+9PAAUAzkfbv814l5xkYIh89XjGqaz HOPHKvf3tbP786I3PBr72G8959KNzqin0aCkAgeBuS8gD8LnrpP02Ay8XwlS6VIT+3uS +PTw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:mime-version; bh=laGk+HVI38iyyQZcQHPiim7pUHI2DfJGGyQfze3bp1s=; b=lSd0585M2WSRfdVw/WuF3E+EVZccAsjN44aBlrsIIxNg6SInA73rnA1lQ1S9DCga9d t1GHb+VGlmuwAnoohtnTFPQNb3QMn+lK3zXDVhcXbniNH8IdD7kQWyw09n0sAdayBPCy fKHz8wMVrC/kQHTvP6qclzHHO2nyu5rPW785gk11YprGIra0eNHMG/rDQrJcdaf8gl8/ Ww39JTow2T5oU3WKIroMLT9LGvEse4oBXVDNsoRyEepzSZ30Cfv1cWabJ02pSOlEaOnP IwyRIQa2C6MLXBtpDREWw1LIm+rfh7kHmUT4gpoDZSh6kmLPx9vnu7g4XmXiMtIne4t/ hFpg== X-Gm-Message-State: AOAM531IRt3AXf8a3YWE4/A33uxWnL7F9O5hAk5Ru3Gt34B6zp9DTQTm 5YxbtBHaJtXLEdQozwTYOock6feZWR4= X-Google-Smtp-Source: ABdhPJyuw0JRG7NO7LIuCizvAvED+k985RrKTxgsVx0IB8NYSI2cpxGP66qwzoIvV10kqT4Fslzsfw== X-Received: by 2002:a05:620a:31c:: with SMTP id s28mr406015qkm.239.1589909207073; Tue, 19 May 2020 10:26:47 -0700 (PDT) Received: from hurd (dsl-10-130-184.b2b2c.ca. [72.10.130.184]) by smtp.gmail.com with ESMTPSA id s74sm142221qka.54.2020.05.19.10.26.45 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 19 May 2020 10:26:46 -0700 (PDT) From: Maxim Cournoyer To: guix-patches Subject: [PATCH] Update emacs-magit to latest commit. Date: Tue, 19 May 2020 13:26:44 -0400 Message-ID: <87imgral9n.fsf@gmail.com> MIME-Version: 1.0 Content-Type: multipart/signed; boundary="==-=-="; micalg=pgp-sha256; protocol="application/pgp-signature" Received-SPF: pass client-ip=2607:f8b0:4864:20::734; envelope-from=maxim.cournoyer@gmail.com; helo=mail-qk1-x734.google.com X-detected-operating-system: by eggs.gnu.org: No matching host in p0f cache. That's all we know. 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, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001 autolearn=_AUTOLEARN X-Spam_action: no action X-Spam-Score: 0.7 (/) X-Debbugs-Envelope-To: submit X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.0 (/) --==-=-= Content-Type: multipart/mixed; boundary="=-=-=" --=-=-= Content-Type: text/plain This updates our emacs-magit package to the latest version, which has the following benefits: 1) The test suite is now enabled. 2) The libgit2 C library is now accelerating some of the Magit tasks 3) Using the emacs-build-system means the Magit autoload file is now byte compiled. 4) No custom patching is done. The other updates were required to prevent breaking some of the packages which had a dependency on emacs-magit. Maxim --=-=-= Content-Type: text/x-patch; charset=utf-8 Content-Disposition: attachment; filename=0001-gnu-Add-emacs-libgit.patch Content-Transfer-Encoding: quoted-printable From=20753bd2c655b160313277dfd79a1e9821bde1f853 Mon Sep 17 00:00:00 2001 From: Maxim Cournoyer Date: Fri, 27 Mar 2020 21:21:37 -0400 Subject: [PATCH 1/5] gnu: Add emacs-libgit. * gnu/packages/emacs-xyz.scm (emacs-libgit): New variable. * gnu/local.mk (dist_patch_DATA): Register patch. =2D-- gnu/local.mk | 3 +- gnu/packages/emacs-xyz.scm | 78 +++++++++++++++- .../emacs-libgit-use-system-libgit2.patch | 88 +++++++++++++++++++ 3 files changed, 167 insertions(+), 2 deletions(-) create mode 100644 gnu/packages/patches/emacs-libgit-use-system-libgit2.pa= tch diff --git a/gnu/local.mk b/gnu/local.mk index 38b286203e..d38ac5722d 100644 =2D-- a/gnu/local.mk +++ b/gnu/local.mk @@ -19,7 +19,7 @@ # Copyright =C2=A9 2018 Amirouche Boubekki # Copyright =C2=A9 2018, 2019, 2020 Oleg Pykhalov # Copyright =C2=A9 2018 Stefan Stefanovi=C4=87 =2D# Copyright =C2=A9 2018 Maxim Cournoyer +# Copyright =C2=A9 2018, 2020 Maxim Cournoyer # Copyright =C2=A9 2019 Guillaume Le Vaillant # Copyright =C2=A9 2019, 2020 John Soo # Copyright =C2=A9 2019 Jonathan Brielmaier @@ -886,6 +886,7 @@ dist_patch_DATA =3D \ %D%/packages/patches/emacs-fix-scheme-indent-function.patch \ %D%/packages/patches/emacs-json-reformat-fix-tests.patch \ %D%/packages/patches/emacs-highlight-stages-add-gexp.patch \ + %D%/packages/patches/emacs-libgit-use-system-libgit2.patch \ %D%/packages/patches/emacs-magit-log-format-author-margin.patch \ %D%/packages/patches/emacs-scheme-complete-scheme-r5rs-info.patch \ %D%/packages/patches/emacs-source-date-epoch.patch \ diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index 4bbd482409..866f19c1fd 100644 =2D-- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -31,7 +31,7 @@ ;;; Copyright =C2=A9 2017 Peter Mikkelsen ;;; Copyright =C2=A9 2017, 2018, 2019, 2020 Tobias Geerinckx-Rice ;;; Copyright =C2=A9 2017 Mike Gerwitz =2D;;; Copyright =C2=A9 2017, 2018, 2019 Maxim Cournoyer +;;; Copyright =C2=A9 2017, 2018, 2019, 2020 Maxim Cournoyer ;;; Copyright =C2=A9 2018 Sohom Bhattacharjee ;;; Copyright =C2=A9 2018, 2019 Mathieu Lirzin ;;; Copyright =C2=A9 2018, 2019, 2020 Pierre Neidhardt @@ -314,6 +314,82 @@ For remote processes a substitute is provided, which c= ommunicates with Emacs on stdout instead of using a socket as the Emacsclient does.") (license license:gpl3+))) =20 +(define-public emacs-libgit + (let ((commit "0ef8b13aef011a98b7da756e4f1ce3bb18e4d55a") + (revision "1")) + (package + (name "emacs-libgit") + (version (git-version "20200515" revision commit)) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/magit/libegit2.git") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0pnjr3bg6y6354dfjjxfj0g51swzgl1fncpprah75x4k94rd369f")) + (patches (search-patches + ;; Submitted for inclusion upstream (see: + ;; https://github.com/magit/libegit2/pull/96). + "emacs-libgit-use-system-libgit2.patch")))) + ;; Use the cmake-build-system as it provides support for cross build= s. + (build-system cmake-build-system) + (arguments + `(#:configure-flags '("-DUSE_SYSTEM_LIBGIT2=3Dx") + ;; Add the emacs-build-system byte compilation and install phases. + #:imported-modules (,@%cmake-build-system-modules + (guix build emacs-build-system) + (guix build emacs-utils)) + #:modules ((guix build cmake-build-system) + ((guix build emacs-build-system) #:prefix emacs:) + (guix build emacs-utils) + (guix build utils)) + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'set-libgit--module-file + (lambda* (#:key outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + (make-file-writable "libgit.el") + (emacs-substitute-variables "libgit.el" + ("libgit--module-file" + (string-append out "/share/emacs/site-lisp/libegit2.so= "))) + #t))) + (add-before 'install 'prepare-for-install + (lambda _ + (let ((s (string-append "../" ,name "-" ,version "-checkout= "))) + (copy-file "libegit2.so" (string-append s "/libegit2.so")) + (chdir s) + #t))) + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (let ((install (assoc-ref emacs:%standard-phases 'install))) + (install #:outputs outputs + #:include (cons "\\.so$" + emacs:%default-include))))) + (add-after 'install 'make-autoloads + (assoc-ref emacs:%standard-phases 'make-autoloads)) + (add-after 'make-autoloads 'enable-autoloads-compilation + (assoc-ref emacs:%standard-phases 'enable-autoloads-compilati= on)) + (add-after 'enable-autoloads-compilation 'patch-el-files + (assoc-ref emacs:%standard-phases 'patch-el-files)) + (add-after 'patch-el-files 'emacs-build + (assoc-ref emacs:%standard-phases 'build)) + (add-after 'emacs-build 'validate-compiled-autoloads + (assoc-ref emacs:%standard-phases 'validate-compiled-autoload= s))))) + (native-inputs + `(("pkg-config" ,pkg-config) + ("emacs" ,emacs-no-x) + ("git" ,git-minimal))) + (inputs + `(("libgit2" ,libgit2))) + (home-page "https://github.com/magit/libegit2") + (synopsis "Emacs bindings for libgit2") + (description "This is an experimental module written in C providing +libgit2 bindings for Emacs, intended to boost the performance of Magit.") + ;; The LICENSE file says GPL v2+, but libgit.el says GPL v3+. + (license license:gpl3+)))) + (define-public emacs-magit ;; `magit-setup-buffer' macro introduced in c761d28d and required in ;; `emacs-forge'. diff --git a/gnu/packages/patches/emacs-libgit-use-system-libgit2.patch b/g= nu/packages/patches/emacs-libgit-use-system-libgit2.patch new file mode 100644 index 0000000000..4a5546b06b =2D-- /dev/null +++ b/gnu/packages/patches/emacs-libgit-use-system-libgit2.patch @@ -0,0 +1,88 @@ +From de3c48d72ec7064e7f0522877fe759c729df0c50 Mon Sep 17 00:00:00 2001 +From: Maxim Cournoyer +Date: Wed, 25 Mar 2020 11:32:18 -0400 +Subject: [PATCH] Allow using a system provided libgit2 library + +Setting the USE_SYSTEM_LIBGIT2 Make or CMake variable (through the +BUILD_OPTIONS variable) to any value enables using the system library. +The default behavior of using a bundled copy of libgit2 is unchanged. +--- + CMakeLists.txt | 9 +++++++-- + Makefile | 11 +++++++++++ + src/CMakeLists.txt | 9 +++++++-- + 3 files changed, 25 insertions(+), 4 deletions(-) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index a393d7c..75d6ca6 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -7,9 +7,14 @@ set(BUILD_SHARED_LIBS OFF CACHE BOOL "shared" FORCE) + set(BUILD_CLAR OFF CACHE BOOL "clar" FORCE) + set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -DEGIT_DEBUG") +=20 +-add_subdirectory(libgit2) ++if(USE_SYSTEM_LIBGIT2) ++ find_package(PkgConfig REQUIRED) ++ pkg_check_modules(git2 REQUIRED IMPORTED_TARGET libgit2) ++else() ++ add_subdirectory(libgit2) ++ find_library(git2 libgit2.a) ++endif() +=20 +-find_library(git2 libgit2.a) + add_subdirectory(src) +=20 + enable_testing() +diff --git a/Makefile b/Makefile +index 8199532..6a6a4e1 100644 +--- a/Makefile ++++ b/Makefile +@@ -13,6 +13,13 @@ ifeq ($(UNAME),MSYS) + BUILD_OPTIONS+=3D -G "MSYS Makefiles" + endif +=20 ++# If the variable USE_SYSTEM_LIBGIT2 is set to *any* value, use the ++# system provided libgit2 library. ++USE_SYSTEM_LIBGIT2? :=3D \ ++ $(if $(or $(USE_SYSTEM_LIBGIT2),\ ++ $(findstring USE_SYSTEM_LIBGIT2,$(BUILD_OPTIONS))),\ ++ true) ++ + ifeq "$(TRAVIS)" "true" + ## Makefile for Travis ################################################### + # +@@ -87,7 +94,11 @@ submodule-update: + @git submodule update +=20 + libgit2: ++ifeq ($(USE_SYSTEM_LIBGIT2?),) + @git submodule update --init ++else ++ @echo "Using the system provided libgit2 library" ++endif +=20 + CLEAN =3D $(ELCS) $(PKG)-autoloads.el build +=20 +diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt +index cfb5777..0dbad8a 100644 +--- a/src/CMakeLists.txt ++++ b/src/CMakeLists.txt +@@ -13,8 +13,13 @@ if(WIN32) + set_target_properties(egit2 PROPERTIES PREFIX lib) + endif(WIN32) +=20 +-target_link_libraries(egit2 git2) +-target_include_directories(egit2 SYSTEM PRIVATE "${libgit2_SOURCE_DIR}/in= clude") ++if(USE_SYSTEM_LIBGIT2) ++ target_link_libraries(egit2 PRIVATE PkgConfig::git2) ++else() ++ target_link_libraries(egit2 git2) ++ target_include_directories( ++ egit2 SYSTEM PRIVATE "${libgit2_SOURCE_DIR}/include") ++endif() +=20 + if(CMAKE_COMPILER_IS_GNUCC) + target_compile_options(egit2 PRIVATE -Wall -Wextra) +--=20 +2.26.2 + =2D-=20 2.26.2 --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=0002-gnu-emacs-magit-Update-to-commit-d05545e.patch Content-Transfer-Encoding: quoted-printable From=203e1dda800ce14c185538e6d824c7fe040a91bffd Mon Sep 17 00:00:00 2001 From: Maxim Cournoyer Date: Fri, 27 Mar 2020 21:20:03 -0400 Subject: [PATCH 2/5] gnu: emacs-magit: Update to commit d05545e. * gnu/packages/emacs-xyz.scm (emacs-magit): Update to commit 68b5a13fa1b6b122d4a2547b8c415aadff83d8ca. [origin]: Remove obsoleted patches and snippets. [build-system]: Switch to the emacs-build-system. [arguments]: Remove the #:modules and #:imported-modules arguments. Enable tests. Remove the #:make-flags and #:test-target argument. Specify the \#:test-command argument. [phases]{patch}: Remove phase. {build-info-manual, set-magit-version, configure-git} {disable-tramp-test}: New phases. {configure}: Do not delete phase. {patch-exec-paths}: Adapt file names. * gnu/packages/patches/emacs-magit-log-format-author-margin.patch: Remove f= ile. * gnu/local.mk (dist_patch_DATA): Unregister it. =2D-- gnu/local.mk | 1 - gnu/packages/emacs-xyz.scm | 144 ++++++++---------- ...emacs-magit-log-format-author-margin.patch | 72 --------- 3 files changed, 63 insertions(+), 154 deletions(-) delete mode 100644 gnu/packages/patches/emacs-magit-log-format-author-marg= in.patch diff --git a/gnu/local.mk b/gnu/local.mk index d38ac5722d..2d008f0be8 100644 =2D-- a/gnu/local.mk +++ b/gnu/local.mk @@ -887,7 +887,6 @@ dist_patch_DATA =3D \ %D%/packages/patches/emacs-json-reformat-fix-tests.patch \ %D%/packages/patches/emacs-highlight-stages-add-gexp.patch \ %D%/packages/patches/emacs-libgit-use-system-libgit2.patch \ =2D %D%/packages/patches/emacs-magit-log-format-author-margin.patch \ %D%/packages/patches/emacs-scheme-complete-scheme-r5rs-info.patch \ %D%/packages/patches/emacs-source-date-epoch.patch \ %D%/packages/patches/emacs-telega-test-env.patch \ diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index 866f19c1fd..93c7686174 100644 =2D-- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -391,12 +391,11 @@ libgit2 bindings for Emacs, intended to boost the per= formance of Magit.") (license license:gpl3+)))) =20 (define-public emacs-magit =2D ;; `magit-setup-buffer' macro introduced in c761d28d and required in =2D ;; `emacs-forge'. =2D (let ((commit "c761d28d49e5238037512b898db0ec9b40d85770")) + ;; There hasn't been an official release since 2018-11-16. + (let ((commit "d05545ec2fd7edf915eaf1b9c15c785bb08975cc")) (package (name "emacs-magit") =2D (version (git-version "2.90.1" "3" commit)) + (version (git-version "2.90.1" "4" commit)) (source (origin (method git-fetch) (uri (git-reference @@ -405,93 +404,76 @@ libgit2 bindings for Emacs, intended to boost the per= formance of Magit.") (file-name (git-file-name name version)) (sha256 (base32 =2D "16qx0404l05q1m6w7y5j8ck1z5nfmpinm00w0p2yh1hn5zzwy6dd"= )) =2D ;; FIXME: emacs-forge uses a function defined in this pa= tch, =2D ;; which is newer than the current commit. =2D (patches =2D (search-patches =2D "emacs-magit-log-format-author-margin.patch")) =2D (modules '((guix build utils))) =2D (snippet =2D '(begin =2D ;; Fix syntax error =2D (substitute* "lisp/magit-extras.el" =2D (("rev\\)\\)\\)\\)\\)\\)") "rev)))))")) =2D #t)))) =2D (build-system gnu-build-system) =2D (native-inputs `(("texinfo" ,texinfo) =2D ("emacs" ,emacs-minimal))) =2D (inputs =2D `(("git" ,git) =2D ("perl" ,perl))) =2D (propagated-inputs =2D `(("dash" ,emacs-dash) =2D ("with-editor" ,emacs-with-editor) =2D ("transient" ,emacs-transient))) + "11aqyy4r9hrdi9nlypd70hn8384b6q89c7xavgv8c5q7f2g5z9qg"))= )) + (build-system emacs-build-system) (arguments =2D `(#:modules ((guix build gnu-build-system) =2D (guix build utils) =2D (guix build emacs-utils)) =2D #:imported-modules (,@%gnu-build-system-modules =2D (guix build emacs-utils)) =2D #:test-target "test" =2D #:tests? #f ; tests are not included in the r= elease =2D #:make-flags =2D (list (string-append "PREFIX=3D" %output) =2D ;; Don't put .el files in a sub-directory. =2D (string-append "lispdir=3D" %output "/share/emacs/site-li= sp")) + `(#:emacs ,emacs-no-x ;module support is required + #:tests? #t + #:test-command '("make" "test") #:phases (modify-phases %standard-phases =2D (add-after 'unpack 'patch + (add-after 'unpack 'build-info-manual (lambda _ =2D (chmod "lisp/magit-extras.el" #o644) =2D (emacs-batch-edit-file "lisp/magit-extras.el" =2D `(progn (progn =2D (goto-char (point-min)) =2D (re-search-forward "(defun magit-copy-buffer-r= evision ()") =2D (forward-sexp 2) =2D (kill-sexp) =2D (insert ,(format #f "~S" =2D '(if (use-region-p) =2D (copy-region-as-kill nil= nil 'region) =2D (when-let ((rev (cl-case= major-mode =2D = ((magit-cherry-mode =2D = magit-log-select-mode =2D = magit-reflog-mode =2D = magit-refs-mode =2D = magit-revision-mode =2D = magit-stash-mode =2D = magit-stashes-mode) =2D = (car magit-refresh-args)) =2D = ((magit-diff-mode magit-log-mode) =2D = (let ((r (caar magit-refresh-args))) =2D = (if (string-match "\\.\\.\\.?\\(.+\\)" r) =2D = (match-string 1 r) =2D = r))) =2D = (magit-status-mode "HEAD")))) =2D (when (magit-c= ommit-p rev) =2D (setq rev (m= agit-rev-parse rev)) =2D (push (list = rev default-directory) magit-revision-stack) =2D (kill-new (m= essage "%s" rev)))))))) =2D (basic-save-buffer))) + (invoke "make" "info") + ;; Copy info files to the lisp directory, which acts as + ;; the root of the project for the emacs-build-system. + (for-each (lambda (f) + (install-file f "lisp")) + (find-files "Documentation" "\\.info$")) + (chdir "lisp") #t)) =2D (delete 'configure) =2D (add-before =2D 'build 'patch-exec-paths + (add-after 'build-info-manual 'set-magit-version + (lambda _ + (make-file-writable "magit.el") + (emacs-substitute-variables "magit.el" + ("magit-version" ,version)) + #t)) + (add-after 'set-magit-version 'patch-exec-paths (lambda* (#:key inputs #:allow-other-keys) (let ((perl (assoc-ref inputs "perl"))) =2D (make-file-writable "lisp/magit-sequence.el") =2D (emacs-substitute-variables "lisp/magit-sequence.el" + (make-file-writable "magit-sequence.el") + (emacs-substitute-variables "magit-sequence.el" ("magit-perl-executable" (string-append perl "/bin/perl= "))) =2D #t)))))) + #t))) + (add-before 'check 'configure-git + (lambda _ + ;; Otherwise some tests fail with error "unable to auto-det= ect + ;; email address". + (setenv "HOME" (getcwd)) + (invoke "git" "config" "--global" "user.name" "toto") + (invoke "git" "config" "--global" "user.email" + "toto@toto.com"))) + (add-after 'configure-git 'disable-tramp-test + (lambda _ + ;; There is an issue causing TRAMP to fail in the build + ;; environment. Setting the tramp-remote-shell parameter of + ;; the sudo-method to the file name of the shell didn't hel= p. + (chdir "..") + (substitute* "t/magit-tests.el" + (("^\\(ert-deftest magit-toplevel:tramp.*" all) + (string-append all " (skip-unless nil)"))) + #t)) + (add-before 'install 'enter-lisp-directory + (lambda _ + (chdir "lisp") + #t))))) + (native-inputs + `(("texinfo" ,texinfo))) + (inputs + `(("git" ,git) + ("perl" ,perl))) + (propagated-inputs + `(("emacs-dash" ,emacs-dash) + ("emacs-libgit" ,emacs-libgit) + ("emacs-transient" ,emacs-transient) + ("emacs-with-editor" ,emacs-with-editor))) (home-page "https://magit.vc/") (synopsis "Emacs interface for the Git version control system") =2D (description =2D "With Magit, you can inspect and modify your Git repositories wit= h Emacs. =2DYou can review and commit the changes you have made to the tracked files= , for =2Dexample, and you can browse the history of past changes. There is suppo= rt for =2Dcherry picking, reverting, merging, rebasing, and other common Git =2Doperations.") + (description "With Magit, you can inspect and modify your Git +repositories with Emacs. You can review and commit the changes you have m= ade +to the tracked files, for example, and you can browse the history of past +changes. There is support for cherry picking, reverting, merging, rebasin= g, +and other common Git operations.") (license license:gpl3+)))) =20 (define-public emacs-magit-svn diff --git a/gnu/packages/patches/emacs-magit-log-format-author-margin.patc= h b/gnu/packages/patches/emacs-magit-log-format-author-margin.patch deleted file mode 100644 index fc52157a32..0000000000 =2D-- a/gnu/packages/patches/emacs-magit-log-format-author-margin.patch +++ /dev/null @@ -1,72 +0,0 @@ =2DFrom 94914ca4690c0cff12d600a0c8ba6bfb3fb38dc5 Mon Sep 17 00:00:00 2001 =2DFrom: Jonas Bernoulli =2DDate: Tue, 25 Jun 2019 21:44:32 +0200 =2DSubject: [PATCH] magit-log-format-author-margin: New function =2D =2DSplit it from `magit-log-format-margin'. =2D--- =2D lisp/magit-log.el | 48 +++++++++++++++++++++++++---------------------- =2D 1 file changed, 26 insertions(+), 22 deletions(-) =2D =2Ddiff --git a/lisp/magit-log.el b/lisp/magit-log.el =2Dindex c8e6ef63..c0a79b19 100644 =2D--- a/lisp/magit-log.el =2D+++ b/lisp/magit-log.el =2D@@ -1374,28 +1374,32 @@ The shortstat style is experimental and rather s= low." =2D (when-let ((option (magit-margin-option))) =2D (if magit-log-margin-show-shortstat =2D (magit-log-format-shortstat-margin rev) =2D- (pcase-let ((`(,_ ,style ,width ,details ,details-width) =2D- (or magit-buffer-margin =2D- (symbol-value option)))) =2D- (magit-make-margin-overlay =2D- (concat (and details =2D- (concat (propertize (truncate-string-to-width =2D- (or author "") =2D- details-width =2D- nil ?\s (make-string 1 magit= -ellipsis)) =2D- 'face 'magit-log-author) =2D- " ")) =2D- (propertize =2D- (if (stringp style) =2D- (format-time-string =2D- style =2D- (seconds-to-time (string-to-number date))) =2D- (pcase-let* ((abbr (eq style 'age-abbreviated)) =2D- (`(,cnt ,unit) (magit--age date abbr))) =2D- (format (format (if abbr "%%2i%%-%ic" "%%2i %%-%i= s") =2D- (- width (if details (1+ details-= width) 0))) =2D- cnt unit))) =2D- 'face 'magit-log-date))))))) =2D+ (magit-log-format-author-margin author date)))) =2D+ =2D+(defun magit-log-format-author-margin (author date &optional previous-l= ine) =2D+ (pcase-let ((`(,_ ,style ,width ,details ,details-width) =2D+ (or magit-buffer-margin =2D+ (symbol-value option)))) =2D+ (magit-make-margin-overlay =2D+ (concat (and details =2D+ (concat (propertize (truncate-string-to-width =2D+ (or author "") =2D+ details-width =2D+ nil ?\s (make-string 1 magit-ell= ipsis)) =2D+ 'face 'magit-log-author) =2D+ " ")) =2D+ (propertize =2D+ (if (stringp style) =2D+ (format-time-string =2D+ style =2D+ (seconds-to-time (string-to-number date))) =2D+ (pcase-let* ((abbr (eq style 'age-abbreviated)) =2D+ (`(,cnt ,unit) (magit--age date abbr))) =2D+ (format (format (if abbr "%%2i%%-%ic" "%%2i %%-%is") =2D+ (- width (if details (1+ details-widt= h) 0))) =2D+ cnt unit))) =2D+ 'face 'magit-log-date)) =2D+ previous-line))) =2D=20 =2D (defun magit-log-format-shortstat-margin (rev) =2D (magit-make-margin-overlay =2D--=20 =2D2.23.0 =2D =2D-=20 2.26.2 --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=0003-gnu-emacs-evil-magit-Update-to-commit-253c644.patch Content-Transfer-Encoding: quoted-printable From=2084710de8f80d33363b1f570e33ea2c0fc6d147d4 Mon Sep 17 00:00:00 2001 From: Maxim Cournoyer Date: Tue, 19 May 2020 11:09:16 -0400 Subject: [PATCH 3/5] gnu: emacs-evil-magit: Update to commit 253c644. This resolves tests failures that appeared with the update to emacs-magit. * gnu/packages/emacs-xyz.scm (emacs-evil-magit): Update to commit 253c644. =2D-- gnu/packages/emacs-xyz.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index 93c7686174..c34d8b7914 100644 =2D-- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -16082,8 +16082,8 @@ Org-mode file, and citations of Zotero items in Pan= doc Markdown files.") (license license:gpl3+))) =20 (define-public emacs-evil-magit =2D (let ((commit "4b66a1db8285457147a5436f209391016a819ea1") =2D (revision "3")) + (let ((commit "253c644807013fe92429acdef418748794b8f254") + (revision "4")) (package (name "emacs-evil-magit") (version (git-version "0.4.2" revision commit)) @@ -16096,7 +16096,7 @@ Org-mode file, and citations of Zotero items in Pan= doc Markdown files.") (file-name (git-file-name name version)) (sha256 (base32 =2D "0kkmbswfh34k3amfl3v140vsnz1gq4n4mg9g4khjd9yjph3zms4h")))) + "08mh7phxsdb9w4dfs0pmr4l4fdzzr2rm88z2s8karfi5j5ik2ag5")))) (build-system emacs-build-system) (propagated-inputs `(("emacs-evil" ,emacs-evil) =2D-=20 2.26.2 --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=0004-gnu-emacs-transient-Update-to-commit-a6e4cced.patch Content-Transfer-Encoding: quoted-printable From=20bc2c5ddcb97e10291fe59bcf7c525389102af28a Mon Sep 17 00:00:00 2001 From: Maxim Cournoyer Date: Tue, 24 Mar 2020 21:43:55 -0400 Subject: [PATCH 4/5] gnu: emacs-transient: Update to commit a6e4cced. This is necessary to build a recent version of emacs-forge. * gnu/packages/emacs-xyz.scm (emacs-transient): Update to commit a6e4cced. [build-system]: Switch to the emacs-build-system. [arguments]: Remove the #:modules, #:imported-modules and #:make-flags arguments. [phases]{configure}: Do not delete. {install}: Do not replace. {build-info-manual}: New phase. {enter-lisp-directory}: New phase. [native-inputs]: Remove emacs-minimal, which is implicitly provided by the emacs-build-system. =2D-- gnu/packages/emacs-xyz.scm | 56 ++++++++++++++++---------------------- 1 file changed, 24 insertions(+), 32 deletions(-) diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index c34d8b7914..5be5c097e3 100644 =2D-- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -19222,11 +19222,11 @@ as Emacs Lisp.") (license license:gpl3+)))) =20 (define-public emacs-transient =2D ;; 0.1.0 depends on lv.el but not later versions. =2D (let ((commit "7e45a57ec81185631fe763733f64c99021df2a06")) + (let ((revision "1") + (commit "a6e4cced303b3febd59412b24a97eaf1e855e6d7")) (package (name "emacs-transient") =2D (version (git-version "0.1.0" "1" commit)) + (version (git-version "0.2.0" revision commit)) (source (origin (method git-fetch) (uri (git-reference @@ -19235,41 +19235,33 @@ as Emacs Lisp.") (file-name (git-file-name name version)) (sha256 (base32 =2D "0r6d4c1lga3bk0s7q7y4v4hbpxnd9h40cjxybqvax2z902931fz1"= )))) =2D (build-system gnu-build-system) =2D (native-inputs `(("texinfo" ,texinfo) =2D ("emacs" ,emacs-minimal))) =2D (propagated-inputs =2D `(("dash" ,emacs-dash))) + "01xsw9sxr50valc2q590ngy3ra2ll01p39l9cbzvqqz6mxyymxmd"))= )) + (build-system emacs-build-system) (arguments =2D `(#:modules ((guix build gnu-build-system) =2D (guix build utils) =2D (srfi srfi-26) =2D (guix build emacs-utils)) =2D #:imported-modules (,@%gnu-build-system-modules =2D (guix build emacs-utils)) =2D #:tests? #f ; tests are not included in the r= elease =2D #:make-flags (list "lisp" "info") + `(#:tests? #f ;no test suite #:phases (modify-phases %standard-phases =2D (delete 'configure) =2D (replace 'install =2D (lambda* (#:key inputs outputs #:allow-other-keys) =2D (let* ((out (assoc-ref outputs "out")) =2D (lisp (string-append out "/share/emacs/site-lisp")) =2D (info (string-append out "/share/info"))) =2D (for-each (cut install-file <> lisp) =2D (find-files "." "\\.elc*$")) =2D (install-file "docs/transient.info" (string-append info= ))) + (add-after 'unpack 'build-info-manual + (lambda _ + (invoke "make" "info") + ;; Move the info file to lisp so that it gets installed by = the + ;; emacs-build-system. + (rename-file "docs/transient.info" "lisp/transient.info"))) + (add-after 'build-info-manual 'enter-lisp-directory + (lambda _ + (chdir "lisp") #t))))) + (native-inputs + `(("texinfo" ,texinfo))) + (propagated-inputs + `(("dash" ,emacs-dash))) (home-page "https://magit.vc/manual/transient") (synopsis "Transient commands in Emacs") =2D (description =2D "Taking inspiration from prefix keys and prefix arguments in Emac= s, =2DTransient implements a similar abstraction involving a prefix command, i= nfix =2Darguments and suffix commands. We could call this abstraction a \"trans= ient =2Dcommand\", but because it always involves at least two commands (a prefi= x and =2Da suffix) we prefer to call it just a \"transient\".") + (description "Taking inspiration from prefix keys and prefix argumen= ts +in Emacs, Transient implements a similar abstraction involving a prefix +command, infix arguments and suffix commands. We could call this abstract= ion +a \"transient command\", but because it always involves at least two +commands (a prefix and a suffix) we prefer to call it just a \"transient\"= .") (license license:gpl3+)))) =20 (define-public emacs-forge =2D-=20 2.26.2 --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=0005-gnu-emacs-forge-Update-to-commit-09bf8ad.patch Content-Transfer-Encoding: quoted-printable From=200dc89992266fcfcd3ebd93f2a7f2e16eaa14e388 Mon Sep 17 00:00:00 2001 From: Maxim Cournoyer Date: Tue, 19 May 2020 11:55:17 -0400 Subject: [PATCH 5/5] gnu: emacs-forge: Update to commit 09bf8ad. * gnu/packages/emacs-xyz.scm (emacs-forge): Update to 09bf8ad. [native-inputs]: Remove emacs-minimal, which is implicitly provided by the emacs-build-system. =2D-- gnu/packages/emacs-xyz.scm | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index 5be5c097e3..733b8ca7af 100644 =2D-- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -19265,10 +19265,10 @@ commands (a prefix and a suffix) we prefer to cal= l it just a \"transient\".") (license license:gpl3+)))) =20 (define-public emacs-forge =2D (let ((commit "63cbf81f166fc71861d8e3d246df8e5ccedcb9bb")) + (let ((commit "09bf8adc9c9afb492632e612f51f39e1cc15fca0")) (package (name "emacs-forge") =2D (version (git-version "0.1.0" "3" commit)) + (version (git-version "0.1.0" "4" commit)) (source (origin (method git-fetch) @@ -19278,11 +19278,10 @@ commands (a prefix and a suffix) we prefer to cal= l it just a \"transient\".") (file-name (git-file-name name version)) (sha256 (base32 =2D "1yf2xjx3459py6rji740jm8bmh2pv66ghnbjxsvjd4jf9kcdav83")))) + "148h1rvmfmxyrfy2q5l0vzblr7lpsyw1si30hfwhzsj8fvj21qcr")))) (build-system emacs-build-system) (native-inputs =2D `(("texinfo" ,texinfo) =2D ("emacs" ,emacs-minimal))) + `(("texinfo" ,texinfo))) (propagated-inputs `(("emacs-closql" ,emacs-closql) ("emacs-dash" ,emacs-dash) =2D-=20 2.26.2 --=-=-=-- --==-=-= Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQIzBAEBCAAdFiEEJ9WGpPiQCFQyn/CfEmDkZILmNWIFAl7EFtUACgkQEmDkZILm NWJFSQ//YWvIgfuHX1o3tsCeVo6LMnpaj9pUOsSbI68geVyMpmL0fGHqgipU977J qSvJWVStnFpC1Beg3xcaPXKWulLZmpVUEWFzURGmMWknRJadyMoTvazW+CuuL4lU +uUqVJtiuffpT2hsxPpx5cXzI42/m5Ulbs8MH9qBSZ7G1vSkAPekHWdX5nXcNSg0 j0bIFZQvNV5mfl8iFgWGUVdtYTbwJsYHcOENh/dsvEbQbXEqNbVP8nIDQdUHn9Oa Jtw/xGQlIUzouSu0IBT60HeTdqWggMUcf2fLdPzYqij4DGv80L3ig51HhlYIp8QA OcxnQmfG6TmthdwMON+0i4pcP5LtGcxJXWAklNIyZyKiAWzJZ4QExCLRTV1+3hvx rvP5AvwOTRNa1i/VWNJOxz+xH6yzZpOMV3kNhA1vtSA2VMJGjvqKYvYfKCqUWM02 U3MRjbxoFlmDIacUxyxc04R5l27YCzDQ80wHjSgmkQg85PymnocDtPreuzjLEV89 KBz3vbimGwA6MknVqh401i9zO/eTF8VHdl8ODEPld8U2rSP30ziOKs7CzN+3LqFc ZH16SsmtLDgGLNkNL8JJYfy79f93XLm9Ciup2AwQKrwDUWXjOrihUaz5XgyHPKc2 A+VQQ60BezHs+qSxb0rrBpMoXyOCoF5tpkK+sSzlEn/0IdAd+WU= =xLEW -----END PGP SIGNATURE----- --==-=-=--