commit:     86036b508ce4244a68e97bbc0d1f7d6aaa2c2097
Author:     Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
AuthorDate: Mon Apr 28 20:53:49 2025 +0000
Commit:     Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
CommitDate: Mon Apr 28 21:47:20 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=86036b50

app-text/krop: treeclean

Closes: https://bugs.gentoo.org/947726 (pkgremoved)
Closes: https://bugs.gentoo.org/948581 (pkgremoved)
Closes: https://bugs.gentoo.org/952250 (pkgremoved)
Signed-off-by: Andreas Sturmlechner <asturm <AT> gentoo.org>

 app-text/krop/Manifest                       |   1 -
 app-text/krop/files/krop-0.6.0-links.patch   |  64 ------------
 app-text/krop/files/krop-0.6.0-pikepdf.patch | 150 ---------------------------
 app-text/krop/krop-0.6.0-r3.ebuild           |  38 -------
 app-text/krop/metadata.xml                   |  14 ---
 profiles/package.mask                        |   7 --
 6 files changed, 274 deletions(-)

diff --git a/app-text/krop/Manifest b/app-text/krop/Manifest
deleted file mode 100644
index f618c954865f..000000000000
--- a/app-text/krop/Manifest
+++ /dev/null
@@ -1 +0,0 @@
-DIST krop-0.6.0.tar.gz 48331 BLAKE2B 
ca6a00a410ed4e18a401fab3a21bc49c86f73165f68b192ab83c8fad74111ba9a9941f464a2646faa5a3317bbb45cdc89bed19c901999c0b11db353ac2997a65
 SHA512 
51a988e4fcb65d11cc26cf5b0c808e79097a66ef8ec4751a6c051289cd77b3328ebc8ecd9829adc466f87330beb8bc715d290cc20be415a7b8f179378b7bcb4f

