From mboxrd@z Thu Jan 1 00:00:00 1970 From: Petter Subject: Re: [PATCH] gnu: Add cool-retro-term. Date: Wed, 3 May 2017 14:37:53 +0200 Message-ID: <20170503143753.0b40c54b@mykolab.ch> References: <20170423135526.5ed9d143@mykolab.ch> <87inlvhr0y.fsf@gmail.com> <20170423231207.4adb15e7@mykolab.ch> <87vapuwvj0.fsf@gmail.com> <20170424143026.53563696@mykolab.ch> <20170425223627.47d5a3fc@centurylink.net> <20170426200933.45340e03@mykolab.ch> <20170427204754.10212a01@centurylink.net> <20170428141037.6a4038f6@mykolab.ch> <20170502085106.434f29ff@centurylink.net> Mime-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha256; boundary="Sig_/xGhw/u0NSJrFAV+AxDfsrCL"; protocol="application/pgp-signature" Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:33690) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1d5tXt-0003Gy-D0 for guix-devel@gnu.org; Wed, 03 May 2017 08:38:21 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1d5tXp-0005nN-VK for guix-devel@gnu.org; Wed, 03 May 2017 08:38:17 -0400 Received: from mx.kolabnow.com ([95.128.36.1]:36818 helo=mx-out03.mykolab.com) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1d5tXp-0005mg-B3 for guix-devel@gnu.org; Wed, 03 May 2017 08:38:13 -0400 In-Reply-To: <20170502085106.434f29ff@centurylink.net> List-Id: "Development of GNU Guix and the GNU System distribution." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-devel-bounces+gcggd-guix-devel=m.gmane.org@gnu.org Sender: "Guix-devel" To: Eric Bavier Cc: guix-devel@gnu.org --Sig_/xGhw/u0NSJrFAV+AxDfsrCL Content-Type: multipart/mixed; boundary="MP_/CSHndJwrc.cShgFIttQDchO" --MP_/CSHndJwrc.cShgFIttQDchO Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: quoted-printable Content-Disposition: inline On Tue, 2 May 2017 08:51:06 -0500 Eric Bavier wrote: > Hi Petter, >=20 > Thanks again for your patience with this review. Hi Eric, I'm in no rush :) > "gpl2" in the license field should be "gpl2+" according to > qmltermwidget license headers. Could you also include a comment noting > the component split? Nothing fancy, just "for qmltermwidget" or so next > to gpl2+ and "for cool-retro-term" next to gpl3+. Done. I did it like this: (license (list=20 license:gpl2+ ; qmltermwidget license:gpl3+ ; cool-retro-term ;; Fonts license:silofl1.1 license:x11))))) > > > > > and the fonts/1977-apple2, fonts/1977-commodore-pet, probably also > > > > > needs to be stripped as non-free; from 'FreeLicense.txt': > > > > >=20 > > > > > "1. The User may not sell copies of the Software for a fee." > > > > >=20 > > > > > The fonts/1979-atari-400-800 font seems to be non-free license, w= hich > > > > > is not mentioned in the 'ReadMe.rtf' but only on the WayBack Mach= ine > > > > > at > > > > > https://web-beta.archive.org/web/20080907111008/http://www2.bitst= ream.net/~marksim/atarimac/fonts.html : > > > > >=20 > > > > > "These fonts are freeware and may not be offered for sale seper= ately > > > > > or as part of a collection." > > > > >=20 > > > > > The fonts/1982-commodore64 font is licensed under non-free terms;= see > > > > > fonts/1982-commodore64/license.txt > > > > >=20 > > > > > The only mention of a license for fonts/1985-ibm-pc-vga is at > > > > > http://www.dafont.com/font-comment.php?file=3Dperfect_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". > > > > >=20 > > > > > I could not find license info for a few of the other fonts. > > > > >=20 > > > > > 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. =20 > > > >=20 > > > > Let's see if someone can shine some light on this. > > > > =20 > > >=20 > > > 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. =20 > >=20 > > 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") =20 >=20 > The code you've added to delete these fonts and adjust the source > accordingly would be better in an origin 'snippet' so that `guix build > -S cool-retro-term` does not include the fonts. Done. > >=20 > > Should more be removed? =20 >=20 > modern-monaco. It's a font from Apple which is specifically *not* > freely distributable, but the ttf file is still floating around the > internet, giving many projects the impression that it is. >=20 > >=20 > > What do we do about the fonts without licensing info? =20 >=20 > I agree with Chris that we need to remove them. Right, I've made the mental switch now to whitelist rather than blacklist. The ones that are included now are modern-hermit, modern-pro-font-win-tweak= ed and modern-proggy-tiny. The rest are out until proven Free. Let me know if there are other fonts /we can include/ ;) Also added a `crt` as a symlink to cool-retro-term. Thanks Eric and Chris for being so thorough and helpful! Let me know if the= re are more issues. Best, Petter --MP_/CSHndJwrc.cShgFIttQDchO Content-Type: text/x-patch Content-Transfer-Encoding: quoted-printable Content-Disposition: attachment; filename=0001-gnu-Add-cool-retro-term.patch =46rom c4b0d4bc32053660476c54a7471c6d312651788a Mon Sep 17 00:00:00 2001 From: Petter 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. --- .../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 | 403 +++++++++++++++++= ++++ gnu/packages/terminals.scm | 109 ++++++ 5 files changed, 602 insertions(+) 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.pat= ch 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-fo= nts.patch 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 +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/Ter= minalDisplay.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* e= v) + } + else if ( ev->button() =3D=3D Qt::MidButton ) + { +- if ( _mouseMarks || (!_mouseMarks && (ev->modifiers() & Qt::ShiftModi= fier)) ) ++ 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); +--=20 +2.12.2 + diff --git a/gnu/packages/patches/cool-retro-term-fix-array-size.patch b/gn= u/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 +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); +=20 +- memset(b->data, 0, ENTRIES); ++ memset(b->data, 0, sizeof(b->data)); +=20 + memcpy(b->data, a, count * sizeof(Character)); + b->size =3D count * sizeof(Character); +--=20 +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 +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 + #include ++#include + #include + #include + #include +@@ -194,6 +195,7 @@ Filter::~Filter() + } + void Filter::reset() + { ++ qDeleteAll(_hotspotList); + _hotspots.clear(); + _hotspotList.clear(); + } +--=20 +2.12.2 + diff --git a/gnu/packages/patches/cool-retro-term-remove-non-free-fonts.pat= ch b/gnu/packages/patches/cool-retro-term-remove-non-free-fonts.patch new file mode 100644 index 000000000..2fc61f817 --- /dev/null +++ b/gnu/packages/patches/cool-retro-term-remove-non-free-fonts.patch @@ -0,0 +1,403 @@ +From 96ceffdfdcedd3ae33c46b11357aa2518e0a6152 Mon Sep 17 00:00:00 2001 +From: Petter +Date: Thu, 27 Apr 2017 18:55:10 +0200 +Subject: [PATCH] Remove non-free fonts from settings menu + +--- + app/qml/ApplicationSettings.qml | 28 ++++++++++++------------ + app/qml/FontPixels.qml | 20 ++++++++--------- + app/qml/FontScanlines.qml | 20 ++++++++--------- + app/qml/Fonts.qml | 48 ++++++++++++++++++++----------------= ----- + 4 files changed, 58 insertions(+), 58 deletions(-) + +diff --git a/app/qml/ApplicationSettings.qml b/app/qml/ApplicationSettings= .qml +index d0f8beb..505a4e7 100644 +--- a/app/qml/ApplicationSettings.qml ++++ b/app/qml/ApplicationSettings.qml +@@ -409,41 +409,41 @@ 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","gl= owingLine":0.2,"horizontalSync":0.16,"jitter":0.18,"burnIn":0.45,"staticNoi= se":0.1,"rasterization":0,"screenCurvature":0.1,"windowOpacity":1,"chromaCo= lor":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","glow= ingLine":0.2,"horizontalSync":0.14,"jitter":0.11,"burnIn":0.4,"staticNoise"= :0.05,"rasterization":1,"screenCurvature":0.1,"windowOpacity":1,"chromaColo= r":0,"saturationColor":0,"rbgShift":0,"fontWidth":1.0,"useCustomCommand":fa= lse,"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":"CO= MMODORE_PET","fontColor":"#ffffff","frameName":"ROUGH_BLACK_FRAME","glowing= Line":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","glowingLi= ne":0.22,"horizontalSync":0.16,"jitter":0.1,"burnIn":0.65,"staticNoise":0.0= 8,"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":"C= OMMODORE_PET","fontColor":"#00ff3e","frameName":"ROUGH_BLACK_FRAME","glowin= gLine":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{ ++ }*/ ++ /*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","glowingLi= ne":0.13,"horizontalSync":0,"jitter":0.16,"burnIn":0.3,"staticNoise":0.03,"= rasterization":0,"screenCurvature":0.1,"windowOpacity":1,"chromaColor":1,"s= aturationColor":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":"IB= M_3278","fontColor":"#0ccc68","frameName":"SIMPLE_WHITE_FRAME","glowingLine= ":0,"horizontalSync":0,"jitter":0,"burnIn":0.6,"staticNoise":0,"rasterizati= on":0,"screenCurvature":0.1,"windowOpacity":1,"chromaColor":0,"saturationCo= lor":0,"rbgShift":0,"fontWidth":1.0,"useCustomCommand":false,"customCommand= ":""}' + builtin: true +- } +- ListElement{ ++ }*/ ++ /*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":fals= e,"customCommand":""}' + builtin: true +- } ++ }*/ + } +=20 + function getProfileIndexByName(name) { +diff --git a/app/qml/FontPixels.qml b/app/qml/FontPixels.qml +index 6ff85da..6f0d0ba 100644 +--- a/app/qml/FontPixels.qml ++++ b/app/qml/FontPixels.qml +@@ -32,7 +32,7 @@ QtObject{ + property bool lowResolutionFont: true +=20 + 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)" +@@ -50,7 +50,7 @@ QtObject{ + baseScaling: 4.0 + fontWidth: 0.9 + } +- ListElement{ ++ /*ListElement{ + name: "TERMINUS_SCALED" + text: "Terminus (Modern)" + source: "fonts/modern-terminus/TerminusTTF-4.38.2.ttf" +@@ -58,7 +58,7 @@ QtObject{ + pixelSize: 12 + baseScaling: 3.0 + fontWidth: 1.0 +- } ++ }*/ + ListElement{ + name: "PRO_FONT_SCALED" + text: "Pro Font (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..410d7b6 100644 +--- a/app/qml/FontScanlines.qml ++++ b/app/qml/FontScanlines.qml +@@ -32,7 +32,7 @@ QtObject{ + property bool lowResolutionFont: true +=20 + 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)" +@@ -50,7 +50,7 @@ QtObject{ + baseScaling: 4.0 + fontWidth: 0.9 + } +- ListElement{ ++ /*ListElement{ + name: "TERMINUS_SCALED" + text: "Terminus (Modern)" + source: "fonts/modern-terminus/TerminusTTF-4.38.2.ttf" +@@ -58,7 +58,7 @@ QtObject{ + pixelSize: 12 + baseScaling: 3.0 + fontWidth: 1.0 +- } ++ }*/ + ListElement{ + name: "PRO_FONT_SCALED" + text: "Pro Font (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..882808a 100644 +--- a/app/qml/Fonts.qml ++++ b/app/qml/Fonts.qml +@@ -50,7 +50,7 @@ QtObject{ + // Those are slower to render but are not pixelated. +=20 + property ListModel fontlist: ListModel{ +- ListElement{ ++ /*ListElement{ + name: "TERMINUS_SCALED" + text: "Terminus (Modern)" + source: "fonts/modern-terminus/TerminusTTF-4.38.2.ttf" +@@ -59,7 +59,7 @@ QtObject{ + baseScaling: 3.0 + fontWidth: 1.0 + lowResolutionFont: true +- } ++ }*/ + ListElement{ + name: "PRO_FONT_SCALED" + text: "Pro Font (Modern)" +@@ -70,7 +70,7 @@ QtObject{ + fontWidth: 1.0 + lowResolutionFont: true + } +- ListElement{ ++ /*ListElement{ + name: "EXCELSIOR_SCALED" + text: "Fixedsys Excelsior (Modern)" + source: "fonts/modern-fixedsys-excelsior/FSEX301-L2.ttf" +@@ -79,8 +79,8 @@ QtObject{ + baseScaling: 2.4 + 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,8 +129,8 @@ QtObject{ + baseScaling: 3.5 + fontWidth: 0.7 + lowResolutionFont: true +- } +- ListElement{ ++ }*/ ++ /*ListElement{ + name: "ATARI_ST_SCALED" + text: "Atari ST (1985)" + source: "fonts/1985-atari-st/AtariST8x16SystemFont.ttf" +@@ -139,8 +139,8 @@ QtObject{ + baseScaling: 2.0 + 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)" +@@ -159,7 +159,7 @@ QtObject{ + fontWidth: 1.0 + lowResolutionFont: false + } +- ListElement{ ++ /*ListElement{ + name: "TERMINUS" + text: "HD: Terminus (Modern)" + source: "fonts/modern-terminus/TerminusTTF-4.38.2.ttf" +@@ -167,7 +167,7 @@ QtObject{ + pixelSize: 35 + fontWidth: 1.0 + lowResolutionFont: false +- } ++ }*/ + ListElement{ + name: "PRO_FONT" + text: "HD: Pro Font (Modern)" +@@ -177,7 +177,7 @@ QtObject{ + fontWidth: 1.0 + lowResolutionFont: false + } +- ListElement{ ++ /*ListElement{ + name: "MONACO" + text: "HD: Monaco (Modern)" + source: "fonts/modern-monaco/monaco.ttf" +@@ -185,8 +185,8 @@ QtObject{ + pixelSize: 30 + fontWidth: 1.0 + lowResolutionFont: false +- } +- ListElement{ ++ }*/ ++ /*ListElement{ + name: "INCONSOLATA" + text: "HD: Inconsolata (Modern)" + source: "fonts/modern-inconsolata/Inconsolata.otf" +@@ -194,8 +194,8 @@ QtObject{ + pixelSize: 35 + fontWidth: 1.0 + lowResolutionFont: false +- } +- ListElement{ ++ }*/ ++ /*ListElement{ + name: "IBM_3278" + text: "HD: IBM 3278 (1971)" + source: "fonts/1971-ibm-3278/3270Medium.ttf" +@@ -203,6 +203,6 @@ QtObject{ + pixelSize: 32 + fontWidth: 1.0 + lowResolutionFont: false +- } ++ }*/ + } + } +--=20 +2.12.2 + diff --git a/gnu/packages/terminals.scm b/gnu/packages/terminals.scm index 979278a53..ea6777e54 100644 --- a/gnu/packages/terminals.scm +++ b/gnu/packages/terminals.scm @@ -7,6 +7,7 @@ ;;; Copyright =C2=A9 2016, 2017 Jos=C3=A9 Miguel S=C3=A1nchez Garc=C3=ADa = ;;; Copyright =C2=A9 2017 Tobias Geerinckx-Rice ;;; Copyright =C2=A9 2017 Ricardo Wurmus +;;; Copyright =C2=A9 2017 Petter ;;; ;;; 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)) =20 (define-public tilda @@ -433,3 +436,109 @@ its embedding program should provide it to draw on it= s 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 "1sgqbirninkvgwchr35zgn5vzqvsmrf3cp7lqady1xgrawb8= lsz3")) + (patches + (search-patches "cool-retro-term-remove-non-free-fonts.pa= tch" + "cool-retro-term-fix-array-size.patch" + "cool-retro-term-dont-check-uninit-member= .patch" + "cool-retro-term-memory-leak-1.patch")) + (modules '((guix build utils))) + (snippet + '(for-each (lambda (font) + (delete-file-recursively + (string-append "app/qml/fonts/" font)) + (substitute* '("app/qml/resources.qrc") + (((string-append "fonts/" font ".*")) + ""))) + '("1971-ibm-3278" ; ? + "1977-apple2" ; Probably non-free + "1977-commodore-pet" ; Non-Free + "1979-atari-400-800" ; Probably non-free + "1982-commodore64" ; Non-Free + "1985-atari-st" ; ? + "1985-ibm-pc-vga" ; Probably non-free + "modern-fixedsys-excelsior" ; ? + ;"modern-hermit" ; FREE + "modern-inconsolata" ; ? + "modern-monaco" ; ? + ;"modern-pro-font-win-tweaked" ; FREE + ;"modern-proggy-tiny" ; FREE + "modern-terminus"))))) ; ? + (build-system gnu-build-system) + (inputs + `(("qtbase" ,qtbase) + ("qtdeclarative" ,qtdeclarative) + ("qtgraphicaleffects" ,qtgraphicaleffects) + ("qtquickcontrols" ,qtquickcontrols))) + (arguments + `(#:phases + (modify-phases %standard-phases + (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 =3D \\$\\$\\[QT_INSTALL_QML\\]") + (string-append "INSTALL_DIR =3D " out "/qml"))) + (substitute* '("app/app.pro") + (("target.path \\+=3D /usr") + (string-append "target.path +=3D " out)) + (("icon32.path =3D /usr/share") + (string-append "icon32.path =3D " share)) + (("icon64.path =3D /usr/share") + (string-append "icon64.path =3D " share)) + (("icon128.path =3D /usr/share") + (string-append "icon128.path =3D " share)) + (("icon256.path =3D /usr/share") + (string-append "icon256.path =3D " 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-retr= o-term") + `("QML2_IMPORT_PATH" ":" prefix + (,(string-append + (assoc-ref %build-inputs "qtdeclarative")= qml) + ,(string-append + (assoc-ref %build-inputs "qtgraphicaleffe= cts") qml) + ,(string-append + (assoc-ref %build-inputs "qtquickcontrols= ") qml))))))) + (add-after 'install 'add-alternate-name + (lambda* (#:key outputs #:allow-other-keys) + (let* ((bin (string-append (assoc-ref outputs "out= ") "/bin"))) + (symlink (string-append bin "/cool-retro-term") + (string-append bin "/crt")))))))) + =20 + (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=20 + license:gpl2+ ; qmltermwidget + license:gpl3+ ; cool-retro-term + ;; Fonts + license:silofl1.1 + license:x11))))) --=20 2.12.2 --MP_/CSHndJwrc.cShgFIttQDchO-- --Sig_/xGhw/u0NSJrFAV+AxDfsrCL Content-Type: application/pgp-signature Content-Description: OpenPGP digital signature -----BEGIN PGP SIGNATURE----- iQIzBAEBCAAdFiEEB+Ude/iUmL3PehPCvgTmz6aYnSEFAlkJzyEACgkQvgTmz6aY nSHrkw/+KfkWKkSIJ7an1V2mUUFYDVih3bgGlQJyP2Xotv4CZzJbnLOjhPIU9mXc KglXOAXTe/YxyJyCpAvl4YXa54ZkeqNpvDm4nSnY6aj+jFlfBq/2EKgFOOX5/qXx lJoqntg4meuAWI7LGuEhut2bAaRmJIk8JwazH08u+ThN7FNUUm0WZ/MoUgcAR1e/ 895G89S4xW7ljaf6vdOPGB8o1DP74sZUeDTwjekD2s+pxwq3lCSna6yN9250o2Ww EstQaIdPqY/3Z2tCcKTStewLcYFJfRzJ65d/dvwQ5RA1N2loecvMKXE719o/l0vc yTAb/6Lc+KwdDjm1S7y3acB86PQN+3wU2ADnjiXyC22pLeJY1DBoQev6nK105k1u oYGWlKZVNReAQiVjZE+d2fUJz00LeiCtJRqZHo5vMfH6S9nb+31aLzVP0lmNSHn+ rqtbR2HProRl13H0AcDtV0lNZNGnVe7KHEE9DZswjrb4KqTXEreJkA6kCxtu3wb/ lAysEreqCWaZ7S//0iTWzhvw9OJxFI7C0R1hjjCqaZWBUxTl/GZDsmukpdyujJF0 lZnehqz79zdmMwdlhiPfAwtyV7uaqghWpcBkP5Q2XROz6b22HsJUEaEhziR0WLoq ulxh46lp82t0y7dS3r1GIGzj7ghnRpzcqKjI+amjxv7KyvPrYSA= =oJ7J -----END PGP SIGNATURE----- --Sig_/xGhw/u0NSJrFAV+AxDfsrCL--