unofficial mirror of guix-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: Petter <petter@mykolab.ch>
To: Eric Bavier <ericbavier@centurylink.net>
Cc: guix-devel@gnu.org
Subject: Re: [PATCH] gnu: Add cool-retro-term.
Date: Fri, 28 Apr 2017 14:10:37 +0200	[thread overview]
Message-ID: <20170428141037.6a4038f6@mykolab.ch> (raw)
In-Reply-To: <20170427204754.10212a01@centurylink.net>


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

On Thu, 27 Apr 2017 20:47:54 -0500
Eric Bavier <ericbavier@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

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1.2: 0001-gnu-Add-cool-retro-term.patch --]
[-- Type: text/x-patch, Size: 24965 bytes --]

From 6d386588ae273e3b61e415469fb226379336b15b Mon Sep 17 00:00:00 2001
From: Petter <petter@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 <petter@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 <petter@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 <petter@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 <yan12125@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 <petter@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 <jmi2k@openmailbox.org>
 ;;; Copyright © 2017 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2017 Ricardo Wurmus <rekado@elephly.net>
+;;; Copyright © 2017 Petter <petter@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 #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

  reply	other threads:[~2017-04-28 12:11 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-04-23 11:55 [PATCH] gnu: Add cool-retro-term Petter
2017-04-23 19:18 ` Chris Marusich
2017-04-23 21:12   ` Petter
2017-04-23 23:31     ` Chris Marusich
2017-04-24 12:30       ` Petter
2017-04-26  3:36         ` Eric Bavier
2017-04-26 18:09           ` Petter
2017-04-28  1:47             ` Eric Bavier
2017-04-28 12:10               ` Petter [this message]
2017-04-30 20:59                 ` Chris Marusich
2017-05-03 11:38                   ` Petter
2017-05-02 13:51                 ` Eric Bavier
2017-05-03 12:37                   ` Petter
2017-05-05  3:03                     ` Eric Bavier
2017-05-05 22:58                       ` Petter
2017-05-08  9:39                       ` Efraim Flashner
2017-04-30 20:47         ` Chris Marusich

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://guix.gnu.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20170428141037.6a4038f6@mykolab.ch \
    --to=petter@mykolab.ch \
    --cc=ericbavier@centurylink.net \
    --cc=guix-devel@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).