unofficial mirror of guix-patches@gnu.org 
 help / color / mirror / code / Atom feed
* [bug#36043] [PATCH] Add Geany
@ 2019-06-01 21:38 Nicolas Goaziou
  2019-06-04 12:25 ` Arun Isaac
  0 siblings, 1 reply; 15+ messages in thread
From: Nicolas Goaziou @ 2019-06-01 21:38 UTC (permalink / raw)
  To: 36043

[-- Attachment #1: Type: text/plain, Size: 83 bytes --]

Hello,

The following patch adds Geany text editor.

Regards,

-- 
Nicolas Goaziou

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: Add geany --]
[-- Type: text/x-diff, Size: 2281 bytes --]

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(+)

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


^ permalink raw reply related	[flat|nested] 15+ messages in thread

* [bug#36043] [PATCH] Add Geany
  2019-06-01 21:38 [bug#36043] [PATCH] Add Geany Nicolas Goaziou
@ 2019-06-04 12:25 ` Arun Isaac
  2019-06-05 21:01   ` Nicolas Goaziou
  0 siblings, 1 reply; 15+ messages in thread
From: Arun Isaac @ 2019-06-04 12:25 UTC (permalink / raw)
  To: Nicolas Goaziou; +Cc: 36043

[-- Attachment #1: Type: text/plain, Size: 1412 bytes --]


Please add a copyright header with your name and email address.

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

> +    (inputs
> +     `(("gtk2" ,gtk+-2)))

Geany supports gtk3. Could you build with that?

> +    (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.

> Geany only requires the GTK2 runtime libraries.

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

> +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!

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 487 bytes --]

^ permalink raw reply	[flat|nested] 15+ messages in thread

