diff mbox series

[bug#36999] gnu: Add emacs-forge.

Message ID 20190810161809.4014-1-go.wigust@gmail.com
State Accepted
Headers show
Series [bug#36999] gnu: Add emacs-forge. | expand

Commit Message

Oleg Pykhalov Aug. 10, 2019, 4:18 p.m. UTC
* gnu/packages/emacs-xyz.scm (emacs-forge): New variable.
---
 gnu/packages/emacs-xyz.scm | 79 ++++++++++++++++++++++++++++++++++++++
 1 file changed, 79 insertions(+)

Comments

Brian Leung Aug. 11, 2019, 5:39 p.m. UTC | #1
Hi Oleg,

I notice that emacs-forge, in its forge-pkg.el file, mentions newer
dependencies than what we currently have: ghub version 20190319, which
apparently contains a fix for a relevant bug; and Magit version 20190408.
I'm not sure how important the update to Magit is, and this newer version
of Magit also happens to depend on an additional package, libegit2. It
might be nice to update our version of ghub.

Best,
Brian
Oleg Pykhalov Oct. 5, 2019, 7:19 p.m. UTC | #2
Hi,

Apologies for a delay.

I have issue with a broken magit ‘magit-copy-buffer-revision’ procedure and
then the forge broked after Emacs upgrade to 26.3.  I've fixed both issues and
need more time for test before pushing to master.

Oleg Pykhalov (4):
  gnu: emacs-magit: Update to 2.90.1-1.c761d28.
  gnu: emacs-ghub: Update to 3.2.0-1.cf0b13a.
  gnu: emacs-closql: Update to 1.0.0-1.70b98db.
  gnu: Add emacs-forge.

 gnu/packages/emacs-xyz.scm | 235 ++++++++++++++++++++++++++++---------
 1 file changed, 179 insertions(+), 56 deletions(-)
Oleg Pykhalov Oct. 13, 2019, 7:45 p.m. UTC | #3
Hi.

I didn't notice any issue with Magit and Forge.  Pushed to master.

Thank you for help to package them and your suggestions!

Oleg.
diff mbox series

Patch

diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm
index 1681cecbcf..40618406b1 100644
--- a/gnu/packages/emacs-xyz.scm
+++ b/gnu/packages/emacs-xyz.scm
@@ -15789,6 +15789,85 @@  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+))))
 
+(define-public emacs-forge
+  (let ((commit "a60bd64056ec910fdbd1400dd8f583b8eec6145b"))
+    (package
+      (name "emacs-forge")
+      (version (git-version "0.1.0" "1" commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/magit/forge.git")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32
+           "1dhpsnb82mxpv3krf3apsbcirlcizw3g9gac9sfn0fad20qjwpgj"))))
+      (build-system gnu-build-system)
+      (native-inputs
+       `(("texinfo" ,texinfo)
+         ("emacs" ,emacs-minimal)))
+      (propagated-inputs
+       `(("emacs-closql" ,emacs-closql)
+         ("emacs-dash" ,emacs-dash)
+         ("emacs-emacsql-sqlite" ,emacs-emacsql)
+         ("emacs-ghub" ,emacs-ghub)
+         ("emacs-let-alist" ,emacs-let-alist)
+         ("emacs-magit" ,emacs-magit)
+         ("emacs-markdown-mode" ,emacs-markdown-mode)
+         ("emacs-transient" ,emacs-transient)))
+      (arguments
+       `(#:tests? #f ;no tests
+         #:modules ((srfi srfi-26)
+                    (guix build gnu-build-system)
+                    ((guix build emacs-build-system) #:prefix emacs:)
+                    (guix build utils)
+                    (guix build emacs-utils))
+         #:imported-modules (,@%gnu-build-system-modules
+                             (guix build emacs-build-system)
+                             (guix build emacs-utils))
+         #:phases
+         (modify-phases %standard-phases
+           (delete 'configure)
+           (delete 'install)
+           (add-after 'unpack 'delete-doc-targets
+             (lambda _
+               (substitute* "./Makefile"
+                 (("lisp docs") "lisp"))))
+           (add-after 'delete-doc-targets 'emacs-set-emacs-load-path
+             (assoc-ref emacs:%standard-phases 'set-emacs-load-path))
+           (add-after 'emacs-set-emacs-load-path 'chdir-lisp
+             (lambda _
+               (chdir "lisp")))
+           (add-after 'chdir-lisp 'emacs-install
+             (assoc-ref emacs:%standard-phases 'install))
+           (add-after 'emacs-install 'emacs-make-autoloads
+             (assoc-ref emacs:%standard-phases 'make-autoloads))
+           (add-after 'build 'install-elc
+             (lambda* (#:key outputs #:allow-other-keys)
+               (let* ((out (assoc-ref outputs "out"))
+                      (el-dir (string-append
+                               out "/share/emacs/site-lisp/guix.d/forge-"
+                               ,version)))
+                 (for-each (cut install-file <> el-dir)
+                           (find-files "." "\\.elc"))
+                 #t)))
+           (add-after 'install-elc 'install-doc
+             (lambda* (#:key outputs #:allow-other-keys)
+               (let* ((out (assoc-ref outputs "out"))
+                      (info (string-append out "/share/info")))
+                 (with-directory-excursion "../docs"
+                   (invoke "makeinfo" "forge.texi")
+                   (install-file "forge.info" info)
+                   #t)))))))
+      (home-page "https://github.com/magit/ghub/")
+      (synopsis "Access Git forges from Magit")
+      (description
+       "Work with Git forges, such as Github and Gitlab, from the comfort of
+Magit and the rest of Emacs.")
+      (license license:gpl3+))))
+
 (define-public emacs-matcha
   (let ((commit "c7df5cf5cdac9ae369e241342389ccda0205eab9"))
     (package