[PATCH] Add Geany

  • Done
  • quality assurance status badge
Details
2 participants
  • Arun Isaac
  • Nicolas Goaziou
Owner
unassigned
Submitted by
Nicolas Goaziou
Severity
normal
N
N
Nicolas Goaziou wrote on 1 Jun 2019 23:38
(address . guix-patches@gnu.org)
87muj1vvds.fsf@nicolasgoaziou.fr
Hello,

The following patch adds Geany text editor.

Regards,

--
Nicolas Goaziou
From e626c1e11d0f181690e2d2a716a5d40fd85e874b Mon Sep 17 00:00:00 2001
From: Nicolas Goaziou <mail@nicolasgoaziou.fr>
Date: Sat, 1 Jun 2019 23:37:24 +0200
Subject: [PATCH] gnu: Add geany.

* gnu/packages/text-editors.scm (geany): New variable.
---
gnu/packages/text-editors.scm | 44 +++++++++++++++++++++++++++++++++++
1 file changed, 44 insertions(+)

Toggle diff (54 lines)
diff --git a/gnu/packages/text-editors.scm b/gnu/packages/text-editors.scm
index 534934dfd1..617e61ea27 100644
--- a/gnu/packages/text-editors.scm
+++ b/gnu/packages/text-editors.scm
@@ -389,3 +389,47 @@ projects. The EditorConfig project maintains a file format and plugins for
various text editors which allow this file format to be read and used by those
editors.")
(license license:bsd-2)))
+
+(define-public geany
+ (package
+ (name "geany")
+ (version "1.35")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "https://download.geany.org/"
+ "geany-" version ".tar.bz2"))
+ (sha256
+ (base32
+ "179xfnvhcxsv54v2mlrhykqv2j7klniln5sffvqqpjmdvwyivvim"))))
+ (build-system gnu-build-system)
+ (native-inputs
+ `(("intltool" ,intltool)
+ ("pkg-config" ,pkg-config)))
+ (inputs
+ `(("gtk2" ,gtk+-2)))
+ (home-page "https://www.geany.org")
+ (synopsis "Small and lightweight IDE")
+ (description "Geany is a small and lightweight Integrated
+Development Environment. It was developed to provide a small and fast
+IDE, which has only a few dependencies from other packages. Another
+goal was to be as independent as possible from a special Desktop
+Environment like KDE or GNOME. Geany only requires the GTK2 runtime
+libraries.
+
+Some basic features of Geany:
+@itemize
+@item Syntax highlighting
+@item Code folding
+@item Symbol name auto-completion
+@item Construct completion/snippets
+@item Auto-closing of XML and HTML tags
+@item Call tips
+@item Many supported filetypes including C, Java, PHP, HTML, Python,
+ Perl, Pascal (full list)
+@item Symbol lists
+@item Code navigation
+@item Build system to compile and execute your code
+@item Simple project management
+@item Plugin interface
+@end itemize")
+ (license license:gpl2+)))
--
2.21.0
A
A
Arun Isaac wrote on 4 Jun 2019 14:25
(name . Nicolas Goaziou)(address . mail@nicolasgoaziou.fr)(address . 36043@debbugs.gnu.org)
cu7r289a65m.fsf@systemreboot.net
Please add a copyright header with your name and email address.

The scintilla library comes bundled with geany. Is it possible to
unbundle it?

Toggle quote (3 lines)
> + (inputs
> + `(("gtk2" ,gtk+-2)))

Geany supports gtk3. Could you build with that?

Toggle quote (9 lines)
> + (home-page "https://www.geany.org")
> + (synopsis "Small and lightweight IDE")

> + (description "Geany is a small and lightweight Integrated
> +Development Environment. It was developed to provide a small and fast
> +IDE, which has only a few dependencies from other packages. Another
> +goal was to be as independent as possible from a special Desktop
> +Environment like KDE or GNOME.

Perhaps rewrite this as:

Geany is a small and fast Integrated Development Environment (IDE) that
only has a few dependencies on other packages and is as independent as
possible from special desktop environments like KDE or GNOME.

Toggle quote (2 lines)
> Geany only requires the GTK2 runtime libraries.

I think we should not mention this in the description, especially if we
are building with gtk3.

Toggle quote (11 lines)
> +Some basic features of Geany:
> +@itemize
> +@item Syntax highlighting
> +@item Code folding
> +@item Symbol name auto-completion
> +@item Construct completion/snippets
> +@item Auto-closing of XML and HTML tags
> +@item Call tips
> +@item Many supported filetypes including C, Java, PHP, HTML, Python,
> + Perl, Pascal (full list)

What is (full list) ?

LGTM otherwise, thanks!
-----BEGIN PGP SIGNATURE-----

iQEzBAEBCAAdFiEEf3MDQ/Lwnzx3v3nTLiXui2GAK7MFAlz2Y1UACgkQLiXui2GA
K7PoSQf8CCNxTyyl/7EcYqCQ5AWpElYiWve35J5ccbE14KPXP619eOTpmZjFja84
K4TGFe8dIedhs5cYgOwUzZ4wrX6Oi0a0cLjrPhshDeXpkR5f96oKh0Zn7osAzu0b
tc1vJrcd2QnY+J9jUeIQFmBl26qkuERZRWL9WHW+//NcRJUm4GfxhLr6Wy+Ny2eG
iRtpkOc7vT3nhBgPoTbcHSXpjbImaEGzTV89ix5Gt81rsgGhQFKWukUFuQOoBBnH
Xofq+emVSNPaYK0beh/3ZUCh7xWi/mq+W7/vhi2ymCIqftpBQ1IURKosBX0I3ElL
Xiji2Eqjy0oALz45DnVb2alXE/s4dg==
=WiSY
-----END PGP SIGNATURE-----

N
N
Nicolas Goaziou wrote on 5 Jun 2019 23:01
(name . Arun Isaac)(address . arunisaac@systemreboot.net)(address . 36043@debbugs.gnu.org)
877e9zu4p2.fsf@nicolasgoaziou.fr
Hello,

Thank you for the feedback.

Arun Isaac <arunisaac@systemreboot.net> writes:

Toggle quote (5 lines)
> Please add a copyright header with your name and email address.
>
> The scintilla library comes bundled with geany. Is it possible to
> unbundle it?

Guix doesn't provide the scintilla library. I tried to package it, but
failed. I can send my latest attempt, if you want to give it a spin.

Meanwhile, I added this as a TODO in the package definition.

Toggle quote (5 lines)
>> + (inputs
>> + `(("gtk2" ,gtk+-2)))
>
> Geany supports gtk3. Could you build with that?

Done.

Toggle quote (6 lines)
> Perhaps rewrite this as:
>
> Geany is a small and fast Integrated Development Environment (IDE) that
> only has a few dependencies on other packages and is as independent as
> possible from special desktop environments like KDE or GNOME.

OK.

Toggle quote (5 lines)
>> Geany only requires the GTK2 runtime libraries.
>
> I think we should not mention this in the description, especially if we
> are building with gtk3.

