Compare commits
3 Commits
| Author | SHA256 | Date | |
|---|---|---|---|
| 9fea0efcfa | |||
|
|
1bb7169a43 | ||
|
|
6b4e4d36db |
54
Fix-Wdangling-else-warnings.patch
Normal file
54
Fix-Wdangling-else-warnings.patch
Normal file
@@ -0,0 +1,54 @@
|
|||||||
|
From: Aaron Puchert <aaronpuchert@alice-dsl.net>
|
||||||
|
Date: Sat, 23 Aug 2025 17:38:13 +0200
|
||||||
|
Subject: [PATCH 3/3] Fix -Wdangling-else warnings
|
||||||
|
|
||||||
|
The indentation matched how the compiler would parse the statements (the
|
||||||
|
`else` is assigned to the innermost `if`), so we just add braces to
|
||||||
|
clarify that this is intentional.
|
||||||
|
---
|
||||||
|
Source/tmModel/tmTreeClasses/tmTree.cpp | 3 ++-
|
||||||
|
Source/tmModel/tmTreeClasses/tmVertex.cpp | 3 ++-
|
||||||
|
2 files changed, 4 insertions(+), 2 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/Source/tmModel/tmTreeClasses/tmTree.cpp b/Source/tmModel/tmTreeClasses/tmTree.cpp
|
||||||
|
index 1347e8d..38d1b9f 100644
|
||||||
|
--- a/Source/tmModel/tmTreeClasses/tmTree.cpp
|
||||||
|
+++ b/Source/tmModel/tmTreeClasses/tmTree.cpp
|
||||||
|
@@ -777,7 +777,7 @@ void tmTree::AbsorbEdge(tmEdge* aEdge)
|
||||||
|
// Paths that end on killNode are deleted.
|
||||||
|
if (thePath->StartsOrEndsWith(killNode))
|
||||||
|
delete thePath;
|
||||||
|
- else if (thePath->mNodes.contains(killNode))
|
||||||
|
+ else if (thePath->mNodes.contains(killNode)) {
|
||||||
|
if (thePath->mNodes.contains(keepNode))
|
||||||
|
// Paths that contain killNode and keepNode get the reference to
|
||||||
|
// killNode removed.
|
||||||
|
@@ -786,6 +786,7 @@ void tmTree::AbsorbEdge(tmEdge* aEdge)
|
||||||
|
// Paths that only contain killNode get the reference replaced by
|
||||||
|
// a reference to keepNode.
|
||||||
|
thePath->mNodes.replace_with(killNode, keepNode);
|
||||||
|
+ }
|
||||||
|
// Remove the edge from the path
|
||||||
|
if (thePath->mEdges.contains(aEdge))
|
||||||
|
thePath->mEdges.erase_remove(aEdge);
|
||||||
|
diff --git a/Source/tmModel/tmTreeClasses/tmVertex.cpp b/Source/tmModel/tmTreeClasses/tmVertex.cpp
|
||||||
|
index f98c533..7f75392 100644
|
||||||
|
--- a/Source/tmModel/tmTreeClasses/tmVertex.cpp
|
||||||
|
+++ b/Source/tmModel/tmTreeClasses/tmVertex.cpp
|
||||||
|
@@ -241,7 +241,7 @@ void tmVertex::GetAxialOrGussetCreases(tmCrease*& crease1,
|
||||||
|
crease1 = crease2 = 0;
|
||||||
|
for (size_t i = 0; i < mCreases.size(); ++i) {
|
||||||
|
tmCrease* theCrease = mCreases[i];
|
||||||
|
- if (theCrease->IsAxialOrGussetCrease())
|
||||||
|
+ if (theCrease->IsAxialOrGussetCrease()) {
|
||||||
|
if (!crease1)
|
||||||
|
crease1 = theCrease;
|
||||||
|
else {
|
||||||
|
@@ -249,6 +249,7 @@ void tmVertex::GetAxialOrGussetCreases(tmCrease*& crease1,
|
||||||
|
crease2 = theCrease;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
+ }
|
||||||
|
}
|
||||||
|
TMFAIL("tmVertex::GetAxialOrGussetCreases(): "\
|
||||||
|
"couldn't find axial or gusset creases");
|
||||||
37
Fix-Wparentheses-warnings.patch
Normal file
37
Fix-Wparentheses-warnings.patch
Normal file
@@ -0,0 +1,37 @@
|
|||||||
|
From: Aaron Puchert <aaronpuchert@alice-dsl.net>
|
||||||
|
Date: Sat, 23 Aug 2025 17:36:40 +0200
|
||||||
|
Subject: [PATCH 2/3] Fix -Wparentheses warnings
|
||||||
|
|
||||||
|
These seem to be true positives, so I fixed the code. This could result
|
||||||
|
in behavioral changes, but I haven't noticed anything broken yet.
|
||||||
|
---
|
||||||
|
Source/tmModel/tmTreeClasses/tmConditionPathActive.cpp | 2 +-
|
||||||
|
Source/tmModel/tmTreeClasses/tmConditionPathCombo.cpp | 2 +-
|
||||||
|
2 files changed, 2 insertions(+), 2 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/Source/tmModel/tmTreeClasses/tmConditionPathActive.cpp b/Source/tmModel/tmTreeClasses/tmConditionPathActive.cpp
|
||||||
|
index ebbf677..551415d 100644
|
||||||
|
--- a/Source/tmModel/tmTreeClasses/tmConditionPathActive.cpp
|
||||||
|
+++ b/Source/tmModel/tmTreeClasses/tmConditionPathActive.cpp
|
||||||
|
@@ -46,7 +46,7 @@ void tmConditionPathActive::SetPath(tmPath* aPath)
|
||||||
|
{
|
||||||
|
TMASSERT(aPath);
|
||||||
|
TMASSERT(aPath->mIsLeafPath);
|
||||||
|
- if (mPath = aPath) return;
|
||||||
|
+ if (mPath == aPath) return;
|
||||||
|
tmTreeCleaner tc(mTree);
|
||||||
|
mPath = aPath;
|
||||||
|
mNode1 = aPath->mNodes.front();
|
||||||
|
diff --git a/Source/tmModel/tmTreeClasses/tmConditionPathCombo.cpp b/Source/tmModel/tmTreeClasses/tmConditionPathCombo.cpp
|
||||||
|
index aa34cc3..7e84b93 100644
|
||||||
|
--- a/Source/tmModel/tmTreeClasses/tmConditionPathCombo.cpp
|
||||||
|
+++ b/Source/tmModel/tmTreeClasses/tmConditionPathCombo.cpp
|
||||||
|
@@ -65,7 +65,7 @@ void tmConditionPathCombo::SetPath(tmPath* aPath)
|
||||||
|
{
|
||||||
|
TMASSERT(aPath);
|
||||||
|
TMASSERT(aPath->mIsLeafPath);
|
||||||
|
- if (mPath = aPath) return;
|
||||||
|
+ if (mPath == aPath) return;
|
||||||
|
tmTreeCleaner tc(mTree);
|
||||||
|
mPath = aPath;
|
||||||
|
mNode1 = aPath->mNodes.front();
|
||||||
22
Fix-build-with-GCC-15.patch
Normal file
22
Fix-build-with-GCC-15.patch
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
From: Aaron Puchert <aaronpuchert@alice-dsl.net>
|
||||||
|
Date: Sat, 23 Aug 2025 17:29:03 +0200
|
||||||
|
Subject: [PATCH 1/3] Fix build with GCC 15
|
||||||
|
|
||||||
|
Non-prototype declarations are no longer accepted by default.
|
||||||
|
---
|
||||||
|
Source/tmModel/wnlib/mem/wnmem.c | 2 +-
|
||||||
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/Source/tmModel/wnlib/mem/wnmem.c b/Source/tmModel/wnlib/mem/wnmem.c
|
||||||
|
index 1f0a15b..918f5f8 100644
|
||||||
|
--- a/Source/tmModel/wnlib/mem/wnmem.c
|
||||||
|
+++ b/Source/tmModel/wnlib/mem/wnmem.c
|
||||||
|
@@ -105,7 +105,7 @@ bool wn_gp_fill_flag=FALSE,
|
||||||
|
wn_gp_trap_address_flag=FALSE;
|
||||||
|
ptr wn_gp_trap_address_address;
|
||||||
|
|
||||||
|
-ptr wn_system_alloc(/*size*/);
|
||||||
|
+ptr wn_system_alloc(int size);
|
||||||
|
|
||||||
|
local void default_error_func(int size);
|
||||||
|
typedef void (*voidfunc)(int size);
|
||||||
@@ -1,3 +1,13 @@
|
|||||||
|
-------------------------------------------------------------------
|
||||||
|
Sat Aug 23 16:11:55 UTC 2025 - Aaron Puchert <aaronpuchert@alice-dsl.net>
|
||||||
|
|
||||||
|
- Add patches, mainly to fix build with GCC 15:
|
||||||
|
* Fix-build-with-GCC-15.patch
|
||||||
|
* Fix-Wparentheses-warnings.patch
|
||||||
|
* Fix-Wdangling-else-warnings.patch
|
||||||
|
- Migrate from %suse_update_desktop_file to %translate_suse_desktop
|
||||||
|
with translation only for GenericName. (Name is a proper name.)
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Wed May 1 16:45:29 UTC 2024 - Aaron Puchert <aaronpuchert@alice-dsl.net>
|
Wed May 1 16:45:29 UTC 2024 - Aaron Puchert <aaronpuchert@alice-dsl.net>
|
||||||
|
|
||||||
|
|||||||
@@ -1,8 +1,7 @@
|
|||||||
#
|
#
|
||||||
# spec file for package TreeMaker
|
# spec file for package TreeMaker
|
||||||
#
|
#
|
||||||
# Copyright (c) 2024 SUSE LLC
|
# Copyright (c) 2025 SUSE LLC and contributors
|
||||||
# Copyright (c) 2024 Aaron Puchert <aaronpuchert@alice-dsl.net>
|
|
||||||
#
|
#
|
||||||
# All modifications and additions to the file contributed by third parties
|
# All modifications and additions to the file contributed by third parties
|
||||||
# remain the property of their copyright owners, unless otherwise agreed
|
# remain the property of their copyright owners, unless otherwise agreed
|
||||||
@@ -19,7 +18,7 @@
|
|||||||
|
|
||||||
# We have to build hhp2cached ourselves. We take the source from a fixed version
|
# We have to build hhp2cached ourselves. We take the source from a fixed version
|
||||||
# of wxWidgets to not break source validation, but warn if it doesn't match.
|
# of wxWidgets to not break source validation, but warn if it doesn't match.
|
||||||
%global hhp2cached_ver 3.2.4
|
%global hhp2cached_ver 3.2.8
|
||||||
%if %{pkg_vcmp wxGTK3-devel != %{hhp2cached_ver}}
|
%if %{pkg_vcmp wxGTK3-devel != %{hhp2cached_ver}}
|
||||||
%{warn:hhp2cached version does not match wxGTK3-devel}
|
%{warn:hhp2cached version does not match wxGTK3-devel}
|
||||||
%endif
|
%endif
|
||||||
@@ -32,7 +31,7 @@ License: GPL-2.0-only
|
|||||||
Group: Productivity/Graphics/CAD
|
Group: Productivity/Graphics/CAD
|
||||||
URL: https://www.langorigami.com/article/treemaker
|
URL: https://www.langorigami.com/article/treemaker
|
||||||
Source: https://www.langorigami.com/wp-content/uploads/2015/09/TreeMaker_src.zip
|
Source: https://www.langorigami.com/wp-content/uploads/2015/09/TreeMaker_src.zip
|
||||||
Source1: com.langorigami.TreeMaker.desktop
|
Source1: com.langorigami.TreeMaker.desktop.in
|
||||||
Source2: com.langorigami.TreeMaker.metainfo.xml
|
Source2: com.langorigami.TreeMaker.metainfo.xml
|
||||||
Source3: treemaker.xml
|
Source3: treemaker.xml
|
||||||
Source4: https://github.com/wxWidgets/wxWidgets/raw/v%{hhp2cached_ver}/utils/hhp2cached/hhp2cached.cpp
|
Source4: https://github.com/wxWidgets/wxWidgets/raw/v%{hhp2cached_ver}/utils/hhp2cached/hhp2cached.cpp
|
||||||
@@ -59,11 +58,14 @@ Patch19: Fix-crash-on-opening-help.patch
|
|||||||
Patch20: Make-some-build-options-configurable.patch
|
Patch20: Make-some-build-options-configurable.patch
|
||||||
Patch21: Don-t-run-pkg-config-wx-config-for-every-compile-job.patch
|
Patch21: Don-t-run-pkg-config-wx-config-for-every-compile-job.patch
|
||||||
Patch22: Correctly-detect-64-bit-platforms.patch
|
Patch22: Correctly-detect-64-bit-platforms.patch
|
||||||
|
Patch23: Fix-build-with-GCC-15.patch
|
||||||
|
Patch24: Fix-Wparentheses-warnings.patch
|
||||||
|
Patch25: Fix-Wdangling-else-warnings.patch
|
||||||
BuildRequires: c++_compiler
|
BuildRequires: c++_compiler
|
||||||
BuildRequires: make
|
BuildRequires: make
|
||||||
BuildRequires: pkgconfig
|
BuildRequires: pkgconfig
|
||||||
|
BuildRequires: translate-suse-desktop
|
||||||
BuildRequires: unzip
|
BuildRequires: unzip
|
||||||
BuildRequires: update-desktop-files
|
|
||||||
BuildRequires: wxGTK3-devel
|
BuildRequires: wxGTK3-devel
|
||||||
BuildRequires: zip
|
BuildRequires: zip
|
||||||
BuildRequires: pkgconfig(gtk+-3.0)
|
BuildRequires: pkgconfig(gtk+-3.0)
|
||||||
@@ -86,6 +88,8 @@ pasted into another graphics program for further processing.
|
|||||||
unzip -uo %{SOURCE0} -d ..
|
unzip -uo %{SOURCE0} -d ..
|
||||||
%autopatch -p1
|
%autopatch -p1
|
||||||
|
|
||||||
|
cp %{SOURCE1} .
|
||||||
|
|
||||||
%build
|
%build
|
||||||
pushd linux/
|
pushd linux/
|
||||||
OPTIONS="%{optflags}" make %{?_smp_mflags} INSTALL_PREFIX=%{_prefix}
|
OPTIONS="%{optflags}" make %{?_smp_mflags} INSTALL_PREFIX=%{_prefix}
|
||||||
@@ -101,8 +105,8 @@ popd
|
|||||||
|
|
||||||
rm %{buildroot}%{_datadir}/TreeMaker\ 5/{Icon_app.ppm,LICENSE.txt.gz,uninstall}
|
rm %{buildroot}%{_datadir}/TreeMaker\ 5/{Icon_app.ppm,LICENSE.txt.gz,uninstall}
|
||||||
|
|
||||||
%suse_update_desktop_file -i %{SOURCE1}
|
%translate_suse_desktop com.langorigami.TreeMaker.desktop
|
||||||
install -D -m 644 %{SOURCE1} %{buildroot}%{_datadir}/applications/com.langorigami.TreeMaker.desktop
|
install -D -m 644 com.langorigami.TreeMaker.desktop %{buildroot}%{_datadir}/applications/com.langorigami.TreeMaker.desktop
|
||||||
install -D -m 644 %{SOURCE2} %{buildroot}%{_datadir}/metainfo/com.langorigami.TreeMaker.metainfo.xml
|
install -D -m 644 %{SOURCE2} %{buildroot}%{_datadir}/metainfo/com.langorigami.TreeMaker.metainfo.xml
|
||||||
install -D -m 644 %{SOURCE3} %{buildroot}%{_datadir}/mime/packages/treemaker.xml
|
install -D -m 644 %{SOURCE3} %{buildroot}%{_datadir}/mime/packages/treemaker.xml
|
||||||
mkdir -p %{buildroot}%{_datadir}/icons/hicolor/{48x48,128x128}/{apps,mimetypes}
|
mkdir -p %{buildroot}%{_datadir}/icons/hicolor/{48x48,128x128}/{apps,mimetypes}
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
Encoding=UTF-8
|
Encoding=UTF-8
|
||||||
Type=Application
|
Type=Application
|
||||||
Name=TreeMaker
|
Name=TreeMaker
|
||||||
GenericName=Origami Designer
|
_GenericName=Origami Designer
|
||||||
Categories=Science;Art;
|
Categories=Science;Art;
|
||||||
MimeType=model/x-tmd5;
|
MimeType=model/x-tmd5;
|
||||||
Exec=TreeMaker %F
|
Exec=TreeMaker %F
|
||||||
Reference in New Issue
Block a user