On Thu, 27 Apr 2017 20:47:54 -0500
Eric Bavier <ericbav...@centurylink.net> wrote:

> > > > +    (inputs
> > > > +     `(("qt" ,qt)))      
> > > 
> > > Does this package need all of qt, or could we use the component
> > > packages instead?    
> > 
> > I don't know. I'll do some experiments and see.  
> 
> OK, great.

Fixed!

Now it is:
      (inputs
       `(("qtbase" ,qtbase)
         ("qtdeclarative" ,qtdeclarative)
         ("qtgraphicaleffects" ,qtgraphicaleffects)
         ("qtquickcontrols" ,qtquickcontrols)))

> > > > +    (description
> > > > +     "Cool-retro-term (crt) is a terminal emulator which mimics the
> > > > look and +feel of the old cathode ray tube (CRT) screens.  It has been
> > > > designed to be +eye-candy, customizable, and reasonably lightweight.")
> > > > +    (home-page "https://github.com/Swordfish90/cool-retro-term";)
> > > > +    (license (list license:gpl2 license:gpl3)))))      
> > > 
> > > The license seems unclear: 1) there is both a gpl-2.txt and gpl-3.txt
> > > in $topsrcdir, but no mention of which actually applies in any of the
> > > source files, 2) $topsrcdir/packaging/debian/copyright claims GPL-3,
> > > while 4) $topsrcdir/packaging/rpm/cool-retro-term.spec and
> > > $topsrcdir/packaging/appdata/cool-retro-term.appdata.xml both claim
> > > GPL-3.0+, and 5) the qmltermwidget component appears to be under
> > > gpl2+.  IANAL but this suggests license:gpl2+ to me.  Does that seem
> > > right?    
> > 
> > I can't answer this, hopefully someone else will chime in.  
> 
> I did a little more looking: The sources in app/qml seem to have
> license headers marked as GPLv3+, so we can mark it as such.

I changed the GPL3 license GPL3+.

The owner has replied in an issue about this.

---[Swordfish90 commented on Dec 1, 2015]---
Hi @nadams810 and sorry for the late response. Since the project is split
into two different components, the idea behind the licensing was the
following:

    1. All the files belonging to QMLTermWidget which is a separate library
forked by qtermwidget are licensed under GPL2 (as the original library).
    2. All the files belonging to CRT are licensed under GPL3.
 
To be fair I'm not really an expert when it comes to licensing and if there
is something wrong with the following approach just let me know.
---end-quote---

https://github.com/Swordfish90/cool-retro-term/issues/269

> >   
> > > It would not hurt to also list the SIL license, for
> > > $topsrcdir/app/qml/fonts/modern-hermit, and the X11 license for
> > > fonts/modern-pro-font-win-tweaked and fonts/modern-proggy-tiny.

Added.

> > > The fonts/modern-envy-code-r font probably needs to be stripped; it's
> > > license is non-free; from 'Read Me.txt':
> > > 
> > >   "Free to use but redistribution prohibited."
> > > 

This font was removed Mar 13, 2016.
https://github.com/Swordfish90/cool-retro-term/commit/c505dfaa11166054686df7390cf04dba324ad869

> > > and the fonts/1977-apple2, fonts/1977-commodore-pet, probably also needs
> > > to be stripped as non-free; from 'FreeLicense.txt':
> > > 
> > >   "1. The User may not sell copies of the Software for a fee."
> > > 
> > > The fonts/1979-atari-400-800 font seems to be non-free license, which is
> > > not mentioned in the 'ReadMe.rtf' but only on the WayBack Machine at
> > > https://web-beta.archive.org/web/20080907111008/http://www2.bitstream.net/~marksim/atarimac/fonts.html
> > >  :
> > > 
> > >   "These fonts are freeware and may not be offered for sale seperately
> > >   or as part of a collection."
> > > 
> > > The fonts/1982-commodore64 font is licensed under non-free terms; see
> > > fonts/1982-commodore64/license.txt
> > > 
> > > The only mention of a license for fonts/1985-ibm-pc-vga is at
> > > http://www.dafont.com/font-comment.php?file=perfect_dos_vga_437 where
> > > the author says "The license is this: this font is free to use in
> > > whatever you want.", but that probably "doesn't count".
> > > 
> > > I could not find license info for a few of the other fonts.
> > > 
> > > OTOH I recall a discussion on IRC recently about fonts embedded in
> > > packages being treated as non-functional data, and thus OK from a FSDG
> > > perspective.  But I would want verification on that.    
> > 
> > Let's see if someone can shine some light on this.
> >   
> 
> Leo pointed me at https://bugs.gnu.org/26588 which references
> https://www.gnu.org/distros/free-system-distribution-guidelines.html#non-functional-data
>  .
> I think many of these fonts would need to be stripped out or
> substituted because their license prohibits commercial/non-commercial
> redistribution.