OK.
Toggle quote (14 lines)
>
>> +Some basic features of Geany:
>> +@itemize
>> +@item Syntax highlighting
>> +@item Code folding
>> +@item Symbol name auto-completion
>> +@item Construct completion/snippets
>> +@item Auto-closing of XML and HTML tags
>> +@item Call tips
>> +@item Many supported filetypes including C, Java, PHP, HTML, Python,
>> + Perl, Pascal (full list)
>
> What is (full list) ?

I don't know. I changed the description, and added more inputs to build
documentation.

Here is the updated patch. Let me know if you want the scintilla draft.

WDYT?

Regards,

--
Nicolas Goaziou
From 520bfc8dc2eed15b4835c641d6645e5790341af6 Mon Sep 17 00:00:00 2001
From: Nicolas Goaziou <mail@nicolasgoaziou.fr>
Date: Sat, 1 Jun 2019 23:37:24 +0200
Subject: [PATCH] gnu: Add geany.

* gnu/packages/text-editors.scm (geany): New variable.
---
gnu/packages/text-editors.scm | 42 +++++++++++++++++++++++++++++++++++
1 file changed, 42 insertions(+)

Toggle diff (59 lines)
diff --git a/gnu/packages/text-editors.scm b/gnu/packages/text-editors.scm
index 534934dfd1..824a2aea5f 100644
--- a/gnu/packages/text-editors.scm
+++ b/gnu/packages/text-editors.scm
@@ -7,6 +7,7 @@
;;; Copyright © 2014 Taylan Ulrich Bay?rl?/Kammer <taylanbayirli@gmail.org>
;;; Copyright © 2017, 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2019 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2019 Nicolas Goaziou <mail@nicolasgoaziou.fr>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -389,3 +390,44 @@ projects. The EditorConfig project maintains a file format and plugins for
various text editors which allow this file format to be read and used by those
editors.")
(license license:bsd-2)))
+
+(define-public geany
+ (package
+ (name "geany")
+ (version "1.35")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "https://download.geany.org/"
+ "geany-" version ".tar.bz2"))
+ (sha256
+ (base32
+ "179xfnvhcxsv54v2mlrhykqv2j7klniln5sffvqqpjmdvwyivvim"))))
+ (build-system gnu-build-system)
+ (native-inputs
+ `(("doxygen" ,doxygen)
+ ("intltool" ,intltool)
+ ("pkg-config" ,pkg-config)
+ ("python-docutils" ,python-docutils))) ;for rst2html
+ ;; TODO: Unbundle scintilla when packaged.
+ (inputs
+ `(("gtk+" ,gtk+)))
+ (home-page "https://www.geany.org")
+ (synopsis "Fast and lightweight IDE")
+ (description "Geany is a small and fast Integrated Development
+Environment (IDE) that only has a few dependencies on other packages and is as
+independent as possible from special desktop environments like KDE or GNOME.
+
+The basic features of Geany are:
+@itemize
+@item syntax highlighting
+@item code completion
+@item auto completion of often constructed constructs like if, for and while
+@item auto completion of XML and HTML tags
+@item call tips
+@item folding
+@item many supported filetypes like C, Java, PHP, HTML, Python, Perl, Pascal
+@item symbol lists
+@item embedded terminal emulation
+@item extensibility through plugins
+@end itemize")
+ (license license:gpl2+)))
--
2.21.0
A
A
Arun Isaac wrote on 6 Jun 2019 16:45
(name . Nicolas Goaziou)(address . mail@nicolasgoaziou.fr)(address . 36043@debbugs.gnu.org)
cu7h892g4ck.fsf@systemreboot.net
Toggle quote (8 lines)
>> The scintilla library comes bundled with geany. Is it possible to
>> unbundle it?
>
> Guix doesn't provide the scintilla library. I tried to package it, but
> failed. I can send my latest attempt, if you want to give it a spin.
>
> Meanwhile, I added this as a TODO in the package definition.

Do post your scintilla patch to this bug report and add a link to it in
the TODO comment. Perhaps it will be useful to someone working on it in
the future.

Toggle quote (2 lines)
> Here is the updated patch.

You are missing an import of (gnu packages python-xyz) for
python-docutils. Other than that your patch LGTM! :-)
-----BEGIN PGP SIGNATURE-----

iQEzBAEBCAAdFiEEf3MDQ/Lwnzx3v3nTLiXui2GAK7MFAlz5JvwACgkQLiXui2GA
K7Ol6Qf8CkKVJyFgeO8w1yaCjfVPr3RC9RFdOwrwm+VIJhs6RXgGsj2gSypC3xef
HtQileSevdySBhLYvrwCeZLjIsB+y0hbgGf9JOCYKttp596r+LjOuUzdgxitFh7n
Mtb2Kly39KTvYdb3tqwbVgC++MtJLCDSB78Ali83ahvQ4dXWBmYRBWrI+2p+JD/C
vXC2hYdX9hfWwTGYYk8OvvATcnBUFKWXin9/kzwT43LM2Fi3ncHghyBina670y2w
gonlizvoibUewxELsdAQIfwKC95REyakX9UUpWUdBoHL2YZNUDLdrZvuBfDyzAXr
uH3M6UEC5ukRhwUa+/jIUpMMKIDfBg==
=Jc4s
-----END PGP SIGNATURE-----

A
A
Arun Isaac wrote on 6 Jun 2019 16:51
(name . Nicolas Goaziou)(address . mail@nicolasgoaziou.fr)(address . 36043@debbugs.gnu.org)
cu7ef46g42p.fsf@systemreboot.net
Toggle quote (2 lines)
> + (license license:gpl2+)))

Also, scintilla is released under the ISC license. Please include the
ISC license in the license field as well.
-----BEGIN PGP SIGNATURE-----

iQEzBAEBCAAdFiEEf3MDQ/Lwnzx3v3nTLiXui2GAK7MFAlz5KF4ACgkQLiXui2GA
K7PrwQf8D9TWVoqAEXoKyqfb8Isv3CcIzJ7yQ1IHjgVxkZrUM+OrLo40plf/6muG
X5rZcA9pR0b7fAG0rEzqKTbyqm15itz3WpQGXpH8b4d9S4nq0BT5QWs8lLK1W71y
O503WbXXm4jjT/KmHMvj07qnfJS1eOZEUF3Xb/yzAcidKRIscXUXqZPOA1NkqHjH
827lxIduGJXHFm6EO4x45dK26OCQVjLbPJdqHMieJKkKKKhYpKeVTPmNcFkYXN4/
6XuJk5G5dHOFp3X6TExmYJMnOySO791el/HdbgpyUuiJmyEdm4h6RfoxMPGM8yTP
1EpLgRlTiPZ8yNIgGxMlHRaNdT3TuQ==
=JnGS
-----END PGP SIGNATURE-----

N
N
Nicolas Goaziou wrote on 13 Jun 2019 00:22
(name . Arun Isaac)(address . arunisaac@systemreboot.net)(address . 36043@debbugs.gnu.org)
87ef3yqw9o.fsf@nicolasgoaziou.fr
Hello,