diff --git a/app-text/krop/files/krop-0.6.0-links.patch 
b/app-text/krop/files/krop-0.6.0-links.patch
deleted file mode 100644
index c311b10cf88e..000000000000
--- a/app-text/krop/files/krop-0.6.0-links.patch
+++ /dev/null
@@ -1,64 +0,0 @@
-From a39f8328cf59492e68643f499c0d0fbda910444c Mon Sep 17 00:00:00 2001
-From: Armin Straub <[email protected]>
-Date: Sun, 17 Jan 2021 15:50:49 -0600
-Subject: [PATCH] Preserve links within a PDF (thanks to chrthi)
-
----
- ChangeLog          |  4 ++++
- krop/mainwindow.py |  1 +
- krop/pdfcropper.py | 11 +++++++++++
- 3 files changed, 16 insertions(+)
-
-diff --git a/ChangeLog b/ChangeLog
-index eb7dbb1..4ffbedb 100644
---- a/ChangeLog
-+++ b/ChangeLog
-@@ -1,3 +1,7 @@
-+krop (0.6.1)  2021-00-00 -- Armin Straub
-+
-+  * Preserve links within a PDF (thanks to chrthi for doing this).
-+
- krop (0.6.0)  2020-06-09 -- Armin Straub
- 
-   + Fixed aspect ratios, like letter size, can be chosen for selections.
-diff --git a/krop/mainwindow.py b/krop/mainwindow.py
-index fd1ae32..e8adadf 100644
---- a/krop/mainwindow.py
-+++ b/krop/mainwindow.py
-@@ -413,6 +413,7 @@ def slotKrop(self):
-             pdf = PdfFile()
-             pdf.loadFromFile(inputFileName)
-             cropper = PdfCropper()
-+            cropper.copyDocumentRoot(pdf)
-             for nr in pages:
-                 c = self.viewer.cropValues(nr)
-                 cropper.addPageCropped(pdf, nr, c, alwaysinclude, rotation)
-diff --git a/krop/pdfcropper.py b/krop/pdfcropper.py
-index 679c6fc..db30646 100644
---- a/krop/pdfcropper.py
-+++ b/krop/pdfcropper.py
-@@ -55,6 +55,8 @@ def writeToFile(self, filename):
-         stream.close()
-     def addPageCropped(self, pdffile, pagenumber, croplist, rotate=0):
-         pass
-+    def copyDocumentRoot(self, pdffile):
-+        pass
- 
- 
- class PyPdfFile(AbstractPdfFile):
-@@ -110,6 +112,15 @@ def cropPage(self, page, crop, rotate):
-         if rotate != 0:
-             page.rotateClockwise(rotate)
- 
-+    def copyDocumentRoot(self, pdffile):
-+        # Sounds promising in PyPDF2 (see 
PdfFileWriter.cloneDocumentFromReader),
-+        # but doesn't seem to produce a readable PDF:
-+        # self.output.cloneReaderDocumentRoot(pdffile.reader)
-+        # Instead, this copies at least the named destinations for links:
-+        for dest in pdffile.reader.namedDestinations.values():
-+            self.output.addNamedDestinationObject(dest)
-+
-+
- def optimizePdfGhostscript(oldfilename, newfilename):
-     import subprocess
-     subprocess.check_call(('gs', '-sDEVICE=pdfwrite', '-sOutputFile=' + 
newfilename,

diff --git a/app-text/krop/files/krop-0.6.0-pikepdf.patch 
b/app-text/krop/files/krop-0.6.0-pikepdf.patch
deleted file mode 100644
index 17f59f2f72b3..000000000000
--- a/app-text/krop/files/krop-0.6.0-pikepdf.patch
+++ /dev/null
@@ -1,150 +0,0 @@
-From b1d17b605088e118a8799fd027a892310e00d29e Mon Sep 17 00:00:00 2001
-From: Hongzhuo Liang <[email protected]>
-Date: Fri, 27 Jan 2023 17:57:04 +0100
-Subject: [PATCH] support pikepdf instead of pypdf2
-
----
- krop/mainwindow.py |  1 -
- krop/pdfcropper.py | 79 ++++++++++++++--------------------------------
- 2 files changed, 24 insertions(+), 56 deletions(-)
-
-diff --git a/krop/mainwindow.py b/krop/mainwindow.py
-index e8adadf..fd1ae32 100644
---- a/krop/mainwindow.py
-+++ b/krop/mainwindow.py
-@@ -413,7 +413,6 @@ def slotKrop(self):
-             pdf = PdfFile()
-             pdf.loadFromFile(inputFileName)
-             cropper = PdfCropper()
--            cropper.copyDocumentRoot(pdf)
-             for nr in pages:
-                 c = self.viewer.cropValues(nr)
-                 cropper.addPageCropped(pdf, nr, c, alwaysinclude, rotation)
-diff --git a/krop/pdfcropper.py b/krop/pdfcropper.py
-index db30646..42500de 100644
---- a/krop/pdfcropper.py
-+++ b/krop/pdfcropper.py
-@@ -15,23 +15,8 @@
- 
- import copy
- import sys
-+from pikepdf import Pdf
- 
--# Unless specified otherwise, use PyPDF2 instead of pyPdf if available.
--usepypdf2 = '--no-PyPDF2' not in sys.argv
--if usepypdf2:
--    try:
--        from PyPDF2 import PdfFileReader, PdfFileWriter
--    except ImportError:
--        usepypdf2 = False
--if not usepypdf2:
--    try:
--        from pyPdf import PdfFileReader, PdfFileWriter
--    except ImportError:
--        _msg = "Please install PyPDF2 (or its predecessor pyPdf) first."\
--            "\n\tOn recent versions of Ubuntu, the following should do the 
trick:"\
--            "\n\tsudo apt-get install python-pypdf2"\
--            "\n\t(or, if using python3) sudo apt-get install python3-pypdf2"
--        raise RuntimeError(_msg)
- 
- class PdfEncryptedError(Exception):
-     pass
-@@ -55,8 +40,6 @@ def writeToFile(self, filename):
-         stream.close()
-     def addPageCropped(self, pdffile, pagenumber, croplist, rotate=0):
-         pass
--    def copyDocumentRoot(self, pdffile):
--        pass
- 
- 
- class PyPdfFile(AbstractPdfFile):
-@@ -64,23 +47,16 @@ class PyPdfFile(AbstractPdfFile):
-     def __init__(self):
-         self.reader = None
-     def loadFromStream(self, stream):
--        if usepypdf2:
--            self.reader = PdfFileReader(stream, strict=False)
--        else:
--            self.reader = PdfFileReader(stream)
--        if self.reader.isEncrypted:
--            try:
--                if not self.reader.decrypt(''):
--                    raise PdfEncryptedError
--            except:
--                raise PdfEncryptedError
--    def getPage(self, nr):
--        page = self.reader.getPage(nr-1)
-+        self.reader = Pdf.open(stream)
-+        if self.reader.is_encrypted:
-+            raise PdfEncryptedError
-+
- 
- class PyPdfCropper(AbstractPdfCropper):
-     """Implementation of PdfCropper using pyPdf"""
-     def __init__(self):
--        self.output = PdfFileWriter()
-+        self.pdf = Pdf.new()
-+
-     def writeToStream(self, stream):
-         # For certain large pdf files, PdfFileWriter.write() causes the error:
-         #  maximum recursion depth exceeded while calling a Python object
-@@ -88,37 +64,31 @@ def writeToStream(self, stream):
-         # We therefore temporarily increase the recursion limit.
-         old_reclimit = sys.getrecursionlimit()
-         sys.setrecursionlimit(10000)
--        self.output.write(stream)
-+        self.pdf.save(stream)
-         sys.setrecursionlimit(old_reclimit)
-+
-     def addPageCropped(self, pdffile, pagenumber, croplist, alwaysinclude, 
rotate=0):
--        page = pdffile.reader.getPage(pagenumber)
-+        page = pdffile.reader.pages[pagenumber]
-         if not croplist and alwaysinclude:
--            self.output.addPage(page)
-+            self.pdf.pages.append(page)
-         for c in croplist:
--            newpage = copy.copy(page)
--            self.cropPage(newpage, c, rotate)
--            self.output.addPage(newpage)
--    def cropPage(self, page, crop, rotate):
-+            new_box = self.getCropPageParm(page, c)
-+            # Update the various PDF boxes
-+            new_page = copy.copy(page)
-+            new_page.mediabox = new_box
-+            new_page.cropbox = new_box
-+            new_page.trimbox = new_box
-+            if rotate != 0:
-+                new_page.rotate(rotate, True)
-+            self.pdf.pages.append(new_page)
-+
-+    def getCropPageParm(self, page, crop):
-         # Note that the coordinate system is up-side down compared with Qt.
--        x0, y0 = page.cropBox.lowerLeft
--        x1, y1 = page.cropBox.upperRight
-+        x0, y0, x1, y1 = page.cropbox
-         x0, y0, x1, y1 = float(x0), float(y0), float(x1), float(y1)
-         x0, x1 = x0+crop[0]*(x1-x0), x1-crop[2]*(x1-x0)
-         y0, y1 = y0+crop[3]*(y1-y0), y1-crop[1]*(y1-y0)
--        # Update the various PDF boxes
--        for box in (page.artBox, page.bleedBox, page.cropBox, page.mediaBox, 
page.trimBox):
--            box.lowerLeft = (x0, y0)
--            box.upperRight = (x1, y1)
--        if rotate != 0:
--            page.rotateClockwise(rotate)
--
--    def copyDocumentRoot(self, pdffile):
--        # Sounds promising in PyPDF2 (see 
PdfFileWriter.cloneDocumentFromReader),
--        # but doesn't seem to produce a readable PDF:
--        # self.output.cloneReaderDocumentRoot(pdffile.reader)
--        # Instead, this copies at least the named destinations for links:
--        for dest in pdffile.reader.namedDestinations.values():
--            self.output.addNamedDestinationObject(dest)
-+        return [x0, y0, x1, y1]
- 
- 
- def optimizePdfGhostscript(oldfilename, newfilename):
-@@ -128,4 +98,3 @@ def optimizePdfGhostscript(oldfilename, newfilename):
- 
- PdfFile = PyPdfFile
- PdfCropper = PyPdfCropper
--

diff --git a/app-text/krop/krop-0.6.0-r3.ebuild 
b/app-text/krop/krop-0.6.0-r3.ebuild
deleted file mode 100644
index e2be70ba84a5..000000000000
--- a/app-text/krop/krop-0.6.0-r3.ebuild
+++ /dev/null
@@ -1,38 +0,0 @@
-# Copyright 1999-2024 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_USE_PEP517=setuptools
-PYTHON_COMPAT=( python3_{10..12} )
-
-inherit desktop distutils-r1 xdg
-
-if [[ ${PV} == 9999 ]] ; then
-       inherit git-r3
-       EGIT_REPO_URI="https://github.com/arminstraub/krop.git";
-else
-       SRC_URI="https://github.com/arminstraub/${PN}/archive/v${PV}.tar.gz -> 
${P}.tar.gz"
-       KEYWORDS="amd64 ~x86"
-fi
-
-DESCRIPTION="A tool to crop PDF files"
-HOMEPAGE="http://arminstraub.com/software/krop";
-LICENSE="GPL-3+"
-SLOT="0"
-
-PATCHES=(
-       "${FILESDIR}/${P}-links.patch"
-       "${FILESDIR}/${P}-pikepdf.patch"
-)
-
-RDEPEND="
-       dev-python/python-poppler-qt5[${PYTHON_USEDEP}]
-       dev-python/pikepdf[${PYTHON_USEDEP}]
-       dev-python/pyqt5[${PYTHON_USEDEP},gui,widgets]
-"
-
-src_install() {
-       distutils-r1_src_install
-       domenu "${WORKDIR}/${P}/${PN}.desktop"
-}

diff --git a/app-text/krop/metadata.xml b/app-text/krop/metadata.xml
deleted file mode 100644
index 0581997322f1..000000000000
--- a/app-text/krop/metadata.xml
+++ /dev/null
@@ -1,14 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd";>
-<pkgmetadata>
-<maintainer type="person">
-       <email>[email protected]</email>
-</maintainer>
-<maintainer type="project">
-       <email>[email protected]</email>
-       <name>Gentoo Printing Project</name>
-</maintainer>
-<upstream>
-       <remote-id type="github">arminstraub/krop</remote-id>
-</upstream>
-</pkgmetadata>

diff --git a/profiles/package.mask b/profiles/package.mask
index 4e9d851bb86c..a8c8f4d69a41 100644
--- a/profiles/package.mask
+++ b/profiles/package.mask
@@ -213,13 +213,6 @@ dev-java/jcalendar
 dev-java/jgoodies-looks
 dev-java/jgoodies-common
 
-# Andreas Sturmlechner <[email protected]> (2025-03-30)
-# Depends on dev-python/python-poppler-qt5, stuck on py3.12, new 0.7.0
-# release available w/ PyQt6 support would require packaging new pymupdf
-# dependency (bug #949686). Use media-gfx/inkscape or app-text/pdfarranger
-# alternatively. Removal on 2025-04-29. Bugs #947726, #952250
-app-text/krop
-
 # Conrad Kostecki <[email protected]> (2025-03-28)
 # Upstream is dead and broken. All 'whatsapp' deps
 # will be last-rited on 2025-04-28.

Reply via email to