From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:470:142:3::10]:45673) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ilEAF-0004No-Ny for guix-patches@gnu.org; Sat, 28 Dec 2019 10:38:05 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ilEAE-0006MO-1M for guix-patches@gnu.org; Sat, 28 Dec 2019 10:38:03 -0500 Received: from debbugs.gnu.org ([209.51.188.43]:52825) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1ilEAD-0006Ky-Qt for guix-patches@gnu.org; Sat, 28 Dec 2019 10:38:01 -0500 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1ilEAD-0003HO-Nn for guix-patches@gnu.org; Sat, 28 Dec 2019 10:38:01 -0500 Subject: [bug#38776] [PATCH] Add qemacs Resent-Message-ID: Received: from eggs.gnu.org ([2001:470:142:3::10]:43688) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ilE9r-0004MQ-Ay for guix-patches@gnu.org; Sat, 28 Dec 2019 10:37:40 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ilE9p-0004WX-4c for guix-patches@gnu.org; Sat, 28 Dec 2019 10:37:38 -0500 Received: from relay12.mail.gandi.net ([217.70.178.232]:37335) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1ilE9o-0004Mm-OB for guix-patches@gnu.org; Sat, 28 Dec 2019 10:37:37 -0500 Received: from localhost (40-67.ipv4.commingeshautdebit.fr [185.131.40.67]) (Authenticated sender: admin@nicolasgoaziou.fr) by relay12.mail.gandi.net (Postfix) with ESMTPSA id 1C419200002 for ; Sat, 28 Dec 2019 15:37:33 +0000 (UTC) From: Nicolas Goaziou Date: Sat, 28 Dec 2019 16:37:32 +0100 Message-ID: <87k16g1mwz.fsf@nicolasgoaziou.fr> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-patches-bounces+kyle=kyleam.com@gnu.org Sender: "Guix-patches" To: 38776@debbugs.gnu.org --=-=-= Content-Type: text/plain Hello, The following patch adds qemacs. Note that it is built /without/ ffmpeg support (to read audio and video files from the editor). I can try to include the feature, if necessary. As always, feedback welcome. Regards, -- Nicolas Goaziou --=-=-= Content-Type: text/x-diff Content-Disposition: inline; filename=0001-gnu-Add-qemacs.patch Content-Description: Add qemacs >From a4a93fbf71746f8e27e048fa7b72173a1a01e2c7 Mon Sep 17 00:00:00 2001 From: Nicolas Goaziou Date: Sat, 28 Dec 2019 16:32:25 +0100 Subject: [PATCH] gnu: Add qemacs. * gnu/packages/text-editors.scm (qemacs): New variable. --- gnu/packages/text-editors.scm | 109 ++++++++++++++++++++++++++++++++++ 1 file changed, 109 insertions(+) diff --git a/gnu/packages/text-editors.scm b/gnu/packages/text-editors.scm index ac4c5b82ac..3945a5f8a7 100644 --- a/gnu/packages/text-editors.scm +++ b/gnu/packages/text-editors.scm @@ -58,6 +58,8 @@ #:use-module (gnu packages regex) #:use-module (gnu packages ruby) #:use-module (gnu packages terminals) + #:use-module (gnu packages texinfo) + #:use-module (gnu packages xorg) #:use-module (gnu packages xml)) (define-public vis @@ -613,3 +615,110 @@ card. It offers: @item Compose function for Latin 1 characters @end itemize") (license license:gpl2+))) + +(define-public qemacs + (package + (name "qemacs") + (version "0.3.3") + (source + (origin + (method url-fetch) + (uri (string-append "https://bellard.org/qemacs/" + "qemacs-" version ".tar.gz")) + (sha256 + (base32 "156z4wpj49i6j388yjird5qvrph7hz0grb4r44l4jf3q8imadyrg")))) + (build-system gnu-build-system) + (arguments + `(#:tests? #f ;no test + #:phases + (modify-phases %standard-phases + (add-before 'build 'build-qhtml + ;; Build fails without first creating qHTML library. + (lambda _ (invoke "make" "-C" "libqhtml"))) + (add-before 'install 'fix-man-pages-directory + ;; Install in $out/share/man instead of $out/man. + (lambda _ + (substitute* "Makefile" + (("/man/man1" all) (string-append "/share" all))) + #t)) + (add-before 'install 'create-directories + ;; Ensure directories exist before installing files. + (lambda* (#:key outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + (for-each (lambda (d) (mkdir-p (string-append out d))) + '("/bin" "/share/man/man1" "/share/qe")) + #t))) + (add-after 'install 'install-extra-documentation + ;; Install sample configuration file, Info, and HTML manual. + (lambda* (#:key outputs #:allow-other-keys) + (let* ((share (string-append (assoc-ref outputs "out") "/share")) + (doc (string-append share "/doc/" ,name "-" ,version)) + (html (string-append share "/html")) + (info (string-append share "/info")) + (makeinfo (string-append (assoc-ref %build-inputs "texinfo") + "/bin/makeinfo"))) + ;; First fix Texinfo documentation, create appropriate + ;; directories, then generate Info and HTML files there. + (substitute* "qe-doc.texi" + (("^M-([{}])" _ bracket) (string-append "M-@" bracket))) + (for-each (lambda (d) (mkdir-p d)) (list html info)) + (invoke makeinfo "qe-doc.texi" "-o" info) + (invoke makeinfo "qe-doc.texi" "--html" "--no-split" "-o" html) + ;; Install sample configuration file. + (install-file "config.eg" doc) + #t)))))) + (native-inputs + `(("texinfo" ,texinfo))) + (inputs + `(("libx11" ,libx11) + ("libxext" ,libxext) + ("libxv" ,libxv))) + (home-page "https://bellard.org/qemacs/") + (synopsis "Small but powerful text editor") + (description "QEmacs (for Quick Emacs) is a very small but +powerful editor. It has features that even big editors lack: + +@itemize + +@item Full screen editor with an Emacs look and feel with all Emacs +common features: multi-buffer, multi-window, command mode, universal +argument, keyboard macros, config file with C-like syntax, minibuffer +with completion and history. + +@item Can edit files of hundreds of Megabytes without being slow by +using a highly optimized internal representation and by mmaping the +file. + +@item Full Unicode support, including multi charset handling (8859-x, +UTF8, SJIS, EUC-JP, ...) and bidirectional editing respecting the +Unicode bidi algorithm. Arabic and Indic scripts handling (in +progress). + +@item WYSIWYG HTML/XML/CSS2 mode graphical editing. Also supports +Lynx like rendering on VT100 terminals. + +@item WYSIWYG DocBook mode based on XML/CSS2 renderer. + +@item C mode: coloring with immediate update. Emacs like auto-indent. + +@item Shell mode: colorized VT100 emulation so that your shell work +exactly as you expect. Compile mode with next/prev error. + +@item Input methods for most languages, including Chinese (input +methods come from the Yudit editor). + +@item Hexadecimal editing mode with insertion and block commands. +Unicode hexa editing is also supported. + +@item Works on any VT100 terminals without termcap. UTF8 VT100 +support included with double width glyphs. + +@item X11 support. Support multiple proportional fonts at the same +time (as XEmacs). X Input methods supported. Xft extension supported +for anti aliased font display. + +@item Small! Full version (including HTML/XML/CSS2/DocBook rendering +and all charsets): 200KB big. Basic version (without bidir/unicode +scripts/input/X11/C/Shell/HTML/Dired): 49KB. +@end itemize") + (license license:lgpl2.1+))) -- 2.24.1 --=-=-=--