Arun Isaac <arunisaac@systemreboot.net> writes:

Toggle quote (4 lines)
> Do post your scintilla patch to this bug report and add a link to it in
> the TODO comment. Perhaps it will be useful to someone working on it in
> the future.

I actually packaged scintilla, but I failed unbundling it from Geany.
I attach the three patches I put up so far.

Since there is nothing more left in this bug report, I don't think it is
worthwhile to link to it.

Toggle quote (3 lines)
> You are missing an import of (gnu packages python-xyz) for
> python-docutils. Other than that your patch LGTM! :-)

Oh! Fixed. Thank you.

WDYT?

--
Nicolas Goaziou
From 6a8ecb754a39fdfe216b03b47dab7967fd5147f4 Mon Sep 17 00:00:00 2001
From: Nicolas Goaziou <mail@nicolasgoaziou.fr>
Date: Sat, 8 Jun 2019 11:22:50 +0200
Subject: [PATCH 1/3] gnu: Add scintilla license.

* guix/licenses.scm (scintilla): New variable.
---
guix/licenses.scm | 7 +++++++
1 file changed, 7 insertions(+)

Toggle diff (34 lines)
diff --git a/guix/licenses.scm b/guix/licenses.scm
index 65d9c3da13..f861d7409a 100644
--- a/guix/licenses.scm
+++ b/guix/licenses.scm
@@ -14,6 +14,7 @@
;;; Copyright © 2017 Marius Bakke <mbakke@fastmail.com>
;;; Copyright © 2017 Arun Isaac <arunisaac@systemreboot.net>
;;; Copyright © 2017 Rutger Helling <rhelling@mykolab.com>
+;;; Copyright © 2019 Nicolas Goaziou <mail@nicolasgoaziou.fr>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -83,6 +84,7 @@
ruby
sgifreeb2.0
silofl1.1
+ scintilla
sleepycat
tcl/tk
unlicense
@@ -558,6 +560,11 @@ at URI, which may be a file:// URI pointing the package's tree."
"http://directory.fsf.org/wiki/License:Ruby"
"https://www.ruby-lang.org/en/about/license.txt"))
+(define scintilla
+ (license "Scintilla and SciTE License"
+ "https://www.scintilla.org/License.txt"
+ "X11-style license for Scintilla and SciTE"))
+
(define sgifreeb2.0
(license "SGI Free Software License B, version 2.0"
"http://directory.fsf.org/wiki/License:SGIFreeBv2"
--
2.22.0
From b376d19aee8309672dae897efcbdf1a53ae200fa Mon Sep 17 00:00:00 2001
From: Nicolas Goaziou <mail@nicolasgoaziou.fr>
Date: Sat, 1 Jun 2019 23:37:24 +0200
Subject: [PATCH 2/3] gnu: Add geany.

* gnu/packages/text-editors.scm (geany): New variable.
---
gnu/packages/text-editors.scm | 45 +++++++++++++++++++++++++++++++++++
1 file changed, 45 insertions(+)

Toggle diff (69 lines)
diff --git a/gnu/packages/text-editors.scm b/gnu/packages/text-editors.scm
index 534934dfd1..383257f36d 100644
--- a/gnu/packages/text-editors.scm
+++ b/gnu/packages/text-editors.scm
@@ -7,6 +7,7 @@
;;; Copyright © 2014 Taylan Ulrich Bay?rl?/Kammer <taylanbayirli@gmail.org>
;;; Copyright © 2017, 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2019 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2019 Nicolas Goaziou <mail@nicolasgoaziou.fr>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -45,6 +46,7 @@
#:use-module (gnu packages ncurses)
#:use-module (gnu packages pcre)
#:use-module (gnu packages pkg-config)
+ #:use-module (gnu packages python-xyz)
#:use-module (gnu packages qt)
#:use-module (gnu packages regex)
#:use-module (gnu packages ruby)
@@ -389,3 +391,46 @@ projects. The EditorConfig project maintains a file format and plugins for
various text editors which allow this file format to be read and used by those
editors.")
(license license:bsd-2)))
+
+(define-public geany
+ (package
+ (name "geany")
+ (version "1.35")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "https://download.geany.org/"
+ "geany-" version ".tar.bz2"))
+ (sha256
+ (base32
+ "179xfnvhcxsv54v2mlrhykqv2j7klniln5sffvqqpjmdvwyivvim"))))
+ (build-system gnu-build-system)
+ (native-inputs
+ `(("doxygen" ,doxygen)
+ ("intltool" ,intltool)
+ ("pkg-config" ,pkg-config)
+ ("python-docutils" ,python-docutils))) ;for rst2html
+ ;; TODO: Unbundle scintilla when packaged.
+ (inputs
+ `(("gtk+" ,gtk+)))
+ (home-page "https://www.geany.org")
+ (synopsis "Fast and lightweight IDE")
+ (description "Geany is a small and fast Integrated Development
+Environment (IDE) that only has a few dependencies on other packages and is as
+independent as possible from special desktop environments like KDE or GNOME.
+
+The basic features of Geany are:
+@itemize
+@item syntax highlighting
+@item code completion
+@item auto completion of often constructed constructs like if, for and while
+@item auto completion of XML and HTML tags
+@item call tips
+@item folding
+@item many supported filetypes like C, Java, PHP, HTML, Python, Perl, Pascal
+@item symbol lists
+@item embedded terminal emulation
+@item extensibility through plugins
+@end itemize")
+ ;; Software is packaged under GPL2+ terms. Scintilla is bundled with
+ ;; Geany.
+ (license (list license:gpl2+ license:scintilla))))
--
2.22.0
From 04d9e080967cab864cd76565e9697bda73eff781 Mon Sep 17 00:00:00 2001
From: Nicolas Goaziou <mail@nicolasgoaziou.fr>
Date: Thu, 13 Jun 2019 00:13:27 +0200
Subject: [PATCH 3/3] gnu: Add scintilla.

* gnu/packages/text-editors.scm (scintilla): New variable.
---
gnu/packages/text-editors.scm | 55 +++++++++++++++++++++++++++++++++++
1 file changed, 55 insertions(+)

