#
# spec file for package libiec61883
#
# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany.
#
# 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 http://bugs.opensuse.org/
#


Name:           libiec61883
Version:        1.2.0
Release:        8.20
Summary:        Implementation of IEC 61883
License:        GPL-2.0+ and LGPL-2.1+
Group:          Hardware/Other
Url:            https://ieee1394.wiki.kernel.org/index.php/Main_Page

#Git-Web:	https://git.kernel.org/cgit/libs/ieee1394/libiec61883.git
#Git-Clone:	git://git.kernel.org/pub/scm/libs/ieee1394/libiec61883
Source:         https://www.kernel.org/pub/linux/libs/ieee1394/%name-%version.tar.xz
Source2:        https://www.kernel.org/pub/linux/libs/ieee1394/%name-%version.tar.sign
Source3:        %name.keyring
Source4:        baselibs.conf
BuildRequires:  libraw1394-devel
BuildRequires:  libtool
BuildRequires:  pkgconf-pkg-config
BuildRequires:  xz
BuildRoot:      %{_tmppath}/%{name}-%{version}-build

%description
This library is an implementation of IEC 61883, part 1 (CIP, plug
registers, and CMP), part 2 (DV-SD), part 4 (MPEG2-TS), and part 6
(AMDTP). Outside of IIDC, nearly all FireWire multimedia devices use
IEC 61883 protocols.

%package -n libiec61883-0
Summary:        Library implementing IEC 61883
License:        LGPL-2.1+
Group:          System/Libraries

%description -n libiec61883-0
This library is an implementation of IEC 61883, part 1 (CIP, plug
registers, and CMP), part 2 (DV-SD), part 4 (MPEG2-TS), and part 6
(AMDTP). Outside of IIDC, nearly all FireWire multimedia devices use
IEC 61883 protocols.

The libiec61883 library provides a higher level API for streaming DV,
MPEG-2 and audio over Linux IEEE 1394. This includes both reception and
transmission. It uses the new "rawiso" API of libraw1394, which
transparently provides mmap-ed DMA for efficient data transfer. It also
represents the third generation of I/O technology for Linux 1394 for
these media types thereby removing the complexities of additional
kernel modules, /dev nodes, and procfs. It also consolidates features
for plug control registers and connection management that previously
existed in experimental form in an unreleased version of libavc1394.

%package devel
Summary:        Development files for libiec61883
License:        LGPL-2.1+
Group:          Development/Libraries/C and C++
Requires:       libiec61883-0 = %version
%if 0%{?suse_version} && 0%{?suse_version} < 1140
# already autoderived from libiec61883.pc in new-enough rpm
Requires:       libraw1394-devel
%endif

%description devel
This library is an implementation of IEC 61883, part 1 (CIP, plug
registers, and CMP), part 2 (DV-SD), part 4 (MPEG2-TS), and part 6
(AMDTP). Outside of IIDC, nearly all FireWire multimedia devices use
IEC 61883 protocols.

The libiec61883 library provides a higher level API for streaming DV,
MPEG-2 and audio over Linux IEEE 1394.

%package tools
Summary:        Command-line utilities for IEC 61883 devices
License:        GPL-2.0+ and LGPL-2.1+
Group:          Hardware/Other
# added on 2015-11-14
Obsoletes:      %name < %version-%release
Provides:       %name = %version-%release

%description tools
Utilities to inspect and control IEC 61883 hardware.

%prep
%setup -q

%build
export CFLAGS="%optflags -fno-strict-aliasing"
%configure --disable-static
make %{?_smp_mflags} all