Recipe is now removing the following from disk and GUI:
                                  '("1977-apple2"
                                    "1977-commodore-pet"
                                    "1979-atari-400-800"
                                    "1982-commodore64"
                                    "1985-ibm-pc-vga")

Should more be removed?

What do we do about the fonts without licensing info?

Also, I've added 3 patches from lxde/qtermwidget. The 2 with possible security
implications, and 1 memory leak (of those you listed). With the remaining two
you linked, memory leak and perfomance fix, git was unable to apply to the
current qmltermwidget codebase.

Best,
Petter
From 6d386588ae273e3b61e415469fb226379336b15b Mon Sep 17 00:00:00 2001
From: Petter <pet...@mykolab.ch>
Date: Sun, 23 Apr 2017 13:46:41 +0200
Subject: [PATCH] gnu: Add cool-retro-term.

* gnu/packages/terminals.scm (cool-retro-term): New variable.
---
 ...-term-avoid-checking-uninitialized-member.patch |  33 +++
 .../cool-retro-term-dont-check-uninit-member.patch |  33 +++
 .../patches/cool-retro-term-fix-array-size.patch   |  25 ++
 .../patches/cool-retro-term-memory-leak-1.patch    |  32 +++
 .../cool-retro-term-remove-non-free-fonts.patch    | 268 +++++++++++++++++++++
 gnu/packages/terminals.scm                         |  90 +++++++
 6 files changed, 481 insertions(+)
 create mode 100644 gnu/packages/patches/cool-retro-term-avoid-checking-uninitialized-member.patch
 create mode 100644 gnu/packages/patches/cool-retro-term-dont-check-uninit-member.patch
 create mode 100644 gnu/packages/patches/cool-retro-term-fix-array-size.patch
 create mode 100644 gnu/packages/patches/cool-retro-term-memory-leak-1.patch
 create mode 100644 gnu/packages/patches/cool-retro-term-remove-non-free-fonts.patch

