# vim: set sw=4 ts=4 et nu:
#
# spec file for package openpgm
#
# Copyright (c) 2023 SUSE LLC
# Copyright (c) 2012 Pascal Bleser <pascal.bleser@opensuse.org>
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.

# Please submit bugfixes or comments via https://bugs.opensuse.org/
#


# Please submit bugfixes or comments via http://bugs.opensuse.org/
%define major       5.3
%define mpkg        5_3
%define soname      0
%define tarball_version 5-3-128
%define libname     libpgm-%{mpkg}-%{soname}
Name:           openpgm
Version:        5.3.128
Release:        2.6
Summary:        OpenPGM implementation of the Reliable Multicast Protocol
License:        LGPL-2.1-or-later
Group:          Development/Libraries/C and C++
URL:            https://github.com/steve-o/openpgm
Source:         https://github.com/steve-o/openpgm/archive/release-%{tarball_version}.tar.gz#/openpgm-release-%{tarball_version}.tar.gz
Source99:       baselibs.conf
# PATCH-FIX-UPSTREAM https://github.com/steve-o/openpgm/pull/74
Patch0:         Mark-pgm_family_string-as-inline.patch
BuildRequires:  autoconf
BuildRequires:  automake
BuildRequires:  gcc-c++
BuildRequires:  glibc-devel
BuildRequires:  libtool
BuildRequires:  make
BuildRequires:  pkgconfig
BuildRequires:  python3-base

%description
OpenPGM is an implementation of the Pragmatic General Multicast (PGM)
specification in RFC 3208. PGM is a reliable and scalable multicast protocol
that enables receivers to detect loss, request retransmission of lost data, or
notify an application of unrecoverable loss.

%package -n %{libname}
Summary:        PGM Reliable Multicast Protocol library
Group:          System/Libraries

%description -n %{libname}
OpenPGM is an implementation of the Pragmatic General Multicast (PGM)
specification in RFC 3208. PGM is a reliable and scalable multicast protocol
that enables receivers to detect loss, request retransmission of lost data, or
notify an application of unrecoverable loss.

%package devel
Summary:        Development files for the OpenPGM Reliable Multicast Protocol library
Group:          Development/Libraries/C and C++
Requires:       %{libname} = %{version}

%description devel
OpenPGM is an implementation of the Pragmatic General Multicast (PGM)
specification in RFC 3208. PGM is a reliable and scalable multicast protocol
that enables receivers to detect loss, request retransmission of lost data, or
notify an application of unrecoverable loss.

This subpackage contains the header files for OpenPGM.

%prep
%setup -q -n "%{name}-release-%{tarball_version}/openpgm/pgm"
%autopatch -p1

%build
mv openpgm-5.2.pc.in openpgm-5.3.pc.in
export ac_cv_func_ftime=no
mkdir -p m4
autoreconf -fi
%{configure} \
    --disable-static

%make_build

%install
%make_install
rm %{buildroot}%{_libdir}/libpgm.la

%post   -n %{libname} -p /sbin/ldconfig
%postun -n %{libname} -p /sbin/ldconfig

%files -n %{libname}
%defattr(-,root,root)
%license COPYING LICENSE
%{_libdir}/libpgm-%{major}.so.%{soname}
%{_libdir}/libpgm-%{major}.so.%{soname}.*

%files devel
%defattr(-,root,root)
%doc mibs/PGM-MIB-petrova-01.txt
%{_includedir}/pgm-%{major}
%{_libdir}/libpgm.so
%{_libdir}/pkgconfig/openpgm-%{major}.pc

%changelog
* Sun Jun 18 2023 bluca@debian.org
- Add Mark-pgm_family_string-as-inline.patch to fix building packages that
  include the PGM headers without using pgm_family_string() by marking it
  'inline' to avoid unused-function warnings. Sent upstream:
  https://github.com/steve-o/openpgm/pull/74
* Wed Jun  7 2023 pgajdos@suse.com
- version update to 5.3.128
  * Maintenance release aggregating all patches to the repository since
    previous tested release.
- modified sources
  %% baselibs.conf
- deleted patches
  - libpgm-5.2.122-configure-rdtsc-checking-chg.patch (upstreamed)
  - libpgm-5.2.122-pkg-config-do-not-add-I-to-non-existing-directory.patch (upstreamed)
  - libpgm-5.2.122-reproducible-architecture.patch (upstreamed)
  - libpgm-5.2.122-reproducible.patch (upstreamed)
  - use_python3.patch (upstreamed)
* Mon Jun 28 2021 Matej Cepl <mcepl@suse.com>
- Add use_python3.patch to allow use of Python3 instead of
  Python2 for generating files.
* Mon Oct 19 2020 Cristian Rodríguez <crrodriguez@opensuse.org>
- Always pretend we do not have ftime(3), function is deprecated
  and absent from next glibc release.
* Fri Aug 16 2019 Michel Normand <normand@linux.vnet.ibm.com>
- Add libpgm-5.2.122-configure-rdtsc-checking-chg.patch
  same as https://github.com/steve-o/openpgm/pull/63
* Mon Jan 28 2019 luca.boccassi@gmail.com
- Backport patches from upstream to avoid adding a non-existing
  foo/lib/pgm-5.2/include directory to pkg-config's CFLAGS which
  breaks applications using strict compiler flags, and to make the
  build reproducible regardless of the reported system/architecture
  Added:
- libpgm-5.2.122-pkg-config-do-not-add-I-to-non-existing-directory.patch
- libpgm-5.2.122-reproducible-architecture.patch
* Fri Jul 13 2018 dimstar@opensuse.org
- Add baselibs.conf: build -32bit packages, which are needed by
  zeromq's -32bit implementation. [bsc#1146257]
* Tue Mar 27 2018 kukuk@suse.de
- Use %%license instead of %%doc [bsc#1082318]
* Tue Oct 24 2017 luca.boccassi@gmail.com
- Create m4 directory before running autoreconf -fi to avoid build
  failure on CentOS 6 due to older version of autoconf.
* Fri Oct  6 2017 bwiedemann@suse.com
- Add libpgm-5.2.122-reproducible.patch to make build reproducible
  (boo#1047218)
* Tue Feb  3 2015 jengelh@inai.de
- Update description and RPM groups
* Tue Jan 13 2015 mvyskocil@opensuse.org
- Fix package to conform openSUSE packaging standards
  * rename to openpgm to match with upstream and pkgconfig name
  * cleanup weird build systemd and use standard macros
  * cleanup description
  * move protocol description to devel file
  * drop static library
* Thu Jan  8 2015 mvyskocil@opensuse.org
- Update to 5.2.122 (no upstream changelog available)
* Thu Nov 22 2012 pascal.bleser@opensuse.org
- initial version (5.1.118)