From mboxrd@z Thu Jan 1 00:00:00 1970 From: Alex Kost Subject: Re: [PATCH] gnu: emacs-pdf-tools: Add missing input. Date: Tue, 15 Mar 2016 23:15:25 +0300 Message-ID: <87io0nh50i.fsf@gmail.com> References: <87vb4tnyxe.fsf@gmail.com> <87d1qvrf3v.fsf@gnu.org> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:41377) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1afvN0-0003Bq-DS for guix-devel@gnu.org; Tue, 15 Mar 2016 16:15:14 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1afvMx-0002Qy-43 for guix-devel@gnu.org; Tue, 15 Mar 2016 16:15:10 -0400 In-Reply-To: <87d1qvrf3v.fsf@gnu.org> ("Ludovic \=\?utf-8\?Q\?Court\=C3\=A8s\=22'\?\= \=\?utf-8\?Q\?s\?\= message of "Tue, 15 Mar 2016 15:27:16 +0100") List-Id: "Development of GNU Guix and the GNU System distribution." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-devel-bounces+gcggd-guix-devel=m.gmane.org@gnu.org Sender: guix-devel-bounces+gcggd-guix-devel=m.gmane.org@gnu.org To: Ludovic =?utf-8?Q?Court=C3=A8s?= Cc: guix-devel@gnu.org --=-=-= Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Ludovic Court=C3=A8s (2016-03-15 17:27 +0300) wrote: > Alex Kost skribis: > >> The bottom line of the following text is the question: Is it possible to >> combine 2 (or more) build systems for building a package? > > Sure! Great! >> I did a little experiment: I thought maybe it could be possible just to >> pick some build phases from (guix build emacs-build-system), so I added >> this module to #:modules and #:imported-modules and added phases like >> this: >> >> (modify-phases %standard-phases >> ;; ... >> (add-after 'build 'emacs-build >> (@@ (guix build emacs-build-system) build)) >> (add-after 'install 'emacs-install >> (@@ (guix build emacs-build-system) install))) >> >> The package was built successfully, but the result was not good, because >> both gnu-build-system and emacs-build-system import %standard-phases :-) > > You mean =E2=80=9Cexport=E2=80=9D? Yes, sometimes I mix up these words :-) > I think you can always add a renamer upon import, using something like: Ahahah, thanks! > (package > ;; =E2=80=A6 > (arguments > `(#:imported-modules ((guix build emacs-build-system) > ,%gnu-build-system-modules) > #:modules (((guix build emacs-build-system) #:prefix emacs:) > ,%gnu-build-system-modules) > > #:phases (modify-phases %standard-phases ;from gnu-build-system > (add-before 'build 'emacs-build > (assoc-ref emacs:%standard-phases 'build)) > ;; =E2=80=A6 > )))) > > Would it work for you? Yes, brilliant! Now I know how to combine phases from different build systems, thank you! So I think it's better to use 2 commits here: one to update phases and another to add let-alist dependency (both patches attached). --=-=-= Content-Type: text/x-patch; charset=utf-8 Content-Disposition: attachment; filename=0001-gnu-emacs-pdf-tools-Use-emacs-build-system-for-elisp.patch Content-Transfer-Encoding: quoted-printable >From b83adf2e1e0d13a5a09026bab40b0e5198e2f295 Mon Sep 17 00:00:00 2001 From: Alex Kost Date: Fri, 11 Mar 2016 11:34:20 +0300 Subject: [PATCH 1/2] gnu: emacs-pdf-tools: Use emacs-build-system for elisp side. MIME-Version: 1.0 Content-Type: text/plain; charset=3DUTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/emacs.scm (emacs-pdf-tools)[arguments]: Add phases from emacs-build-system to build elisp side. Co-authored-by: Ludovic Court=C3=A8s --- gnu/packages/emacs.scm | 57 +++++++++++++++++++++++++---------------------= ---- 1 file changed, 29 insertions(+), 28 deletions(-) diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm index c9fbfcf..38210e5 100644 --- a/gnu/packages/emacs.scm +++ b/gnu/packages/emacs.scm @@ -1018,40 +1018,41 @@ single buffer.") (arguments `(#:tests? #f ; there are no tests #:modules ((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 - (add-after 'unpack 'enter-dir (lambda _ (chdir "server") #t)) - (add-before - 'configure 'autogen - (lambda _ - (zero? (system* "bash" "autogen.sh")))) - (add-before - 'build 'patch-variables - (lambda* (#:key outputs #:allow-other-keys) - (with-directory-excursion "../lisp" - ;; Set path to epdfinfo program. - (emacs-substitute-variables "pdf-info.el" - ("pdf-info-epdfinfo-program" - (string-append (assoc-ref outputs "out") - "/bin/epdfinfo"))) - ;; Set 'pdf-tools-handle-upgrades' to nil to avoid "auto - ;; upgrading" that pdf-tools tries to perform. - (emacs-substitute-variables "pdf-tools.el" - ("pdf-tools-handle-upgrades" '()))))) - (add-after - 'install 'install-lisp - (lambda* (#:key outputs #:allow-other-keys) - (let ((target (string-append (assoc-ref outputs "out") - "/share/emacs/site-lisp/"))) - (for-each (lambda (file) - (install-file file target)) - (find-files "../lisp" "^(pdf|tab).*\\.elc?")) - (emacs-byte-compile-directory target) - (emacs-generate-autoloads "pdf-tools" target))))))) + ;; Build server side using 'gnu-build-system'. + (add-after 'unpack 'enter-server-dir + (lambda _ (chdir "server") #t)) + (add-before 'configure 'autogen + (lambda _ + (zero? (system* "bash" "autogen.sh")))) + + ;; Build emacs side using 'emacs-build-system'. + (add-after 'compress-documentation 'enter-lisp-dir + (lambda _ (chdir "../lisp") #t)) + (add-after 'enter-lisp-dir 'emacs-patch-variables + (lambda* (#:key outputs #:allow-other-keys) + ;; Set path to epdfinfo program. + (emacs-substitute-variables "pdf-info.el" + ("pdf-info-epdfinfo-program" + (string-append (assoc-ref outputs "out") + "/bin/epdfinfo"))) + ;; Set 'pdf-tools-handle-upgrades' to nil to avoid "auto + ;; upgrading" that pdf-tools tries to perform. + (emacs-substitute-variables "pdf-tools.el" + ("pdf-tools-handle-upgrades" '())))) + (add-after 'emacs-patch-variables 'emacs-install + (assoc-ref emacs:%standard-phases 'install)) + (add-after 'emacs-install 'emacs-build + (assoc-ref emacs:%standard-phases 'build)) + (add-after 'emacs-install 'emacs-make-autoloads + (assoc-ref emacs:%standard-phases 'make-autoloads))))) (native-inputs `(("autoconf" ,autoconf) ("automake" ,automake) ("pkg-config" ,pkg-config) --=20 2.6.3 --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=0002-gnu-emacs-pdf-tools-Add-missing-input.patch >From 8d64845aa9109359e32c4d08ec498bfb3b4ac870 Mon Sep 17 00:00:00 2001 From: Alex Kost Date: Tue, 15 Mar 2016 23:02:04 +0300 Subject: [PATCH 2/2] gnu: emacs-pdf-tools: Add missing input. This is a followup to commit eccd0b57a1f05b3caca28604f4d2c06556e2fe05. * gnu/packages/emacs.scm (emacs-pdf-tools)[propagated-inputs]: Add 'let-alist'. --- gnu/packages/emacs.scm | 2 ++ 1 file changed, 2 insertions(+) diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm index 38210e5..f53f73b 100644 --- a/gnu/packages/emacs.scm +++ b/gnu/packages/emacs.scm @@ -1057,6 +1057,8 @@ single buffer.") ("automake" ,automake) ("pkg-config" ,pkg-config) ("emacs" ,emacs-no-x))) + (propagated-inputs + `(("let-alist" ,let-alist))) (inputs `(("poppler" ,poppler) ("cairo" ,cairo) ("glib" ,glib) -- 2.6.3 --=-=-=--