* [bug#36043] [PATCH] Add Geany
  2019-06-04 12:25 ` Arun Isaac
@ 2019-06-05 21:01   ` Nicolas Goaziou
  2019-06-06 14:45     ` Arun Isaac
  2019-06-06 14:51     ` [bug#36043] " Arun Isaac
  0 siblings, 2 replies; 15+ messages in thread
From: Nicolas Goaziou @ 2019-06-05 21:01 UTC (permalink / raw)
  To: Arun Isaac; +Cc: 36043

[-- Attachment #1: Type: text/plain, Size: 1528 bytes --]

Hello,

Thank you for the feedback.

Arun Isaac <arunisaac@systemreboot.net> writes:

> 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.

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

Done.

> 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.

>> 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.
>
>> +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

[-- Attachment #2: Add geany (take 2) --]
[-- Type: text/x-diff, Size: 2643 bytes --]

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(+)

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


^ permalink raw reply related	[flat|nested] 15+ messages in thread

* [bug#36043] [PATCH] Add Geany
  2019-06-05 21:01   ` Nicolas Goaziou
@ 2019-06-06 14:45     ` Arun Isaac
  2019-06-12 22:22       ` Nicolas Goaziou
  2019-06-06 14:51     ` [bug#36043] " Arun Isaac
  1 sibling, 1 reply; 15+ messages in thread
From: Arun Isaac @ 2019-06-06 14:45 UTC (permalink / raw)
  To: Nicolas Goaziou; +Cc: 36043

[-- Attachment #1: Type: text/plain, Size: 598 bytes --]


>> 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.

> Here is the updated patch.

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

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 487 bytes --]

^ permalink raw reply	[flat|nested] 15+ messages in thread

* [bug#36043] [PATCH] Add Geany
  2019-06-05 21:01   ` Nicolas Goaziou
  2019-06-06 14:45     ` Arun Isaac
@ 2019-06-06 14:51     ` Arun Isaac
  1 sibling, 0 replies; 15+ messages in thread
From: Arun Isaac @ 2019-06-06 14:51 UTC (permalink / raw)
  To: Nicolas Goaziou; +Cc: 36043

[-- Attachment #1: Type: text/plain, Size: 147 bytes --]


> +    (license license:gpl2+)))

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

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 487 bytes --]

^ permalink raw reply	[flat|nested] 15+ messages in thread

* [bug#36043] [PATCH] Add Geany
  2019-06-06 14:45     ` Arun Isaac
@ 2019-06-12 22:22       ` Nicolas Goaziou
  2019-06-15  7:21         ` Arun Isaac
  0 siblings, 1 reply; 15+ messages in thread
From: Nicolas Goaziou @ 2019-06-12 22:22 UTC (permalink / raw)
  To: Arun Isaac; +Cc: 36043

[-- Attachment #1: Type: text/plain, Size: 603 bytes --]

Hello,

Arun Isaac <arunisaac@systemreboot.net> writes:

> 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.

> 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

[-- Attachment #2: 0001-gnu-Add-scintilla-license.patch --]
[-- Type: text/x-diff, Size: 1516 bytes --]

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(+)

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


[-- Attachment #3: 0002-gnu-Add-geany.patch --]
[-- Type: text/x-diff, Size: 3056 bytes --]

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(+)

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


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #4: 0003-gnu-Add-scintilla.patch --]
[-- Type: text/x-diff, Size: 3254 bytes --]

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(+)

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


^ permalink raw reply related	[flat|nested] 15+ messages in thread

* [bug#36043] [PATCH] Add Geany
  2019-06-12 22:22       ` Nicolas Goaziou
@ 2019-06-15  7:21         ` Arun Isaac
  2019-06-17 20:29           ` Nicolas Goaziou
  0 siblings, 1 reply; 15+ messages in thread
From: Arun Isaac @ 2019-06-15  7:21 UTC (permalink / raw)
  To: Nicolas Goaziou; +Cc: 36043


[-- Attachment #1.1: Type: text/plain, Size: 1643 bytes --]


> I actually packaged scintilla

Nice!

> 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?

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

The scintilla license is the ISC license. See
https://directory.fsf.org/wiki/License:ISC

> +         (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.

> +         (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!


[-- Attachment #1.2: 0001-gnu-Add-scintilla.patch --]
[-- Type: text/x-patch, Size: 3987 bytes --]

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(+)

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


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1.3: 0002-gnu-Add-geany.patch --]
[-- Type: text/x-patch, Size: 4075 bytes --]

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(+)

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


[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 487 bytes --]

^ permalink raw reply related	[flat|nested] 15+ messages in thread

* [bug#36043] [PATCH] Add Geany
  2019-06-15  7:21         ` Arun Isaac
@ 2019-06-17 20:29           ` Nicolas Goaziou
  2019-06-18 19:45             ` Arun Isaac
  0 siblings, 1 reply; 15+ messages in thread
From: Nicolas Goaziou @ 2019-06-17 20:29 UTC (permalink / raw)
  To: Arun Isaac; +Cc: 36043

Hello,

Arun Isaac <arunisaac@systemreboot.net> writes:

>> 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!

> Ideally, we should get scintilla and geany upstreams to support
> unbundling. Could you raise these issues upstream?

I have bad news: see 

    https://sourceforge.net/p/scintilla/feature-requests/555/

It may not be worth to unbundle Scintilla, then.

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

> 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 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.

> 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

^ permalink raw reply	[flat|nested] 15+ messages in thread

* [bug#36043] [PATCH] Add Geany
  2019-06-17 20:29           ` Nicolas Goaziou
@ 2019-06-18 19:45             ` Arun Isaac
  2019-06-19 11:16               ` Nicolas Goaziou
  0 siblings, 1 reply; 15+ messages in thread
From: Arun Isaac @ 2019-06-18 19:45 UTC (permalink / raw)
  To: Nicolas Goaziou; +Cc: 36043

[-- Attachment #1: Type: text/plain, Size: 2415 bytes --]


> 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.

> 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.

>> 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?

>> 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.

> Since then, Scintilla team released 4.1.7.

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

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 487 bytes --]

^ permalink raw reply	[flat|nested] 15+ messages in thread

* [bug#36043] [PATCH] Add Geany
  2019-06-18 19:45             ` Arun Isaac
@ 2019-06-19 11:16               ` Nicolas Goaziou
  2019-06-25  9:54                 ` Arun Isaac
  0 siblings, 1 reply; 15+ messages in thread
From: Nicolas Goaziou @ 2019-06-19 11:16 UTC (permalink / raw)
  To: Arun Isaac; +Cc: 36043

Hello,

Arun Isaac <arunisaac@systemreboot.net> writes:

> 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.

> 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.

> 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.

> 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/"

> 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

^ permalink raw reply	[flat|nested] 15+ messages in thread

* [bug#36043] [PATCH] Add Geany
  2019-06-19 11:16               ` Nicolas Goaziou
@ 2019-06-25  9:54                 ` Arun Isaac
  2019-07-23 11:07                   ` Arun Isaac
  0 siblings, 1 reply; 15+ messages in thread
From: Arun Isaac @ 2019-06-25  9:54 UTC (permalink / raw)
  To: Nicolas Goaziou; +Cc: 36043

[-- Attachment #1: Type: text/plain, Size: 1624 bytes --]


>> 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.

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

No problem, I understand.

> 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.

> 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

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 487 bytes --]

^ permalink raw reply	[flat|nested] 15+ messages in thread

* [bug#36043] [PATCH] Add Geany
  2019-06-25  9:54                 ` Arun Isaac
@ 2019-07-23 11:07                   ` Arun Isaac
  2019-07-30  7:59                     ` Nicolas Goaziou
  0 siblings, 1 reply; 15+ messages in thread
From: Arun Isaac @ 2019-07-23 11:07 UTC (permalink / raw)
  To: Nicolas Goaziou; +Cc: 36043

[-- Attachment #1: Type: text/plain, Size: 280 bytes --]


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.

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 487 bytes --]

^ permalink raw reply	[flat|nested] 15+ messages in thread

* [bug#36043] [PATCH] Add Geany
  2019-07-23 11:07                   ` Arun Isaac
@ 2019-07-30  7:59                     ` Nicolas Goaziou
  2019-07-30 11:38                       ` Arun Isaac
  0 siblings, 1 reply; 15+ messages in thread
From: Nicolas Goaziou @ 2019-07-30  7:59 UTC (permalink / raw)
  To: Arun Isaac; +Cc: 36043

[-- Attachment #1: Type: text/plain, Size: 485 bytes --]

Hello,

Arun Isaac <arunisaac@systemreboot.net> writes:

> 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

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: 0001-gnu-Add-scintilla.patch --]
[-- Type: text/x-diff, Size: 3596 bytes --]

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(+)

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


[-- Attachment #3: 0002-gnu-Add-geany.patch --]
[-- Type: text/x-diff, Size: 4397 bytes --]

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(+)

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


^ permalink raw reply related	[flat|nested] 15+ messages in thread

* [bug#36043] [PATCH] Add Geany
  2019-07-30  7:59                     ` Nicolas Goaziou
@ 2019-07-30 11:38                       ` Arun Isaac
  2019-07-30 18:04                         ` bug#36043: " Nicolas Goaziou
  0 siblings, 1 reply; 15+ messages in thread
From: Arun Isaac @ 2019-07-30 11:38 UTC (permalink / raw)
  To: Nicolas Goaziou; +Cc: 36043

[-- Attachment #1: Type: text/plain, Size: 172 bytes --]


> 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.

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 487 bytes --]

^ permalink raw reply	[flat|nested] 15+ messages in thread

* bug#36043: [PATCH] Add Geany
  2019-07-30 11:38                       ` Arun Isaac
@ 2019-07-30 18:04                         ` Nicolas Goaziou
  0 siblings, 0 replies; 15+ messages in thread
From: Nicolas Goaziou @ 2019-07-30 18:04 UTC (permalink / raw)
  To: Arun Isaac; +Cc: 36043-done

Arun Isaac <arunisaac@systemreboot.net> writes:

> LGTM! Please push to master. Thanks.

Done. Thank you.

^ permalink raw reply	[flat|nested] 15+ messages in thread

end of thread, other threads:[~2019-07-30 18:05 UTC | newest]

Thread overview: 15+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-06-01 21:38 [bug#36043] [PATCH] Add Geany Nicolas Goaziou
2019-06-04 12:25 ` Arun Isaac
2019-06-05 21:01   ` Nicolas Goaziou
2019-06-06 14:45     ` Arun Isaac
2019-06-12 22:22       ` Nicolas Goaziou
2019-06-15  7:21         ` Arun Isaac
2019-06-17 20:29           ` Nicolas Goaziou
2019-06-18 19:45             ` Arun Isaac
2019-06-19 11:16               ` Nicolas Goaziou
2019-06-25  9:54                 ` Arun Isaac
2019-07-23 11:07                   ` Arun Isaac
2019-07-30  7:59                     ` Nicolas Goaziou
2019-07-30 11:38                       ` Arun Isaac
2019-07-30 18:04                         ` bug#36043: " Nicolas Goaziou
2019-06-06 14:51     ` [bug#36043] " Arun Isaac

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).