Toggle diff (68 lines)
diff --git a/gnu/packages/text-editors.scm b/gnu/packages/text-editors.scm
index 383257f36d..a7efce5830 100644
--- a/gnu/packages/text-editors.scm
+++ b/gnu/packages/text-editors.scm
@@ -392,6 +392,61 @@ various text editors which allow this file format to be read and used by those
editors.")
(license license:bsd-2)))
+(define-public scintilla
+ (package
+ (name "scintilla")
+ (version "4.1.5")
+ (source (origin
+ (method url-fetch)
+ (uri (let ((v (apply string-append (string-split version #\.))))
+ (string-append
+ "https://www.scintilla.org/scintilla" v ".tgz")))
+ (sha256
+ (base32
+ "1c24hfrl0wzb8674bjjql5105nlp6h31gj7axjaf7akkf8yisyab"))))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:tests? #f ;require un-packaged Pyside
+ #:phases
+ (modify-phases %standard-phases
+ (delete 'configure) ;no configure script
+ (add-before 'build 'expand-C++-include-path
+ (lambda* (#:key inputs #:allow-other-keys)
+ ;; Make <gcc>/include/c++/ext/string_conversions.h find
+ ;; <stdlib.h>.
+ (let* ((path "CPLUS_INCLUDE_PATH")
+ (gcc (assoc-ref inputs "gcc"))
+ (c++ (string-append gcc "/include/c++")))
+ (setenv path (string-append c++ ":" (getenv path))))
+ #t))
+ (replace 'build
+ (lambda _ (invoke "make" "GTK3=1" "CC=gcc" "-Cgtk")))
+ (replace 'install
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (lib (string-append out "/lib/scintilla"))
+ (include (string-append out "/include/scintilla")))
+ (install-file "bin/scintilla.a" lib)
+ (for-each (lambda (f) (install-file f include))
+ (find-files "include/" "."))
+ #t))))))
+ (native-inputs
+ `(("gcc" ,gcc-7) ;require GCC 7.1+
+ ("pkg-config" ,pkg-config)))
+ (inputs
+ `(("gtk+" ,gtk+)))
+ (home-page "https://www.scintilla.org/")
+ (synopsis "Code editor for GTK+")
+ (description "Scintilla is a source code editing component for
+GTK+. It has the usual features found in text editing components, as
+well as some that are especially useful for editing and debugging
+source code; these include support for syntax styling, error
+indicators, code completion and call tips. Styling choices are more
+open than with many editors: Scintilla lets you use proportional
+fonts, bold and italics, multiple foreground and background colours,
+and multiple fonts.")
+ (license license:scintilla)))
+
(define-public geany
(package
(name "geany")
--
2.22.0
A
A
Arun Isaac wrote on 15 Jun 2019 09:21
(name . Nicolas Goaziou)(address . mail@nicolasgoaziou.fr)(address . 36043@debbugs.gnu.org)
cu7ftobb9fm.fsf@systemreboot.net
Toggle quote (2 lines)
> I actually packaged scintilla

Nice!

Toggle quote (3 lines)
> but I failed unbundling it from Geany. I attach the three patches I
> put up so far.

The scintilla package is not producing a shared library
(libscintilla.so). That is why you were not able to link it to geany. It
took a bit of substitute* surgery of the makefiles, but I managed to get
this working. Please see my attached patches. Ideally, we should get
scintilla and geany upstreams to support unbundling. Could you raise
these issues upstream?

Toggle quote (4 lines)
> Subject: [PATCH 1/3] gnu: Add scintilla license.
>
> * guix/licenses.scm (scintilla): New variable.

The scintilla license is the ISC license. See

Toggle quote (3 lines)
> + (replace 'build
> + (lambda _ (invoke "make" "GTK3=1" "CC=gcc" "-Cgtk")))

This can be done by specifying #:make-flags. No need to replace the
build phase.

Toggle quote (10 lines)
> + (replace 'install
> + (lambda* (#:key outputs #:allow-other-keys)
> + (let* ((out (assoc-ref outputs "out"))
> + (lib (string-append out "/lib/scintilla"))
> + (include (string-append out "/include/scintilla")))
> + (install-file "bin/scintilla.a" lib)
> + (for-each (lambda (f) (install-file f include))
> + (find-files "include/" "."))
> + #t))))))

The headers should be installed in /include, not in
/include/scintilla. The libraries should be installed in /lib, not in
/lib/scintilla.

The changes specified in the comments above are also included in the
attached patches. Please feel free to refine my patches as required.

Thanks!
From 7e9a2b92b9bcf948b8c286a1269f6c2bd42a00eb Mon Sep 17 00:00:00 2001
From: Nicolas Goaziou <mail@nicolasgoaziou.fr>
Date: Thu, 13 Jun 2019 00:13:27 +0200
Subject: [PATCH 1/2] gnu: Add scintilla.

* gnu/packages/text-editors.scm (scintilla): New variable.
---
gnu/packages/text-editors.scm | 63 +++++++++++++++++++++++++++++++++++
1 file changed, 63 insertions(+)

Toggle diff (80 lines)
diff --git a/gnu/packages/text-editors.scm b/gnu/packages/text-editors.scm
index 534934dfd1..16f867184d 100644
--- a/gnu/packages/text-editors.scm
+++ b/gnu/packages/text-editors.scm
@@ -7,6 +7,7 @@
;;; Copyright © 2014 Taylan Ulrich Bay?rl?/Kammer <taylanbayirli@gmail.org>
;;; Copyright © 2017, 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2019 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2019 Nicolas Goaziou <mail@nicolasgoaziou.fr>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -389,3 +390,65 @@ projects. The EditorConfig project maintains a file format and plugins for
various text editors which allow this file format to be read and used by those
editors.")
(license license:bsd-2)))
+
+(define-public scintilla
+ (package
+ (name "scintilla")
+ (version "4.1.5")
+ (source (origin
+ (method url-fetch)
+ (uri (let ((v (apply string-append (string-split version #\.))))
+ (string-append
+ "https://www.scintilla.org/scintilla" v ".tgz")))
+ (sha256
+ (base32
+ "1c24hfrl0wzb8674bjjql5105nlp6h31gj7axjaf7akkf8yisyab"))))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:make-flags (list "GTK3=1" "CC=gcc" "-Cgtk")
+ #:tests? #f ;require un-packaged Pyside
+ #:phases
+ (modify-phases %standard-phases
+ (delete 'configure) ;no configure script
+ (add-after 'unpack 'build-shared-library
+ (lambda _
+ (substitute* "gtk/makefile"
+ (("scintilla\\.a") "libscintilla.so")
+ (("\\$\\(AR\\) \\$\\(ARFLAGS\\) \\$@ \\$\\^")
+ "$(CC) -shared $^ -o $@")
+ (("\\$\\(RANLIB\\) \\$@") ""))
+ #t))
+ (add-before 'build 'expand-C++-include-path
+ (lambda* (#:key inputs #:allow-other-keys)
+ ;; Make <gcc>/include/c++/ext/string_conversions.h find
+ ;; <stdlib.h>.
+ (let* ((path "CPLUS_INCLUDE_PATH")
+ (gcc (assoc-ref inputs "gcc"))
+ (c++ (string-append gcc "/include/c++")))
+ (setenv path (string-append c++ ":" (getenv path))))
+ #t))
+ (replace 'install
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (lib (string-append out "/lib"))
+ (include (string-append out "/include")))
+ (install-file "bin/libscintilla.so" lib)
+ (for-each (lambda (f) (install-file f include))
+ (find-files "include/" "."))
+ #t))))))
+ (native-inputs
+ `(("gcc" ,gcc-7) ;require GCC 7.1+
+ ("pkg-config" ,pkg-config)))
+ (inputs
+ `(("gtk+" ,gtk+)))
+ (home-page "https://www.scintilla.org/")
+ (synopsis "Code editor for GTK+")
+ (description "Scintilla is a source code editing component for
+GTK+. It has the usual features found in text editing components, as
+well as some that are especially useful for editing and debugging
+source code; these include support for syntax styling, error
+indicators, code completion and call tips. Styling choices are more
+open than with many editors: Scintilla lets you use proportional
+fonts, bold and italics, multiple foreground and background colours,
+and multiple fonts.")
+ (license license:isc)))
--
2.22.0
From 738e1b31ad695e54e1ab5fca199679003c2a9129 Mon Sep 17 00:00:00 2001
From: Nicolas Goaziou <mail@nicolasgoaziou.fr>
Date: Sat, 1 Jun 2019 23:37:24 +0200
Subject: [PATCH 2/2] gnu: Add geany.

* gnu/packages/text-editors.scm (geany): New variable.
---
gnu/packages/text-editors.scm | 68 +++++++++++++++++++++++++++++++++++
1 file changed, 68 insertions(+)

Toggle diff (92 lines)
diff --git a/gnu/packages/text-editors.scm b/gnu/packages/text-editors.scm
index 16f867184d..c143c06e3b 100644
--- a/gnu/packages/text-editors.scm
+++ b/gnu/packages/text-editors.scm
@@ -35,6 +35,7 @@
#:use-module ((guix licenses) #:prefix license:)
#:use-module (gnu packages)
#:use-module (gnu packages assembly)
+ #:use-module (gnu packages autotools)
#:use-module (gnu packages boost)
#:use-module (gnu packages documentation)
#:use-module (gnu packages gcc)
@@ -46,6 +47,7 @@
#:use-module (gnu packages ncurses)
#:use-module (gnu packages pcre)
#:use-module (gnu packages pkg-config)
+ #:use-module (gnu packages python-xyz)
#:use-module (gnu packages qt)
#:use-module (gnu packages regex)
#:use-module (gnu packages ruby)
@@ -452,3 +454,69 @@ open than with many editors: Scintilla lets you use proportional
fonts, bold and italics, multiple foreground and background colours,
and multiple fonts.")
(license license:isc)))
+
+(define-public geany
+ (package
+ (name "geany")
+ (version "1.35")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "https://download.geany.org/"
+ "geany-" version ".tar.bz2"))
+ (sha256
+ (base32
+ "179xfnvhcxsv54v2mlrhykqv2j7klniln5sffvqqpjmdvwyivvim"))
+ (modules '((guix build utils)))
+ (snippet '(begin
+ (delete-file-recursively "scintilla")
+ #t))))
+ (build-system gnu-build-system)
+ (native-inputs
+ `(("autoconf" ,autoconf)
+ ("automake" ,automake)
+ ("doxygen" ,doxygen)
+ ("glib" ,glib "bin")
+ ("intltool" ,intltool)
+ ("libtool" ,libtool)
+ ("pkg-config" ,pkg-config)
+ ("python-docutils" ,python-docutils))) ;for rst2html
+ (inputs
+ `(("gtk+" ,gtk+)
+ ("scintilla" ,scintilla)))
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'use-scintilla-shared-library
+ (lambda* (#:key inputs #:allow-other-keys)
+ (substitute* "configure.ac"
+ (("scintilla/Makefile") "")
+ (("scintilla/include/Makefile") ""))
+ (substitute* "Makefile.am"
+ (("scintilla ") ""))
+ (substitute* "src/Makefile.am"
+ (("\\$\\(top_builddir\\)/scintilla/libscintilla.la") "")
+ (("geany_LDFLAGS =" all) (string-append all " -lscintilla")))
+ (substitute* "doc/Makefile.am"
+ (("\\$\\(INSTALL_DATA\\) \\$\\(top_srcdir\\)/scintilla/License.txt \\$\\(DOCDIR\\)/ScintillaLicense.txt") ""))
+ (for-each delete-file (list "autogen.sh" "configure" "Makefile.in"))
+ #t)))))
+ (home-page "https://www.geany.org")
+ (synopsis "Fast and lightweight IDE")
+ (description "Geany is a small and fast Integrated Development
+Environment (IDE) that only has a few dependencies on other packages and is as
+independent as possible from special desktop environments like KDE or GNOME.
+
+The basic features of Geany are:
+@itemize
+@item syntax highlighting
+@item code completion
+@item auto completion of often constructed constructs like if, for and while
+@item auto completion of XML and HTML tags
+@item call tips
+@item folding
+@item many supported filetypes like C, Java, PHP, HTML, Python, Perl, Pascal
+@item symbol lists
+@item embedded terminal emulation
+@item extensibility through plugins
+@end itemize")
+ (license (list license:gpl2+))))
--
2.22.0
-----BEGIN PGP SIGNATURE-----

iQEzBAEBCAAdFiEEf3MDQ/Lwnzx3v3nTLiXui2GAK7MFAl0EnH4ACgkQLiXui2GA
K7MKhAf/QsQ3UYOykRgTLxfCWPv1YPQ7R3pG32P+w2AFtmNaAlDi7EwMSFtHEsw2
SKq8DF48cC3x7VON7TYTt5WnoCLFyYqTAOmBbpet2NSKBkHvpmq4IiuTCQx7NXVl
cTnTYxyOpNbP7H9sMIVncNDjsVW/cG8dJ4eBTEvChDlKv2hu6Cutc4lJL/REUqhQ
JgAoaoJ6uRhajoVFkHRrkXL9feASZCtns9Sqkv7nucjtp/hlQswmYlVCeBQ+VMEh
IsZlP2Bhp7dab8KxqiNFbsBEUjlLYh0hQbn0EDzWUjOZkwPvv8WWkuRtIWH0pi9U
t/HUcJ+7ursbVQJkQHKmBIdztUB0eQ==
=KYVJ
-----END PGP SIGNATURE-----

N
N
Nicolas Goaziou wrote on 17 Jun 2019 22:29
(name . Arun Isaac)(address . arunisaac@systemreboot.net)(address . 36043@debbugs.gnu.org)
87blywrm5s.fsf@nicolasgoaziou.fr
Hello,

Arun Isaac <arunisaac@systemreboot.net> writes:

Toggle quote (6 lines)
>> I actually packaged scintilla
> The scintilla package is not producing a shared library
> (libscintilla.so). That is why you were not able to link it to geany. It
> took a bit of substitute* surgery of the makefiles, but I managed to get
> this working. Please see my attached patches.

Thank you for keeping the ball rolling!

Toggle quote (3 lines)
> Ideally, we should get scintilla and geany upstreams to support
> unbundling. Could you raise these issues upstream?

I have bad news: see


It may not be worth to unbundle Scintilla, then.

Guix has no proper way to use inputs' static libraries in a package?

Toggle quote (3 lines)
> The scintilla license is the ISC license. See
> https://directory.fsf.org/wiki/License:ISC

This doesn't look right. See https://www.scintilla.org/License.txt
This is not ISC.

Toggle quote (4 lines)
> The headers should be installed in /include, not in
> /include/scintilla. The libraries should be installed in /lib, not in
> /lib/scintilla.

Hmm I think I made the same mistake in nauty… because I saw another
packages doing it too. So there are at least 2 other packages in the
code base doing the same.

Toggle quote (3 lines)
> The changes specified in the comments above are also included in the
> attached patches. Please feel free to refine my patches as required.

Since then, Scintilla team released 4.1.7.

WDYT?

Regards,

--
Nicolas Goaziou
A
A
Arun Isaac wrote on 18 Jun 2019 21:45
(name . Nicolas Goaziou)(address . mail@nicolasgoaziou.fr)(address . 36043@debbugs.gnu.org)
cu7blyuhe4c.fsf@systemreboot.net
Toggle quote (6 lines)
> I have bad news: see
>
> https://sourceforge.net/p/scintilla/feature-requests/555/
>
> It may not be worth to unbundle Scintilla, then.

This isn't particularly bad news. In that thread, Scintilla has agreed
to allow an optional shared library build for people (like us) who
really want it. But, the issue has been closed because it has been many
years and no one has volunteered a patch.

I think we should go ahead with our unbundled shared library Scintilla
package. We could also contribute our work upstream to Scintilla and
they seem willing to accept it.

Toggle quote (2 lines)
> Guix has no proper way to use inputs' static libraries in a package?

We could make the static library scintilla package a native-input of
geany and add a phase copying the static library to the appropriate path
before building. Normally, static libraries embedded by upstream in the
source make it harder to update. If Guix controls the embedding, this
problem would admittedly cease to exist. But, I think we should still
prefer the shared library approach because shared libraries are more
efficient on disk and memory usage.

Toggle quote (6 lines)
>> The scintilla license is the ISC license. See
>> https://directory.fsf.org/wiki/License:ISC
>
> This doesn't look right. See https://www.scintilla.org/License.txt
> This is not ISC.

The wording of both these licenses are so similar that I would consider
them to be effectively the same. But, I am not a lawyer, and I can't
claim to know too much about copyright. Should we raise this question
with guix-devel?

Toggle quote (8 lines)
>> The headers should be installed in /include, not in
>> /include/scintilla. The libraries should be installed in /lib, not in
>> /lib/scintilla.
>
> Hmm I think I made the same mistake in nauty… because I saw another
> packages doing it too. So there are at least 2 other packages in the
> code base doing the same.

Note that some packages like gsl put the headers in /include/gsl because
they are meant to be included, say as

#include <gsl/gsl_vector.h>

and not as

#include <gsl_vector.h>

So, the include headers install location is dependent on the package's
conventions.

As for nauty, their documentation specifies including as

#include <nauty.h>

So, the headers should be installed to /include.

Toggle quote (2 lines)
> Since then, Scintilla team released 4.1.7.

Ok. Let's update our Scintilla package to 4.1.7. Shouldn't be a problem.
-----BEGIN PGP SIGNATURE-----

iQEzBAEBCAAdFiEEf3MDQ/Lwnzx3v3nTLiXui2GAK7MFAl0JP0MACgkQLiXui2GA
K7NK0wf9E0OQJMMiupTjlfWXfuj9GKr5M0BfMDOU5NR/RJHwmWYARcySRFFl+ooi
BPGOkuzoTyK2k0rUrkOY1I0enwqC/aCUraEwcNFmKkxQfk9N0qbWLZABVIKm1XdL
0Ow3gZTNLlLobFE2aTowH3eDIW7jGFVhq9Za80ExLx/NnNrnqDGVM2X2LQ+GrmFT
g88jTgKrxw+R3WME1ed2agCLkJHZNJtpgJAYPmC0Jb8FXtTDAUP50mPiTimWBjkp
vDh6KbeokxCG6z6evdTXZSjW4f8ZaQlnObEzzrXDqt9loSQgdVipjf/NFMdagwXN
K3s+RKNzaPUPH94cUEfrQrN6DqiDdg==
=NG0P
-----END PGP SIGNATURE-----

N
N
Nicolas Goaziou wrote on 19 Jun 2019 13:16
(name . Arun Isaac)(address . arunisaac@systemreboot.net)(address . 36043@debbugs.gnu.org)
87fto5rfjy.fsf@nicolasgoaziou.fr
Hello,

Arun Isaac <arunisaac@systemreboot.net> writes:

Toggle quote (5 lines)
> This isn't particularly bad news. In that thread, Scintilla has agreed
> to allow an optional shared library build for people (like us) who
> really want it. But, the issue has been closed because it has been many
> years and no one has volunteered a patch.

Scintilla has agreed to allow an optional shared library if there is
also zero maintenance on their side (even when their ABI breaks). Since
this would eventually require maintenance, the submitter dropped
their request.

Toggle quote (4 lines)
> I think we should go ahead with our unbundled shared library Scintilla
> package. We could also contribute our work upstream to Scintilla and
> they seem willing to accept it.

OTOH, using the static library is possibly (I failed at that, too)
straightforward, in the sense that we would not patch Scintilla. It is
worth considering this, too.

In any case, I do not volunteer to contribute our work upstream as it is
still above my pay grade.

Toggle quote (5 lines)
> The wording of both these licenses are so similar that I would consider
> them to be effectively the same. But, I am not a lawyer, and I can't
> claim to know too much about copyright. Should we raise this question
> with guix-devel?

Scintilla's license has one more clause, but we can ask Guix devel.

Toggle quote (18 lines)
> Note that some packages like gsl put the headers in /include/gsl because
> they are meant to be included, say as
>
> #include <gsl/gsl_vector.h>
>
> and not as
>
> #include <gsl_vector.h>
>
> So, the include headers install location is dependent on the package's
> conventions.
>
> As for nauty, their documentation specifies including as
>
> #include <nauty.h>
>
> So, the headers should be installed to /include.

OK. And what about the lib/, i.e., when should it be "/lib/name" instead
of "/lib/"

Toggle quote (2 lines)
> Ok. Let's update our Scintilla package to 4.1.7. Shouldn't be a problem.

Indeed. Let's first sort out the issues around license (I'm going to
ask Guix devel about it) and bundling first.

Regards,

--
Nicolas Goaziou
A
A
Arun Isaac wrote on 25 Jun 2019 11:54
(name . Nicolas Goaziou)(address . mail@nicolasgoaziou.fr)(address . 36043@debbugs.gnu.org)
cu7wohaf0s1.fsf@systemreboot.net
Toggle quote (8 lines)
>> I think we should go ahead with our unbundled shared library Scintilla
>> package. We could also contribute our work upstream to Scintilla and
>> they seem willing to accept it.
>
> OTOH, using the static library is possibly (I failed at that, too)
> straightforward, in the sense that we would not patch Scintilla. It is
> worth considering this, too.

I would prefer the shared library because it is more efficient on
memory/disk usage and it seems cleaner and more modular. However,
scintilla is a small library and is not used by too many packages,
therefore the advantages are small. Meanwhile, patching scintilla to
build a shared library is messy and using the static library would
indeed be easier. But, if we are using the static library, why should we
unbundle at all?

I don't know if Guix has a clear policy on these matters. I think we
should consult guix-devel and ask for others' opinions.

Toggle quote (3 lines)
> In any case, I do not volunteer to contribute our work upstream as it is
> still above my pay grade.

No problem, I understand.

Toggle quote (2 lines)
> Scintilla's license has one more clause, but we can ask Guix devel.

I guess we should use the hpnd license now, as discussed in guix-devel.

Toggle quote (3 lines)
> And what about the lib/, i.e., when should it be "/lib/name" instead
> of "/lib/"

I don't have as good an answer for this. A quick look at my
~/.guix-profile/lib shows almost all packages having their shared
libraries in /lib, not in /lib/name. And, just including scintilla in
geany's inputs and passing '-lscintilla' in geany_LDFLAGS was enough for
the linker to find libscintilla.so correctly. So, I assumed I had done
it right. :-P
-----BEGIN PGP SIGNATURE-----

iQEzBAEBCAAdFiEEf3MDQ/Lwnzx3v3nTLiXui2GAK7MFAl0R704ACgkQLiXui2GA
K7OfmQf/SXN8x/WRc0zCsoahiM8tU5S8wNDLwCZORopjDy+g/4qMrjhHqaraTwta
aCGVbRTD+JSb64XGxY+vPpzDhq9/KIdvrftjghK2neaEW9M+1AkjjFa0rM9ch4Re
EzkqXXhwpng9kiwncbJ4UUNaPUb2Ky9C1ohlQEjPb0bo4cwjoFkP4ZuJrOTyMHj0
kUNL05Or5LI6N57ihmJ9pr1URo+JrrbqOpTogFMAoXXHTrAUzy6wzrE6piVS4CbV
nXGD7CG4r7AFYRhVZkzHUS63LkFrWme1rVP0A5cgBOHWz7g+fwZpJm0wV6fuwfsW
hlLG8ZBZ5qx9oxxxvc5uq+jRuBi3KQ==
=JWur
-----END PGP SIGNATURE-----

A
A
Arun Isaac wrote on 23 Jul 2019 13:07
(name . Nicolas Goaziou)(address . mail@nicolasgoaziou.fr)(address . 36043@debbugs.gnu.org)
cu75zntf1qq.fsf@systemreboot.net
Hi,

Just a friendly ping. Can we finish this package one way or the other --
with or without a bundled scintilla? Perhaps you can just leave a TODO
comment for someone to pick up on later. I'm just worried it's taking
too long for this relatively simple package.

Thanks,
Arun.
-----BEGIN PGP SIGNATURE-----

iQEzBAEBCAAdFiEEf3MDQ/Lwnzx3v3nTLiXui2GAK7MFAl026m4ACgkQLiXui2GA
K7N3rwf/fayCgmnuD408eXQS5eCqaOdtpDDYxv2g2jVOEyFDRM4sfFksTauNJGJT
zgLBuC03bINBfUoIKdO2LM8rlWtW1ypgbvqgt5EkklYRFGWt6ucfiufWPaT/9qpu
UI05CpbVWPDobNeM0av/Ln0PVy+ZcUPtCmrFuJbeoN7qiIp3r+cWuBC8jQRXfmaO
Dz2M2lJ5O/u7fyjb2AA5YNw744fS8lqsKjGy+HgjKKpl5hR40pTiGJcLnXtIFM2y
xvemYsrRXMCxc3lhGdloy/Ihmi/y4t2PSQPZuxUGmqHsDgsOPw8cisHji1oqcpJU
GZAURs8djEbi677LytlebJBumq6BIg==
=5G1Y
-----END PGP SIGNATURE-----

N
N
Nicolas Goaziou wrote on 30 Jul 2019 09:59
(name . Arun Isaac)(address . arunisaac@systemreboot.net)(address . 36043@debbugs.gnu.org)
87ftmoosvq.fsf@nicolasgoaziou.fr
Hello,

Arun Isaac <arunisaac@systemreboot.net> writes:

Toggle quote (5 lines)
> Just a friendly ping. Can we finish this package one way or the other --
> with or without a bundled scintilla? Perhaps you can just leave a TODO
> comment for someone to pick up on later. I'm just worried it's taking
> too long for this relatively simple package.

Here are the current patches, with all the discussed suggestions
integrated (IIRC), and Scintilla updated to its latest release.

Regards,

--
Nicolas Goaziou
From 979f7629c18a42f2be450cb25b06665694033b2d Mon Sep 17 00:00:00 2001
From: Nicolas Goaziou <mail@nicolasgoaziou.fr>
Date: Thu, 13 Jun 2019 00:13:27 +0200
Subject: [PATCH 1/2] gnu: Add scintilla.

* gnu/packages/text-editors.scm (scintilla): New variable.
---
gnu/packages/text-editors.scm | 62 +++++++++++++++++++++++++++++++++++
1 file changed, 62 insertions(+)

Toggle diff (72 lines)
diff --git a/gnu/packages/text-editors.scm b/gnu/packages/text-editors.scm
index b35486ba59..1d9cd09f43 100644
--- a/gnu/packages/text-editors.scm
+++ b/gnu/packages/text-editors.scm
@@ -437,3 +437,65 @@ types of content. It has robust support for mathematical formulas and plots.
and Octave. TeXmacs is completely extensible via Guile.")
(license license:gpl3+)
(home-page "https://www.texmacs.org/tmweb/home/welcome.en.html")))
+
+(define-public scintilla
+ (package
+ (name "scintilla")
+ (version "4.2.0")
+ (source (origin
+ (method url-fetch)
+ (uri (let ((v (apply string-append (string-split version #\.))))
+ (string-append
+ "https://www.scintilla.org/scintilla" v ".tgz")))
+ (sha256
+ (base32
+ "02ymi86fpcypg6423vfr54lbkxbks046q02v3m3dypawcf3bqy42"))))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:make-flags (list "GTK3=1" "CC=gcc" "-Cgtk")
+ #:tests? #f ;require un-packaged Pyside
+ #:phases
+ (modify-phases %standard-phases
+ (delete 'configure) ;no configure script
+ (add-after 'unpack 'build-shared-library
+ (lambda _
+ (substitute* "gtk/makefile"
+ (("scintilla\\.a") "libscintilla.so")
+ (("\\$\\(AR\\) \\$\\(ARFLAGS\\) \\$@ \\$\\^")
+ "$(CC) -shared $^ -o $@")
+ (("\\$\\(RANLIB\\) \\$@") ""))
+ #t))
+ (add-before 'build 'expand-C++-include-path
+ (lambda* (#:key inputs #:allow-other-keys)
+ ;; Make <gcc>/include/c++/ext/string_conversions.h find
+ ;; <stdlib.h>.
+ (let* ((path "CPLUS_INCLUDE_PATH")
+ (gcc (assoc-ref inputs "gcc"))
+ (c++ (string-append gcc "/include/c++")))
+ (setenv path (string-append c++ ":" (getenv path))))
+ #t))
+ (replace 'install
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (lib (string-append out "/lib"))
+ (include (string-append out "/include")))
+ (install-file "bin/libscintilla.so" lib)
+ (for-each (lambda (f) (install-file f include))
+ (find-files "include/" "."))
+ #t))))))
+ (native-inputs
+ `(("gcc" ,gcc-7) ;require GCC 7.1+
+ ("pkg-config" ,pkg-config)))
+ (inputs
+ `(("gtk+" ,gtk+)))
+ (home-page "https://www.scintilla.org/")
+ (synopsis "Code editor for GTK+")
+ (description "Scintilla is a source code editing component for
+GTK+. It has the usual features found in text editing components, as
+well as some that are especially useful for editing and debugging
+source code; these include support for syntax styling, error
+indicators, code completion and call tips. Styling choices are more
+open than with many editors: Scintilla lets you use proportional
+fonts, bold and italics, multiple foreground and background colours,
+and multiple fonts.")
+ (license license:hpnd)))
--
2.22.0
From 25a507a7ed5383ae26f11b568143dc89227aec37 Mon Sep 17 00:00:00 2001
From: Nicolas Goaziou <mail@nicolasgoaziou.fr>
Date: Sat, 1 Jun 2019 23:37:24 +0200
Subject: [PATCH 2/2] gnu: Add geany.

* gnu/packages/text-editors.scm (geany): New variable.
---
gnu/packages/text-editors.scm | 69 +++++++++++++++++++++++++++++++++++
1 file changed, 69 insertions(+)

Toggle diff (100 lines)
diff --git a/gnu/packages/text-editors.scm b/gnu/packages/text-editors.scm
index 1d9cd09f43..7d5f6797dc 100644
--- a/gnu/packages/text-editors.scm
+++ b/gnu/packages/text-editors.scm
@@ -8,6 +8,7 @@
;;; Copyright © 2017, 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2019 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2019 Andreas Enge <andreas@enge.fr>
+;;; Copyright © 2019 Nicolas Goaziou <mail@nicolasgoaziou.fr>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -35,6 +36,7 @@
#:use-module ((guix licenses) #:prefix license:)
#:use-module (gnu packages)
#:use-module (gnu packages assembly)
+ #:use-module (gnu packages autotools)
#:use-module (gnu packages boost)
#:use-module (gnu packages documentation)
#:use-module (gnu packages fontutils)
@@ -50,6 +52,7 @@
#:use-module (gnu packages perl)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages python)
+ #:use-module (gnu packages python-xyz)
#:use-module (gnu packages qt)
#:use-module (gnu packages regex)
#:use-module (gnu packages ruby)
@@ -499,3 +502,69 @@ open than with many editors: Scintilla lets you use proportional
fonts, bold and italics, multiple foreground and background colours,
and multiple fonts.")
(license license:hpnd)))
+
+(define-public geany
+ (package
+ (name "geany")
+ (version "1.35")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "https://download.geany.org/"
+ "geany-" version ".tar.bz2"))
+ (sha256
+ (base32
+ "179xfnvhcxsv54v2mlrhykqv2j7klniln5sffvqqpjmdvwyivvim"))
+ (modules '((guix build utils)))
+ (snippet '(begin
+ (delete-file-recursively "scintilla")
+ #t))))
+ (build-system gnu-build-system)
+ (native-inputs
+ `(("autoconf" ,autoconf)
+ ("automake" ,automake)
+ ("doxygen" ,doxygen)
+ ("glib" ,glib "bin")
+ ("intltool" ,intltool)
+ ("libtool" ,libtool)
+ ("pkg-config" ,pkg-config)
+ ("python-docutils" ,python-docutils))) ;for rst2html
+ (inputs
+ `(("gtk+" ,gtk+)
+ ("scintilla" ,scintilla)))
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'use-scintilla-shared-library
+ (lambda* (#:key inputs #:allow-other-keys)
+ (substitute* "configure.ac"
+ (("scintilla/Makefile") "")
+ (("scintilla/include/Makefile") ""))
+ (substitute* "Makefile.am"
+ (("scintilla ") ""))
+ (substitute* "src/Makefile.am"
+ (("\\$\\(top_builddir\\)/scintilla/libscintilla.la") "")
+ (("geany_LDFLAGS =" all) (string-append all " -lscintilla")))
+ (substitute* "doc/Makefile.am"
+ (("\\$\\(INSTALL_DATA\\) \\$\\(top_srcdir\\)/scintilla/License.txt \\$\\(DOCDIR\\)/ScintillaLicense.txt") ""))
+ (for-each delete-file (list "autogen.sh" "configure" "Makefile.in"))
+ #t)))))
+ (home-page "https://www.geany.org")
+ (synopsis "Fast and lightweight IDE")
+ (description "Geany is a small and fast Integrated Development
+Environment (IDE) that only has a few dependencies on other packages and is as
+independent as possible from special desktop environments like KDE or GNOME.
+
+The basic features of Geany are:
+@itemize
+@item syntax highlighting
+@item code completion
+@item auto completion of often constructed constructs like if, for and while
+@item auto completion of XML and HTML tags
+@item call tips
+@item folding
+@item many supported filetypes like C, Java, PHP, HTML, Python, Perl, Pascal
+@item symbol lists
+@item embedded terminal emulation
+@item extensibility through plugins
+@end itemize")
+ (license license:gpl2+)))
--
2.22.0
A
A
Arun Isaac wrote on 30 Jul 2019 13:38
(name . Nicolas Goaziou)(address . mail@nicolasgoaziou.fr)(address . 36043@debbugs.gnu.org)
cu7zhkv4us3.fsf@systemreboot.net
Toggle quote (3 lines)
> Here are the current patches, with all the discussed suggestions
> integrated (IIRC), and Scintilla updated to its latest release.

LGTM! Please push to master. Thanks.
-----BEGIN PGP SIGNATURE-----

iQEzBAEBCAAdFiEEf3MDQ/Lwnzx3v3nTLiXui2GAK7MFAl1ALCwACgkQLiXui2GA
K7MWwwgAyEZv4gq7ycZet+wpdBZ6ZgQXDaQAINFQor3u68lz3S2TQ2LpbeDr5CIn
qSaAGS/A5Zicxbi6GuEJhTEhPwu66w20MnxJbxTme5Q3NDBZY/QUW51W1hY3QqAZ
6bhPACOSbXp6i1zb71vQZ9LgYXyrtUwhmyojXbbZJ04qMyqRUsNXVEUYQlwCSMYA
xKMyhJeUHdr0Loxd+kdZi2VEzpXI7+zsttmfCPq8jmL1E1Cb60l0I680pM9UOd+i
vPhUqg56b/6cYNcS5eOjksb5afWnFOHzjRU3Hkuu+CtN4R6VvPieot6Cvv7kp2F9
+UBq9O2r9s3uI1Fies5yqiXd1dq5NQ==
=wyYH
-----END PGP SIGNATURE-----

N
N
Nicolas Goaziou wrote on 30 Jul 2019 20:04
(name . Arun Isaac)(address . arunisaac@systemreboot.net)(address . 36043-done@debbugs.gnu.org)
875znjpfem.fsf@nicolasgoaziou.fr
Arun Isaac <arunisaac@systemreboot.net> writes:

Toggle quote (2 lines)
> LGTM! Please push to master. Thanks.

Done. Thank you.
Closed
?