public inbox for git-commits@fedoraproject.org
help / color / mirror / Atom feed
From: Kevin Kofler <Kevin@tigcc.ticalc.org>
To: git-commits@fedoraproject.org
Subject: [rpms/kig] epel10: Add upstream bug fixes (Python scripting, coord precision dialog).
Date: Tue, 04 Aug 2026 19:44:50 GMT [thread overview]
Message-ID: <178587269078.1.4673662541603508716.rpms-kig-17dcabd049f2@fedoraproject.org> (raw)
A new commit has been pushed.
Repo : rpms/kig
Branch : epel10
Commit : 17dcabd049f2d2890c1c0f994bb9cfe49a40a320
Author : Kevin Kofler <Kevin@tigcc.ticalc.org>
Date : 2019-12-23T16:03:27+01:00
Stats : +260/-1 in 4 file(s)
URL : https://src.fedoraproject.org/rpms/kig/c/17dcabd049f2d2890c1c0f994bb9cfe49a40a320?branch=epel10
Log:
Add upstream bug fixes (Python scripting, coord precision dialog).
* Tue Oct 29 2019 Kevin Kofler <Kevin@tigcc.ticalc.org> - 19.08.3-2
- upstream patch: port pykig to Python 3 (see #1738033, #1777998, #1778000)
- upstream patch: add buttons to coord precision dialog (kde#414641, #1311513)
- fix Python assert failure (patch by Franco Pasquarelli, kde#401512, #1778000)
---
diff --git a/kig-19.08.3-coordinateprecisiondialog.patch b/kig-19.08.3-coordinateprecisiondialog.patch
new file mode 100644
index 0000000..6e969d2
--- /dev/null
+++ b/kig-19.08.3-coordinateprecisiondialog.patch
@@ -0,0 +1,65 @@
+From 63e4bc0f9f82162f3b78f0c565c29359ae906ec2 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?David=20E=2E=20Narv=C3=A1ez?= <david.narvaez@computer.org>
+Date: Sun, 22 Dec 2019 17:49:47 -0500
+Subject: Add a QDialogButtonBox to the Coordinate Precision Dialog
+
+Summary:
+This was missing from the migration to Frameworks.
+
+BUG: 414641
+
+Test Plan: 1) Go to "Settings -> Set Coordinate Precision..." and change the coordinate precision
+
+Reviewers: #kde_edu, apol
+
+Reviewed By: apol
+
+Subscribers: kde-edu
+
+Tags: #kde_edu
+
+Differential Revision: https://phabricator.kde.org/D26166
+---
+ misc/kigcoordinateprecisiondialog.cpp | 10 +++++++---
+ 1 file changed, 7 insertions(+), 3 deletions(-)
+
+diff --git a/misc/kigcoordinateprecisiondialog.cpp b/misc/kigcoordinateprecisiondialog.cpp
+index e5bdae5..da352dc 100644
+--- a/misc/kigcoordinateprecisiondialog.cpp
++++ b/misc/kigcoordinateprecisiondialog.cpp
+@@ -22,25 +22,29 @@
+
+ #include <QBoxLayout>
+ #include <QCheckBox>
++#include <QDialogButtonBox>
+ #include <QLabel>
+-
+ #include <QVBoxLayout>
+
+ KigCoordinatePrecisionDialog::KigCoordinatePrecisionDialog(bool isUserSpecified, int currentPrecision ) : QDialog()
+ {
+ ui = new Ui::KigCoordinatePrecisionDialog();
+ QWidget *mainWidget = new QWidget(this);
++ QDialogButtonBox *buttonBox = new QDialogButtonBox( QDialogButtonBox::Ok | QDialogButtonBox::Cancel );
+ QVBoxLayout *mainLayout = new QVBoxLayout;
+ setLayout(mainLayout);
+ mainLayout->addWidget(mainWidget);
++ mainLayout->addWidget( buttonBox );
+ ui->setupUi(mainWidget);
+-
++
+ ui->m_defaultCheckBox->setCheckState( isUserSpecified ? Qt::Unchecked : Qt::Checked) ;
+ ui->m_precisionLabel->setEnabled( isUserSpecified );
+ ui->m_precisionSpinBox->setEnabled( isUserSpecified );
+ ui->m_precisionSpinBox->setValue( currentPrecision );
+-
++
+ connect(ui->m_defaultCheckBox, &QCheckBox::stateChanged, this, &KigCoordinatePrecisionDialog::toggleCoordinateControls);
++ connect( buttonBox, &QDialogButtonBox::accepted, this, &QDialog::accept );
++ connect( buttonBox, &QDialogButtonBox::rejected, this, &QDialog::reject );
+
+ show();
+ }
+--
+cgit v1.1
+
diff --git a/kig-19.08.3-pykig-python3.patch b/kig-19.08.3-pykig-python3.patch
new file mode 100644
index 0000000..6a65b54
--- /dev/null
+++ b/kig-19.08.3-pykig-python3.patch
@@ -0,0 +1,162 @@
+From d72f33a14c22480b28c0f35d53293826f6ec787b Mon Sep 17 00:00:00 2001
+From: Antonio Rojas <arojas@archlinux.org>
+Date: Sat, 14 Dec 2019 19:49:09 +0100
+Subject: Port pykig to python 3
+
+Differential Revision: https://phabricator.kde.org/D25982
+---
+ pykig/pykig.py | 42 +++++++++++++++++++++---------------------
+ 1 file changed, 21 insertions(+), 21 deletions(-)
+
+diff --git a/pykig/pykig.py b/pykig/pykig.py
+index 02f637d..3ee6e97 100644
+--- a/pykig/pykig.py
++++ b/pykig/pykig.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+ # -*- coding: utf-8 -*-
+ #-------------------------------python------------------------pykig.py--#
+ # #
+@@ -170,9 +170,9 @@ class KigDocument(object):
+ self.of=of
+ try:
+ self.outfile = open(outfilename, 'w')
+- except IOError, value:
++ except IOError as value:
+ # print >> sys.stderr, outfilename, 'unwritable'
+- print >> sys.stderr, value
++ print(value, file=sys.stderr)
+ sys.exit(2)
+ # KigOut._kigdocument=self
+ KigDOP._kd=self
+@@ -212,14 +212,14 @@ class KigDocument(object):
+ self.outfile.write(" </View>\n</KigDocument>\n")
+ if self.outfile != sys.stdout:
+ self.outfile.close()
+- except IOError, value:
+- print >> sys.stderr, value
++ except IOError as value:
++ print(value, file=sys.stderr)
+ sys.exit(2)
+ try:
+ if self.callkig:
+ err = os.system('kig ' + self.outfilename)
+- except Exception, value:
+- print >> sys.stderr, value
++ except Exception as value:
++ print(value, file=sys.stderr)
+ if not self.of:
+ os.system('rm ' + self.outfilename)
+
+@@ -501,7 +501,7 @@ def databuild(nomeclasse, nomekig, v="val"):
+
+ for d in data:
+ p1, p2, p3 = d
+- exec databuild(p1, p2, p3)
++ exec (databuild(p1, p2, p3))
+
+ #####
+ # Objects
+@@ -645,7 +645,7 @@ def objectbuild(nameclass, namekig, params, objparams):
+
+ for o in objects:
+ p1, p2, p3, p4 = o
+- exec objectbuild(p1, p2, p3, p4)
++ exec (objectbuild(p1, p2, p3, p4))
+
+ #####
+ # Properties
+@@ -688,7 +688,7 @@ def propertybuild(nameclass, namekig, params, objparams):
+
+ for p in property:
+ p1, p2, p3, p4 = p
+- exec propertybuild(p1, p2, p3, p4)
++ exec (propertybuild(p1, p2, p3, p4))
+
+ #####
+ # Start of properties definitions as Object's methods
+@@ -734,7 +734,7 @@ def methodsbuild(namekig):
+
+ for p in methods:
+ p1, p2, cl = p
+- exec methodsbuild(p1)
++ exec (methodsbuild(p1))
+ for c in cl:
+ setattr(c, p2, method)
+
+@@ -743,7 +743,7 @@ for p in methods:
+ #####
+
+ def usage(codexit):
+- print >> sys.stderr, """
++ print ("""
+ usage: pykig.py [options...] file ...
+
+ Options:
+@@ -757,7 +757,7 @@ examples:
+ $ pykig.py my_file.kpy
+ $ pykig.py -o output_file.kig my_file.kpy
+ $ ...
+-"""
++""", file=sys.stderr)
+ sys.exit(codexit)
+
+ #####
+@@ -776,7 +776,7 @@ def prog():
+ _opts, _args = getopt.getopt(sys.argv[1:], "hvno:",\
+ ["help", "version", "nokig", "output="])
+ except getopt.GetoptError:
+- print "GetoptError"
++ print ("GetoptError")
+ usage(2)
+ _callKig=True
+ _of=False
+@@ -784,7 +784,7 @@ def prog():
+ if _opt in ("-h", "--help"):
+ usage(0)
+ if _opt in ("-v", "--version"):
+- print "Version:", version
++ print ("Version:", version)
+ sys.exit(0)
+ if _opt in ("-n", "--nokig"):
+ _callKig=False
+@@ -793,19 +793,19 @@ def prog():
+ _of=True
+ _callKig=False # if there's an output file, don't call Kig
+ if len(_args)==0:
+- _infilename=raw_input("Input file name: ")
++ _infilename=input("Input file name: ")
+ if not _infilename:
+- print "No input file name."
++ print ("No input file name.")
+ usage(2)
+ elif len(_args)==1:
+ _infilename=_args[0]
+ else:
+- print "No input file name."
++ print ("No input file name.")
+ usage(2)
+ try:
+ _infile = open(_infilename, 'r')
+ except:
+- print >> sys.stderr, _infilename, "input file can't be read."
++ print (_infilename, "input file can't be read.", file=sys.stderr)
+ sys.exit(2)
+ if _of:
+ if _outfilename=="-":
+@@ -817,9 +817,9 @@ def prog():
+ kigdocument=KigDocument(_outfilename, _callKig, _of)
+ kd=kigdocument
+ try:
+- execfile(_infilename, globals())
++ exec(open(_infilename).read(), globals())
+ except:
+- print >> sys.stderr, 'Syntax error in', _infilename
++ print ('Syntax error in', _infilename, file=sys.stderr)
+ _info = sys.exc_info() # print out the traceback
+ traceback.print_exc()
+ sys.exit(3)
+--
+cgit v1.1
+
diff --git a/kig-19.08.3-python_scripter-args-incref.patch b/kig-19.08.3-python_scripter-args-incref.patch
new file mode 100644
index 0000000..9254414
--- /dev/null
+++ b/kig-19.08.3-python_scripter-args-incref.patch
@@ -0,0 +1,11 @@
+diff -ur kig-19.08.3/scripting/python_scripter.cc kig-19.08.3-python_scripter-args-incref/scripting/python_scripter.cc
+--- kig-19.08.3/scripting/python_scripter.cc 2019-09-07 07:37:07.000000000 +0200
++++ kig-19.08.3-python_scripter-args-incref/scripting/python_scripter.cc 2019-12-23 15:46:00.766288729 +0100
+@@ -523,6 +523,7 @@
+ handle<> argstuph( PyTuple_New( args.size() ) );
+ for ( int i = 0; i < (int) objectvect.size(); ++i )
+ {
++ Py_XINCREF((objectvect.begin() +i)->ptr());
+ PyTuple_SetItem( argstuph.get(), i, (objectvect.begin() +i)->ptr() );
+ };
+ tuple argstup( argstuph );
diff --git a/kig.spec b/kig.spec
index 1d88e1b..a3efbbd 100644
--- a/kig.spec
+++ b/kig.spec
@@ -4,7 +4,7 @@
Name: kig
Summary: Interactive Geometry
Version: 19.08.3
-Release: 1%{?dist}
+Release: 2%{?dist}
License: GPLv2+
URL: https://cgit.kde.org/%{name}.git
@@ -23,11 +23,27 @@ Source0: http://download.kde.org/%{stable}/applications/%{version}/src/%{name}-%
# https://git.reviewboard.kde.org/r/126549/
Patch1: 0001-explicitly-use-QLibrary-to-load-libpython-like-pykde.patch
+# https://bugs.kde.org/show_bug.cgi?id=401512
+# https://bugzilla.redhat.com/show_bug.cgi?id=1778000
+# kig crashes with simple python script with a failing assertion
+# patch by Franco Pasquarelli (https://bugs.kde.org/show_bug.cgi?id=401512#c5)
+Patch2: kig-19.08.3-python_scripter-args-incref.patch
+
# upstream patches
# fix build with Python 3
# https://commits.kde.org/kig/c0aa768f28219ce8b3c275a6d13ad69757e3c7af
Patch100: kig-19.08.1-python3.patch
+# port pykig to python 3
+# https://commits.kde.org/kig/d72f33a14c22480b28c0f35d53293826f6ec787b
+Patch101: kig-19.08.3-pykig-python3.patch
+
+# add a QDialogButtonBox to the Coordinate Precision Dialog
+# https://bugs.kde.org/show_bug.cgi?id=414641
+# https://bugzilla.redhat.com/show_bug.cgi?id=1311513
+# https://commits.kde.org/kig/63e4bc0f9f82162f3b78f0c565c29359ae906ec2
+Patch102: kig-19.08.3-coordinateprecisiondialog.patch
+
BuildRequires: boost-devel
BuildRequires: boost-python3-devel
BuildRequires: python3
@@ -115,6 +131,11 @@ desktop-file-validate %{buildroot}%{_kf5_datadir}/applications/org.kde.%{name}.d
%changelog
+* Tue Oct 29 2019 Kevin Kofler <Kevin@tigcc.ticalc.org> - 19.08.3-2
+- upstream patch: port pykig to Python 3 (see #1738033, #1777998, #1778000)
+- upstream patch: add buttons to coord precision dialog (kde#414641, #1311513)
+- fix Python assert failure (patch by Franco Pasquarelli, kde#401512, #1778000)
+
* Tue Nov 12 2019 Rex Dieter <rdieter@fedoraproject.org> - 19.08.3-1
- 19.08.3
reply other threads:[~2026-08-04 19:44 UTC|newest]
Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
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
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=178587269078.1.4673662541603508716.rpms-kig-17dcabd049f2@fedoraproject.org \
--to=kevin@tigcc.ticalc.org \
--cc=git-commits@fedoraproject.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.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox