From: "Sam James" <sam@gentoo.org>
To: gentoo-commits@lists.gentoo.org
Subject: [gentoo-commits] repo/gentoo:master commit in: app-editors/qhexedit2/files/, app-editors/qhexedit2/
Date: Fri, 13 May 2022 20:04:13 +0000 (UTC) [thread overview]
Message-ID: <1652472228.8759771fffe11541f3259bab8b305a0afd142f32.sam@gentoo> (raw)
commit: 8759771fffe11541f3259bab8b305a0afd142f32
Author: Huang Rui <vowstar <AT> gmail <DOT> com>
AuthorDate: Mon May 9 03:04:44 2022 +0000
Commit: Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Fri May 13 20:03:48 2022 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=8759771f
app-editors/qhexedit2: fix compile problem and add BDEPEND
sip-4 no longer supports the latest PyQt5 syntax,
so it needs to be changed to sip-5
Fix unable to find file "QtCore/QtCoremod.sip"
Switched the build system to use sip-build + PyQt-builder
Add dev-python/sip-5 as RDEPEND
New maintainer by Proxy Maint
Closes: https://bugs.gentoo.org/820473
Closes: https://bugs.gentoo.org/758260
Signed-off-by: Huang Rui <vowstar <AT> gmail.com>
Closes: https://github.com/gentoo/gentoo/pull/25395
Signed-off-by: Sam James <sam <AT> gentoo.org>
.../qhexedit2/files/qhexedit2-0.8.6-sip.patch | 35 +++++++
.../qhexedit2/files/qhexedit2-0.8.6-sip5.patch | 82 +++++++++++++++
.../files/qhexedit2-0.8.9-fix-crash.patch | 37 +++++++
app-editors/qhexedit2/metadata.xml | 9 +-
.../qhexedit2/qhexedit2-0.8.6_p20190316-r1.ebuild | 108 ++++++++++++++++++++
.../qhexedit2/qhexedit2-0.8.9_p20210525-r1.ebuild | 110 +++++++++++++++++++++
6 files changed, 380 insertions(+), 1 deletion(-)
diff --git a/app-editors/qhexedit2/files/qhexedit2-0.8.6-sip.patch b/app-editors/qhexedit2/files/qhexedit2-0.8.6-sip.patch
new file mode 100644
index 000000000000..56ae97159030
--- /dev/null
+++ b/app-editors/qhexedit2/files/qhexedit2-0.8.6-sip.patch
@@ -0,0 +1,35 @@
+https://bugs.gentoo.org/820473
+From bdb22d3542099d7e1933aaffa80e044375466914 Mon Sep 17 00:00:00 2001
+From: Huang Rui <vowstar@gmail.com>
+Date: Sat, 7 May 2022 14:49:35 +0800
+Subject: [PATCH] setup.py: fix pyqt_sip_dir on modern Linux distributions
+
+QtCore/QtCoremod.sip may be installed to:
+/usr/lib/python3.9/site-packages/PyQt5/bindings/QtCore/QtCoremod.sip
+See also: https://github.com/qgis/QGIS/blob/master/cmake/FindPyQt5.py
+
+Closes: https://bugs.gentoo.org/820473
+Signed-off-by: Huang Rui <vowstar@gmail.com>
+---
+ setup.py | 8 ++++++++
+ 1 file changed, 8 insertions(+)
+
+diff --git a/setup.py b/setup.py
+index 1a0d912..1906a07 100644
+--- a/setup.py
++++ b/setup.py
+@@ -10,6 +10,14 @@
+
+ cfg = sipconfig.Configuration()
+ pyqt_sip_dir = cfg.default_sip_dir
++for p in (os.path.join(pyqt_sip_dir, "PyQt5"),
++ os.path.join(pyqt_sip_dir, "PyQt5-3"),
++ os.path.join(pyqt_sip_dir, "PyQt4"),
++ pyqt_sip_dir,
++ os.path.join(cfg.default_mod_dir, "PyQt5", "bindings")):
++ if os.path.exists(os.path.join(p, "QtCore", "QtCoremod.sip")):
++ pyqt_sip_dir = p
++ break
+
+ try:
+ import PyQt5
diff --git a/app-editors/qhexedit2/files/qhexedit2-0.8.6-sip5.patch b/app-editors/qhexedit2/files/qhexedit2-0.8.6-sip5.patch
new file mode 100644
index 000000000000..0cc134e32358
--- /dev/null
+++ b/app-editors/qhexedit2/files/qhexedit2-0.8.6-sip5.patch
@@ -0,0 +1,82 @@
+https://bugs.gentoo.org/820473
+https://bugs.gentoo.org/815133
+https://github.com/Simsys/qhexedit2/pull/137
+https://src.fedoraproject.org/rpms/qhexedit2/blob/rawhide/f/sip5.patch
+From ce17d35586de1b9fdc21e3f8450dd1d2b76d5bcc Mon Sep 17 00:00:00 2001
+From: Scott Talbert <swt@techie.net>
+Date: Mon, 18 Jan 2021 21:06:46 -0500
+Subject: [PATCH] Add support for building with sip 5
+
+---
+ project.py | 29 +++++++++++++++++++++++++++++
+ pyproject.toml | 14 ++++++++++++++
+ src/qhexedit.sip | 2 +-
+ 3 files changed, 44 insertions(+), 1 deletion(-)
+ create mode 100644 project.py
+ create mode 100644 pyproject.toml
+
+diff --git a/project.py b/project.py
+new file mode 100644
+index 0000000..c9ee67f
+--- /dev/null
++++ b/project.py
+@@ -0,0 +1,29 @@
++"""The build configuration file for QHexEdit, used by sip."""
++
++import os
++from os.path import abspath, join
++from sipbuild import Option
++from pyqtbuild import PyQtBindings, PyQtProject
++import PyQt5
++
++
++class QHexEditProject(PyQtProject):
++ """The QHexEdit Project class."""
++
++ def __init__(self):
++ super().__init__()
++ self.bindings_factories = [QHexEditBindings]
++
++ def update(self, tool):
++ """Allows SIP to find PyQt5 .sip files."""
++ super().update(tool)
++ self.sip_include_dirs.append(join(PyQt5.__path__[0], 'bindings'))
++
++
++class QHexEditBindings(PyQtBindings):
++ """The QHexEdit Bindings class."""
++
++ def __init__(self, project):
++ super().__init__(project, name='QHexEdit',
++ sip_file='qhexedit.sip',
++ qmake_QT=['widgets'])
+diff --git a/pyproject.toml b/pyproject.toml
+new file mode 100644
+index 0000000..b5edaa4
+--- /dev/null
++++ b/pyproject.toml
+@@ -0,0 +1,14 @@
++[build-system]
++requires = ["sip >=5, <7", "PyQt-builder >=1.1.0, <2", "PyQt5"]
++build-backend = "sipbuild.api"
++
++[tool.sip.metadata]
++name = "QHexEdit"
++version = "0.8.9"
++
++[tools.sip]
++abi-version = "12.8"
++project-factory = "pyqtbuild:PyQtProject"
++
++[tool.sip.project]
++sip-files-dir = "src"
+diff --git a/src/qhexedit.sip b/src/qhexedit.sip
+index f7db293..6d4ebae 100644
+--- a/src/qhexedit.sip
++++ b/src/qhexedit.sip
+@@ -1,4 +1,4 @@
+-%Module(name=qhexedit, version=1)
++%Module(name=qhexedit)
+
+ %Import QtCore/QtCoremod.sip
+ %Import QtGui/QtGuimod.sip
diff --git a/app-editors/qhexedit2/files/qhexedit2-0.8.9-fix-crash.patch b/app-editors/qhexedit2/files/qhexedit2-0.8.9-fix-crash.patch
new file mode 100644
index 000000000000..9c3099b06d28
--- /dev/null
+++ b/app-editors/qhexedit2/files/qhexedit2-0.8.9-fix-crash.patch
@@ -0,0 +1,37 @@
+https://github.com/Simsys/qhexedit2/pull/139
+From d314aab25eeab0db131fc87f20daf7c4ad587ee2 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?=E8=AF=B7=E5=8F=AB=E6=88=91=E8=88=B9=E9=95=BF?=
+ <38233142+thinkSJ@users.noreply.github.com>
+Date: Sat, 13 Nov 2021 18:35:25 +0800
+Subject: [PATCH] Update qhexedit.cpp
+
+crashed when press ctrl alt keys....
+---
+ src/qhexedit.cpp | 14 +++++++++-----
+ 1 file changed, 9 insertions(+), 5 deletions(-)
+
+diff --git a/src/qhexedit.cpp b/src/qhexedit.cpp
+index d7e532c..4137192 100644
+--- a/src/qhexedit.cpp
++++ b/src/qhexedit.cpp
+@@ -766,11 +766,15 @@ void QHexEdit::keyPressEvent(QKeyEvent *event)
+ (QApplication::keyboardModifiers() == Qt::GroupSwitchModifier))
+ {
+ /* Hex and ascii input */
+- int key;
+- if (_editAreaIsAscii)
+- key = (uchar)event->text().at(0).toLatin1();
+- else
+- key = int(event->text().at(0).toLower().toLatin1());
++ int key = 0;
++ QString text = event->text();
++ if (!text.isEmpty())
++ {
++ if (_editAreaIsAscii)
++ key = (uchar)text.at(0).toLatin1();
++ else
++ key = int(text.at(0).toLower().toLatin1());
++ }
+
+ if ((((key >= '0' && key <= '9') || (key >= 'a' && key <= 'f')) && _editAreaIsAscii == false)
+ || (key >= ' ' && _editAreaIsAscii))
diff --git a/app-editors/qhexedit2/metadata.xml b/app-editors/qhexedit2/metadata.xml
index 7db8b420f3d9..f7e7eb3ae5ad 100644
--- a/app-editors/qhexedit2/metadata.xml
+++ b/app-editors/qhexedit2/metadata.xml
@@ -1,7 +1,14 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
- <!-- maintainer-needed -->
+ <maintainer type="person">
+ <email>vowstar@gmail.com</email>
+ <name>Huang Rui</name>
+ </maintainer>
+ <maintainer type="project">
+ <email>proxy-maint@gentoo.org</email>
+ <name>Proxy Maintainers</name>
+ </maintainer>
<use>
<flag name="gui">Install Qt5 hex editor</flag>
</use>
diff --git a/app-editors/qhexedit2/qhexedit2-0.8.6_p20190316-r1.ebuild b/app-editors/qhexedit2/qhexedit2-0.8.6_p20190316-r1.ebuild
new file mode 100644
index 000000000000..5a67a0db9e25
--- /dev/null
+++ b/app-editors/qhexedit2/qhexedit2-0.8.6_p20190316-r1.ebuild
@@ -0,0 +1,108 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=standalone
+PYTHON_COMPAT=( python3_{8..10} )
+
+inherit distutils-r1 qmake-utils
+
+EGIT_COMMIT="ba5af8616b3a6c916e718914225a483267c01356"
+DESCRIPTION="Hex editor library, Qt application written in C++ with Python bindings"
+HOMEPAGE="https://github.com/lancos/qhexedit2/"
+SRC_URI="https://github.com/lancos/${PN}/archive/${EGIT_COMMIT}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~riscv ~x86"
+IUSE="doc +gui python"
+REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )"
+
+PATCHES=(
+ "${FILESDIR}/${PN}-0.8.4-setup.py.patch"
+ "${FILESDIR}/${PN}-0.8.6-sip5.patch" #820473
+)
+
+RDEPEND="
+ dev-qt/qtcore:5
+ dev-qt/qtgui:5
+ dev-qt/qtwidgets:5
+ python? (
+ ${PYTHON_DEPS}
+ $(python_gen_cond_dep '
+ dev-python/PyQt5[gui,widgets,${PYTHON_USEDEP}]
+ ')
+ )
+"
+DEPEND="${RDEPEND}"
+BDEPEND="
+ python? (
+ $(python_gen_cond_dep '
+ >=dev-python/PyQt-builder-1.10[${PYTHON_USEDEP}]
+ >=dev-python/sip-5:=[${PYTHON_USEDEP}]
+ ')
+ )
+"
+
+S="${WORKDIR}/${PN}-${EGIT_COMMIT}"
+
+src_prepare() {
+ default
+ sed -i -e '/^unix:DESTDIR/ d' -e "\$atarget.path = /usr/$(get_libdir)" \
+ -e "\$aINSTALLS += target" src/qhexedit.pro \
+ || die "src/qhexedit.pro: sed failed"
+}
+
+src_configure() {
+ eqmake5 src/qhexedit.pro
+ if use gui; then
+ cd example || die "can't cd example"
+ eqmake5 qhexedit.pro
+ fi
+}
+
+src_compile() {
+ emake
+ use gui && emake -C example
+ if use python; then
+ export PATH="$(qt5_get_bindir):${PATH}"
+ python_build() {
+ pushd ${S} || die
+ sip-build || die
+ popd || die
+ }
+ python_foreach_impl run_in_build_dir python_build
+ fi
+}
+
+src_test() {
+ cd test || die "can't cd test"
+ mkdir logs || die "can't create logs dir"
+ eqmake5 chunks.pro
+ emake
+ ./chunks || die "test run failed"
+ grep -q "^NOK" logs/Summary.log && die "test failed"
+}
+
+src_install() {
+ doheader src/*.h
+ dolib.so libqhexedit.so*
+ if use python; then
+ python_install() {
+ pushd ${S}/build || die
+ emake INSTALL_ROOT="${D}" install
+ popd || die
+ }
+ python_foreach_impl run_in_build_dir python_install
+ fi
+ if use gui; then
+ dobin example/qhexedit
+ insinto /usr/share/${PN}/
+ doins example/translations/*.qm
+ fi
+ if use doc; then
+ dodoc -r doc/html
+ dodoc doc/release.txt
+ fi
+}
diff --git a/app-editors/qhexedit2/qhexedit2-0.8.9_p20210525-r1.ebuild b/app-editors/qhexedit2/qhexedit2-0.8.9_p20210525-r1.ebuild
new file mode 100644
index 000000000000..eb3f2601963f
--- /dev/null
+++ b/app-editors/qhexedit2/qhexedit2-0.8.9_p20210525-r1.ebuild
@@ -0,0 +1,110 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=standalone
+PYTHON_COMPAT=( python3_{8..10} )
+
+inherit distutils-r1 qmake-utils
+
+EGIT_COMMIT="541139125be034b90b6811a84faa1413e357fd94"
+DESCRIPTION="Hex editor library, Qt application written in C++ with Python bindings"
+HOMEPAGE="https://github.com/Simsys/qhexedit2/"
+SRC_URI="https://github.com/Simsys/${PN}/archive/${EGIT_COMMIT}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~riscv ~x86"
+IUSE="doc +gui python"
+REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )"
+
+PATCHES=(
+ "${FILESDIR}/${PN}-0.8.4-setup.py.patch"
+ "${FILESDIR}/${PN}-0.8.6-sip.patch" #820473
+ "${FILESDIR}/${PN}-0.8.6-sip5.patch" #820473
+ "${FILESDIR}/${PN}-0.8.9-fix-crash.patch"
+)
+
+RDEPEND="
+ dev-qt/qtcore:5
+ dev-qt/qtgui:5
+ dev-qt/qtwidgets:5
+ python? (
+ ${PYTHON_DEPS}
+ $(python_gen_cond_dep '
+ dev-python/PyQt5[gui,widgets,${PYTHON_USEDEP}]
+ ')
+ )
+"
+DEPEND="${RDEPEND}"
+BDEPEND="
+ python? (
+ $(python_gen_cond_dep '
+ >=dev-python/PyQt-builder-1.10[${PYTHON_USEDEP}]
+ >=dev-python/sip-5:=[${PYTHON_USEDEP}]
+ ')
+ )
+"
+
+S="${WORKDIR}/${PN}-${EGIT_COMMIT}"
+
+src_prepare() {
+ default
+ sed -i -e '/^unix:DESTDIR/ d' -e "\$atarget.path = /usr/$(get_libdir)" \
+ -e "\$aINSTALLS += target" src/qhexedit.pro \
+ || die "src/qhexedit.pro: sed failed"
+}
+
+src_configure() {
+ eqmake5 src/qhexedit.pro
+ if use gui; then
+ cd example || die "can't cd example"
+ eqmake5 qhexedit.pro
+ fi
+}
+
+src_compile() {
+ emake
+ use gui && emake -C example
+ if use python; then
+ export PATH="$(qt5_get_bindir):${PATH}"
+ python_build() {
+ pushd ${S} || die
+ sip-build || die
+ popd || die
+ }
+ python_foreach_impl run_in_build_dir python_build
+ fi
+}
+
+src_test() {
+ cd test || die "can't cd test"
+ mkdir logs || die "can't create logs dir"
+ eqmake5 chunks.pro
+ emake
+ ./chunks || die "test run failed"
+ grep -q "^NOK" logs/Summary.log && die "test failed"
+}
+
+src_install() {
+ doheader src/*.h
+ dolib.so libqhexedit.so*
+ if use python; then
+ python_install() {
+ pushd ${S}/build || die
+ emake INSTALL_ROOT="${D}" install
+ popd || die
+ }
+ python_foreach_impl run_in_build_dir python_install
+ fi
+ if use gui; then
+ dobin example/qhexedit
+ insinto /usr/share/${PN}/
+ doins example/translations/*.qm
+ fi
+ if use doc; then
+ dodoc -r doc/html
+ dodoc doc/release.txt
+ fi
+}
next reply other threads:[~2022-05-13 20:04 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-05-13 20:04 Sam James [this message]
-- strict thread matches above, loose matches on Subject: below --
2025-01-27 23:22 [gentoo-commits] repo/gentoo:master commit in: app-editors/qhexedit2/files/, app-editors/qhexedit2/ Andreas Sturmlechner
2022-10-25 16:01 Andreas Sturmlechner
2021-10-27 6:50 Sam James
2018-01-04 19:07 Mikle Kolyada
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=1652472228.8759771fffe11541f3259bab8b305a0afd142f32.sam@gentoo \
--to=sam@gentoo.org \
--cc=gentoo-commits@lists.gentoo.org \
--cc=gentoo-dev@lists.gentoo.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