Chris Billington wrote:
Stuart Henderson wrote:
On 2026/09/10 16:42, Chris Billington wrote:
+EXTRACT_SUFX = .tar.gz
not needed, this is the default
+SHA256 (3b12bc579b99932e3fe307ea1e44b8c1c6d1d5c9.tar.gz) =
8F0xFe9bimf51zwRpZdy3EKaUdcFCZ1vuUFOq5VLb1g=
not a valid filename for distfiles
the patch to PLIST doesn't fully apply:
Hunk #22 failed at 1981.
1 out of 124 hunks failed--saving rejects to pkg/PLIST.rej
On 2026/09/10 03:07, Anthony J. Bentley wrote:
Chris Billington writes:
- upstream uses git submodules for pugixml, SingleApplication, and the
'elements' library. I have used the same pinned revisions in
SITES.xxx/DISTFILES.xxx as the upstream branch.
DIST_TUPLE would be a better fit for this.
yes, that would fix the 3b12bc5... filename too. (btw you can use GH_*
for the main file and DIST_TUPLE for submodules; portroach is likely to
cope better with that)
- The 'elements' user-submitted library (CC-BY-SA 3.0) is pinned
against
a 9-month-old commit of the submodule repo.
Is it permissible to use a recent commit instead, since that would
still
make a reproducible build but would include more recent items?
If doing so provides value and doesn't introduce incompatibility, then
sure.
agreed (in many cases there is a reason why upstream pins a particular
version, in some other cases there isn't, so do check)
- portcheck notes 3 Makefile lines longer than 80 chars, but it's not
easy to break them without sacrificing readability. Is that acceptable?
Yes.
Attached revised diff (gzipped)
- use DIST_TUPLE (found it was not possible to mix DIST_TUPLE and GH_*)
- elements submodule now pinned to a more recent Aug 2026 commit: brings
in a lot of networking/dev board library elements
- diff applies OK to -current ports tree of 11 Sep, but I also attach
the port tgz (from the port directory) as a backup.
- Qt6: I tried building against Qt6/KF6, but the 0.100 branch is not yet
Qt6-clean. Specifically, cmake/fetch_kdeaddons.cmake is hardcoded to use
KF5. The upstream master branch is KF6/5 agnostic and it seems the next
0.200.x release will be Qt6-capable. Work is ongoing, Windows-first. So
we could maybe switch after next release.
- port-lib-depends-check marked GL and sqlite3 as 'Extra:' WANTLIBS for
the cmake build, compared to the 0.91 qmake build. I am assuming this is
because Qt5Gui and Qt5Sql pick them up, but why was this not the case
with 0.91?
- On both of my -current machines, both 0.100 AND the present 0.91p0
display a redraw bug when inserting a library element: the cursor
'guidelines' do not disappear until a redraw is forced by a tiny zoom
in/out with the mouse wheel.
This effect is NOT present on either the old or new 0.100 builds on my
7.9-stable machine.
It looks like a DRM issue to me. Have there been changes to Qt5 graphics
rendering since 7.9-release that could cause this?
Regards
Chris
The attached diff has an updated Makefile to conform to the
distfiles-fetching pattern as recently added to the Ports guide.html,
with the main port using GH_* and the submodules using DIST_TUPLE.
Previously reported redraw issue with Xfce on this and previous version
of qelectrotech "fixed" by forcing Xfce to default settings, please
disregard.
Tested on amd64 Sun Sep 20 20:24:13 UTC 2026 snapshot with sample files
This is still a Qt5/KF5 port, upstream Qt6 released version is not yet
ready.
Regards
Chris Billington
? qelectrotech.diff
Index: Makefile
===================================================================
RCS file: /cvs/ports/cad/qelectrotech/Makefile,v
diff -u -p -u -p -r1.11 Makefile
--- Makefile 19 Sep 2023 15:16:36 -0000 1.11
+++ Makefile 21 Sep 2026 06:05:50 -0000
@@ -1,37 +1,46 @@
-COMMENT = electric diagrams drawing tool
+COMMENT = electrical diagram drawing tool
-DISTNAME = qet-0.9.1
-PKGNAME = qelectrotech-0.91
-CATEGORIES = cad graphics
-REVISION = 0
-
-HOMEPAGE = https://qelectrotech.org/
-SITES = https://git.tuxfamily.org/qet/qet.git/snapshot/
-EXTRACT_SUFX = .tar.gz
+DISTNAME = qelectrotech-0.100
+CATEGORIES = cad graphics
-# GPLv2 / CC-BY 3.0 for the graphic elements
-PERMIT_PACKAGE = Yes
+HOMEPAGE = https://qelectrotech.org/
-WANTLIB += ${COMPILER_LIBCXX} GL KF5CoreAddons KF5WidgetsAddons
-WANTLIB += Qt5Concurrent Qt5Core Qt5Gui Qt5Network Qt5PrintSupport
-WANTLIB += Qt5Sql Qt5Svg Qt5Widgets Qt5Xml c m sqlite3
+GH_ACCOUNT = qelectrotech
+GH_PROJECT = qelectrotech-source-mirror
+GH_TAGNAME = 0.100
-COMPILER = base-clang ports-gcc
-MODULES = devel/kf5 devel/qmake
+DIST_TUPLE = github itay-grudev SingleApplication v3.2.0 SingleApplication/
+DIST_TUPLE += github qelectrotech qelectrotech-elements 74bdb77844ec5dfa09c7689756f5983197429dce elements/
-# XXX ../sources/ui/dynamicelementtextitemeditor.cpp:26:10:
-# error: '../ui_dynamicelementtextitemeditor.h' file not found, did you mean 'ui_dynamicelementtextitemeditor.h'?
-SEPARATE_BUILD = No
+# GPLv2 / CC-BY 3.0 for the graphic elements
+PERMIT_PACKAGE = Yes
-LIB_DEPENDS = devel/kf5/kcoreaddons \
- devel/kf5/kwidgetsaddons \
- x11/qt5/qtsvg
+WANTLIB += ${COMPILER_LIBCXX} KF5CoreAddons KF5WidgetsAddons
+WANTLIB += Qt5Concurrent Qt5Core Qt5Gui Qt5Network Qt5PrintSupport
+WANTLIB += Qt5Sql Qt5Svg Qt5Widgets Qt5Xml c m pugixml
-RUN_DEPENDS = misc/shared-mime-info \
- devel/desktop-file-utils \
- x11/gtk+4,-guic
+BUILD_DEPENDS = x11/qt5/qttools
-CONFIGURE_STYLE = qmake
-CONFIGURE_ENV = QMAKEMODULES=${LOCALBASE}/share/kf5/mkspecs
+LIB_DEPENDS = devel/kf5/kcoreaddons \
+ devel/kf5/kwidgetsaddons \
+ textproc/pugixml \
+ x11/qt5/qtsvg
+
+RUN_DEPENDS = misc/shared-mime-info \
+ devel/desktop-file-utils \
+ x11/gtk+4,-guic
+
+MODULES = devel/cmake x11/qt5
+
+CONFIGURE_ARGS += -DQT_VERSION_MAJOR=5 \
+ -DPACKAGE_TESTS=NO \
+ -DBUILD_PUGIXML=NO \
+ -DBUILD_KF5=NO \
+ -DCMAKE_PREFIX_PATH=${LOCALBASE}/lib/qt5 \
+ -DFETCHCONTENT_SOURCE_DIR_SINGLEAPPLICATION=${WRKSRC}/SingleApplication
+
+post-extract:
+ # remove 505M binary shipped by upstream in error with 0.100
+ rm ${WRKSRC}/doc/QElectroTech.qch
.include <bsd.port.mk>
Index: distinfo
===================================================================
RCS file: /cvs/ports/cad/qelectrotech/distinfo,v
diff -u -p -u -p -r1.3 distinfo
--- distinfo 28 Apr 2023 11:24:59 -0000 1.3
+++ distinfo 21 Sep 2026 06:05:50 -0000
@@ -1,2 +1,6 @@
-SHA256 (qet-0.9.1.tar.gz) = 1RYPoYueA9X4MGqN9by61+DSnWY78yJuckj4x6zkV8c=
-SIZE (qet-0.9.1.tar.gz) = 16839059
+SHA256 (itay-grudev-SingleApplication-v3.2.0.tar.gz) = CIzxyp4HVG2ygHldl3A7Fd7qDKaenAHu80QSxmXjfFc=
+SHA256 (qelectrotech-0.100.tar.gz) = XqqzBOnvc1hnHrlp74mV7mWZlbM8oE3dagp7+w1+NGY=
+SHA256 (qelectrotech-qelectrotech-elements-74bdb77844ec5dfa09c7689756f5983197429dce.tar.gz) = L2oLdAlqmTK0SwY+0G0rmoDGOnyzZfsCClzAdUsn3Sw=
+SIZE (itay-grudev-SingleApplication-v3.2.0.tar.gz) = 20640
+SIZE (qelectrotech-0.100.tar.gz) = 531718217
+SIZE (qelectrotech-qelectrotech-elements-74bdb77844ec5dfa09c7689756f5983197429dce.tar.gz) = 7109148
Index: patches/patch-CMakeLists_txt
===================================================================
RCS file: patches/patch-CMakeLists_txt
diff -N patches/patch-CMakeLists_txt
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ patches/patch-CMakeLists_txt 21 Sep 2026 06:05:50 -0000
@@ -0,0 +1,26 @@
+Index: CMakeLists.txt
+--- CMakeLists.txt.orig
++++ CMakeLists.txt
+@@ -54,21 +54,7 @@ set(CMAKE_AUTOUIC ON)
+ SET(CMAKE_CXX_STANDARD 17)
+ set(CMAKE_CXX_STANDARD_REQUIRED ON)
+
+-find_package(
+- QT
+- NAMES
+- Qt6
+- Qt5
+- COMPONENTS
+- ${QET_COMPONENTS}
+- REQUIRED
+- )
+-
+-find_package(
+- Qt${QT_VERSION_MAJOR}
+- COMPONENTS
+- ${QET_COMPONENTS}
+- REQUIRED)
++find_package(Qt5 COMPONENTS ${QET_COMPONENTS} REQUIRED)
+
+ set(CMAKE_AUTOUIC_SEARCH_PATHS ${QET_DIR}/sources/ui)
+ qt5_create_translation(QM_FILES ${CMAKE_SOURCE_DIR} ${TS_FILES})
Index: patches/patch-cmake_qet_compilation_vars_cmake
===================================================================
RCS file: patches/patch-cmake_qet_compilation_vars_cmake
diff -N patches/patch-cmake_qet_compilation_vars_cmake
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ patches/patch-cmake_qet_compilation_vars_cmake 21 Sep 2026 06:05:50 -0000
@@ -0,0 +1,14 @@
+Index: cmake/qet_compilation_vars.cmake
+--- cmake/qet_compilation_vars.cmake.orig
++++ cmake/qet_compilation_vars.cmake
+@@ -413,10 +413,6 @@ set(QET_SRC_FILES
+ ${QET_DIR}/sources/PropertiesEditor/propertieseditorwidget.cpp
+ ${QET_DIR}/sources/PropertiesEditor/propertieseditorwidget.h
+
+- ${QET_DIR}/pugixml/src/pugiconfig.hpp
+- ${QET_DIR}/pugixml/src/pugixml.cpp
+- ${QET_DIR}/pugixml/src/pugixml.hpp
+-
+ ${QET_DIR}/sources/qetgraphicsitem/conductor.cpp
+ ${QET_DIR}/sources/qetgraphicsitem/conductor.h
+ ${QET_DIR}/sources/qetgraphicsitem/conductortextitem.cpp
Index: patches/patch-qelectrotech_pro
===================================================================
RCS file: patches/patch-qelectrotech_pro
diff -N patches/patch-qelectrotech_pro
--- patches/patch-qelectrotech_pro 28 Apr 2023 11:24:59 -0000 1.3
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,31 +0,0 @@
-Index: qelectrotech.pro
---- qelectrotech.pro.orig
-+++ qelectrotech.pro
-@@ -12,8 +12,8 @@ unix {
- QET_COMMON_TBT_PATH = 'share/qelectrotech/titleblocks/'
- QET_LANG_PATH = 'share/qelectrotech/lang/'
- QET_EXAMPLES_PATH = 'share/qelectrotech/examples/'
-- QET_LICENSE_PATH = 'doc/qelectrotech/'
-- QET_MIME_PACKAGE_PATH = '../share/mime/packages/'
-+ QET_LICENSE_PATH = 'share/doc/qelectrotech/'
-+ QET_MIME_PACKAGE_PATH = 'share/mime/packages/'
- QET_DESKTOP_PATH = 'share/applications/'
- QET_ICONS_PATH = 'share/icons/hicolor/'
- QET_MAN_PATH = 'man/'
-@@ -233,7 +233,7 @@ UI_SOURCES_DIR = sources/ui/
- UI_HEADERS_DIR = sources/ui/
-
- # Configuration de la compilation
--CONFIG += c++17 debug_and_release warn_on link_pkgconfig
-+CONFIG += c++17 release warn_on link_pkgconfig
-
- # Nom du binaire genere par la compilation
- TARGET = qelectrotech
-@@ -283,7 +283,6 @@ icons.files = ico/breeze-icons/16x16 \
-
- man.path = $$join(INSTALL_PREFIX,,,$${QET_MAN_PATH})
- man.files = man/files/*
--man.extra = sh man/compress_man_pages.sh
-
- # L'installation comprend la copie du binaire, des elements, des fichiers de langue et du fichier LICENSE
- INSTALLS += target elements tbt lang copyright
Index: patches/patch-sources_ElementsCollection_elementslocation_h
===================================================================
RCS file: patches/patch-sources_ElementsCollection_elementslocation_h
diff -N patches/patch-sources_ElementsCollection_elementslocation_h
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ patches/patch-sources_ElementsCollection_elementslocation_h 21 Sep 2026 06:05:50 -0000
@@ -0,0 +1,12 @@
+Index: sources/ElementsCollection/elementslocation.h
+--- sources/ElementsCollection/elementslocation.h.orig
++++ sources/ElementsCollection/elementslocation.h
+@@ -20,7 +20,7 @@
+
+ #include "../NameList/nameslist.h"
+ #include "../diagramcontext.h"
+-#include "pugixml/src/pugixml.hpp"
++#include <pugixml.hpp>
+
+ #include <QIcon>
+ #include <QString>
Index: patches/patch-sources_NameList_nameslist_h
===================================================================
RCS file: patches/patch-sources_NameList_nameslist_h
diff -N patches/patch-sources_NameList_nameslist_h
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ patches/patch-sources_NameList_nameslist_h 21 Sep 2026 06:05:50 -0000
@@ -0,0 +1,12 @@
+Index: sources/NameList/nameslist.h
+--- sources/NameList/nameslist.h.orig
++++ sources/NameList/nameslist.h
+@@ -17,7 +17,7 @@
+ */
+ #ifndef NAMES_LIST_H
+ #define NAMES_LIST_H
+-#include "pugixml/src/pugixml.hpp"
++#include <pugixml.hpp>
+
+ #include <QtXml>
+ /**
Index: patches/patch-sources_diagramcontext_h
===================================================================
RCS file: patches/patch-sources_diagramcontext_h
diff -N patches/patch-sources_diagramcontext_h
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ patches/patch-sources_diagramcontext_h 21 Sep 2026 06:05:50 -0000
@@ -0,0 +1,12 @@
+Index: sources/diagramcontext.h
+--- sources/diagramcontext.h.orig
++++ sources/diagramcontext.h
+@@ -17,7 +17,7 @@
+ */
+ #ifndef DIAGRAM_CONTEXT_H
+ #define DIAGRAM_CONTEXT_H
+-#include "pugixml/src/pugixml.hpp"
++#include <pugixml.hpp>
+
+ #include <QDomElement>
+ #include <QHash>