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