srecord: Upgrade to 1.65.0

Add two patches to fix cross build

Signed-off-by: Khem Raj <raj.khem@gmail.com>
This commit is contained in:
Khem Raj 2023-04-30 23:02:45 -07:00
parent b16278ea0f
commit d72fc73edb
7 changed files with 149 additions and 187 deletions

View File

@ -0,0 +1,85 @@
From d75193671c235e4b3bd02417b40516f3bfeb55b6 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Sun, 30 Apr 2023 14:09:21 -0700
Subject: [PATCH] Disable doxygen
doxygen (dot) detect does not work in cross environment here with cmake
Upstream-Status: Inappropriate [Cross-compile specific]
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
etc/configure.cmake | 2 +-
srecord/CMakeLists.txt | 6 +++---
2 files changed, 4 insertions(+), 4 deletions(-)
--- a/etc/configure.cmake
+++ b/etc/configure.cmake
@@ -103,32 +103,3 @@ option(_TANDEM_SOURCE ON)
# Enable general extensions on Solaris.
option(__EXTENSIONS__ ON)
-# Doxygen configuration
-find_package(Doxygen REQUIRED doxygen dot)
-
-set(DOXYGEN_DOT_GRAPH_MAX_NODES 150)
-set(DOXYGEN_ALPHABETICAL_INDEX NO)
-set(DOXYGEN_BUILTIN_STL_SUPPORT YES)
-set(DOXYGEN_CASE_SENSE_NAMES NO)
-set(DOXYGEN_CLASS_DIAGRAMS YES)
-set(DOXYGEN_DISTRIBUTE_GROUP_DOC YES)
-set(DOXYGEN_EXCLUDE bin)
-set(DOXYGEN_EXTRACT_ALL YES)
-set(DOXYGEN_EXTRACT_LOCAL_CLASSES NO)
-set(DOXYGEN_FILE_PATTERNS *.h)
-set(DOXYGEN_GENERATE_TREEVIEW YES)
-set(DOXYGEN_HIDE_FRIEND_COMPOUNDS YES)
-set(DOXYGEN_HIDE_IN_BODY_DOCS YES)
-set(DOXYGEN_HIDE_UNDOC_CLASSES YES)
-set(DOXYGEN_HIDE_UNDOC_MEMBERS YES)
-set(DOXYGEN_JAVADOC_AUTOBRIEF YES)
-set(DOXYGEN_QT_AUTOBRIEF YES)
-set(DOXYGEN_QUIET YES)
-set(DOXYGEN_RECURSIVE YES)
-set(DOXYGEN_REFERENCED_BY_RELATION YES)
-set(DOXYGEN_REFERENCES_RELATION YES)
-set(DOXYGEN_SORT_BY_SCOPE_NAME YES)
-set(DOXYGEN_SORT_MEMBER_DOCS NO)
-set(DOXYGEN_SOURCE_BROWSER YES)
-set(DOXYGEN_STRIP_CODE_COMMENTS NO)
-set(DOXYGEN_GENERATE_HTML YES)
--- a/srecord/CMakeLists.txt
+++ b/srecord/CMakeLists.txt
@@ -34,9 +34,9 @@ install(DIRECTORY ${CMAKE_CURRENT_SOURCE
FILES_MATCHING PATTERN "*.h")
# Install the Doxygen output for the website
-install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/html
- DESTINATION ${CMAKE_INSTALL_DOCDIR}/htdocs/srecord
- COMPONENT website)
+#install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/html
+# DESTINATION ${CMAKE_INSTALL_DOCDIR}/htdocs/srecord
+# COMPONENT website)
# Generate config.h to suit local environment
configure_file(config.h.in config.h @ONLY)
@@ -44,6 +44,6 @@ configure_file(patchlevel.h.in patchleve
include_directories(${CMAKE_CURRENT_BINARY_DIR})
# Generate doxygen content
-doxygen_add_docs(doxygen
- ${LIB_SRECORD_HDR}
- ALL)
+#doxygen_add_docs(doxygen
+# ${LIB_SRECORD_HDR}
+# ALL)
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -55,7 +55,7 @@ enable_testing()
add_subdirectory(test)
# Documentation & Man Pages
-add_subdirectory(doc)
+# add_subdirectory(doc)
# Package SRecord
include(CPack)

View File

@ -0,0 +1,45 @@
From 756169511ed13e4c7adc06c7c108d365ac66b9f8 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Sun, 30 Apr 2023 22:58:47 -0700
Subject: [PATCH] cmake: Do not try to compute library dependencies during
install
Since we are cross-building the dependencies are not in final install
location but in a staging area in recipe specific sysroot and it wont be
able to resolve the libraries all the time
Fixes
| CMake Error at srec_cat/cmake_install.cmake:66 (file):
| file Could not resolve runtime dependencies:
|
| libc++.so.1
| libc.so
| Call Stack (most recent call first):
| cmake_install.cmake:52 (include)
Upstream-Status: Inappropriate [OE-specific]
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
etc/packaging.cmake | 6 ------
1 file changed, 6 deletions(-)
diff --git a/etc/packaging.cmake b/etc/packaging.cmake
index ee2a32c..9804fd8 100644
--- a/etc/packaging.cmake
+++ b/etc/packaging.cmake
@@ -45,12 +45,6 @@ FUNCTION(INSTALL_SRECORD_EXECUTABLE_TARGET target)
install(IMPORTED_RUNTIME_ARTIFACTS ${target}
RUNTIME_DEPENDENCY_SET ${PROJECT_NAME}_dlls COMPONENT ${target})
- install(RUNTIME_DEPENDENCY_SET ${PROJECT_NAME}_dlls
- PRE_EXCLUDE_REGEXES "api-ms-" "ext-ms-"
- POST_EXCLUDE_REGEXES ".*system32/.*\\.dll"
- DIRECTORIES ${DLL_SEARCH_DIRS}
- COMPONENT ${target}
- )
ENDFUNCTION()
# Packaging
--
2.40.1

View File

@ -1,29 +0,0 @@
From f9e50aba10f9d2c58e5d88f51810ca7143f4372b Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Thu, 1 Sep 2022 13:20:01 -0700
Subject: [PATCH] configure: Fix AC_CHECK_LIB test for gpg-error
Use check function which is found in libgpg-error
Upstream-Status: Pending
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
etc/configure.ac | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/etc/configure.ac b/etc/configure.ac
index d4ae290..ea0936d 100644
--- a/etc/configure.ac
+++ b/etc/configure.ac
@@ -30,7 +30,7 @@ AC_CHECK_PROGS(SOELIM, gsoelim soelim roffpp)
AC_CHECK_FUNCS(snprintf vsnprintf)
dnl! This is needed for MingGW build, but not for Unix or Linux, etc.
-AC_CHECK_LIB(gpg-error, main)
+AC_CHECK_LIB(gpg-error, gpg_strerror_r)
dnl! @synopsis AC_ADD_CFLAGS
dnl!
--
2.37.3

View File

@ -1,57 +0,0 @@
Add option to build this utility without a documentation.
For full documentation building are necessary utilities like
groff and ps2pdf. Full documentation can takes a lot of space.
So it can be disabled by overloading makefile variable WITHOUT_DOC.
Upstream-Status: Inappropriate [Other]
Workaround specific to our build system.
Signed-off-by: Andrej Valek <andrej.valek@siemens.com>
diff --git a/Makefile.in b/Makefile.in
index 9bdd8f1..a2b5494 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -141,6 +141,14 @@ GROFF = @GROFF@
#
SOELIM = @SOELIM@
+# Option to build this utility without building and installing the documentation.
+WITHOUT_DOC ?= 0
+ifeq ($(WITHOUT_DOC),0)
+ BUILD_DOC = all-doc
+ INST_DOC = install-doc
+ CLR_DOC = clean-doc
+endif
+
# ---------------------------------------------------------
# You should not need to change anything below this line.
@@ -4090,7 +4098,7 @@ bin/test_url_decode: $(test_url_decode_obj) .bin srecord/libsrecord.la
$(LIBTOOL) --mode=link --tag=CXX $(CXX) $(CPPFLAGS) $(CXXFLAGS) -o $@ \
$(test_url_decode_obj) srecord/libsrecord.la $(LDFLAGS) $(LIBS)
-all: all-bin all-doc
+all: all-bin $(BUILD_DOC)
all-bin: bin/srec_cat bin/srec_cmp bin/srec_info bin/test_arglex_ambiguous \
bin/test_crc16 bin/test_fletcher16 bin/test_gecos \
@@ -4156,7 +4164,7 @@ test_files = t0001a t0002a t0003a t0004a t0005a t0006a t0007a t0008a t0009a \
sure: $(test_files)
@echo Passed All Tests
-clean: clean-bin clean-doc clean-misc clean-obj
+clean: clean-bin $(CLR_DOC) clean-misc clean-obj
clean-bin:
rm -f bin/srec_cat bin/srec_cmp bin/srec_info bin/test_arglex_ambiguous
@@ -4443,7 +4451,7 @@ distclean-directories:
rm -rf test/fletcher16/.libs test/gecos/.libs test/hyphen/.libs
rm -rf test/url_decode/.libs
-install: install-bin install-doc install-include install-libdir install-man
+install: install-bin $(INST_DOC) install-include install-libdir install-man
install-bin: $(bindir)/srec_cat $(bindir)/srec_cmp $(bindir)/srec_info

View File

@ -1,67 +0,0 @@
Instead of just looking for a libtool binary, actually configure libtool.
As the build doesn't use automake we need to manually set top_builddir in the Makefile.
Upstream-Status: Inactive-Upstream [2014]
Signed-off-by: Ross Burton <ross.burton@arm.com>
diff --git a/Makefile.in b/Makefile.in
index a2b5494..aa0b8ca 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -36,6 +36,7 @@
#
srcdir = @srcdir@
VPATH = @srcdir@
+top_builddir = @srcdir@
#
# the name of the install program to use
diff --git a/etc/configure.ac b/etc/configure.ac
index e444543..b137443 100644
--- a/etc/configure.ac
+++ b/etc/configure.ac
@@ -161,42 +161,7 @@ AS_IF([test "x$with_gcrypt" != xno], AC_GCRYPT_SETUP())
dnl!
dnl! Now look for libtool.
dnl!
-AC_CHECK_PROGS(LIBTOOL, libtool)
-if test -z "$LIBTOOL"
-then
- AC_MSG_RESULT([
- You must have GNU Libtool installed to build srecord.
- Homepage: http://www.gnu.org/software/libtool/])
- OK=no
- if apt-get --version > /dev/null 2> /dev/null; then
- AC_MSG_RESULT([
- The following command may be used to install it:
- sudo apt-get install libtool
- ])
- OK=yes
- fi
- if yum --version > /dev/null 2> /dev/null; then
- AC_MSG_RESULT([
- The following command may be used to install it:
- sudo yum install libtool
- ])
- OK=yes
- fi
- if pkg_info -a > /dev/null 2> /dev/null; then
- AC_MSG_RESULT([
- The following command may be used to install it:
- sudo pkg_add -r libtool
- ])
- OK=yes
- fi
- if test "$OK" != "yes"; then
- AC_MSG_RESULT([
- If you are using a package based install, you will need the
- libtool package.
- ])
- fi
- exit 1
-fi
+LT_INIT
dnl
dnl If the soelim program exists, and understands the -I option,

View File

@ -1,34 +0,0 @@
SUMMARY = "A collection of powerful tools for manipulating EPROM load files."
SECTION = "devel"
LICENSE = "GPL-3.0-or-later & LGPL-3.0-or-later"
LIC_FILES_CHKSUM = "file://LICENSE;md5=8dfcbf2f0a144b97f0931b6394debea7"
SRC_URI = " \
http://srecord.sourceforge.net/srecord-${PV}.tar.gz \
file://add-option-to-remove-docs.patch \
file://libtool.patch \
file://0001-configure-Fix-AC_CHECK_LIB-test-for-gpg-error.patch \
"
SRC_URI[md5sum] = "4de4a7497472d7972645c2af91313769"
SRC_URI[sha256sum] = "49a4418733c508c03ad79a29e95acec9a2fbc4c7306131d2a8f5ef32012e67e2"
UPSTREAM_CHECK_URI = "http://sourceforge.net/projects/srecord/files/releases"
DEPENDS = "boost groff-native"
inherit autotools-brokensep
do_configure:prepend() {
# To autoreconf we need the script in ${S}, we can't tell autotools to use
# etc/ because then it can't find the Makefile.in
ln -sf ${S}/etc/configure.ac ${S}
}
PACKAGECONFIG ??= "gcrypt"
PACKAGECONFIG[gcrypt] = "--with-gcrypt,--without-gcrypt,libgcrypt"
# Set variable WITHOUT_DOC=0 to enable documentation generation
EXTRA_OEMAKE = "WITHOUT_DOC=1"
BBCLASSEXTEND = "native"

View File

@ -0,0 +1,19 @@
SUMMARY = "A collection of powerful tools for manipulating EPROM load files."
SECTION = "devel"
LICENSE = "GPL-3.0-or-later & LGPL-3.0-or-later"
LIC_FILES_CHKSUM = "file://LICENSE;md5=d32239bcb673463ab874e80d47fae504"
SRC_URI = " \
https://sourceforge.net/projects/${BPN}/files/srecord/${@oe.utils.trim_version('${PV}', 2)}/${BP}-Source.tar.gz \
file://0001-Disable-doxygen.patch \
file://0001-cmake-Do-not-try-to-compute-library-dependencies-dur.patch"
SRC_URI[sha256sum] = "81c3d07cf15ce50441f43a82cefd0ac32767c535b5291bcc41bd2311d1337644"
S = "${WORKDIR}/${BP}-Source"
UPSTREAM_CHECK_URI = "https://sourceforge.net/projects/srecord/files/releases"
DEPENDS = "boost libgcrypt"
inherit cmake
BBCLASSEXTEND = "native"