diff --git a/96.patch b/96.patch new file mode 100644 index 0000000..e8e358e --- /dev/null +++ b/96.patch @@ -0,0 +1,68 @@ +From c17d66e5dce011acef34435598eddf7122458b33 Mon Sep 17 00:00:00 2001 +From: Jean-Francois Dockes +Date: Thu, 13 Dec 2018 18:39:43 +0100 +Subject: [PATCH] Ensure that the samples use the same largefile options as the + library + +Create a configuration file specific to the samples, to mimick what a +regular application would have to do. +--- + .gitignore | 2 ++ + configure.ac | 2 +- + upnp/sample/common/config_sample.h.in | 21 +++++++++++++++++++++ + upnp/sample/common/sample_util.h | 1 + + 4 files changed, 25 insertions(+), 1 deletion(-) + create mode 100644 upnp/sample/common/config_sample.h.in + +diff --git a/configure.ac b/configure.ac +index 108ad7bf..670d3632 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -432,7 +432,7 @@ AC_CANONICAL_HOST + # libraries : it contains information on the configuration of the + # installed libraries. + # +-AC_CONFIG_HEADERS([autoconfig.h upnp/inc/upnpconfig.h]) ++AC_CONFIG_HEADERS([autoconfig.h upnp/inc/upnpconfig.h upnp/sample/common/config_sample.h]) + AX_SYS_LARGEFILE_SENSITIVE + + if test "x$ac_cv_sys_largefile_sensitive" = "xyes"; then +diff --git a/upnp/sample/common/config_sample.h.in b/upnp/sample/common/config_sample.h.in +new file mode 100644 +index 00000000..8fbc38e3 +--- /dev/null ++++ b/upnp/sample/common/config_sample.h.in +@@ -0,0 +1,21 @@ ++/* ++ * On systems where the size of off_t depends on compile flags, libupnp needs ++ * the programs which use it to be built with the same options as itself. ++ * This is checked at compile time, but the actual variables (such as ++ * _FILE_OFFSET_BITS) are not exported by the library (to avoid surprises in ++ * applications). ++ * A "normal" application would need to explicitely configure large file ++ * support depending on how libupnp was built, using its own configure ++ * routines. For the samples, we equivalently let the main libupnp configure ++ * create this file. ++ */ ++ ++/* Number of bits in a file offset, on hosts where this is settable. */ ++#undef _FILE_OFFSET_BITS ++ ++/* Define to 1 to make fseeko visible on some hosts (e.g. glibc 2.2). */ ++#undef _LARGEFILE_SOURCE ++ ++/* Define for large files, on AIX-style hosts. */ ++#undef _LARGE_FILES ++ +diff --git a/upnp/sample/common/sample_util.h b/upnp/sample/common/sample_util.h +index 2bca04ff..6d853efb 100644 +--- a/upnp/sample/common/sample_util.h ++++ b/upnp/sample/common/sample_util.h +@@ -44,6 +44,7 @@ + extern "C" { + #endif /* __cplusplus */ + ++#include "config_sample.h" + #include "ithread.h" + #include "ixml.h" /* for IXML_Document, IXML_Element */ + #include "upnp.h" /* for Upnp_EventType */ diff --git a/libupnp-1.8.4-nobump.patch b/libupnp-1.8.4-nobump.patch new file mode 100644 index 0000000..cc905d2 --- /dev/null +++ b/libupnp-1.8.4-nobump.patch @@ -0,0 +1,12 @@ +diff -up libupnp-1.8.4/configure.ac.nobump libupnp-1.8.4/configure.ac +--- libupnp-1.8.4/configure.ac.nobump 2018-10-25 16:54:52.000000000 +0200 ++++ libupnp-1.8.4/configure.ac 2019-01-08 15:17:39.420358079 +0100 +@@ -388,7 +388,7 @@ dnl #AC_SUBST([LT_VERSION_UPNP], [ + dnl # + dnl ############################################################################ + AC_SUBST([LT_VERSION_IXML], [10:1:0]) +-AC_SUBST([LT_VERSION_UPNP], [13:0:0]) ++AC_SUBST([LT_VERSION_UPNP], [12:0:2]) + dnl ############################################################################ + dnl # Repeating the algorithm to place it closer to the modificatin place: + dnl # - library code modified: revision++ diff --git a/libupnp-1.8.4.tar.bz2 b/libupnp-1.8.4.tar.bz2 new file mode 100644 index 0000000..0620e3d Binary files /dev/null and b/libupnp-1.8.4.tar.bz2 differ diff --git a/libupnp.spec b/libupnp.spec new file mode 100644 index 0000000..5e69108 --- /dev/null +++ b/libupnp.spec @@ -0,0 +1,65 @@ +Version: 1.8.4 +Summary: Universal Plug and Play (UPnP) SDK +Name: libupnp +Release: 1%{?dist} +License: BSD +URL: https://sourceforge.net/projects/pupnp +Source: https://downloads.sourceforge.net/pupnp/%{name}-%{version}.tar.bz2 +Patch0: libupnp-1.8.4-nobump.patch +Patch1: 96.patch + +BuildRequires: gcc autoconf automake + + +%description +The Universal Plug and Play (UPnP) SDK for Linux provides +support for building UPnP-compliant control points, devices, +and bridges on Linux. + +%package devel +Summary: Include files needed for development with libupnp +Requires: libupnp%{?_isa} = %{version}-%{release} + +%description devel +The libupnp-devel package contains the files necessary for development with +the UPnP SDK libraries. + +%prep +%setup -q +%patch0 -p1 +%patch1 -p1 +autoreconf + +%build +%configure \ + --enable-static=no \ + --enable-ipv6 + +# remove rpath from libtool +sed -i.rpath 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|g' libtool +sed -i.rpath 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|g' libtool + +%make_build + +%install +%make_install + +%{__rm} %{buildroot}%{_libdir}/{libixml.la,libupnp.la} + +%ldconfig_scriptlets + +%files +%license COPYING +%doc THANKS +%{_libdir}/libixml.so.10* +%{_libdir}/libupnp.so.10* + +%files devel +%{_includedir}/upnp/ +%{_libdir}/libixml.so +%{_libdir}/libupnp.so +%{_libdir}/pkgconfig/libupnp.pc + +%changelog +* Thu Jul 23 2020 Zhao Yang  - 1.8.4-1 +- Initial release for OpenEuler \ No newline at end of file