%install
%make_install
libtool --mode=install install -m 755 examples/test-mpeg2 %{buildroot}%{_bindir}
rm -f %{buildroot}%{_libdir}/*.la

%post   -n libiec61883-0 -p /sbin/ldconfig
%postun -n libiec61883-0 -p /sbin/ldconfig

%files tools
%defattr(-,root,root)
%doc AUTHORS NEWS README
%{_bindir}/*
%doc %{_mandir}/man1/*%{?ext_man}

%files -n libiec61883-0
%defattr(-,root,root)
%doc COPYING*
%{_libdir}/libiec61883.so.*

%files devel
%defattr(-,root,root)
%{_includedir}/libiec61883
%{_libdir}/lib*.so
%{_libdir}/pkgconfig/*.pc

%changelog
* Sat Nov 14 2015 jengelh@inai.de
- Use new homepage URL, URL for source archive location, and do
  gpgkey verification. Set RPM groups to more appropriate values.
- Heed shared library packaging guideline, spell out license
  differences.
- Remove unused --with-pic; we build no static libs, and the
  shared library always gets it implicitly anyway.
- Name the utility package -tools as with many other pkgs.
* Wed Jan  2 2013 p.drouand@gmail.com
- Fix a typo mistake on devel Requires package
* Sat Dec 29 2012 p.drouand@gmail.com
- Update to 1.2.0 version:
  * Behavior changes of the backend to firewire-core:
  - The isochronous reception buffer is now mapped read/writable rather
    than read-only. The raw1394 backend already maps the buffer
    read/writable too. Note that writing into the buffer will go
    wrong on architectures without cache-coherent DMA if the CPU
    and the OHCI write within the same cacheline region, so use this
    feature with caution.
  - Decrease memory footprint of IR and IT buffers by avoiding some internal rounding up of the buffer size.
  * New APIs in <libraw1394/raw1394.h>:
  - raw1394_add_config_rom_descriptor():
  - Add contents to the Configuration ROM of the local node(s). At
    runtime, this API is only available if running on top of firewire-core.
    It could probably also be implemented with the raw1394 kernel driver if
    anybody cared.
  - raw1394_remove_config_rom_descriptor():
  - Counterpart to raw1394_add_config_rom_descriptor().
  - raw1394_read_cycle_timer_and_clock():
  - Like the existing raw1394_read_cycle_timer(), but lets the caller choose
    between CLOCK_REALTIME (which the former call is always using),
    CLOCK_MONOTONIC, or CLOCK_MONOTONIC_RAW.
    For example, this enables libffado's audio streaming to run undisturbed
    by resets of CLOCK_REALTIME.
    At runtime, this call requires firewire-core underneath.
  - raw1394_get_speed():
  - Returns the speed code of the maximum possible transmission speed between
    a given node and the local node. This takes maximum speeds of all participating
    PHYs and the two links into account. This can be used to configure the speed
    of isochronous streams.
  - At runtime, this call requires firewire-core underneath.
  - enum raw1394_iso_speed was extended by RAW1394_ISO_SPEED_800, _1600, and _3200.
  * New APIs in <libraw1394/ieee1394.h>:
  - Added preprocessor constants L1394_SPEED_BETA, L1394_SPEED_800, _1600, and _3200.
  * testlibraw1394:
  - Added unit tests of the new APIs.
- Removed patchs: fixed on upstream release:
  * libiec61883-1.1.0-lfs.patch
* Sat Nov 19 2011 coolo@suse.com
- remove source URL, which is no longer valid
* Sat Nov 19 2011 coolo@suse.com
- add libtool as buildrequire to avoid implicit dependency
* Fri Dec 18 2009 jengelh@medozas.de
- add baselibs.conf as a source
* Fri Sep 12 2008 crrodriguez@suse.de
- remove "la" files and static libraries
- use AC_SYS_LARGEFILE to detect the need of _FILE_OFFSET_BITS=64
* Thu Apr 10 2008 ro@suse.de
- added baselibs.conf file to build xxbit packages
  for multilib support
* Sun Jan 27 2008 aj@suse.de
- Do not install libtool wrapper.
* Tue Jan 30 2007 jw@suse.de
- fixed dependencies, support files > 2GB.
* Fri Jan 26 2007 ro@suse.de
- added test-mpeg2 to filelist
* Sun Oct 15 2006 ro@suse.de
- created package (version 1.1.0)