This commit is contained in:
Mario Fetka
2025-06-06 03:35:14 +02:00
parent b56141d74d
commit 0dba7be35f
91 changed files with 5377 additions and 809 deletions

View File

@@ -1,11 +0,0 @@
AUX libftdi-0.20-cmake-include.patch 687 BLAKE2B 8817db6e200adcb3d76da91565fe25f694445a46325a6435d6d0545d6741b0d15b199f96aabf01ca664eeb3355008acc6ec309f5fa87f975584935ecd74558f7 SHA512 b7b2d3a8cd84f3bbc86aa43bc9d090359375c6ea6b52a32107cd46751d386768b3d196c0bca7235453c596ef19c5ee4e1a39739db90e3e0c06adc62609e7fb90
AUX libftdi-0.20-cmake-version.patch 1010 BLAKE2B cd88bc50cebb22a5e982d8f7985014549bdae23e35fefb0d2f6cf14c4610d79ebfbbb11e94174b6c1ff260d83713c4c4db395c725bbe836142e0e80092324a3f SHA512 9ea6d07324c6cb89856f8a9411b0564fb344f2624162f5435b9cbaeddb97361d79dd9b71d0c64988106ec162cd5a93b43f2c5257f0f0207ce8151de37712cd91
AUX libftdi-1.5-cmake-cxx.patch 1448 BLAKE2B f43c592cc17481e21dc1b0fe4a4cf583c3b2f192197133443f90dc1f9bd134fe903598dc9d12f92a8376bcd58f4cb698b9bd34ff4c06cf2df180260d2456126c SHA512 9881153611aa75dcc53f739bd510898f55d9fc56a07cec41e09fed37768c462663160d8491f7eaaa5dd7bc8935d36f33379d3529cfe355a3391507415a9e7cae
AUX libftdi-1.5-cmake4.patch 2596 BLAKE2B 3bdcd9886451b0f0f14905109ec755d80bade06572c5c40ddc29115a6294c280f3ba13f9c7387100cde6d6cd1898e8f8d8fd891f2ffa2d91e04e44208f8d4a26 SHA512 7fa0ef24934e07a6f6e1cecb1e1246c2d96c42b97a7943a3ac532da041c1eb5d69bc2764613a6b0fd7baf9f91f8b82a9c23adde31c3d7f6663bca3c0222c2b07
AUX libftdi-1.5-py312.patch 1144 BLAKE2B cf2263322b71ac06ac23f94fff8b2b68763fda8eb9d59d5811ed02e178a8c866f0f045b9acaced3b8cb01924504f3e00fd5f10c16642e9e2089a18f56e2e2c6c SHA512 8f0bdf45028d586a3d5d28aac135e6ad04f4e28d44e5a16953db78253a37374c87bf085eb1969a716e906a22f0b6affa874f3bc8e39c1b4ffaf8a84cdd5f800a
AUX libftdi-1.5-swig-4.3.patch 4135 BLAKE2B 88da729f7ce3f02400f5ff1a7c9f94242625225b7e3193169725acf0f6acf8c3bcf29a85fa6dae9f632ac1cf05bcb6a7e9086256a9c687df3b1250d9b808f4a5 SHA512 6102992dfeca5c8ade821deff1d76d7ed579a1951287beede7cbd96cd09b39061b8742cdb7c073dd06af759d8fe476c66f9ba81c5b78f755658d02ae4014cf77
AUX libftdi-1.5-tests-no-cxx.patch 1017 BLAKE2B ff3e05ae2cc48a023c74142f986159f68b6a3e49ccf9684c94b4de2fd03c8d5c53e600810d1e8933e09ed7aa167fab15101344a6bdc8b9e00647f2c86801f694 SHA512 6d0fa3923f8f1e92b22538448368016db24d194b886c4702731eb5038b65c8a03773cfe0a02459cf040574845ab482fb676f01a97f26d5c48065fd9427a11eeb
DIST libftdi1-1.5.tar.bz2 116297 BLAKE2B 460ab93026e14a452e31fcc6930d305638fdc0ed06cb44fb9d50ad8f80199b17057d2f48a27b8295b43b956934289c872a2ef1ddb7f93fa93c6816511ef7607d SHA512 c525b2ab6aff9ef9254971ae7d57f3549a36a36875765c48f947d52532814a2a004de1232389d4fe824a8c8ab84277b08427308573476e1da9b7db83db802f6f
EBUILD libftdi-1.5-r4.ebuild 1917 BLAKE2B cf81642728b47ff66a177003e00eb1d4ff29dfec745df5bb977e43841cbc80da19a5c3231fb6242c4b947a25e3af3b51d6aa74997b8c8cfbd0a5728b06be3a03 SHA512 4cfdb32d72019f6c982f59d9c3a8bdc49ffc6b8ae762fa270409eb1096de1fe0f8ca6b89cd1e71ccf8010d5cd18462d7727e799da8e09678651e8d85145ae3eb
EBUILD libftdi-1.5-r7.ebuild 2049 BLAKE2B 5d046361cb7967ebc606d20e94ca1825c11737336be521aec35242f00faab0ce7af26eecf2e9c439b83d8d1c209828121f6eb5e489e766a719aee221000ec992 SHA512 f76fce65bb6b574bc93f19ec99a3f7e9a44815d57e38f7388491d3c137b3b21af4e64d597bfd5d2bd8795a00f4bdf7cb87852c412bd21642eb15629f55b2d99b
MISC metadata.xml 318 BLAKE2B c2c9ab83d57a082ed6608367f53f0f9420056c909d4ee50641da5b8f12b6a6ca996740fbdcadb0fa08460cb0cbef36dbedfaaf98acaea3eeeeee6afcf7724f54 SHA512 313b5c5dfcf5feb7dc8e41c1cb74939619451cb0747c1a281c9a0e763d26e0850a43e05d8fd2a836389bd75c2a4f153b80986e11be8171e9d93ca234f9df05f2

View File

