From 3161ff24232fd8790297380a9311fa5908ee37c3 Mon Sep 17 00:00:00 2001 From: chili-b Date: Sat, 2 Oct 2021 21:07:56 -0400 Subject: [PATCH 1/4] New package: python3-ly-0.9.7 Python modules parse, manipulate or create documents in LilyPond format. Depended upon by the Frescobaldi LilyPond editor. --- srcpkgs/python3-ly/template | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 srcpkgs/python3-ly/template diff --git a/srcpkgs/python3-ly/template b/srcpkgs/python3-ly/template new file mode 100644 index 000000000000..a795013096db --- /dev/null +++ b/srcpkgs/python3-ly/template @@ -0,0 +1,14 @@ +# Template file for 'python3-ly' +pkgname=python3-ly +version=0.9.7 +revision=1 +wrksrc="python-ly-${version}" +build_style=python3-module +hostmakedepends="python3-setuptools" +short_desc="Modules to parse, manipulate or create documents in LilyPond format" +maintainer="chili-b " +license="GPL-3.0-or-later" +homepage="https://github.com/frescobaldi/python-ly" +changelog="https://github.com/frescobaldi/python-ly/blob/v${version}/ChangeLog" +distfiles="${PYPI_SITE}/p/python-ly/python-ly-${version}.tar.gz" +checksum=d4d2b68eb0ef8073200154247cc9bd91ed7fb2671ac966ef3d2853281c15d7a8 From 3a3610afcfd839fa5f4326d557a9619135677419 Mon Sep 17 00:00:00 2001 From: chili-b Date: Sun, 10 Oct 2021 15:20:53 -0400 Subject: [PATCH 2/4] New package: python3-poppler-qt5-0.75.0 --- srcpkgs/python3-poppler-qt5/template | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 srcpkgs/python3-poppler-qt5/template diff --git a/srcpkgs/python3-poppler-qt5/template b/srcpkgs/python3-poppler-qt5/template new file mode 100644 index 000000000000..efbd3c65d357 --- /dev/null +++ b/srcpkgs/python3-poppler-qt5/template @@ -0,0 +1,28 @@ +# Template file for 'python3-poppler-qt5' +pkgname=python3-poppler-qt5 +version=0.75.0 +revision=1 +wrksrc="python-poppler-qt5-${version}" +build_style=python3-module +hostmakedepends="python3-sip-devel pkg-config qt5-devel poppler-qt5-devel + python3-PyQt5-devel python3-devel" +makedepends="python3-sip-devel pkg-config qt5-devel poppler-qt5-devel + python3-PyQt5-devel python3-devel" +depends="poppler-qt5 python3-PyQt5" +short_desc="Python bindings for libpoppler-qt5" +maintainer="chili-b " +license="LGPL-3.0-or-later" +homepage="https://github.com/frescobaldi/python-poppler-qt5" +changelog="https://github.com/frescobaldi/python-poppler-qt5/blob/v${version}/ChangeLog" +distfiles="${PYPI_SITE}/p/python-poppler-qt5/python-poppler-qt5-${version}.tar.gz" +checksum=ea0ec9ebe995705ab19a301290365652e62bab5c9b05db5697c7bf2173335107 + +do_build() { + # Cludge to fix build under armv7l, armv6l + if [[ $XBPS_TARGET_MACHINE == arm* ]]; then + export CFLAGS="-mtune=generic-armv7-a " + export CFLAGS+="-I${XBPS_CROSS_BASE}/${py3_inc}" + fi + + python setup.py build_ext --pyqt-sip-dir=/${py3_sitelib}/PyQt5/bindings +} From dd124320d8c2e82f96f7c9017e9b8bb0a1401b27 Mon Sep 17 00:00:00 2001 From: chili-b Date: Sun, 10 Oct 2021 15:33:36 -0400 Subject: [PATCH 3/4] New package: frescobaldi-3.1.3 --- ...f-py-3.10-float-int-fixes-issue-1398.patch | 530 ++++++++++++++++++ ...e-py-3.10-float-int-fixes-issue-1398.patch | 209 +++++++ ...nges-to-fix-errors-under-Python-3.10.patch | 50 ++ srcpkgs/frescobaldi/template | 20 + 4 files changed, 809 insertions(+) create mode 100644 srcpkgs/frescobaldi/patches/0001-first-batch-of-py-3.10-float-int-fixes-issue-1398.patch create mode 100644 srcpkgs/frescobaldi/patches/0002-more-py-3.10-float-int-fixes-issue-1398.patch create mode 100644 srcpkgs/frescobaldi/patches/0003-More-changes-to-fix-errors-under-Python-3.10.patch create mode 100644 srcpkgs/frescobaldi/template diff --git a/srcpkgs/frescobaldi/patches/0001-first-batch-of-py-3.10-float-int-fixes-issue-1398.patch b/srcpkgs/frescobaldi/patches/0001-first-batch-of-py-3.10-float-int-fixes-issue-1398.patch new file mode 100644 index 000000000000..1b80ed879f93 --- /dev/null +++ b/srcpkgs/frescobaldi/patches/0001-first-batch-of-py-3.10-float-int-fixes-issue-1398.patch @@ -0,0 +1,530 @@ +From 51886dba8a3cb3db6eba9a6cf1d65bd8eaf877aa Mon Sep 17 00:00:00 2001 +From: Wilbert Berendsen +Date: Sun, 7 Nov 2021 14:53:33 +0100 +Subject: [PATCH 1/2] first batch of py 3.10 float->int fixes, issue #1398 + +--- + frescobaldi_app/qpageview/magnifier.py | 10 +++--- + frescobaldi_app/qpageview/poppler.py | 18 +++++------ + frescobaldi_app/qpageview/render.py | 18 +++++------ + frescobaldi_app/qpageview/rubberband.py | 38 +++++++++++------------ + frescobaldi_app/qpageview/scrollarea.py | 34 ++++++++++---------- + frescobaldi_app/qpageview/shadow.py | 12 +++---- + frescobaldi_app/widgets/linenumberarea.py | 4 +-- + frescobaldi_app/widgets/progressbar.py | 4 +-- + 8 files changed, 69 insertions(+), 69 deletions(-) + +diff --git a/frescobaldi_app/qpageview/magnifier.py b/frescobaldi_app/qpageview/magnifier.py +index 3a2759fb..b93d05be 100644 +--- a/frescobaldi_app/qpageview/magnifier.py ++++ b/frescobaldi_app/qpageview/magnifier.py +@@ -156,7 +156,7 @@ class Magnifier(QWidget): + + def moveEvent(self, ev): + """Called on move, updates the contents.""" +- # we also update on paint events, but they are not generated if the ++ # we also update on paint events, but they are not generated if the + # magnifiers fully covers the viewport + self.update() + +@@ -240,8 +240,8 @@ class Magnifier(QWidget): + factor = 1.1 ** (ev.angleDelta().y() / 120) + g = self.geometry() + c = g.center() +- g.setWidth(min(max(g.width() * factor, self.MIN_SIZE), self.MAX_SIZE)) +- g.setHeight(min(max(g.height() * factor, self.MIN_SIZE), self.MAX_SIZE)) ++ g.setWidth(int(min(max(g.width() * factor, self.MIN_SIZE), self.MAX_SIZE))) ++ g.setHeight(int(min(max(g.height() * factor, self.MIN_SIZE), self.MAX_SIZE))) + g.moveCenter(c) + self.setGeometry(g) + else: +@@ -278,13 +278,13 @@ class Magnifier(QWidget): + + # the virtual position of the whole scaled-up layout + ev_rect = ev.rect().translated(our_rect.topLeft()) +- ++ + # draw shadow border? + shadow = False + if hasattr(view, "drawDropShadow") and view.dropShadowEnabled: + shadow = True + shadow_width = layout.spacing * scale // 2 +- ++ + painter = QPainter(self) + for p in layout.pagesAt(region.boundingRect()): + # get a (reused) the copy of the page +diff --git a/frescobaldi_app/qpageview/poppler.py b/frescobaldi_app/qpageview/poppler.py +index 17312d78..26768356 100644 +--- a/frescobaldi_app/qpageview/poppler.py ++++ b/frescobaldi_app/qpageview/poppler.py +@@ -62,7 +62,7 @@ class Link(link.Link): + def __init__(self, linkobj): + self.linkobj = linkobj + self.area = link.Area(*linkobj.linkArea().normalized().getCoords()) +- ++ + @property + def url(self): + if isinstance(self.linkobj, popplerqt5.Poppler.LinkBrowse): +@@ -105,8 +105,8 @@ class PopplerPage(page.AbstractRenderedPage): + def load(cls, filename, renderer=None): + """Load a Poppler document, and yield of instances of this class. + +- The filename can also be a QByteArray or a popplerqt5.Poppler.Document +- instance. The specified Renderer is used, or else the global poppler ++ The filename can also be a QByteArray or a popplerqt5.Poppler.Document ++ instance. The specified Renderer is used, or else the global poppler + renderer. + + """ +@@ -116,11 +116,11 @@ class PopplerPage(page.AbstractRenderedPage): + def mutex(self): + """No two pages of same Poppler document are rendered at the same time.""" + return self.document +- ++ + def group(self): + """Reimplemented to return the Poppler document our page displays a page from.""" + return self.document +- ++ + def ident(self): + """Reimplemented to return the page number of this page.""" + return self.pageNumber +@@ -131,7 +131,7 @@ class PopplerPage(page.AbstractRenderedPage): + with locking.lock(self.document): + page = self.document.page(self.pageNumber) + return page.text(rect) +- ++ + def links(self): + """Reimplemented to use a different caching mechanism.""" + document, pageNumber = self.document, self.pageNumber +@@ -184,7 +184,7 @@ class PopplerRenderer(render.AbstractRenderer): + renderBackend = printRenderBackend = 0 + + oversampleThreshold = 96 +- ++ + def render(self, page, key, tile, paperColor=None): + """Generate an image for the Page referred to by key.""" + if paperColor is None: +@@ -205,8 +205,8 @@ class PopplerRenderer(render.AbstractRenderer): + key.rotation, paperColor) + if multiplier == 2: + image = image.scaledToWidth(tile.w, Qt.SmoothTransformation) +- image.setDotsPerMeterX(xres * 39.37) +- image.setDotsPerMeterY(yres * 39.37) ++ image.setDotsPerMeterX(int(xres * 39.37)) ++ image.setDotsPerMeterY(int(yres * 39.37)) + return image + + def setRenderHints(self, doc): +diff --git a/frescobaldi_app/qpageview/render.py b/frescobaldi_app/qpageview/render.py +index a8c00de1..5560fa2f 100644 +--- a/frescobaldi_app/qpageview/render.py ++++ b/frescobaldi_app/qpageview/render.py +@@ -146,11 +146,11 @@ class AbstractRenderer: + + def map(self, key, box): + """Return a QTransform converting from Key coordinates to a box. +- ++ + The box should be a QRectF or QRect, and describes the original area of + the page. The returned matrix can be used to convert e.g. tile + coordinates to the position on the original page. +- ++ + """ + t = QTransform() + t.translate(box.x(), box.y()) +@@ -182,17 +182,17 @@ class AbstractRenderer: + + def render(self, page, key, tile, paperColor=None): + """Generate a QImage for tile of the Page. +- ++ + The width, height and rotation to render at should be taken from the + key, as the page could be resized or rotated in the mean time. +- ++ + The default implementation prepares the image, a painter and then + calls draw() to actually draw the contents. +- ++ + If the paperColor is not specified, it will be read from the Page's + paperColor attribute (if not None) or else from the renderer's + paperColor attribute. +- ++ + """ + if paperColor is None: + paperColor = page.paperColor or self.paperColor +@@ -200,7 +200,7 @@ class AbstractRenderer: + i = QImage(tile.w, tile.h, self.imageFormat) + i.fill(paperColor) + painter = QPainter(i) +- ++ + # rotate the painter accordingly + util.rotate(painter, key.rotation, tile.w, tile.h, True) + +@@ -241,7 +241,7 @@ class AbstractRenderer: + key = self.key(page, ratio) + + # paint rect in tile coordinates +- target = QRect(rect.x() * ratio, rect.y() * ratio, rect.width() * ratio, rect.height() * ratio) ++ target = QRect(int(rect.x() * ratio), int(rect.y() * ratio), int(rect.width() * ratio), int(rect.height() * ratio)) + + # tiles to paint + tiles = [t for t in self.tiles(key.width, key.height) if QRect(*t) & target] +@@ -314,7 +314,7 @@ class AbstractRenderer: + vscale = key.height / height + for t in tileset: + # scale to our image size +- r = QRect(t.x * hscale, t.y * vscale, t.w * hscale, t.h * vscale) & target ++ r = QRect(int(t.x * hscale), int(t.y * vscale), int(t.w * hscale), int(t.h * vscale)) & target + if r and QRegion(r).subtracted(region): + # we have an image that can be drawn in rect r + source = QRectF(r.x() / hscale - t.x, r.y() / vscale - t.y, +diff --git a/frescobaldi_app/qpageview/rubberband.py b/frescobaldi_app/qpageview/rubberband.py +index dbab772a..4a073bc8 100644 +--- a/frescobaldi_app/qpageview/rubberband.py ++++ b/frescobaldi_app/qpageview/rubberband.py +@@ -41,7 +41,7 @@ class Rubberband(QWidget): + """A Rubberband to select a rectangular region. + + A Rubberband is added to a View with view.setRubberband(). +- ++ + The Rubberband lets the user select a rectangular region. When the + selection is changed, the `selectionChanged` signal is emitted, having the + selection rectangle in layout coordinates as argument. +@@ -51,7 +51,7 @@ class Rubberband(QWidget): + showbutton (Qt.RightButton), the button used to drag a new rectangle + + dragbutton (Qt.LeftButton), the button to alter an existing rectangle +- ++ + trackSelection (False), whether to continuously emit selectionChanged(). + When True, selectionChanged() is emitted on every change, when + False, the signal is only emitted when the mouse button is +@@ -93,7 +93,7 @@ class Rubberband(QWidget): + color.setAlpha(150) + painter.setPen(color) + # XXX can this adjustment be done smarter? +- adjust = -1 / self.devicePixelRatio() ++ adjust = int(-1 / self.devicePixelRatio()) + painter.drawRect(self.rect().adjusted(0, 0, adjust, adjust)) + + # Pseudo-handles at the corners and sides +@@ -148,21 +148,21 @@ class Rubberband(QWidget): + self.setCursor(cursor) + else: + self.unsetCursor() +- ++ + def hasSelection(self): + """Return True when there is a selection.""" + return bool(self._selection) +- ++ + def selection(self): + """Return our selection rectangle, relative to the view's layout position.""" + return self._selection +- ++ + def selectedPages(self): + """Yield tuples (page, rect) describing the selection. +- ++ + Every rect is intersected with the page rect and translated to the + page's position. +- ++ + """ + rect = self.selection() + if rect: +@@ -170,7 +170,7 @@ class Rubberband(QWidget): + layout = view.pageLayout() + for page in layout.pagesAt(rect): + yield page, rect.intersected(page.geometry()).translated(-page.pos()) +- ++ + def selectedPage(self): + """Returns (page, rect) if there is a selection. + +@@ -211,10 +211,10 @@ class Rubberband(QWidget): + + def selectedLinks(self): + """Yield tuples (page, links) for every page in the selection. +- ++ + links is a non-empty set() of Link instances on that page that intersect + with the selection. +- ++ + """ + for page, rect in self.selectedPages(): + links = page.linksIn(rect) +@@ -234,19 +234,19 @@ class Rubberband(QWidget): + else: + self.hide() + self._setSelectionFromGeometry(QRect()) +- ++ + def clearSelection(self): + """Hide ourselves and clear the selection.""" + self.hide() + self._dragging = False + self._setSelectionFromGeometry(QRect()) +- ++ + def _setSelectionFromGeometry(self, rect): + """(Internal) Called to emit the selectionChanged signal. +- ++ + Only emits the signal when the selection really changed. + The rect should be our geometry or an empty QRect(). +- ++ + """ + if rect: + view = self.parent().parent() +@@ -254,16 +254,16 @@ class Rubberband(QWidget): + old, self._selection = self._selection, rect + if rect != old: + self.selectionChanged.emit(rect) +- ++ + def _setLayoutOffset(self, pos): + """Store the position as offset from the layout, and also from the page + at that position. Used for keeping the same spot on zoom change. +- ++ + """ + view = self.parent().parent() + pos = pos - view.layoutPosition() + self._layoutOffset = view.pageLayout().pos2offset(pos) +- ++ + def _getLayoutOffset(self): + """Get the stored layout offset position back, after zoom or move.""" + view = self.parent().parent() +@@ -340,7 +340,7 @@ class Rubberband(QWidget): + geom = QRect(self._getLayoutOffset(), self.size() * factor) + self.setGeometry(geom) + self._setSelectionFromGeometry(geom) +- ++ + def eventFilter(self, viewport, ev): + """Act on events in the viewport: + +diff --git a/frescobaldi_app/qpageview/scrollarea.py b/frescobaldi_app/qpageview/scrollarea.py +index 6f4dcaf1..5a0c5631 100644 +--- a/frescobaldi_app/qpageview/scrollarea.py ++++ b/frescobaldi_app/qpageview/scrollarea.py +@@ -46,7 +46,7 @@ class ScrollArea(QAbstractScrollArea): + draggingEnabled (True): + If enabled, the user can drag the contents of the scrollarea to + move it with the mouse. +- ++ + """ + + alignment = Qt.AlignCenter +@@ -109,10 +109,10 @@ class ScrollArea(QAbstractScrollArea): + + def areaPos(self): + """Return the position of the area relative to the viewport. +- ++ + The alignment attribute is taken into account when the area is smaller + than the viewport (horizontally and/or vertically). +- ++ + """ + w, h = self._areaSize + vw = self.viewport().width() +@@ -123,13 +123,13 @@ class ScrollArea(QAbstractScrollArea): + if top < 0: + top = -self.verticalScrollBar().value() + return QPoint(left, top) +- ++ + def visibleArea(self): + """Return a rectangle describing the part of the area that is visible.""" + pos = self.areaPos() + r = self.viewport().rect() & QRect(pos, self.areaSize()) + return r.translated(-pos) +- ++ + def offsetToEnsureVisible(self, rect): + """Return an offset QPoint with the minimal scroll to make rect visible. + +@@ -153,12 +153,12 @@ class ScrollArea(QAbstractScrollArea): + + def ensureVisible(self, rect, margins=None, allowKinetic=True): + """Performs the minimal scroll to make rect visible. +- ++ + If the rect is not completely visible it is scrolled into view, adding + the margins if given (a QMargins instance). If allowKinetic is False, + immediately jumps to the position, otherwise scrolls smoothly (if + kinetic scrolling is enabled). +- ++ + """ + if rect not in self.visibleArea(): + if margins is not None: +@@ -171,9 +171,9 @@ class ScrollArea(QAbstractScrollArea): + + def _updateScrollBars(self): + """Internal. Adjust the range of the scrollbars to the area size. +- ++ + Called in setAreaSize() and resizeEvent(). +- ++ + """ + w, h = self._areaSize + maxsize = self.maximumViewportSize() +@@ -186,10 +186,10 @@ class ScrollArea(QAbstractScrollArea): + else: + viewport = self.viewport() + vbar.setRange(0, h - viewport.height()) +- vbar.setPageStep(viewport.height() * .9) ++ vbar.setPageStep(int(viewport.height() * .9)) + hbar.setRange(0, w - viewport.width()) +- hbar.setPageStep(viewport.width() * .9) +- ++ hbar.setPageStep(int(viewport.width() * .9)) ++ + def scrollOffset(self): + """Return the current scroll offset.""" + x = self.horizontalScrollBar().value() +@@ -295,7 +295,7 @@ class ScrollArea(QAbstractScrollArea): + """Begin a scrolling operation using the specified scroller.""" + self._scroller = scroller + if self._scrollTimer is None: +- self._scrollTimer = self.startTimer(1000 / self.scrollupdatespersec) ++ self._scrollTimer = self.startTimer(int(1000 // self.scrollupdatespersec)) + + def stopScrolling(self): + """Stop scrolling.""" +@@ -307,7 +307,7 @@ class ScrollArea(QAbstractScrollArea): + def isScrolling(self): + """Return True if a scrolling movement is active.""" + return self._scroller is not None +- ++ + def remainingScrollTime(self): + """If a kinetic scroll is active, return how many msecs the scroll wil last. + +@@ -375,7 +375,7 @@ class ScrollArea(QAbstractScrollArea): + self._dragTime = None + self._dragSpeed = None + super().mouseReleaseEvent(ev) +- ++ + + class Scroller: + """Abstract base class, encapsulates scrolling behaviour. +@@ -453,13 +453,13 @@ class KineticScroller(Scroller): + # (TODO: adapt for other ticker speeds? WB) + if sy > 100: + sy = 100 +- offy = abs(dy) - sy * (sy + 1) // 2 ++ offy = int(abs(dy) - sy * (sy + 1) // 2) + + # Although it is less likely to go beyond that limit for horizontal scrolling, + # do it for x as well. + if sx > 100: + sx = 100 +- offx = abs(dx) - sx * (sx + 1) // 2 ++ offx = int(abs(dx) - sx * (sx + 1) // 2) + + # adjust directions + if dx < 0: +diff --git a/frescobaldi_app/qpageview/shadow.py b/frescobaldi_app/qpageview/shadow.py +index c7d1c8d5..5b0cd17b 100644 +--- a/frescobaldi_app/qpageview/shadow.py ++++ b/frescobaldi_app/qpageview/shadow.py +@@ -37,10 +37,10 @@ class ShadowViewMixin: + + def paintEvent(self, ev): + if self.dropShadowEnabled: +- width = self._pageLayout.spacing / 2 ++ width = round(self._pageLayout.spacing / 2.0) + # make the rect slightly larger, so we "see" shadow of pages that + # would be outside view normally. +- rect = ev.rect().adjusted(-width, -width, width / 2, width / 2) ++ rect = ev.rect().adjusted(-width, -width, int(width // 2), int(width // 2)) + painter = QPainter(self.viewport()) + for page, rect in self.pagesToPaint(rect, painter): + self.drawDropShadow(page, painter, width) +@@ -48,19 +48,19 @@ class ShadowViewMixin: + + def drawDropShadow(self, page, painter, width): + """Draw a drop shadow of width pixels around the Page. +- ++ + The painter is already translated to the topleft corner of the Page. +- ++ + """ + width = round(width) +- rect = page.rect().adjusted(width / 2, width / 2, 0, 0) ++ rect = page.rect().adjusted(int(width // 2), int(width // 2), 0, 0) + color = QColor(Qt.black) + pen = QPen() + pen.setWidth(1) + pen.setJoinStyle(Qt.MiterJoin) + for i in range(width): + f = (width-i)/width +- color.setAlpha(200**f + 55*f) ++ color.setAlpha(int(200**f + 55*f)) + pen.setColor(color) + painter.setPen(pen) + painter.drawRect(rect.adjusted(-i, -i, i, i)) +diff --git a/frescobaldi_app/widgets/linenumberarea.py b/frescobaldi_app/widgets/linenumberarea.py +index f097726c..ff38bcc6 100644 +--- a/frescobaldi_app/widgets/linenumberarea.py ++++ b/frescobaldi_app/widgets/linenumberarea.py +@@ -21,7 +21,7 @@ + A line number area to be used in a QPlainTextEdit. + """ + +-from PyQt5.QtCore import QEvent, QPoint, QRect, QSize, Qt ++from PyQt5.QtCore import QEvent, QPoint, QRectF, QSize, Qt + from PyQt5.QtGui import QFontMetrics, QMouseEvent, QPainter + from PyQt5.QtWidgets import QApplication, QWidget + +@@ -72,7 +72,7 @@ class LineNumberArea(QWidget): + return + painter = QPainter(self) + painter.setFont(edit.font()) +- rect = QRect(0, 0, self.width() - 2, QFontMetrics(edit.font()).height()) ++ rect = QRectF(0, 0, self.width() - 2, QFontMetrics(edit.font()).height()) + block = edit.firstVisibleBlock() + while block.isValid(): + geom = edit.blockBoundingGeometry(block) +diff --git a/frescobaldi_app/widgets/progressbar.py b/frescobaldi_app/widgets/progressbar.py +index 670bf0f5..183ab625 100644 +--- a/frescobaldi_app/widgets/progressbar.py ++++ b/frescobaldi_app/widgets/progressbar.py +@@ -71,8 +71,8 @@ class TimedProgressBar(QProgressBar): + """ + self._hideTimer.stop() + self._timeline.stop() +- self._timeline.setDuration(total * 1000) +- self._timeline.setCurrentTime(elapsed * 1000) ++ self._timeline.setDuration(int(total * 1000)) ++ self._timeline.setCurrentTime(int(elapsed * 1000)) + self.setValue(self._timeline.currentFrame()) + self._timeline.resume() + if self._hideWhileIdle and not self._hidden: +-- +2.33.1 + diff --git a/srcpkgs/frescobaldi/patches/0002-more-py-3.10-float-int-fixes-issue-1398.patch b/srcpkgs/frescobaldi/patches/0002-more-py-3.10-float-int-fixes-issue-1398.patch new file mode 100644 index 000000000000..8338ca2a362c --- /dev/null +++ b/srcpkgs/frescobaldi/patches/0002-more-py-3.10-float-int-fixes-issue-1398.patch @@ -0,0 +1,209 @@ +From bd4dfe036b8dbc5d75552fe6b6b081c024e5beea Mon Sep 17 00:00:00 2001 +From: Wilbert Berendsen +Date: Mon, 8 Nov 2021 09:35:59 +0100 +Subject: [PATCH 2/2] more py 3.10 float->int fixes, issue #1398 + +--- + frescobaldi_app/qpageview/page.py | 50 ++++++++++++------------- + frescobaldi_app/qpageview/poppler.py | 2 +- + frescobaldi_app/qpageview/scrollarea.py | 8 ++-- + 3 files changed, 30 insertions(+), 30 deletions(-) + +diff --git a/frescobaldi_app/qpageview/page.py b/frescobaldi_app/qpageview/page.py +index f93fa9e2..754d2736 100644 +--- a/frescobaldi_app/qpageview/page.py ++++ b/frescobaldi_app/qpageview/page.py +@@ -48,7 +48,7 @@ class AbstractPage(util.Rectangular): + + ...that normally do not change during its lifetime: + +- `pageWidth` the original width (by default in points, `dpi` is 72.0 ++ `pageWidth` the original width (by default in points, `dpi` is 72.0 + `pageHeight` the original height but can be changed at class level) + + ... that can be modified by the user (having defaults at the class level): +@@ -174,15 +174,15 @@ class AbstractPage(util.Rectangular): + + def defaultSize(self): + """Return the pageSize() scaled and rotated (if needed). +- ++ + Based on scaleX, scaleY, and computedRotation attributes. +- ++ + """ + s = QSizeF(self.pageWidth * self.scaleX, self.pageHeight * self.scaleY) + if self.computedRotation & 1: + s.transpose() + return s +- ++ + def updateSize(self, dpiX, dpiY, zoomFactor): + """Set the width and height attributes of the page. + +@@ -286,7 +286,7 @@ class AbstractPage(util.Rectangular): + + pdf = QPdfWriter(filename) + pdf.setCreator("qpageview") +- pdf.setResolution(resolution) ++ pdf.setResolution(int(resolution)) + + layout = pdf.pageLayout() + layout.setMode(layout.FullPageMode) +@@ -350,7 +350,7 @@ class AbstractPage(util.Rectangular): + svg.setFileName(filename) + else: + svg.setOutputDevice(filename) +- svg.setResolution(resolution) ++ svg.setResolution(int(resolution)) + svg.setSize(targetSize.toSize()) + svg.setViewBox(QRectF(0, 0, targetSize.width(), targetSize.height())) + return self.output(svg, source, paperColor) +@@ -381,31 +381,31 @@ class AbstractPage(util.Rectangular): + + def group(self): + """Return the group the page belongs to. +- ++ + This could be some document structure, so that different Page objects + could refer to the same graphical contents, preventing double caching. +- ++ + This object is used together with the value returned by ident() as a key + to cache the page. The idea is that the contents of the page are + uniquely identified by the objects returned by group() and ident(). +- ++ + This way, when the same document is opened in multiple page instances, + only one copy resides in the (global) cache. +- ++ + By default, the page object itself is returned. +- ++ + """ + return self +- ++ + def ident(self): + """Return a value that identifies the page within the group returned + by group(). +- ++ + By default, None is returned. +- ++ + """ + return None +- ++ + def mapToPage(self, width=None, height=None): + """Return a MapToPage object, that can map original to Page coordinates. + +@@ -426,10 +426,10 @@ class AbstractPage(util.Rectangular): + + def text(self, rect): + """Implement this method to get the text at the specified rectangle. +- ++ + The rectangle should be in page coordinates. The default implementation + simply returns an empty string. +- ++ + """ + return "" + +@@ -437,22 +437,22 @@ class AbstractPage(util.Rectangular): + """Implement this method to load our links.""" + from . import link + return link.Links() +- ++ + def links(self): + """Return the Links object, containing Link objects. +- ++ + Every Link denotes a clickable area on a Page, in coordinates 0.0-1.0. + The Links object makes it possible to quickly find a link on a Page. + This is cached after the first request, you should implement the + getLinks() method to load the links. +- ++ + """ + try: + return self._links + except AttributeError: + links = self._links = self.getLinks() + return links +- ++ + def linksAt(self, point): + """Return a list() of zero or more links touched by QPoint point. + +@@ -468,9 +468,9 @@ class AbstractPage(util.Rectangular): + + def linksIn(self, rect): + """Return an unordered set of links enclosed in rectangle. +- ++ + The rectangle is in page coordinates. +- ++ + """ + return self.links().inside(*self.mapFromPage(1, 1).rect(rect).getCoords()) + +@@ -481,9 +481,9 @@ class AbstractPage(util.Rectangular): + + class AbstractRenderedPage(AbstractPage): + """A Page that has a renderer that performs caching and painting. +- ++ + The renderer lives in the renderer attribute. +- ++ + """ + def __init__(self, renderer=None): + if renderer is not None: +diff --git a/frescobaldi_app/qpageview/poppler.py b/frescobaldi_app/qpageview/poppler.py +index 26768356..810dbca5 100644 +--- a/frescobaldi_app/qpageview/poppler.py ++++ b/frescobaldi_app/qpageview/poppler.py +@@ -259,7 +259,7 @@ class PopplerRenderer(render.AbstractRenderer): + (See AbstractPage.print().) + + """ +- source = self.map(key, page.pageRect()).mapRect(QRectF(*tile)) ++ source = self.map(key, page.pageRect()).mapRect(QRectF(*tile)).toRect() # rounded + target = QRectF(0, 0, tile.w, tile.h) + if key.rotation & 1: + target.setSize(target.size().transposed()) +diff --git a/frescobaldi_app/qpageview/scrollarea.py b/frescobaldi_app/qpageview/scrollarea.py +index 5a0c5631..6722a6db 100644 +--- a/frescobaldi_app/qpageview/scrollarea.py ++++ b/frescobaldi_app/qpageview/scrollarea.py +@@ -365,9 +365,9 @@ class ScrollArea(QAbstractScrollArea): + speed = speed * 1000 / self.scrollupdatespersec / time + # compute diff to scroll + sx = abs(speed.x()) +- diffx = sx * (sx + 1) / 2 ++ diffx = int(sx * (sx + 1) / 2) + sy = abs(speed.y()) +- diffy = sy * (sy + 1) / 2 ++ diffy = int(sy * (sy + 1) / 2) + if speed.x() < 0: diffx = -diffx + if speed.y() < 0: diffy = -diffy + self.kineticScrollBy(QPoint(diffx, diffy)) +@@ -444,8 +444,8 @@ class KineticScroller(Scroller): + dy = diff.y() + + # solve speed*(speed+1)/2 = delta to ensure 1+2+3+...+speed is as close as possible under delta.. +- sx = (math.sqrt(1 + 8 * abs(dx)) - 1) // 2 +- sy = (math.sqrt(1 + 8 * abs(dy)) - 1) // 2 ++ sx = int(math.sqrt(1 + 8 * abs(dx)) - 1) // 2 ++ sy = int(math.sqrt(1 + 8 * abs(dy)) - 1) // 2 + + # compute the amount of displacement still needed because we're dealing with integer values. + # Since this function is called for exact moves (not free scrolling) +-- +2.33.1 + diff --git a/srcpkgs/frescobaldi/patches/0003-More-changes-to-fix-errors-under-Python-3.10.patch b/srcpkgs/frescobaldi/patches/0003-More-changes-to-fix-errors-under-Python-3.10.patch new file mode 100644 index 000000000000..b212b515e8ab --- /dev/null +++ b/srcpkgs/frescobaldi/patches/0003-More-changes-to-fix-errors-under-Python-3.10.patch @@ -0,0 +1,50 @@ +From 4e910e55f6700fafe1683af770e4bc299cdd71a2 Mon Sep 17 00:00:00 2001 +From: Dexter Gaon-Shatford +Date: Wed, 10 Nov 2021 17:04:34 -0500 +Subject: [PATCH] More changes to fix errors under Python 3.10 + +There are a few errors that are encountered when engraving a score in +the editor that were not addressed in the changes made by wbsoft +--- + frescobaldi_app/viewmanager.py | 4 ++-- + frescobaldi_app/widgets/linenumberarea.py | 2 +- + 2 files changed, 3 insertions(+), 3 deletions(-) + +diff --git a/frescobaldi_app/viewmanager.py b/frescobaldi_app/viewmanager.py +index e1294c91..046c70df 100644 +--- a/frescobaldi_app/viewmanager.py ++++ b/frescobaldi_app/viewmanager.py +@@ -332,7 +332,7 @@ class ViewManager(QSplitter): + splitter.setOrientation(orientation) + size = splitter.sizes()[0] + splitter.addWidget(newspace) +- splitter.setSizes([size / 2, size / 2]) ++ splitter.setSizes([size // 2, size // 2]) + elif splitter.orientation() == orientation: + index = splitter.indexOf(viewspace) + splitter.insertWidget(index + 1, newspace) +@@ -346,7 +346,7 @@ class ViewManager(QSplitter): + splitter.setSizes(sizes) + size = newsplitter.sizes()[0] + newsplitter.addWidget(newspace) +- newsplitter.setSizes([size / 2, size / 2]) ++ newsplitter.setSizes([size // 2, size // 2]) + self._viewSpaces.insert(0, newspace) + newspace.showDocument(viewspace.document()) + if active: +diff --git a/frescobaldi_app/widgets/linenumberarea.py b/frescobaldi_app/widgets/linenumberarea.py +index ff38bcc6..aa133ac7 100644 +--- a/frescobaldi_app/widgets/linenumberarea.py ++++ b/frescobaldi_app/widgets/linenumberarea.py +@@ -80,7 +80,7 @@ class LineNumberArea(QWidget): + if geom.top() >= ev.rect().bottom(): + break + if block.isVisible() and geom.bottom() > ev.rect().top() + 1: +- rect.moveTop(geom.top()) ++ rect.moveTop(int(geom.top())) + text = format(block.blockNumber() + 1, 'd') + painter.drawText(rect, Qt.AlignRight, text) + block = block.next() +-- +2.33.1 + diff --git a/srcpkgs/frescobaldi/template b/srcpkgs/frescobaldi/template new file mode 100644 index 000000000000..bf61cf1155c6 --- /dev/null +++ b/srcpkgs/frescobaldi/template @@ -0,0 +1,20 @@ +# Template file for 'frescobaldi' +pkgname=frescobaldi +version=3.1.3 +revision=1 +build_style=python3-module +make_check_target="check" +hostmakedepends="python3-setuptools gettext" +depends="python3-PyQt5 python3-PyQt5-svg poppler-qt5 portmidi + python3-cups python3-ly lilypond python3-poppler-qt5" +short_desc="Powerful, lightweight and easy to use LilyPond sheet music text editor" +maintainer="chili-b " +license="GPL-2.0-or-later" +homepage="https://frescobaldi.org/" +changelog="https://github.com/frescobaldi/frescobaldi/blob/v${version}/ChangeLog" +distfiles="https://github.com/frescobaldi/frescobaldi/archive/v${version}.tar.gz" +checksum=f97256ce15ab621593536e219584a2ed744c1933148ac7ed98fcef6a3a9510a6 + +pre_build() { + make -C linux +} From 0b51dbe154e9c8f6acc79ea1f9a8cfde70b3f165 Mon Sep 17 00:00:00 2001 From: chili-b Date: Sun, 16 Jan 2022 20:05:58 -0500 Subject: [PATCH 4/4] mumble: update to 1.4.230. --- srcpkgs/mumble/template | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/srcpkgs/mumble/template b/srcpkgs/mumble/template index 69a5cb3c7961..7adc0a903a30 100644 --- a/srcpkgs/mumble/template +++ b/srcpkgs/mumble/template @@ -1,7 +1,7 @@ # Template file for 'mumble' pkgname=mumble -version=1.3.4 -revision=7 +version=1.4.230 +revision=1 build_style=qmake configure_args="CONFIG+=bundled-celt CONFIG+=no-bundled-opus CONFIG+=no-update CONFIG+=no-bundled-speex CONFIG+=no-g15 CONFIG+=no-xevie CONFIG+=pulseaudio