summary refs log tree commit diff
path: root/gnu/packages
diff options
context:
space:
mode:
authorMaxim Cournoyer <maxim.cournoyer@gmail.com>2023-09-22 22:31:15 -0400
committerMaxim Cournoyer <maxim.cournoyer@gmail.com>2023-09-22 23:08:54 -0400
commit7e82d4e19f45bf7b251e1159ec0dcf76c8eca9dd (patch)
tree848754f64b3b8061dad479d663e6965779e76773 /gnu/packages
parentec130e1a1b7f3b87b1a6e626754f7e7a07f6b717 (diff)
downloadguix-7e82d4e19f45bf7b251e1159ec0dcf76c8eca9dd.tar.gz
gnu: tipp10: Update to 3.3.0.
* gnu/packages/education.scm (tipp10): Update to 3.3.0.
[source]: Use git-fetch.  Drop obsolete patches.
[build-system]: Use qt-build-system.
[arguments]: Add #:qtbase.  Remove #:phases.
[inputs]: Replace qtbase-5 with qtbase, qtmultimedia-5 with qtmultimedia.
[home-page]: Update home page.
[license]: Add comment.
* gnu/packages/patches/tipp10-disable-downloader.patch: Delete file.
* gnu/packages/patches/tipp10-fix-compiling.patch: Likewise.
* gnu/packages/patches/tipp10-qt5.patch: Likewise.
* gnu/packages/patches/tipp10-remove-license-code.patch: Likewise.
* gnu/local.mk (dist_patch_DATA): De-register them.
Diffstat (limited to 'gnu/packages')
-rw-r--r--gnu/packages/education.scm57
-rw-r--r--gnu/packages/patches/tipp10-disable-downloader.patch165
-rw-r--r--gnu/packages/patches/tipp10-fix-compiling.patch212
-rw-r--r--gnu/packages/patches/tipp10-qt5.patch69
-rw-r--r--gnu/packages/patches/tipp10-remove-license-code.patch332
5 files changed, 19 insertions, 816 deletions
diff --git a/gnu/packages/education.scm b/gnu/packages/education.scm
index d1e220ebcd..61fc9945fa 100644
--- a/gnu/packages/education.scm
+++ b/gnu/packages/education.scm
@@ -11,6 +11,7 @@
 ;;; Copyright © 2020 Prafulla Giri <pratheblackdiamond@gmail.com>
 ;;; Copyright © 2021 Nicolò Balzarotti <nicolo@nixo.xyz>
 ;;; Copyright © 2022 Luis Felipe López Acevedo <luis.felipe.la@protonmail.com>
+;;; Copyright © 2023 Maxim Cournoyer <maxim.cournoyer@gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -266,47 +267,24 @@ frequently used words in American English.")
 (define-public tipp10
   (package
     (name "tipp10")
-    (version "2.1.0")
+    (version "3.3.0")
     (source (origin
-              (method url-fetch)
-              ;; guix download is not able to handle the download links on the
-              ;; home-page, which use '<meta http-equiv="refresh" …>'
-              (uri (string-append "mirror://debian/pool/main/"
-                                  "t/tipp10/tipp10_2.1.0.orig.tar.gz"))
+              (method git-fetch)
+              ;; Use the community maintained Qt 6 fork of the project, as the
+              ;; original software is now developed as a web application.  The
+              ;; latest official version was 2.1.0.
+              (uri (git-reference
+                    (url "https://gitlab.com/tipp10/tipp10.git")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
               (sha256
                (base32
-                "0d387b404j88gsv6kv0rb7wxr23v5g5vl6s5l7602x8pxf7slbbx"))
-              ;; Apply patches in the order determined by Debian
-              (patches (search-patches "tipp10-fix-compiling.patch"
-                                       "tipp10-remove-license-code.patch"
-                                       "tipp10-disable-downloader.patch"
-                                       "tipp10-qt5.patch"))))
-    (build-system cmake-build-system)
-    (arguments
-     `(#:tests? #f ; packages has no tests
-       #:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'disable-new-version-check
-           (lambda _
-             ;; Make new version check to default to false.
-             ;; TODO: Remove the checkbox from the dialog and the check itself
-             (substitute* '("widget/settingspages.cpp" "widget/mainwindow.cpp")
-               (("settings.value(\"check_new_version\", true)")
-                "settings.value(\"check_new_version\", false)"))
-             #t))
-         (replace 'configure
-           (lambda* (#:key outputs #:allow-other-keys)
-             (let ((out (assoc-ref outputs "out")))
-               ;; Make program honor $PREFIX
-               (substitute* "tipp10.pro"
-                 (("\\.path = /usr/") (string-append ".path = " out "/")))
-               (substitute* "def/defines.h"
-                 (("\"/usr/") (string-append "\"" out "/")))
-               ;; Recreate Makefile
-               (invoke "qmake")))))))
-    (inputs
-     (list qtbase-5 qtmultimedia-5))
-    (home-page "https://www.tipp10.com/")
+                "138xf55csnq53mlkhj50g9bacay8kxz6p9vnzd7jyv6rq1xch5nq"))))
+    (build-system qt-build-system)
+    (arguments (list #:qtbase qtbase    ;qtbase 6
+                     #:tests? #f))      ;packages has no tests
+    (inputs (list qtbase qtmultimedia))
+    (home-page "https://www.tipp10.com/en/")
     (synopsis "Touch typing tutor")
     (description "Tipp10 is a touch typing tutor.  The ingenious thing about
 the software is its intelligence feature: characters that are mistyped are
@@ -316,6 +294,9 @@ they can start practicing without a hitch.
 Useful support functions and an extensive progress tracker, topical lessons
 and the ability to create your own practice lessons make learning to type
 easy.")
+    ;; XXX: The LICENSE file mentions 'or later', but the source license
+    ;; headers have been modified to mention only "either version 2 of the
+    ;; License", which is not quite clear.
     (license license:gpl2)))
 
 (define-public snap
diff --git a/gnu/packages/patches/tipp10-disable-downloader.patch b/gnu/packages/patches/tipp10-disable-downloader.patch
deleted file mode 100644
index 4917a927f9..0000000000
--- a/gnu/packages/patches/tipp10-disable-downloader.patch
+++ /dev/null
@@ -1,165 +0,0 @@
-https://salsa.debian.org/debian/tipp10/-/raw/debian/2.1.0-5/debian/patches/disable_downloaders.patch
-
-Author: Reiner Herrmann <reiner@reiner-h.de>
-Description: Disable downloaders
- This makes porting to Qt5 much easier, as QHttp is no longer available.
- But the functionality was not enabled anyway or is no longer useful.
- .
- - checkversion.h/.cpp:
-   At startup (while loading settings), Tipp10 "phones home" to do an
-   update check (www.tipp10.com/update/version.tipp10v210).
-   For a packaged software and one that is no longer being developed,
-   this does not make much sense.
- - updatedialog.h/.cpp:
-   Can download newer sqlite database (www.tipp10.com/update/sql.tipp10v210.utf),
-   but this file is no longer available on the server (404).
-   The update action has also not been enabled in the menu, so the update
-   functionality was currently not active:
-     widget/mainwindow.cpp:143:  //fileMenu->addAction(updateAction);
- - downloaddialog.h/.cpp:
-   Allows downloading lessons from user-specified location.
-   But the action (widget/startwidget.cpp -> lessonDownload) has not been part
-   of any menu, so it was also not in use.
-
---- a/tipp10.pro
-+++ b/tipp10.pro
-@@ -15,7 +15,6 @@
- INCLUDEPATH     += 	.

- CONFIG          += 	qt

- QT              += 	sql

--QT              += 	network

- RC_FILE         += 	tipp10.rc

- RESOURCES       += 	tipp10.qrc

- HEADERS         += 	def/defines.h \

-@@ -36,15 +35,12 @@
-                     widget/settingspages.h \

-                     widget/lessondialog.h \

-                     widget/regexpdialog.h \

--                    widget/downloaddialog.h \

-                     widget/lessonprintdialog.h \

-                     widget/lessonresult.h \

--                    widget/updatedialog.h \

-                     widget/helpbrowser.h \

-                     widget/companylogo.h \

-                     widget/errormessage.h \

-                     widget/txtmessagedialog.h \

--                    widget/checkversion.h \

-                     sql/connection.h \

-                     sql/lessontablesql.h \

-                     sql/chartablesql.h \

-@@ -70,15 +66,12 @@
-                     widget/settingspages.cpp \

-                     widget/lessondialog.cpp \

-                     widget/regexpdialog.cpp \

--                    widget/downloaddialog.cpp \

-                     widget/lessonprintdialog.cpp \

-                     widget/lessonresult.cpp \

--                    widget/updatedialog.cpp \

-                     widget/helpbrowser.cpp \

-                     widget/companylogo.cpp \

-                     widget/errormessage.cpp \

-                     widget/txtmessagedialog.cpp \

--                    widget/checkversion.cpp \

-                     sql/lessontablesql.cpp \

-                     sql/chartablesql.cpp \

-                     sql/trainingsql.cpp \

---- a/widget/mainwindow.cpp
-+++ b/widget/mainwindow.cpp
-@@ -41,11 +41,9 @@
- 

- #include "mainwindow.h"

- #include "settingsdialog.h"

--#include "updatedialog.h"

- #include "def/defines.h"

- #include "def/errordefines.h"

- #include "errormessage.h"

--#include "checkversion.h"

- 

- MainWindow::MainWindow() {

- 	trainingStarted = false;

-@@ -214,8 +212,8 @@
- }

- 

- void MainWindow::showUpdate() {

--	UpdateDialog updateDialog(this);

--	updateDialog.exec();

-+	//UpdateDialog updateDialog(this);

-+	//updateDialog.exec();

- 	// Fill lesson list after online update

- 	startWidget->fillLessonList(false);

- }

-@@ -486,6 +484,7 @@
- 	settings.endGroup();

- 

-     settings.beginGroup("general");

-+#if 0

-     if (settings.value("check_new_version", true).toBool()) {

- 

-         QDate lastVersionCheck = settings.value("last_version_check").toDate();

-@@ -499,6 +498,7 @@
-         }

-         settings.setValue("last_version_check", today);

-     }

-+#endif

-     settings.endGroup();

- }

- 

---- a/widget/settingspages.cpp
-+++ b/widget/settingspages.cpp
-@@ -581,7 +581,7 @@
- 

- 	// Layout of group box vertical

- 	QVBoxLayout *layout = new QVBoxLayout;

--    layout->addWidget(checkNewVersion);

-+    //layout->addWidget(checkNewVersion);

-     layout->addSpacing(1);

-     layout->addWidget(checkNativeStyle);

-     layout->setMargin(16);

-@@ -610,7 +610,6 @@
-     checkIntelligence->setChecked(settings.value("check_toggle_intelligence", true).toBool());

- 	checkLimitLesson->setChecked(settings.value("check_limit_lesson", true).toBool());

- 	checkLessonPublish->setChecked(settings.value("check_lesson_publish", true).toBool());

--    checkNewVersion->setChecked(settings.value("check_new_version", true).toBool());

-     checkNativeStyle->setChecked(settings.value("check_native_style", false).toBool());

- 	settings.endGroup();

- }

-@@ -636,7 +635,6 @@
- 	settings.setValue("check_limit_lesson", checkLimitLesson->isChecked());

- 	settings.setValue("check_lesson_publish", checkLessonPublish->isChecked());

- 	settings.setValue("check_native_style", checkNativeStyle->isChecked());

--    settings.setValue("check_new_version", checkNewVersion->isChecked());

-     settings.endGroup();

- 

- 	return requireRestart;

---- a/widget/startwidget.cpp
-+++ b/widget/startwidget.cpp
-@@ -43,12 +43,10 @@
- 

- #include "startwidget.h"

- #include "sql/startsql.h"

--#include "updatedialog.h"

- #include "def/defines.h"

- #include "def/errordefines.h"

- #include "errormessage.h"

- #include "lessondialog.h"

--#include "downloaddialog.h"

- #include "illustrationdialog.h"

- #include "txtmessagedialog.h"

- 

-@@ -1048,7 +1046,7 @@
- }

- 

- void StartWidget::clickDownloadLesson() {

--

-+#if 0

- 	QStringList lessonData;

- 

- 	DownloadDialog downloadDialog(&lessonData, this);

-@@ -1083,6 +1081,7 @@
- 			}

- 		}

- 	}

-+#endif

- }

- 

- void StartWidget::clickEditLesson() {

diff --git a/gnu/packages/patches/tipp10-fix-compiling.patch b/gnu/packages/patches/tipp10-fix-compiling.patch
deleted file mode 100644
index 3a34a98b22..0000000000
--- a/gnu/packages/patches/tipp10-fix-compiling.patch
+++ /dev/null
@@ -1,212 +0,0 @@
-Description: Debian patches to make tipp10 compile
-Author: Christoph Martin <chrism@debian.org>
-Last-Update: 2016-07-20
-
-https://sources.debian.net/data/main/t/tipp10/2.1.0-2/debian/patches/0001-FixCompiling
-
---- a/widget/tickerboard.cpp
-+++ b/widget/tickerboard.cpp
-@@ -97,7 +97,8 @@ void TickerBoard::startTicker(bool wasPa
- 

- 		if (tickerSpeed == 50) {

- 			scrollOffset = 290;

--			scroll(-290, 0, QRect::QRect(10, 15, 590, 35)); //contentsRect());

-+			const QRect qr = QRect(10, 15, 590, 35);

-+			scroll(-290, 0, qr); //contentsRect());

- 		}

- 

- 		startFlag = true;

-@@ -153,7 +154,8 @@ void TickerBoard::changeChar() {
- 			scrollOffset = 0;

- 		} else {

- 			scrollOffset = 290;

--			scroll(-290, 0, QRect::QRect(10, 15, 590, 35)); //contentsRect());

-+			const QRect qr = QRect(10, 15, 590, 35);

-+			scroll(-290, 0, qr); //contentsRect());

- 		}

- 		splitLesson();

- 	}

-@@ -242,7 +244,8 @@ void TickerBoard::progress() {
- 

- 				// Move ticker 1 pixel to left

- 				scrollOffset++;

--				scroll(-1, 0, QRect::QRect(10, 15, 590, 35)); //contentsRect());

-+				const QRect qr = QRect(10, 15, 590, 35);

-+				scroll(-1, 0, qr); //contentsRect());

- 

- 				if ((lessonOffset - scrollOffset) <= 30) {

- 					setSpeed(tickerSpeed);

-@@ -265,14 +268,16 @@ void TickerBoard::progress() {
- 			// 160 pixels overage (because the user must see at least the next word)

- 			if ((lessonOffset - scrollOffset) > 200) {

- 				scrollOffset += (lessonOffset - scrollOffset) - 200;

--				scroll(-((lessonOffset - scrollOffset) - 200), 0, QRect::QRect(10, 15, 590, 35)); //contentsRect());

-+				const QRect qr = QRect(10, 15, 590, 35);

-+				scroll(-((lessonOffset - scrollOffset) - 200), 0, qr); //contentsRect());

- 			}

- 		} else {

- 			// If the user types faster than the ticker, move ticker faster after

- 			// 160 pixels overage (because the user must see at least the next word)

- 			if ((lessonOffset - scrollOffset) > 280) {

- 				scrollOffset += 570;

--				scroll(-570, 0, QRect::QRect(10, 15, 590, 35)); //contentsRect());

-+				const QRect qr = QRect(10, 15, 590, 35);

-+				scroll(-570, 0, qr); //contentsRect());

- 			}

- 

- 		}

---- a/widget/settingspages.cpp
-+++ b/widget/settingspages.cpp
-@@ -501,7 +501,7 @@ void DatabasePage::writeSettings() {
- 	QSettings settings;

- 	#endif

- 	settings.beginGroup("database");

--	settings.setValue("pathpro", lineDatabasePath->text() + "/" + QString::QString(APP_USER_DB));

-+	settings.setValue("pathpro", lineDatabasePath->text() + "/" + QString(APP_USER_DB));

- 	settings.endGroup();

- }

- 

---- a/widget/lessondialog.cpp
-+++ b/widget/lessondialog.cpp
-@@ -89,7 +89,7 @@ void LessonDialog::updateContent() {
- 			*lessonData = lineLessonContent->toPlainText().split("\n", QString::SkipEmptyParts);

- 			// Delete empty lines

- 			for (int i = 0; i < lessonData->size(); i++) {

--				if (QString::QString(lessonData->at(i).toLocal8Bit().constData()).simplified() == "") {

-+				if (QString(lessonData->at(i).toLocal8Bit().constData()).simplified() == "") {

- 					lessonData->removeAt(i);

- 				}

- 			}

-@@ -259,7 +259,7 @@ void LessonDialog::clickSave() {
- 	contentList = lineLessonContent->toPlainText().split("\n", QString::SkipEmptyParts);

- 	// Delete empty lines

- 	for (i = 0; i < contentList.size(); i++) {

--		if (QString::QString(contentList.at(i).toLocal8Bit().constData()).simplified() == "") {

-+		if (QString(contentList.at(i).toLocal8Bit().constData()).simplified() == "") {

- 			contentList.removeAt(i);

- 		}

- 	}

---- a/sql/chartablesql.cpp
-+++ b/sql/chartablesql.cpp
-@@ -57,7 +57,7 @@ QVariant CharSqlModel::data(const QModel
- 			// Read the unicode value

- 			unicode = value.toInt();

- 			// Convert unicode to a char

--			unicodeToChar = QString::QString(QChar(unicode)); //"\'" + QString::QString(QChar(unicode)) + "\'";

-+			unicodeToChar = QString(QChar(unicode)); //"\'" + QString::QString(QChar(unicode)) + "\'";

- 			return unicodeToChar;

- 		} else {

- 			// Last column (error weight)

---- a/sql/startsql.cpp
-+++ b/sql/startsql.cpp
-@@ -344,7 +344,7 @@ bool StartSql::updateOwnLesson(QString l
- 		for (i = 0; i < content.size(); i++) {

- 			//simplifiedContent = QString::QString(

- 			//	content.at(i)).replace(QChar(0x27), "''", Qt::CaseSensitive).simplified();

--			simplifiedContent = trim(QString::QString(

-+			simplifiedContent = trim(QString(

- 				content.at(i)).replace(QChar(0x27), "''", Qt::CaseSensitive));

- 

- 			if (!query.exec("INSERT INTO own_content VALUES(NULL,'" +

---- a/def/defines.h
-+++ b/def/defines.h
-@@ -27,9 +27,9 @@ Foundation, Inc., 51 Franklin Street, Fi
- #define DEFINES_H

- 

- // OS constants

--#define APP_WIN						true

-+#define APP_WIN						false

- #define APP_MAC						false

--#define APP_X11						false

-+#define APP_X11						true

- #define APP_PORTABLE				false //at least one of the 3 OS must be true too!

- 

- // Languages

-@@ -47,6 +47,7 @@ Foundation, Inc., 51 Franklin Street, Fi
- #define APP_URL 					"http://www.tipp10.com"

- #define APP_DB 						"tipp10v2.template"

- #define APP_USER_DB					"tipp10v2.db"

-+#define APP_SHARE_DIR					"/usr/share/tipp10"

- 

- // Update constants

- #define UPDATE_URL 					"www.tipp10.com"

---- a/tipp10.pro
-+++ b/tipp10.pro
-@@ -88,3 +88,15 @@ SOURCES         += 	main.cpp \
-                     sql/startsql.cpp \

-                     games/abcrainwidget.cpp \

-                     games/charball.cpp

-+

-+target.path = /usr/bin/

-+INSTALLS += target

-+share.path = /usr/share/tipp10/

-+share.files = release/* *wav

-+INSTALLS += share

-+desktop.path = /usr/share/applications/

-+desktop.files = tipp10.desktop

-+INSTALLS += desktop

-+pixmap.path = /usr/share/pixmaps/

-+pixmap.files = tipp10.png

-+INSTALLS += pixmap

---- a/sql/connection.h
-+++ b/sql/connection.h
-@@ -179,11 +179,13 @@ static bool createConnection() {
- 				CANCEL_NO, "Betroffener Pfad:\n" + dbPath);*/

- 			// Try to create new databae in user path

- 			// Exist a database in the program dir?

--			if (QFile::exists(QCoreApplication::applicationDirPath() + "/" + dbNameTemplate)) {

-+			// if (QFile::exists(QCoreApplication::applicationDirPath() + "/" + dbNameTemplate)) {

-+		  	if (QFile::exists(QString(APP_SHARE_DIR) + "/" + dbNameTemplate)) {

- 			//if (QFile::exists(":/" + dbNameTemplate)) {

- 				// A database exist in the program dir

- 				// -> copy database to user home dir

--				QFile file(QCoreApplication::applicationDirPath() + "/" + dbNameTemplate);

-+				// QFile file(QCoreApplication::applicationDirPath() + "/" + dbNameTemplate);

-+			  	QFile file(QString(APP_SHARE_DIR) + "/" + dbNameTemplate);

- 				//QFile file(":/" + dbNameTemplate);

- 				if (file.copy(dbPath)) {

- 					QFile::setPermissions(dbPath, QFile::permissions(dbPath) | QFile::WriteUser);

-@@ -229,7 +231,8 @@ static bool createConnection() {
- 		// Exist a database in user's home dir?

- 		if (!QFile::exists(dbPath)) {

- 			// Exist a database template in the program dir?

--			dbPath = QCoreApplication::applicationDirPath() + "/" + dbNameTemplate;

-+			// dbPath = QCoreApplication::applicationDirPath() + "/" + dbNameTemplate;

-+		  	dbPath = QString(APP_SHARE_DIR) + "/" + dbNameTemplate;

- 			//dbPath = ":/" + dbNameTemplate;

- 			if (QFile::exists(dbPath)) {

- 				// A database template exist in the program dir

---- a/widget/helpbrowser.cpp
-+++ b/widget/helpbrowser.cpp
-@@ -52,13 +52,15 @@ HelpBrowser::HelpBrowser(QString link, Q
-     textBrowser->setOpenExternalLinks(true);

- 	

-     textBrowser->setSource(QString("file:///") + 

--    	QCoreApplication::applicationDirPath() + 

-+	// QCoreApplication::applicationDirPath() + 

-+    	APP_SHARE_DIR + 

-     	QString("/help/") + language + QString("/index.html"));

-     	

-     if (link != "") {

-     

- 		textBrowser->setSource(QString("file:///") + 

--			QCoreApplication::applicationDirPath() + 

-+			// QCoreApplication::applicationDirPath() + 

-+			APP_SHARE_DIR + 

- 			QString("/help/") + language + QString("/content/") + link);

- 			

- 	}

---- a/tipp10.desktop
-+++ b/tipp10.desktop
-@@ -1,10 +1,10 @@
- [Desktop Entry]
--Encoding=UTF-8
- Name=TIPP10
- Comment=Touch Typing Tutor
- Comment[de]=10-Finger-Schreibtrainer
- Exec=tipp10
- Icon=tipp10.png
- Terminal=false
- Type=Application
- Categories=Education;
-+Keywords=learning;touchtyping
diff --git a/gnu/packages/patches/tipp10-qt5.patch b/gnu/packages/patches/tipp10-qt5.patch
deleted file mode 100644
index 34ad5cd708..0000000000
--- a/gnu/packages/patches/tipp10-qt5.patch
+++ /dev/null
@@ -1,69 +0,0 @@
-https://salsa.debian.org/debian/tipp10/-/raw/debian/2.1.0-5/debian/patches/qt5.patch
-
-Author: Reiner Herrmann <reiner@reiner-h.de>
-Description: Port to Qt5
-Bug-Debian: https://bugs.debian.org/875207
-
---- a/tipp10.pro
-+++ b/tipp10.pro
-@@ -14,6 +14,7 @@
- DEPENDPATH      += 	.

- INCLUDEPATH     += 	.

- CONFIG          += 	qt

-+QT              += 	widgets multimedia printsupport

- QT              += 	sql

- RC_FILE         += 	tipp10.rc

- RESOURCES       += 	tipp10.qrc

---- a/main.cpp
-+++ b/main.cpp
-@@ -24,7 +24,6 @@
- ****************************************************************/

- 

- #include <QApplication>

--#include <QPlastiqueStyle>

- #include <QString>

- #include <QSettings>

- #include <QCoreApplication>

-@@ -212,7 +211,7 @@
- 

-     // Set windows style

- 	if (!useNativeStyle) {

--	    app.setStyle("plastique");

-+	    app.setStyle("fusion");

-     }

- 

- 	// Translation

---- a/games/abcrainwidget.cpp
-+++ b/games/abcrainwidget.cpp
-@@ -235,8 +235,7 @@
- 		charballs.last()->wind = (qrand() % 8) + 2;

- 		charballs.last()->rad = 0;

- 

--		chartext.append(new QGraphicsTextItem(QString(characterTemp),

--			charballs.last(), scene));

-+		chartext.append(new QGraphicsTextItem(QString(characterTemp), charballs.last()));

- 		chartext.last()->setFont(QFont("Courier", 16, 100));

- 		chartext.last()->setPos(-(chartext.last()->boundingRect().width() / 2), -(chartext.last()->boundingRect().height() / 2));

- 

---- a/sql/chartablesql.cpp
-+++ b/sql/chartablesql.cpp
-@@ -137,7 +137,7 @@
- 	sortColumn(4);

- 

- 	headerview->setStretchLastSection(true);

--	headerview->setResizeMode(QHeaderView::Interactive);

-+	headerview->setSectionResizeMode(QHeaderView::Interactive);

- 	headerview->setSortIndicatorShown(true);

- 

- 	// Resize the columns

---- a/sql/lessontablesql.cpp
-+++ b/sql/lessontablesql.cpp
-@@ -202,7 +202,7 @@
- 	sortColumn(-1);

- 

- 	headerview->setStretchLastSection(true);

--	headerview->setResizeMode(QHeaderView::Interactive);

-+	headerview->setSectionResizeMode(QHeaderView::Interactive);

- 	headerview->setSortIndicatorShown(true);

- 

- 	// Resize the columns

diff --git a/gnu/packages/patches/tipp10-remove-license-code.patch b/gnu/packages/patches/tipp10-remove-license-code.patch
deleted file mode 100644
index 4b7487e726..0000000000
--- a/gnu/packages/patches/tipp10-remove-license-code.patch
+++ /dev/null
@@ -1,332 +0,0 @@
-Description: Remove license dialog and license key checking
-
-https://sources.debian.net/data/main/t/tipp10/2.1.0-2/debian/patches/0002-RemoveLicenseCode
-
---- a/main.cpp
-+++ b/main.cpp
-@@ -33,7 +33,6 @@ Foundation, Inc., 51 Franklin Street, Fi
- #include "def/defines.h"

- #include "sql/connection.h"

- #include "widget/mainwindow.h"

--#include "widget/licensedialog.h"

- #include "widget/illustrationdialog.h"

- 

- int main(int argc, char *argv[]) {

-@@ -59,7 +58,7 @@ int main(int argc, char *argv[]) {
- 	QSettings settings;

- 	#endif

- 

--	// Read/write language, license key and show illustration flag

-+	// Read/write language and show illustration flag

- 	settings.beginGroup("general");

- 	QString languageGui = settings.value("language_gui",

- 		QLocale::system().name()).toString();

-@@ -101,7 +100,6 @@ int main(int argc, char *argv[]) {
- 	QString languageLesson = settings.value("language_lesson",

- 		"").toString();

- 

--	QString licenseKey = settings.value("licensekey", "").toString();

- 	bool showIllustration = settings.value("check_illustration", true).toBool();

- 	bool useNativeStyle = settings.value("check_native_style", false).toBool();

- 	settings.endGroup();

---- a/tipp10.pro
-+++ b/tipp10.pro
-@@ -43,7 +43,6 @@ HEADERS         += 	def/defines.h \
-                     widget/helpbrowser.h \

-                     widget/companylogo.h \

-                     widget/errormessage.h \

--                    widget/licensedialog.h \

-                     widget/txtmessagedialog.h \

-                     widget/checkversion.h \

-                     sql/connection.h \

-@@ -78,7 +77,6 @@ SOURCES         += 	main.cpp \
-                     widget/helpbrowser.cpp \

-                     widget/companylogo.cpp \

-                     widget/errormessage.cpp \

--                    widget/licensedialog.cpp \

-                     widget/txtmessagedialog.cpp \

-                     widget/checkversion.cpp \

-                     sql/lessontablesql.cpp \

---- a/widget/licensedialog.cpp
-+++ /dev/null
-@@ -1,168 +0,0 @@
--/*

--Copyright (c) 2006-2009, Tom Thielicke IT Solutions

--

--This program is free software; you can redistribute it and/or

--modify it under the terms of the GNU General Public License

--as published by the Free Software Foundation; either version 2

--of the License.

--

--This program is distributed in the hope that it will be useful,

--but WITHOUT ANY WARRANTY; without even the implied warranty of

--MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the

--GNU General Public License for more details.

--

--You should have received a copy of the GNU General Public License

--along with this program; if not, write to the Free Software

--Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA

--02110-1301, USA.

--*/

--

--/****************************************************************

--**

--** Implementation of the LicenseDialog class

--** File name: licensedialog.cpp

--**

--****************************************************************/

--

--#include <QHBoxLayout>

--#include <QVBoxLayout>

--#include <QMessageBox>

--#include <QSettings>

--#include <QCoreApplication>

--

--#include "licensedialog.h"

--#include "def/defines.h"

--

--LicenseDialog::LicenseDialog(QWidget *parent) : QDialog(parent) {

--

--	setWindowFlags(windowFlags() ^ Qt::WindowContextHelpButtonHint);

--

--	setWindowTitle(tr("Lizenznummer"));

--	setWindowIcon(QIcon(":/img/" + QString(ICON_FILENAME)));

--

--	// Create texbox

--    createLineEdit();

--

--	// Create buttons

--    createButtons();

--

--	// Set the layout of all widgets created above

--	createLayout();

--

--	lineLicensing->setFocus();

--}

--

--void LicenseDialog::createButtons() {

--	//Buttons

--	buttonOk = new QPushButton(this);

--	buttonDemo = new QPushButton(this);

--

--	buttonOk->setText(tr("&Ok"));

--	buttonDemo->setText(tr("&Demo starten"));

--	buttonDemo->setToolTip(tr("Im Demo-Modus koennen pro Lektion nur\n"

--		"10 Schriftzeichen eingegeben werden"));

--

--	buttonOk->setDefault(true);

--	// Widget connections

--    connect(buttonOk, SIGNAL(clicked()), this, SLOT(clickOk()));

--    connect(buttonDemo, SIGNAL(clicked()), this, SLOT(clickDemo()));

--}

--

--void LicenseDialog::createLineEdit() {

--

--	lineLicensing = new QLineEdit();

--	lineLicensing->setInputMask(">NNNNNNNNNNNNNN");

--

--	labelLicensing = new QLabel(tr("Bitte geben Sie Ihre Lizenznummer "

--		"(ohne Leerzeichen) ein, "

--		"die Sie im Arbeitsbuch (Schulbuch) auf Seite 3 finden:"));

--

--	labelLicensing->setWordWrap(true);

--}

--

--void LicenseDialog::createLayout() {

--	// Button layout horizontal

--	QHBoxLayout *buttonLayoutHorizontal = new QHBoxLayout;

--    buttonLayoutHorizontal->addStretch(1);

--    buttonLayoutHorizontal->addWidget(buttonDemo);

--    buttonLayoutHorizontal->addWidget(buttonOk);

--	// Full layout of all widgets vertical

--	QVBoxLayout *mainLayout = new QVBoxLayout;

--    mainLayout->addSpacing(1);

--    mainLayout->addWidget(labelLicensing);

--    mainLayout->addSpacing(1);

--    mainLayout->addWidget(lineLicensing);

--    mainLayout->addSpacing(1);

--    mainLayout->addLayout(buttonLayoutHorizontal);

--    mainLayout->setMargin(15);

--    mainLayout->setSpacing(15);

--    // Pass layout to parent widget (this)

--	this->setLayout(mainLayout);

--}

--

--void LicenseDialog::clickOk() {

--

--	// Check license key

--	if (!checkLicenseKey(lineLicensing->text())) {

--

--		// License key is wrong

--

--		// Message to the user

--		QMessageBox::information(0, APP_NAME,

--			tr("Die eingegebene Lizenznummer ist leider nicht "

--			"korrekt.\nBitte ueberpruefen Sie die Schreibweise."));

--

--		lineLicensing->setFocus();

--

--	} else {

--

--		// License key is ok

--		writeSettings();

--		accept();

--	}

--}

--

--void LicenseDialog::clickDemo() {

--	accept();

--}

--

--bool LicenseDialog::checkLicenseKey(QString licenseKey) {

--	if (licenseKey.size() == 14 &&

--		licenseKey[0].isLetter() &&

--		licenseKey[1].isLetter() &&

--		(licenseKey.mid(2, 2) == "39" ||

--		licenseKey.mid(2, 2) == "41" ||

--		licenseKey.mid(2, 2) == "43" ||

--		licenseKey.mid(2, 2) == "49" ||

--		licenseKey.mid(2, 2) == "99") &&

--		licenseKey[4].isDigit() &&

--		licenseKey[5].isDigit() &&

--		licenseKey[6].isDigit() &&

--		licenseKey[7].isLetter() &&

--		licenseKey[8].isDigit() &&

--		licenseKey[9].isDigit() &&

--		licenseKey[10].isDigit() &&

--		licenseKey[11].isDigit() &&

--		licenseKey[12].isLetter() &&

--		licenseKey[13].isLetter()) {

--

--		return true;

--	}

--	return false;

--}

--

--void LicenseDialog::writeSettings() {

--	// Saves settings of the startwiget

--	// (uses the default constructor of QSettings, passing

--	// the application and company name see main function)

--	#if APP_PORTABLE

--	QSettings settings(QCoreApplication::applicationDirPath() +

--    	"/portable/settings.ini", QSettings::IniFormat);

--    #else

--	QSettings settings;

--	#endif

--

--	settings.beginGroup("general");

--	settings.setValue("licensekey", lineLicensing->text());

--	settings.endGroup();

--}

---- a/widget/licensedialog.h
-+++ /dev/null
-@@ -1,85 +0,0 @@
--/*

--Copyright (c) 2006-2009, Tom Thielicke IT Solutions

--

--This program is free software; you can redistribute it and/or

--modify it under the terms of the GNU General Public License

--as published by the Free Software Foundation; either version 2

--of the License.

--

--This program is distributed in the hope that it will be useful,

--but WITHOUT ANY WARRANTY; without even the implied warranty of

--MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the

--GNU General Public License for more details.

--

--You should have received a copy of the GNU General Public License

--along with this program; if not, write to the Free Software

--Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA

--02110-1301, USA.

--*/

--

--/****************************************************************

--**

--** Definition of the LicenseDialog class

--** File name: licensedialog.h

--**

--****************************************************************/

--

--#ifndef LICENSEDIALOG_H

--#define LICENSEDIALOG_H

--

--#include <QDialog>

--#include <QWidget>

--#include <QPushButton>

--#include <QLabel>

--#include <QLineEdit>

--#include <QString>

--

--//! The LicenseDialog class provides a license input widget.

--/*!

--	The LicenseDialog class shows a dialog to enter a license key.

--

--	@author Tom Thielicke, s712715

--	@version 0.0.1

--	@date 09.09.2008

--*/

--class LicenseDialog : public QDialog {

--	Q_OBJECT

--

--	public:

--

--		//! Constructor, creates two table objects and provide it in two tabs.

--		LicenseDialog(QWidget *parent = 0);

--

--		bool checkLicenseKey(QString licenseKey);

--

--	public slots:

--

--	private slots:

--

--		//! Start button pressed

--		void clickOk();

--

--		//! Demo button pressed

--		void clickDemo();

--

--	private:

--

--		//! Creates a cancel and a ok button.

--		void createButtons();

--

--		//! Creates a textbox.

--		void createLineEdit();

--

--		//! Creates the layout of the complete class.

--		void createLayout();

--

--		//! Writes user settings

--		void writeSettings();

--

--		QPushButton *buttonOk;

--		QPushButton *buttonDemo;

--		QLabel *labelLicensing;

--		QLineEdit *lineLicensing;

--};

--

--#endif //LICENSEDIALOG_H

---- a/widget/mainwindow.cpp
-+++ b/widget/mainwindow.cpp
-@@ -116,11 +116,6 @@ void MainWindow::closeEvent(QCloseEvent
- 	}

- }

- 

--bool MainWindow::checkLicenseKey(QString licenseKey) {

--

--    return false;

--}

--

- void MainWindow::createMenu() {

- 	//Mac-Version:

- 	//-----------

---- a/widget/mainwindow.h
-+++ b/widget/mainwindow.h
-@@ -39,7 +39,6 @@ Foundation, Inc., 51 Franklin Street, Fi
- #include "trainingwidget.h"

- #include "evaluationwidget.h"

- #include "illustrationdialog.h"

--#include "licensedialog.h"

- #include "games/abcrainwidget.h"

- #include "helpbrowser.h"

-