Compare commits

...
Sign in to create a new pull request.

70 commits

Author SHA1 Message Date
Fedora Release Engineering
78316db09c Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild 2025-07-24 19:21:40 +00:00
Python Maint
889eb7ca04 Rebuilt for Python 3.14 2025-06-17 21:09:14 +02:00
Miro Hrončok
a86814f950 Fix build with GCC 15
- Fixes: rhzb#2340716
2025-04-28 15:13:15 +02:00
Fedora Release Engineering
62babe4fd6 Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild 2025-01-17 10:37:06 +00:00
Fedora Release Engineering
bc6028b7f6 Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild 2024-07-18 13:20:39 +00:00
Python Maint
53b1cd79b5 Rebuilt for Python 3.13 2024-06-08 10:28:42 +02:00
Fedora Release Engineering
37869ab82e Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild 2024-01-25 01:33:23 +00:00
Fedora Release Engineering
d50038b8fb Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild 2024-01-21 03:35:55 +00:00
Miro Hrončok
41718c61b2 Update to 5.3.0 2023-12-05 15:40:18 +01:00
Miro Hrončok
e4a514a7eb Update the License tag to SPDX 2023-12-05 15:39:23 +01:00
Miro Hrončok
2a8e1af0f7 Remove old cruft 2023-12-05 15:38:56 +01:00
Miro Hrončok
15cc7fc8bd Convert to %autorelease and %autochangelog
[skip changelog]
2023-12-05 15:37:10 +01:00
Fedora Release Engineering
89f65a45be Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2023-07-20 10:19:24 +00:00
Python Maint
474c580ee1 Rebuilt for Python 3.12 2023-06-15 16:25:07 +02:00
Tom Callaway
cb5a355f7e update to 5.2.2 2023-03-09 09:49:47 -05:00
Fedora Release Engineering
a0dc5571c4 Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2023-01-19 15:50:28 +00:00
Miro Hrončok
f2dc678cae BR setuptools on Python 3.12+ 2022-10-18 12:25:45 +02:00
Fedora Release Engineering
80dd256d14 Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2022-07-21 17:19:03 +00:00
Miro Hrončok
41fc3892cb https://fedoraproject.org/wiki/Changes/EncourageI686LeafRemoval 2022-07-18 14:44:44 +02:00
Python Maint
02c9848fde Rebuilt for Python 3.11 2022-06-17 13:13:09 +02:00
Tomáš Hrnčiar
5b4abb1317 Fix build failure with cmake 3.23+ 2022-04-11 09:15:06 +02:00
Gabriel Féron
5c4c9783f2 Update to 4.13.1 2022-02-03 12:59:46 +01:00
Gabriel Féron
04890e5d35 Update to 4.13.0 2022-02-03 12:59:29 +01:00
Fedora Release Engineering
13def313ed - Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2022-01-20 15:46:02 +00:00
Gabriel Féron
1a7e8863a4 Update to 4.12.1 2021-12-13 09:51:43 +01:00
Adrian Reber
c7ec5f5125
Rebuilt for protobuf 3.19.0 2021-11-06 10:24:42 +01:00
Adrian Reber
058de97213
Added forgotten protobuf build fix patch 2021-10-25 10:05:27 +02:00
Adrian Reber
856110586f
Rebuilt for protobuf 3.18.1 2021-10-25 09:41:35 +02:00
Gabriel Féron
be87862687 Update to 4.11.0 2021-09-15 23:55:39 +02:00
Gabriel Féron
1e925633b6 Update to 4.10.0 2021-08-16 12:18:22 +02:00
Fedora Release Engineering
39489e3431 - Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2021-07-22 10:57:47 +00:00
Gabriel Féron
42e486e7c2 Update to 4.9.1 2021-06-10 15:42:44 +02:00
Python Maint
68d508e65a Rebuilt for Python 3.10 2021-06-04 20:08:53 +02:00
Gabriel Féron
fb24da97b0 Update to 4.9.0 2021-05-10 10:35:51 +02:00
Jonathan Wakely
072c9be08f Rebuilt for removed libstdc++ symbol (#1937698) 2021-03-30 19:37:00 +01:00
Fedora Release Engineering
2da0fe20c0 - Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2021-01-26 16:39:50 +00:00
Adrian Reber
5e8ea90ef3
Rebuilt for protobuf 3.14 2021-01-13 09:45:39 +01:00
Jan Pazdziora
6f275ccfc1 Update to 4.8.0 2020-12-22 23:31:00 +01:00
Adrian Reber
5566a1ce56
Rebuilt for protobuf 3.13 2020-09-23 17:15:57 +02:00
Miro Hrončok
c524b715dc Update to 4.7.1 2020-09-03 18:31:08 +02:00
Gabriel Féron
72d3611869 Update to 4.7.0
Signed-off-by: Gabriel Féron <feron.gabriel@gmail.com>
2020-08-31 20:56:18 +02:00
Fedora Release Engineering
034534cefb - Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2020-07-28 04:14:48 +00:00
Miro Hrončok
0b08ba97df https://fedoraproject.org/wiki/Changes/CMake_to_do_out-of-source_builds 2020-07-26 15:08:37 +02:00
Adrian Reber
f46cf977a9
Rebuilt for protobuf 3.12 2020-06-20 18:49:44 +02:00
Miro Hrončok
548bf91502 Rebuilt for Python 3.9 2020-05-26 02:50:07 +02:00
Gabriel
74796e741b Update to 4.6.1 2020-05-05 18:47:32 +02:00
Gabriel
2a456ef8c4 Update to 4.6.0 2020-04-21 23:56:46 +02:00
Fedora Release Engineering
48a8f2e017 - Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2020-01-29 08:35:22 +00:00
Orion Poplawski
509aeab54c Rebuild for protobuf 3.11 2019-12-18 20:32:25 -07:00
Gabriel Féron
1ffe11be4b Update to 4.4.0 2019-12-10 14:04:10 +01:00
Miro Hrončok
a43df8c92f Make the dependency of python3-arcus on libarcus strict
Fixes https://bugzilla.redhat.com/show_bug.cgi?id=1767762
2019-11-01 17:32:37 +01:00
Rex Dieter
921f0316aa use python3-pyqt5-sip (#1748527#c12) 2019-09-16 10:59:34 -05:00
Miro Hrončok
254e7d15ab Rebuilt for Python 3.8 2019-08-19 10:17:30 +02:00
Fedora Release Engineering
dd426706e0 - Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2019-07-25 12:48:24 +00:00
Miro Hrončok
b431a907a3 Fix the License tag of the devel subpackage 2019-07-09 20:42:24 +02:00
Gabriel Féron
d9f7d6d08a Update to 4.1.0
Co-Authored-By: Miro Hrončok <miro@hroncok.cz>
2019-06-27 14:47:04 +02:00
Gabriel Féron
804dc0f310 Update to 4.0.0
Signed-off-by: Gabriel Féron <feron.gabriel@gmail.com>
2019-04-19 14:22:00 +02:00
Fedora Release Engineering
820fd6f59a - Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2019-02-01 06:41:32 +00:00
Gabriel Feron
d9ac655b80 Update to 3.6.0
Signed-off-by: Gabriel Feron <feron.gabriel@gmail.com>
2019-01-29 18:15:53 +01:00
Igor Gnatenko
1ada66d6e4
Rebuild for protobuf 3.6
Signed-off-by: Igor Gnatenko <ignatenkobrain@fedoraproject.org>
2018-11-21 17:16:17 +01:00
Miro Hrončok
937e1636b6 Use PyQt5.sip (#1601917) 2018-11-12 10:56:48 +01:00
Miro Hrončok
ef2514a5db Update to 3.5.1 (#1644323) 2018-11-12 10:27:01 +01:00
Rex Dieter
1e4533995f patch1 introduced additional dependency 2018-08-28 16:24:17 -05:00
Rex Dieter
389686ab44 use more robust upstreamable sip_flags.patch (#1601917) 2018-08-28 14:04:58 -05:00
Miro Hrončok
27a956a4f1 Update to 3.4.1 (#1599716) 2018-08-28 16:02:44 +02:00
Rex Dieter
f7aa86f856 Use PyQt5.sip (#1601917) 2018-08-23 16:51:06 +02:00
Fedora Release Engineering
dafec0599f - Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2018-07-13 07:49:23 +00:00
Miro Hrončok
c8f01159bc Remove ldconfig scriptlets 2018-06-29 12:24:41 +02:00
Miro Hrončok
e56e01d21f Rebuilt for Python 3.7 2018-06-19 10:45:51 +02:00
Miro Hrončok
a600a68cc6 Update to 3.3.0 (#1571482) 2018-05-02 14:27:27 +02:00
15 changed files with 932 additions and 73 deletions

11
.gitignore vendored
View file

@ -1,8 +1,3 @@
/libarcus-2.4.0.tar.gz
/libarcus-2.5.0.tar.gz
/libarcus-2.6.0.tar.gz
/libarcus-2.6.1.tar.gz
/libarcus-2.7.0.tar.gz
/libarcus-3.0.3.tar.gz
/libarcus-3.1.0.tar.gz
/libarcus-3.2.1.tar.gz
/libarcus-*.tar.gz
/pyArcus-5.2.2.tar.gz
/pyArcus-5.3.0.tar.gz

View file

@ -0,0 +1,13 @@
diff --git a/src/Socket_p.h b/src/Socket_p.h
index 9c3c084..9ccabda 100644
--- a/src/Socket_p.h
+++ b/src/Socket_p.h
@@ -548,7 +548,7 @@ namespace Arcus
google::protobuf::io::ArrayInputStream array(wire_message->data, wire_message->size);
google::protobuf::io::CodedInputStream stream(&array);
- stream.SetTotalBytesLimit(message_size_maximum, message_size_warning);
+ stream.SetTotalBytesLimit(message_size_maximum);
if(!message->ParseFromCodedStream(&stream))
{
error(ErrorCode::ParseFailedError, "Failed to parse message:" + std::string(wire_message->data));

114
160.patch Normal file
View file

@ -0,0 +1,114 @@
From 4826f0d567a6dc373ee8d378f2e40977d94f586b Mon Sep 17 00:00:00 2001
From: Gregor Riepl <onitake@gmail.com>
Date: Thu, 20 Feb 2025 20:27:10 +0100
Subject: [PATCH] Add cstdint includes where needed
---
include/Arcus/MessageTypeStore.h | 1 +
include/Arcus/Types.h | 1 +
src/MessageTypeStore.cpp | 1 +
src/PlatformSocket.cpp | 2 ++
src/PlatformSocket_p.h | 1 +
src/Socket_p.h | 1 +
src/WireMessage_p.h | 2 ++
test_package/src/test.cpp | 1 +
8 files changed, 10 insertions(+)
diff --git a/include/Arcus/MessageTypeStore.h b/include/Arcus/MessageTypeStore.h
index 6cc7b5ee..416c6686 100644
--- a/include/Arcus/MessageTypeStore.h
+++ b/include/Arcus/MessageTypeStore.h
@@ -5,6 +5,7 @@
#define ARCUS_MESSAGE_TYPE_STORE_H
#include <memory>
+#include <cstdint>
#include "Arcus/Types.h"
diff --git a/include/Arcus/Types.h b/include/Arcus/Types.h
index 9fdcc60a..58103de6 100644
--- a/include/Arcus/Types.h
+++ b/include/Arcus/Types.h
@@ -6,6 +6,7 @@
#include <memory>
#include <string>
+#include <cstdint>
namespace google
{
diff --git a/src/MessageTypeStore.cpp b/src/MessageTypeStore.cpp
index 44c94ec7..5db03cdd 100644
--- a/src/MessageTypeStore.cpp
+++ b/src/MessageTypeStore.cpp
@@ -6,6 +6,7 @@
#include <iostream>
#include <sstream>
#include <unordered_map>
+#include <cstdint>
#include <google/protobuf/compiler/importer.h>
#include <google/protobuf/dynamic_message.h>
diff --git a/src/PlatformSocket.cpp b/src/PlatformSocket.cpp
index ab113e32..90c590da 100644
--- a/src/PlatformSocket.cpp
+++ b/src/PlatformSocket.cpp
@@ -1,6 +1,8 @@
// Copyright (c) 2022 Ultimaker B.V.
// libArcus is released under the terms of the LGPLv3 or higher.
+#include <cstdint>
+
#include "PlatformSocket_p.h"
#ifdef _WIN32
diff --git a/src/PlatformSocket_p.h b/src/PlatformSocket_p.h
index b1e9aa59..3f7e4249 100644
--- a/src/PlatformSocket_p.h
+++ b/src/PlatformSocket_p.h
@@ -6,6 +6,7 @@
#include <memory>
#include <string>
+#include <cstdint>
namespace Arcus
{
diff --git a/src/Socket_p.h b/src/Socket_p.h
index 33f5873f..7711389c 100644
--- a/src/Socket_p.h
+++ b/src/Socket_p.h
@@ -12,6 +12,7 @@
#include <string>
#include <thread>
#include <unordered_map>
+#include <cstdint>
#ifdef _WIN32
#include <winsock2.h>
diff --git a/src/WireMessage_p.h b/src/WireMessage_p.h
index 07f8dd13..757aa32e 100644
--- a/src/WireMessage_p.h
+++ b/src/WireMessage_p.h
@@ -4,6 +4,8 @@
#ifndef ARCUS_WIRE_MESSAGE_P_H
#define ARCUS_WIRE_MESSAGE_P_H
+#include <cstdint>
+
#include "Arcus/Types.h"
namespace Arcus
diff --git a/test_package/src/test.cpp b/test_package/src/test.cpp
index 52ca8438..09f13a59 100644
--- a/test_package/src/test.cpp
+++ b/test_package/src/test.cpp
@@ -4,6 +4,7 @@
#include <chrono>
#include <iostream>
#include <thread>
+#include <cstdint>
#include "test.h"

10
ArcusConfig.cmake.in Normal file
View file

@ -0,0 +1,10 @@
@PACKAGE_INIT@
# We want to have access to protobuf_generate_cpp and other FindProtobuf features.
# However, if ProtobufConfig is used instead, there is a CMake option that controls
# this, which defaults to OFF. We need to force this option to ON instead.
set(protobuf_MODULE_COMPATIBLE ON CACHE "" INTERNAL FORCE)
find_package(Protobuf 3.0.0 REQUIRED)
get_filename_component(SELF_DIR "${CMAKE_CURRENT_LIST_FILE}" PATH)
include(${SELF_DIR}/Arcus-targets.cmake)

163
CMakeLists.txt Normal file
View file

@ -0,0 +1,163 @@
project(arcus)
cmake_minimum_required(VERSION 3.8)
include(GNUInstallDirs)
include(CMakePackageConfigHelpers)
include(GenerateExportHeader)
option(BUILD_PYTHON "Build " ON)
option(BUILD_EXAMPLES "Build the example programs" ON)
option(BUILD_STATIC "Build as a static library" OFF)
if(WIN32)
option(MSVC_STATIC_RUNTIME "Link the MSVC runtime statically" OFF)
endif()
# We want to have access to protobuf_generate_cpp and other FindProtobuf features.
# However, if ProtobufConfig is used instead, there is a CMake option that controls
# this, which defaults to OFF. We need to force this option to ON instead.
set(protobuf_MODULE_COMPATIBLE ON CACHE INTERNAL "" FORCE)
find_package(Protobuf 3.0.0 REQUIRED)
set(CMAKE_POSITION_INDEPENDENT_CODE ON) #Required if a patch to libArcus needs to be made via templates.
if(BUILD_PYTHON)
list(APPEND CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake)
# FIXME: Remove the code for CMake <3.12 once we have switched over completely.
# FindPython3 is a new module since CMake 3.12. It deprecates FindPythonInterp and FindPythonLibs.
if(${CMAKE_VERSION} VERSION_LESS 3.12)
# FIXME: Use FindPython3 to find Python, new in CMake 3.12.
# However currently on our CI server it finds the wrong Python version and then doesn't find the headers.
find_package(PythonInterp 3.4 REQUIRED)
find_package(PythonLibs 3.4 REQUIRED)
else()
# Use FindPython3 for CMake >=3.12
find_package(Python3 3.4 REQUIRED COMPONENTS Interpreter Development)
endif()
find_package(SIP REQUIRED)
if(NOT DEFINED LIB_SUFFIX)
set(LIB_SUFFIX "")
endif()
include_directories(python/ include/pyArcus/ src/ ${SIP_INCLUDE_DIRS} ${Python3_INCLUDE_DIRS})
endif()
set(CMAKE_CXX_STANDARD 17)
if(APPLE AND CMAKE_CXX_COMPILER_ID MATCHES "Clang")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -stdlib=libc++")
endif()
set(arcus_SRCS
src/Socket.cpp
src/SocketListener.cpp
src/MessageTypeStore.cpp
src/PlatformSocket.cpp
src/Error.cpp
)
set(arcus_HDRS
include/Arcus/Socket.h
include/Arcus/SocketListener.h
include/Arcus/Types.h
include/Arcus/MessageTypeStore.h
include/Arcus/Error.h
${CMAKE_CURRENT_BINARY_DIR}/src/ArcusExport.h
)
set(ARCUS_VERSION 1.1.0)
set(ARCUS_SOVERSION 3)
set(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_FULL_LIBDIR}")
if(BUILD_STATIC)
add_library(Arcus STATIC ${arcus_SRCS})
if(NOT WIN32 OR CMAKE_COMPILER_IS_GNUCXX)
target_link_libraries(Arcus PRIVATE pthread)
set_target_properties(Arcus PROPERTIES COMPILE_FLAGS -fPIC)
endif()
else()
add_library(Arcus SHARED ${arcus_SRCS})
endif()
if(MSVC_STATIC_RUNTIME)
foreach(flag_var
CMAKE_CXX_FLAGS CMAKE_CXX_FLAGS_DEBUG CMAKE_CXX_FLAGS_RELEASE
CMAKE_CXX_FLAGS_MINSIZEREL CMAKE_CXX_FLAGS_RELWITHDEBINFO)
if(${flag_var} MATCHES "/MD")
string(REGEX REPLACE "/MD" "/MT" ${flag_var} "${${flag_var}}")
endif(${flag_var} MATCHES "/MD")
endforeach(flag_var)
endif()
if(BUILD_PYTHON)
set(SIP_EXTRA_FILES_DEPEND python/SocketListener.sip python/Types.sip python/PythonMessage.sip python/Error.sip)
set(SIP_EXTRA_SOURCE_FILES python/PythonMessage.cpp)
set(SIP_EXTRA_OPTIONS -g -n PyQt5.sip) # -g means always release the GIL before calling C++ methods. -n PyQt5.sip is required to not get the PyCapsule error
add_sip_python_module(pyArcus python/pyArcus.sip Arcus)
endif()
target_include_directories(Arcus PUBLIC
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/src>
$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>
${PROTOBUF_INCLUDE_DIR}
)
target_link_libraries(Arcus PUBLIC ${PROTOBUF_LIBRARIES})
if(WIN32)
add_definitions(-D_WIN32_WINNT=0x0600) # Declare we require Vista or higher, this allows us to use IPv6 functions.
target_link_libraries(Arcus PUBLIC Ws2_32)
endif()
if(${CMAKE_BUILD_TYPE})
if(${CMAKE_BUILD_TYPE} STREQUAL "Debug" OR ${CMAKE_BUILD_TYPE} STREQUAL "RelWithDebInfo")
add_definitions(-DARCUS_DEBUG)
endif()
endif()
set_target_properties(Arcus PROPERTIES
FRAMEWORK FALSE
VERSION ${ARCUS_VERSION}
SOVERSION ${ARCUS_SOVERSION}
PUBLIC_HEADER "${arcus_HDRS}"
DEFINE_SYMBOL MAKE_ARCUS_LIB
CXX_VISIBILITY_PRESET hidden
VISIBILITY_INLINES_HIDDEN 1
)
generate_export_header(Arcus
EXPORT_FILE_NAME src/ArcusExport.h
)
# This is required when building out-of-tree.
# The compiler won't find the generated header otherwise.
include_directories(${CMAKE_BINARY_DIR}/src include/)
if(BUILD_EXAMPLES)
add_subdirectory(examples)
endif()
install(TARGETS Arcus
EXPORT Arcus-targets
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/Arcus
)
install(EXPORT Arcus-targets
DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/Arcus
)
configure_package_config_file(ArcusConfig.cmake.in ${CMAKE_BINARY_DIR}/ArcusConfig.cmake INSTALL_DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/Arcus)
write_basic_package_version_file(${CMAKE_BINARY_DIR}/ArcusConfigVersion.cmake VERSION ${ARCUS_VERSION} COMPATIBILITY SameMajorVersion)
install(FILES
${CMAKE_BINARY_DIR}/ArcusConfig.cmake
${CMAKE_BINARY_DIR}/ArcusConfigVersion.cmake
DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/Arcus
)
include(CPackConfig.cmake)

22
COPYING-CMAKE-SCRIPTS Normal file
View file

@ -0,0 +1,22 @@
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
1. Redistributions of source code must retain the copyright
notice, this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
3. The name of the author may not be used to endorse or promote products
derived from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

24
CPackConfig.cmake Normal file
View file

@ -0,0 +1,24 @@
set(CPACK_PACKAGE_VENDOR "Ultimaker")
set(CPACK_PACKAGE_CONTACT "Ruben Dulek <r.dulek@ultimaker.com>")
set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "libArcus Communication library")
if(NOT DEFINED CPACK_PACKAGE_VERSION)
set(CPACK_PACKAGE_VERSION "15.05.91")
endif()
set(CPACK_GENERATOR "DEB")
if(NOT DEFINED CPACK_DEBIAN_PACKAGE_ARCHITECTURE)
execute_process(COMMAND dpkg --print-architecture OUTPUT_VARIABLE CPACK_DEBIAN_PACKAGE_ARCHITECTURE OUTPUT_STRIP_TRAILING_WHITESPACE)
endif()
set(CPACK_PACKAGE_FILE_NAME "${CMAKE_PROJECT_NAME}-${CPACK_PACKAGE_VERSION}_${CPACK_DEBIAN_PACKAGE_ARCHITECTURE}")
set(DEB_DEPENDS
"python3 (>= 3.4.0)"
"libgcc1 (>= 4.9.0)"
"libstdc++6 (>= 4.9.0)"
"libc6 (>= 2.19)"
"zlib1g (>= 1.2.0)"
"protobuf (>= 3.0.0)"
)
string(REPLACE ";" ", " DEB_DEPENDS "${DEB_DEPENDS}")
set(CPACK_DEBIAN_PACKAGE_DEPENDS ${DEB_DEPENDS})
include(CPack)

92
FindSIP.cmake Normal file
View file

@ -0,0 +1,92 @@
# Find SIP
# ~~~~~~~~
#
# SIP website: http://www.riverbankcomputing.co.uk/sip/index.php
#
# Find the installed version of SIP. FindSIP should be called after Python
# has been found.
#
# This file defines the following variables:
#
# SIP_VERSION - SIP version.
#
# SIP_EXECUTABLE - Path to the SIP executable.
#
# SIP_INCLUDE_DIRS - The SIP include directories.
#
# Copyright (c) 2007, Simon Edwards <simon@simonzone.com>
# Redistribution and use is allowed according to the terms of the BSD license.
# For details see the accompanying COPYING-CMAKE-SCRIPTS file.
if(APPLE)
# Workaround for broken FindPythonLibs. It will always find Python 2.7 libs on OSX
set(CMAKE_FIND_FRAMEWORK LAST)
endif()
# FIXME: Use FindPython3 to find Python, new in CMake 3.12.
# However currently on our CI server it finds the wrong Python version and then doesn't find the headers.
find_package(PythonInterp 3.5 REQUIRED)
find_package(PythonLibs 3.5 REQUIRED)
# Define variables that are available in FindPython3, so there's no need to branch off in the later part.
set(Python3_EXECUTABLE ${PYTHON_EXECUTABLE})
set(Python3_INCLUDE_DIRS ${PYTHON_INCLUDE_DIRS})
set(Python3_LIBRARIES ${PYTHON_LIBRARIES})
set(Python3_VERSION_MINOR "${PYTHON_VERSION_MINOR}")
execute_process(
COMMAND ${Python3_EXECUTABLE} -c
"import distutils.sysconfig; print(distutils.sysconfig.get_python_lib(plat_specific=False,standard_lib=False))"
RESULT_VARIABLE _process_status
OUTPUT_VARIABLE _process_output
OUTPUT_STRIP_TRAILING_WHITESPACE
)
if(${_process_status} EQUAL 0)
string(STRIP ${_process_output} Python3_SITELIB)
else()
message(FATAL_ERROR "Failed to get Python3_SITELIB. Error: ${_process_output}")
endif()
execute_process(
COMMAND ${Python3_EXECUTABLE} -c
"import distutils.sysconfig; print(distutils.sysconfig.get_python_lib(plat_specific=True,standard_lib=False))"
RESULT_VARIABLE _process_status
OUTPUT_VARIABLE _process_output
OUTPUT_STRIP_TRAILING_WHITESPACE
)
if(${_process_status} EQUAL 0)
string(STRIP ${_process_output} Python3_SITEARCH)
else()
message(FATAL_ERROR "Failed to get Python3_SITEARCH. Error: ${_process_output}")
endif()
get_filename_component(_python_binary_path ${Python3_EXECUTABLE} DIRECTORY)
find_program(SIP_EXECUTABLE sip
HINTS ${CMAKE_PREFIX_PATH}/bin ${CMAKE_INSTALL_PATH}/bin ${_python_binary_path} ${Python3_SITELIB}/PyQt5
)
find_path(SIP_INCLUDE_DIRS sip.h
HINTS ${CMAKE_PREFIX_PATH}/include ${CMAKE_INSTALL_PATH}/include ${Python3_INCLUDE_DIRS} ${Python3_SITELIB}/PyQt5
)
execute_process(
COMMAND ${Python3_EXECUTABLE} -c "import sip; print(sip.SIP_VERSION_STR)"
RESULT_VARIABLE _process_status
OUTPUT_VARIABLE _process_output
OUTPUT_STRIP_TRAILING_WHITESPACE
)
if(${_process_status} EQUAL 0)
string(STRIP ${_process_output} SIP_VERSION)
endif()
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(SIP REQUIRED_VARS SIP_EXECUTABLE SIP_INCLUDE_DIRS VERSION_VAR SIP_VERSION)
if(SIP_FOUND)
include(${CMAKE_CURRENT_LIST_DIR}/SIPMacros.cmake)
endif()
mark_as_advanced(SIP_EXECUTABLE SIP_INCLUDE_DIRS SIP_VERSION)

128
SIPMacros.cmake Normal file
View file

@ -0,0 +1,128 @@
# Macros for SIP
# ~~~~~~~~~~~~~~
# Copyright (c) 2007, Simon Edwards <simon@simonzone.com>
# Redistribution and use is allowed according to the terms of the BSD license.
# For details see the accompanying COPYING-CMAKE-SCRIPTS file.
#
# SIP website: http://www.riverbankcomputing.co.uk/sip/index.php
#
# This file defines the following macros:
#
# ADD_SIP_PYTHON_MODULE (MODULE_NAME MODULE_SIP [library1, libaray2, ...])
# Specifies a SIP file to be built into a Python module and installed.
# MODULE_NAME is the name of Python module including any path name. (e.g.
# os.sys, Foo.bar etc). MODULE_SIP the path and filename of the .sip file
# to process and compile. libraryN are libraries that the Python module,
# which is typically a shared library, should be linked to. The built
# module will also be install into Python's site-packages directory.
#
# The behaviour of the ADD_SIP_PYTHON_MODULE macro can be controlled by a
# number of variables:
#
# SIP_INCLUDE_DIRS - List of directories which SIP will scan through when looking
# for included .sip files. (Corresponds to the -I option for SIP.)
#
# SIP_TAGS - List of tags to define when running SIP. (Corresponds to the -t
# option for SIP.)
#
# SIP_CONCAT_PARTS - An integer which defines the number of parts the C++ code
# of each module should be split into. Defaults to 8. (Corresponds to the
# -j option for SIP.)
#
# SIP_DISABLE_FEATURES - List of feature names which should be disabled
# running SIP. (Corresponds to the -x option for SIP.)
#
# SIP_EXTRA_OPTIONS - Extra command line options which should be passed on to
# SIP.
SET(SIP_INCLUDE_DIRS)
SET(SIP_TAGS)
SET(SIP_CONCAT_PARTS 8)
SET(SIP_DISABLE_FEATURES)
SET(SIP_EXTRA_OPTIONS)
MACRO(ADD_SIP_PYTHON_MODULE MODULE_NAME MODULE_SIP)
SET(EXTRA_LINK_LIBRARIES ${ARGN})
STRING(REPLACE "." "/" _x ${MODULE_NAME})
GET_FILENAME_COMPONENT(_parent_module_path ${_x} PATH)
GET_FILENAME_COMPONENT(_child_module_name ${_x} NAME)
GET_FILENAME_COMPONENT(_module_path ${MODULE_SIP} PATH)
GET_FILENAME_COMPONENT(_abs_module_sip ${MODULE_SIP} ABSOLUTE)
# We give this target a long logical target name.
# (This is to avoid having the library name clash with any already
# install library names. If that happens then cmake dependency
# tracking get confused.)
STRING(REPLACE "." "_" _logical_name ${MODULE_NAME})
SET(_logical_name "python_module_${_logical_name}")
FILE(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/${_module_path}) # Output goes in this dir.
SET(_sip_includes)
FOREACH (_inc ${SIP_INCLUDES})
GET_FILENAME_COMPONENT(_abs_inc ${_inc} ABSOLUTE)
LIST(APPEND _sip_includes -I ${_abs_inc})
ENDFOREACH (_inc )
SET(_sip_tags)
FOREACH (_tag ${SIP_TAGS})
LIST(APPEND _sip_tags -t ${_tag})
ENDFOREACH (_tag)
SET(_sip_x)
FOREACH (_x ${SIP_DISABLE_FEATURES})
LIST(APPEND _sip_x -x ${_x})
ENDFOREACH (_x ${SIP_DISABLE_FEATURES})
SET(_message "-DMESSAGE=Generating CPP code for module ${MODULE_NAME}")
SET(_sip_output_files)
FOREACH(CONCAT_NUM RANGE 0 ${SIP_CONCAT_PARTS} )
IF( ${CONCAT_NUM} LESS ${SIP_CONCAT_PARTS} )
SET(_sip_output_files ${_sip_output_files} ${CMAKE_CURRENT_BINARY_DIR}/${_module_path}/sip${_child_module_name}part${CONCAT_NUM}.cpp )
ENDIF( ${CONCAT_NUM} LESS ${SIP_CONCAT_PARTS} )
ENDFOREACH(CONCAT_NUM RANGE 0 ${SIP_CONCAT_PARTS} )
# Suppress warnings
IF(PEDANTIC)
IF(MSVC)
# 4996 deprecation warnings (bindings re-export deprecated methods)
# 4701 potentially uninitialized variable used (sip generated code)
# 4702 unreachable code (sip generated code)
ADD_DEFINITIONS( /wd4996 /wd4701 /wd4702 )
ELSE(MSVC)
# disable all warnings
ADD_DEFINITIONS( -w )
ENDIF(MSVC)
ENDIF(PEDANTIC)
ADD_CUSTOM_COMMAND(
OUTPUT ${_sip_output_files}
COMMAND ${CMAKE_COMMAND} -E echo ${message}
COMMAND ${CMAKE_COMMAND} -E touch ${_sip_output_files}
COMMAND ${SIP_EXECUTABLE} ${_sip_tags} ${_sip_x} ${SIP_EXTRA_OPTIONS} -j ${SIP_CONCAT_PARTS} -c ${CMAKE_CURRENT_BINARY_DIR}/${_module_path} ${_sip_includes} ${_abs_module_sip}
DEPENDS ${_abs_module_sip} ${SIP_EXTRA_FILES_DEPEND}
)
ADD_LIBRARY(${_logical_name} MODULE ${_sip_output_files} ${SIP_EXTRA_SOURCE_FILES})
IF (NOT APPLE)
IF ("${Python3_VERSION_MINOR}" GREATER 7)
MESSAGE(STATUS "Python > 3.7 - not linking to libpython")
ELSE ()
TARGET_LINK_LIBRARIES(${_logical_name} ${Python3_LIBRARIES})
ENDIF ()
ENDIF (NOT APPLE)
TARGET_LINK_LIBRARIES(${_logical_name} ${EXTRA_LINK_LIBRARIES})
IF (APPLE)
SET_TARGET_PROPERTIES(${_logical_name} PROPERTIES LINK_FLAGS "-undefined dynamic_lookup")
ENDIF (APPLE)
SET_TARGET_PROPERTIES(${_logical_name} PROPERTIES PREFIX "" OUTPUT_NAME ${_child_module_name})
IF (WIN32)
SET_TARGET_PROPERTIES(${_logical_name} PROPERTIES SUFFIX ".pyd" IMPORT_PREFIX "_")
ENDIF (WIN32)
INSTALL(TARGETS ${_logical_name} DESTINATION "${Python3_SITEARCH}/${_parent_module_path}")
ENDMACRO(ADD_SIP_PYTHON_MODULE)

195
changelog Normal file
View file

@ -0,0 +1,195 @@
* Thu Jul 20 2023 Fedora Release Engineering <releng@fedoraproject.org> - 5.2.2-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
* Thu Jun 15 2023 Python Maint <python-maint@redhat.com> - 5.2.2-2
- Rebuilt for Python 3.12
* Tue Mar 7 2023 Tom Callaway <spot@fedoraproject.org> - 5.2.2-1
- update to 5.2.2 with the help of forward ported CMake bits
* Thu Jan 19 2023 Fedora Release Engineering <releng@fedoraproject.org> - 4.13.1-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
* Thu Jul 21 2022 Fedora Release Engineering <releng@fedoraproject.org> - 4.13.1-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
* Fri Jun 17 2022 Python Maint <python-maint@redhat.com> - 4.13.1-3
- Rebuilt for Python 3.11
* Mon Apr 11 2022 Tomáš Hrnčiar <thrnciar@redhat.com> - 4.13.1-2
- Fix build failure with cmake 3.23+
* Tue Feb 01 2022 Gabriel Féron <feron.gabriel@gmail.com> - 4.13.1-1
- Update to 4.13.1
* Thu Jan 20 2022 Gabriel Féron <feron.gabriel@gmail.com> - 4.13.0-1
- Update to 4.13.0
* Thu Jan 20 2022 Fedora Release Engineering <releng@fedoraproject.org> - 4.12.1-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
* Mon Dec 13 2021 Gabriel Féron <feron.gabriel@gmail.com> - 4.12.1-1
- Update to 4.12.1
* Sat Nov 06 2021 Adrian Reber <adrian@lisas.de> - 4.11.0-3
- Rebuilt for protobuf 3.19.0
* Mon Oct 25 2021 Adrian Reber <adrian@lisas.de> - 4.11.0-2
- Rebuilt for protobuf 3.18.1
* Wed Sep 15 2021 Gabriel Féron <feron.gabriel@gmail.com> - 4.11.0-1
- Update to 4.11.0
* Mon Aug 16 2021 Gabriel Féron <feron.gabriel@gmail.com> - 4.10.0-1
- Update to 4.10.0
* Thu Jul 22 2021 Fedora Release Engineering <releng@fedoraproject.org> - 4.9.1-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
* Thu Jun 10 2021 Gabriel Féron <feron.gabriel@gmail.com> - 4.9.1-1
- Update to 4.9.1
* Fri Jun 04 2021 Python Maint <python-maint@redhat.com> - 4.9.0-2
- Rebuilt for Python 3.10
* Mon Apr 26 2021 Gabriel Féron <feron.gabriel@gmail.com> - 4.9.0-1
- Update to 4.9.0
* Tue Mar 30 2021 Jonathan Wakely <jwakely@redhat.com> - 4.8.0-4
- Rebuilt for removed libstdc++ symbol (#1937698)
* Tue Jan 26 2021 Fedora Release Engineering <releng@fedoraproject.org> - 4.8.0-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
* Wed Jan 13 09:45:36 CET 2021 Adrian Reber <adrian@lisas.de> - 4.8.0-2
- Rebuilt for protobuf 3.14
* Tue Dec 22 2020 Jan Pazdziora <jpazdziora@redhat.com> - 4.8.0-1
- Update to 4.8.0
* Wed Sep 23 2020 Adrian Reber <adrian@lisas.de> - 4.7.1-2
- Rebuilt for protobuf 3.13
* Thu Sep 03 2020 Miro Hrončok <mhroncok@redhat.com> - 4.7.1-1
- Update to 4.7.1
* Tue Jul 28 2020 Fedora Release Engineering <releng@fedoraproject.org> - 4.6.1-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
* Sun Jun 14 2020 Adrian Reber <adrian@lisas.de> - 4.6.1-3
- Rebuilt for protobuf 3.12
* Tue May 26 2020 Miro Hrončok <mhroncok@redhat.com> - 4.6.1-2
- Rebuilt for Python 3.9
* Tue May 5 2020 Gabriel Féron <feron.gabriel@gmail.com> - 4.6.0-1
- Update to 4.6.1
* Tue Apr 21 2020 Gabriel Féron <feron.gabriel@gmail.com> - 4.6.0-1
- Update to 4.6.0
* Wed Jan 29 2020 Fedora Release Engineering <releng@fedoraproject.org> - 4.4.0-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
* Thu Dec 19 2019 Orion Poplawski <orion@nwra.com> - 4.4.0-2
- Rebuild for protobuf 3.11
* Thu Nov 21 2019 Gabriel Féron <feron.gabriel@gmail.com> - 4.4.0-1
- Update to 4.4.0
* Fri Nov 01 2019 Miro Hrončok <mhroncok@redhat.com> - 4.1.0-5
- Make the dependency of python3-arcus on libarcus strict (#1767762)
* Mon Sep 16 2019 Rex Dieter <rdieter@fedoraproject.org> - 4.1.0-4
- use python3-pyqt5-sip (#1748527#c12)
* Mon Aug 19 2019 Miro Hrončok <mhroncok@redhat.com> - 4.1.0-3
- Rebuilt for Python 3.8
* Thu Jul 25 2019 Fedora Release Engineering <releng@fedoraproject.org> - 4.1.0-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
* Tue Jun 18 2019 Gabriel Féron <feron.gabriel@gmail.com> - 4.1.0-1
- Update to 4.1.0
* Wed Apr 03 2019 Gabriel Féron <feron.gabriel@gmail.com> - 4.0.0-1
- Update to 4.0.0
* Fri Feb 01 2019 Fedora Release Engineering <releng@fedoraproject.org> - 3.6.0-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
* Sat Jan 26 2019 Gabriel Féron <feron.gabriel@gmail.com> - 3.6.0-1
- Update to 3.6.0
* Wed Nov 21 2018 Igor Gnatenko <ignatenkobrain@fedoraproject.org> - 3.5.1-3
- Rebuild for protobuf 3.6
* Mon Nov 12 2018 Miro Hrončok <mhroncok@redhat.com>
- Use PyQt5.sip (#1601917)
* Mon Nov 12 2018 Miro Hrončok <mhroncok@redhat.com> - 3.5.1-1
- Update to 3.5.1 (#1644323)
* Tue Aug 28 2018 Rex Dieter <rdieter@fedoraproject.org> - 3.4.1-2
- use more robust upstreamable sip_flags.patch (#1601917)
* Tue Aug 28 2018 Miro Hrončok <mhroncok@redhat.com> - 3.4.1-1
- Update to 3.4.1 (#1599716)
* Thu Aug 23 2018 Rex Dieter <rdieter@fedoraproject.org> - 3.3.0-4
- Use PyQt5.sip (#1601917)
* Fri Jul 13 2018 Fedora Release Engineering <releng@fedoraproject.org> - 3.3.0-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
* Tue Jun 19 2018 Miro Hrončok <mhroncok@redhat.com> - 3.3.0-2
- Rebuilt for Python 3.7
* Wed May 02 2018 Miro Hrončok <mhroncok@redhat.com> - 3.3.0-1
- Update to 3.3.0 (#1571482)
* Mon Mar 19 2018 Miro Hrončok <mhroncok@redhat.com> - 3.2.1-1
- Update to 3.2.1 (#1523891)
* Wed Feb 07 2018 Fedora Release Engineering <releng@fedoraproject.org> - 3.1.0-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
* Sat Dec 09 2017 Miro Hrončok <mhroncok@redhat.com> - 3.1.0-1
- Update to 3.1.0 (#1523891)
- Don't sed lib -> lib64 (not needed now)
* Wed Nov 29 2017 Igor Gnatenko <ignatenko@redhat.com> - 3.0.3-3
- Rebuild for protobuf 3.5
* Mon Nov 13 2017 Igor Gnatenko <ignatenkobrain@fedoraproject.org> - 3.0.3-2
- Rebuild for protobuf 3.4
* Fri Oct 20 2017 Charalampos Statakis <cstratak@redhat.com> - 3.0.3-1
- Update to 3.0.3
* Wed Aug 30 2017 Miro Hrončok <mhroncok@redhat.com> - 2.7.0-1
- Update to 2.7.0
* Thu Aug 03 2017 Fedora Release Engineering <releng@fedoraproject.org> - 2.6.1-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild
* Wed Jul 26 2017 Fedora Release Engineering <releng@fedoraproject.org> - 2.6.1-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild
* Wed Jun 28 2017 Miro Hrončok <mhroncok@redhat.com> - 2.6.1-1
- Update to 2.6.1
* Tue Jun 27 2017 Miro Hrončok <mhroncok@redhat.com> - 2.6.0-1
- Update to 2.6.0
* Tue Jun 13 2017 Miro Hrončok <mhroncok@redhat.com> - 2.5.0-3
- Rebuilt for new protobuf 3.3.1
* Wed May 03 2017 Miro Hrončok <mhroncok@redhat.com> - 2.5.0-2
- Clarify licensing information on cmake files
* Wed Apr 26 2017 Miro Hrončok <mhroncok@redhat.com> - 2.5.0-1
- Update to 2.5.0
* Sat Mar 25 2017 Miro Hrončok <mhroncok@redhat.com> - 2.4.0-1
- Initial package

View file

@ -0,0 +1,12 @@
diff -up libArcus-4.10.0/cmake/FindSIP.cmake.sip libArcus-4.10.0/cmake/FindSIP.cmake
--- libArcus-4.10.0/cmake/FindSIP.cmake.sip
+++ libArcus-4.10.0/cmake/FindSIP.cmake
@@ -70,7 +70,7 @@ find_path(SIP_INCLUDE_DIRS sip.h
)
execute_process(
- COMMAND ${Python3_EXECUTABLE} -c "import sip; print(sip.SIP_VERSION_STR)"
+ COMMAND ${Python3_EXECUTABLE} -c "import PyQt5.sip; print(PyQt5.sip.SIP_VERSION_STR)"
RESULT_VARIABLE _process_status
OUTPUT_VARIABLE _process_output
OUTPUT_STRIP_TRAILING_WHITESPACE

View file

@ -0,0 +1,12 @@
diff -up libArcus-4.10.0/cmake/FindSIP.cmake.sip libArcus-4.10.0/cmake/FindSIP.cmake
--- libArcus-4.10.0/cmake/FindSIP.cmake.sip
+++ libArcus-4.10.0/cmake/FindSIP.cmake
@@ -70,7 +70,7 @@ find_path(SIP_INCLUDE_DIRS sip.h
)
execute_process(
- COMMAND ${Python3_EXECUTABLE} -c "import sip; print(sip.SIP_VERSION_STR)"
+ COMMAND ${Python3_EXECUTABLE} -c "import PyQt6.sip; print(PyQt6.sip.SIP_VERSION_STR)"
RESULT_VARIABLE _process_status
OUTPUT_VARIABLE _process_output
OUTPUT_STRIP_TRAILING_WHITESPACE

View file

@ -0,0 +1,90 @@
diff -up libArcus-5.2.2/include/Arcus/Error.h.export libArcus-5.2.2/include/Arcus/Error.h
--- libArcus-5.2.2/include/Arcus/Error.h.export 2022-11-30 09:32:40.000000000 -0500
+++ libArcus-5.2.2/include/Arcus/Error.h 2023-03-08 12:26:40.095859666 -0500
@@ -5,6 +5,7 @@
#define ARCUS_ERROR_H
#include "Arcus/Types.h"
+#include "ArcusExport.h"
namespace Arcus
{
@@ -32,7 +33,7 @@ enum class ErrorCode
/**
* A class representing an error with an error code and an error message.
*/
-class Error
+class ARCUS_EXPORT Error
{
public:
/**
diff -up libArcus-5.2.2/include/Arcus/MessageTypeStore.h.export libArcus-5.2.2/include/Arcus/MessageTypeStore.h
--- libArcus-5.2.2/include/Arcus/MessageTypeStore.h.export 2022-11-30 09:32:40.000000000 -0500
+++ libArcus-5.2.2/include/Arcus/MessageTypeStore.h 2023-03-08 12:26:40.095859666 -0500
@@ -8,12 +8,14 @@
#include "Arcus/Types.h"
+#include "ArcusExport.h"
+
namespace Arcus
{
/**
* A class to manage the different types of messages that are available.
*/
-class MessageTypeStore
+class ARCUS_EXPORT MessageTypeStore
{
public:
MessageTypeStore();
@@ -87,7 +89,7 @@ public:
void dumpMessageTypes();
private:
- class Private;
+ class ARCUS_NO_EXPORT Private;
const std::unique_ptr<Private> d;
};
} // namespace Arcus
diff -up libArcus-5.2.2/include/Arcus/Socket.h.export libArcus-5.2.2/include/Arcus/Socket.h
--- libArcus-5.2.2/include/Arcus/Socket.h.export 2022-11-30 09:32:40.000000000 -0500
+++ libArcus-5.2.2/include/Arcus/Socket.h 2023-03-08 12:26:40.096859680 -0500
@@ -9,6 +9,8 @@
#include "Arcus/Error.h"
#include "Arcus/Types.h"
+#include "ArcusExport.h"
+
namespace Arcus
{
class SocketListener;
@@ -21,7 +23,7 @@ class SocketListener;
*
* Please see the README in libArcus for more details.
*/
-class Socket
+class ARCUS_EXPORT Socket
{
public:
Socket();
diff -up libArcus-5.2.2/include/Arcus/SocketListener.h.export libArcus-5.2.2/include/Arcus/SocketListener.h
--- libArcus-5.2.2/include/Arcus/SocketListener.h.export 2023-03-08 12:27:19.364375316 -0500
+++ libArcus-5.2.2/include/Arcus/SocketListener.h 2023-03-08 12:27:41.511666142 -0500
@@ -6,6 +6,8 @@
#include "Arcus/Types.h"
+#include "ArcusExport.h"
+
namespace Arcus
{
class Socket;
@@ -24,7 +26,7 @@ class Error;
* signal from a subclass of this class, to make sure the actual event
* is handled on the main thread.
*/
-class SocketListener
+class ARCUS_EXPORT SocketListener
{
public:
SocketListener() : _socket(nullptr)

View file

@ -1,19 +1,46 @@
Name: libarcus
Version: 3.2.1
Release: 1%{?dist}
Version: 5.3.0
Release: %autorelease
Summary: Communication library between internal components for Ultimaker software
License: LGPLv3+
License: LGPL-3.0-or-later
URL: https://github.com/Ultimaker/libArcus
Source0: %{url}/archive/%{version}.tar.gz#/%{name}-%{version}.tar.gz
# Python bits
Source1: https://github.com/Ultimaker/pyArcus/archive/%{version}.tar.gz#/pyArcus-%{version}.tar.gz
# Cmake bits taken from 4.13.1, before upstream went nuts with conan
Source2: FindSIP.cmake
Source3: SIPMacros.cmake
Source4: CMakeLists.txt
Source5: CPackConfig.cmake
Source6: ArcusConfig.cmake.in
Source7: COPYING-CMAKE-SCRIPTS
# https://bugzilla.redhat.com/show_bug.cgi?id=1601917
Patch: libArcus-3.10.0-PyQt6.sip.patch
# Actually export symbols
Patch: libArcus-5.2.2-actually-export-symbols.patch
# Add missing stdint includes
Patch: https://github.com/Ultimaker/libArcus/pull/160.patch
BuildRequires: protobuf-devel
BuildRequires: python3-devel
BuildRequires: python3-protobuf
BuildRequires: python3-pyqt6-sip
BuildRequires: python3-sip-devel
BuildRequires: /usr/bin/sip
BuildRequires: cmake
BuildRequires: gcc-c++
BuildRequires: git
BuildRequires: git-core
# we add a dependency on setuptools to provide the distutils module
# upstream already removed the distutils usage in version 5+
BuildRequires: (python3-setuptools if python3-devel >= 3.12)
# https://fedoraproject.org/wiki/Changes/EncourageI686LeafRemoval
ExcludeArch: %{ix86}
%description
Arcus library contains C++ code and Python 3 bindings for creating a socket in
@ -24,7 +51,7 @@ between Cura and its backend and similar code.
%package devel
# The cmake scripts are BSD
License: AGPLv3+ and BSD
License: LGPLv3+ and BSD
Summary: Development files for libarcus
Requires: %{name}%{?_isa} = %{version}-%{release}
@ -39,7 +66,8 @@ Development files.
%package -n python3-arcus
Summary: Python 3 libArcus bindings
%{?python_provide:%python_provide python3-arcus}
Requires: %{name}%{?_isa} = %{version}-%{release}
%{?_sip_api:Requires: python3-pyqt5-sip-api(%{_sip_api_major}) >= %{_sip_api}}
%description -n python3-arcus
Arcus Python 3 bindings for creating a socket in a thread and using this
@ -48,27 +76,32 @@ Protocol Buffers library. It is designed to facilitate the communication
between Cura and its backend and similar code.
%prep
%autosetup -n libArcus-%{version} -p1 -S git
%setup -q -n libArcus-%{version} -a 1
cp -a pyArcus-%{version}/python .
cp -a pyArcus-%{version}/include/pyArcus include
mkdir cmake
cp -a %{SOURCE2} %{SOURCE3} %{SOURCE7} cmake/
rm -rf CMakeLists.txt
cp -a %{SOURCE4} %{SOURCE5} %{SOURCE6} .
cp -a pyArcus-%{version}/src/PythonMessage.cpp python/
%autopatch -p1
%build
%{cmake} -DBUILD_EXAMPLES:BOOL=OFF -DCMAKE_SKIP_RPATH:BOOL=ON .
make %{?_smp_mflags}
%cmake -DBUILD_EXAMPLES:BOOL=OFF -DCMAKE_SKIP_RPATH:BOOL=ON
%cmake_build
%install
make install DESTDIR=%{buildroot}
%post -p /sbin/ldconfig
%postun -p /sbin/ldconfig
%cmake_install
%files
%license LICENSE
%doc README.md TODO.md
%doc README.md
%{_libdir}/libArcus.so.*
%files devel
%license LICENSE cmake/COPYING-CMAKE-SCRIPTS
%doc examples/example.cpp examples/example.proto
%{_libdir}/libArcus.so
%{_includedir}/Arcus
# Own the dir not to depend on cmake:
@ -76,53 +109,8 @@ make install DESTDIR=%{buildroot}
%files -n python3-arcus
%license LICENSE
%doc README.md TODO.md
%doc examples/example.py
%{python3_sitearch}/Arcus.so
%doc README.md
%{python3_sitearch}/pyArcus.so
%changelog
* Mon Mar 19 2018 Miro Hrončok <mhroncok@redhat.com> - 3.2.1-1
- Update to 3.2.1 (#1523891)
* Wed Feb 07 2018 Fedora Release Engineering <releng@fedoraproject.org> - 3.1.0-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
* Sat Dec 09 2017 Miro Hrončok <mhroncok@redhat.com> - 3.1.0-1
- Update to 3.1.0 (#1523891)
- Don't sed lib -> lib64 (not needed now)
* Wed Nov 29 2017 Igor Gnatenko <ignatenko@redhat.com> - 3.0.3-3
- Rebuild for protobuf 3.5
* Mon Nov 13 2017 Igor Gnatenko <ignatenkobrain@fedoraproject.org> - 3.0.3-2
- Rebuild for protobuf 3.4
* Fri Oct 20 2017 Charalampos Statakis <cstratak@redhat.com> - 3.0.3-1
- Update to 3.0.3
* Wed Aug 30 2017 Miro Hrončok <mhroncok@redhat.com> - 2.7.0-1
- Update to 2.7.0
* Thu Aug 03 2017 Fedora Release Engineering <releng@fedoraproject.org> - 2.6.1-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild
* Wed Jul 26 2017 Fedora Release Engineering <releng@fedoraproject.org> - 2.6.1-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild
* Wed Jun 28 2017 Miro Hrončok <mhroncok@redhat.com> - 2.6.1-1
- Update to 2.6.1
* Tue Jun 27 2017 Miro Hrončok <mhroncok@redhat.com> - 2.6.0-1
- Update to 2.6.0
* Tue Jun 13 2017 Miro Hrončok <mhroncok@redhat.com> - 2.5.0-3
- Rebuilt for new protobuf 3.3.1
* Wed May 03 2017 Miro Hrončok <mhroncok@redhat.com> - 2.5.0-2
- Clarify licensing information on cmake files
* Wed Apr 26 2017 Miro Hrončok <mhroncok@redhat.com> - 2.5.0-1
- Update to 2.5.0
* Sat Mar 25 2017 Miro Hrončok <mhroncok@redhat.com> - 2.4.0-1
- Initial package
%autochangelog

View file

@ -1 +1,2 @@
SHA512 (libarcus-3.2.1.tar.gz) = fc211aa3b917fd2dfaff86642c4a5e28a46cc9a977ad385dcba02795c536e055f50bacd3dced64dbe89dc507aca7894ea79169cc5e0b8e923528a4d4babce15e
SHA512 (libarcus-5.3.0.tar.gz) = 8106bbcd595921d56e39bf694fbee43c6146a9c661edf9fb1fe271bbcf199a202e399cfbda5b83711c9daad1c55d8242ba23ce4fb52c416ddd862fb6de2bcab3
SHA512 (pyArcus-5.3.0.tar.gz) = d4a114994fa3e3156eae95dde58df13237b8bb0571a1219d6dee6b6338fd65f911f27887d6ab32b7a3cb32bc45ca6c25147e7c2d246cb0707326b88246abfbcd