@@ -1,22 +0,0 @@
From ccbd6cf1934056386772debba8583bc9b3721072 Mon Sep 17 00:00:00 2001
From: Uffe Jakobsen <uffe@uffe.org>
Date: Mon, 22 Oct 2012 12:03:22 +0200
Subject: [PATCH] Fix build on FreeBSD (cmake file typo)
---
examples/CMakeLists.txt | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/examples/CMakeLists.txt b/examples/CMakeLists.txt
index 6793d89..1263c62 100644
--- a/examples/CMakeLists.txt
+++ b/examples/CMakeLists.txt
@@ -2,7 +2,7 @@ option(EXAMPLES "Build example programs" ON)
if (EXAMPLES)
# Includes
- include( ${CMAKE_CURRENT_SOURCE_DIR}
+ include_directories( ${CMAKE_CURRENT_SOURCE_DIR}
${CMAKE_CURRENT_BINARY_DIR}
)

View File

@@ -1,38 +0,0 @@
From e18b700743217e8c505e97762e0f66a4f6a90425 Mon Sep 17 00:00:00 2001
From: Maciej Grela <maciej.grela@gmail.com>
Date: Wed, 20 Jun 2012 23:08:50 +0200
Subject: [PATCH] Fix libftdi.pc file generation when building with
-DDOCUMENTATION=OFF
---
CMakeLists.txt | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 4c43a48..07f8bb9 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -2,7 +2,9 @@
project(libftdi)
set(MAJOR_VERSION 0)
set(MINOR_VERSION 20)
+set(PACKAGE libftdi)
set(VERSION_STRING ${MAJOR_VERSION}.${MINOR_VERSION})
+set(VERSION ${VERSION_STRING})
SET(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}")
# CMake
@@ -116,12 +118,11 @@ add_custom_target(dist
option(DOCUMENTATION "Generate API documentation with Doxygen" ON)
+
find_package(Doxygen)
if(DOCUMENTATION AND DOXYGEN_FOUND)
# Set variables
- set(PACKAGE libftdi)
- set(VERSION ${VERSION_STRING})
set(top_srcdir ${CMAKE_SOURCE_DIR})
# Find doxy config

View File

@@ -1,46 +0,0 @@
https://bugs.gentoo.org/766818
From cdb28383402d248dbc6062f4391b038375c52385 Mon Sep 17 00:00:00 2001
From: Fabrice Fontaine <fontaine.fabrice@gmail.com>
Date: Fri, 17 Jul 2020 21:25:03 +0200
Subject: [PATCH] CMakeLists.txt: fix paths when FTDIPP is set
Use the same project name (i.e. libftdi1 and not libftdipp1) when FTDIPP
is enabled as suggested by Aurelien Jarno in
http://developer.intra2net.com/mailarchive/html/libftdi/2020/msg00044.html
Without this change, the libftdi1.pc config file defines the include
path as /usr/local/include/libftdipp1 while the ftdi.h file is actually
installed in /usr/local/include/libftdi1
This is an issue for example for libsigrok which will fail on:
In file included from src/hardware/asix-sigma/protocol.c:27:
src/hardware/asix-sigma/protocol.h:28:10: fatal error: ftdi.h: No such file or directory
28 | #include <ftdi.h>
| ^~~~~~~~
Fixes:
- http://autobuild.buildroot.org/results/1427f44e36752c337791597fab47a1889552a2fe
Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
---
CMakeLists.txt | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 5aecafc..3b0b87c 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -136,7 +136,7 @@ endif ()
add_subdirectory(src)
if ( FTDIPP )
- project(libftdipp1 C CXX)
+ project(libftdi1 C CXX)
add_subdirectory(ftdipp)
endif ()
if ( PYTHON_BINDINGS )
--
1.7.1

View File

@@ -1,87 +0,0 @@
From 503c8789db7cb99e4e53cae3c220f80aef07c785 Mon Sep 17 00:00:00 2001
From: Yegor Yefremov <yegorslists@googlemail.com>
Date: Wed, 2 Apr 2025 10:12:34 +0200
Subject: [PATCH] CMakeLists.txt: bump CMake version to 3.15
Older CMake versions are treated as deprecated.
merged with cherry-picks of preceding changes:
3861e7dc9e83f2f6ff4e1579cf3bbf63a6827105
de9f01ece34d2fe6e842e0250a38f4b16eda2429
3f314ed78111473b7cbf1b9d1854c9f6322eea7a
diff -u a/CMakeLists.txt b/CMakeLists.txt
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1,3 +1,5 @@
+cmake_minimum_required(VERSION 3.15 FATAL_ERROR)
+
# Project
project(libftdi1 C)
set(MAJOR_VERSION 1)
@@ -12,7 +14,6 @@
set(CMAKE_BUILD_TYPE RelWithDebInfo)
endif("${CMAKE_BUILD_TYPE}" STREQUAL "")
set(CMAKE_COLOR_MAKEFILE ON)
-cmake_minimum_required(VERSION 2.6 FATAL_ERROR)
add_definitions(-Wall)
@@ -211,30 +212,25 @@
set ( LIBFTDI_USE_FILE ${CMAKE_INSTALL_PREFIX}/${LIBFTDI_CMAKE_CONFIG_DIR}/UseLibFTDI1.cmake )
-if(CMAKE_VERSION VERSION_LESS 2.8.8)
- configure_file ( cmake/LibFTDI1Config.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/LibFTDI1Config.cmake @ONLY )
- configure_file ( cmake/LibFTDI1ConfigVersion.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/LibFTDI1ConfigVersion.cmake @ONLY )
-else ()
- include(CMakePackageConfigHelpers)
-
- configure_package_config_file (
- cmake/LibFTDI1Config.cmake.in
- ${CMAKE_CURRENT_BINARY_DIR}/LibFTDI1Config.cmake
- INSTALL_DESTINATION ${LIBFTDI_CMAKE_CONFIG_DIR}
- PATH_VARS
- LIBFTDI_USE_FILE
- LIBFTDI_ROOT_DIR
- LIBFTDI_INCLUDE_DIR
- LIBFTDI_INCLUDE_DIRS
- LIBFTDI_LIBRARY_DIRS
- NO_CHECK_REQUIRED_COMPONENTS_MACRO
- )
- write_basic_package_version_file (
- LibFTDI1ConfigVersion.cmake
- VERSION ${LIBFTDI_VERSION_STRING}
- COMPATIBILITY AnyNewerVersion
- )
-endif ()
+include(CMakePackageConfigHelpers)
+
+configure_package_config_file (
+ cmake/LibFTDI1Config.cmake.in
+ ${CMAKE_CURRENT_BINARY_DIR}/LibFTDI1Config.cmake
+ INSTALL_DESTINATION ${LIBFTDI_CMAKE_CONFIG_DIR}
+ PATH_VARS
+ LIBFTDI_USE_FILE
+ LIBFTDI_ROOT_DIR
+ LIBFTDI_INCLUDE_DIR
+ LIBFTDI_INCLUDE_DIRS
+ LIBFTDI_LIBRARY_DIRS
+ NO_CHECK_REQUIRED_COMPONENTS_MACRO
+)
+write_basic_package_version_file (
+ LibFTDI1ConfigVersion.cmake
+ VERSION ${LIBFTDI_VERSION_STRING}
+ COMPATIBILITY AnyNewerVersion
+)
install ( FILES
--- a/examples/cmake_example/CMakeLists.txt
+++ b/examples/cmake_example/CMakeLists.txt
@@ -1,4 +1,4 @@
-cmake_minimum_required ( VERSION 2.8 )
+cmake_minimum_required(VERSION 3.15 FATAL_ERROR)
project ( example C )

View File

@@ -1,25 +0,0 @@
https://bugs.gentoo.org/934224
http://developer.intra2net.com/git/?p=libftdi;a=commit;h=abd19b721f7e9b4d514ed319ece173ebc7b1ea72
From abd19b721f7e9b4d514ed319ece173ebc7b1ea72 Mon Sep 17 00:00:00 2001
From: =?utf8?q?Dan=20Hor=C3=A1k?= <dan@danny.cz>
Date: Mon, 19 Dec 2022 17:40:43 +0100
Subject: [PATCH] python: move from distutils to sysconfig
The distutils module was deprecated in Python 3.10, and will be removed
in 3.12 [1], thus switch to the sysconfig module instead.
[1] https://peps.python.org/pep-0632/
--- a/python/CMakeLists.txt
+++ b/python/CMakeLists.txt
@@ -42,7 +42,7 @@ endif ()
set_target_properties ( ${SWIG_MODULE_ftdi1_REAL_NAME} PROPERTIES NO_SONAME ON )
-execute_process ( COMMAND ${PYTHON_EXECUTABLE} -c "from distutils import sysconfig; print( sysconfig.get_python_lib( plat_specific=True, prefix='${CMAKE_INSTALL_PREFIX}' ) )"
+execute_process ( COMMAND ${PYTHON_EXECUTABLE} -c "import sysconfig; print( sysconfig.get_path( 'platlib', vars={'platbase': '${CMAKE_INSTALL_PREFIX}'} ) )"
OUTPUT_VARIABLE _ABS_PYTHON_MODULE_PATH
OUTPUT_STRIP_TRAILING_WHITESPACE )
--
1.7.1

View File

@@ -1,82 +0,0 @@
https://bugs.gentoo.org/953348
http://developer.intra2net.com/git/?p=libftdi;a=commit;h=ff7707e3ffadc09af420b26370b9e097a5b2bc8b
From ff7707e3ffadc09af420b26370b9e097a5b2bc8b Mon Sep 17 00:00:00 2001
From: William S Fulton <wsf@fultondesigns.co.uk>
Date: Fri, 18 Oct 2024 09:38:20 +0200
Subject: [PATCH] python: update for SWIG 4.3
SWIG 4.3 comes with an API change to the SWIG_Python_AppendOutput()
function, so switch to the recommended SWIG_AppendOutput() instead.
Because the new function is a macro in fact also switch to the {..}
delimiters as the code needs to be preprocessed. The change is
compatible with the previous SWIG releases 4.2 and 4.1 at least.
Fixes: https://bugzilla.redhat.com/show_bug.cgi?id=2319133
Related: https://github.com/swig/swig/pull/2907
---
python/ftdi1.i | 18 +++++++++---------
1 files changed, 9 insertions(+), 9 deletions(-)
diff --git a/python/ftdi1.i b/python/ftdi1.i
index 8b179f9..fac4d16 100644
--- a/python/ftdi1.i
+++ b/python/ftdi1.i
@@ -52,7 +52,7 @@ char * str2charp_size(PyObject* pyObj, int * size)
%enddef
%feature("autodoc", ftdi_usb_find_all_docstring) ftdi_usb_find_all;
%typemap(in,numinputs=0) SWIGTYPE** OUTPUT ($*ltype temp) %{ $1 = &temp; %}
-%typemap(argout) SWIGTYPE** OUTPUT %{ $result = SWIG_Python_AppendOutput($result, SWIG_NewPointerObj((void*)*$1,$*descriptor,0)); %}
+%typemap(argout,noblock=1) SWIGTYPE** OUTPUT { $result = SWIG_AppendOutput($result, SWIG_NewPointerObj((void*)*$1,$*descriptor,0)); }
%apply SWIGTYPE** OUTPUT { struct ftdi_device_list **devlist };
int ftdi_usb_find_all(struct ftdi_context *ftdi, struct ftdi_device_list **devlist,
int vendor, int product);
@@ -92,12 +92,12 @@ char * str2charp_size(PyObject* pyObj, int * size)
%enddef
%feature("autodoc", ftdi_read_data_docstring) ftdi_read_data;
%typemap(in,numinputs=1) (unsigned char *buf, int size) %{ $2 = PyInt_AsLong($input);$1 = (unsigned char*)malloc($2*sizeof(char)); %}
-%typemap(argout) (unsigned char *buf, int size) %{
+%typemap(argout,noblock=1) (unsigned char *buf, int size) {
if(result<0)
$2=0;
- $result = SWIG_Python_AppendOutput($result, charp2str((char*)$1, $2));
+ $result = SWIG_AppendOutput($result, charp2str((char*)$1, $2));
free($1);
-%}
+}
int ftdi_read_data(struct ftdi_context *ftdi, unsigned char *buf, int size);
%clear (unsigned char *buf, int size);
@@ -119,12 +119,12 @@ char * str2charp_size(PyObject* pyObj, int * size)
%enddef
%feature("autodoc", ftdi_read_pins_docstring) ftdi_read_pins;
%typemap(in,numinputs=0) unsigned char *pins ($*ltype temp) %{ $1 = &temp; %}
-%typemap(argout) (unsigned char *pins) %{ $result = SWIG_Python_AppendOutput($result, charp2str((char*)$1, 1)); %}
+%typemap(argout,noblock=1) (unsigned char *pins) { $result = SWIG_AppendOutput($result, charp2str((char*)$1, 1)); }
int ftdi_read_pins(struct ftdi_context *ftdi, unsigned char *pins);
%clear unsigned char *pins;
%typemap(in,numinputs=0) unsigned char *latency ($*ltype temp) %{ $1 = &temp; %}
-%typemap(argout) (unsigned char *latency) %{ $result = SWIG_Python_AppendOutput($result, charp2str((char*)$1, 1)); %}
+%typemap(argout,noblock=1) (unsigned char *latency) { $result = SWIG_AppendOutput($result, charp2str((char*)$1, 1)); }
int ftdi_get_latency_timer(struct ftdi_context *ftdi, unsigned char *latency);
%clear unsigned char *latency;
@@ -137,12 +137,12 @@ char * str2charp_size(PyObject* pyObj, int * size)
%clear int* value;
%typemap(in,numinputs=1) (unsigned char *buf, int size) %{ $2 = PyInt_AsLong($input);$1 = (unsigned char*)malloc($2*sizeof(char)); %}
-%typemap(argout) (unsigned char *buf, int size) %{
+%typemap(argout,noblock=1) (unsigned char *buf, int size) {
if(result<0)
$2=0;
- $result = SWIG_Python_AppendOutput($result, charp2str((char*)$1, $2));
+ $result = SWIG_AppendOutput($result, charp2str((char*)$1, $2));
free($1);
-%}
+}
int ftdi_get_eeprom_buf(struct ftdi_context *ftdi, unsigned char * buf, int size);
%clear (unsigned char *buf, int size);
--
1.7.1

View File

@@ -1,35 +0,0 @@
Fixes failure to build tests with USE="-cxx" (default).
http://developer.intra2net.com/git/?p=libftdi;a=patch;h=11a50ae5b80b3e03694a19e84513345d0794e563;hp=6dd18122a81e6030dd239391df6ffde8cb8c59c7
From 11a50ae5b80b3e03694a19e84513345d0794e563 Mon Sep 17 00:00:00 2001
From: Thomas Jarosch <thomas.jarosch@intra2net.com>
Date: Mon, 24 Aug 2020 19:27:22 +0200
Subject: [PATCH 1/1] Fix building unit tests without FTDIPP
Needed to run the baudrate unit tests.
Probably another fallout from:
****************************
commit 0209a3633dc877a577af07d883eb5059e22f6a91
cmake: do not check for g++ when FTDIPP is disabled
****************************
---
CMakeLists.txt | 1 +
1 files changed, 1 insertions(+), 0 deletions(-)
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 3b0b87c..58f664a 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -150,6 +150,7 @@ if ( EXAMPLES )
endif ()
add_subdirectory(packages)
if ( BUILD_TESTS )
+ project(libftdi1 C CXX)
add_subdirectory(test)
endif ()
--
1.7.1

View File

@@ -1,90 +0,0 @@
# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
PYTHON_COMPAT=( python3_{9..13} )
inherit cmake python-single-r1
MY_P="${PN}1-${PV}"
if [[ ${PV} == 9999* ]] ; then
inherit git-r3
EGIT_REPO_URI="git://developer.intra2net.com/${PN}"
else
SRC_URI="https://www.intra2net.com/en/developer/${PN}/download/${MY_P}.tar.bz2"
S="${WORKDIR}/${MY_P}"
KEYWORDS="amd64 arm arm64 ~loong ~mips ppc ppc64 ~riscv sparc x86"
fi
DESCRIPTION="Userspace access to FTDI USB interface chips"
HOMEPAGE="https://www.intra2net.com/en/developer/libftdi/"
LICENSE="LGPL-2"
SLOT="1"
IUSE="cxx doc examples python test tools"
RESTRICT="!test? ( test )"
REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )"
BDEPEND="
doc? ( app-doc/doxygen )
python? ( dev-lang/swig )"
RDEPEND="
virtual/libusb:1
cxx? ( dev-libs/boost )
python? ( ${PYTHON_DEPS} )
tools? (
!<dev-embedded/ftdi_eeprom-1.0
dev-libs/confuse:=
)"
DEPEND="${RDEPEND}
test? ( dev-libs/boost )
"
PATCHES=(
"${FILESDIR}"/${P}-tests-no-cxx.patch
"${FILESDIR}"/${P}-cmake-cxx.patch
)
pkg_setup() {
use python && python-single-r1_pkg_setup
}
src_configure() {
local mycmakeargs=(
-DFTDIPP=$(usex cxx)
-DDOCUMENTATION=$(usex doc)
-DEXAMPLES=$(usex examples)
-DPYTHON_BINDINGS=$(usex python)
-DBUILD_TESTS=$(usex test)
-DFTDI_EEPROM=$(usex tools)
-DCMAKE_SKIP_BUILD_RPATH=ON
-DSTATICLIBS=OFF
)
cmake_src_configure
}
src_test() {
cd "${BUILD_DIR}/test" || die
LD_LIBRARY_PATH="${BUILD_DIR}/src" ./test_libftdi1 -l all || die
}
src_install() {
cmake_src_install
use python && python_optimize
dodoc AUTHORS ChangeLog README TODO
if use doc ; then
# Clean up crap man pages. #356369
rm -vf "${BUILD_DIR}"/doc/man/man3/_* || die
doman "${BUILD_DIR}"/doc/man/man3/*
dodoc -r "${BUILD_DIR}"/doc/html
fi
if use examples ; then
docinto examples
dodoc examples/*.c
fi
}

View File

@@ -1,92 +0,0 @@
# Copyright 1999-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
MY_P="${PN}1-${PV}"
PYTHON_COMPAT=( python3_{10..13} )
inherit cmake python-single-r1
if [[ ${PV} == 9999* ]] ; then
inherit git-r3
EGIT_REPO_URI="git://developer.intra2net.com/${PN}"
else
SRC_URI="https://www.intra2net.com/en/developer/${PN}/download/${MY_P}.tar.bz2"
S="${WORKDIR}/${MY_P}"
KEYWORDS="amd64 arm arm64 ~loong ~mips ppc ppc64 ~riscv sparc x86"
fi
DESCRIPTION="Userspace access to FTDI USB interface chips"
HOMEPAGE="https://www.intra2net.com/en/developer/libftdi/"
LICENSE="LGPL-2"
SLOT="1"
IUSE="cxx doc examples python test tools"
REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )"
RESTRICT="!test? ( test )"
RDEPEND="
virtual/libusb:1
cxx? ( dev-libs/boost )
doc? ( !dev-embedded/libftdi:0[doc] )
python? ( ${PYTHON_DEPS} )
tools? ( dev-libs/confuse:= )
"
DEPEND="${RDEPEND}
test? ( dev-libs/boost )
"
BDEPEND="
doc? ( app-text/doxygen )
python? ( >=dev-lang/swig-4.2.0 )
"
PATCHES=(
"${FILESDIR}"/${P}-tests-no-cxx.patch
"${FILESDIR}"/${P}-cmake-cxx.patch
"${FILESDIR}"/${P}-py312.patch
"${FILESDIR}"/${P}-cmake4.patch
"${FILESDIR}"/${P}-swig-4.3.patch
)
pkg_setup() {
use python && python-single-r1_pkg_setup
}
src_configure() {
local mycmakeargs=(
-DFTDIPP=$(usex cxx)
-DDOCUMENTATION=$(usex doc)
-DEXAMPLES=$(usex examples)
-DPYTHON_BINDINGS=$(usex python)
-DBUILD_TESTS=$(usex test)
-DFTDI_EEPROM=$(usex tools)
-DCMAKE_SKIP_BUILD_RPATH=ON
-DSTATICLIBS=OFF
)
cmake_src_configure
}
src_test() {
cd "${BUILD_DIR}/test" || die
LD_LIBRARY_PATH="${BUILD_DIR}/src" ./test_libftdi1 -l all || die
}
src_install() {
cmake_src_install
use python && python_optimize
dodoc AUTHORS ChangeLog README TODO
if use doc ; then
# Clean up man pages with too generic names. #356369
rm -vf "${BUILD_DIR}"/doc/man/man3/_* || die
doman "${BUILD_DIR}"/doc/man/man3/*
dodoc -r "${BUILD_DIR}"/doc/html
fi
if use examples ; then
docinto examples
dodoc examples/*.c
fi
}

View File

@@ -1,11 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="project">
<email>embedded@gentoo.org</email>
<name>Embedded Gentoo</name>
</maintainer>
<use>
<flag name="tools">build ftdi_eeprom helper tool</flag>
</use>
</pkgmetadata>

View File

@@ -1,3 +1,3 @@
DIST platformio-6.1.16.gh.tar.gz 301208 BLAKE2B c659ee48f509001b18b03bd0846ad2415f78a366aa96fbee6e5aa8ece8ff0c9f6ec4b214957978e4b5ee947c5bcbc702634cc0de7f4d1e712de26117edfda3e6 SHA512 02db74d4cf5aaa08fd7fcdf39649d99583831c2ecfdd941662b8bddbe583156828bd2984a3ad07d438924b875a268a6c1c61f2d6b8fd47e277447f3d5a0d3474
EBUILD platformio-6.1.16.ebuild 3296 BLAKE2B 3c87726718fac5a0b3727d9c47977e2666bc243c00def8f72917701740b5fb72aeff75a5eb199ef5f062d2fd437cc3fae6b09e6f1fa13817dbfe5325fcf6d76f SHA512 a7b20744aeba3a40a24a83216a673c23a903fdee3313c29807d0cede535cf001dabc8fe128ebcf376685a2926fe580f7125566b6351aea493bffd19d169d973b
DIST platformio-6.1.18.gh.tar.gz 302134 BLAKE2B 53674e73bba37ad3559395954ce07b79a072221b7c31ec08af17cc276a2625905f84ca808b9b7f0e9f8cbc0c6b1e3297bc9a4e2ef9e6ac44a3d88bb8e7d90f46 SHA512 920db6f85951801f77a313d32a80cbe62b03509c057c74daa1167009f2b1d218e9cadaadbe9b3b8931dcbf03aa047c617757856e6d9a8db9db3379c1ae764872
EBUILD platformio-6.1.18.ebuild 3296 BLAKE2B 3c87726718fac5a0b3727d9c47977e2666bc243c00def8f72917701740b5fb72aeff75a5eb199ef5f062d2fd437cc3fae6b09e6f1fa13817dbfe5325fcf6d76f SHA512 a7b20744aeba3a40a24a83216a673c23a903fdee3313c29807d0cede535cf001dabc8fe128ebcf376685a2926fe580f7125566b6351aea493bffd19d169d973b
MISC metadata.xml 340 BLAKE2B 992fa2488c72523eb663bd6bb85608c3ad39e57781bbf08801ac3d34551fdcebd5b80d50bb4353ceefd5bb2228a56101f8ad2cd155d39cd4ff071d8f664a9f60 SHA512 1a596e7fbfb70e5814dc811ff96f3597f744d3e049ed8cd047238557fbeb1c370f22656990d6e30f42cf9193b899686e85c0edd3d1115af93eb4b7866066dc8c

View File

@@ -1,8 +1,8 @@
DIST martINI-0.4.tar.gz 15721 BLAKE2B 00570ae2cdbfdcc13b85d44deff333a43d13db536b0f3fda5c0e6889d6e9aee099a9fc76238ba1276bf89be7fa3b8ad7029e6fae5b51e864ce9ecf2a98f120a5 SHA512 6a8f972f6235f9e84222b1dd8f13185b25dcde64fd72f72410bbbcf2252bdd9749e627524554966265684d1bef2ac9bc4d22b04f9ef56d07e330d37e43a14862
DIST martINI-0.6.tar.gz 14919 BLAKE2B abc971feb455a0e472aa295fe61dc9972a9b5d3174a6898fa6e995a3151867985366ba84902d6f9b023c7c4c7b0c9a8957c6ab277ad104734ad463fc1dfaec5f SHA512 b21f680a4190b324e723db76a29e75d59d064af31aa96f047fd5c9bc0119be3d7f989a221f33c0e679858065772eac11a849be08aa2d1bc1c147cab0ca9f4fee
DIST martINI-0.7.tar.gz 15596 BLAKE2B 5824f3b4807c47715ad3c05f3f3fce5bf811a0781e47d59cfba421c53126425122319ba98c3a59a732f25d6ecd0b00c4687056f63136682c618dc499c7c28f21 SHA512 9b4b4afd4b266e505066d76e1adfe677f796a584f8f06f2c2ed95fb8931dba184a74d578f785a042bc625e1f56d5105105b726ead64ffc29cb9493ddb8fef54b
EBUILD martINI-0.4.ebuild 513 BLAKE2B e2e86dcb64369fcd8584044f9476f2d7160efe99310d4ddee1731fbe99487282c65534219b8bbc3141414850b33668867698ef2fb9118d3ad2d6ab29d9d767e9 SHA512 704ec13251960557fa09a4d05163b349c295a6bba39777de028084f425be933c41dfe3b4541a5e36bd9cb7b0745c7e03d6173e27765d423f2257a6ae9a1c2bd9
EBUILD martINI-0.6.ebuild 513 BLAKE2B e2e86dcb64369fcd8584044f9476f2d7160efe99310d4ddee1731fbe99487282c65534219b8bbc3141414850b33668867698ef2fb9118d3ad2d6ab29d9d767e9 SHA512 704ec13251960557fa09a4d05163b349c295a6bba39777de028084f425be933c41dfe3b4541a5e36bd9cb7b0745c7e03d6173e27765d423f2257a6ae9a1c2bd9
EBUILD martINI-0.7.ebuild 513 BLAKE2B c68327417aae77e3e81d6f65bcf75a44123bdda1b8405b102c58b4daefc54646838af495b0aae74b7fa2318776bfa5a7c1ebb9333584d792acada10c21588a1c SHA512 c7720171e7ab099aac39cf3ff626e0e10dde543f92079ae7310d9e8b4162f4cbb97d51d7e16e91eb0e4308e734660c379bde36357d2116cb6ef7cc1936cb281b
EBUILD martINI-0.4.ebuild 546 BLAKE2B bb1fad0dc4fb095aeeb10937940b178315986adfa97f252b775fb83a3bfdb45bfd8658836d6606a1039b3ed62b9a77b8a3ebfb0eb5f39aba3b9926e5d2357088 SHA512 2eafc63f1add189677dc6e521658d495dc157df1ec3b2578fd85419782f471847c6247e4c734e22c81a4098c3e33a2b7985fdbf3985cce8dc7942fc15a0f880b
EBUILD martINI-0.6.ebuild 546 BLAKE2B bb1fad0dc4fb095aeeb10937940b178315986adfa97f252b775fb83a3bfdb45bfd8658836d6606a1039b3ed62b9a77b8a3ebfb0eb5f39aba3b9926e5d2357088 SHA512 2eafc63f1add189677dc6e521658d495dc157df1ec3b2578fd85419782f471847c6247e4c734e22c81a4098c3e33a2b7985fdbf3985cce8dc7942fc15a0f880b
EBUILD martINI-0.7.ebuild 546 BLAKE2B 03b958a6259279e3a7fd3f36f44222f86ace56eea7990c669a8d90ae92957d2181814caec041eb42788c4f7aab8a885742c2b1a3f895a3abf33d930e900e3508 SHA512 51d565dbdb4b156e4e400c80982b4bccac71eaf6776762a32512affccef78cda4b43b89ba9433f94c57d8d22e5dc15e2c2d8e2b07c902d84aba1585e22711152
MISC ChangeLog 489 BLAKE2B 73ea0a3ace103af9d8cb7b311dfa7f959b3dbc785b0602257ae0d3c24e547c191be8ef78ca081d8ea32f4b4d7aff750f04252a1751520d8da62e7575d3a42ff8 SHA512 cc982bba8a6dfec9cf278842f11175c9262087bd126a44735943dde6c9f88e93d0182ba55c390e3d568cdcde7c41c488848c6d03783e313d76bc914ece366c4d
MISC metadata.xml 408 BLAKE2B 66a3e2838d5c5f95c7463733cd13b1230ef3ca005ec0c5dac797561be30f950da98dfa41eeb4d43cf97500c9a2e0d04c57b0b084d60107072a988dd7c4d16ded SHA512 9cac3e4a07c425e87274de776e03d243e462341168235cd3991ef4706aa1a902cf6591ae8e965b9c4ed370fc2ebef3ca805a9c761d05c4b994ae8667198b267c

View File

@@ -2,6 +2,8 @@
# Distributed under the terms of the GNU General Public License v2
EAPI=8
DISTUTILS_USE_PEP517=setuptools
PYTHON_COMPAT=( python2_7 python3_{4..12} )
inherit distutils-r1

View File

@@ -2,6 +2,8 @@
# Distributed under the terms of the GNU General Public License v2
EAPI=8
DISTUTILS_USE_PEP517=setuptools
PYTHON_COMPAT=( python2_7 python3_{4..12} )
inherit distutils-r1

View File

@@ -2,6 +2,8 @@
# Distributed under the terms of the GNU General Public License v2
EAPI=8
DISTUTILS_USE_PEP517=setuptools
PYTHON_COMPAT=( python2_7 python3_{4..13} )
inherit distutils-r1

View File

@@ -1,2 +1,2 @@
DIST pypubsub-4.0.3.tar.gz 174033 BLAKE2B 65fcd960ce2f0548f152546faa7a98055a823414c453b475d6ade339f55e72a60dcb8d627f6272cc844d181f772b76dba4e53b2ecc521bb05420abc09f6c30d2 SHA512 cf9aca44e91a5d0e5ecf6739deabf2980f9464395c89e3c5335c5248e47c570701e0534bb660c5005325a994d9f8e7f261f36bc8bea74cfc7eb760b73c572652
EBUILD pypubsub-4.0.3.ebuild 575 BLAKE2B a9de477cee6629ffb79c333f575552210c009008957c5083ccb7faee83effa4430a3b7bbeb0b425af4f740bc1891327c05536c56bea3ee5458e97a663627e515 SHA512 0adffda1b042acff76cec4986d67e9a1a962bbcda53c54d9f6c7a69e6b88304001c6d43bab05a9b62dead3c3ff13c6ae0e2c464176f126d509372d0b80d9205e
EBUILD pypubsub-4.0.3.ebuild 607 BLAKE2B aa14c51fa1719591640e5324eda2a6aecb6a2854b63ad044595194e26d15e9fde873d91d858331cf1921effb58fc876eb199d32cb84f88027ce8da162d6f6328 SHA512 d17d8808c25a25bc6bd56701978805b28da039fb2c5ff8c448f4fa6bfec1505f6f79a7c195dd727dfc589d9f15c9bd4e4f1ae6a70cc9a80d0af332cbd2631814

View File

@@ -3,6 +3,7 @@
EAPI=8
DISTUTILS_USE_PEP517=setuptools
PYTHON_COMPAT=( python3_{6..13} )
inherit distutils-r1

View File

@@ -1,3 +1,3 @@
AUX 0001-Import-abstract-base-classes-from-collections.abc.patch 1429 BLAKE2B 2f08c58ac13e5d921639bf1db40fb83987356edcd84c2455cf872f752357e531d217f5215a132f53c8afbf9b0793205f4295ef2ff4bdb2d7673c0ad7809bd61c SHA512 f9ab50f63a6ac75509311c5f142ee075a0a54ff8fb0045973c30d545333e877818bae9f8884ce4aa1d6f8bc5212ef3b2baf04c115308a2f6508c2ac182eadc0a
DIST twodict-1.2.tar.gz 7016 BLAKE2B dd396dd1a712474b6d07614190d69aee2cf47c46829d9bb9dec3e56e067a4f8289cd94aa9d2a7d9144a7b472fd13e4b1be8d229e3aff036bf65175be2b155027 SHA512 82fc49568d95fb742bb014789937e2c4fc54a1f680fd9743643bbfe50f580a62dc20e363974a3359586e6a47b72015e059f435f3b6470adcb567249a50cac434
EBUILD twodict-1.2.ebuild 547 BLAKE2B e528ab5f8fb05b0fb1a94ee8a9fab77dfcbdfe422f1d1ed9e33846ab085e814d46aaae598e550d934762090263a52dad1ac54e6d405a12cbc54e1a617d8e71a3 SHA512 46e39c83a2cbb982c57dcb54b9682dc0956aaa8c817b01acc245f367d1f25586eb720295a19f1422bb988bb13ff862fa75cb688c5ee8b91c0164ea0b2ea5bef2
EBUILD twodict-1.2.ebuild 579 BLAKE2B fc534a98a05e8f4d5ffec3f7b6dd8ddf261c3cc864f02e47d5edd7a1ddad3fb99fe2244aa766651fb89b5c3becff7df943a980846d6a36c2fc66a7f971f8776a SHA512 470738853993fbafee6a96c6ec421c67cd44c63003721ec6dc70df3f1a4a73b54d9c99c77a92ee09c04175d44165c9db04a95137339e777834a059bbbf98541f

View File

@@ -3,6 +3,7 @@
EAPI=8
DISTUTILS_USE_PEP517=setuptools
PYTHON_COMPAT=( python2_7 python3_{4..13} )
PATCHES=(

View File

@@ -1,2 +1,2 @@
DIST wget-3.2.zip 10857 BLAKE2B d03d3545347031d90e9e954dee608eb1b255b54d5757315bbfe60c387fbde8db8a811be4ffcfb5577b364c03dd97964ce7db729c052493ccd85c434e528a4298 SHA512 173b444acdaba2d0e22e80557608f3d96f5b7fd62ca3e05e0f37c359d95e03875c9a5448db6e0fc4e3751ef11a746ef03aa1781d6d671372fc497e2af5887a2d
EBUILD wget-3.2-r1.ebuild 425 BLAKE2B 589de709bd45c3439e89e627e6cca258230f190b7d1f093626a6f5b0f12066d323bfceafb0f1aba3b9ddd35b697b63828c26def9babf2ff763e9b1b1c9671d9b SHA512 a73b9e7504ea5b88bb40c86a6bb53a5209cafbefe73125ec7d72c0a2ed33790beafe59d3a193b358ff998666aad33f8a3931ce30a3dc78c5c7f49f3d55d0b477
EBUILD wget-3.2-r1.ebuild 458 BLAKE2B 8060eec1c617c91171b19dd3a07df6c4d2fd152c1f81d48e1e28d8da7ce017362c2ac03c35d228545f26107b4bc1db5263203a8a26dfde8496ffa57940e3b16c SHA512 3f0a8d08acab8512b6d9316534ffb5614df35e8ac85b2f83d601e08dcd42f297ebe2d3128634e3d650bb50d8dd67d89aa728952f6abbf05d77bf8157847891c1

View File

@@ -3,6 +3,8 @@
# $Id$
EAPI=8
DISTUTILS_USE_PEP517=setuptools
PYTHON_COMPAT=( python3_{7..13} )
inherit distutils-r1

View File

@@ -0,0 +1,4 @@
DIST qtconnectivity-5.15.17-gentoo-kde-1.tar.xz 3784 BLAKE2B d34339bdc677b8d2390014cee37b213efefb51d053c5c727945240660d10532bb847e1b1cda0a6f542271a7844f78b8ef9b0c6bee4b8c4d1f9a738276310c073 SHA512 6aa31049a283bd47708b28358b19b8f881cf5ec1f6a696be0f53a1710e0f5bc814d0b2199130bef8efcf00754a6aabf166da73d78aa60b97254ebdd2d287a43c
DIST qtconnectivity-everywhere-opensource-src-5.15.17.tar.xz 2822676 BLAKE2B 74525157ef1657d9400dcefc75bfa5b25b5ef1afac1cec89d4eae770f95488ce4036abb5c1b6851061e53f9d60dbb4e859e5f1d0085bdd1295815be6460967e1 SHA512 6f974d7a4fa91037df42f017bc68c6a4ab97824e18e18a252fed906ce404d6f0925260ba06e6bf4831c48a02de7c3c00efce4638111700adbd3840151f087e19
EBUILD qtbluetooth-5.15.17.ebuild 692 BLAKE2B 86b2c4c3bd8873f259b7bdac7b30cc1c255604f6127d4a7bfc6f3847fd3064d409cb867e2951187edf15c48716a851747da3a4a5e48628a2dbb27d7aafd673a0 SHA512 c9a1a869996141743c017daae0cb2f2fd095b6f16ac1f9436ece7e22fe2f5720b3bef02bdaa6fd62a3b1c4818db9366c0874586bafe085391840a11d45a583f8
MISC metadata.xml 562 BLAKE2B 89a71be78fc40c86d01afd963f8a8519410086f36b572707e8029ea58e900d7e9563eb1b94fec26c2e078395bfa9ef20149fd8c0b2a5d6c3699198890215ebe7 SHA512 85467596f68320b2cd8440f9587f88992d36915b906a5b9139b29e07a9db9ca31853ae7c379bf90e9178e407ab3e526187ed761cd8cfa155658491ef68bbcf30

View File

@@ -0,0 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="project">
<email>qt@gentoo.org</email>
<name>Gentoo Qt Project</name>
</maintainer>
<use>
<flag name="qml">Build QML/QtQuick bindings and imports</flag>
</use>
<upstream>
<bugs-to>https://bugreports.qt.io/</bugs-to>
<doc>https://doc.qt.io/</doc>
</upstream>
<slots>
<subslots>
Must only be used by packages that are known to use private parts of the Qt API.
</subslots>
</slots>
</pkgmetadata>

View File

@@ -0,0 +1,34 @@
# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
if [[ ${PV} != *9999* ]]; then
QT5_KDEPATCHSET_REV=1
KEYWORDS="amd64 arm arm64 ~loong ~ppc64 ~riscv x86"
fi
QT5_MODULE="qtconnectivity"
inherit qt5-build
DESCRIPTION="Bluetooth support library for the Qt5 framework"
IUSE="qml"
DEPEND="
=dev-qt/qtconcurrent-${QT5_PV}*
=dev-qt/qtcore-${QT5_PV}*:5=
=dev-qt/qtdbus-${QT5_PV}*
=dev-qt/qtnetwork-${QT5_PV}*
>=net-wireless/bluez-5:=
qml? ( =dev-qt/qtdeclarative-${QT5_PV}* )
"
RDEPEND="${DEPEND}"
src_prepare() {
sed -i -e 's/nfc//' src/src.pro || die
qt_use_disable_mod qml quick src/src.pro
qt5-build_src_prepare
}

View File

@@ -0,0 +1,3 @@
DIST qtgamepad-everywhere-opensource-src-5.15.17.tar.xz 382748 BLAKE2B 286eb370b7be4f77627de9fc98d7ca19a058651c511fa1a4da71b8af189f20b3bea52d4d177c103cba8fc1e1a0602f38eb3cfa86d8340b3660db44b1e1fe9acf SHA512 cdf9d4ffb965e70e1c2b5bf8cc9a59997dffd49c66d86bf15b957fa45dffe2c7e82ae0d44b231a14cd17ed6a515dbc5e2cf14ace38b4d1724d76923fb4a734fa
EBUILD qtgamepad-5.15.17.ebuild 723 BLAKE2B 6e4dec6030921df33431b2638096959cc9b6c5b51ec98a34fb135274408fe26f6d4c553169394afd977f5e99ddce0bd6792af52eab130836f755bf7a76f8a133 SHA512 595c1f674d58c5473d60d68a13e9777d12d920ed96a5d5b4264a6929c83cad01c9c57dbd44641ca6eac33719f27a49649b979adf9dfe522034714f6cc458f09b
MISC metadata.xml 613 BLAKE2B 02cac703ee9a9083829e963e9bc97424b58a36949b8237157976d9628f9623f806dee434e5eea3b63a1f2a4ac06509a3d0f0cd094590f12cb3b97ee09f9d6cf1 SHA512 9304973708ee729dc06cef8ac5b206a21ada747ca4efb36e2fc21007da61bfaf43947319be20b0ce73411f5eda2d13a4b226503c12b1d094d5f9180e84579432

View File

@@ -0,0 +1,21 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="project">
<email>qt@gentoo.org</email>
<name>Gentoo Qt Project</name>
</maintainer>
<use>
<flag name="evdev">Enable support for input devices via evdev</flag>
<flag name="qml">Build QML bindings</flag>
</use>
<upstream>
<bugs-to>https://bugreports.qt.io/</bugs-to>
<doc>https://doc.qt.io/</doc>
</upstream>
<slots>
<subslots>
Must only be used by packages that are known to use private parts of the Qt API.
</subslots>
</slots>
</pkgmetadata>

View File

@@ -0,0 +1,36 @@
# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit qt5-build
DESCRIPTION="Qt module to support gamepad hardware"
if [[ ${QT5_BUILD_TYPE} == release ]]; then
KEYWORDS="amd64 ~arm arm64 ~riscv x86"
fi
IUSE="evdev qml sdl"
DEPEND="
=dev-qt/qtcore-${QT5_PV}*
=dev-qt/qtgui-${QT5_PV}*[evdev?]
evdev? ( virtual/libudev:= )
qml? ( =dev-qt/qtdeclarative-${QT5_PV}* )
sdl? ( media-libs/libsdl2 )
"
RDEPEND="${DEPEND}"
src_prepare() {
qt_use_disable_mod qml quick \
src/src.pro
qt_use_disable_config evdev evdev \
src/plugins/gamepads/gamepads.pro
qt_use_disable_config sdl sdl2 \
src/plugins/gamepads/gamepads.pro
qt5-build_src_prepare
}

View File

@@ -1,5 +1,8 @@
DIST qtlocation-5.15.11-patchset.tar.xz 4796 BLAKE2B dcfa75bd3fb2e9069e1a530c27e2b4e9ac921fcf0ccb712f0894375b575ba25103948c6e5b85b56a8f9c9f2d7edf7df8e38501e93356e69f060b577a04c2d221 SHA512 14bd2864abc6f446dc4fbac03548cb42305685b46db757d856360780144095a021130bc0ebf1d07a516dc7991dc0cfbf733bd0ef6be58237bc15822c21af1d0b
DIST qtlocation-everywhere-opensource-src-5.15.16.tar.xz 6548480 BLAKE2B 9f6d66d22f4ad45935e3e76e275866b236cd842b7a17a3a9e6553f75dcf3048cd70e0b046d5d08c57d4c9d7ea73f723b210d044f44bf494cafbbff590b0703e5 SHA512 321a8e68f731a97c7ef0209d6db0ff4891dd14dc43e14f5c4c5ac763069c7f17298fbc6410326df9265ccd631372cdba662fc82e26a324936d371c8572e19a48
DIST qtlocation-everywhere-opensource-src-5.15.17.tar.xz 6550288 BLAKE2B 3c83702a55a0dc1dc000a918f0b4d5b8694c1f51454db79bd01f25e9aec72531195286f4114cee68245a4b18e9de13ec192412f092d35b45caac10227a83a092 SHA512 0f4a317948f46b58497d5d08a91c887c80f74e256d899816d5ec73120dd1931ae6129f6a16bd93b6fc2285141956e0f2c6e6ddebe5c536423fbb6314f4558473
DIST qtlocation-mapboxgl-5.15.16-35d56672.tar.gz 3726302 BLAKE2B f51c0589a06fab35ba85b3bf4ca8a1904cda5aec47b17fdf747da527d02be623a76b1af5883b33267fab825a4b5d0863ea0220f2907e98e286b40d4a0bbc82e5 SHA512 5c2ff6ab7e4382d87546a802c5603bdcec3deb7fbb836fc981292c67660514caaa6118e164d2e099d0304710035572706562ec84e4aba5ce36b01cade8b0993e
DIST qtlocation-mapboxgl-5.15.17-35d56672.tar.gz 3726302 BLAKE2B f51c0589a06fab35ba85b3bf4ca8a1904cda5aec47b17fdf747da527d02be623a76b1af5883b33267fab825a4b5d0863ea0220f2907e98e286b40d4a0bbc82e5 SHA512 5c2ff6ab7e4382d87546a802c5603bdcec3deb7fbb836fc981292c67660514caaa6118e164d2e099d0304710035572706562ec84e4aba5ce36b01cade8b0993e
EBUILD qtlocation-5.15.16-r1.ebuild 1629 BLAKE2B 93af70522115073f42fcc8b073cd515c547f4be99a98bd8352fee740690fbbd0c5cba351f54ec0038dfc0c21bacd78f7bcba0a8d9cb02145a2748d4a5f371de6 SHA512 b21a9278eac1accf942ae82bb066991d5aacf59e43412a47e68b88a6b9bb0abf59347c310ca8988e248242b701a496862108e489da00ad7b537b6e6459aa61d3
EBUILD qtlocation-5.15.17.ebuild 1629 BLAKE2B 93af70522115073f42fcc8b073cd515c547f4be99a98bd8352fee740690fbbd0c5cba351f54ec0038dfc0c21bacd78f7bcba0a8d9cb02145a2748d4a5f371de6 SHA512 b21a9278eac1accf942ae82bb066991d5aacf59e43412a47e68b88a6b9bb0abf59347c310ca8988e248242b701a496862108e489da00ad7b537b6e6459aa61d3
MISC metadata.xml 535 BLAKE2B 061ed9abebe579a38a262451a5e72d112adbcf4693078042f3b55be8d16b7bd430198edb732cd127deccf8c67d444b9951dd7ac8e2d0fef7de02913a3a8ba644 SHA512 823b03655b8bbb923d38d4f8358898beb2e2fa34d36e2d8d843e164027d58eb044a3e661b8dfc12cda123f15fd07d0987874b81543c47e46c670c25fa35dde87

View File

@@ -0,0 +1,59 @@
# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
PATCHSET="${PN}-5.15.11-patchset"
inherit qt5-build
DESCRIPTION="Location (places, maps, navigation) library for the Qt5 framework"
if [[ ${QT5_BUILD_TYPE} == release ]]; then
MAPBOXGL_COMMIT=35d566724c48180c9a372c2ed50a253871a51574
SRC_URI+=" https://invent.kde.org/qt/qt/${PN}-mapboxgl/-/archive/${MAPBOXGL_COMMIT}/${PN}-mapboxgl-${MAPBOXGL_COMMIT}.tar.gz -> ${PN}-mapboxgl-${PV}-${MAPBOXGL_COMMIT:0:8}.tar.gz
https://dev.gentoo.org/~asturm/distfiles/${PATCHSET}.tar.xz"
KEYWORDS="amd64 arm arm64 ~loong ppc64 ~riscv x86"
fi
RDEPEND="
dev-libs/icu:=
=dev-qt/qtcore-${QT5_PV}*
=dev-qt/qtdeclarative-${QT5_PV}*
=dev-qt/qtgui-${QT5_PV}*
=dev-qt/qtnetwork-${QT5_PV}*
=dev-qt/qtpositioning-${QT5_PV}*[qml]
=dev-qt/qtsql-${QT5_PV}*
sys-libs/zlib
"
DEPEND="${RDEPEND}
=dev-qt/qtconcurrent-${QT5_PV}*
"
QT5_TARGET_SUBDIRS=(
src/3rdparty/clipper
src/3rdparty/poly2tri
src/3rdparty/clip2tri
src/3rdparty/mapbox-gl-native
src/location
src/imports/location
src/imports/locationlabs
src/plugins/geoservices
)
if [[ ${QT5_BUILD_TYPE} == release ]]; then
PATCHES=( "${WORKDIR}/${PATCHSET}" )
src_prepare() {
rm -rf src/3rdparty/mapbox-gl-native/* || die
mv "${WORKDIR}"/${PN}-mapboxgl-${MAPBOXGL_COMMIT}/* src/3rdparty/mapbox-gl-native || die
qt5-build_src_prepare
}
fi
src_configure() {
# src/plugins/geoservices requires files that are only generated when
# qmake is run in the root directory. Bug 633776.
qt5_configure_oos_quirk qtlocation-config.pri src/location
qt5-build_src_configure
}

View File

@@ -1,3 +1,5 @@
DIST qtsensors-everywhere-opensource-src-5.15.16.tar.xz 2051048 BLAKE2B 85fa8c67639751676ffa1ccd5ad1a89efbaed56f4bd39e99fd88bd25924d8cfc08d67a4f8f20878bac82a91f5768d60b5576e3799fc80221f2f6f7e7ac9994be SHA512 2bd63e07a996f5377bda885e7218fc218fc981bf2a637b3d939ae5913bbffe2a797716b0aaa63e61c7e1384f07712de8683787590649a8f01a424b7f4526502b
DIST qtsensors-everywhere-opensource-src-5.15.17.tar.xz 2052824 BLAKE2B cf20931983d0c18cc88fd4f61701dec6c9cb22c024d054ca8dc80e8dd7ab583eac5ac6150681ea21f90ba0f3cd239753e2942bcde5b88498c17e902cf9bcaa46 SHA512 e3431f735d06d304b8312a273c6b12b39cba98a9e94897156921a3f6f45bccef2bb232db4872ea6c3bef5c636f07bf8c8cb9404a7b32b6643d7748d900b16adb
EBUILD qtsensors-5.15.16.ebuild 559 BLAKE2B 411fcb30161c3700e93390c31ebc2b030ed91cfea3980da4eb860867d82180b73beea77a09b2c17956dff0ddd63ae4ba86bab6ff7318fa301bb3a9fceaf8caf1 SHA512 285fe9deab6c60bc5c151478fcb8fce78b55dc88af04b5216015f1e24ae4a2d991bef97757f1301da625263af625fe06121048a4f41bf46baa2ba596c1a1de8e
EBUILD qtsensors-5.15.17.ebuild 559 BLAKE2B 411fcb30161c3700e93390c31ebc2b030ed91cfea3980da4eb860867d82180b73beea77a09b2c17956dff0ddd63ae4ba86bab6ff7318fa301bb3a9fceaf8caf1 SHA512 285fe9deab6c60bc5c151478fcb8fce78b55dc88af04b5216015f1e24ae4a2d991bef97757f1301da625263af625fe06121048a4f41bf46baa2ba596c1a1de8e
MISC metadata.xml 594 BLAKE2B 93f6b9de5266ef5bba3342d149afd04d4fdb27cac760d91b7dfb866d81ff4d4e86a3de1a512815444aa825350dad45923437f5caa7fea7cf6066667f2328d00e SHA512 68d91bcb4c8904a65021a81b01474081565e55c6776d29b54a70318282ce604f8e29e75f3d7574aedf9397ec72b2c6bd1e81ed4e630a4ecf553e070baebd9d64

View File

@@ -0,0 +1,29 @@
# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit qt5-build
DESCRIPTION="Hardware sensor access library for the Qt5 framework"
if [[ ${QT5_BUILD_TYPE} == release ]]; then
KEYWORDS="amd64 arm arm64 ~hppa ~loong ~ppc ppc64 ~riscv x86"
fi
# TODO: simulator
IUSE="qml"
RDEPEND="
=dev-qt/qtcore-${QT5_PV}*
=dev-qt/qtdbus-${QT5_PV}*
qml? ( =dev-qt/qtdeclarative-${QT5_PV}* )
"
DEPEND="${RDEPEND}"
src_prepare() {
qt_use_disable_mod qml quick \
src/src.pro
qt5-build_src_prepare
}

View File

@@ -0,0 +1,2 @@
DIST qtvirtualkeyboard-everywhere-opensource-src-5.15.17.tar.xz 10947852 BLAKE2B e3474c453d00389746d4c79bff468b30efc943e5ed10fc0e4e7c93e0aa3d74a9a4322d453af68b361e9d627a9c381f68d2fd108c011e39aeca2af9dfa1b33ff2 SHA512 abb603b8ab993c30d213ce20cab52271350354683cd0291d90a7aa9ae8cc25e6226c35295f589d2cf17819931a43ec8b4586f63348667cba16870061509fbd3d
EBUILD qtvirtualkeyboard-5.15.17.ebuild 1214 BLAKE2B a2d1b8ccf58d8236afd410c626b28d6ef7cbbbd678620335d0f9f1f0f623d36c5185e5d7cb469d5e48a0759135a045c83afe88c409a764d87c97de88d5513ad3 SHA512 a5ee55fa5a05d94e62e6c5ee5d5abb10f3243985f9d04d9b57df175864ef2c73fb82ba0ece7bf2710e4ad4ad47c8da190a7f085f291e6f5f5786df681c76b08d

View File

@@ -0,0 +1,42 @@
# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
if [[ ${PV} != *9999* ]]; then
KEYWORDS="amd64 arm arm64 ~loong ~ppc64 ~riscv x86"
fi
inherit qt5-build
DESCRIPTION="Customizable input framework and virtual keyboard for Qt"
# TODO: unbundle libraries for more layouts
IUSE="handwriting +spell +X"
DEPEND="
=dev-qt/qtcore-${QT5_PV}*
=dev-qt/qtdeclarative-${QT5_PV}*
=dev-qt/qtgui-${QT5_PV}*
=dev-qt/qtsvg-${QT5_PV}*
spell? ( app-text/hunspell:= )
X? ( x11-libs/libxcb:= )
"
RDEPEND="${DEPEND}"
src_configure() {
local myqmakeargs=(
$(usev handwriting CONFIG+=lipi-toolkit)
$(usev !spell CONFIG+=disable-hunspell)
$(usev !X CONFIG+=disable-desktop)
CONFIG+="lang-ar_AR lang-bg_BG lang-cs_CZ lang-da_DK lang-de_DE \
lang-el_GR lang-en_GB lang-en_US lang-es_ES lang-es_MX \
lang-et_EE lang-fa_FA lang-fi_FI lang-fr_CA lang-fr_FR \
lang-he_IL lang-hi_IN lang-hr_HR lang-hu_HU lang-id_ID \
lang-it_IT lang-ms_MY lang-nb_NO lang-nl_NL lang-pl_PL \
lang-pt_BR lang-pt_PT lang-ro_RO lang-ru_RU lang-sk_SK \
lang-sl_SI lang-sq_AL lang-sr_SP lang-sv_SE lang-tr_TR \
lang-uk_UA lang-vi_VN"
)
qt5-build_src_configure
}

View File

@@ -0,0 +1,12 @@
AUX qt5-webengine-ninja-1.12.patch 512 BLAKE2B 9bd8a09d818f0fbe911182e1ae0b57f45c85f7087bc8cbca7bb52215b1e300b2ac81117742e0a345de302d0fa8d99bee6ac0761f574c83fe387d660941b082bc SHA512 e8ab97a38c8ed6cce288e4416fb2fe4c2412c89478b173c5265e894a084b955f1877fbd48e54b28b2b6c717e3cde08f03d6d98a4d8ec3ecc858dc7e38c80a06b
AUX qtwebengine-5.15.13_p20240510-gcc15.patch 1308 BLAKE2B d206c6df9b88f706ade2f501548d880692ac032dd4767a279faf90e546eca9390f7a4c89f2fd23cc7d9e865bc27b0da398c60de2440ba1cd0a10cb5ccfb86e28 SHA512 fb5162c3ea8865fc81762c5571ddc63efac89dbcb6029a1b749a07f5944cf9007d92a24b764459301a1292ccbc057bee415f5dd86c75ae2a53981bad31e4e148
AUX qtwebengine-5.15.14_p20240510-gcc15-cstdint.patch 5506 BLAKE2B 2e31854e3beef5f25300a9b12158e9eabb674d54c07b563a4a7ffafe5c06dabdd808a776d4155f23ee7f0a917970d614f9060428ba8613d6cf15228bfc9d6b4c SHA512 e536d79f8841816858b5bd92adba6a862bce7149cc66c010885b82c8c92502a81e3fdb0038b21eafbdf046432a3b2c4c95b0352a608c0a99d0868813d56f00aa
AUX qtwebengine-5.15.14_p20240510-gcc15-template-id-cdtor.patch 3299 BLAKE2B 2809e25858ac17f776bd20fdcbc4c8b658b7f2587390dfbce133939ddd11134a71b6f139f39b9bf46a5e99a7d8335d5242d3a2caad832e6252d817504b6e6e12 SHA512 cbef06092de6337b4559d44443947e9578d127f4d319027550de7c4289665e0d516e5229cc0f9a0855691ceb62cdd32fb5a5fb88ff6cfbe28e1985aae9828ed7
AUX qtwebengine-5.15.14_p20240510-icu-75.patch 5107 BLAKE2B fc61801f5bbf5583610afe5af8ed60a90f94a248c0aa16b94f6df96e239e9c1cfe1fc40da487d3a25fc600a798b33c5bf8384c6d6cfcd0ff9446c20aae5f8f84 SHA512 b812dc26e6135cd69df9ef3b9049509be9888e012394af3c496b03666e80c63f4c827916398d94f7499f73739ca70829108b60705d5b2329f3134dd695a029eb
AUX qtwebengine-5.15.14_p20240510-re2.patch 915 BLAKE2B a29abbec923f78dd7baafdc36b42ed9e0467885ecc04349cbbcec6727628627e84e0172f01e24b34c231d437b75f992b7a173532695085773d899dc94085c66b SHA512 45af510bafc1c838fe273652813d4130ecdef30152f57506b5b6580131cdbcf510acc5ae7bb8d44ac90072c8be7d75b4e0c187240a6522e184db8a11a204f2fc
AUX qtwebengine-5.15.16_p20241115-py3.13-pipes.patch 848 BLAKE2B 7696eaf565511adcac5e74f7788633d1e83a88079548f1069c840da40e3ec5fef5fbfa0c019234a40dde14f6f43249792ad1bfc3d2ee8e5669d7fde7234a7ad2 SHA512 79588891105d8dce27e273d4113c31352c6b1035762ea6b1211be5f58299d9e2852b0b98bad34492d9af85e3ae1ca87407ffbf190159d64b0c6d7ba49e842bf8
AUX qtwebengine-5.15.17-py3.13-pipes.patch 848 BLAKE2B 7696eaf565511adcac5e74f7788633d1e83a88079548f1069c840da40e3ec5fef5fbfa0c019234a40dde14f6f43249792ad1bfc3d2ee8e5669d7fde7234a7ad2 SHA512 79588891105d8dce27e273d4113c31352c6b1035762ea6b1211be5f58299d9e2852b0b98bad34492d9af85e3ae1ca87407ffbf190159d64b0c6d7ba49e842bf8
AUX qtwebengine-5.15.2_p20210521-clang-libc++.patch 358 BLAKE2B a03de632ac4e01cf56c52af3a3bd5ff5bcfd525c67bf2e5d960904a9f3b53e1fa18f0e0df380c0cf84f17914fb313a028e26efaefe6ab5057f0d9a9cf2f6f0fd SHA512 6dc3864064d6084e70d4696fda744701c293ee62e9c9088e3247988ffb8085f30c632e94ac19aef715cbd211b21dfcb98691d5809e21cffd9f04bbb8b04cf0da
DIST qtwebengine-5.15.14_p20240510-patchset.tar.xz 20780 BLAKE2B 516d4c628c4b027ab3a7159da006a57173be91de3eb4b7f308029953d4fd19fb3e790ca38e79d17fef75d8d9b392676650acb9285d5913f9ebecaa4136575c47 SHA512 492979d118d6bd9165ee194724e38b627d19c89dbe1daa6b2f55e4a8fc7676748a1eacb9623ee05e09140c2c4a2ac82ddafaef5c45630a117ce0ed14b240a474
DIST qtwebengine-everywhere-opensource-src-5.15.17.tar.xz 319675412 BLAKE2B eca642f2fe3dc0a648f1645aa3ae7ca86dee8abd3cb8853a6ad7e200171f7c45d88dbdba05f820771de7607647b7626267f4e1af17d8e2bc4f0184899c2c09a6 SHA512 4ca5ac97e35f195350da6485a7e53e648723ef5a4e91acf58985eb6957b89acc7f9bac53035eee228fd6a4144a2ba7f93a1a96fd0a501e817b2460fe8faf6bd7
EBUILD qtwebengine-5.15.17.ebuild 8143 BLAKE2B 869eb1f18cf28280d178a4723b133b876d67770ea13d1d49d4a0beb1bfe07f53f44ac95ddc8f9d4535300bb815618a02de90282c85c774697a7163e97b56633e SHA512 800b5b84a6601573119048a303bbfcb056675e6675d22d8b0bf46c8049fb8de8b6f0f95e027ac3870e875f5fc6833c31fee96f89c512ab9113dd9e5fd28394eb

View File

@@ -0,0 +1,12 @@
diff --git a/chromium/content/public/browser/BUILD.gn b/chromium/content/public/browser/BUILD.gn
index 7cf82a4aacf..0e0dda2c3ca 100644
--- a/chromium/content/public/browser/BUILD.gn
+++ b/src/3rdparty/chromium/content/public/browser/BUILD.gn
@@ -469,6 +469,7 @@ jumbo_source_set("browser_sources") {
"//build:chromeos_buildflags",
"//cc",
"//components/viz/host",
+ "//components/spellcheck:buildflags",
"//content/browser", # Must not be public_deps!
"//device/fido",
"//gpu",

View File

@@ -0,0 +1,35 @@
https://bugs.gentoo.org/936416
Backport of two upstream commits:
* https://chromium-review.googlesource.com/c/chromium/src/+/5512719
* https://quiche.googlesource.com/quiche/+/c1af894e0f5c4f732a983e7c93227854e203570e%5E%21/#F0
--- a/src/3rdparty/chromium/base/containers/id_map.h
+++ b/src/3rdparty/chromium/base/containers/id_map.h
@@ -153,8 +153,8 @@ class IDMap final {
}
const Iterator& operator=(const Iterator& iter) {
- map_ = iter.map;
- iter_ = iter.iter;
+ map_ = iter.map_;
+ iter_ = iter.iter_;
Init();
return *this;
}
--- a/src/3rdparty/chromium/net/third_party/quiche/src/quic/core/quic_interval_deque.h
+++ b/src/3rdparty/chromium/net/third_party/quiche/src/quic/core/quic_interval_deque.h
@@ -198,12 +198,12 @@ class QUIC_NO_EXPORT QuicIntervalDeque {
Iterator operator+(difference_type amount) const {
Iterator copy = *this;
copy.index_ += amount;
- DCHECK(copy.index_ < copy.deque_->size());
+ DCHECK(copy.index_ < copy.deque_->Size());
return copy;
}
Iterator& operator+=(difference_type amount) {
index_ += amount;
- DCHECK(index_ < deque_->size());
+ DCHECK(index_ < deque_->Size());
return *this;
}
difference_type operator-(const Iterator& rhs) const {

View File

@@ -0,0 +1,170 @@
--- a/src/3rdparty/chromium/third_party/webrtc/api/task_queue/task_queue_base.h
+++ b/src/3rdparty/chromium/third_party/webrtc/api/task_queue/task_queue_base.h
@@ -10,6 +10,7 @@
#ifndef API_TASK_QUEUE_TASK_QUEUE_BASE_H_
#define API_TASK_QUEUE_TASK_QUEUE_BASE_H_
+#include <cstdint>
#include <memory>
#include "api/task_queue/queued_task.h"
--- a/src/3rdparty/chromium/third_party/perfetto/src/trace_processor/importers/gzip/gzip_utils.h
+++ b/src/3rdparty/chromium/third_party/perfetto/src/trace_processor/importers/gzip/gzip_utils.h
@@ -17,6 +17,7 @@
#ifndef SRC_TRACE_PROCESSOR_IMPORTERS_GZIP_GZIP_UTILS_H_
#define SRC_TRACE_PROCESSOR_IMPORTERS_GZIP_GZIP_UTILS_H_
+#include <cstdint>
#include <memory>
struct z_stream_s;
--- a/src/3rdparty/chromium/third_party/perfetto/include/perfetto/ext/tracing/core/slice.h
+++ b/src/3rdparty/chromium/third_party/perfetto/include/perfetto/ext/tracing/core/slice.h
@@ -20,6 +20,7 @@
#include <stddef.h>
#include <string.h>
+#include <cstdint>
#include <memory>
#include <string>
#include <vector>
--- a/src/3rdparty/chromium/cc/input/main_thread_scrolling_reason.h
+++ b/src/3rdparty/chromium/cc/input/main_thread_scrolling_reason.h
@@ -5,6 +5,7 @@
#ifndef CC_INPUT_MAIN_THREAD_SCROLLING_REASON_H_
#define CC_INPUT_MAIN_THREAD_SCROLLING_REASON_H_
+#include <cstdint>
#include <memory>
#include <string>
#include "cc/cc_export.h"
--- a/src/3rdparty/chromium/gpu/command_buffer/common/skia_utils.h
+++ b/src/3rdparty/chromium/gpu/command_buffer/common/skia_utils.h
@@ -5,6 +5,7 @@
#ifndef GPU_COMMAND_BUFFER_COMMON_SKIA_UTILS_H_
#define GPU_COMMAND_BUFFER_COMMON_SKIA_UTILS_H_
+#include <cstdint>
#include <memory>
#include "base/optional.h"
--- a/src/3rdparty/chromium/gpu/command_buffer/service/gpu_fence_manager.h
+++ b/src/3rdparty/chromium/gpu/command_buffer/service/gpu_fence_manager.h
@@ -5,6 +5,7 @@
#ifndef GPU_COMMAND_BUFFER_SERVICE_GPU_FENCE_MANAGER_H_
#define GPU_COMMAND_BUFFER_SERVICE_GPU_FENCE_MANAGER_H_
+#include <cstdint>
#include <memory>
#include <vector>
--- a/src/3rdparty/chromium/net/tools/huffman_trie/trie_entry.h
+++ b/src/3rdparty/chromium/net/tools/huffman_trie/trie_entry.h
@@ -5,6 +5,7 @@
#ifndef NET_TOOLS_HUFFMAN_TRIE_TRIE_ENTRY_H_
#define NET_TOOLS_HUFFMAN_TRIE_TRIE_ENTRY_H_
+#include <cstdint>
#include <memory>
#include <string>
#include <vector>
--- a/src/3rdparty/chromium/third_party/pdfium/core/fpdfapi/page/cpdf_function.h
+++ b/src/3rdparty/chromium/third_party/pdfium/core/fpdfapi/page/cpdf_function.h
@@ -7,6 +7,7 @@
#ifndef CORE_FPDFAPI_PAGE_CPDF_FUNCTION_H_
#define CORE_FPDFAPI_PAGE_CPDF_FUNCTION_H_
+#include <cstdint>
#include <memory>
#include <set>
#include <vector>
--- a/src/3rdparty/chromium/third_party/pdfium/core/fxcodec/jbig2/JBig2_DocumentContext.h
+++ b/src/3rdparty/chromium/third_party/pdfium/core/fxcodec/jbig2/JBig2_DocumentContext.h
@@ -7,6 +7,7 @@
#ifndef CORE_FXCODEC_JBIG2_JBIG2_DOCUMENTCONTEXT_H_
#define CORE_FXCODEC_JBIG2_JBIG2_DOCUMENTCONTEXT_H_
+#include <cstdint>
#include <list>
#include <memory>
#include <utility>
--- a/src/3rdparty/chromium/third_party/pdfium/third_party/base/span.h
+++ b/src/3rdparty/chromium/third_party/pdfium/third_party/base/span.h
@@ -9,6 +9,7 @@
#include <algorithm>
#include <array>
+#include <cstdint>
#include <iterator>
#include <type_traits>
#include <utility>
--- a/src/3rdparty/chromium/third_party/perfetto/include/perfetto/tracing/tracing_backend.h
+++ b/src/3rdparty/chromium/third_party/perfetto/include/perfetto/tracing/tracing_backend.h
@@ -17,6 +17,7 @@
#ifndef INCLUDE_PERFETTO_TRACING_TRACING_BACKEND_H_
#define INCLUDE_PERFETTO_TRACING_TRACING_BACKEND_H_
+#include <cstdint>
#include <memory>
#include <string>
--- a/src/3rdparty/chromium/third_party/webrtc/api/fec_controller.h
+++ b/src/3rdparty/chromium/third_party/webrtc/api/fec_controller.h
@@ -11,6 +11,7 @@
#ifndef API_FEC_CONTROLLER_H_
#define API_FEC_CONTROLLER_H_
+#include <cstdint>
#include <memory>
#include <vector>
--- a/src/3rdparty/chromium/third_party/webrtc/api/network_state_predictor.h
+++ b/src/3rdparty/chromium/third_party/webrtc/api/network_state_predictor.h
@@ -11,6 +11,7 @@
#ifndef API_NETWORK_STATE_PREDICTOR_H_
#define API_NETWORK_STATE_PREDICTOR_H_
+#include <cstdint>
#include <memory>
#include <vector>
--- a/src/3rdparty/chromium/third_party/webrtc/modules/video_coding/timestamp_map.h
+++ b/src/3rdparty/chromium/third_party/webrtc/modules/video_coding/timestamp_map.h
@@ -11,6 +11,7 @@
#ifndef MODULES_VIDEO_CODING_TIMESTAMP_MAP_H_
#define MODULES_VIDEO_CODING_TIMESTAMP_MAP_H_
+#include <cstdint>
#include <memory>
namespace webrtc {
--- a/src/3rdparty/chromium/third_party/webrtc/video/stats_counter.h
+++ b/src/3rdparty/chromium/third_party/webrtc/video/stats_counter.h
@@ -11,6 +11,7 @@
#ifndef VIDEO_STATS_COUNTER_H_
#define VIDEO_STATS_COUNTER_H_
+#include <cstdint>
#include <memory>
#include <string>
--- a/src/3rdparty/chromium/third_party/woff2/include/woff2/output.h
+++ b/src/3rdparty/chromium/third_party/woff2/include/woff2/output.h
@@ -10,6 +10,7 @@
#define WOFF2_WOFF2_OUT_H_
#include <algorithm>
+#include <cstdint>
#include <cstring>
#include <memory>
#include <string>
--- a/src/3rdparty/chromium/base/task/thread_pool.h
+++ b/src/3rdparty/chromium/base/task/thread_pool.h
@@ -5,6 +5,7 @@
#ifndef BASE_TASK_THREAD_POOL_H_
#define BASE_TASK_THREAD_POOL_H_
+#include <cstdint>
#include <memory>
#include <utility>

View File

@@ -0,0 +1,93 @@
From: Paul Zander <negril.nx+gentoo@gmail.com>
Date: Wed, 23 Oct 2024 01:04:16 +0200
Subject: template-id-cdtor
warning: template-id not allowed for constructor in C++20 [-Wtemplate-id-cdtor]
Signed-off-by: Paul Zander <negril.nx+gentoo@gmail.com>
--- a/src/3rdparty/chromium/third_party/blink/renderer/platform/wtf/text/string_concatenate.h
+++ b/src/3rdparty/chromium/third_party/blink/renderer/platform/wtf/text/string_concatenate.h
@@ -45,7 +45,7 @@ class StringTypeAdapter<char> {
DISALLOW_NEW();
public:
- explicit StringTypeAdapter<char>(char buffer) : buffer_(buffer) {}
+ explicit StringTypeAdapter(char buffer) : buffer_(buffer) {}
unsigned length() const { return 1; }
bool Is8Bit() const { return true; }
@@ -62,7 +62,7 @@ class StringTypeAdapter<LChar> {
DISALLOW_NEW();
public:
- explicit StringTypeAdapter<LChar>(LChar buffer) : buffer_(buffer) {}
+ explicit StringTypeAdapter(LChar buffer) : buffer_(buffer) {}
unsigned length() const { return 1; }
bool Is8Bit() const { return true; }
@@ -79,7 +79,7 @@ class StringTypeAdapter<UChar> {
DISALLOW_NEW();
public:
- explicit StringTypeAdapter<UChar>(UChar buffer) : buffer_(buffer) {}
+ explicit StringTypeAdapter(UChar buffer) : buffer_(buffer) {}
unsigned length() const { return 1; }
bool Is8Bit() const { return buffer_ <= 0xff; }
@@ -100,7 +100,7 @@ class WTF_EXPORT StringTypeAdapter<char*> {
DISALLOW_NEW();
public:
- explicit StringTypeAdapter<char*>(char* buffer)
+ explicit StringTypeAdapter(char* buffer)
: StringTypeAdapter(buffer, strlen(buffer)) {}
unsigned length() const { return length_; }
@@ -110,7 +110,7 @@ class WTF_EXPORT StringTypeAdapter<char*> {
void WriteTo(UChar* destination) const;
private:
- StringTypeAdapter<char*>(char* buffer, size_t length);
+ StringTypeAdapter(char* buffer, size_t length);
const char* buffer_;
unsigned length_;
@@ -121,7 +121,7 @@ class WTF_EXPORT StringTypeAdapter<LChar*> {
DISALLOW_NEW();
public:
- explicit StringTypeAdapter<LChar*>(LChar* buffer);
+ explicit StringTypeAdapter(LChar* buffer);
unsigned length() const { return length_; }
bool Is8Bit() const { return true; }
@@ -157,7 +157,7 @@ class WTF_EXPORT StringTypeAdapter<const char*> {
DISALLOW_NEW();
public:
- explicit StringTypeAdapter<const char*>(const char* buffer);
+ explicit StringTypeAdapter(const char* buffer);
unsigned length() const { return length_; }
bool Is8Bit() const { return true; }
@@ -175,7 +175,7 @@ class WTF_EXPORT StringTypeAdapter<const LChar*> {
DISALLOW_NEW();
public:
- explicit StringTypeAdapter<const LChar*>(const LChar* buffer);
+ explicit StringTypeAdapter(const LChar* buffer);
unsigned length() const { return length_; }
bool Is8Bit() const { return true; }
--- a/src/3rdparty/chromium/third_party/blink/renderer/platform/wtf/text/string_operators.h
+++ b/src/3rdparty/chromium/third_party/blink/renderer/platform/wtf/text/string_operators.h
@@ -115,7 +115,7 @@ class StringTypeAdapter<StringAppend<StringType1, StringType2>> {
STACK_ALLOCATED();
public:
- StringTypeAdapter<StringAppend<StringType1, StringType2>>(
+ StringTypeAdapter(
const StringAppend<StringType1, StringType2>& buffer)
: buffer_(buffer) {}

View File

@@ -0,0 +1,102 @@
Thanks to Arch Linux:
https://gitlab.archlinux.org/archlinux/packaging/packages/qt5-webengine/-/blob/main/qt5-webengine-icu-75.patch?ref_type=heads
diff --git a/src/3rdparty/chromium/build/config/compiler/BUILD.gn b/src/3rdparty/chromium/build/config/compiler/BUILD.gn
index b511a58c5a8..abd78a74ead 100644
--- a/src/3rdparty/chromium/build/config/compiler/BUILD.gn
+++ b/src/3rdparty/chromium/build/config/compiler/BUILD.gn
@@ -566,7 +566,7 @@ config("compiler") {
# Override Chromium's default for projects that wish to stay on C++11.
cflags_cc += [ "-std=${standard_prefix}++11" ]
} else {
- cflags_cc += [ "-std=${standard_prefix}++14" ]
+ cflags_cc += [ "-std=${standard_prefix}++17" ]
}
} else if (!is_win && !is_nacl) {
if (target_os == "android") {
diff --git a/src/3rdparty/chromium/base/allocator/partition_allocator/partition_alloc_constants.h b/src/3rdparty/chromium/base/allocator/partition_allocator/partition_alloc_constants.h
index f03ba1e4ab4..b1495f7ae74 100644
--- a/src/3rdparty/chromium/base/allocator/partition_allocator/partition_alloc_constants.h
+++ b/src/3rdparty/chromium/base/allocator/partition_allocator/partition_alloc_constants.h
@@ -195,7 +195,7 @@ NumPartitionPagesPerSuperPage() {
//
// __STDCPP_DEFAULT_NEW_ALIGNMENT__ is C++17. As such, it is not defined on all
// platforms, as Chrome's requirement is C++14 as of 2020.
-#if defined(__STDCPP_DEFAULT_NEW_ALIGNMENT__)
+#if 0
static constexpr size_t kAlignment =
std::max(alignof(std::max_align_t), __STDCPP_DEFAULT_NEW_ALIGNMENT__);
#else
diff --git a/src/3rdparty/chromium/third_party/webrtc/common_video/h264/sps_parser.h b/src/3rdparty/chromium/third_party/webrtc/common_video/h264/sps_parser.h
index 76e627d27a3..942435f44a0 100644
--- a/src/3rdparty/chromium/third_party/webrtc/common_video/h264/sps_parser.h
+++ b/src/3rdparty/chromium/third_party/webrtc/common_video/h264/sps_parser.h
@@ -12,6 +12,7 @@
#define COMMON_VIDEO_H264_SPS_PARSER_H_
#include "absl/types/optional.h"
+#include <cstdint>
namespace rtc {
class BitBuffer;
diff --git a/src/3rdparty/chromium/third_party/webrtc/common_video/h264/pps_parser.h b/src/3rdparty/chromium/third_party/webrtc/common_video/h264/pps_parser.h
index d6c31b06887..d8852dfd186 100644
--- a/src/3rdparty/chromium/third_party/webrtc/common_video/h264/pps_parser.h
+++ b/src/3rdparty/chromium/third_party/webrtc/common_video/h264/pps_parser.h
@@ -12,6 +12,7 @@
#define COMMON_VIDEO_H264_PPS_PARSER_H_
#include "absl/types/optional.h"
+#include <cstdint>
namespace rtc {
class BitBuffer;
diff --git a/src/3rdparty/chromium/third_party/webrtc/modules/audio_processing/aec3/reverb_model_estimator.h b/src/3rdparty/chromium/third_party/webrtc/modules/audio_processing/aec3/reverb_model_estimator.h
index 3b9971abae1..d4458038527 100644
--- a/src/3rdparty/chromium/third_party/webrtc/modules/audio_processing/aec3/reverb_model_estimator.h
+++ b/src/3rdparty/chromium/third_party/webrtc/modules/audio_processing/aec3/reverb_model_estimator.h
@@ -13,6 +13,7 @@
#include <array>
#include <vector>
+#include <memory>
#include "absl/types/optional.h"
#include "api/array_view.h"
diff --git a/src/3rdparty/chromium/third_party/webrtc/modules/include/module_common_types_public.h b/src/3rdparty/chromium/third_party/webrtc/modules/include/module_common_types_public.h
index 345e45ce127..e686e5d691a 100644
--- a/src/3rdparty/chromium/third_party/webrtc/modules/include/module_common_types_public.h
+++ b/src/3rdparty/chromium/third_party/webrtc/modules/include/module_common_types_public.h
@@ -12,6 +12,7 @@
#define MODULES_INCLUDE_MODULE_COMMON_TYPES_PUBLIC_H_
#include <limits>
+#include <cstdint>
#include "absl/types/optional.h"
diff --git a/src/3rdparty/chromium/third_party/blink/renderer/core/page/scrolling/text_fragment_selector_generator.cc b/src/3rdparty/chromium/third_party/blink/renderer/core/page/scrolling/text_fragment_selector_generator.cc
index 8fcc799b795..bc69ddcf18c 100644
--- a/src/3rdparty/chromium/third_party/blink/renderer/core/page/scrolling/text_fragment_selector_generator.cc
+++ b/src/3rdparty/chromium/third_party/blink/renderer/core/page/scrolling/text_fragment_selector_generator.cc
@@ -15,6 +15,7 @@
#include "third_party/blink/renderer/core/page/scrolling/text_fragment_anchor_metrics.h"
#include "third_party/blink/renderer/core/page/scrolling/text_fragment_finder.h"
#include "third_party/blink/renderer/platform/text/text_boundaries.h"
+#include "absl/base/attributes.h"
namespace blink {
diff --git a/src/3rdparty/chromium/third_party/abseil-cpp/absl/base/options.h b/src/3rdparty/chromium/third_party/abseil-cpp/absl/base/options.h
index df506f0fae6..1de105fed4a 100644
--- a/src/3rdparty/chromium/third_party/abseil-cpp/absl/base/options.h
+++ b/src/3rdparty/chromium/third_party/abseil-cpp/absl/base/options.h
@@ -180,7 +180,7 @@
// absl::variant is a typedef of std::variant, use the feature macro
// ABSL_USES_STD_VARIANT.
-#define ABSL_OPTION_USE_STD_VARIANT 2
+#define ABSL_OPTION_USE_STD_VARIANT 0
// ABSL_OPTION_USE_INLINE_NAMESPACE

View File

@@ -0,0 +1,14 @@
# https://bugs.gentoo.org/913923
Fix missing {-no,}-webengine-re2 command line options
--- a/src/core/configure.json
+++ b/src/core/configure.json
@@ -16,6 +16,7 @@
"webengine-icu": { "type": "enum", "name": "webengine-system-icu", "values": { "system": "yes", "qt": "no" } },
"webengine-ffmpeg": { "type": "enum", "name": "webengine-system-ffmpeg", "values": { "system": "yes", "qt": "no" } },
"webengine-opus": { "type": "enum", "name": "webengine-system-opus", "values": { "system": "yes", "qt": "no" } },
+ "webengine-re2": { "type": "enum", "name": "webengine-system-re2", "values": { "system": "yes", "qt": "no" } },
"webengine-webp": { "type": "enum", "name": "webengine-system-libwebp", "values": { "system": "yes", "qt": "no" } },
"webengine-pepper-plugins": "boolean",
"webengine-printing-and-pdf": "boolean",

View File

@@ -0,0 +1,21 @@
diff --git a/src/3rdparty/chromium/build/android/gyp/util/build_utils.py b/src/3rdparty/chromium/build/android/gyp/util/build_utils.py
index 022980517..e3f82704a 100644
--- a/src/3rdparty/chromium/build/android/gyp/util/build_utils.py
+++ b/src/3rdparty/chromium/build/android/gyp/util/build_utils.py
@@ -12,7 +12,6 @@ import fnmatch
import json
import logging
import os
-import pipes
import re
import shutil
import stat
@@ -198,7 +197,7 @@ class CalledProcessError(Exception):
# A user should be able to simply copy and paste the command that failed
# into their shell.
copyable_command = '( cd {}; {} )'.format(os.path.abspath(self.cwd),
- ' '.join(map(pipes.quote, self.args)))
+ printed_cmd)
return 'Command failed: {}\n{}'.format(copyable_command, self.output)

View File

@@ -0,0 +1,21 @@
diff --git a/src/3rdparty/chromium/build/android/gyp/util/build_utils.py b/src/3rdparty/chromium/build/android/gyp/util/build_utils.py
index 022980517..e3f82704a 100644
--- a/src/3rdparty/chromium/build/android/gyp/util/build_utils.py
+++ b/src/3rdparty/chromium/build/android/gyp/util/build_utils.py
@@ -12,7 +12,6 @@ import fnmatch
import json
import logging
import os
-import pipes
import re
import shutil
import stat
@@ -198,7 +197,7 @@ class CalledProcessError(Exception):
# A user should be able to simply copy and paste the command that failed
# into their shell.
copyable_command = '( cd {}; {} )'.format(os.path.abspath(self.cwd),
- ' '.join(map(pipes.quote, self.args)))
+ printed_cmd)
return 'Command failed: {}\n{}'.format(copyable_command, self.output)

View File

@@ -0,0 +1,10 @@
--- a/src/buildtools/gn.pro
+++ b/src/buildtools/gn.pro
@@ -25,6 +25,7 @@
msvc:!clang_cl: gn_gen_args += --use-lto
gn_configure = $$system_quote($$gn_bootstrap) $$gn_gen_args
+ gn_configure += --no-static-libstdc++
macos {
gn_configure += --isysroot \"$$QMAKE_MAC_SDK_PATH\"
}

View File

@@ -0,0 +1,264 @@
# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
PATCHSET="${PN}-5.15.14_p20240510-patchset"
PYTHON_COMPAT=( python3_{10..13} )
PYTHON_REQ_USE="xml(+)"
inherit check-reqs estack flag-o-matic multiprocessing python-any-r1 qt5-build toolchain-funcs
DESCRIPTION="Library for rendering dynamic web content in Qt5 C++ and QML applications"
HOMEPAGE="https://www.qt.io/"
if [[ ${QT5_BUILD_TYPE} == release ]]; then
KEYWORDS="amd64 arm64"
if [[ ${PV} == ${QT5_PV}_p* ]]; then
SRC_URI="https://dev.gentoo.org/~asturm/distfiles/${P}.tar.xz"
S="${WORKDIR}/${P}"
QT5_BUILD_DIR="${S}_build"
else
SRC_URI="https://download.qt.io/official_releases/qt/5.15/${PV}/submodules/${PN}-everywhere-opensource-src-${PV}.tar.xz"
S="${WORKDIR}/${PN}-everywhere-src-${PV}"
QT5_BUILD_DIR="${S}_build"
fi
else
EGIT_BRANCH="5.15"
EGIT_REPO_URI=(
"https://code.qt.io/qt/${QT5_MODULE}.git"
"https://github.com/qt/${QT5_MODULE}.git"
)
inherit git-r3
fi
SRC_URI+=" https://dev.gentoo.org/~asturm/distfiles/${PATCHSET}.tar.xz"
IUSE="alsa bindist designer geolocation +jumbo-build kerberos pulseaudio screencast +system-icu widgets"
REQUIRED_USE="designer? ( widgets )"
RDEPEND="
app-arch/snappy:=
dev-libs/glib:2
dev-libs/nspr
dev-libs/nss
dev-libs/expat
dev-libs/libevent:=
dev-libs/libxml2[icu]
dev-libs/libxslt
=dev-qt/qtcore-${QT5_PV}*
=dev-qt/qtdeclarative-${QT5_PV}*
=dev-qt/qtgui-${QT5_PV}*
=dev-qt/qtnetwork-${QT5_PV}*
=dev-qt/qtprintsupport-${QT5_PV}*
=dev-qt/qtwebchannel-${QT5_PV}*[qml]
media-libs/fontconfig
media-libs/freetype
media-libs/harfbuzz:=
media-libs/lcms:2
media-libs/libjpeg-turbo:=
media-libs/libpng:0=
>=media-libs/libvpx-1.5:=[svc(+)]
media-libs/libwebp:=
media-libs/opus
sys-apps/dbus
sys-apps/pciutils
sys-libs/zlib[minizip]
virtual/libudev
x11-libs/libdrm
x11-libs/libX11
x11-libs/libXcomposite
x11-libs/libXcursor
x11-libs/libXdamage
x11-libs/libXext
x11-libs/libXfixes
x11-libs/libXi
x11-libs/libxkbfile
x11-libs/libXrandr
x11-libs/libXrender
x11-libs/libXScrnSaver
x11-libs/libXtst
alsa? ( media-libs/alsa-lib )
designer? ( =dev-qt/designer-${QT5_PV}* )
geolocation? ( =dev-qt/qtpositioning-${QT5_PV}* )
kerberos? ( virtual/krb5 )
pulseaudio? ( media-libs/libpulse )
screencast? ( media-video/pipewire:= )
system-icu? ( >=dev-libs/icu-69.1:= )
widgets? (
=dev-qt/qtdeclarative-${QT5_PV}*[widgets]
=dev-qt/qtwidgets-${QT5_PV}*
)
"
DEPEND="${RDEPEND}
media-libs/libglvnd
"
BDEPEND="${PYTHON_DEPS}
app-alternatives/ninja
$(python_gen_any_dep 'dev-python/html5lib[${PYTHON_USEDEP}]')
dev-util/gperf
dev-util/re2c
net-libs/nodejs[ssl]
sys-devel/bison
sys-devel/flex
"
PATCHES=(
"${WORKDIR}/${PATCHSET}"
"${FILESDIR}/${PN}-5.15.14_p20240510-re2.patch" # bug 913923
"${FILESDIR}/${PN}-5.15.14_p20240510-gcc15-cstdint.patch"
"${FILESDIR}/${PN}-5.15.14_p20240510-gcc15-template-id-cdtor.patch"
"${FILESDIR}/${P}-py3.13-pipes.patch" # thx to Fedora
"${FILESDIR}/qt5-webengine-ninja-1.12.patch" # thx to Fedora
)
python_check_deps() {
python_has_version "dev-python/html5lib[${PYTHON_USEDEP}]"
}
qtwebengine_check-reqs() {
# bug #307861
eshopts_push -s extglob
if is-flagq '-g?(gdb)?([1-9])'; then
ewarn "You have enabled debug info (probably have -g or -ggdb in your CFLAGS/CXXFLAGS)."
ewarn "You may experience really long compilation times and/or increased memory usage."
ewarn "If compilation fails, please try removing -g/-ggdb before reporting a bug."
fi
eshopts_pop
[[ ${MERGE_TYPE} == binary ]] && return
# (check-reqs added for bug #570534)
#
# Estimate the amount of RAM required
# Multiplier is *10 because Bash doesn't do floating point maths.
# Let's crudely assume ~2GB per compiler job for GCC.
local multiplier=20
# And call it ~1.5GB for Clang.
if tc-is-clang ; then
multiplier=15
fi
local CHECKREQS_DISK_BUILD="7G"
local CHECKREQS_DISK_USR="150M"
if ! has "distcc" ${FEATURES} ; then
# bug #830661
# Not super realistic to come up with good estimates for distcc right now
local CHECKREQS_MEMORY=$(($(makeopts_jobs)*multiplier/10))G
fi
check-reqs_${EBUILD_PHASE_FUNC}
}
pkg_pretend() {
qtwebengine_check-reqs
}
pkg_setup() {
qtwebengine_check-reqs
python-any-r1_pkg_setup
}
src_unpack() {
case ${QT5_BUILD_TYPE} in
live) git-r3_src_unpack ;&
release) default ;;
esac
}
src_prepare() {
if [[ ${PV} == ${QT5_PV}_p* ]]; then
# This is made from git, and for some reason will fail w/o .git directories.
mkdir -p .git src/3rdparty/chromium/.git || die
fi
# We need to make sure this integrates well into Qt 5.15.3 installation.
# Otherwise revdeps fail w/o heavy changes. This is the simplest way to do it.
# See also: https://www.qt.io/blog/building-qt-webengine-against-other-qt-versions
sed -E "/^MODULE_VERSION/s/5\.15\.[0-9]+/${QT5_PV}/" -i .qmake.conf || die
# QTBUG-88657 - jumbo-build could still make trouble
if ! use jumbo-build; then
sed -i -e 's|use_jumbo_build=true|use_jumbo_build=false|' \
src/buildtools/config/common.pri || die
fi
# bug 620444 - ensure local headers are used
find "${S}" -type f -name "*.pr[fio]" | \
xargs sed -i -e 's|INCLUDEPATH += |&$${QTWEBENGINE_ROOT}_build/include $${QTWEBENGINE_ROOT}/include |' || die
if use system-icu; then
if has_version ">=dev-libs/icu-75.1"; then
eapply "${FILESDIR}/${PN}-5.15.14_p20240510-icu-75.patch" # too invasive to apply unconditionally
fi
# Sanity check to ensure that bundled copy of ICU is not used.
# Whole src/3rdparty/chromium/third_party/icu directory cannot be deleted because
# src/3rdparty/chromium/third_party/icu/BUILD.gn is used by build system.
# If usage of headers of bundled copy of ICU occurs, then lists of shim headers in
# shim_headers("icui18n_shim") and shim_headers("icuuc_shim") in
# src/3rdparty/chromium/third_party/icu/BUILD.gn should be updated.
local file
while read file; do
echo "#error This file should not be used!" > "${file}" || die
done < <(find src/3rdparty/chromium/third_party/icu -type f "(" -name "*.c" -o -name "*.cpp" -o -name "*.h" ")" 2>/dev/null)
fi
# src/3rdparty/gn fails with libc++ due to passing of `-static-libstdc++`
if tc-is-clang ; then
if has_version 'llvm-core/clang[default-libcxx(-)]' || has_version 'llvm-core/clang-common[default-libcxx(-)]' ; then
eapply "${FILESDIR}/${PN}-5.15.2_p20210521-clang-libc++.patch"
fi
fi
qt_use_disable_config alsa webengine-alsa src/buildtools/config/linux.pri
qt_use_disable_config pulseaudio webengine-pulseaudio src/buildtools/config/linux.pri
qt_use_disable_mod designer webenginewidgets src/plugins/plugins.pro
qt_use_disable_mod widgets widgets src/src.pro
qt5-build_src_prepare
}
src_configure() {
export NINJA_PATH=/usr/bin/ninja
export NINJAFLAGS="${NINJAFLAGS:--j$(makeopts_jobs "${MAKEOPTS}" 999) -l$(makeopts_loadavg "${MAKEOPTS}" 0) -v}"
local myqmakeargs=(
--
-no-build-qtpdf
-printing-and-pdf
--webengine-python-version=python3
-system-opus
-system-webp
$(qt_use alsa)
$(qt_use !bindist proprietary-codecs)
$(qt_use geolocation webengine-geolocation)
$(qt_use kerberos webengine-kerberos)
$(qt_use pulseaudio)
$(usex screencast -webengine-webrtc-pipewire '')
-qt-ffmpeg # bug 831487
$(qt_use system-icu webengine-icu)
-no-webengine-re2 # bug 913923
)
qt5-build_src_configure
}
src_install() {
qt5-build_src_install
# bug 601472
if [[ ! -f ${D}${QT5_LIBDIR}/libQt5WebEngine.so ]]; then
die "${CATEGORY}/${PF} failed to build anything. Please report to https://bugs.gentoo.org/"
fi
}
pkg_preinst() {
elog "This version of Qt WebEngine is based on Chromium version 87.0.4280.144,"
elog "with additional security fixes from newer versions. Extensive as it is, the"
elog "list of backports is impossible to evaluate, but always bound to be behind"
elog "Chromium's release schedule."
elog "In addition, various online services may deny service based on an outdated"
elog "user agent version (and/or other checks). Google is already known to do so."
elog
elog "tldr: Your web browsing experience will be compromised."
}

6
dev-qt/qtwebkit/Manifest Normal file
View File

@@ -0,0 +1,6 @@
AUX qtwebkit-5.212.0_pre20200309-bison-3.7.patch 1613 BLAKE2B 0d2d173b5575ed5e1c52a07c5ceb14210bfb0a91e50a064df1e293451d64708822eb54d65947413efb13711d4c0c8e01441869248a4461446bd2bc122f07746b
AUX qtwebkit-5.212.0_pre20200309-glib-2.68.patch 887 BLAKE2B 1a191fd47693d70bc6ddbafcc8031bdd511c3be63121c1014471a93ebf3f1326a922277c42520a878192e0db4bb679cc007f27451ffac1aecdd86032b9d383c2
AUX qtwebkit-5.212.0_pre20200309-icu-68.patch 4981 BLAKE2B c031aa8ec816749fa35e3876d007a02d60a3a5ff0fc57a2774a13fc23559b39cc5bfeec6fedd96cb36d7eed5d1b388049d190673afbe5b0fd2f0343f8afd5344
AUX qtwebkit-5.212.0_pre20200309-python-3.9.patch 1100 BLAKE2B 2b44f8614a81141fd372d97cec2661b712e3cc68a01d5ed83d89c778eacc218a95a3273b7f464bbcd5380806859a40598cc166a8473fb30e76ca7e6b002b460f
DIST qtwebkit-5.212.0-alpha4.tar.xz 12528508 BLAKE2B 72d7444f270f47b62044cf683ed306803660bfbafe1450440ea29e43e3c0e6e841b6e860dfa8affc1b32b7c539448f04e22a7ae38cce055d37905dfb3240aab0
EBUILD qtwebkit-5.212.0_pre20200309-r3.ebuild 4094 BLAKE2B b983b77f55525691e93f1c89060cabb3609c63effece0021136f99a91c5096b4d45425984a703ed061231de4480f541f5f9a08c6cd5e0290742aec0a356f2196

View File

@@ -0,0 +1,46 @@
From d92b11fea65364fefa700249bd3340e0cd4c5b31 Mon Sep 17 00:00:00 2001
From: Dmitry Shachnev <mitya57@gmail.com>
Date: Tue, 4 Aug 2020 21:04:06 +0300
Subject: [PATCH] Let Bison generate the header directly, to fix build with
Bison 3.7
Starting with Bison 3.7, the generated C++ file #include's the header
by default, instead of duplicating it. So we should not delete it.
Remove the code to add #ifdef guards to the header, since Bison adds
them itself since version 2.6.3.
---
Source/WebCore/css/makegrammar.pl | 21 +--------------------
1 file changed, 1 insertion(+), 20 deletions(-)
diff --git a/Source/WebCore/css/makegrammar.pl b/Source/WebCore/css/makegrammar.pl
index 5d63b08102eb..9435701c7061 100644
--- a/Source/WebCore/css/makegrammar.pl
+++ b/Source/WebCore/css/makegrammar.pl
@@ -73,25 +73,6 @@
}
my $fileBase = File::Spec->join($outputDir, $filename);
-my @bisonCommand = ($bison, "-d", "-p", $symbolsPrefix, $grammarFilePath, "-o", "$fileBase.cpp");
+my @bisonCommand = ($bison, "--defines=$fileBase.h", "-p", $symbolsPrefix, $grammarFilePath, "-o", "$fileBase.cpp");
push @bisonCommand, "--no-lines" if $^O eq "MSWin32"; # Work around bug in bison >= 3.0 on Windows where it puts backslashes into #line directives.
system(@bisonCommand) == 0 or die;
-
-open HEADER, ">$fileBase.h" or die;
-print HEADER << "EOF";
-#ifndef CSSGRAMMAR_H
-#define CSSGRAMMAR_H
-EOF
-
-open HPP, "<$fileBase.cpp.h" or open HPP, "<$fileBase.hpp" or die;
-while (<HPP>) {
- print HEADER;
-}
-close HPP;
-
-print HEADER "#endif\n";
-close HEADER;
-
-unlink("$fileBase.cpp.h");
-unlink("$fileBase.hpp");
-

View File

@@ -0,0 +1,28 @@
https://github.com/qtwebkit/qtwebkit/pull/1058
From 5b698ba3faffd4e198a45be9fe74f53307395e4b Mon Sep 17 00:00:00 2001
From: Fabian Vogt <fvogt@suse.de>
Date: Wed, 7 Apr 2021 13:38:09 +0200
Subject: [PATCH] Remove invalid g_object declarations to fix build with glib
>= 2.68
g_object_ref_sink is defined as a macro meanwhile and so the build fails.
Just remove the declarations, glib.h is included anyway.
---
Source/WTF/wtf/glib/GRefPtr.h | 3 ---
1 file changed, 3 deletions(-)
diff --git a/Source/WTF/wtf/glib/GRefPtr.h b/Source/WTF/wtf/glib/GRefPtr.h
index 06133d82cb35..d9a1d2f145f5 100644
--- a/Source/WTF/wtf/glib/GRefPtr.h
+++ b/Source/WTF/wtf/glib/GRefPtr.h
@@ -29,9 +29,6 @@
#include <algorithm>
#include <glib.h>
-extern "C" void g_object_unref(gpointer);
-extern "C" gpointer g_object_ref_sink(gpointer);
-
namespace WTF {
enum GRefPtrAdoptType { GRefPtrAdopt };

View File

@@ -0,0 +1,120 @@
--- a/Source/WebCore/platform/text/icu/UTextProvider.h
+++ b/Source/WebCore/platform/text/icu/UTextProvider.h
@@ -80,12 +80,12 @@
// Ensure chunk offset is well formed if computed offset exceeds int32_t range.
ASSERT(offset < std::numeric_limits<int32_t>::max());
text->chunkOffset = offset < std::numeric_limits<int32_t>::max() ? static_cast<int32_t>(offset) : 0;
- isAccessible = TRUE;
+ isAccessible = true;
return true;
}
if (nativeIndex >= nativeLength && text->chunkNativeLimit == nativeLength) {
text->chunkOffset = text->chunkLength;
- isAccessible = FALSE;
+ isAccessible = false;
return true;
}
} else {
@@ -94,12 +94,12 @@
// Ensure chunk offset is well formed if computed offset exceeds int32_t range.
ASSERT(offset < std::numeric_limits<int32_t>::max());
text->chunkOffset = offset < std::numeric_limits<int32_t>::max() ? static_cast<int32_t>(offset) : 0;
- isAccessible = TRUE;
+ isAccessible = true;
return true;
}
if (nativeIndex <= 0 && !text->chunkNativeStart) {
text->chunkOffset = 0;
- isAccessible = FALSE;
+ isAccessible = false;
return true;
}
}
--- a/Source/WebCore/platform/text/icu/UTextProviderLatin1.cpp
+++ b/Source/WebCore/platform/text/icu/UTextProviderLatin1.cpp
@@ -100,23 +100,23 @@
if (index < uText->chunkNativeLimit && index >= uText->chunkNativeStart) {
// Already inside the buffer. Set the new offset.
uText->chunkOffset = static_cast<int32_t>(index - uText->chunkNativeStart);
- return TRUE;
+ return true;
}
if (index >= length && uText->chunkNativeLimit == length) {
// Off the end of the buffer, but we can't get it.
uText->chunkOffset = static_cast<int32_t>(index - uText->chunkNativeStart);
- return FALSE;
+ return false;
}
} else {
if (index <= uText->chunkNativeLimit && index > uText->chunkNativeStart) {
// Already inside the buffer. Set the new offset.
uText->chunkOffset = static_cast<int32_t>(index - uText->chunkNativeStart);
- return TRUE;
+ return true;
}
if (!index && !uText->chunkNativeStart) {
// Already at the beginning; can't go any farther.
uText->chunkOffset = 0;
- return FALSE;
+ return false;
}
}
@@ -144,7 +144,7 @@
uText->nativeIndexingLimit = uText->chunkLength;
- return TRUE;
+ return true;
}
static int32_t uTextLatin1Extract(UText* uText, int64_t start, int64_t limit, UChar* dest, int32_t destCapacity, UErrorCode* status)
@@ -336,7 +336,7 @@
static UBool uTextLatin1ContextAwareAccess(UText* text, int64_t nativeIndex, UBool forward)
{
if (!text->context)
- return FALSE;
+ return false;
int64_t nativeLength = uTextLatin1ContextAwareNativeLength(text);
UBool isAccessible;
if (uTextAccessInChunkOrOutOfRange(text, nativeIndex, nativeLength, forward, isAccessible))
@@ -356,7 +356,7 @@
ASSERT(newContext == UTextProviderContext::PriorContext);
textLatin1ContextAwareSwitchToPriorContext(text, nativeIndex, nativeLength, forward);
}
- return TRUE;
+ return true;
}
static int32_t uTextLatin1ContextAwareExtract(UText*, int64_t, int64_t, UChar*, int32_t, UErrorCode* errorCode)
--- a/Source/WebCore/platform/text/icu/UTextProviderUTF16.cpp
+++ b/Source/WebCore/platform/text/icu/UTextProviderUTF16.cpp
@@ -125,7 +125,7 @@
static UBool uTextUTF16ContextAwareAccess(UText* text, int64_t nativeIndex, UBool forward)
{
if (!text->context)
- return FALSE;
+ return false;
int64_t nativeLength = uTextUTF16ContextAwareNativeLength(text);
UBool isAccessible;
if (uTextAccessInChunkOrOutOfRange(text, nativeIndex, nativeLength, forward, isAccessible))
@@ -145,7 +145,7 @@
ASSERT(newContext == UTextProviderContext::PriorContext);
textUTF16ContextAwareSwitchToPriorContext(text, nativeIndex, nativeLength, forward);
}
- return TRUE;
+ return true;
}
static int32_t uTextUTF16ContextAwareExtract(UText*, int64_t, int64_t, UChar*, int32_t, UErrorCode* errorCode)
--- a/Source/WebCore/platform/text/TextCodecICU.cpp
+++ b/Source/WebCore/platform/text/TextCodecICU.cpp
@@ -308,7 +308,7 @@
m_converterICU = ucnv_open(m_canonicalConverterName, &err);
ASSERT(U_SUCCESS(err));
if (m_converterICU)
- ucnv_setFallback(m_converterICU, TRUE);
+ ucnv_setFallback(m_converterICU, true);
}
int TextCodecICU::decodeToBuffer(UChar* target, UChar* targetLimit, const char*& source, const char* sourceLimit, int32_t* offsets, bool flush, UErrorCode& err)

View File

@@ -0,0 +1,27 @@
From 78360c01c796b6260bf828bc9c8a0ef73c5132fd Mon Sep 17 00:00:00 2001
From: Konstantin Tokarev <annulen@yandex.ru>
Date: Wed, 3 Jun 2020 15:01:42 +0300
Subject: [PATCH] Fix compilation with Python 3.9: avoid passing encoding to
json.load()
In Python 2.7 UTF-8 is assumed by default, while in Python 3 this argument
is not supported.
Change-Id: Ic459d60a6b20bc1838d8771bc36ac41614fe61a9
---
Source/JavaScriptCore/generate-bytecode-files | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Source/JavaScriptCore/generate-bytecode-files b/Source/JavaScriptCore/generate-bytecode-files
index c5dab429c7b0..af3431275ecf 100644
--- a/Source/JavaScriptCore/generate-bytecode-files
+++ b/Source/JavaScriptCore/generate-bytecode-files
@@ -163,7 +163,7 @@ if __name__ == "__main__":
initBytecodesFile = openOrExit(initASMFileName, "w")
try:
- bytecodeSections = json.load(bytecodeFile, encoding = "utf-8")
+ bytecodeSections = json.load(bytecodeFile)
except:
print("Unexpected error parsing {0}: {1}".format(bytecodeJSONFile, sys.exc_info()))

View File

@@ -0,0 +1,154 @@
# Copyright 1999-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
if [[ ${PV} = *9999 ]]; then
EGIT_BRANCH="qtwebkit-5.212"
EGIT_REPO_URI="https://github.com/qtwebkit/qtwebkit.git"
inherit git-r3
else
MY_P="${PN}-${PV/_pre20200309/-alpha4}" # present as upgrade over previous snapshot
SRC_URI="https://github.com/annulen/webkit/releases/download/${MY_P}/${MY_P}.tar.xz"
KEYWORDS="amd64 arm arm64 ppc64 x86"
S="${WORKDIR}/${MY_P}"
fi
PYTHON_COMPAT=( python3_{7..13} )
USE_RUBY="ruby25 ruby26 ruby27 ruby30 ruby31"
inherit check-reqs cmake flag-o-matic python-any-r1 qmake-utils ruby-single toolchain-funcs
DESCRIPTION="WebKit rendering library for the Qt5 framework (deprecated)"
HOMEPAGE="https://www.qt.io/"
LICENSE="BSD LGPL-2+"
SLOT="5/5.212"
IUSE="geolocation gles2-only +gstreamer +hyphen +jit multimedia nsplugin opengl orientation +printsupport qml webp X"
REQUIRED_USE="
nsplugin? ( X )
qml? ( opengl )
?? ( gstreamer multimedia )
"
# Dependencies found at Source/cmake/OptionsQt.cmake
QT_MIN_VER="5.12.3:5"
BDEPEND="
${PYTHON_DEPS}
${RUBY_DEPS}
dev-lang/perl
dev-util/gperf
>=sys-devel/bison-2.4.3
sys-devel/flex
virtual/pkgconfig
"
DEPEND="
dev-db/sqlite:3
dev-libs/icu:=
dev-libs/libxml2
dev-libs/libxslt
>=dev-qt/qtcore-${QT_MIN_VER}
>=dev-qt/qtgui-${QT_MIN_VER}
>=dev-qt/qtnetwork-${QT_MIN_VER}
>=dev-qt/qtwidgets-${QT_MIN_VER}=
media-libs/libpng:0=
media-libs/woff2
virtual/jpeg:0
geolocation? ( >=dev-qt/qtpositioning-${QT_MIN_VER} )
gstreamer? (
dev-libs/glib:2
media-libs/gstreamer:1.0
media-libs/gst-plugins-bad:1.0
media-libs/gst-plugins-base:1.0
)
hyphen? ( dev-libs/hyphen )
multimedia? ( >=dev-qt/qtmultimedia-${QT_MIN_VER}[widgets] )
opengl? (
>=dev-qt/qtgui-${QT_MIN_VER}[gles2-only=]
>=dev-qt/qtopengl-${QT_MIN_VER}[gles2-only=]
)
orientation? ( >=dev-qt/qtsensors-${QT_MIN_VER} )
printsupport? ( >=dev-qt/qtprintsupport-${QT_MIN_VER} )
qml? (
>=dev-qt/qtdeclarative-${QT_MIN_VER}
>=dev-qt/qtwebchannel-${QT_MIN_VER}[qml]
)
webp? ( media-libs/libwebp:= )
X? (
x11-libs/libX11
x11-libs/libXcomposite
x11-libs/libXrender
)
"
RDEPEND="${DEPEND}"
CHECKREQS_DISK_BUILD="16G" # bug 417307
PATCHES=(
"${FILESDIR}/${P}-bison-3.7.patch" # bug 736499
"${FILESDIR}/${P}-icu-68.patch" # bug 753260
"${FILESDIR}/${P}-python-3.9.patch" # bug 766303
"${FILESDIR}/${P}-glib-2.68.patch" # bug 777759
)
_check_reqs() {
if [[ ${MERGE_TYPE} != binary ]] && is-flagq "-g*" && ! is-flagq "-g*0"; then
einfo "Checking for sufficient disk space to build ${PN} with debugging flags"
check-reqs_$1
fi
}
pkg_pretend() {
_check_reqs pkg_pretend
}
pkg_setup() {
_check_reqs pkg_setup
python-any-r1_pkg_setup
}
src_configure() {
# Respect CC, otherwise fails on prefix, bug #395875
tc-export CC
# Multiple rendering bugs on youtube, github, etc without this, bug #547224
append-flags $(test-flags -fno-strict-aliasing)
local mycmakeargs=(
-DPORT=Qt
-DENABLE_API_TESTS=OFF
-DENABLE_TOOLS=OFF
-DENABLE_GEOLOCATION=$(usex geolocation)
-DUSE_GSTREAMER=$(usex gstreamer)
-DUSE_LIBHYPHEN=$(usex hyphen)
-DENABLE_JIT=$(usex jit)
-DUSE_QT_MULTIMEDIA=$(usex multimedia)
-DENABLE_NETSCAPE_PLUGIN_API=$(usex nsplugin)
-DENABLE_OPENGL=$(usex opengl)
-DENABLE_PRINT_SUPPORT=$(usex printsupport)
-DENABLE_DEVICE_ORIENTATION=$(usex orientation)
-DENABLE_WEBKIT2=$(usex qml)
$(cmake_use_find_package webp WebP)
-DENABLE_X11_TARGET=$(usex X)
)
if has_version "virtual/rubygems[ruby_targets_ruby27]"; then
mycmakeargs+=( -DRUBY_EXECUTABLE=$(type -P ruby27) )
elif has_version "virtual/rubygems[ruby_targets_ruby26]"; then
mycmakeargs+=( -DRUBY_EXECUTABLE=$(type -P ruby26) )
else
mycmakeargs+=( -DRUBY_EXECUTABLE=$(type -P ruby25) )
fi
cmake_src_configure
}
src_install() {
cmake_src_install
# bug 572056
if [[ ! -f ${ED}$(qt5_get_libdir)/libQt5WebKit.so ]]; then
eerror "${CATEGORY}/${PF} could not build due to a broken ruby environment."
die 'Check "eselect ruby" and ensure you have a working ruby in your $PATH'
fi
}

View File

@@ -3,5 +3,8 @@ AUX nvidia-cuda-toolkit-glibc-2.41-r1.patch 3163 BLAKE2B a3d5dbc50898b1502a342c3
AUX parse_manifest.py 8488 BLAKE2B fe4748e41727e717d99b3b7f294d7c8e67b44e3f352f27a76c386502870e6134217ead3d93714755f50b0393d514b9e317748aed89637c660e354d53354d1485 SHA512 ab90e614bfd729a0a90a7373d58fcf2f6e7ba3beb8a00841b87e8240c9386a678daf551f4fcc89040f10d46d159e316442978c60b1a8960070576cfb7a11d52c
DIST cuda_12.8.1_570.124.06_linux.run 5382238770 BLAKE2B 6dff4eb32e97f960bdb2bd57d0dbf0920a9f85c19c26199adcac64eb9d30d7b6f6e2691c7a7a0b5b8249c7860cc685931080a3775c804f6e4e3294c43380e94f SHA512 2ac14ba054bf01924e1953053850f679ebdbc2b9150715398365464eae9d686cde2b82abb8f385b74e4eafa8d68421a9ea216c7647c08956ccba8b2299b50a6e
DIST cuda_12.8.1_570.124.06_linux_sbsa.run 4606631442 BLAKE2B 142c3a231f2a621c4d6a74059b72125baca83d2653ba95c726e3e3c12cf8a0a6b75ced7c0bdaa98450c3d2c2224e88886598191b594ac69be52ba5765bb30592 SHA512 108a75e0ca098b0fd514b3380d42b4752669201dcd68c41f2c1ecf9f29c216ac5937fa33d60e11be06e8a2ad8ae73aa49e6685a363ea77af943e1a1b936b8349
DIST cuda_12.9.0_575.51.03_linux.run 5839691742 BLAKE2B aead43ad3c127fcbe4e642ca3f82e46fe328aeb11d0b3b5abf2784948ce8b46dc703d959c9dd8dbe87697f52bc294636950129a60e2106d26e20e4eeb297c6f3 SHA512 92bef212ed5b5583ba1fdc12add2d7d9e8ced9abb48e336f5cd71bf507a841a855b0d7232d90d1c730ee21f5da2106c6f4acf8100852c1719e1a16715a665878
DIST cuda_12.9.0_575.51.03_linux_sbsa.run 5058547799 BLAKE2B c8b482fcd45529c2f810292be182cc6de703ab9e25018a220e18cb1b163e9bcb5c1648a898a658d678c5e229b83264b9b5a14309adca5c0de1189835e7d1fa18 SHA512 9d6d8b2e0529815eeb18aeefcf2e151c91960c0c7e29917b02d0e66cc68f396dda67fda24456031a94fb4d21348087428c26d18b25d891af621ede492a5d29cf
EBUILD nvidia-cuda-toolkit-12.8.1.ebuild 10532 BLAKE2B c40be32d8ec1da1ead0394212e632dc690c729ad7b0e7703f5cc1308ea8608a3de9f2cc9927ec8d47b430a1b0c1f7c456c558853b6c2e302522dd7941a9ed210 SHA512 05e6fa35eb4041e7cafb1c20efe314e997d025ca811690ba8efbad0a33f5eca4e6d08599cd1542cf1ed26f2ff94d69a65c3bb400ba117fc8493736c82da00451
EBUILD nvidia-cuda-toolkit-12.9.0.ebuild 10531 BLAKE2B 302f68260a7debd4cc0f2e46e00df71cc8ac1aa474aa061aa71321efc9d521470af938ffa3bca52a075d82a2e2d5f274843595968ffa8a229f8598a5c374f231 SHA512 34d56ed82cd35872b25c761eb5a3e79ba487dbdf97c3b3ad7dd8eba305a68dd4b0102d5d4394ead0b4ff656a94faaf71aec5e94691d21c4f705d313408c39b73
MISC metadata.xml 761 BLAKE2B a6ae653c6206cbc05349297499b6dde91bce6d543e10bd5ea915cfe9729dfa6f1eb954ae09c2e4d3997f51315ae090b38606c21b5099e750596ea66fdd93e817 SHA512 9133517d805201d25b651e48abed90394c88ef33a2571ab20b3b19d365f85a90478486c7c087c9150d7d9f6e4026873c5236c64ed649fd3bfc8f9b81479dcc59

View File

@@ -0,0 +1,372 @@
# Copyright 1999-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
# shellcheck disable=SC2317
EAPI=8
PYTHON_COMPAT=( python3_{11..13} )
inherit check-reqs toolchain-funcs
inherit python-r1
DRIVER_PV="575.51.03"
GCC_MAX_VER="14"
CLANG_MAX_VER="19"
DESCRIPTION="NVIDIA CUDA Toolkit (compiler and friends)"
HOMEPAGE="https://developer.nvidia.com/cuda-zone"
SRC_URI="
amd64? (
https://developer.download.nvidia.com/compute/cuda/${PV}/local_installers/cuda_${PV}_${DRIVER_PV}_linux.run
)
arm64? (
https://developer.download.nvidia.com/compute/cuda/${PV}/local_installers/cuda_${PV}_${DRIVER_PV}_linux_sbsa.run
)
"
S="${WORKDIR}"
LICENSE="NVIDIA-CUDA"
SLOT="0/${PV}" # UNSLOTTED
# SLOT="${PV}" # SLOTTED
KEYWORDS="-* ~amd64 ~arm64 ~amd64-linux ~arm64-linux"
IUSE="debugger examples profiler rdma sanitizer"
RESTRICT="bindist mirror strip test"
REQUIRED_USE="${PYTHON_REQUIRED_USE}"
# since CUDA 11, the bundled toolkit driver (== ${DRIVER_PV}) and the
# actual required minimum driver version are different.
RDEPEND="
|| (
<sys-devel/gcc-$(( GCC_MAX_VER + 1 ))_pre[cxx]
<llvm-core/clang-$(( CLANG_MAX_VER + 1 ))_pre
)
sys-process/numactl
debugger? (
${PYTHON_DEPS}
)
examples? (
media-libs/freeglut
media-libs/glu
)
rdma? ( sys-cluster/rdma-core )
"
BDEPEND="
$(python_gen_any_dep '
dev-python/defusedxml[${PYTHON_USEDEP}]
')
"
# CUDA_PATH="/opt/cuda-${PV}" #950207
CUDA_PATH="/opt/cuda"
QA_PREBUILT="${CUDA_PATH#/}/*"
PATCHES=(
"${FILESDIR}/nvidia-cuda-toolkit-glibc-2.41-r1.patch"
)
python_check_deps() {
python_has_version "dev-python/defusedxml[${PYTHON_USEDEP}]"
}
cuda-toolkit_check_reqs() {
if use amd64; then
export CHECKREQS_DISK_BUILD="6645M"
elif use arm64; then
export CHECKREQS_DISK_BUILD="6412M"
fi
"check-reqs_pkg_${EBUILD_PHASE}"
}
cuda_verify() {
if has_version "sys-apps/grep[pcre]"; then
local DRIVER_PV_info
DRIVER_PV_info="$(bash "${DISTDIR}/${A}" --info | grep -oP "cuda_${PV}.*run" | cut -d '_' -f 3)"
if [[ "${DRIVER_PV}" != "${DRIVER_PV_info}" ]]; then
die "check DRIVER_PV is ${DRIVER_PV} and should be ${DRIVER_PV_info}"
fi
fi
# rest only works in with unpacked sources
[[ "${EBUILD_PHASE}" != prepare ]] && return
# run self checks
local compiler_versions GCC_HAS_VER CLANG_HAS_VER
compiler_versions="$(
grep -oP "unsupported (GNU|clang) version.*(gcc versions later than|clang version must be less than) [0-9]*" \
"${S}"/builds/cuda_nvcc/targets/*/include/crt/host_config.h
)"
GCC_HAS_VER="$( echo "${compiler_versions}" | grep gcc | grep -oP "(?<=than )[0-9]*")"
if [[ "${GCC_MAX_VER}" -ne "${GCC_HAS_VER}" ]]; then
eqawarn "check GCC_MAX_VER is ${GCC_MAX_VER} and should be ${GCC_HAS_VER}"
fi
CLANG_HAS_VER="$(( $(echo "${compiler_versions}" | grep clang | grep -oP "(?<=than )[0-9]*") - 1 ))"
if [[ "${CLANG_MAX_VER}" -ne "${CLANG_HAS_VER}" ]]; then
eqawarn "check CLANG_MAX_VER is ${CLANG_MAX_VER} and should be ${CLANG_HAS_VER}"
fi
}
pkg_pretend() {
cuda-toolkit_check_reqs
}
pkg_setup() {
cuda-toolkit_check_reqs
# we need python for manifest parsing and to determine the supported python versions for cuda-gdb
python_setup
if use amd64; then
narch=x86_64
elif use arm64; then
narch=sbsa
else
die "unknown arch ${ARCH}"
fi
export narch
}
src_unpack() {
cuda_verify
local exclude=(
"cuda-installer"
"*-uninstaller"
"NVIDIA-Linux-${narch}-${DRIVER_PV}.run"
"builds/cuda_documentation"
"builds/cuda_nsight"
"builds/cuda_nvvp"
"builds/nsight_compute"
"builds/nsight_systems"
"builds/nvidia_fs"
)
bash "${DISTDIR}/${A}" --tar xf -X <(printf "%s\n" "${exclude[@]}") || die "failed to extract ${A}"
}
src_configure() {
:
}
src_compile() {
:
}
src_install() {
local -x SKIP_COMPONENTS=(
"Kernel_Objects"
"Visual_Tools"
"Documentation" # obsolete
"cuda-gdb-src" # not used
)
! use debugger && SKIP_COMPONENTS+=( "cuda-gdb" )
! use examples && SKIP_COMPONENTS+=( "Demo_Suite" )
! use profiler && SKIP_COMPONENTS+=( "cuda-cupti" "cuda-profiler-api" "nvprof" )
! use sanitizer && SKIP_COMPONENTS+=( "compute-sanitizer" )
dodir "${CUDA_PATH}"
into "${CUDA_PATH}"
dofile() {
debug-print-function "${FUNCNAME[0]}" "$@"
if [[ $# -ne 1 ]] && [[ $# -ne 2 ]]; then
die "${FUNCNAME[0]} must receive one or two arguments"
fi
local _DESTDIR
_DESTDIR="$(dirname "${CUDA_PATH}/${1%/}")${2:+/${2%/}}"
mkdir -p "${ED}${_DESTDIR}" || die "mkdir ${_DESTDIR} failed"
local dir
dir="$(dirname "${1}")"
if test -z "$(find "${dir}" -maxdepth 1 -name "$(basename "$1")" -print -quit)"; then
if [[ -e "${ED}${_DESTDIR}/$(basename "${1}")" ]]; then
return
fi
if [[ "$1" == "targets/x86_64-linux/lib/stubs/libcusolverMg*" ]] ||
[[ "$1" == "targets/x86_64-linux/lib/libcusparse.so.*" ]]; then
return
fi
return
fi
if [[ -e "${ED}${_DESTDIR}/$(basename "${1}")" ]]; then
# skip noisy warnings
if [[ "$(basename "${1}")" == "include" ]] ||
[[ "$(basename "${1}")" == "lib64" ]]; then
return
fi
eqawarn "${ED}${_DESTDIR}/$(basename "${1}") exists"
return
fi
eval mv -i "${1}" "${ED}${_DESTDIR}" || die "mv failed ${PWD} / ${1} -> ${ED} ${_DESTDIR}"
}
dopcfile() {
[[ $# -eq 0 ]] && return
dodir "${CUDA_PATH}/pkgconfig"
cat > "${ED}${CUDA_PATH}/pkgconfig/${1}-${2}.pc" <<-EOF || die "dopcfile"
cudaroot=${EPREFIX}${CUDA_PATH}
libdir=\${cudaroot}/targets/${narch}-linux/lib${4}
includedir=\${cudaroot}/targets/${narch}-linux/include
Name: ${1}
Description: ${3}
Version: ${2}
Libs: -L\${libdir} -l${1}
Cflags: -I\${includedir}
EOF
}
pushd builds >/dev/null || die
fix_executable_bit=(
cuda_cupti/extras/CUPTI/samples/pc_sampling_utility/pc_sampling_utility_helper.h
cuda_cupti/extras/CUPTI/samples/pc_sampling_continuous/libpc_sampling_continuous.pl
libcufile/gds/tools/run_gdsio.cfg
)
if use amd64; then
fix_executable_bit+=(
cuda_opencl/targets/*/include/CL/cl.hpp
libcufile/targets/*/lib/libcufile_rdma_static.a
libcufile/targets/*/lib/libcufile_static.a
)
fi
chmod -x "${fix_executable_bit[@]}" || die "failed chmod"
popd >/dev/null || die
ebegin "parsing manifest" "${S}/manifests/cuda_"*.xml # {{{
"${EPYTHON}" "${FILESDIR}/parse_manifest.py" "${S}/manifests/cuda_"*".xml" &> "${T}/install.sh" \
|| die "failed to parse manifest"
# shellcheck disable=SC1091
source "${T}/install.sh" || die "failed to source install script"
eend $? # }}}
if use debugger; then
if [[ -d "${ED}/${CUDA_PATH}/extras/Debugger/lib64" ]]; then
rmdir "${ED}/${CUDA_PATH}/extras/Debugger/lib64" || die "remove debugger lib64"
fi
find "${ED}/${CUDA_PATH}/bin" -maxdepth 1 -name "cuda-gdb-*-tui" -print0 | while read -rd $'\0' tui_name; do
impl="$(basename "${tui_name}" | cut -d '-' -f 3 | tr '.' '_')"
if ! has "${impl}" "${PYTHON_COMPAT[@]}" || ! use "python_targets_${impl}"; then
rm "${tui_name}" || die "tui-name rm ${tui_name}"
sed -e "/$(basename "${tui_name}")\"/d" -i "${ED}/${CUDA_PATH}/bin/cuda-gdb" || die "tui_name sed"
fi
done
fi
# remove rdma libs (unless USE=rdma)
if ! use rdma; then
rm "${ED}/${CUDA_PATH}/targets/${narch}-linux/lib/libcufile_rdma"* || die "failed to remove rdma files"
fi
# Add include and lib symlinks
dosym "targets/${narch}-linux/include" "${CUDA_PATH}/include"
dosym "targets/${narch}-linux/lib" "${CUDA_PATH}/lib64"
find "${ED}/${CUDA_PATH}" -empty -delete || die
local ldpathextradirs pathextradirs
use debugger && ldpathextradirs+=":${EPREFIX}${CUDA_PATH}/extras/Debugger/lib64"
use profiler && ldpathextradirs+=":${EPREFIX}${CUDA_PATH}/extras/CUPTI/lib64"
local revord=$(( 999999 - $(printf "%02d%02d%02d" "$(ver_cut 1)" "$(ver_cut 2)" "$(ver_cut 3)") ))
newenvd - "99cuda${revord}" <<-EOF
PATH=${EPREFIX}${CUDA_PATH}/bin${pathextradirs}
PKG_CONFIG_PATH=${EPREFIX}${CUDA_PATH}/pkgconfig
LDPATH=${EPREFIX}${CUDA_PATH}/lib64:${EPREFIX}${CUDA_PATH}/nvvm/lib64${ldpathextradirs}
EOF
# CUDA prepackages libraries, don't revdep-build on them
insinto /etc/revdep-rebuild
newins - "80${PN}${revord}" <<-EOF
SEARCH_DIRS_MASK="${EPREFIX}${CUDA_PATH}"
EOF
# https://bugs.gentoo.org/926116
insinto /etc/sandbox.d
newins - "80${PN}" <<-EOF
SANDBOX_PREDICT="/proc/self/task"
EOF
# TODO drop and replace with runtime detection similar to what python does {{{
# ATTENTION: change requires revbump, see link below for supported GCC # versions
# https://docs.nvidia.com/cuda/cuda-installation-guide-linux/index.html#system-requirements
local cuda_supported_gcc=( 8.5 9.5 10 11 12 13 "${GCC_MAX_VER}" )
sed \
-e "s:CUDA_SUPPORTED_GCC:${cuda_supported_gcc[*]}:g" \
"${FILESDIR}"/cuda-config.in > "${ED}/${CUDA_PATH}/bin/cuda-config" || die
fperms +x "${CUDA_PATH}/bin/cuda-config"
# }}}
# skip til cudnn has been changed #950207
# if [[ "${SLOT}" != "${PV}" ]]; then
# dosym "${CUDA_PATH}" "${CUDA_PATH%"-${PV}"}"
# fi
fowners -R root:root "${CUDA_PATH}"
}
pkg_postinst_check() {
if tc-is-gcc &&
ver_test "$(gcc-major-version)" -gt "${GCC_MAX_VER}"; then
ewarn
ewarn "gcc > ${GCC_MAX_VER} will not work with CUDA"
ewarn
ewarn "Append --ccbin= pointing to a gcc bindir to the nvcc compiler flags (NVCCFLAGS)"
ewarn "or set NVCC_CCBIN to the same bindir."
ewarn " NVCCFLAGS=\"--ccbin=$(eval echo "${EPREFIX}/usr/*-linux-gnu/gcc-bin/${GCC_MAX_VER}")\""
ewarn " NVCC_CCBIN=$(eval echo "${EPREFIX}/usr/*-linux-gnu/gcc-bin/${GCC_MAX_VER}")"
ewarn
fi
if tc-is-clang &&
ver_test "$(clang-major-version)" -gt "${CLANG_MAX_VER}"; then
ewarn
ewarn "clang > ${CLANG_MAX_VER} will not work with CUDA"
ewarn
ewarn "Append --ccbin= pointing to a clang bindir to the nvcc compiler flags (NVCCFLAGS)"
ewarn "or set NVCC_CCBIN to the same bindir."
ewarn " NVCCFLAGS=\"--ccbin=$(eval echo "${EPREFIX}/usr/lib/llvm/*/bin${CLANG_MAX_VER}")\""
ewarn " NVCC_CCBIN=$(eval echo "${EPREFIX}/usr/lib/llvm/*/bin${CLANG_MAX_VER}")"
ewarn
fi
}
pkg_postinst() {
if [[ ${MERGE_TYPE} != binary ]]; then
pkg_postinst_check
fi
if use profiler; then
einfo
einfo "nvidia-drivers restricts access to performance counters."
einfo "You'll need to run profiling tools (nvprof) "
einfo "using sudo (needs cap SYS_ADMIN) or add the following line to "
einfo "a modprobe configuration file "
einfo "(e.g. /etc/modprobe.d/nvidia-prof.conf): "
einfo
einfo "options nvidia NVreg_RestrictProfilingToAdminUsers=0"
einfo
fi
}

View File

@@ -1,7 +1,12 @@
AUX freecad-0.21.0-0001-Gentoo-specific-disable-ccache-usage.patch 381 BLAKE2B 2fe05252a4e7846006c5f4e679eae5416ede589b9a6ad5fc30425933bedf933bf586b711c2c7d6a59c3881d454ea76ca39e0556a5a31c3769032694f0858e264 SHA512 731befc86267de4e5fa2caf619a8ae9692580d7025ebc26a80f6744a3104263622c38d87d0d8a263a1a15ef1c1d78c9ff3351aa463a9943941bd7d96d946e516
AUX freecad-1.0.0-r1-Gentoo-specific-don-t-check-vcs.patch 347 BLAKE2B 1c8119aec9408d77db8e09c34b86ba6a8da268509959ba5839b1ad0bb6c5b4023326055170836bf164d0d1e0a13a91ac601bde7eb6b184e4f9b1425e93ce9d38 SHA512 63bb73d0de1e12d3a34a2d055e3ddc2bdbdae5c1c67cd7c9a26047abfeda48943d793f30d190ae28f6f8e9ee7072f671badd4b8f3df29824b401bed0dbf90ed5
AUX freecad-1.0.0-r4-error-cannot-convert-bool-to-App-DocumentInitFlags.patch 1343 BLAKE2B 07b23abbe98a7b85e4d8d60b76f3e414d0a400f33d9b480b5eb7f06a0a6dc65037ced5666a0bf87fa34626c641e212a546969b21279f086a21aa3e98262cf3c5 SHA512 ce4bd01dd2dd0e8cf053397c9217128b27a88cbc845635fc80b8cde42815e9c34668c5919676f9c4663d3662aa203c2fab1c9838ba5a7e0ed1687c157d64e749
AUX freecad-9999-Gentoo-specific-don-t-check-vcs.patch 322 BLAKE2B 431b69d749c5639d2407207632ab48f1af36319290c1016985ed2431fe7a5314a5df8373a0a5235fcd08de5762dd090dd89b73846703348d5e2e0fac7c9c7048 SHA512 f67b3bfa013a497d0372649d9339665dd5c48b2dd00814e55ee6fcad6580a8219139f6c1931f2da5e210d181205af55e19b91a4d08b4d0dc7d45fcef358eb0ed
AUX freecad-9999-tests-src-Qt-only-build-test-for-BUILD_GUI-ON.patch 469 BLAKE2B 23e56fbc49b3c3d5ede85e6ec15d26c88c93590fce105e0b75e8b0bd3fee125c500cd59d8db0144c610edb371df318396e056333ec7a411f7647b38d18006efc SHA512 82737af95603ff1f667bf49ee43b85b411eeeb5fd9b577ad7fca6e02bcbfda5c3bbb6c70386e5f69d2181d6226574f82cb68b7e66dfe8f4bb14d946f594582cf
DIST freecad-1.0.0.tar.gz 91599325 BLAKE2B 65540eb42e7d508456c9edbf2122e0f288708c33e6d00d3c8c45550e7a614f658f91ba25978a66819bc094b7138aab72a89c0172d0841be1ff798ade5a8bdc64 SHA512 afc1079ea04fd5bb8135f8ad1012d9e4e05c8839dd0a4e00253eada58fe018f445c1200d1ca7ac9f268644c946cbf55b7b313dc3d6bd010f9da3a3334103b7db
EBUILD freecad-1.0.0-r3.ebuild 8822 BLAKE2B 4ffdcc7aa97922b7a52f30bc871ac751560b8b706fec978f05a7b9590913eea94347add1b950652db137dae43d99abad2bad9d93ca1ec2534eed964fc4c4200e SHA512 4f3de1aebd529b6ddd6b1e23c071355c567cf0e04b79c485537440cbde2bd6589f1befefbb87d05bb396c8aa0dfe594b305a5bef865ab7fd62f40892688d86f3
DIST freecad-18423.patch 3094 BLAKE2B a5f4d1b7767e14ae61052348d57fcdaa4f73d2356daea1d2b89b3629faf92aadc1b1fd5c94443f1a5cc9917cf2026a19c28de990506b8da5886863354e581dc9 SHA512 a4dec8c9e6ac489c81cf7d4b81090614880a94664a0844c2ceab472fd410364aab555287f3233c965791d9fbf72f6faa36645910cc0f8bfcb9fa1d34c29f6a69
DIST freecad-20710.patch 902 BLAKE2B ce69e5714c06e969bd533c54be9f7de0c23fc881a5259979c444aecc1f5cbb175b01c7a61bf3ebc35e0eeb7f9aabfba729499e449cbf2a06055df6aecc8465cd SHA512 1df1b0941d1ccbf9aef0f882cd17e647448acb9267a2fae503b4427b80620374e5d4e1a1bb651fab8b631db3ff4d53748951d75e244a9ffddda817b6d4971a84
EBUILD freecad-1.0.0-r4.ebuild 13078 BLAKE2B c5395afddd62ff62977f8fe70421b3bf18b70828e55240d4f57c724ccdd678a0f32f46c4a5830da951197f67f23545bb5fbc6aef1d7b768ea7f7ddf5ca992e8d SHA512 45b422fb99d7e6d7eb1602c5edc7cdfc325fce8d3daf97b50f08678887c6d6ce0003123624ccddfe423bf6f397294bda4d8ab52f66607b889b380ea91676b6ad
EBUILD freecad-1.0.0-r5.ebuild 13148 BLAKE2B 477ef2220d8182edda222adfa62f09aba77ce1811c16926ab15a2169d1e8d365e90feebfa90fc23ec158bbbe741f7d5cf798947c6ba04b21e0bdcc29c1e48ff8 SHA512 f6f6a76351d00611c828b74660c40abd42a84af10d6cb5cbffd7e7fe7e2d136c36f50314f0cb4cddffe5449e3126c39c466719d0903c93c822d08845f76885bc
EBUILD freecad-9999.ebuild 14914 BLAKE2B 692bee4435497d51adf15827b50cad58e67de2781873df1e7aafcfcc189d1f68b672101bbd471c8eda4f20fc2c8ed124ec9405accd2f6e4507ecc3e0df6c8157 SHA512 6394ba6a63d96412dc591ef5057331febb287fd38a6027808aee506eb2d56b8b5823d217a55cf9168a686d895cb9ce002f822c82b04ce332d8f2deeb59f6fc81
MISC metadata.xml 3060 BLAKE2B 7ad73261d4457110b7fbfa4a9304fe0e9fe7461bb01f49960b22c5a6c8433e8af8d416d0d28850b25c29158fd73847b2f0302cac73102c83019da00a13cc6786 SHA512 5b5e7b44f22b7fadc8ee79adb59308f1c5e398438f8304bb78829b73a65fea145a71a7d8cf1c5b0a9193455f1570fe57fdbd8aaa49bea6ee3a121faa23258515

View File

@@ -0,0 +1,30 @@
From b629af0a3125f9cf40814ed254ab1259b2b3401a Mon Sep 17 00:00:00 2001
From: Paul Zander <negril.nx@gmail.com>
Date: Tue, 8 Apr 2025 22:15:17 +0200
Subject: [PATCH] =?UTF-8?q?error:=20cannot=20convert=20=E2=80=98bool?=
=?UTF-8?q?=E2=80=99=20to=20=E2=80=98App::DocumentInitFlags=E2=80=99?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Caused by https://github.com/FreeCAD/FreeCAD/pull/19136
Partial fix in https://github.com/FreeCAD/FreeCAD/pull/20058
Signed-off-by: Paul Zander <negril.nx@gmail.com>
diff --git a/src/Mod/Cloud/App/AppCloud.cpp b/src/Mod/Cloud/App/AppCloud.cpp
index 3ec811dc04..78b6d7f819 100644
--- a/src/Mod/Cloud/App/AppCloud.cpp
+++ b/src/Mod/Cloud/App/AppCloud.cpp
@@ -1451,7 +1451,7 @@ void Cloud::Module::LinkXSetValue(std::string filename)
string newName;
Document* currentDoc = GetApplication().getActiveDocument();
newName = GetApplication().getUniqueDocumentName("unnamed");
- newDoc = GetApplication().newDocument(newName.c_str(), (const char*)path.c_str(), true);
+ newDoc = GetApplication().newDocument(newName.c_str(), (const char*)path.c_str(), {.createView=true});
GetApplication().setActiveDocument(newDoc);
this->cloudRestore((const char*)path.c_str());
GetApplication().setActiveDocument(currentDoc);
--
2.49.0

View File

@@ -1,11 +1,11 @@
# Copyright 1999-2024 Gentoo Authors
# Copyright 1999-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
PYTHON_COMPAT=( python3_{10..13} )
PYTHON_COMPAT=( python3_{11..13} )
inherit check-reqs cmake flag-o-matic optfeature python-single-r1 qmake-utils xdg
inherit check-reqs cmake cuda edo flag-o-matic optfeature python-single-r1 qmake-utils toolchain-funcs xdg virtualx
DESCRIPTION="Qt based Computer Aided Design application"
HOMEPAGE="https://www.freecad.org/ https://github.com/FreeCAD/FreeCAD"
@@ -17,7 +17,11 @@ if [[ ${PV} == *9999* ]]; then
EGIT_REPO_URI="https://github.com/${MY_PN}/${MY_PN}.git"
S="${WORKDIR}/freecad-${PV}"
else
SRC_URI="https://github.com/${MY_PN}/${MY_PN}/archive/refs/tags/${PV}.tar.gz -> ${P}.tar.gz"
SRC_URI="
https://github.com/${MY_PN}/${MY_PN}/archive/refs/tags/${PV}.tar.gz -> ${P}.tar.gz
https://github.com/FreeCAD/FreeCAD/commit/8934af10128f0bd2d0ffada946d1c93bc5d8869f.patch -> ${PN}-18423.patch
https://github.com/FreeCAD/FreeCAD/commit/d91b3e051789623f0bc1eff65947c361e7a661d0.patch -> ${PN}-20710.patch
"
KEYWORDS="~amd64"
S="${WORKDIR}/FreeCAD-${PV}"
fi
@@ -84,7 +88,6 @@ RDEPEND="
dev-python/matplotlib[${PYTHON_USEDEP}]
>=dev-python/pivy-0.6.5[${PYTHON_USEDEP}]
dev-python/pyside:6=[uitools(-),gui,svg,${PYTHON_USEDEP}]
' )
virtual/glu
virtual/opengl
@@ -102,6 +105,13 @@ RDEPEND="
DEPEND="${RDEPEND}
>=dev-cpp/eigen-3.3.1:3
dev-cpp/ms-gsl
test? (
gui? (
$(python_gen_cond_dep '
dev-python/pyside:6=[tools(-),${PYTHON_USEDEP}]
' )
)
)
"
BDEPEND="
dev-lang/swig
@@ -112,12 +122,78 @@ PATCHES=(
"${FILESDIR}"/${PN}-1.0.0-r1-Gentoo-specific-don-t-check-vcs.patch
"${FILESDIR}"/${PN}-0.21.0-0001-Gentoo-specific-disable-ccache-usage.patch
"${FILESDIR}"/${PN}-9999-tests-src-Qt-only-build-test-for-BUILD_GUI-ON.patch
"${DISTDIR}/${PN}-18423.patch" # vtk-9.4
"${DISTDIR}/${PN}-20710.patch" # DESTDIR in env
)
DOCS=( CODE_OF_CONDUCT.md README.md )
CHECKREQS_DISK_BUILD="2G"
cuda_get_host_compiler() {
if [[ -n "${NVCC_CCBIN}" ]]; then
echo "${NVCC_CCBIN}"
return
fi
if [[ -n "${CUDAHOSTCXX}" ]]; then
echo "${CUDAHOSTCXX}"
return
fi
einfo "Trying to find working CUDA host compiler"
if ! tc-is-gcc && ! tc-is-clang; then
die "$(tc-get-compiler-type) compiler is not supported"
fi
local compiler compiler_type compiler_version
local package package_version
local NVCC_CCBIN_default
compiler_type="$(tc-get-compiler-type)"
compiler_version="$("${compiler_type}-major-version")"
# try the default compiler first
NVCC_CCBIN="$(tc-getCXX)"
NVCC_CCBIN_default="${NVCC_CCBIN}-${compiler_version}"
compiler="${NVCC_CCBIN/%-${compiler_version}}"
# store the package so we can re-use it later
if tc-is-gcc; then
package="sys-devel/${compiler_type}"
elif tc-is-clang; then
package="llvm-core/${compiler_type}"
else
die "$(tc-get-compiler-type) compiler is not supported"
fi
package_version="${package}"
ebegin "testing ${NVCC_CCBIN_default} (default)"
while ! nvcc -v -ccbin "${NVCC_CCBIN}" - -x cu <<<"int main(){}" &>> "${T}/cuda_get_host_compiler.log" ; do
eend 1
while true; do
# prepare next version
if ! package_version="<$(best_version "${package_version}")"; then
die "could not find a supported version of ${compiler}"
fi
NVCC_CCBIN="${compiler}-$(ver_cut 1 "${package_version/#<${package}-/}")"
[[ "${NVCC_CCBIN}" != "${NVCC_CCBIN_default}" ]] && break
done
ebegin "testing ${NVCC_CCBIN}"
done
eend $?
echo "${NVCC_CCBIN}"
export NVCC_CCBIN
}
pkg_setup() {
check-reqs_pkg_setup
python-single-r1_pkg_setup
@@ -127,6 +203,9 @@ src_prepare() {
# Fix desktop file
sed -e 's/Exec=FreeCAD/Exec=freecad/' -i src/XDGData/org.freecad.FreeCAD.desktop || die
# deprecated in python-3.11 removed in python-3.13
sed -e '/import imghdr/d' -i src/Mod/CAM/CAMTests/TestCAMSanity.py || die
cmake_src_prepare
}
@@ -134,12 +213,25 @@ src_configure() {
# -Werror=odr, -Werror=lto-type-mismatch
# https://bugs.gentoo.org/875221
# https://github.com/FreeCAD/FreeCAD/issues/13173
append-flags -fno-strict-aliasing
filter-lto
# Fix building tests
append-ldflags -Wl,--copy-dt-needed-entries
if ! tc-ld-is-mold; then # 940524
append-ldflags -Wl,--copy-dt-needed-entries
fi
# cmake-4
# https://github.com/FreeCAD/FreeCAD/issues/20246
: "${CMAKE_POLICY_VERSION_MINIMUM:=3.10}"
export CMAKE_POLICY_VERSION_MINIMUM
local mycmakeargs=(
-DCMAKE_POLICY_DEFAULT_CMP0144="OLD" # FLANN_ROOT
-DCMAKE_POLICY_DEFAULT_CMP0167="OLD" # FindBoost
-DCMAKE_POLICY_DEFAULT_CMP0175="OLD" # add_custom_command
-DCMAKE_POLICY_DEFAULT_CMP0153="OLD" # exec_program
-DBUILD_DESIGNER_PLUGIN=$(usex designer)
-DBUILD_FORCE_DIRECTORY=ON # force building in a dedicated directory
-DBUILD_GUI=$(usex gui)
@@ -174,14 +266,14 @@ src_configure() {
-DBUILD_POINTS=$(usex points)
-DBUILD_REVERSEENGINEERING=$(usex reverse)
-DBUILD_ROBOT=$(usex robot)
-DBUILD_SANDBOX=OFF
# -DBUILD_SANDBOX=OFF
-DBUILD_SHOW=$(usex gui)
-DBUILD_SKETCHER=ON # needed by draft workspace
-DBUILD_SPREADSHEET=ON
-DBUILD_START=ON
-DBUILD_SURFACE=$(usex surface)
-DBUILD_TECHDRAW=$(usex techdraw)
-DBUILD_TEST=ON # always build test workbench for run-time testing
-DBUILD_TEST="$(usex test)" # always build test workbench for run-time testing
-DBUILD_TUX=$(usex gui)
-DBUILD_WEB=ON # needed by start workspace
@@ -195,6 +287,8 @@ src_configure() {
-DFREECAD_USE_EXTERNAL_ONDSELSOLVER=$(usex assembly)
-DFREECAD_USE_EXTERNAL_SMESH=OFF # no package in Gentoo
-DFREECAD_USE_EXTERNAL_ZIPIOS=OFF # doesn't work yet, also no package in Gentoo tree
-DFREECAD_USE_EXTERNAL_FMT="yes"
-DFREECAD_USE_EXTERNAL_KDL=OFF # https://github.com/FreeCAD/FreeCAD/commit/9f98866
-DFREECAD_USE_FREETYPE=ON
-DFREECAD_USE_OCC_VARIANT:STRING="Official Version"
-DFREECAD_USE_PCL=$(usex pcl)
@@ -205,11 +299,24 @@ src_configure() {
# sub-packages will still be installed inside /usr/lib64/freecad
-DINSTALL_TO_SITEPACKAGES=ON
# Use the version of shiboken2 that matches the selected python version
# Use the version of pyside[tools] that matches the selected python version
-DPYTHON_CONFIG_SUFFIX="-${EPYTHON}"
-DPython3_EXECUTABLE=${PYTHON}
# -DPython3_EXECUTABLE=${EPYTHON}
-DPACKAGE_WCREF="${PVR} (gentoo)"
-DPACKAGE_WCURL="git://github.com/FreeCAD/FreeCAD.git ${PV}"
)
if [[ ${PV} == *9999* ]]; then
mycmakeargs+=(
-DENABLE_DEVELOPER_TESTS=ON
)
else
mycmakeargs+=(
-DENABLE_DEVELOPER_TESTS=OFF
)
fi
if use debug; then
# BUILD_SANDBOX currently broken, see
# https://forum.freecadweb.org/viewtopic.php?f=4&t=36071&start=30#p504595
@@ -224,6 +331,11 @@ src_configure() {
)
fi
if use fem || use smesh; then
export CUDAHOSTCXX="$(cuda_get_host_compiler)"
cuda_add_sandbox
fi
if use gui; then
mycmakeargs+=(
-DFREECAD_QT_MAJOR_VERSION=6
@@ -237,6 +349,9 @@ src_configure() {
)
fi
addpredict "/dev/char/"
[[ -c "/dev/udmabuf" ]] && addwrite "/dev/udmabuf"
cmake_src_configure
}
@@ -251,16 +366,61 @@ src_configure() {
src_test() {
cd "${BUILD_DIR}" || die
# No module named 'ifcopenshell' #940465
rm "${BUILD_DIR}/Mod/BIM/nativeifc/ifc_performance_test.py" || die
local -x FREECAD_USER_HOME="${HOME}"
local -x FREECAD_USER_DATA="${T}"
local -x FREECAD_USER_TEMP="${T}"
./bin/FreeCADCmd --run-test 0 --set-config AppHomePath="${BUILD_DIR}/" || die
local fail=""
local run
nonfatal \
edo "${BUILD_DIR}/bin/FreeCADCmd" \
--run-test 0 \
--set-config AppHomePath="${BUILD_DIR}/" \
--log-file "${T}/FreeCADCmd.log" \
|| fail+=" FreeCADCmd"
if use gui; then
# this is naive
addpredict "/dev/char/"
addwrite "/dev/dri/renderD128"
addwrite "/dev/dri/card0"
[[ -c "/dev/nvidiactl" ]] && addwrite "/dev/nvidiactl"
[[ -c "/dev/nvidia-uvm" ]] && addwrite "/dev/nvidia-uvm"
[[ -c "/dev/nvidia-uvm-tools" ]] && addwrite "/dev/nvidia-uvm-tools"
[[ -c "/dev/nvidia0" ]] && addwrite "/dev/nvidia0"
[[ -c "/dev/udmabuf" ]] && addwrite "/dev/udmabuf"
nonfatal \
virtx edo "${BUILD_DIR}/bin/FreeCAD" \
--run-test 0 \
--set-config AppHomePath="${BUILD_DIR}/" \
--log-file "${T}/FreeCAD.log" \
|| fail+=" FreeCAD"
run=virtx
fi
# nonfatal \
${run} cmake_src_test || fail+=" cmake"
if [[ -n "${fail}" ]]; then
eerror "${fail}"
die "${fail}"
fi
}
src_install() {
cmake_src_install
dobin src/Tools/freecad-thumbnailer
if [[ -f src/Tools/freecad-thumbnailer ]]; then
dobin src/Tools/freecad-thumbnailer
fi
if [[ -f freecad-thumbnailer ]]; then
dobin freecad-thumbnailer
fi
if use gui; then
newbin - freecad <<- _EOF_
@@ -270,13 +430,13 @@ src_install() {
export QT_QPA_PLATFORM
exec /usr/$(get_libdir)/${PN}/bin/FreeCAD "\${@}"
_EOF_
mv "${ED}"/usr/$(get_libdir)/${PN}/share/* "${ED}"/usr/share || die "failed to move shared resources"
mv "${ED}/usr/$(get_libdir)/${PN}/share/"* "${ED}/usr/share" || die "failed to move shared resources"
fi
dosym -r /usr/$(get_libdir)/${PN}/bin/FreeCADCmd /usr/bin/freecadcmd
dosym -r "/usr/$(get_libdir)/${PN}/bin/FreeCADCmd" "/usr/bin/freecadcmd"
rm -r "${ED}"/usr/$(get_libdir)/${PN}/include/E57Format || die "failed to drop unneeded include directory E57Format"
rm -r "${ED}/usr/$(get_libdir)/${PN}/include/E57Format" || die "failed to drop unneeded include directory E57Format"
python_optimize "${ED}"/usr/share/${PN}/data/Mod/Start/StartPage "${ED}"/usr/$(get_libdir)/${PN}{/Ext,/Mod}/
python_optimize "${ED}/usr/share/${PN}/data/Mod/Start/StartPage" "${ED}/usr/$(get_libdir)/${PN}/"{Ext,Mod}/
# compile main package in python site-packages as well
python_optimize
}

View File

@@ -0,0 +1,469 @@
# Copyright 1999-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
PYTHON_COMPAT=( python3_{11..13} )
inherit check-reqs cmake cuda edo flag-o-matic optfeature python-single-r1 qmake-utils toolchain-funcs xdg virtualx
DESCRIPTION="Qt based Computer Aided Design application"
HOMEPAGE="https://www.freecad.org/ https://github.com/FreeCAD/FreeCAD"
MY_PN=FreeCAD
if [[ ${PV} == *9999* ]]; then
inherit git-r3
EGIT_REPO_URI="https://github.com/${MY_PN}/${MY_PN}.git"
S="${WORKDIR}/freecad-${PV}"
else
SRC_URI="
https://github.com/${MY_PN}/${MY_PN}/archive/refs/tags/${PV}.tar.gz -> ${P}.tar.gz
https://github.com/FreeCAD/FreeCAD/commit/8934af10128f0bd2d0ffada946d1c93bc5d8869f.patch -> ${PN}-18423.patch
https://github.com/FreeCAD/FreeCAD/commit/d91b3e051789623f0bc1eff65947c361e7a661d0.patch -> ${PN}-20710.patch
"
KEYWORDS="~amd64"
S="${WORKDIR}/FreeCAD-${PV}"
fi
# code is licensed LGPL-2
# examples are licensed CC-BY-SA (without note of specific version)
LICENSE="LGPL-2 CC-BY-SA-4.0"
SLOT="0"
IUSE="debug designer +gui netgen pcl +smesh spacenav test X"
# Modules are found in src/Mod/ and their options defined in:
# cMake/FreeCAD_Helpers/InitializeFreeCADBuildOptions.cmake
# To get their dependencies:
# 'grep REQUIRES_MODS cMake/FreeCAD_Helpers/CheckInterModuleDependencies.cmake'
IUSE+=" addonmgr assembly +bim cam cloud fem idf inspection +mesh openscad points reverse robot surface +techdraw"
REQUIRED_USE="
${PYTHON_REQUIRED_USE}
bim? ( mesh )
cam? ( mesh )
gui? ( bim )
designer? ( gui )
fem? ( smesh )
inspection? ( points )
mesh? ( smesh )
openscad? ( mesh )
reverse? ( mesh points )
test? ( techdraw )
"
# Draft Workbench needs BIM
RESTRICT="!test? ( test )"
RDEPEND="
${PYTHON_DEPS}
dev-cpp/gtest
dev-cpp/yaml-cpp
dev-libs/boost:=
dev-libs/libfmt:=
dev-libs/xerces-c:=[icu]
dev-qt/qtbase:6[concurrent,network,xml]
media-libs/freetype
sci-libs/opencascade:=[json]
sys-libs/zlib
$(python_gen_cond_dep '
dev-python/numpy[${PYTHON_USEDEP}]
dev-python/pybind11[${PYTHON_USEDEP}]
dev-python/pyyaml[${PYTHON_USEDEP}]
')
assembly? ( sci-libs/ondselsolver )
cloud? (
dev-libs/openssl:=
net-misc/curl
)
fem? (
sci-libs/vtk:=
$(python_gen_cond_dep 'dev-python/ply[${PYTHON_USEDEP}]')
)
gui? (
>=media-libs/coin-4.0.0
dev-qt/qtbase:6[gui,opengl,widgets]
dev-qt/qtsvg:6
dev-qt/qttools:6[designer?,widgets]
$(python_gen_cond_dep '
dev-python/matplotlib[${PYTHON_USEDEP}]
>=dev-python/pivy-0.6.5[${PYTHON_USEDEP}]
dev-python/pyside:6=[uitools(-),gui,svg,${PYTHON_USEDEP}]
' )
virtual/glu
virtual/opengl
spacenav? ( dev-libs/libspnav[X?] )
)
netgen? ( media-gfx/netgen[opencascade] )
openscad? ( $(python_gen_cond_dep 'dev-python/ply[${PYTHON_USEDEP}]') )
pcl? ( sci-libs/pcl:= )
smesh? (
sci-libs/hdf5:=[zlib]
>=sci-libs/med-4.0.0-r1
sci-libs/vtk:=
)
"
DEPEND="${RDEPEND}
>=dev-cpp/eigen-3.3.1:3
dev-cpp/ms-gsl
test? (
gui? (
$(python_gen_cond_dep '
dev-python/pyside:6=[tools(-),${PYTHON_USEDEP}]
' )
)
)
"
BDEPEND="
dev-lang/swig
test? ( dev-cpp/gtest )
"
PATCHES=(
"${FILESDIR}"/${PN}-1.0.0-r1-Gentoo-specific-don-t-check-vcs.patch
"${FILESDIR}"/${PN}-0.21.0-0001-Gentoo-specific-disable-ccache-usage.patch
"${FILESDIR}"/${PN}-9999-tests-src-Qt-only-build-test-for-BUILD_GUI-ON.patch
"${DISTDIR}/${PN}-18423.patch" # vtk-9.4
"${DISTDIR}/${PN}-20710.patch" # DESTDIR in env
)
DOCS=( CODE_OF_CONDUCT.md README.md )
CHECKREQS_DISK_BUILD="2G"
cuda_get_host_compiler() {
if [[ -n "${NVCC_CCBIN}" ]]; then
echo "${NVCC_CCBIN}"
return
fi
if [[ -n "${CUDAHOSTCXX}" ]]; then
echo "${CUDAHOSTCXX}"
return
fi
if ! has_version dev-util/nvidia-cuda-toolkit ; then
return
fi
einfo "Trying to find working CUDA host compiler"
if ! tc-is-gcc && ! tc-is-clang; then
die "$(tc-get-compiler-type) compiler is not supported"
fi
local compiler compiler_type compiler_version
local package package_version
local NVCC_CCBIN_default
compiler_type="$(tc-get-compiler-type)"
compiler_version="$("${compiler_type}-major-version")"
# try the default compiler first
NVCC_CCBIN="$(tc-getCXX)"
NVCC_CCBIN_default="${NVCC_CCBIN}-${compiler_version}"
compiler="${NVCC_CCBIN/%-${compiler_version}}"
# store the package so we can re-use it later
if tc-is-gcc; then
package="sys-devel/${compiler_type}"
elif tc-is-clang; then
package="llvm-core/${compiler_type}"
else
die "$(tc-get-compiler-type) compiler is not supported"
fi
package_version="${package}"
ebegin "testing ${NVCC_CCBIN_default} (default)"
while ! nvcc -v -ccbin "${NVCC_CCBIN}" - -x cu <<<"int main(){}" &>> "${T}/cuda_get_host_compiler.log" ; do
eend 1
while true; do
# prepare next version
if ! package_version="<$(best_version "${package_version}")"; then
die "could not find a supported version of ${compiler}"
fi
NVCC_CCBIN="${compiler}-$(ver_cut 1 "${package_version/#<${package}-/}")"
[[ "${NVCC_CCBIN}" != "${NVCC_CCBIN_default}" ]] && break
done
ebegin "testing ${NVCC_CCBIN}"
done
eend $?
echo "${NVCC_CCBIN}"
export NVCC_CCBIN
}
pkg_setup() {
check-reqs_pkg_setup
python-single-r1_pkg_setup
}
src_prepare() {
# Fix desktop file
sed -e 's/Exec=FreeCAD/Exec=freecad/' -i src/XDGData/org.freecad.FreeCAD.desktop || die
# deprecated in python-3.11 removed in python-3.13
sed -e '/import imghdr/d' -i src/Mod/CAM/CAMTests/TestCAMSanity.py || die
cmake_src_prepare
}
src_configure() {
# -Werror=odr, -Werror=lto-type-mismatch
# https://bugs.gentoo.org/875221
# https://github.com/FreeCAD/FreeCAD/issues/13173
append-flags -fno-strict-aliasing
filter-lto
# Fix building tests
if ! tc-ld-is-mold; then # 940524
append-ldflags -Wl,--copy-dt-needed-entries
fi
# cmake-4
# https://github.com/FreeCAD/FreeCAD/issues/20246
: "${CMAKE_POLICY_VERSION_MINIMUM:=3.10}"
export CMAKE_POLICY_VERSION_MINIMUM
local mycmakeargs=(
-DCMAKE_POLICY_DEFAULT_CMP0144="OLD" # FLANN_ROOT
-DCMAKE_POLICY_DEFAULT_CMP0167="OLD" # FindBoost
-DCMAKE_POLICY_DEFAULT_CMP0175="OLD" # add_custom_command
-DCMAKE_POLICY_DEFAULT_CMP0153="OLD" # exec_program
-DBUILD_DESIGNER_PLUGIN=$(usex designer)
-DBUILD_FORCE_DIRECTORY=ON # force building in a dedicated directory
-DBUILD_GUI=$(usex gui)
-DBUILD_SMESH=$(usex smesh)
-DBUILD_VR=OFF
-DBUILD_WITH_CONDA=OFF
# Modules
-DBUILD_ADDONMGR=$(usex addonmgr)
-DBUILD_ASSEMBLY=$(usex assembly)
-DBUILD_BIM=$(usex bim)
-DBUILD_CAM=$(usex cam)
-DBUILD_CLOUD=$(usex cloud)
-DBUILD_DRAFT=ON
# see below for DRAWING
-DBUILD_FEM=$(usex fem)
-DBUILD_FEM_NETGEN=$(usex fem $(usex netgen))
-DBUILD_FLAT_MESH=$(usex mesh) # a submodule of MeshPart
-DBUILD_HELP=ON
-DBUILD_IDF=$(usex idf)
-DBUILD_IMPORT=ON # import module for various file formats
-DBUILD_INSPECTION=$(usex inspection)
-DBUILD_JTREADER=OFF # uses an old proprietary library
-DBUILD_MATERIAL=ON
-DBUILD_MEASURE=ON
-DBUILD_MESH=$(usex mesh)
-DBUILD_MESH_PART=$(usex mesh)
-DBUILD_OPENSCAD=$(usex openscad)
-DBUILD_PART=ON
-DBUILD_PART_DESIGN=ON
-DBUILD_PLOT=ON
-DBUILD_POINTS=$(usex points)
-DBUILD_REVERSEENGINEERING=$(usex reverse)
-DBUILD_ROBOT=$(usex robot)
# -DBUILD_SANDBOX=OFF
-DBUILD_SHOW=$(usex gui)
-DBUILD_SKETCHER=ON # needed by draft workspace
-DBUILD_SPREADSHEET=ON
-DBUILD_START=ON
-DBUILD_SURFACE=$(usex surface)
-DBUILD_TECHDRAW=$(usex techdraw)
-DBUILD_TEST="$(usex test)" # always build test workbench for run-time testing
-DBUILD_TUX=$(usex gui)
-DBUILD_WEB=ON # needed by start workspace
-DCMAKE_INSTALL_DATADIR=/usr/share/${PN}/data
-DCMAKE_INSTALL_DOCDIR=/usr/share/doc/${PF}
-DCMAKE_INSTALL_INCLUDEDIR=/usr/include/${PN}
-DCMAKE_INSTALL_PREFIX=/usr/$(get_libdir)/${PN}
-DFREECAD_BUILD_DEBIAN=OFF
-DFREECAD_USE_EXTERNAL_ONDSELSOLVER=$(usex assembly)
-DFREECAD_USE_EXTERNAL_SMESH=OFF # no package in Gentoo
-DFREECAD_USE_EXTERNAL_ZIPIOS=OFF # doesn't work yet, also no package in Gentoo tree
-DFREECAD_USE_EXTERNAL_FMT="yes"
-DFREECAD_USE_EXTERNAL_KDL=OFF # https://github.com/FreeCAD/FreeCAD/commit/9f98866
-DFREECAD_USE_FREETYPE=ON
-DFREECAD_USE_OCC_VARIANT:STRING="Official Version"
-DFREECAD_USE_PCL=$(usex pcl)
-DFREECAD_USE_PYBIND11=ON
-DFREECAD_USE_QT_FILEDIALOG=ON
# install python modules to site-packages' dir. True only for the main package,
# sub-packages will still be installed inside /usr/lib64/freecad
-DINSTALL_TO_SITEPACKAGES=ON
# Use the version of pyside[tools] that matches the selected python version
-DPYTHON_CONFIG_SUFFIX="-${EPYTHON}"
# -DPython3_EXECUTABLE=${EPYTHON}
-DPACKAGE_WCREF="${PVR} (gentoo)"
-DPACKAGE_WCURL="git://github.com/FreeCAD/FreeCAD.git ${PV}"
)
if [[ ${PV} == *9999* ]]; then
mycmakeargs+=(
-DENABLE_DEVELOPER_TESTS=ON
)
else
mycmakeargs+=(
-DENABLE_DEVELOPER_TESTS=OFF
)
fi
if use debug; then
# BUILD_SANDBOX currently broken, see
# https://forum.freecadweb.org/viewtopic.php?f=4&t=36071&start=30#p504595
mycmakeargs+=(
-DBUILD_SANDBOX=OFF
-DBUILD_TEMPLATE=ON
)
else
mycmakeargs+=(
-DBUILD_SANDBOX=OFF
-DBUILD_TEMPLATE=OFF
)
fi
if use fem || use smesh; then
export CUDAHOSTCXX="$(cuda_get_host_compiler)"
cuda_add_sandbox
fi
if use gui; then
mycmakeargs+=(
-DFREECAD_QT_MAJOR_VERSION=6
-DFREECAD_QT_VERSION=6
-DQT_DEFAULT_MAJOR_VERSION=6
-DQt6Core_MOC_EXECUTABLE="$(qt6_get_bindir)/moc"
-DQt6Core_RCC_EXECUTABLE="$(qt6_get_bindir)/rcc"
-DBUILD_QT5=OFF
# Drawing module unmaintained and not ported to qt6
-DBUILD_DRAWING=OFF
)
fi
addpredict "/dev/char/"
[[ -c "/dev/udmabuf" ]] && addwrite "/dev/udmabuf"
cmake_src_configure
}
# We use the FreeCADCmd binary instead of the FreeCAD binary here
# for two reasons:
# 1. It works out of the box with USE=-gui as well, not needing a guard
# 2. We don't need virtualx.eclass and its dependencies
# The environment variables are needed, so that FreeCAD knows
# where to save its temporary files, and where to look and write its
# configuration. Without those, there is a sandbox violation, when it
# tries to create /var/lib/portage/home/.FreeCAD directory.
src_test() {
cd "${BUILD_DIR}" || die
# No module named 'ifcopenshell' #940465
rm "${BUILD_DIR}/Mod/BIM/nativeifc/ifc_performance_test.py" || die
local -x FREECAD_USER_HOME="${HOME}"
local -x FREECAD_USER_DATA="${T}"
local -x FREECAD_USER_TEMP="${T}"
local fail=""
local run
nonfatal \
edo "${BUILD_DIR}/bin/FreeCADCmd" \
--run-test 0 \
--set-config AppHomePath="${BUILD_DIR}/" \
--log-file "${T}/FreeCADCmd.log" \
|| fail+=" FreeCADCmd"
if use gui; then
# this is naive
addpredict "/dev/char/"
addwrite "/dev/dri/renderD128"
addwrite "/dev/dri/card0"
[[ -c "/dev/nvidiactl" ]] && addwrite "/dev/nvidiactl"
[[ -c "/dev/nvidia-uvm" ]] && addwrite "/dev/nvidia-uvm"
[[ -c "/dev/nvidia-uvm-tools" ]] && addwrite "/dev/nvidia-uvm-tools"
[[ -c "/dev/nvidia0" ]] && addwrite "/dev/nvidia0"
[[ -c "/dev/udmabuf" ]] && addwrite "/dev/udmabuf"
nonfatal \
virtx edo "${BUILD_DIR}/bin/FreeCAD" \
--run-test 0 \
--set-config AppHomePath="${BUILD_DIR}/" \
--log-file "${T}/FreeCAD.log" \
|| fail+=" FreeCAD"
run=virtx
fi
# nonfatal \
${run} cmake_src_test || fail+=" cmake"
if [[ -n "${fail}" ]]; then
eerror "${fail}"
die "${fail}"
fi
}
src_install() {
cmake_src_install
if [[ -f src/Tools/freecad-thumbnailer ]]; then
dobin src/Tools/freecad-thumbnailer
fi
if [[ -f freecad-thumbnailer ]]; then
dobin freecad-thumbnailer
fi
if use gui; then
newbin - freecad <<- _EOF_
#!/bin/sh
# https://github.com/coin3d/coin/issues/451
: "\${QT_QPA_PLATFORM:=xcb}"
export QT_QPA_PLATFORM
exec /usr/$(get_libdir)/${PN}/bin/FreeCAD "\${@}"
_EOF_
mv "${ED}/usr/$(get_libdir)/${PN}/share/"* "${ED}/usr/share" || die "failed to move shared resources"
fi
dosym -r "/usr/$(get_libdir)/${PN}/bin/FreeCADCmd" "/usr/bin/freecadcmd"
rm -r "${ED}/usr/$(get_libdir)/${PN}/include/E57Format" || die "failed to drop unneeded include directory E57Format"
python_optimize "${ED}/usr/share/${PN}/data/Mod/Start/StartPage" "${ED}/usr/$(get_libdir)/${PN}/"{Ext,Mod}/
# compile main package in python site-packages as well
python_optimize
}
pkg_postinst() {
xdg_pkg_postinst
einfo "You can load a lot of additional workbenches using the integrated"
einfo "AddonManager."
einfo "There are a lot of additional tools, for which FreeCAD has builtin"
einfo "support. Some of them are available in Gentoo. Take a look at"
einfo "https://wiki.freecad.org/Installing_additional_components"
optfeature_header "External programs used by FreeCAD"
optfeature "dependency graphs" media-gfx/graphviz
optfeature "importing and exporting 2D AutoCAD DWG files" media-gfx/libredwg
optfeature "importing OpenSCAD files, Mesh booleans" media-gfx/openscad
use bim && optfeature "working with COLLADA documents" dev-python/pycollada
if use fem || use mesh; then
optfeature "mesh generation" sci-libs/gmsh
fi
}
pkg_postrm() {
xdg_pkg_postrm
}

View File

@@ -0,0 +1,490 @@
# Copyright 1999-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
PYTHON_COMPAT=( python3_{11..13} )
inherit check-reqs cmake cuda edo flag-o-matic optfeature python-single-r1 qmake-utils toolchain-funcs xdg virtualx
DESCRIPTION="Qt based Computer Aided Design application"
HOMEPAGE="https://www.freecad.org/ https://github.com/FreeCAD/FreeCAD"
MY_PN=FreeCAD
if [[ ${PV} == *9999* ]]; then
inherit git-r3
EGIT_REPO_URI="https://github.com/${MY_PN}/${MY_PN}.git"
S="${WORKDIR}/freecad-${PV}"
else
SRC_URI="
https://github.com/${MY_PN}/${MY_PN}/archive/refs/tags/${PV}.tar.gz -> ${P}.tar.gz
"
KEYWORDS="~amd64"
S="${WORKDIR}/FreeCAD-${PV}"
fi
# code is licensed LGPL-2
# examples are licensed CC-BY-SA (without note of specific version)
LICENSE="LGPL-2 CC-BY-SA-4.0"
SLOT="0"
IUSE="debug designer +gui netgen pcl +smesh spacenav test X"
# Modules are found in src/Mod/ and their options defined in:
# cMake/FreeCAD_Helpers/InitializeFreeCADBuildOptions.cmake
# To get their dependencies:
# 'grep REQUIRES_MODS cMake/FreeCAD_Helpers/CheckInterModuleDependencies.cmake'
IUSE+=" addonmgr assembly +bim cam cloud fem idf inspection +mesh openscad points reverse robot surface +techdraw"
REQUIRED_USE="
${PYTHON_REQUIRED_USE}
bim? ( mesh )
cam? ( mesh )
gui? ( bim )
designer? ( gui )
fem? ( smesh )
inspection? ( points )
mesh? ( smesh )
openscad? ( mesh )
reverse? ( mesh points )
test? ( techdraw )
"
# Draft Workbench needs BIM
RESTRICT="!test? ( test )"
RDEPEND="
${PYTHON_DEPS}
dev-cpp/gtest
dev-cpp/yaml-cpp
dev-libs/boost:=
dev-libs/libfmt:=
dev-libs/xerces-c:=[icu]
dev-qt/qtbase:6[concurrent,network,xml]
media-libs/freetype
sci-libs/opencascade:=[json]
sys-libs/zlib
$(python_gen_cond_dep '
dev-python/numpy[${PYTHON_USEDEP}]
dev-python/pybind11[${PYTHON_USEDEP}]
dev-python/pyyaml[${PYTHON_USEDEP}]
')
assembly? ( sci-libs/ondselsolver )
cloud? (
dev-libs/openssl:=
net-misc/curl
)
fem? (
sci-libs/vtk:=
$(python_gen_cond_dep 'dev-python/ply[${PYTHON_USEDEP}]')
)
gui? (
>=media-libs/coin-4.0.0
dev-qt/qtbase:6[gui,opengl,widgets]
dev-qt/qtsvg:6
dev-qt/qttools:6[designer?,widgets]
$(python_gen_cond_dep '
dev-python/matplotlib[${PYTHON_USEDEP}]
>=dev-python/pivy-0.6.5[${PYTHON_USEDEP}]
dev-python/pyside:6=[uitools(-),gui,svg,${PYTHON_USEDEP}]
' )
virtual/glu
virtual/opengl
spacenav? ( dev-libs/libspnav[X?] )
)
netgen? ( media-gfx/netgen[opencascade] )
openscad? ( $(python_gen_cond_dep 'dev-python/ply[${PYTHON_USEDEP}]') )
pcl? ( sci-libs/pcl:= )
smesh? (
sci-libs/hdf5:=[zlib]
>=sci-libs/med-4.0.0-r1
sci-libs/vtk:=
)
"
DEPEND="${RDEPEND}
>=dev-cpp/eigen-3.3.1:3
dev-cpp/ms-gsl
test? (
gui? (
$(python_gen_cond_dep '
dev-python/pyside:6=[tools(-),${PYTHON_USEDEP}]
' )
)
)
"
BDEPEND="
dev-lang/swig
test? ( dev-cpp/gtest )
"
PATCHES=(
"${FILESDIR}"/${PN}-9999-Gentoo-specific-don-t-check-vcs.patch
"${FILESDIR}"/${PN}-0.21.0-0001-Gentoo-specific-disable-ccache-usage.patch
"${FILESDIR}"/${PN}-9999-tests-src-Qt-only-build-test-for-BUILD_GUI-ON.patch
"${FILESDIR}/${PN}-1.0.0-r4-error-cannot-convert-bool-to-App-DocumentInitFlags.patch"
)
DOCS=( CODE_OF_CONDUCT.md README.md )
CHECKREQS_DISK_BUILD="2G"
cuda_get_host_compiler() {
if [[ -n "${NVCC_CCBIN}" ]]; then
echo "${NVCC_CCBIN}"
return
fi
if [[ -n "${CUDAHOSTCXX}" ]]; then
echo "${CUDAHOSTCXX}"
return
fi
if ! has_version dev-util/nvidia-cuda-toolkit ; then
return
fi
einfo "Trying to find working CUDA host compiler"
if ! tc-is-gcc && ! tc-is-clang; then
die "$(tc-get-compiler-type) compiler is not supported"
fi
local compiler compiler_type compiler_version
local package package_version
local NVCC_CCBIN_default
compiler_type="$(tc-get-compiler-type)"
compiler_version="$("${compiler_type}-major-version")"
# try the default compiler first
NVCC_CCBIN="$(tc-getCXX)"
NVCC_CCBIN_default="${NVCC_CCBIN}-${compiler_version}"
compiler="${NVCC_CCBIN/%-${compiler_version}}"
# store the package so we can re-use it later
if tc-is-gcc; then
package="sys-devel/${compiler_type}"
elif tc-is-clang; then
package="llvm-core/${compiler_type}"
else
die "$(tc-get-compiler-type) compiler is not supported"
fi
package_version="${package}"
ebegin "testing ${NVCC_CCBIN_default} (default)"
while ! nvcc -v -ccbin "${NVCC_CCBIN}" - -x cu <<<"int main(){}" &>> "${T}/cuda_get_host_compiler.log" ; do
eend 1
while true; do
# prepare next version
if ! package_version="<$(best_version "${package_version}")"; then
die "could not find a supported version of ${compiler}"
fi
NVCC_CCBIN="${compiler}-$(ver_cut 1 "${package_version/#<${package}-/}")"
[[ "${NVCC_CCBIN}" != "${NVCC_CCBIN_default}" ]] && break
done
ebegin "testing ${NVCC_CCBIN}"
done
eend $?
echo "${NVCC_CCBIN}"
export NVCC_CCBIN
}
pkg_setup() {
check-reqs_pkg_setup
python-single-r1_pkg_setup
}
src_prepare() {
# Fix desktop file
sed -e 's/Exec=FreeCAD/Exec=freecad/' -i src/XDGData/org.freecad.FreeCAD.desktop || die
# deprecated in python-3.11 removed in python-3.13
sed -e '/import imghdr/d' -i src/Mod/CAM/CAMTests/TestCAMSanity.py || die
cmake_src_prepare
}
src_configure() {
# -Werror=odr, -Werror=lto-type-mismatch
# https://bugs.gentoo.org/875221
# https://github.com/FreeCAD/FreeCAD/issues/13173
append-flags -fno-strict-aliasing
filter-lto
# Fix building tests
if ! tc-ld-is-mold; then # 940524
append-ldflags -Wl,--copy-dt-needed-entries
fi
# cmake-4
# https://github.com/FreeCAD/FreeCAD/issues/20246
: "${CMAKE_POLICY_VERSION_MINIMUM:=3.10}"
export CMAKE_POLICY_VERSION_MINIMUM
local mycmakeargs=(
-DCMAKE_POLICY_DEFAULT_CMP0144="OLD" # FLANN_ROOT
-DCMAKE_POLICY_DEFAULT_CMP0167="OLD" # FindBoost
-DCMAKE_POLICY_DEFAULT_CMP0175="OLD" # add_custom_command
-DCMAKE_POLICY_DEFAULT_CMP0153="OLD" # exec_program
-DBUILD_DESIGNER_PLUGIN=$(usex designer)
-DBUILD_FORCE_DIRECTORY=ON # force building in a dedicated directory
-DBUILD_GUI=$(usex gui)
-DBUILD_SMESH=$(usex smesh)
-DBUILD_VR=OFF
-DBUILD_WITH_CONDA=OFF
# Modules
-DBUILD_ADDONMGR=$(usex addonmgr)
-DBUILD_ASSEMBLY=$(usex assembly)
-DBUILD_BIM=$(usex bim)
-DBUILD_CAM=$(usex cam)
-DBUILD_CLOUD=$(usex cloud)
-DBUILD_DRAFT=ON
# see below for DRAWING
-DBUILD_FEM=$(usex fem)
-DBUILD_FEM_NETGEN=$(usex fem $(usex netgen))
-DBUILD_FLAT_MESH=$(usex mesh) # a submodule of MeshPart
-DBUILD_HELP=ON
-DBUILD_IDF=$(usex idf)
-DBUILD_IMPORT=ON # import module for various file formats
-DBUILD_INSPECTION=$(usex inspection)
-DBUILD_JTREADER=OFF # uses an old proprietary library
-DBUILD_MATERIAL=ON
-DBUILD_MEASURE=ON
-DBUILD_MESH=$(usex mesh)
-DBUILD_MESH_PART=$(usex mesh)
-DBUILD_OPENSCAD=$(usex openscad)
-DBUILD_PART=ON
-DBUILD_PART_DESIGN=ON
-DBUILD_PLOT=ON
-DBUILD_POINTS=$(usex points)
-DBUILD_REVERSEENGINEERING=$(usex reverse)
-DBUILD_ROBOT=$(usex robot)
# -DBUILD_SANDBOX=OFF
-DBUILD_SHOW=$(usex gui)
-DBUILD_SKETCHER=ON # needed by draft workspace
-DBUILD_SPREADSHEET=ON
-DBUILD_START=ON
-DBUILD_SURFACE=$(usex surface)
-DBUILD_TECHDRAW=$(usex techdraw)
-DBUILD_TEST="$(usex test)" # always build test workbench for run-time testing
-DBUILD_TUX=$(usex gui)
-DBUILD_WEB=ON # needed by start workspace
-DCMAKE_INSTALL_DATADIR=/usr/share/${PN}/data
-DCMAKE_INSTALL_DOCDIR=/usr/share/doc/${PF}
-DCMAKE_INSTALL_INCLUDEDIR=/usr/include/${PN}
-DCMAKE_INSTALL_PREFIX=/usr/$(get_libdir)/${PN}
-DFREECAD_BUILD_DEBIAN=OFF
-DFREECAD_USE_EXTERNAL_ONDSELSOLVER=$(usex assembly)
-DFREECAD_USE_EXTERNAL_SMESH=OFF # no package in Gentoo
-DFREECAD_USE_EXTERNAL_ZIPIOS=OFF # doesn't work yet, also no package in Gentoo tree
-DFREECAD_USE_EXTERNAL_FMT="yes"
-DFREECAD_USE_EXTERNAL_KDL=OFF # https://github.com/FreeCAD/FreeCAD/commit/9f98866
-DFREECAD_USE_FREETYPE=ON
-DFREECAD_USE_OCC_VARIANT:STRING="Official Version"
-DFREECAD_USE_PCL=$(usex pcl)
-DFREECAD_USE_PYBIND11=ON
-DFREECAD_USE_QT_FILEDIALOG=ON
# install python modules to site-packages' dir. True only for the main package,
# sub-packages will still be installed inside /usr/lib64/freecad
-DINSTALL_TO_SITEPACKAGES=ON
# Use the version of pyside[tools] that matches the selected python version
-DPYTHON_CONFIG_SUFFIX="-${EPYTHON}"
# -DPython3_EXECUTABLE=${EPYTHON}
-DPACKAGE_WCREF="%{release} (Git)"
-DPACKAGE_WCURL="git://github.com/FreeCAD/FreeCAD.git main"
)
if [[ ${PV} == *9999* ]]; then
mycmakeargs+=(
-DENABLE_DEVELOPER_TESTS=ON
)
else
mycmakeargs+=(
-DENABLE_DEVELOPER_TESTS=OFF
)
fi
if use debug; then
# BUILD_SANDBOX currently broken, see
# https://forum.freecadweb.org/viewtopic.php?f=4&t=36071&start=30#p504595
mycmakeargs+=(
-DBUILD_SANDBOX=OFF
-DBUILD_TEMPLATE=ON
)
else
mycmakeargs+=(
-DBUILD_SANDBOX=OFF
-DBUILD_TEMPLATE=OFF
)
fi
if use fem || use smesh; then
export CUDAHOSTCXX="$(cuda_get_host_compiler)"
cuda_add_sandbox
fi
if use gui; then
mycmakeargs+=(
-DFREECAD_QT_MAJOR_VERSION=6
-DFREECAD_QT_VERSION=6
-DQT_DEFAULT_MAJOR_VERSION=6
-DQt6Core_MOC_EXECUTABLE="$(qt6_get_bindir)/moc"
-DQt6Core_RCC_EXECUTABLE="$(qt6_get_bindir)/rcc"
-DBUILD_QT5=OFF
# Drawing module unmaintained and not ported to qt6
-DBUILD_DRAWING=OFF
)
fi
addpredict "/dev/char/"
[[ -c "/dev/udmabuf" ]] && addwrite "/dev/udmabuf"
cmake_src_configure
}
# We use the FreeCADCmd binary instead of the FreeCAD binary here
# for two reasons:
# 1. It works out of the box with USE=-gui as well, not needing a guard
# 2. We don't need virtualx.eclass and its dependencies
# The environment variables are needed, so that FreeCAD knows
# where to save its temporary files, and where to look and write its
# configuration. Without those, there is a sandbox violation, when it
# tries to create /var/lib/portage/home/.FreeCAD directory.
src_test() {
local -x EPYTEST_IGNORE=(
"Mod/BIM/nativeifc/ifc_performance_test.py"
)
local -x EPYTEST_DESELECT=(
"Mod/AddonManager/AddonManagerTest/gui/test_installer_gui.py::TestInstallerGui::test_check_python_version_bad"
"Mod/AddonManager/AddonManagerTest/gui/test_installer_gui.py::TestInstallerGui::test_check_python_version_bad"
"Mod/AddonManager/AddonManagerTest/gui/test_installer_gui.py::TestInstallerGui::test_dependency_failure_dialog"
"Mod/AddonManager/AddonManagerTest/gui/test_installer_gui.py::TestInstallerGui::test_failure_dialog"
"Mod/AddonManager/AddonManagerTest/gui/test_installer_gui.py::TestInstallerGui::test_handle_disallowed_python"
"Mod/AddonManager/AddonManagerTest/gui/test_installer_gui.py::TestInstallerGui::test_install"
"Mod/AddonManager/AddonManagerTest/gui/test_installer_gui.py::TestInstallerGui::test_no_pip_dialog"
"Mod/AddonManager/AddonManagerTest/gui/test_installer_gui.py::TestInstallerGui::test_no_python_dialog"
"Mod/AddonManager/AddonManagerTest/gui/test_installer_gui.py::TestInstallerGui::test_report_missing_workbenches_multiple"
"Mod/AddonManager/AddonManagerTest/gui/test_installer_gui.py::TestInstallerGui::test_report_missing_workbenches_single"
"Mod/AddonManager/AddonManagerTest/gui/test_installer_gui.py::TestInstallerGui::test_success_dialog"
"Mod/AddonManager/AddonManagerTest/gui/test_uninstaller_gui.py::TestUninstallerGUI::test_confirmation_dialog_cancel"
"Mod/AddonManager/AddonManagerTest/gui/test_uninstaller_gui.py::TestUninstallerGUI::test_confirmation_dialog_yes"
"Mod/AddonManager/AddonManagerTest/gui/test_uninstaller_gui.py::TestUninstallerGUI::test_failure_dialog"
"Mod/AddonManager/AddonManagerTest/gui/test_uninstaller_gui.py::TestUninstallerGUI::test_progress_dialog"
"Mod/AddonManager/AddonManagerTest/gui/test_uninstaller_gui.py::TestUninstallerGUI::test_success_dialog"
"Mod/AddonManager/AddonManagerTest/gui/test_uninstaller_gui.py::TestUninstallerGUI::test_timer_launches_progress_dialog"
)
cd "${BUILD_DIR}" || die
# No module named 'ifcopenshell' #940465
rm "${BUILD_DIR}/Mod/BIM/nativeifc/ifc_performance_test.py" || die
local -x FREECAD_USER_HOME="${HOME}"
local -x FREECAD_USER_DATA="${T}"
local -x FREECAD_USER_TEMP="${T}"
local fail=""
local run
nonfatal \
edo "${BUILD_DIR}/bin/FreeCADCmd" \
--run-test 0 \
--set-config AppHomePath="${BUILD_DIR}/" \
--log-file "${T}/FreeCADCmd.log" \
|| fail+=" FreeCADCmd"
if use gui; then
# this is naive
addpredict "/dev/char/"
addwrite "/dev/dri/renderD128"
addwrite "/dev/dri/card0"
[[ -c "/dev/nvidiactl" ]] && addwrite "/dev/nvidiactl"
[[ -c "/dev/nvidia-uvm" ]] && addwrite "/dev/nvidia-uvm"
[[ -c "/dev/nvidia-uvm-tools" ]] && addwrite "/dev/nvidia-uvm-tools"
[[ -c "/dev/nvidia0" ]] && addwrite "/dev/nvidia0"
[[ -c "/dev/udmabuf" ]] && addwrite "/dev/udmabuf"
nonfatal \
virtx edo "${BUILD_DIR}/bin/FreeCAD" \
--run-test 0 \
--set-config AppHomePath="${BUILD_DIR}/" \
--log-file "${T}/FreeCAD.log" \
|| fail+=" FreeCAD"
run=virtx
fi
# nonfatal \
${run} cmake_src_test || fail+=" cmake"
if [[ -n "${fail}" ]]; then
eerror "${fail}"
die "${fail}"
fi
}
src_install() {
cmake_src_install
if [[ -f src/Tools/freecad-thumbnailer ]]; then
dobin src/Tools/freecad-thumbnailer
fi
if [[ -f freecad-thumbnailer ]]; then
dobin freecad-thumbnailer
fi
if use gui; then
newbin - freecad <<- _EOF_
#!/bin/sh
# https://github.com/coin3d/coin/issues/451
: "\${QT_QPA_PLATFORM:=xcb}"
export QT_QPA_PLATFORM
exec /usr/$(get_libdir)/${PN}/bin/FreeCAD "\${@}"
_EOF_
mv "${ED}/usr/$(get_libdir)/${PN}/share/"* "${ED}/usr/share" || die "failed to move shared resources"
fi
dosym -r "/usr/$(get_libdir)/${PN}/bin/FreeCADCmd" "/usr/bin/freecadcmd"
rm -r "${ED}/usr/$(get_libdir)/${PN}/include/E57Format" || die "failed to drop unneeded include directory E57Format"
python_optimize "${ED}/usr/share/${PN}/data/Mod/Start/StartPage" "${ED}/usr/$(get_libdir)/${PN}/"{Ext,Mod}/
# compile main package in python site-packages as well
python_optimize
}
pkg_postinst() {
xdg_pkg_postinst
einfo "You can load a lot of additional workbenches using the integrated"
einfo "AddonManager."
einfo "There are a lot of additional tools, for which FreeCAD has builtin"
einfo "support. Some of them are available in Gentoo. Take a look at"
einfo "https://wiki.freecad.org/Installing_additional_components"
optfeature_header "External programs used by FreeCAD"
optfeature "dependency graphs" media-gfx/graphviz
optfeature "importing and exporting 2D AutoCAD DWG files" media-gfx/libredwg
optfeature "importing OpenSCAD files, Mesh booleans" media-gfx/openscad
use bim && optfeature "working with COLLADA documents" dev-python/pycollada
if use fem || use mesh; then
optfeature "mesh generation" sci-libs/gmsh
fi
}
pkg_postrm() {
xdg_pkg_postrm
}

View File

@@ -1,2 +1,2 @@
DIST teams-for-linux_2.0.8_amd64.deb 91041376 BLAKE2B 1b3a1bdd1bf430c3d9d34859c29956d9b697d9d85fa380fdfc22395ae93f5d682ee8bce71872fdaa5aefce8fe76820302bafb3c1e240e8514eea412712fde880 SHA512 02b743ae2d9acc606d76ff1e60962f904f62cd47b2389afbc47bb26559c1d7518d3d4830e58c34264f2ed3e9d9c27fa5a263528f166f8b54c28fbde5ef70b1cd
EBUILD teams-for-linux-2.0.8.ebuild 3387 BLAKE2B 0e9031d17f3f3cab3fa8de3570c17fba700d66e35dd4d99df9054a3e7a2482d57e54c47a1d6ab08122d1fed7316a38802b28774d97d8ccebd11bbbb823d68b3f SHA512 f4a873cb21f097675309cf106edd2ff4b08dce10051cd71f5b5b4c0941bcf627b58de2983d5f59f7186cbd25d923a2ab4994f9526f2ccfd5240d9fe93f1ee462
DIST teams-for-linux_2.0.14_amd64.deb 91241694 BLAKE2B 76496ad2239f54889d61b0afab1ece1b7fd4efa4fc72101d50f86b309baf586f97e377c622275f14d85dfc47cd3b22dbbb0e9e098bde3d89bb2a0224c5e16d09 SHA512 e25289994dc0de64a07515f4fd919bcc1a44a3bba537f4a4f42b6ce6d0d7e0023f3b05e17d2b928df9fc9ddcefbf2f56d5cb5860079c86bf8ac94d81feda2204
EBUILD teams-for-linux-2.0.14.ebuild 3387 BLAKE2B 0e9031d17f3f3cab3fa8de3570c17fba700d66e35dd4d99df9054a3e7a2482d57e54c47a1d6ab08122d1fed7316a38802b28774d97d8ccebd11bbbb823d68b3f SHA512 f4a873cb21f097675309cf106edd2ff4b08dce10051cd71f5b5b4c0941bcf627b58de2983d5f59f7186cbd25d923a2ab4994f9526f2ccfd5240d9fe93f1ee462

View File

@@ -1,4 +1,4 @@
DIST youtube-dl-gui-1.8.3.tar.gz 703377 BLAKE2B fc3bedfe3201e86c97eff6a52a325ce6bac1f9183c6fc98470a40b32ec53c0f6dccc04607ae288b4ae1baefea7bbd032e424c5f2cd5afcc96b66cb6ce7ac6f8f SHA512 f56adb25baea489f21a57a5513d95e656835429b4512e49d848076afaa60fa356d3468cd5460fcc6e6f311bf605d959a78b4277a0ab272903dde25c2cc87ca8e
EBUILD youtube-dl-gui-1.8.3.ebuild 1240 BLAKE2B 8614e20c2a06da1c54fb1e82eb9fe65c8e191da26c9765b5eb4b5cf88030ac469743e9e76b5fa9eb296359a0e7dbcfa6cd0857e667225acdd14b72dc4895ad62 SHA512 990974c479f4566a8599dcc594143f6784647bea13afb40522989c4793823e91e114127ba3ccfb8280838331288fddacdf9db5e61a5cbbe571b5017260911e0b
EBUILD youtube-dl-gui-1.8.3.ebuild 1272 BLAKE2B d7334123c28126590310e41997f7f2300fc77fca2650438b0fe361cb5d4efc34290af324367aebd91f5bf32ba30ee33ac976d5fcc3833c844a0a720a4ed43c3d SHA512 37d936b134df38b1bfef985f21998cfb2c6915ddbf491c2f1e7d5b3e527fbf246cb51231eb35bb1747bd6497dabde758a920ea66e873b42c131cf05a65cd18a5
MISC ChangeLog 385 BLAKE2B d26a404024005320f18259719956d818bc18bb6908022d6f9ac1d75de3956e19e376c8a3d7c4d5a2b3ebd332c1cbf34b39bb6d1b2863db12d373a36c5b20c63e SHA512 f0c8175bac806497f36974575b3db65b22a326aa3b74225f60b96e36b2e591351e7d9d76194ad4c1991c4b982424a1c9b894b55ff30974e1fe9d581122dada4c
MISC metadata.xml 411 BLAKE2B 6bd76e3591b8a2d88277f9ebfbd5951a7458a266adf5818533a1d829a770db62e1de41a4cb4f29206ed5eb381c6f4bfdc04973c4c65bd72496b7e31b6c85880f SHA512 df1f54923628bff824dc8835c96902bd07d4462472b9b8f356abb0b9b81875d78fa96e511290739ecc5423eadc8b2579a65b2f31f9c2c6a73c8d3413c0603d98

View File

@@ -3,6 +3,7 @@
EAPI=8
DISTUTILS_USE_PEP517=setuptools
PYTHON_COMPAT=( python3_{4..13} )
inherit desktop distutils-r1 xdg-utils

View File

@@ -1,2 +1,2 @@
DIST ytdlp-servustv-2023.12.27.zip 25464 BLAKE2B bc6e96f9c144941c6ebcd61f7f59458df459da8ac5e6d7240c8df86c0eb86b554925c23a0398d47b5976ec118bb229d02fb2241a6c973d627cabb044f7d25ba6 SHA512 5c2515ad8dbddbadba9f1093f63de20e25377776c4678d88fac7dc1fbe21a6233f640b0dd026d43bc04a2de5ff0e3dae4c6ff1bb65acc1a79a06ecddb731a88a
EBUILD ytdlp-servustv-2023.12.27.ebuild 539 BLAKE2B a1188382ee098ffa6c9fd3e7546d26027677d95c3e4ecc0aca64702ff285047bfcf6702f47ac5c2be3c21b45c805d9611ecb83a2993caea495206c990646a23a SHA512 db78759b4a7f2d45037135638c96775999115a8ae6e58dd7cfd3672bf34c2cc8045654f32aa9d1ee4e123ea0f779cfaef4521587d11e41dcdfb28955f64275b3
DIST ytdlp-servustv-2024.10.5.zip 23944 BLAKE2B 0ebf0c1dfee414e31028417d199d2cf518de92e3790fc7a51cdd95a0f353549fa4f4bcfedea6b5df5f69df96bbba8ba3ff4e3880bcc1d34c5d4526c215fd7c89 SHA512 90127aac04bc26bf6ac81501fb65e75480f294bc50d09beb6fd99ef61b3a2131fbf692aecfc76918170f08bce8ed9d7039c489db90fad3063cb3acc434d8e2db
EBUILD ytdlp-servustv-2024.10.5.ebuild 572 BLAKE2B 76326f082470d4e334002286e40ea955c1322e0a19a9259fac5eb3af983fe4e547b994eaa9f6d779bcdd1f9bfa9e292470741b30da65dc0ea215e3b6456fe869 SHA512 7bdfa61786f4adc865b7e2f32ec55f8283d0c1603284380ccedd0a5738ce6cbc3e7cdd132eb23d1c77d140e5d2b7732acb1e56eacdb100f916c718171daf14b6

View File

@@ -3,6 +3,8 @@
# $Id$
EAPI=8
DISTUTILS_USE_PEP517=setuptools
PYTHON_COMPAT=( python3_{7..13} )
inherit distutils-r1

View File

@@ -1,4 +0,0 @@
DIST kicad-9.0.0-protobuf-30.patch 1054 BLAKE2B 64d084b9ed97a283e3a9cb32721ce0c90fc13555a71c07dcfd0878a20f43660a00e17fd45d2250b1cf421acd43214de6b8c4906f90726652ebd46254e8db06b2 SHA512 0453efd6b94ba5dee94b3aed3d5108ed1bed342f549225caceb236de418f426f24784728c3c81eb46182bf8ff9e20e4dc7dd6c95b09cc7a199c51d383bde010d
DIST kicad-9.0.0.tar.bz2 128194997 BLAKE2B b5083fbe6bd219711c0ddf1204c283ac588829a24cc46c9e4e93300f046c6a3d890a2924cda803ae41920b74bbc5f16804317a8babc68d6c3b191b5d8cd23b42 SHA512 3b6d346d9a8d42c0ed9185427a99d78fbd9d789170aed6b9a7c6983eb58e69a1c20a7ea1b98769aa3d8121f641ca05cd8540e67f33448da2f6202f4abbc6de16
EBUILD kicad-9.0.0-r1.ebuild 6033 BLAKE2B b54d3add11cc68d7db3c74ba51b45438e19dbb7791876dfe1d2a17d207d6ad899ccde2460dc3316b1a01b8de2ec4c0c35dc4d63dca65d863c78fffd42b4a2e39 SHA512 21af63084bf24635456c8edf0a0c248700fef34915a9ead0ac41925857d8a6c242cc57c0015d70f9c46040a7fe9b917d30e687f0c447e593e29127fb3f0a8cbf
MISC metadata.xml 811 BLAKE2B 4f2150b49b1bebf73aa3440ae1ace1624ce02e022d361051e895a18d28f2ab802fed04c94552b36fc0265335a1eacd5d3a7c407fc88f0c4f7de9e4fa6afa6c5f SHA512 c09c2143516f361a8553ab5c44ffa47c77c7a8dbf53596dfe9ba81378c1a7e3aee8378353950cd8805b675d0a29444848fddd4acfe107a54e3f56e87183a1c6c

View File

@@ -1,212 +0,0 @@
# Copyright 1999-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
PYTHON_COMPAT=( python3_{10..13} )
WX_GTK_VER="3.2-gtk3"
inherit check-reqs cmake flag-o-matic optfeature python-single-r1 toolchain-funcs wxwidgets xdg-utils
DESCRIPTION="Electronic Schematic and PCB design tools"
HOMEPAGE="https://www.kicad.org"
if [[ ${PV} == *9999* ]]; then
EGIT_REPO_URI="https://gitlab.com/kicad/code/kicad.git"
inherit git-r3
else
MY_PV="${PV/_rc/-rc}"
MY_P="${PN}-${MY_PV}"
SRC_URI="https://gitlab.com/kicad/code/${PN}/-/archive/${MY_PV}/${MY_P}.tar.bz2"
SRC_URI+="
https://gitlab.com/kicad/code/kicad/-/commit/5774338af2e22e1ff541ad9ab368e459e2a2add2.patch -> ${PN}-9.0.0-protobuf-30.patch
"
S="${WORKDIR}/${MY_P}"
if [[ ${PV} != *_rc* ]] ; then
KEYWORDS="amd64"
fi
fi
# KiCAD is licensed under GPLv3 or later
# As per LICENSES.README some components are under different, but GPL compatible license:
# Licensed under Apache License, Version 2.0: portions of code in libs/kimath/include/math/util.h
# Licensed under BOOSTv1: clipper, clipper2, libcontext, pegtl, picosha2, turtle
# Licensed under ISC: portions of code in include/geometry/polygon_triangulation.h
# Licensed under MIT: argparse, compoundfilereader, delaunator, fmt, json_schema_validator, magic_enum nanodbc,
# nlohmann/json, nlohmann/fifo_map, pboettch/json-schema-validator, picoSHA2, rectpack2d,
# sentry-native, thread-pool, tinyspline_lib
# Licensed under MIT and BSD: glew
# Licensed under BSD: pybind11
# Licensed under BSD2: gzip-hpp
# Licensed under GPLv2 (or later): dxflib, math_for_graphics, potrace,
# SutherlandHodgmanClipPoly in thirdparty/other_math
# Licensed under ZLib: nanosvg
# Licensed in the public domain: lemon
# Licensed under CC BY-SA 4.0: all the demo files provided in demos/*
# Licensed under clause-3 BSD: ibis/kibis files in eeschema/sim/kibis
# Licensed under CC0: uopamp.lib.spice in some directories in qa/data/eeschema/spice_netlists/
LICENSE="GPL-2+ GPL-3+ Boost-1.0 BSD BSD-2 Apache-2.0 ISC MIT ZLIB CC-BY-SA-4.0 CC0-1.0"
SLOT="0"
IUSE="doc examples nls openmp test"
REQUIRED_USE="${PYTHON_REQUIRED_USE}"
RESTRICT="!test? ( test )"
# Contains bundled pybind but it's patched for wx
# See https://gitlab.com/kicad/code/kicad/-/commit/74e4370a9b146b21883d6a2d1df46c7a10bd0424
# Depend on opencascade:0 to get unslotted variant (so we know path to it), bug #833301
# Depend wxGTK version needs to be limited due to switch from EGL to GLX, bug #911120
COMMON_DEPEND="
app-crypt/libsecret
dev-db/unixODBC
dev-libs/boost:=[context,nls]
dev-libs/libgit2:=
>=dev-libs/protobuf-27.2:=[protobuf,protoc]
>=dev-libs/nng-1.10.0:=
media-libs/freeglut
media-libs/glew:0=
>=media-libs/glm-0.9.9.1
media-libs/mesa[X(+)]
net-misc/curl
>=sci-libs/opencascade-7.5.0:0=
>=x11-libs/cairo-1.8.8:=
>=x11-libs/pixman-0.30
>sci-electronics/ngspice-27[shared]
sys-libs/zlib
>=x11-libs/wxGTK-3.2.2.1-r3:${WX_GTK_VER}[X,opengl]
$(python_gen_cond_dep '
dev-libs/boost:=[context,nls,python,${PYTHON_USEDEP}]
>=dev-python/wxpython-4.2.0:*[${PYTHON_USEDEP}]
')
${PYTHON_DEPS}
nls? (
sys-devel/gettext
)
test? (
media-gfx/cairosvg
)
"
DEPEND="${COMMON_DEPEND}"
RDEPEND="${COMMON_DEPEND}
sci-electronics/electronics-menu
"
BDEPEND=">=dev-lang/swig-4.0
doc? ( app-text/doxygen )"
if [[ ${PV} == 9999 ]] ; then
# x11-misc-util/macros only required on live ebuilds
BDEPEND+=" >=x11-misc/util-macros-1.18"
fi
CHECKREQS_DISK_BUILD="1500M"
PATCHES=(
"${DISTDIR}/${P}-protobuf-30.patch" # drop in 9.0.1
)
pkg_setup() {
[[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp
python-single-r1_pkg_setup
setup-wxwidgets
check-reqs_pkg_setup
}
src_unpack() {
if [[ ${PV} == 9999 ]]; then
git-r3_src_unpack
else
default_src_unpack
fi
}
src_prepare() {
filter-lto # Bug 927482
cmake_src_prepare
}
src_configure() {
xdg_environment_reset
local mycmakeargs=(
-DKICAD_DOCS="${EPREFIX}/usr/share/doc/${PN}-doc-${PV}"
-DKICAD_SCRIPTING_WXPYTHON=ON
-DKICAD_USE_EGL=OFF
-DKICAD_BUILD_I18N="$(usex nls)"
-DKICAD_I18N_UNIX_STRICT_PATH="$(usex nls)"
-DPYTHON_DEST="$(python_get_sitedir)"
-DPYTHON_EXECUTABLE="${PYTHON}"
-DPYTHON_INCLUDE_DIR="$(python_get_includedir)"
-DPYTHON_LIBRARY="$(python_get_library_path)"
-DKICAD_INSTALL_DEMOS="$(usex examples)"
-DCMAKE_SKIP_RPATH="ON"
-DOCC_INCLUDE_DIR="${CASROOT}"/include/opencascade
-DOCC_LIBRARY_DIR="${CASROOT}"/$(get_libdir)/opencascade
-DKICAD_SPICE_QA="$(usex test)"
-DKICAD_BUILD_QA_TESTS="$(usex test)"
)
cmake_src_configure
}
src_compile() {
cmake_src_compile
if use doc; then
cmake_src_compile doxygen-docs
fi
}
src_test() {
# Test cannot find library in Portage's sandbox. Let's create a link so test can run.
mkdir -p "${BUILD_DIR}/qa/eeschema/" || die
ln -s "${BUILD_DIR}/eeschema/_eeschema.kiface" "${BUILD_DIR}/qa/eeschema/_eeschema.kiface" || die
export CMAKE_SKIP_TESTS=(
qa_pcbnew
qa_cli
)
# LD_LIBRARY_PATH is there to help it pick up the just-built libraries
LD_LIBRARY_PATH="${BUILD_DIR}/common:${BUILD_DIR}/common/gal:${BUILD_DIR}/3d-viewer/3d_cache/sg:${LD_LIBRARY_PATH}" \
cmake_src_test
}
src_install() {
cmake_src_install
python_optimize
dodoc doxygen/eagle-plugin-notes.txt
if use doc ; then
cd doxygen || die
dodoc -r out/html/.
fi
}
pkg_postinst() {
optfeature "Component symbols library" sci-electronics/kicad-symbols
optfeature "Component footprints library" sci-electronics/kicad-footprints
optfeature "3D models of components " sci-electronics/kicad-packages3d
optfeature "Project templates" sci-electronics/kicad-templates
optfeature "Extended documentation" app-doc/kicad-doc
optfeature "Creating 3D models of components" media-gfx/wings
xdg_desktop_database_update
xdg_mimeinfo_database_update
xdg_icon_cache_update
}
pkg_postrm() {
xdg_desktop_database_update
xdg_mimeinfo_database_update
xdg_icon_cache_update
}

View File

@@ -1,24 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="person" proxied="yes">
<email>zoltan@sinustrom.info</email>
<name>Zoltan Puskas</name>
</maintainer>
<maintainer type="person" proxied="yes">
<email>vowstar@gmail.com</email>
<name>Huang Rui</name>
</maintainer>
<maintainer type="project" proxied="proxy">
<email>proxy-maint@gentoo.org</email>
<name>Proxy Maintainers</name>
</maintainer>
<longdescription>
Kicad is an open source (GPL) software for the creation of electronic
schematic diagrams and printed circuit board artwork.
</longdescription>
<upstream>
<remote-id type="gitlab">kicad/code/kicad</remote-id>
<remote-id type="launchpad">kicad</remote-id>
</upstream>
</pkgmetadata>

View File

@@ -7,11 +7,18 @@ AUX vtk-9.3.0-opencascade-7.8.0.patch 819 BLAKE2B 51f4af785af5f44b21b641a631fe63
AUX vtk-9.3.0-opencascade.patch 624 BLAKE2B 8188da64b12213074a4093ee0dd047fcf91a777742492dfe0cb1e93b597c23e78406e4783b3cdff23ffcac81655efa370bb3746a69d166edd138ec45beeb5c09 SHA512 1a0da4ffb822a038a13201d83f1cf6b42d4438073ea35fe3654d9e907e20c12306b47a511b72cb843097327a186b36560e2590ded47ce73aa8eb5a7655664236
AUX vtk-9.3.0-update-for-cuda-12.6.patch 779 BLAKE2B 406dc4e2f57009351819d6536eb82ca9566c0544fe664e8a7867f5a36e67e084dbcb3dc60e151db4ef53c881465cd49d604b9b039ff69dfd3e4e8fe420ef0240 SHA512 d293b2a741a6042c30e835d7aa1071344d7813d07099f913d4ca5e4e728f31df233a50bed6a787d712a5eea8fb2396d9bfb4192f71fe7cff927ea1a0332b260a
AUX vtk-9.3.1-fix-fmt-11.patch 2450 BLAKE2B 91ce3cb941b7a1bf4c1098f582db146bb39b8260c285578c1e0473a652d563d42664592c47f20cd9f67c4dd7f2f2db4d17ff2dd7430441459664569a19cbf601 SHA512 f1567d4320ea591c7ad0015b0922c1b4a97d628242ee33ca573edb68bbafb8a32a783e955e0bc2ac5a23fe3606239510a956f67ae0b89c914570d8a0c0276f88
AUX vtk-9.4.2-ThirdParty-gcc15.patch 2478 BLAKE2B 2290776ef9fdf6a521b81c1eb4bb8ec5fa4751774faff93bfe4860103a06d4d67e51d82b603592c33e25067824adda696e6b431d77ab621869d67d99dad9b13d SHA512 4f2a3e2d288501286cfb1bc66ad879e002bc7e73f65a1e2a1f0ec584a368c81386b289237dcb869dd5e8d7b2f54141791c62eaeeab3935f5db1aa4da81e0ed2e
AUX vtk-9.4.2-find-hdf5-in-global-scope.patch 730 BLAKE2B 494d00e8f4c14fc5e453b2e1cdf873f589577cd49e529490657dee602456340bc01cfbffbcf2df77d528c351d26e03060821a32cc5e5827a9dcf0693f7e0fcf2 SHA512 b68d5303c89a6c016618d7f19ecbd5b38bee800af1089d692861a12edbbb69913fa7c93d28d3e7110ad88c6061484dd257e28a69170b6c45c2dbda98d9229bf2
AUX vtk-9.4.2-fix-fmt-11.patch 1076 BLAKE2B fb12871b42f18d1f5570a3212727dc9b618429347f0790ddf706502263fa660611857f26af4a0f256229865e17eeaa603fea242ed1c5ea9f47f9c8946065d060 SHA512 9a0d82a419bb0dce133a6b465dfb5f7b3fb78b195c893af173417e0b1be9d58c55edda717e921d91c9347c61c3bd8869a7a53df91df99d9f4412d9f10c2e630b
AUX vtk-9.4.2-opencascade-components.patch 499 BLAKE2B 8b55cef2648f5636ed3dad757aebad9e751aa30aa0d8fe311f209f2f965889761eba2bc27deb3df7506999418fdfa48b3582498f27f5b2c2533944f0ade3b1aa SHA512 17db1158ac94d76d70957553b2ce60203c8b0e55bac7a1b99937602ce890c2e236f52f935ecc9c2c8edb9e583ec14d07fb2f64a25066fc19815a0b3c006f318b
AUX vtk-9.4.2-pegtl-3.x.patch 1550 BLAKE2B b85abe242f301a19b4cc0b10a00c5c90b057a851441ceb9ff3632eafe276edff1da2256e910dc356b4d2cda28deb991972130b1b36e0e76febfc3af2cfa503ad SHA512 83da53e98db18a59de4fe1f0eb4260d6b6f9d489105da295de5d81f9ca1ed0b81b0401e3b1fa2ce1ad868f59a6d7b16164a57dde032f9413b0dab8084984a064
AUX vtk-9.4.2-vtk-m-jobpool-size.patch 708 BLAKE2B 3f68633bb058d59ce2fdd4a8eb3c517b263de42032aef7b448d0a745362a39af727d2e3b0c479d15a99bc7812b46f59c3618212de7e0d1e09e80a7f56ef0f7c7 SHA512 2f3534a9f7e7d8cc84bafedcdbc570d4eb04e47105efea263c44a1f7dcd886e40f734eec9a0eb87ad72c7535538d74de70f50d579f3a2d6c075391a8b1c50205
DIST VTK-9.3.1.tar.gz 99964158 BLAKE2B b85aae0aef1a22bd0496e0f5d2c7d3a5c20bbd7db8951ab1f9fe29a48c01ce960e90dc85f36cb6858c2b7dfd7f12cd1cf2e7d0fbb115fc9fd709dd7b481c598e SHA512 5dcd6764b2d9fe476bcc7bd195fab8230b7628579d94656ab037dcaecd07c7d40d0fc4afba446942ca15cd881df17f4c84581047e75a6e11d2e2d339d97c7fa3
DIST VTKData-9.3.1.tar.gz 612744946 BLAKE2B 6b3a09f6cc98630e817aaeca8094c6a6625372269abfa9003212cd1cdbc101b198f5eeb3474ca675be7f03046c58a5d11b4092ab19ed230422c4100011abfee4 SHA512 befc6b68e33d2c2fb6928006d4fe6feda7e0bbaf31df4488911ab8e3865e3fc1cf3834301301aa2b6de94c4489eebf5e2e8521e8830315d2a1f0e65cb73a6fd3
DIST VTKDataFiles-9.3.1.tar.gz 628903288 BLAKE2B cf5919a627ee49809f79d29577d65a48c3332255551c3c229875b25fce911c75c3edeca8d0dfdf9926f93543963ab0e2c992c7469e2c9eed041c39cfd995647d SHA512 360fadd31ab304a27b208745c674eb31759552e98f587569f481c1bda62c7f8ae72598cd40b2c628bb211aace8f62df2ea7ca66f192f8d2e71bca7a4deaa9e89
DIST VTKLargeData-9.3.1.tar.gz 247523669 BLAKE2B 88ec5046f502db14dd6a26ef81e386babaf560619e16d769834e96046eab46cf762d8c80f9b51c434b77e4e145d8f60e32efbdb4f57d8305494177abec0806ef SHA512 edf5610edfae90f8465d68e0e06e82018978ba27f5b2ae9701939aeb72019acaabeda435c15787f1c4828b44e34c79e2837565a81d6a3accd368a92c6eacebd1
DIST VTKLargeDataFiles-9.3.1.tar.gz 247505524 BLAKE2B 5de069309c59a8a73365fb9faba9904189d723fb72976f372e40db3eb100342a19fecd582bd0aa42fc1012675b442a8e42611632004d6b6d6708468c27a4265e SHA512 bbbf0c193432cb5d8a5618c41e66609c7e6f3e4f24f588124c46b537ecec28b5670420b7f77185da534e4098f8b95d8ec4e392fc017df934a84bfc9dc833f634
DIST vtkDocHtml-9.3.1.tar.gz 165542400 BLAKE2B da8084137b2848f82bf091535950738bd718e65cac8f461fdfb8e9c63ef6db68acfa02655531c8fe22e35f89395d2d066aa5b051abac0e774883552c898de6d9 SHA512 de0d2153c97864b49a8b99e6fbfc8bab78c1522d25bf40ed1f271a8bb4f1f205b008d6bd39f835816972c8439d01f78b68f34d1f88f87755174f0d559841ba29
EBUILD vtk-9.3.1-r1.ebuild 34578 BLAKE2B 92e101faa90957b83c47d509695503de3b1721b8e3f45f70a89a9a0985f1b915a85517bfecfa6292f050a839f090a851adecc0474cb523614e69306da75b9ed0 SHA512 dc1645a214850d00be40ceba246e7a21f276e386685c17705a81dfe507a657e59e67a23b0f1b2bef42e72bed8de28cf513ffbe893e1bd2f06df3bb9151212062
EBUILD vtk-9.3.1.ebuild 34551 BLAKE2B de8ccdc6c7fe67148bf1df104bf6549669fba842ed3b483fb6bcd98b5f3c6d53c236ab363b68fc1240611230eecc6cd7faeb5e91dacf1f98831e1f36ac65aab5 SHA512 dc0896391c8c716dc6e6588aed121842cca755912d856c7251ba5dfe7e9443723c7ef23d43974ffd55c81f94401bf199927179fdc2c6aa6f4116512dbd392c42
MISC metadata.xml 1699 BLAKE2B befce4e1f61b6cb0d772a2826ed9349cf36832ebc0507edc2dff658441b44be351c1fe97c74ac9b21eed8310a254dd2a3b408bc93a15c4b2db8cd55a5e3f703a SHA512 d9921a30c66ef3a3d2a27da1add22a29352cd3fd71c49e834523931b8edf21ca0d785290cddabbe29b068ce00fa05a898c331a1ad80ffaa190e9f92b1a1ab64d

View File

@@ -0,0 +1,46 @@
From d00b98bd8ef02f854f1068e8ab8fd2fb28244c3b Mon Sep 17 00:00:00 2001
From: Ted Rodgers <ted.d.rodgers@gmail.com>
Date: Sat, 10 Aug 2024 16:13:09 -0400
Subject: [PATCH] include cstdint + correct case/words
--- a/ThirdParty/vtkm/vtkvtkm/vtk-m/vtkm/filter/contour/worklet/mir/MIRTables.h
+++ b/ThirdParty/vtkm/vtkvtkm/vtk-m/vtkm/filter/contour/worklet/mir/MIRTables.h
@@ -11402,7 +11402,7 @@ public:
VTKM_EXEC vtkm::UInt8 GetPoint(vtkm::Id pointIndex) const
{
- return this->CellFacePortal.Get(pointIndex);
+ return this->CellEdgesPortal.Get(pointIndex);
}
private:
--- a/ThirdParty/vtkm/vtkvtkm/vtk-m/vtkm/filter/scalar_topology/worklet/contourtree_distributed/HierarchicalContourTree.h
+++ b/ThirdParty/vtkm/vtkvtkm/vtk-m/vtkm/filter/scalar_topology/worklet/contourtree_distributed/HierarchicalContourTree.h
@@ -663,7 +663,7 @@ std::string HierarchicalContourTree<FieldType>::PrintDotSuperStructure(const cha
auto hyperarcsPortal = this->Hyperarcs.ReadPortal();
auto regularNodeGlobalIdsPortal = this->RegularNodeGlobalIds.ReadPortal();
auto whichIterationPortal = this->WhichIteration.ReadPortal();
- auto whichRoundPortal = this->whichRound.ReadPortal();
+ auto whichRoundPortal = this->WhichRound.ReadPortal();
auto superarcsPortal = this->Superarcs.ReadPortal();
auto superparentsPortal = this->Superparents.ReadPortal();
for (vtkm::Id supernode = 0; supernode < this->Supernodes.GetNumberOfValues(); supernode++)
@@ -708,7 +708,7 @@ std::string HierarchicalContourTree<FieldType>::PrintDotSuperStructure(const cha
if (contourtree_augmented::NoSuchElement(superarcTo))
{ // no superarc
// if it occurred on the final round, it's the global root and is shown as the NULL node
- if (whichRoundPortal.Get(superarcFrom) == this->NRounds)
+ if (whichRoundPortal.Get(superarcFrom) == this->NumRounds)
{ // root node
outstream << "\tSN" << std::setw(1) << superarcFrom << " -> SA" << std::setw(1) << superarc
<< " [label=\"S" << std::setw(1) << superarc << "\",style=dotted]\n";
--- a/ThirdParty/vtkm/vtkvtkm/vtk-m/vtkm/thirdparty/diy/vtkmdiy/include/vtkmdiy/thirdparty/itlib/small_vector.hpp
+++ b/ThirdParty/vtkm/vtkvtkm/vtk-m/vtkm/thirdparty/diy/vtkmdiy/include/vtkmdiy/thirdparty/itlib/small_vector.hpp
@@ -140,6 +140,7 @@
#include <type_traits>
#include <cstddef>
+#include <cstdint>
#include <memory>
#define ITLIB_SMALL_VECTOR_ERROR_HANDLING_NONE 0

View File

@@ -0,0 +1,26 @@
From b16f4381d0cdc147e4aff0b6f1fdbac3bbf1de7d Mon Sep 17 00:00:00 2001
From: Paul Zander <negril.nx@gmail.com>
Date: Fri, 25 Apr 2025 00:32:48 +0200
Subject: [PATCH] find hdf5 in global scope
Signed-off-by: Paul Zander <negril.nx@gmail.com>
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 96bb1d4..c5d8e09 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -419,6 +419,11 @@ if (VTK_FORBID_DOWNLOADS AND VTK_BUILD_TESTING)
"copy of the testing data.")
endif ()
+if(VTK_MODULE_ENABLE_VTK_hdf5 STREQUAL "WANT" OR
+ VTK_MODULE_ENABLE_VTK_hdf5 STREQUAL "YES")
+ find_package(HDF5 REQUIRED NO_MODULE COMPONENTS HL)
+endif()
+
include(vtkModule)
include(vtkModuleDebugging)
set(vtk_source_directories
--
2.49.0

View File

@@ -0,0 +1,34 @@
From 4eaf66f11bb80c0f805fd3361cdd9b412aabe796 Mon Sep 17 00:00:00 2001
From: Paul Zander <negril.nx+gentoo@gmail.com>
Date: Tue, 14 Jan 2025 14:00:01 +0100
Subject: [PATCH] fix fmt-11
Signed-off-by: Paul Zander <negril.nx+gentoo@gmail.com>
diff --git a/ThirdParty/ioss/vtkioss/Ioss_Field.C b/ThirdParty/ioss/vtkioss/Ioss_Field.C
index fbb2100..8909eef 100644
--- a/ThirdParty/ioss/vtkioss/Ioss_Field.C
+++ b/ThirdParty/ioss/vtkioss/Ioss_Field.C
@@ -12,6 +12,7 @@
#include <cstdint>
#include "vtk_fmt.h"
#include VTK_FMT(fmt/ostream.h)
+#include VTK_FMT(fmt/ranges.h)
#include <iostream>
#include <string>
#include <vector>
diff --git a/ThirdParty/ioss/vtkioss/Ioss_VariableType.C b/ThirdParty/ioss/vtkioss/Ioss_VariableType.C
index b081dc3..4f1a841 100644
--- a/ThirdParty/ioss/vtkioss/Ioss_VariableType.C
+++ b/ThirdParty/ioss/vtkioss/Ioss_VariableType.C
@@ -19,6 +19,7 @@
#include VTK_FMT(fmt/core.h)
#include VTK_FMT(fmt/format.h)
#include VTK_FMT(fmt/ostream.h)
+#include VTK_FMT(fmt/ranges.h)
#include <map>
#include <sstream>
#include <string>
--
2.48.0

View File

@@ -0,0 +1,12 @@
diff --git a/IO/OCCT/CMakeLists.txt b/IO/OCCT/CMakeLists.txt
index 836d545..2cf67a8 100644
--- a/IO/OCCT/CMakeLists.txt
+++ b/IO/OCCT/CMakeLists.txt
@@ -2,6 +2,7 @@ vtk_module_find_package(
PACKAGE OpenCASCADE
FORWARD_VERSION_REQ EXACT
VERSION_VAR "@OpenCASCADE_MAJOR_VERSION@.@OpenCASCADE_MINOR_VERSION@.@OpenCASCADE_MAINTENANCE_VERSION@"
+ COMPONENTS FoundationClasses ModelingData ModelingAlgorithms Visualization ApplicationFramework DataExchange Draw
)
set(opencascade_req_targets

View File

@@ -0,0 +1,40 @@
From 8bdf05fd255e0d07fdc61c2b04a5333c9e8dc729 Mon Sep 17 00:00:00 2001
From: Paul Zander <negril.nx+gentoo@gmail.com>
Date: Tue, 14 Jan 2025 12:41:12 +0100
Subject: [PATCH] fix pegtl-3.x
Signed-off-by: Paul Zander <negril.nx+gentoo@gmail.com>
diff --git a/Common/DataModel/vtkCellAttribute.cxx b/Common/DataModel/vtkCellAttribute.cxx
index 3c022ef..1ed1f66 100644
--- a/Common/DataModel/vtkCellAttribute.cxx
+++ b/Common/DataModel/vtkCellAttribute.cxx
@@ -595,10 +595,10 @@ bool vtkCellAttribute::DecodeSpace(
{
if (!quiet)
{
- const auto p = err.positions.front();
+ const auto p = err.positions().front();
vtkGenericWarningMacro("Attribute Space: " << err.what() << "\n"
- << in.line_at(p) << "\n"
- << std::string(p.byte_in_line, ' ') << "^\n");
+ << std::string(in.line_at(p)) << "\n"
+ << std::string(p.column, ' ') << "^\n");
}
return false;
}
diff --git a/ThirdParty/pegtl/Testing/Cxx/TestIncludePEGTL.cxx b/ThirdParty/pegtl/Testing/Cxx/TestIncludePEGTL.cxx
index 866b313..b324d26 100644
--- a/ThirdParty/pegtl/Testing/Cxx/TestIncludePEGTL.cxx
+++ b/ThirdParty/pegtl/Testing/Cxx/TestIncludePEGTL.cxx
@@ -1,6 +1,6 @@
#include "vtk_pegtl.h"
// clang-format off
-#include VTK_PEGTL(pegtl/contrib/tracer.hpp)
+#include VTK_PEGTL(pegtl/contrib/trace.hpp)
// clang-format on
#include <cstdlib>
--
2.48.0

View File

@@ -0,0 +1,13 @@
diff --git a/ThirdParty/vtkm/vtkvtkm/vtk-m/CMake/VTKmWrappers.cmake b/ThirdParty/vtkm/vtkvtkm/vtk-m/CMake/VTKmWrappers.cmake
index 10ba21e..e88299e 100644
--- a/ThirdParty/vtkm/vtkvtkm/vtk-m/CMake/VTKmWrappers.cmake
+++ b/ThirdParty/vtkm/vtkvtkm/vtk-m/CMake/VTKmWrappers.cmake
@@ -175,7 +175,7 @@ function(vtkm_setup_job_pool)
# will require 3GB of memory. To allow for other NON VTK-m jobs we leave at
# least 3GB of memory as 'slop'.
cmake_host_system_information(RESULT vtkm_mem_ QUERY TOTAL_PHYSICAL_MEMORY)
- math(EXPR vtkm_pool_size "(${vtkm_mem_}/3072)-1")
+ math(EXPR vtkm_pool_size "(${vtkm_mem_}/10240 - 3072)-1")
if (vtkm_pool_size LESS 1)
set(vtkm_pool_size 1)

File diff suppressed because it is too large Load Diff

16
x11-libs/wxGTK/Manifest Normal file
View File

@@ -0,0 +1,16 @@
AUX wxGTK-3.0-gtk3-translation-domain.patch 454 BLAKE2B fd0b6d6a0c1fe7f1dfbd7692d549dfd6f78c85e25f06e2e44630ca9b3c9dda4c12af2df6e4fcc02de73e75524631b858cc21b9f63b8799b0d157a38bd5541fac SHA512 8cdf57558e8d09e3e0613c25ac7701cce0bf78da13060e2b36167b69b8ae4f265607cb5216a33054f6c0c2f21beba8cc7f8297f4de2b2db1ec9f3f5bb8177ff3
AUX wxGTK-3.0.5-collision.patch 6298 BLAKE2B 711d7b94b6a0de4bdda21caa2bfcfd799c0d57a8d1d4a820e6da397768b075f415b8e438502167446b3be6b948420d1c1a31c401bd5e7bb2b549e3a95dcccad8 SHA512 62bbf952eac4a3485a2cfa3e6908b2272cb6f47632f17e60f413ad34b64e331423189a31c4259c8283120b4b1351f915e226f5c749787a5c69737779cc9edb59
AUX wxGTK-3.0.5.1-configure-modern-c.patch 1578 BLAKE2B 3951e12a0ee686785909713002af8eb5e9a2b2937e16310cdae28b95abc7240ba42497484c25c70fc0d4d0af86ef8f9f28adee1f8b92499df1a0938e27faa607 SHA512 6622a60c155b4d47eedf2b1f96fbd5db027646c5f9ca451eb4cc82f163fea5bcfad2ddb1a8f89955cdf873af61112382b6ee181b1ca9e80cad6aa2abebaf7097
AUX wxGTK-3.0.5.1-excise-autoptr.patch 12342 BLAKE2B 3fb76bf9466342a8828cb5276956fffcb28ad941b6c93ae164149544a9b27017b92a604fab489f8d9d02aa565ca5ea598700702452140b50e371b1332ed500dc SHA512 beb0891a1477216b49af17fd7a6145e70e7baff109cc8fa05496aab6b72cfc6ceb97e38670d8471719ecc50afacb6b973ad7013d09cce2c1e1972c975b949d75
AUX wxGTK-3.2.1-configure-tests.patch 478 BLAKE2B 1fdbb7d04c4100b39234c15181e3ea0301bf9c4f17da75fe3e52531cf877e26f1523bd7bc70192d87614f32e74dcd65509454baf97c7d0def088a797f1674c30 SHA512 95847ed7727670884b7d6570907c7a8ab6b9ba2eed81e575e8f21f957b41f630b424ed61e2cbc40c55f13669d5428daa70721bd4ffcbdd7f9f706618325c4d36
AUX wxGTK-3.2.1-gtk3-translation-domain.patch 425 BLAKE2B c517b85a352e010e8002de6e2e282728e1f9ee47d22380072d15e35723e65d0a417c06b23f0c50e8d91036611ee0bfe54ba124c4294ec248de3a5cb64b35a448 SHA512 0e5b01958c848b81008a2296405e4de33da46445553d555deeed215928d90583a4da61de4bdceb1fb3745cce53118b7bc29be73f511f0bdb9c3c6b193f2f6c24
AUX wxGTK-3.2.1-prefer-lib64-in-tests.patch 1016 BLAKE2B b2d7cac45af6a0e5e118c8688db5e5a60e144dc5e82f4653f4dfea53fa969c3af0ca2c4ce1d6d430bc8e6aef45c4d946e8cf65cf6c53222981fcdde005d05e09 SHA512 a5c7c81af28d637a31c93d2296e1c1b5456038c0703c3d32f136188435ab3e7f4766805dcb73dac0d976eac7cb6e4c86923cca023543b29b735d5ea87ccb2b1b
AUX wxGTK-3.2.1-wayland-control.patch 6150 BLAKE2B 4aef8ab0fb4e2352afba139cc539f77b1c0825ee7c4a33c0f2fc41bcbadd943a90c55dced954f362f73995d2232d54b1815725a0c5d03325c64d0a00d92191aa SHA512 995eeb0409293247756eddde8bf8fcee87ded284bb0f9faac27ae511483e0131e4802bdb9d93063097273e83b55b08328dd0380639fcb265352991cf3d34fc1d
AUX wxGTK-3.2.2.1-backport-pr24197.patch 3030 BLAKE2B b005f114f03f4791fc3a94ab0ffd807dfa20fc7ccb36af58336010b3c3d5de262f53615cd99369e7d013c741f4b070417568e1671144287c2e8ed3c6f9a68880 SHA512 d358517a34a5040ee51055e4d67807e24e344f5ad0a8809939fd1cc708a7a409e564cb88fbffd95c6b8ef901fb00ed65423e745038675948d8c93052f222acaa
AUX wxGTK-3.2.2.1-dont-break-flags.patch 1373 BLAKE2B 2ae7524b2f80cc562dc6a62a823e1e0d904213de4c11346995d7014490843ad6f7111c5b39b5d147a39beaf07b627b8f13378bfdc1ea129a24230054ccf8aad4 SHA512 3cb557dc51b7694a9e935b14d4c4ab430a75c3de091f697d3291e04b78cd0b3b6a8c7fc3c4afc32a2692d32f43cf4bb52655a4230ac1b38cd101f903f136f2e4
AUX wxGTK-3.2.5-dont-break-flags.patch 565 BLAKE2B 87d05449f43c455089389aee4750480596f521f4ef97c54b3bb3825b8383625432b97dc10229ec214ad5ebca89802902455600def5be29d55128089dc99ea934 SHA512 7f551bc56a72db2a34058bf4880521b171727a9ab93acbf518ec88a54dd68952d914ea6fb1e848bb6fc158f1ad2225388d35c6cb8daafc79c55d06691273b3e4
AUX wxGTK-configure-tests.patch 560 BLAKE2B 86a735c58abc8690cd943ff58a39140a636c56dcde08f47d27dbdcf99790216ebe0f4524f2f7cd67e35748c32adaee377c4e8a4b606975115c666cbc453b5173 SHA512 f02b708e5de66a4a7dce9f1adef1ebd1461ef68acee502b54d514a0ce4e5fe998eaad9a9ec7b1bec9aa4d8803a4042111ea4cddafe8e2f68d3d122faf90465df
AUX wxGTK-ignore-c++-abi.patch 1657 BLAKE2B 5d865c83174f2540b798a2930f8d5ae8336f031214691fe7d5cd8c283faf9511fff260735d9dcd293e6377be0e96a6521e84ceae4560f2fef8fc7e7ed5642cd6 SHA512 649551eeacc9915f249ece1c3ed79959f0f0129e54373bfbe84ea5fbf2b8e0ba7778d6a22ac6f165e5d4e85a3ea4320274296b1b2a8e623acb11300fe44478f8
DIST wxWidgets-3.2.8-docs-html.tar.bz2 18209484 BLAKE2B 4e57589d4460bfc74c5ac1c1e9ea665e12ae2f1ffb73e9e6d634fa7bd959e76b29ce7cceb5daa7de7fb72885804d3b6d0729145a5b0380e1d5beca2154831ca9 SHA512 c9101bd4f925931f18b29f54c1b715cf988d638ed95c81e99b5aac5a6953c57cd019b84242f2b5cb95fc43278658ee9d872d1d57c97cd2e8e29cd6200cce56a3
DIST wxWidgets-3.2.8.tar.bz2 27675086 BLAKE2B 54855e401831b6e9510fe3ee6c8909e492151a6ed5c2801a3322adce971379e7aad8f00ad8c6e41f4adf31d3f2c3cb812eeb0cdaef42f87aee11fca005b36a11 SHA512 3ac5c8f689c771ea27fedcfc4c4416c936f279f8dbf87476a9d8e454d9ecd8c4ed7f9072d7c1e33273128dbfc3fea22954c466ba538bbe5868745d14e882df63
EBUILD wxGTK-3.2.8.ebuild 8370 BLAKE2B e54de34d81bd6bafb4f9d4c0b0ef904a72e7e8ccc408c8563f3b355cfc1accb0317d25a4c804c41efceb2d46bb04dbcd35462b709dd6b933c33f4401444c6284 SHA512 f34ec40549cff097859e8175dca1f4c0121b3525d11193c8ea794e4b66a007a0b9e4569726f096076cc5a7d1701697fc0c50f8f9fc0ba4a5dc8018a594830c74

View File

@@ -0,0 +1,13 @@
Modify AddStdCatalog to use the versioned wxstd30-gtk3.mo.
--- a/src/common/translation.cpp
+++ b/src/common/translation.cpp
@@ -1458,7 +1458,7 @@ wxArrayString wxTranslations::GetAvailableTranslations(const wxString& domain) c
bool wxTranslations::AddStdCatalog()
{
- if ( !AddCatalog(wxS("wxstd")) )
+ if ( !AddCatalog(wxS("wxstd30-gtk3")) )
return false;
// there may be a catalog with toolkit specific overrides, it is not

View File

@@ -0,0 +1,75 @@
Prevent file collisions between multiple installed SLOTs.
- Don't install wxwin.m4. It is installed with app-eselect/eselect-wxwidgets.
- Version the bakefile preset filenames. Unversioned symlinks to these files
are handled by eselect.
- Version wx-config and wxrc. The unversioned forms are wrapper scripts
installed with eselect-wxwidgets.
- Version wxstd.mo and modify AddStdCatalog to use it.
--- a/Makefile.in
+++ b/Makefile.in
@@ -15213,10 +15213,10 @@ COND_wxUSE_REGEX_builtin___LIB_REGEX_p = \
all: $(__wxregex___depname) $(__wxzlib___depname) $(__wxpng___depname) $(__wxjpeg___depname) $(__wxtiff___depname) $(__wxexpat___depname) $(__wxscintilla___depname) $(__monodll___depname) $(__monolib___depname) $(__basedll___depname) $(__baselib___depname) $(__netdll___depname) $(__netlib___depname) $(__coredll___depname) $(__corelib___depname) $(__advdll___depname) $(__advlib___depname) $(__mediadll___depname) $(__medialib___depname) $(__htmldll___depname) $(__htmllib___depname) $(__webviewdll___depname) $(__webviewlib___depname) $(__qadll___depname) $(__qalib___depname) $(__xmldll___depname) $(__xmllib___depname) $(__xrcdll___depname) $(__xrclib___depname) $(__auidll___depname) $(__auilib___depname) $(__ribbondll___depname) $(__ribbonlib___depname) $(__propgriddll___depname) $(__propgridlib___depname) $(__richtextdll___depname) $(__richtextlib___depname) $(__stcdll___depname) $(__stclib___depname) $(__gldll___depname) $(__gllib___depname) $(__sound_sdl___depname) $(__webkit2_ext___depname) $(__wxrc___depname) $(__cocoa_res___depname)
install: $(__install_wxregex___depname) $(__install_wxzlib___depname) $(__install_wxpng___depname) $(__install_wxjpeg___depname) $(__install_wxtiff___depname) $(__install_wxexpat___depname) $(__install_wxscintilla___depname) $(__install_monodll___depname) $(__install_monolib___depname) $(__install_basedll___depname) $(__install_baselib___depname) $(__install_netdll___depname) $(__install_netlib___depname) $(__install_coredll___depname) $(__install_corelib___depname) $(__install_advdll___depname) $(__install_advlib___depname) $(__install_mediadll___depname) $(__install_medialib___depname) $(__install_htmldll___depname) $(__install_htmllib___depname) $(__install_webviewdll___depname) $(__install_webviewlib___depname) $(__install_qadll___depname) $(__install_qalib___depname) $(__install_xmldll___depname) $(__install_xmllib___depname) $(__install_xrcdll___depname) $(__install_xrclib___depname) $(__install_auidll___depname) $(__install_auilib___depname) $(__install_ribbondll___depname) $(__install_ribbonlib___depname) $(__install_propgriddll___depname) $(__install_propgridlib___depname) $(__install_richtextdll___depname) $(__install_richtextlib___depname) $(__install_stcdll___depname) $(__install_stclib___depname) $(__install_gldll___depname) $(__install_gllib___depname) $(__install_sound_sdl___depname) $(__install_webkit2_ext___depname) $(__install_wxrc___depname) install-wxconfig locale_install locale_msw_install $(__cocoa_res_install___depname)
- $(INSTALL_DIR) $(DESTDIR)$(datadir)/aclocal
- (cd $(srcdir) ; $(INSTALL_DATA) wxwin.m4 $(DESTDIR)$(datadir)/aclocal)
$(INSTALL_DIR) $(DESTDIR)$(datadir)/bakefile/presets
- (cd $(srcdir)/build/bakefiles/wxpresets/presets ; $(INSTALL_DATA) wx.bkl wx_unix.bkl wx_win32.bkl wx_xrc.bkl wx_presets.py $(DESTDIR)$(datadir)/bakefile/presets)
+ (cd $(srcdir)/build/bakefiles/wxpresets/presets ; \
+ for i in wx.bkl wx_unix.bkl wx_win32.bkl wx_xrc.bkl wx_presets.py ; do \
+ $(INSTALL_DATA) $$i $(DESTDIR)$(datadir)/bakefile/presets/wx$(WX_RELEASE_NODOT)$${i##wx} ; done)
$(DYLIB_RPATH_INSTALL)
$(INSTALL_DIR) $(DESTDIR)$(libdir)/wx/include/$(TOOLCHAIN_FULLNAME)/wx
for f in setup.h $(RCDEFS_H); do \
@@ -16101,7 +16101,7 @@ install-wxconfig:
$(INSTALL_DIR) $(DESTDIR)$(bindir)
$(INSTALL_DIR) $(DESTDIR)$(libdir)/wx/config
$(INSTALL_SCRIPT) lib/wx/config/$(TOOLCHAIN_FULLNAME) $(DESTDIR)$(libdir)/wx/config
- (cd $(DESTDIR)$(bindir) && rm -f wx-config && $(LN_S) $(libdir)/wx/config/$(TOOLCHAIN_FULLNAME) wx-config || cp -p $(DESTDIR)$(libdir)/wx/config/$(TOOLCHAIN_FULLNAME) wx-config)
+ (cd $(DESTDIR)$(bindir) && rm -f wx-config-$(WX_RELEASE) && $(LN_S) $(libdir)/wx/config/$(TOOLCHAIN_FULLNAME) wx-config-$(WX_RELEASE) || cp -p $(DESTDIR)$(libdir)/wx/config/$(TOOLCHAIN_FULLNAME) wx-config-$(WX_RELEASE))
locale_install:
$(INSTALL_DIR) $(DESTDIR)$(datadir)/locale
@@ -16109,7 +16109,7 @@ locale_install:
$(INSTALL_DIR) $(DESTDIR)$(datadir)/locale/$$l ; \
$(INSTALL_DIR) $(DESTDIR)$(datadir)/locale/$$l/LC_MESSAGES ; \
if test -f $(srcdir)/locale/$$l.mo ; then \
- $(INSTALL_DATA) $(srcdir)/locale/$$l.mo $(DESTDIR)$(datadir)/locale/$$l/LC_MESSAGES/wxstd.mo ; \
+ $(INSTALL_DATA) $(srcdir)/locale/$$l.mo $(DESTDIR)$(datadir)/locale/$$l/LC_MESSAGES/wxstd$(WX_RELEASE_NODOT).mo ; \
fi ; \
done
--- a/build/bakefiles/wx.bkl
+++ b/build/bakefiles/wx.bkl
@@ -137,7 +137,7 @@
<using module="gettext"/>
<gettext-catalogs id="locale">
<srcdir>$(SRCDIR)/locale</srcdir>
- <catalog-name>wxstd</catalog-name>
+ <catalog-name>wxstd$(WX_RELEASE_NODOT)</catalog-name>
<linguas>
ca cs da de el es fi fr hu id it ja nl pl ru sl sv tr uk
zh zh_CN zh_TW
--- a/src/common/translation.cpp
+++ b/src/common/translation.cpp
@@ -1458,7 +1458,7 @@ wxArrayString wxTranslations::GetAvailableTranslations(const wxString& domain) c
bool wxTranslations::AddStdCatalog()
{
- if ( !AddCatalog(wxS("wxstd")) )
+ if ( !AddCatalog(wxS("wxstd" wxSTRINGIZE(wxMAJOR_VERSION) wxSTRINGIZE(wxMINOR_VERSION))) )
return false;
// there may be a catalog with toolkit specific overrides, it is not
--- a/utils/wxrc/Makefile.in
+++ b/utils/wxrc/Makefile.in
@@ -125,7 +125,6 @@ distclean: clean
@COND_USE_XRC_1@ rm -f $(DESTDIR)$(bindir)/wxrc$(EXEEXT) $(DESTDIR)$(bindir)/wxrc-$(WX_RELEASE)
@COND_USE_XRC_1@ $(INSTALL_PROGRAM) wxrc$(EXEEXT) $(DESTDIR)$(bindir)
@COND_USE_XRC_1@ mv -f $(DESTDIR)$(bindir)/wxrc$(EXEEXT) $(DESTDIR)$(bindir)/wxrc-$(WX_RELEASE)
-@COND_USE_XRC_1@ (cd $(DESTDIR)$(bindir) && $(LN_S) wxrc-$(WX_RELEASE) wxrc$(EXEEXT))
@COND_USE_XRC_1@uninstall_wxrc:
@COND_USE_XRC_1@ rm -f $(DESTDIR)$(bindir)/wxrc$(EXEEXT)

View File

@@ -0,0 +1,54 @@
https://github.com/wxWidgets/wxWidgets/commit/da4b42688a6cd5444eefb91bf40183d88203ffca
https://bugs.gentoo.org/874441
--- a/configure
+++ b/configure
@@ -19586,6 +19586,7 @@ else
/* end confdefs.h. */
#include <stdio.h>
+ #include <stdlib.h>
int main()
{
@@ -22300,6 +22301,7 @@ else
#include <zlib.h>
#include <stdio.h>
+ #include <stdlib.h>
int main()
{
@@ -22422,6 +22424,7 @@ else
#include <png.h>
#include <stdio.h>
+ #include <stdlib.h>
int main()
{
--- a/configure.in
+++ b/configure.in
@@ -1482,6 +1482,7 @@ case "${host}" in
dnl Check the gcc version macro.
[
#include <stdio.h>
+ #include <stdlib.h>
int main()
{
@@ -2439,6 +2440,7 @@ if test "$wxUSE_ZLIB" != "no" ; then
[
#include <zlib.h>
#include <stdio.h>
+ #include <stdlib.h>
int main()
{
@@ -2507,6 +2509,7 @@ if test "$wxUSE_LIBPNG" != "no" ; then
[
#include <png.h>
#include <stdio.h>
+ #include <stdlib.h>
int main()
{

View File

@@ -0,0 +1,322 @@
Direct replacement of auto_ptr, equivalent to parts of upstream commits:
https://github.com/wxWidgets/wxWidgets/commit/b8c9cd35288a5c94f88ea83bf8c9ee644f99ece1
https://github.com/wxWidgets/wxWidgets/commit/11a5728b327d5f16ef284d737f6329d38ae4d4b1
made by diffing new-er upstream version with fixes included and current file
diff --git a/tests/archive/archivetest.cpp b/tests/archive/archivetest.cpp
index fa122d1..845ee0b 100644
--- a/tests/archive/archivetest.cpp
+++ b/tests/archive/archivetest.cpp
@@ -32,7 +32,6 @@
#include <sys/stat.h>
using std::string;
-using std::auto_ptr;
// Check whether member templates can be used
@@ -559,7 +558,7 @@ TestEntry& ArchiveTestCase<ClassFactoryT>::Add(const char *name,
template <class ClassFactoryT>
void ArchiveTestCase<ClassFactoryT>::CreateArchive(wxOutputStream& out)
{
- auto_ptr<OutputStreamT> arc(m_factory->NewStream(out));
+ wxScopedPtr<OutputStreamT> arc(m_factory->NewStream(out));
TestEntries::iterator it;
OnCreateArchive(*arc);
@@ -587,7 +586,7 @@ void ArchiveTestCase<ClassFactoryT>::CreateArchive(wxOutputStream& out)
if ((choices & 2) || testEntry.IsText()) {
// try PutNextEntry(EntryT *pEntry)
- auto_ptr<EntryT> entry(m_factory->NewEntry());
+ wxScopedPtr<EntryT> entry(m_factory->NewEntry());
entry->SetName(name, wxPATH_UNIX);
if (setIsDir)
entry->SetIsDir();
@@ -701,8 +700,8 @@ template <class ClassFactoryT>
void ArchiveTestCase<ClassFactoryT>::ModifyArchive(wxInputStream& in,
wxOutputStream& out)
{
- auto_ptr<InputStreamT> arcIn(m_factory->NewStream(in));
- auto_ptr<OutputStreamT> arcOut(m_factory->NewStream(out));
+ wxScopedPtr<InputStreamT> arcIn(m_factory->NewStream(in));
+ wxScopedPtr<OutputStreamT> arcOut(m_factory->NewStream(out));
EntryT *pEntry;
const wxString deleteName = wxT("bin/bin1000");
@@ -714,7 +713,7 @@ void ArchiveTestCase<ClassFactoryT>::ModifyArchive(wxInputStream& in,
arcOut->CopyArchiveMetaData(*arcIn);
while ((pEntry = arcIn->GetNextEntry()) != NULL) {
- auto_ptr<EntryT> entry(pEntry);
+ wxScopedPtr<EntryT> entry(pEntry);
OnSetNotifier(*entry);
wxString name = entry->GetName(wxPATH_UNIX);
@@ -759,7 +758,7 @@ void ArchiveTestCase<ClassFactoryT>::ModifyArchive(wxInputStream& in,
// try adding a new entry
TestEntry& testEntry = Add(newName.mb_str(), newData);
- auto_ptr<EntryT> newentry(m_factory->NewEntry());
+ wxScopedPtr<EntryT> newentry(m_factory->NewEntry());
newentry->SetName(newName);
newentry->SetDateTime(testEntry.GetDateTime());
newentry->SetSize(testEntry.GetLength());
@@ -782,7 +781,7 @@ void ArchiveTestCase<ClassFactoryT>::ExtractArchive(wxInputStream& in)
typedef std::list<EntryPtr> Entries;
typedef typename Entries::iterator EntryIter;
- auto_ptr<InputStreamT> arc(m_factory->NewStream(in));
+ wxScopedPtr<InputStreamT> arc(m_factory->NewStream(in));
int expectedTotal = m_testEntries.size();
EntryPtr entry;
Entries entries;
@@ -991,7 +990,7 @@ void ArchiveTestCase<ClassFactoryT>::TestIterator(wxInputStream& in)
typedef std::list<EntryT*> ArchiveCatalog;
typedef typename ArchiveCatalog::iterator CatalogIter;
- auto_ptr<InputStreamT> arc(m_factory->NewStream(in));
+ wxScopedPtr<InputStreamT> arc(m_factory->NewStream(in));
size_t count = 0;
#ifdef WXARC_MEMBER_TEMPLATES
@@ -1003,7 +1002,7 @@ void ArchiveTestCase<ClassFactoryT>::TestIterator(wxInputStream& in)
#endif
for (CatalogIter it = cat.begin(); it != cat.end(); ++it) {
- auto_ptr<EntryT> entry(*it);
+ wxScopedPtr<EntryT> entry(*it);
count += m_testEntries.count(entry->GetName(wxPATH_UNIX));
}
@@ -1020,7 +1019,7 @@ void ArchiveTestCase<ClassFactoryT>::TestPairIterator(wxInputStream& in)
typedef std::map<wxString, EntryT*> ArchiveCatalog;
typedef typename ArchiveCatalog::iterator CatalogIter;
- auto_ptr<InputStreamT> arc(m_factory->NewStream(in));
+ wxScopedPtr<InputStreamT> arc(m_factory->NewStream(in));
size_t count = 0;
#ifdef WXARC_MEMBER_TEMPLATES
@@ -1032,7 +1031,7 @@ void ArchiveTestCase<ClassFactoryT>::TestPairIterator(wxInputStream& in)
#endif
for (CatalogIter it = cat.begin(); it != cat.end(); ++it) {
- auto_ptr<EntryT> entry(it->second);
+ wxScopedPtr<EntryT> entry(it->second);
count += m_testEntries.count(entry->GetName(wxPATH_UNIX));
}
@@ -1049,7 +1048,7 @@ void ArchiveTestCase<ClassFactoryT>::TestSmartIterator(wxInputStream& in)
typedef typename ArchiveCatalog::iterator CatalogIter;
typedef wxArchiveIterator<InputStreamT, Ptr<EntryT> > Iter;
- auto_ptr<InputStreamT> arc(m_factory->NewStream(in));
+ wxScopedPtr<InputStreamT> arc(m_factory->NewStream(in));
#ifdef WXARC_MEMBER_TEMPLATES
ArchiveCatalog cat((Iter)*arc, Iter());
@@ -1080,7 +1079,7 @@ void ArchiveTestCase<ClassFactoryT>::TestSmartPairIterator(wxInputStream& in)
typedef wxArchiveIterator<InputStreamT,
std::pair<wxString, Ptr<EntryT> > > PairIter;
- auto_ptr<InputStreamT> arc(m_factory->NewStream(in));
+ wxScopedPtr<InputStreamT> arc(m_factory->NewStream(in));
#ifdef WXARC_MEMBER_TEMPLATES
ArchiveCatalog cat((PairIter)*arc, PairIter());
@@ -1108,8 +1107,8 @@ void ArchiveTestCase<ClassFactoryT>::ReadSimultaneous(TestInputStream& in)
// create two archive input streams
TestInputStream in2(in);
- auto_ptr<InputStreamT> arc(m_factory->NewStream(in));
- auto_ptr<InputStreamT> arc2(m_factory->NewStream(in2));
+ wxScopedPtr<InputStreamT> arc(m_factory->NewStream(in));
+ wxScopedPtr<InputStreamT> arc2(m_factory->NewStream(in2));
// load the catalog
#ifdef WXARC_MEMBER_TEMPLATES
@@ -1201,7 +1200,7 @@ protected:
void CreateArchive(wxOutputStream& out);
void ExtractArchive(wxInputStream& in);
- auto_ptr<wxArchiveClassFactory> m_factory; // factory to make classes
+ wxScopedPtr<wxArchiveClassFactory> m_factory; // factory to make classes
int m_options; // test options
};
@@ -1241,7 +1240,7 @@ void CorruptionTestCase::runTest()
void CorruptionTestCase::CreateArchive(wxOutputStream& out)
{
- auto_ptr<wxArchiveOutputStream> arc(m_factory->NewStream(out));
+ wxScopedPtr<wxArchiveOutputStream> arc(m_factory->NewStream(out));
arc->PutNextDirEntry(wxT("dir"));
arc->PutNextEntry(wxT("file"));
@@ -1250,8 +1249,8 @@ void CorruptionTestCase::CreateArchive(wxOutputStream& out)
void CorruptionTestCase::ExtractArchive(wxInputStream& in)
{
- auto_ptr<wxArchiveInputStream> arc(m_factory->NewStream(in));
- auto_ptr<wxArchiveEntry> entry(arc->GetNextEntry());
+ wxScopedPtr<wxArchiveInputStream> arc(m_factory->NewStream(in));
+ wxScopedPtr<wxArchiveEntry> entry(arc->GetNextEntry());
while (entry.get() != NULL) {
char buf[1024];
@@ -1259,7 +1258,6 @@ void CorruptionTestCase::ExtractArchive(wxInputStream& in)
while (arc->IsOk())
arc->Read(buf, sizeof(buf));
- auto_ptr<wxArchiveEntry> next(arc->GetNextEntry());
- entry = next;
+ entry.reset(arc->GetNextEntry());
}
}
diff --git a/tests/archive/archivetest.h b/tests/archive/archivetest.h
index 7a1a306..37a083c 100644
--- a/tests/archive/archivetest.h
+++ b/tests/archive/archivetest.h
@@ -13,7 +13,7 @@
#include "wx/archive.h"
#include "wx/wfstream.h"
-
+#include "wx/scopedptr.h"
///////////////////////////////////////////////////////////////////////////////
// Bit flags for options for the tests
@@ -213,7 +213,7 @@ protected:
typedef std::map<wxString, TestEntry*> TestEntries;
TestEntries m_testEntries; // test data
- std::auto_ptr<ClassFactoryT> m_factory; // factory to make classes
+ wxScopedPtr<ClassFactoryT> m_factory; // factory to make classes
int m_options; // test options
wxDateTime m_timeStamp; // timestamp to give test entries
int m_id; // select between the possibilites
diff --git a/tests/archive/ziptest.cpp b/tests/archive/ziptest.cpp
index 3e9cff3..dc3fef5 100644
--- a/tests/archive/ziptest.cpp
+++ b/tests/archive/ziptest.cpp
@@ -22,7 +22,6 @@
#include "wx/zipstrm.h"
using std::string;
-using std::auto_ptr;
///////////////////////////////////////////////////////////////////////////////
@@ -186,7 +185,7 @@ void ZipPipeTestCase::runTest()
TestInputStream in(out, m_id % ((m_options & PipeIn) ? 4 : 3));
wxZipInputStream zip(in);
- auto_ptr<wxZipEntry> entry(zip.GetNextEntry());
+ wxScopedPtr<wxZipEntry> entry(zip.GetNextEntry());
CPPUNIT_ASSERT(entry.get() != NULL);
if ((m_options & PipeIn) == 0)
diff --git a/tests/net/socket.cpp b/tests/net/socket.cpp
index acd91ae..7e27fc4 100644
--- a/tests/net/socket.cpp
+++ b/tests/net/socket.cpp
@@ -28,10 +28,11 @@
#include "wx/url.h"
#include "wx/sstream.h"
#include "wx/evtloop.h"
+#include "wx/scopedptr.h"
#include <memory>
-typedef std::auto_ptr<wxSockAddress> wxSockAddressPtr;
-typedef std::auto_ptr<wxSocketClient> wxSocketClientPtr;
+typedef wxScopedPtr<wxSockAddress> wxSockAddressPtr;
+typedef wxScopedPtr<wxSocketClient> wxSocketClientPtr;
static wxString gs_serverHost(wxGetenv("WX_TEST_SERVER"));
@@ -257,7 +258,7 @@ void SocketTestCase::UrlTest()
wxURL url("http://" + gs_serverHost);
- const std::auto_ptr<wxInputStream> in(url.GetInputStream());
+ const wxScopedPtr<wxInputStream> in(url.GetInputStream());
CPPUNIT_ASSERT( in.get() );
wxStringOutputStream out;
diff --git a/tests/streams/largefile.cpp b/tests/streams/largefile.cpp
index 9c6c481..59fca24 100644
--- a/tests/streams/largefile.cpp
+++ b/tests/streams/largefile.cpp
@@ -33,6 +33,7 @@
#include "wx/filename.h"
#include "wx/wfstream.h"
+#include "wx/scopedptr.h"
#ifdef __WINDOWS__
#include "wx/msw/wrapwin.h"
@@ -51,7 +52,6 @@
#define fileno _fileno
#endif
-using std::auto_ptr;
///////////////////////////////////////////////////////////////////////////////
@@ -120,7 +120,7 @@ void LargeFileTest::runTest()
// write a large file
{
- auto_ptr<wxOutputStream> out(MakeOutStream(tmpfile.m_name));
+ wxScopedPtr<wxOutputStream> out(MakeOutStream(tmpfile.m_name));
// write 'A's at [ 0x7fffffbf, 0x7fffffff [
pos = 0x7fffffff - size;
@@ -154,7 +154,7 @@ void LargeFileTest::runTest()
// read the large file back
{
- auto_ptr<wxInputStream> in(MakeInStream(tmpfile.m_name));
+ wxScopedPtr<wxInputStream> in(MakeInStream(tmpfile.m_name));
char buf[size];
if (haveLFS) {
@@ -218,7 +218,7 @@ protected:
wxInputStream *LargeFileTest_wxFile::MakeInStream(const wxString& name) const
{
- auto_ptr<wxFileInputStream> in(new wxFileInputStream(name));
+ wxScopedPtr<wxFileInputStream> in(new wxFileInputStream(name));
CPPUNIT_ASSERT(in->IsOk());
return in.release();
}
@@ -250,7 +250,7 @@ protected:
wxInputStream *LargeFileTest_wxFFile::MakeInStream(const wxString& name) const
{
- auto_ptr<wxFFileInputStream> in(new wxFFileInputStream(name));
+ wxScopedPtr<wxFFileInputStream> in(new wxFFileInputStream(name));
CPPUNIT_ASSERT(in->IsOk());
return in.release();
}
diff --git a/wxWidgets-3.0.5.1/src/stc/scintilla/src/Editor.cxx.old b/wxWidgets-3.0.5.1/src/stc/scintilla/src/Editor.cxx
index 2081df2..a8c8572 100644
--- a/src/stc/scintilla/src/Editor.cxx
+++ b/src/stc/scintilla/src/Editor.cxx
@@ -41,6 +41,7 @@
#include "Selection.h"
#include "PositionCache.h"
#include "Editor.h"
+#include "wx/scopedptr.h"
#ifdef SCI_NAMESPACE
using namespace Scintilla;
@@ -5706,7 +5707,7 @@ long Editor::FindText(
Sci_TextToFind *ft = reinterpret_cast<Sci_TextToFind *>(lParam);
int lengthFound = istrlen(ft->lpstrText);
- std::auto_ptr<CaseFolder> pcf(CaseFolderForEncoding());
+ wxScopedPtr<CaseFolder> pcf(CaseFolderForEncoding());
int pos = pdoc->FindText(ft->chrg.cpMin, ft->chrg.cpMax, ft->lpstrText,
(wParam & SCFIND_MATCHCASE) != 0,
(wParam & SCFIND_WHOLEWORD) != 0,

View File

@@ -0,0 +1,19 @@
diff --git a/configure b/configure
index d2acb7d..69ae083 100755
--- a/configure
+++ b/configure
@@ -45622,6 +45622,14 @@ $as_echo "yes" >&6; }
fi
fi
+# explicit override to enable or disable tests
+if test "${enable_tests+set}" = set; then
+ SUBDIRS="$SUBDIRS tests"
+fi
+if test "${disable_tests+set}" = set; then
+ SUBDIRS="${SUBDIRS% tests}"
+fi
+
for subdir in $SUBDIRS; do
if test -d ${srcdir}/${subdir} ; then
if test "$wxUSE_GUI" = "yes"; then

View File

@@ -0,0 +1,12 @@
Modify AddStdCatalog to use the versioned wxstd32-gtk3.mo.
--- a/src/common/translation.cpp
+++ b/src/common/translation.cpp
@@ -1409,7 +1409,7 @@ bool wxTranslations::AddStdCatalog()
if ( AddCatalog("wxstd-" wxSTRINGIZE(wxMAJOR_VERSION) "." wxSTRINGIZE(wxMINOR_VERSION)) )
return true;
- if ( AddCatalog(wxS("wxstd")) )
+ if ( AddCatalog(wxS("wxstd32-gtk3")) )
return true;
return false;

View File

@@ -0,0 +1,33 @@
From eafc2ad88b9164a8ef6bd2f6d79e8d7da90246e8 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Arsen=20Arsenovi=C4=87?= <arsen@aarsen.me>
Date: Mon, 19 Dec 2022 12:30:09 +0100
Subject: [PATCH] tests: Prefer /lib64 to /lib in DynamicLibrary test
---
Upstream has been notified about this test failure, however, I'd prefer a
different fix in place of this one, so I haven't sent a patch in yet.
https://github.com/wxWidgets/wxWidgets/commit/512b8033feef6ba99c4dfdf6ada42a56d7425d6d
tests/misc/dynamiclib.cpp | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/tests/misc/dynamiclib.cpp b/tests/misc/dynamiclib.cpp
index 020eb5b..ee41f1d 100644
--- a/tests/misc/dynamiclib.cpp
+++ b/tests/misc/dynamiclib.cpp
@@ -37,9 +37,10 @@ TEST_CASE("DynamicLibrary::Load", "[dynlib]")
#else // other Unix
static const char* const candidateDirs[] =
{
+ "/lib64",
+ "/usr/lib64",
"/lib/x86_64-linux-gnu",
"/lib",
- "/lib64",
"/usr/lib",
};
--
2.39.0

View File

@@ -0,0 +1,185 @@
From d886c4cada68ed5bfdca72de846182be63f2619e Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Arsen=20Arsenovi=C4=87?= <arsen@aarsen.me>
Date: Mon, 19 Dec 2022 11:30:58 +0100
Subject: [PATCH] configure.in: Allow disabling Wayland support
---
This patch is not forwarded upstream since, AFAIK, the autoconf+bakefile build
system is currently in the process of being replaced.
This patch enables us to explicitly disable GDK wayland platform detection via
an enable flag. It doesn't implement failed detection logic since that
shouldn't happen in the scenario Portage is in. This patch also runs includes
patches for the configure script itself, because the configuration was
generated by a seemingly patched Autoconf 2.69.
configure | 53 +++++++++++++++++++++++++++++++++++++++++++---------
configure.in | 37 ++++++++++++++++++++----------------
2 files changed, 65 insertions(+), 25 deletions(-)
diff --git a/configure b/configure
index 54eb7a7..b6d5e52 100755
--- a/configure
+++ b/configure
@@ -1218,6 +1218,7 @@ enable_textfile
enable_timer
enable_variant
enable_zipstream
+enable_wayland
enable_url
enable_protocol
enable_protocol_http
@@ -2190,6 +2191,7 @@ Optional Features:
--enable-timer use wxTimer class
--enable-variant use wxVariant class
--enable-zipstream use wxZip streams
+ --enable-wayland allow using Wayland EGL backend
--enable-url use wxURL class
--enable-protocol use wxProtocol class
--enable-protocol-http HTTP support in wxProtocol
@@ -8228,6 +8230,35 @@ fi
eval "$wx_cv_use_zipstream"
+ enablestring=
+ defaultval=$wxUSE_ALL_FEATURES
+ if test -z "$defaultval"; then
+ if test x"$enablestring" = xdisable; then
+ defaultval=yes
+ else
+ defaultval=no
+ fi
+ fi
+
+ # Check whether --enable-wayland was given.
+if test "${enable_wayland+set}" = set; then :
+ enableval=$enable_wayland;
+ if test "$enableval" = yes; then
+ wx_cv_use_wayland='wxUSE_WAYLAND=yes'
+ else
+ wx_cv_use_wayland='wxUSE_WAYLAND=no'
+ fi
+
+else
+
+ wx_cv_use_wayland='wxUSE_WAYLAND=${'DEFAULT_wxUSE_WAYLAND":-$defaultval}"
+
+fi
+
+
+ eval "$wx_cv_use_wayland"
+
+
enablestring=
defaultval=$wxUSE_ALL_FEATURES
@@ -29335,26 +29366,27 @@ done
TOOLKIT=GTK
GUIDIST=GTK_DIST
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GDK Wayland backend" >&5
+ if test x"$wxUSE_WAYLAND" = xyes; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GDK Wayland backend" >&5
$as_echo_n "checking for GDK Wayland backend... " >&6; }
if ${wx_cv_gdk_wayland+:} false; then :
$as_echo_n "(cached) " >&6
else
- save_CFLAGS=$CFLAGS
- CFLAGS="$CFLAGS $TOOLKIT_INCLUDE"
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+ save_CFLAGS=$CFLAGS
+ CFLAGS="$CFLAGS $TOOLKIT_INCLUDE"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
- #include <gdk/gdk.h>
+ #include <gdk/gdk.h>
int
main ()
{
- #ifndef GDK_WINDOWING_WAYLAND
- Not GDK Windowing Wayland
- #endif
+ #ifndef GDK_WINDOWING_WAYLAND
+ Not GDK Windowing Wayland
+ #endif
;
return 0;
@@ -29367,11 +29399,14 @@ else
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- CFLAGS=$save_CFLAGS
+ CFLAGS=$save_CFLAGS
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $wx_cv_gdk_wayland" >&5
$as_echo "$wx_cv_gdk_wayland" >&6; }
+ else
+ wx_cv_gdk_wayland=no
+ fi
if test "$wxUSE_GPE" = "yes"; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for gpewidget library" >&5
diff --git a/configure.in b/configure.in
index c76c528..430cdff 100644
--- a/configure.in
+++ b/configure.in
@@ -779,6 +779,7 @@ WX_ARG_FEATURE(textfile, [ --enable-textfile use wxTextFile class],
WX_ARG_FEATURE(timer, [ --enable-timer use wxTimer class], wxUSE_TIMER)
WX_ARG_FEATURE(variant, [ --enable-variant use wxVariant class], wxUSE_VARIANT)
WX_ARG_FEATURE(zipstream, [ --enable-zipstream use wxZip streams], wxUSE_ZIPSTREAM)
+WX_ARG_FEATURE(wayland, [ --enable-wayland allow using Wayland EGL backend], wxUSE_WAYLAND)
dnl URL-related classes
WX_ARG_FEATURE(url, [ --enable-url use wxURL class], wxUSE_URL)
@@ -3292,22 +3293,26 @@ libraries returned by 'pkg-config gtk+-2.0 --libs' or 'gtk-config
TOOLKIT=GTK
GUIDIST=GTK_DIST
- AC_CACHE_CHECK([for GDK Wayland backend], wx_cv_gdk_wayland, [
- save_CFLAGS=$CFLAGS
- CFLAGS="$CFLAGS $TOOLKIT_INCLUDE"
- AC_TRY_COMPILE([
- #include <gdk/gdk.h>
- ],
- [
- #ifndef GDK_WINDOWING_WAYLAND
- Not GDK Windowing Wayland
- #endif
- ],
- wx_cv_gdk_wayland=yes,
- wx_cv_gdk_wayland=no
- )
- CFLAGS=$save_CFLAGS
- ])
+ if test x"$wxUSE_WAYLAND" = xyes; then
+ AC_CACHE_CHECK([for GDK Wayland backend], wx_cv_gdk_wayland, [
+ save_CFLAGS=$CFLAGS
+ CFLAGS="$CFLAGS $TOOLKIT_INCLUDE"
+ AC_TRY_COMPILE([
+ #include <gdk/gdk.h>
+ ],
+ [
+ #ifndef GDK_WINDOWING_WAYLAND
+ Not GDK Windowing Wayland
+ #endif
+ ],
+ wx_cv_gdk_wayland=yes,
+ wx_cv_gdk_wayland=no
+ )
+ CFLAGS=$save_CFLAGS
+ ])
+ else
+ wx_cv_gdk_wayland=no
+ fi
dnl test for external libxpm if we're configured to use it
if test "$wxUSE_GPE" = "yes"; then
--
2.39.0

View File

@@ -0,0 +1,88 @@
https://bugs.gentoo.org/916884
https://github.com/wxWidgets/wxWidgets/pull/24197
From 891bfff867b7dc92ed6330ea46ee2dcfa5424ee0 Mon Sep 17 00:00:00 2001
From: Cliff Zhao <qzhao@suse.com>
Date: Thu, 4 Jan 2024 08:01:00 +0100
Subject: [PATCH] Fix testsuite failures on s390x
``/sys/power/state`` does not exist on s390x platforms and certain
types of containers, so check that the file exist before running the
test case.
Output from ``make check`` was:
./textfile/textfiletest.cpp:351
...............................................................................
./textfile/textfiletest.cpp:354: FAILED:
CHECK( f.Open("/sys/power/state") )
with expansion:
false
./textfile/textfiletest.cpp:355: FAILED:
REQUIRE( f.GetLineCount() == 1 )
with expansion:
0 == 1
---
tests/file/filetest.cpp | 2 ++
tests/filename/filenametest.cpp | 2 ++
tests/textfile/textfiletest.cpp | 2 ++
3 files changed, 6 insertions(+)
diff --git a/tests/file/filetest.cpp b/tests/file/filetest.cpp
index 8902eb4d6684..fc3c90569480 100644
--- a/tests/file/filetest.cpp
+++ b/tests/file/filetest.cpp
@@ -153,6 +153,7 @@ TEST_CASE("wxFile::Special", "[file][linux][special-file]")
CHECK( fileProc.ReadAll(&s) );
CHECK( !s.empty() );
+ if ( wxFile::Exists("/sys/power/state") ) {
// All files in /sys have the size of one kernel page, even if they don't
// have that much data in them.
const long pageSize = sysconf(_SC_PAGESIZE);
@@ -163,6 +164,7 @@ TEST_CASE("wxFile::Special", "[file][linux][special-file]")
CHECK( fileSys.ReadAll(&s) );
CHECK( !s.empty() );
CHECK( s.length() < pageSize );
+ }
}
#endif // __LINUX__
diff --git a/tests/filename/filenametest.cpp b/tests/filename/filenametest.cpp
index 84356b39f719..ce2ec2af2760 100644
--- a/tests/filename/filenametest.cpp
+++ b/tests/filename/filenametest.cpp
@@ -1040,9 +1040,11 @@ TEST_CASE("wxFileName::GetSizeSpecial", "[filename][linux][special-file]")
INFO( "size of /proc/kcore=" << size );
CHECK( size > 0 );
+ if ( wxFile::Exists("/sys/power/state") ) {
// All files in /sys are one page in size, irrespectively of the size of
// their actual contents.
CHECK( wxFileName::GetSize("/sys/power/state") == sysconf(_SC_PAGESIZE) );
+ }
}
#endif // __LINUX__
diff --git a/tests/textfile/textfiletest.cpp b/tests/textfile/textfiletest.cpp
index f744ffc3271b..73467be8f85f 100644
--- a/tests/textfile/textfiletest.cpp
+++ b/tests/textfile/textfiletest.cpp
@@ -348,6 +348,7 @@ TEST_CASE("wxTextFile::Special", "[textfile][linux][special-file]")
CHECK( f.GetLineCount() > 1 );
}
+ if ( wxFile::Exists("/sys/power/state") ) {
SECTION("/sys")
{
wxTextFile f;
@@ -356,6 +357,7 @@ TEST_CASE("wxTextFile::Special", "[textfile][linux][special-file]")
INFO( "/sys/power/state contains \"" << f[0] << "\"" );
CHECK( (f[0].find("mem") != wxString::npos || f[0].find("disk") != wxString::npos) );
}
+ }
}
#endif // __LINUX__

View File

@@ -0,0 +1,48 @@
From f092f50b794b487e552e930b11d165a736fc8edb Mon Sep 17 00:00:00 2001
From: Arsen Arsenović <arsen@gentoo.org>
Date: Sun, 2 Apr 2023 13:25:11 +0200
Subject: [PATCH] configure: Remove flag deduplication logic
Parsing compiler flags is a complex task that this function screws up.
Bug: https://bugs.gentoo.org/903668
---
configure | 5 ++---
configure.in | 5 ++---
2 files changed, 4 insertions(+), 6 deletions(-)
diff --git a/configure b/configure
index a476a3c..a9b815b 100755
--- a/configure
+++ b/configure
@@ -45550,9 +45550,8 @@ esac
dedup_flags()
{
- printf "%s " "$@" |
- awk 'BEGIN { RS=" "; ORS=" " }
- { if ($0=="-arch" || $0=="-framework" || !seen[$0]++) print }'
+ # Gentoo: Don't hack out flags, parsing them is complex.
+ printf '%s ' "$@"
}
WX_CPPFLAGS=`dedup_flags "$CPPFLAGS"`
diff --git a/configure.in b/configure.in
index a4c4178..9cf9c30 100644
--- a/configure.in
+++ b/configure.in
@@ -8570,9 +8570,8 @@ dnl flags which are explicitly allowed to occur multiple times, as all their
dnl occurrences must be preserved).
dedup_flags()
{
- printf "%s " "$@" |
- awk 'BEGIN { RS=" "; ORS=" " }
- { if ($0=="-arch" || $0=="-framework" || !seen[[$0]]++) print }'
+ # Gentoo: Don't hack out flags, parsing them is complex.
+ printf '%s ' "$@"
}
WX_CPPFLAGS=`dedup_flags "$CPPFLAGS"`
--
2.40.0

View File

@@ -0,0 +1,18 @@
--- wxWidgets-3.2.5/configure.orig 2024-07-20 05:18:49.509254253 +0000
+++ wxWidgets-3.2.5/configure 2024-07-20 05:20:47.575983942 +0000
@@ -45700,13 +45700,8 @@
dedup_flags()
{
- printf "%s " "$@" |
- awk 'BEGIN { RS=" "; ORS=" " }
- {
- if ($0=="") next
- if ($0=="-arch" || $0=="-framework") { x=$0; next }
- if (x!="") x=x " " $0; else x=$0; if (!seen[x]++) print x; x=""
- }'
+ # Gentoo: Don't hack out flags, parsing them is complex.
+ printf '%s ' "$@"
}
WX_CPPFLAGS=`dedup_flags "$CPPFLAGS"`

View File

@@ -0,0 +1,28 @@
diff --git a/configure b/configure
index 0f3c4c9..92c84f3 100755
--- a/configure
+++ b/configure
@@ -1368,6 +1368,7 @@ enable_dependency_tracking
enable_precomp_headers
with_cppunit_prefix
with_cppunit_exec_prefix
+enable_tests
'
ac_precious_vars='build_alias
host_alias
@@ -40955,8 +40956,13 @@ fi
fi
-
-
+# explicit override to enable or disable tests
+if test "${enable_tests+set}" = set; then
+ SUBDIRS="$SUBDIRS tests"
+fi
+if test "${disable_tests+set}" = set; then
+ SUBDIRS="${SUBDIRS% tests}"
+fi
for subdir in $SUBDIRS; do

View File

@@ -0,0 +1,39 @@
Description: Suppress error about mismatching C++ ABI version
In practice, the differences between recent ABI versions don't seem to be
incompatible since they apparently only affect obscure corner cases. So
suppress this error so we don't have to rebuild the entire wx world in one
go.
Author: Olly Betts <olly@survex.com>
Forwarded: no
Last-Update: 2017-07-26
From: https://salsa.debian.org/freewx-team/wx/blob/wx3.0-debian/debian/patches/warn-for-compiler-abi-mismatch.patch
--- a/src/common/appbase.cpp
+++ b/src/common/appbase.cpp
@@ -762,6 +762,26 @@
msg.Printf(wxT("Mismatch between the program and library build versions detected.\nThe library used %s,\nand %s used %s."),
lib.c_str(), progName.c_str(), prog.c_str());
+ int l_off = lib.Find("compiler with C++ ABI ");
+ int p_off = prog.Find("compiler with C++ ABI ");
+ if (l_off != wxNOT_FOUND && p_off != wxNOT_FOUND) {
+ int space;
+ space = lib.find(',', l_off + 22);
+ lib.erase(l_off, space - l_off);
+ space = prog.find(',', p_off + 22);
+ prog.erase(p_off, space - p_off);
+ if (lib == prog) {
+ // The only difference is the ABI version, which apparently only
+ // affect obscure cases. We used to warn here, so at least
+ // there was an indication of what's up if there is a problem
+ // due to ABI incompatibilities, but wxLogWarning() can result
+ // in a pop up dialog with some applications, which is just too
+ // intrusive, so just quietly ignore instead.
+ //wxLogWarning(msg.c_str());
+ return false;
+ }
+ }
+
wxLogFatalError(msg.c_str());
// normally wxLogFatalError doesn't return

View File

@@ -0,0 +1,264 @@
# Copyright 1999-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit multilib-minimal flag-o-matic toolchain-funcs
WXSUBVERSION="${PV}-gtk3" # 3.2.6-gtk3
WXVERSION="$(ver_cut 1-3)" # 3.2.6
# Make sure that this matches the number of components in ${PV}
WXRELEASE="$(ver_cut 1-2)-gtk3" # 3.2-gtk3
WXRELEASE_NODOT=${WXRELEASE//./} # 32-gtk3
DESCRIPTION="GTK version of wxWidgets, a cross-platform C++ GUI toolkit"
HOMEPAGE="https://wxwidgets.org/"
SRC_URI="
https://github.com/wxWidgets/wxWidgets/releases/download/v${PV}/wxWidgets-${PV}.tar.bz2
doc? ( https://github.com/wxWidgets/wxWidgets/releases/download/v${PV}/wxWidgets-${PV}-docs-html.tar.bz2 )"
S="${WORKDIR}/wxWidgets-${PV}"
LICENSE="wxWinLL-3 GPL-2 doc? ( wxWinFDL-3 )"
SLOT="${WXRELEASE}"
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86 ~amd64-linux ~x86-linux"
IUSE="+X curl doc debug keyring gstreamer libnotify +lzma opengl pch sdl +spell test tiff wayland webkit X"
REQUIRED_USE="test? ( tiff ) tiff? ( X ) spell? ( X ) keyring? ( X )"
RESTRICT="!test? ( test )"
RDEPEND="
>=app-eselect/eselect-wxwidgets-20131230
dev-libs/expat[${MULTILIB_USEDEP}]
dev-libs/libpcre2[pcre16,pcre32,unicode]
sdl? ( media-libs/libsdl2[${MULTILIB_USEDEP}] )
curl? ( net-misc/curl )
lzma? ( app-arch/xz-utils )
X? (
>=dev-libs/glib-2.22:2[${MULTILIB_USEDEP}]
media-libs/libjpeg-turbo:=[${MULTILIB_USEDEP}]
media-libs/libpng:0=[${MULTILIB_USEDEP}]
sys-libs/zlib[${MULTILIB_USEDEP}]
x11-libs/cairo[${MULTILIB_USEDEP}]
>=x11-libs/gtk+-3.24.41-r1:3[wayland?,X?,${MULTILIB_USEDEP}]
x11-libs/gdk-pixbuf:2[${MULTILIB_USEDEP}]
x11-libs/libSM[${MULTILIB_USEDEP}]
x11-libs/libX11[${MULTILIB_USEDEP}]
x11-libs/libXtst
x11-libs/libXxf86vm[${MULTILIB_USEDEP}]
media-libs/fontconfig
x11-libs/pango[${MULTILIB_USEDEP}]
keyring? ( app-crypt/libsecret )
gstreamer? (
media-libs/gstreamer:1.0[${MULTILIB_USEDEP}]
media-libs/gst-plugins-base:1.0[${MULTILIB_USEDEP}]
media-libs/gst-plugins-bad:1.0[${MULTILIB_USEDEP}]
)
libnotify? ( x11-libs/libnotify[${MULTILIB_USEDEP}] )
opengl? (
virtual/opengl[${MULTILIB_USEDEP}]
wayland? ( dev-libs/wayland )
)
spell? ( app-text/gspell:= )
tiff? ( media-libs/tiff:=[${MULTILIB_USEDEP}] )
webkit? ( net-libs/webkit-gtk:4.1= )
)"
DEPEND="${RDEPEND}
opengl? ( virtual/glu[${MULTILIB_USEDEP}] )
X? ( x11-base/xorg-proto )"
BDEPEND="
test? ( >=dev-util/cppunit-1.8.0 )
>=app-eselect/eselect-wxwidgets-20131230
virtual/pkgconfig"
# Note about the gst-plugin-base dep: The build system queries for it,
# but doesn't link it for some reason? Either way - probably best to
# depend on it anyway.
# Note about the wayland dep: Appears to be only required for the OpenGL
# canvas, and it seems impossible to disable the X dependency, unless
# I'm missing something. This is an automagic header dep, though.
PATCHES=(
"${FILESDIR}/${PN}-3.2.1-configure-tests.patch"
"${FILESDIR}/${PN}-3.2.1-wayland-control.patch"
"${FILESDIR}/${PN}-3.2.1-prefer-lib64-in-tests.patch"
"${FILESDIR}/${PN}-3.2.5-dont-break-flags.patch"
)
src_prepare() {
default
# find . -iname Makefile.in -not -path ./samples'/*' \
# | xargs grep -l WX_RELEASE
local versioned_makefiles=(
./tests/benchmarks/Makefile.in
./tests/Makefile.in
./utils/emulator/src/Makefile.in
./utils/execmon/Makefile.in
./utils/wxrc/Makefile.in
./utils/helpview/src/Makefile.in
./utils/hhp2cached/Makefile.in
./utils/screenshotgen/src/Makefile.in
./utils/ifacecheck/src/Makefile.in
./Makefile.in
./demos/life/Makefile.in
./demos/bombs/Makefile.in
./demos/fractal/Makefile.in
./demos/forty/Makefile.in
./demos/poem/Makefile.in
)
# Versionating
sed -i \
-e "s:\(WX_RELEASE = \).*:\1${WXRELEASE}:"\
-e "s:\(WX_RELEASE_NODOT = \).*:\1${WXRELEASE_NODOT}:"\
-e "s:\(WX_VERSION = \).*:\1${WXVERSION}:"\
-e "s:aclocal):aclocal/wxwin${WXRELEASE_NODOT}.m4):" \
"${versioned_makefiles[@]}" || die
sed -i \
-e "s:\(WX_VERSION=\).*:\1${WXVERSION}:" \
-e "s:\(WX_RELEASE=\).*:\1${WXRELEASE}:" \
-e "s:\(WX_SUBVERSION=\).*:\1${WXSUBVERSION}:" \
-e '/WX_VERSION_TAG=/ s:${WX_RELEASE}:3.0:' \
configure || die
}
multilib_src_configure() {
# defang automagic dependencies, bug #927952
use wayland || append-cflags -DGENTOO_GTK_HIDE_WAYLAND
use X || append-cflags -DGENTOO_GTK_HIDE_X11
# bug #952961
tc-is-lto && filter-flags -fno-semantic-interposition
# Workaround for bug #915154
append-ldflags $(test-flags-CCLD -Wl,--undefined-version)
# X independent options
local myeconfargs=(
--with-zlib=sys
--with-expat=sys
--enable-compat30
--enable-xrc
$(use_with sdl)
$(use_with lzma liblzma)
# Currently defaults to curl, could change. Watch the VDB!
$(use_enable curl webrequest)
# PCHes are unstable and are disabled in-tree where possible
# See bug #504204
# Commits 8c4774042b7fdfb08e525d8af4b7912f26a2fdce, fb809aeadee57ffa24591e60cfb41aecd4823090
$(use_enable pch precomp-headers)
# Don't hard-code libdir's prefix for wx-config
--libdir='${prefix}'/$(get_libdir)
# Try to escape https://bugs.gentoo.org/955902
--disable-symver
)
# By default, we now build with the GLX GLCanvas because some software like
# PrusaSlicer does not yet support EGL:
#
# https://github.com/prusa3d/PrusaSlicer/issues/9774 .
#
# A solution for this is being developed upstream:
#
# https://github.com/wxWidgets/wxWidgets/issues/22325 .
#
# Any software that needs to use OpenGL under Wayland can be patched like
# this to run under xwayland:
#
# https://github.com/visualboyadvance-m/visualboyadvance-m/commit/aca206a721265366728222d025fec30ee500de82 .
#
# Check that the macro wxUSE_GLCANVAS_EGL is set to 1.
#
myeconfargs+=( "--disable-glcanvasegl" )
# debug in >=2.9
# there is no longer separate debug libraries (gtk2ud)
# wxDEBUG_LEVEL=1 is the default and we will leave it enabled
# wxDEBUG_LEVEL=2 enables assertions that have expensive runtime costs.
# apps can disable these features by building w/ -NDEBUG or wxDEBUG_LEVEL_0.
# http://docs.wxwidgets.org/3.0/overview_debugging.html
# https://groups.google.com/group/wx-dev/browse_thread/thread/c3c7e78d63d7777f/05dee25410052d9c
use debug && myeconfargs+=( --enable-debug=max )
# wxGTK options
# --enable-graphics_ctx - needed for webkit, editra
# --without-gnomevfs - bug #203389
use X && myeconfargs+=(
--enable-graphics_ctx
--with-gtkprint
--enable-gui
--with-gtk=3
--with-libpng=sys
--with-libjpeg=sys
# Choosing to enable this unconditionally seems fair, pcre2 is
# almost certain to be installed.
--with-regex=sys
--without-gnomevfs
$(use_enable gstreamer mediactrl)
$(multilib_native_use_enable webkit webview)
$(use_with libnotify)
$(use_with opengl)
$(use_with tiff libtiff sys)
$(use_enable keyring secretstore)
$(use_enable spell spellcheck)
$(use_enable test tests)
$(use_enable wayland)
)
# wxBase options
! use X && myeconfargs+=( --disable-gui )
# wxWidgets installs a configuration file with a reference to EGREP.
# Autoconf discovers these programs via full paths, which is
# unnecessary and fails if a build happened on a merged-usr system
# but is being used on a split-usr system. Bug #927920.
export ac_cv_path_SED="sed"
export ac_cv_path_EGREP="grep -E"
export ac_cv_path_EGREP_TRADITIONAL="grep -E"
export ac_cv_path_FGREP="grep -F"
export ac_cv_path_GREP="grep"
export ac_cv_path_lt_DD="dd"
ECONF_SOURCE="${S}" econf "${myeconfargs[@]}"
}
multilib_src_test() {
emake -C tests
(cd tests && ./test '~[.]~[net]') || die
}
multilib_src_install_all() {
cd docs || die
dodoc changes.txt readme.txt
newdoc base/readme.txt base_readme.txt
newdoc gtk/readme.txt gtk_readme.txt
use doc && HTML_DOCS=( "${WORKDIR}"/wxWidgets-${PV}-docs-html/. )
einstalldocs
# Unversioned links
rm "${ED}"/usr/bin/wx-config || die
rm "${ED}"/usr/bin/wxrc || die
# version bakefile presets
pushd "${ED}"/usr/share/bakefile/presets >/dev/null || die
local f
for f in wx*; do
mv "${f}" "${f/wx/wx32gtk3}" || die
done
popd >/dev/null || die
}
pkg_postinst() {
has_version -b app-eselect/eselect-wxwidgets \
&& eselect wxwidgets update
}
pkg_postrm() {
has_version -b app-eselect/eselect-wxwidgets \
&& eselect wxwidgets update
}