1 |
commit: 0eea69141f8a758b5205b69a1495332aff9e78e9 |
2 |
Author: Zoltan Puskas <zoltan <AT> sinustrom <DOT> info> |
3 |
AuthorDate: Thu Dec 19 10:26:24 2019 +0000 |
4 |
Commit: Alexey Shvetsov <alexxy <AT> gentoo <DOT> org> |
5 |
CommitDate: Thu May 14 10:34:07 2020 +0000 |
6 |
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=0eea6914 |
7 |
|
8 |
sci-electronics/kicad: Fix build failure and QA |
9 |
|
10 |
Fix recent build failure in KiCAD. Also apply backported |
11 |
patches from upstream to address QA issues that remained |
12 |
since introducing this version of the ebuild. |
13 |
|
14 |
Package-Manager: Portage-2.3.80, Repoman-2.3.19 |
15 |
Signed-off-by: Zoltan Puskas <zoltan <AT> sinustrom.info> |
16 |
Closes: https://bugs.gentoo.org/682480 |
17 |
Closes: https://bugs.gentoo.org/722288 |
18 |
Signed-off-by: Alexey Shvetsov <alexxy <AT> gentoo.org> |
19 |
|
20 |
.../kicad/files/kicad-5.1.5-ninja-build.patch | 6 +++--- |
21 |
.../kicad/files/kicad-5.1.5-strict-aliasing.patch | 25 ++++++++++++++++++++++ |
22 |
.../kicad/files/kicad-algorithm-header.patch | 11 ++++++++++ |
23 |
sci-electronics/kicad/files/kicad-metainfo.patch | 12 +++++++++++ |
24 |
...kicad-5.1.5-r1.ebuild => kicad-5.1.5-r2.ebuild} | 17 ++++++++++++++- |
25 |
5 files changed, 67 insertions(+), 4 deletions(-) |
26 |
|
27 |
diff --git a/sci-electronics/kicad/files/kicad-5.1.5-ninja-build.patch b/sci-electronics/kicad/files/kicad-5.1.5-ninja-build.patch |
28 |
index 3aac927b5bd..3b4b6a4d2fe 100644 |
29 |
--- a/sci-electronics/kicad/files/kicad-5.1.5-ninja-build.patch |
30 |
+++ b/sci-electronics/kicad/files/kicad-5.1.5-ninja-build.patch |
31 |
@@ -13,8 +13,8 @@ diff -Naur kicad-5.1.5-orig/pcbnew/CMakeLists.txt kicad-5.1.5/pcbnew/CMakeLists. |
32 |
+ install( FILES ${CMAKE_CURRENT_BINARY_DIR}/_pcbnew.kiface DESTINATION ${PYTHON_DEST} COMPONENT binary RENAME "_pcbnew.so" ) |
33 |
set( PYMOD_EXT "so" ) |
34 |
endif() |
35 |
- |
36 |
-@@ -827,18 +823,16 @@ |
37 |
+ |
38 |
+@@ -792,18 +788,16 @@ if( KICAD_SCRIPTING_MODULES ) |
39 |
DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/_pcbnew.${PYMOD_EXT} |
40 |
) |
41 |
else() |
42 |
@@ -41,5 +41,5 @@ diff -Naur kicad-5.1.5-orig/pcbnew/CMakeLists.txt kicad-5.1.5/pcbnew/CMakeLists. |
43 |
+ DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/_pcbnew.${PYMOD_EXT} |
44 |
+ ) |
45 |
endif() |
46 |
- |
47 |
+ |
48 |
endif() |
49 |
|
50 |
diff --git a/sci-electronics/kicad/files/kicad-5.1.5-strict-aliasing.patch b/sci-electronics/kicad/files/kicad-5.1.5-strict-aliasing.patch |
51 |
new file mode 100644 |
52 |
index 00000000000..b01a6b7d79f |
53 |
--- /dev/null |
54 |
+++ b/sci-electronics/kicad/files/kicad-5.1.5-strict-aliasing.patch |
55 |
@@ -0,0 +1,25 @@ |
56 |
+diff --git a/eeschema/dialogs/dialog_spice_model.cpp b/eeschema/dialogs/dialog_spice_model.cpp |
57 |
+index b265e2363..eb1187d86 100644 |
58 |
+--- a/eeschema/dialogs/dialog_spice_model.cpp |
59 |
++++ b/eeschema/dialogs/dialog_spice_model.cpp |
60 |
+@@ -34,6 +34,7 @@ |
61 |
+ #include <wx/wupdlock.h> |
62 |
+ |
63 |
+ #include <cctype> |
64 |
++#include <cstring> |
65 |
+ |
66 |
+ // Helper function to shorten conditions |
67 |
+ static bool empty( const wxTextCtrl* aCtrl ) |
68 |
+@@ -804,9 +804,11 @@ bool DIALOG_SPICE_MODEL::addPwlValue( const wxString& aTime, const wxString& aVa |
69 |
+ float timeF; |
70 |
+ m_pwlTime->GetValue().ToDouble( &timeD ); |
71 |
+ timeF = timeD; |
72 |
++ long data; |
73 |
++ std::memcpy( &data, &timeF, sizeof( timeF ) ); |
74 |
+ |
75 |
+ // Store the time value, so the entries can be sorted |
76 |
+- m_pwlValList->SetItemData( idx, *reinterpret_cast<long*>( &timeF ) ); |
77 |
++ m_pwlValList->SetItemData( idx, data ); |
78 |
+ |
79 |
+ // Sort items by timestamp |
80 |
+ m_pwlValList->SortItems( comparePwlValues, -1 ); |
81 |
|
82 |
diff --git a/sci-electronics/kicad/files/kicad-algorithm-header.patch b/sci-electronics/kicad/files/kicad-algorithm-header.patch |
83 |
new file mode 100644 |
84 |
index 00000000000..aa118ea6f86 |
85 |
--- /dev/null |
86 |
+++ b/sci-electronics/kicad/files/kicad-algorithm-header.patch |
87 |
@@ -0,0 +1,11 @@ |
88 |
+diff -Naur kicad-5.1.5-orig/common/lib_tree_model.cpp kicad-5.1.5/common/lib_tree_model.cpp |
89 |
+--- kicad-5.1.5-orig/common/lib_tree_model.cpp 2020-05-11 00:36:36.568301297 +0200 |
90 |
++++ kicad-5.1.5/common/lib_tree_model.cpp 2020-05-11 00:37:50.472359703 +0200 |
91 |
+@@ -21,6 +21,7 @@ |
92 |
+ |
93 |
+ #include <lib_tree_model.h> |
94 |
+ |
95 |
++#include <algorithm> |
96 |
+ #include <eda_pattern_match.h> |
97 |
+ #include <lib_tree_item.h> |
98 |
+ #include <make_unique.h> |
99 |
|
100 |
diff --git a/sci-electronics/kicad/files/kicad-metainfo.patch b/sci-electronics/kicad/files/kicad-metainfo.patch |
101 |
new file mode 100644 |
102 |
index 00000000000..48a5ef5be50 |
103 |
--- /dev/null |
104 |
+++ b/sci-electronics/kicad/files/kicad-metainfo.patch |
105 |
@@ -0,0 +1,12 @@ |
106 |
+diff -Naur kicad-5.1.5-orig/CMakeLists.txt kicad-5.1.5/CMakeLists.txt |
107 |
+--- kicad-5.1.5-orig/CMakeLists.txt 2019-11-14 09:09:45.000000000 -0800 |
108 |
++++ kicad-5.1.5/CMakeLists.txt 2020-05-11 23:51:52.122093410 -0700 |
109 |
+@@ -919,7 +919,7 @@ |
110 |
+ set( UNIX_MIME_FILES ${UNIX_MIME_DIR}/mime ) |
111 |
+ set( UNIX_ICON_FILES ${UNIX_MIME_DIR}/icons ) |
112 |
+ set( UNIX_APPLICATIONS_FILES ${UNIX_MIME_DIR}/applications ) |
113 |
+- set( UNIX_APPDATA_FILES resources/linux/appdata ) |
114 |
++ set( UNIX_APPDATA_FILES resources/linux/metainfo ) |
115 |
+ |
116 |
+ # Install Mime directory |
117 |
+ install( DIRECTORY ${UNIX_ICON_FILES} |
118 |
|
119 |
diff --git a/sci-electronics/kicad/kicad-5.1.5-r1.ebuild b/sci-electronics/kicad/kicad-5.1.5-r2.ebuild |
120 |
similarity index 83% |
121 |
rename from sci-electronics/kicad/kicad-5.1.5-r1.ebuild |
122 |
rename to sci-electronics/kicad/kicad-5.1.5-r2.ebuild |
123 |
index aaf6a6bf350..8dbca2a8ae4 100644 |
124 |
--- a/sci-electronics/kicad/kicad-5.1.5-r1.ebuild |
125 |
+++ b/sci-electronics/kicad/kicad-5.1.5-r2.ebuild |
126 |
@@ -57,6 +57,9 @@ CHECKREQS_DISK_BUILD="800M" |
127 |
PATCHES=( |
128 |
"${FILESDIR}"/"${PN}-5.1.5-help.patch" |
129 |
"${FILESDIR}"/"${PN}-5.1.5-ninja-build.patch" |
130 |
+ "${FILESDIR}"/"${PN}-5.1.5-strict-aliasing.patch" |
131 |
+ "${FILESDIR}"/"${PN}-algorithm-header.patch" |
132 |
+ "${FILESDIR}"/"${PN}-metainfo.patch" |
133 |
"${FILESDIR}"/"ldflags.patch" |
134 |
) |
135 |
|
136 |
@@ -67,11 +70,22 @@ pkg_setup() { |
137 |
check-reqs_pkg_setup |
138 |
} |
139 |
|
140 |
+src_unpack() { |
141 |
+ default_src_unpack |
142 |
+ # For the metainfo patch to work the kicad.appdata.xml has to be moved to |
143 |
+ # avoid QA issue. This is needed because /usr/share/appdata location is |
144 |
+ # deprecated, it should not be used anymore by new software. |
145 |
+ # Appdata/Metainfo files should be installed into /usr/share/metainfo |
146 |
+ # directory. as per |
147 |
+ # https://www.freedesktop.org/software/appstream/docs/chap-Metadata.html |
148 |
+ mv "${S}/resources/linux/appdata" "${S}/resources/linux/metainfo" || die "Appdata move failed" |
149 |
+} |
150 |
+ |
151 |
src_configure() { |
152 |
xdg_environment_reset |
153 |
|
154 |
local mycmakeargs=( |
155 |
- -DKICAD_DOCS="${EPREFIX}/usr/share/doc/${P}" |
156 |
+ -DKICAD_DOCS="${EPREFIX}/usr/share/doc/${PF}" |
157 |
-DKICAD_HELP="${EPREFIX}/usr/share/doc/${PN}-doc-${PV}" |
158 |
-DBUILD_GITHUB_PLUGIN="$(usex github)" |
159 |
-DKICAD_SCRIPTING="$(usex python)" |
160 |
@@ -84,6 +98,7 @@ src_configure() { |
161 |
-DKICAD_USE_OCC="$(usex occ)" |
162 |
-DKICAD_USE_OCE="$(usex oce)" |
163 |
-DKICAD_INSTALL_DEMOS="$(usex examples)" |
164 |
+ -DCMAKE_SKIP_RPATH="ON" |
165 |
) |
166 |
use python && mycmakeargs+=( |
167 |
-DPYTHON_DEST="$(python_get_sitedir)" |