diff --git a/gnu/packages/patches/cool-retro-term-avoid-checking-uninitialized-member.patch b/gnu/packages/patches/cool-retro-term-avoid-checking-uninitialized-member.patch
new file mode 100644
index 000000000..c6e1d2731
--- /dev/null
+++ b/gnu/packages/patches/cool-retro-term-avoid-checking-uninitialized-member.patch
@@ -0,0 +1,33 @@
+From 126a97d1f22f7d784d392b2b7d5aadf0a4e18c0d Mon Sep 17 00:00:00 2001
+From: Petter <pet...@mykolab.ch>
+Date: Thu, 27 Apr 2017 20:28:02 +0200
+Subject: [PATCH] Avoid checking uninitialized member + simplify condition
+
+---
+ qmltermwidget/lib/TerminalDisplay.cpp | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/qmltermwidget/lib/TerminalDisplay.cpp b/qmltermwidget/lib/TerminalDisplay.cpp
+index 189a609..36d2cd2 100644
+--- a/qmltermwidget/lib/TerminalDisplay.cpp
++++ b/qmltermwidget/lib/TerminalDisplay.cpp
+@@ -325,6 +325,7 @@ TerminalDisplay::TerminalDisplay(QQuickItem *parent)
+ ,_terminalSizeHint(false)
+ ,_terminalSizeStartup(true)
+ ,_bidiEnabled(false)
++,_mouseMarks(false)
+ ,_actSel(0)
+ ,_wordSelectionMode(false)
+ ,_lineSelectionMode(false)
+@@ -1846,7 +1847,7 @@ void TerminalDisplay::mousePressEvent(QMouseEvent* ev)
+   }
+   else if ( ev->button() == Qt::MidButton )
+   {
+-    if ( _mouseMarks || (!_mouseMarks && (ev->modifiers() & Qt::ShiftModifier)) )
++    if ( _mouseMarks || (ev->modifiers() & Qt::ShiftModifier) )
+       emitSelection(true,ev->modifiers() & Qt::ControlModifier);
+     else
+       emit mouseSignal( 1, charColumn +1, charLine +1 +_scrollBar->value() -_scrollBar->maximum() , 0);
+-- 
+2.12.2
+
diff --git a/gnu/packages/patches/cool-retro-term-dont-check-uninit-member.patch b/gnu/packages/patches/cool-retro-term-dont-check-uninit-member.patch
new file mode 100644
index 000000000..c6e1d2731
--- /dev/null
+++ b/gnu/packages/patches/cool-retro-term-dont-check-uninit-member.patch
@@ -0,0 +1,33 @@
+From 126a97d1f22f7d784d392b2b7d5aadf0a4e18c0d Mon Sep 17 00:00:00 2001
+From: Petter <pet...@mykolab.ch>
+Date: Thu, 27 Apr 2017 20:28:02 +0200
+Subject: [PATCH] Avoid checking uninitialized member + simplify condition
+
+---
+ qmltermwidget/lib/TerminalDisplay.cpp | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/qmltermwidget/lib/TerminalDisplay.cpp b/qmltermwidget/lib/TerminalDisplay.cpp
+index 189a609..36d2cd2 100644
+--- a/qmltermwidget/lib/TerminalDisplay.cpp
++++ b/qmltermwidget/lib/TerminalDisplay.cpp
+@@ -325,6 +325,7 @@ TerminalDisplay::TerminalDisplay(QQuickItem *parent)
+ ,_terminalSizeHint(false)
+ ,_terminalSizeStartup(true)
+ ,_bidiEnabled(false)
++,_mouseMarks(false)
+ ,_actSel(0)
+ ,_wordSelectionMode(false)
+ ,_lineSelectionMode(false)
+@@ -1846,7 +1847,7 @@ void TerminalDisplay::mousePressEvent(QMouseEvent* ev)
+   }
+   else if ( ev->button() == Qt::MidButton )
+   {
+-    if ( _mouseMarks || (!_mouseMarks && (ev->modifiers() & Qt::ShiftModifier)) )
++    if ( _mouseMarks || (ev->modifiers() & Qt::ShiftModifier) )
+       emitSelection(true,ev->modifiers() & Qt::ControlModifier);
+     else
+       emit mouseSignal( 1, charColumn +1, charLine +1 +_scrollBar->value() -_scrollBar->maximum() , 0);
+-- 
+2.12.2
+
diff --git a/gnu/packages/patches/cool-retro-term-fix-array-size.patch b/gnu/packages/patches/cool-retro-term-fix-array-size.patch
new file mode 100644
index 000000000..04a2a2797
--- /dev/null
+++ b/gnu/packages/patches/cool-retro-term-fix-array-size.patch
@@ -0,0 +1,25 @@
+From c91d7ae5dbb00c8392a9f93283dc56c3e296cccd Mon Sep 17 00:00:00 2001
+From: Petter <pet...@mykolab.ch>
+Date: Thu, 27 Apr 2017 20:19:21 +0200
+Subject: [PATCH] Fix size of the array passed to memset()
+
+---
+ qmltermwidget/lib/History.cpp | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/qmltermwidget/lib/History.cpp b/qmltermwidget/lib/History.cpp
+index 0f9c13f..ab6f7be 100644
+--- a/qmltermwidget/lib/History.cpp
++++ b/qmltermwidget/lib/History.cpp
+@@ -515,7 +515,7 @@ void HistoryScrollBlockArray::addCells(const Character a[], int count)
+   // put cells in block's data
+   assert((count * sizeof(Character)) < ENTRIES);
+ 
+-  memset(b->data, 0, ENTRIES);
++  memset(b->data, 0, sizeof(b->data));
+ 
+   memcpy(b->data, a, count * sizeof(Character));
+   b->size = count * sizeof(Character);
+-- 
+2.12.2
+
diff --git a/gnu/packages/patches/cool-retro-term-memory-leak-1.patch b/gnu/packages/patches/cool-retro-term-memory-leak-1.patch
new file mode 100644
index 000000000..f3fbac17d
--- /dev/null
+++ b/gnu/packages/patches/cool-retro-term-memory-leak-1.patch
@@ -0,0 +1,32 @@
+From 08628fda19128b75248548357e416bc373f14f91 Mon Sep 17 00:00:00 2001
+From: Yen Chi Hsuan <yan12...@gmail.com>
+Date: Sat, 18 Mar 2017 02:50:34 +0800
+Subject: [PATCH] Fix memory leak in hotspot (URLs & emails) detection
+
+---
+ qmltermwidget/lib/Filter.cpp | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/qmltermwidget/lib/Filter.cpp b/qmltermwidget/lib/Filter.cpp
+index 5ca7bee..2e8d2fb 100644
+--- a/qmltermwidget/lib/Filter.cpp
++++ b/qmltermwidget/lib/Filter.cpp
+@@ -26,6 +26,7 @@
+ // Qt
+ #include <QAction>
+ #include <QApplication>
++#include <QtAlgorithms>
+ #include <QClipboard>
+ #include <QString>
+ #include <QTextStream>
+@@ -194,6 +195,7 @@ Filter::~Filter()
+ }
+ void Filter::reset()
+ {
++    qDeleteAll(_hotspotList);
+     _hotspots.clear();
+     _hotspotList.clear();
+ }
+-- 
+2.12.2
+
diff --git a/gnu/packages/patches/cool-retro-term-remove-non-free-fonts.patch b/gnu/packages/patches/cool-retro-term-remove-non-free-fonts.patch
new file mode 100644
index 000000000..a00e1f252
--- /dev/null
+++ b/gnu/packages/patches/cool-retro-term-remove-non-free-fonts.patch
@@ -0,0 +1,268 @@
+From be4e30368ea3b4b99af647b44a32dae464511c2b Mon Sep 17 00:00:00 2001
+From: Petter <pet...@mykolab.ch>
+Date: Thu, 27 Apr 2017 18:55:10 +0200
+Subject: [PATCH] Remove non-free fonts from settings menu
+
+---
+ app/qml/ApplicationSettings.qml | 20 ++++++++++----------
+ app/qml/FontPixels.qml          | 16 ++++++++--------
+ app/qml/FontScanlines.qml       | 16 ++++++++--------
+ app/qml/Fonts.qml               | 20 ++++++++++----------
+ 4 files changed, 36 insertions(+), 36 deletions(-)
+
+diff --git a/app/qml/ApplicationSettings.qml b/app/qml/ApplicationSettings.qml
+index d0f8beb..240c522 100644
+--- a/app/qml/ApplicationSettings.qml
++++ b/app/qml/ApplicationSettings.qml
+@@ -409,36 +409,36 @@ QtObject{
+             obj_string: '{"ambientLight":0.16,"backgroundColor":"#000000","bloom":0.4,"brightness":0.5,"flickering":0.1,"contrast":0.85,"fontName":"TERMINUS_SCALED","fontColor":"#0ccc68","frameName":"SIMPLE_WHITE_FRAME","glowingLine":0.2,"horizontalSync":0.16,"jitter":0.18,"burnIn":0.45,"staticNoise":0.1,"rasterization":0,"screenCurvature":0.1,"windowOpacity":1,"chromaColor":0,"saturationColor":0,"rbgShift":0,"fontWidth":1.0,"useCustomCommand":false,"customCommand":""}'
+             builtin: true
+         }
+-        ListElement{
++        /*ListElement{
+             text: "Default Scanlines"
+             obj_string: '{"ambientLight":0.16,"backgroundColor":"#000000","bloom":0.4,"brightness":0.5,"flickering":0.1,"contrast":0.85,"fontName":"COMMODORE_PET","fontColor":"#00ff5b","frameName":"SIMPLE_WHITE_FRAME","glowingLine":0.2,"horizontalSync":0.14,"jitter":0.11,"burnIn":0.4,"staticNoise":0.05,"rasterization":1,"screenCurvature":0.1,"windowOpacity":1,"chromaColor":0,"saturationColor":0,"rbgShift":0,"fontWidth":1.0,"useCustomCommand":false,"customCommand":""}'
+             builtin: true
+-        }
+-        ListElement{
++        }*/
++        /*ListElement{
+             text: "Default Pixelated"
+             obj_string: '{"ambientLight":0.16,"backgroundColor":"#000000","bloom":0,"brightness":0.5,"flickering":0.2,"contrast":0.85,"fontName":"COMMODORE_PET","fontColor":"#ffffff","frameName":"ROUGH_BLACK_FRAME","glowingLine":0.2,"horizontalSync":0.2,"jitter":0,"burnIn":0.45,"staticNoise":0.19,"rasterization":2,"screenCurvature":0.05,"windowOpacity":1,"chromaColor":0,"saturationColor":0,"rbgShift":0,"fontWidth":1.0,"useCustomCommand":false,"customCommand":""}'
+             builtin: true
+-        }
+-        ListElement{
++        }*/
++        /*ListElement{
+             text: "Apple ]["
+             obj_string: '{"ambientLight":0.16,"backgroundColor":"#000000","bloom":0.5,"brightness":0.5,"flickering":0.2,"contrast":0.85,"fontName":"APPLE_II","fontColor":"#2fff91","frameName":"SIMPLE_WHITE_FRAME","glowingLine":0.22,"horizontalSync":0.16,"jitter":0.1,"burnIn":0.65,"staticNoise":0.08,"rasterization":1,"screenCurvature":0.18,"windowOpacity":1,"chromaColor":0,"saturationColor":0,"rbgShift":0,"fontWidth":1.0,"useCustomCommand":false,"customCommand":""}'
+             builtin: true
+-        }
+-        ListElement{
++        }*/
++        /*ListElement{
+             text: "Vintage"
+             obj_string: '{"ambientLight":0.5,"backgroundColor":"#000000","bloom":0.4,"brightness":0.5,"flickering":0.9,"contrast":0.80,"fontName":"COMMODORE_PET","fontColor":"#00ff3e","frameName":"ROUGH_BLACK_FRAME","glowingLine":0.3,"horizontalSync":0.42,"jitter":0.4,"burnIn":0.75,"staticNoise":0.2,"rasterization":1,"screenCurvature":0.1,"windowOpacity":1,"chromaColor":0,"saturationColor":0,"rbgShift":0,"fontWidth":1.0,"useCustomCommand":false,"customCommand":""}'
+             builtin: true
+-        }
++        }*/
+         ListElement{
+             text: "IBM Dos"
+             obj_string: '{"ambientLight":0.16,"backgroundColor":"#000000","bloom":0.4,"brightness":0.5,"flickering":0.07,"contrast":0.85,"fontName":"IBM_DOS","fontColor":"#ffffff","frameName":"SIMPLE_WHITE_FRAME","glowingLine":0.13,"horizontalSync":0,"jitter":0.16,"burnIn":0.3,"staticNoise":0.03,"rasterization":0,"screenCurvature":0.1,"windowOpacity":1,"chromaColor":1,"saturationColor":0,"rbgShift":0.35,"fontWidth":1.0,"useCustomCommand":false,"customCommand":""}'
+             builtin: true
+         }
+-        ListElement{
++        /*ListElement{
+             text: "IBM 3278"
+             obj_string: '{"ambientLight":0.1,"backgroundColor":"#000000","bloom":0.15,"brightness":0.5,"flickering":0,"contrast":0.85,"fontName":"IBM_3278","fontColor":"#0ccc68","frameName":"SIMPLE_WHITE_FRAME","glowingLine":0,"horizontalSync":0,"jitter":0,"burnIn":0.6,"staticNoise":0,"rasterization":0,"screenCurvature":0.1,"windowOpacity":1,"chromaColor":0,"saturationColor":0,"rbgShift":0,"fontWidth":1.0,"useCustomCommand":false,"customCommand":""}'
+             builtin: true
+-        }
++        }*/
+         ListElement{
+             text: "Transparent Green"
+             obj_string: '{"ambientLight":0.2,"backgroundColor":"#000000","bloom":0.45,"brightness":0.5,"flickering":0.20,"contrast":0.85,"fontName":"TERMINUS_SCALED","fontColor":"#0ccc68","frameName":"NO_FRAME","glowingLine":0.16,"horizontalSync":0.1,"jitter":0.20,"burnIn":0.25,"staticNoise":0.20,"rasterization":0,"screenCurvature":0.05,"windowOpacity":0.60,"chromaColor":0,"saturationColor":0,"rbgShift":0,"fontWidth":1.0,"useCustomCommand":false,"customCommand":""}'
+diff --git a/app/qml/FontPixels.qml b/app/qml/FontPixels.qml
+index 6ff85da..88ff6c1 100644
+--- a/app/qml/FontPixels.qml
++++ b/app/qml/FontPixels.qml
+@@ -32,7 +32,7 @@ QtObject{
+     property bool lowResolutionFont: true
+ 
+     property ListModel fontlist: ListModel{
+-        ListElement{
++        /*ListElement{
+             name: "COMMODORE_PET"
+             text: "Commodore PET (1977)"
+             source: "fonts/1977-commodore-pet/COMMODORE_PET.ttf"
+@@ -40,7 +40,7 @@ QtObject{
+             pixelSize: 8
+             baseScaling: 4.0
+             fontWidth: 0.8
+-        }
++        }*/
+         ListElement{
+             name: "PROGGY_TINY"
+             text: "Proggy Tiny (Modern)"
+@@ -68,7 +68,7 @@ QtObject{
+             baseScaling: 3.0
+             fontWidth: 1.0
+         }
+-        ListElement{
++        /*ListElement{
+             name: "APPLE_II"
+             text: "Apple ][ (1977)"
+             source: "fonts/1977-apple2/PrintChar21.ttf"
+@@ -76,8 +76,8 @@ QtObject{
+             pixelSize: 8
+             baseScaling: 4.0
+             fontWidth: 0.9
+-        }
+-        ListElement{
++        }*/
++        /*ListElement{
+             name: "ATARI_400"
+             text: "Atari 400-800 (1979)"
+             source: "fonts/1979-atari-400-800/ATARI400800_original.TTF"
+@@ -85,8 +85,8 @@ QtObject{
+             pixelSize: 8
+             baseScaling: 4.0
+             fontWidth: 0.8
+-        }
+-        ListElement{
++        }*/
++        /*ListElement{
+             name: "COMMODORE_64"
+             text: "Commodore 64 (1982)"
+             source: "fonts/1982-commodore64/C64_Pro_Mono_v1.0-STYLE.ttf"
+@@ -94,6 +94,6 @@ QtObject{
+             pixelSize: 8
+             baseScaling: 4.0
+             fontWidth: 0.8
+-        }
++        }*/
+     }
+ }
+diff --git a/app/qml/FontScanlines.qml b/app/qml/FontScanlines.qml
+index eebf00b..112f446 100644
+--- a/app/qml/FontScanlines.qml
++++ b/app/qml/FontScanlines.qml
+@@ -32,7 +32,7 @@ QtObject{
+     property bool lowResolutionFont: true
+ 
+     property ListModel fontlist: ListModel{
+-        ListElement{
++        /*ListElement{
+             name: "COMMODORE_PET"
+             text: "Commodore PET (1977)"
+             source: "fonts/1977-commodore-pet/COMMODORE_PET.ttf"
+@@ -40,7 +40,7 @@ QtObject{
+             pixelSize: 8
+             baseScaling: 4.0
+             fontWidth: 0.7
+-        }
++        }*/
+         ListElement{
+             name: "PROGGY_TINY"
+             text: "Proggy Tiny (Modern)"
+@@ -68,7 +68,7 @@ QtObject{
+             baseScaling: 3.0
+             fontWidth: 1.0
+         }
+-        ListElement{
++        /*ListElement{
+             name: "APPLE_II"
+             text: "Apple ][ (1977)"
+             source: "fonts/1977-apple2/PrintChar21.ttf"
+@@ -76,8 +76,8 @@ QtObject{
+             pixelSize: 8
+             baseScaling: 4.0
+             fontWidth: 0.8
+-        }
+-        ListElement{
++        }*/
++        /*ListElement{
+             name: "ATARI_400"
+             text: "Atari 400-800 (1979)"
+             source: "fonts/1979-atari-400-800/ATARI400800_original.TTF"
+@@ -85,8 +85,8 @@ QtObject{
+             pixelSize: 8
+             baseScaling: 4.0
+             fontWidth: 0.7
+-        }
+-        ListElement{
++        }*/
++        /*ListElement{
+             name: "COMMODORE_64"
+             text: "Commodore 64 (1982)"
+             source: "fonts/1982-commodore64/C64_Pro_Mono_v1.0-STYLE.ttf"
+@@ -94,6 +94,6 @@ QtObject{
+             pixelSize: 8
+             baseScaling: 4.0
+             fontWidth: 0.7
+-        }
++        }*/
+     }
+ }
+diff --git a/app/qml/Fonts.qml b/app/qml/Fonts.qml
+index ad20844..857d00e 100644
+--- a/app/qml/Fonts.qml
++++ b/app/qml/Fonts.qml
+@@ -80,7 +80,7 @@ QtObject{
+             fontWidth: 1.0
+             lowResolutionFont: true
+         }
+-        ListElement{
++        /*ListElement{
+             name: "COMMODORE_PET_SCALED"
+             text: "Commodore PET (1977)"
+             source: "fonts/1977-commodore-pet/COMMODORE_PET.ttf"
+@@ -89,7 +89,7 @@ QtObject{
+             baseScaling: 3.5
+             fontWidth: 0.7
+             lowResolutionFont: true
+-        }
++        }*/
+         ListElement{
+             name: "PROGGY_TINY_SCALED"
+             text: "Proggy Tiny (Modern)"
+@@ -100,7 +100,7 @@ QtObject{
+             fontWidth: 0.9
+             lowResolutionFont: true
+         }
+-        ListElement{
++        /*ListElement{
+             name: "APPLE_II_SCALED"
+             text: "Apple ][ (1977)"
+             source: "fonts/1977-apple2/PrintChar21.ttf"
+@@ -109,8 +109,8 @@ QtObject{
+             baseScaling: 3.5
+             fontWidth: 0.8
+             lowResolutionFont: true
+-        }
+-        ListElement{
++        }*/
++        /*ListElement{
+             name: "ATARI_400_SCALED"
+             text: "Atari 400-800 (1979)"
+             source: "fonts/1979-atari-400-800/ATARI400800_original.TTF"
+@@ -119,8 +119,8 @@ QtObject{
+             baseScaling: 3.5
+             fontWidth: 0.7
+             lowResolutionFont: true
+-        }
+-        ListElement{
++        }*/
++        /*ListElement{
+             name: "COMMODORE_64_SCALED"
+             text: "Commodore 64 (1982)"
+             source: "fonts/1982-commodore64/C64_Pro_Mono_v1.0-STYLE.ttf"
+@@ -129,7 +129,7 @@ QtObject{
+             baseScaling: 3.5
+             fontWidth: 0.7
+             lowResolutionFont: true
+-        }
++        }*/
+         ListElement{
+             name: "ATARI_ST_SCALED"
+             text: "Atari ST (1985)"
+@@ -140,7 +140,7 @@ QtObject{
+             fontWidth: 1.0
+             lowResolutionFont: true
+         }
+-        ListElement{
++        /*ListElement{
+             name: "IBM_DOS"
+             text: "IBM DOS (1985)"
+             source: "fonts/1985-ibm-pc-vga/Perfect DOS VGA 437 Win.ttf"
+@@ -149,7 +149,7 @@ QtObject{
+             baseScaling: 2.0
+             fontWidth: 1.0
+             lowResolutionFont: true
+-        }
++        }*/
+         ListElement{
+             name: "HERMIT"
+             text: "HD: Hermit (Modern)"
+-- 
+2.12.2
+
diff --git a/gnu/packages/terminals.scm b/gnu/packages/terminals.scm
index 979278a53..35105d64a 100644
--- a/gnu/packages/terminals.scm
+++ b/gnu/packages/terminals.scm
@@ -7,6 +7,7 @@
 ;;; Copyright © 2016, 2017 José Miguel Sánchez García <jm...@openmailbox.org>
 ;;; Copyright © 2017 Tobias Geerinckx-Rice <m...@tobias.gr>
 ;;; Copyright © 2017 Ricardo Wurmus <rek...@elephly.net>
+;;; Copyright © 2017 Petter <pet...@mykolab.ch>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -31,6 +32,7 @@
   #:use-module (guix download)
   #:use-module (guix git-download)
   #:use-module (guix packages)
+  #:use-module (gnu packages)
   #:use-module (gnu packages autotools)
   #:use-module (gnu packages freedesktop)
   #:use-module (gnu packages gettext)
@@ -49,6 +51,7 @@
   #:use-module (gnu packages xdisorg)
   #:use-module (gnu packages xml)
   #:use-module (gnu packages docbook)
+  #:use-module (gnu packages qt)
   #:use-module (srfi srfi-26))
 
 (define-public tilda
@@ -433,3 +436,90 @@ its embedding program should provide it to draw on its behalf.  It avoids
 calling @code{malloc} during normal running state, allowing it to be used in
 embedded kernel situations.")
     (license license:expat)))
+
+(define-public cool-retro-term
+  (let ((commit "e48719fa44e5307df71dbd0fad234f8a6a53f863")
+        (revision "1"))
+    (package
+      (name "cool-retro-term")
+      (version (string-append "1.0.0-" revision "." (string-take commit 7)))
+      (source (origin
+                (method git-fetch)
+                (file-name (string-append name "-" version "-checkout"))
+                (uri (git-reference
+                      (url (string-append "https://github.com/Swordfish90/"; name))
+                      (commit commit)
+                      (recursive? #t)))
+                (sha256
+                 (base32 "1sgqbirninkvgwchr35zgn5vzqvsmrf3cp7lqady1xgrawb8lsz3"))
+                (patches
+                 (search-patches "cool-retro-term-remove-non-free-fonts.patch"
+                                 "cool-retro-term-fix-array-size.patch"
+                                 "cool-retro-term-dont-check-uninit-member.patch"
+                                 "cool-retro-term-memory-leak-1.patch"))))
+      (build-system gnu-build-system)
+      (inputs
+       `(("qtbase" ,qtbase)
+         ("qtdeclarative" ,qtdeclarative)
+         ("qtgraphicaleffects" ,qtgraphicaleffects)
+         ("qtquickcontrols" ,qtquickcontrols)))
+      (arguments
+       `(#:phases
+         (modify-phases %standard-phases
+           (add-after 'unpack 'clean
+                      (lambda _
+                        (for-each (lambda (font)
+                                    (display font)
+                                    (delete-file-recursively
+                                     (string-append "app/qml/fonts/" font))
+                                    (substitute* '("app/qml/resources.qrc")
+                                      (((string-append "<file>fonts/" font ".*"))
+                                       "")))
+                                  '("1977-apple2"
+                                    "1977-commodore-pet"
+                                    "1979-atari-400-800"
+                                    "1982-commodore64"
+                                    "1985-ibm-pc-vga"))))
+           (replace 'configure
+                    (lambda* (#:key outputs #:allow-other-keys)
+                      (let* ((out (assoc-ref outputs "out"))
+                             (share (string-append out "/share")))
+                        (substitute* '("qmltermwidget/qmltermwidget.pro")
+                          (("INSTALL_DIR = \\$\\$\\[QT_INSTALL_QML\\]")
+                           (string-append "INSTALL_DIR = " out "/qml")))
+                        (substitute* '("app/app.pro")
+                          (("target.path \\+= /usr")
+                           (string-append "target.path += " out))
+                          (("icon32.path = /usr/share")
+                           (string-append "icon32.path = " share))
+                          (("icon64.path = /usr/share")
+                           (string-append "icon64.path = " share))
+                          (("icon128.path = /usr/share")
+                           (string-append "icon128.path = " share))
+                          (("icon256.path = /usr/share")
+                           (string-append "icon256.path = " share)))
+                        (zero? (system* "qmake")))))
+           (add-before 'install 'fix-Makefiles
+                       (lambda* (#:key outputs #:allow-other-keys)
+                         (let* ((out (assoc-ref outputs "out")))
+                           (substitute* '("Makefile")
+                             (("\\$\\(INSTALL_ROOT\\)/usr") out)))))
+           (add-after 'install 'wrap-executable
+                      (lambda* (#:key outputs #:allow-other-keys)
+                        (let* ((out (assoc-ref outputs "out"))
+                               (qml "/qml"))
+                          (wrap-program (string-append out "/bin/cool-retro-term")
+                            `("QML2_IMPORT_PATH" ":" prefix
+                              (,(string-append
+                                 (assoc-ref %build-inputs "qtdeclarative") qml)
+                               ,(string-append
+                                 (assoc-ref %build-inputs "qtgraphicaleffects") qml)
+                               ,(string-append
+                                 (assoc-ref %build-inputs "qtquickcontrols") qml))))))))))
+      (synopsis "Terminal emulator")
+      (description
+       "Cool-retro-term (crt) is a terminal emulator which mimics the look and
+feel of the old cathode ray tube (CRT) screens.  It has been designed to be
+eye-candy, customizable, and reasonably lightweight.")
+      (home-page "https://github.com/Swordfish90/cool-retro-term";)
+      (license (list license:gpl2 license:gpl3+ license:silofl1.1 license:x11)))))
-- 
2.12.2

Attachment: pgptsVkNcCPy4.pgp
Description: OpenPGP digital signature

Reply via email to