File 96BoardsGPIO.spec of Package 96BoardsGPIO

#
# spec file for package 96BoardsGPIO
#
# Copyright (c) 2018 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/
#


%define         sover 0
Name:           96BoardsGPIO
Version:        0.0+git.20170225
Release:        0
Summary:        A library to make GPIO use across 96Boards uniform
License:        LGPL-2.1
Group:          Development/Libraries/C and C++
Url:            https://github.com/96boards/96BoardsGPIO
Source:         %{name}-%{version}.tar.xz
Patch0:         96BoardsGPIO-implicit-declaration.patch
BuildRequires:  autoconf
BuildRequires:  automake
BuildRequires:  libtool
BuildRequires:  pkgconfig
BuildRequires:  pkgconfig(libsoc)
BuildRequires:  pkgconfig(python3)
# Useful only on ARM, but x86_64 is faster for building/testing
ExclusiveArch:  aarch64 x86_64

%description
This is 96BoardGPIO library, which controls hardware via the GPIO on
the 96Boards family of boards that confirm to the CE spec. These
boards have the same Low Speed Expansion Connector, but different
SOCs have different GPIO pins for which different code needs to be
used to enable pins 23-34 on the connector.

The 96BoardGPIO library abstracts the info so that it can be told
what board is being used and what pins are to be used, and the
library does the rest.

%package -n lib%{name}%{sover}
Summary:        A library to make GPIO use across 96Boards uniform
Group:          System/Libraries
Recommends:     %{name}-common

%description -n lib%{name}%{sover}
This is 96BoardGPIO library, which controls hardware via the GPIO on
the 96Boards family of boards that confirm to the CE spec.

All such boards use the same pins for the Low Speed Expansion
Connector, so any expansion board can be plugged into any 96Board,
and it will connect electrically. However, different SoCs have
different GPIO pins. Even though, electrically, the pins are in the
same place, it takes different code to enable and use the GPIO on
pins 23-34.

The 96BoardGPIO library abstracts the info so that it can be told
what board is being used and what pins are to be used, and the
library does the rest.

This package contains shared library for %{name}.

%package -n %{name}-common
Summary:        Common files for %{name}
Group:          Development/Languages/C and C++

%description -n %{name}-common
This is 96BoardGPIO library, which controls hardware via the GPIO on
the 96Boards family of boards that confirm to the CE spec. These
boards have the same Low Speed Expansion Connector, but different
SOCs have different GPIO pins for which different code needs to be
used to enable pins 23-34 on the connector.

The 96BoardGPIO library abstracts the info so that it can be told
what board is being used and what pins are to be used, and the
library does the rest.

This package contains common config files for %{name}.

%package -n python3-%{name}
Summary:        Python bindings for %{name}
Group:          Development/Languages/Python
Requires:       lib%{name}%{sover} = %{version}

%description -n python3-%{name}
This is 96BoardGPIO library, which controls hardware via the GPIO on
the 96Boards family of boards that confirm to the CE spec. These
boards have the same Low Speed Expansion Connector, but different
SOCs have different GPIO pins for which different code needs to be
used to enable pins 23-34 on the connector.

The 96BoardGPIO library abstracts the info so that it can be told
what board is being used and what pins are to be used, and the
library does the rest.

This package contains python bindings for %{name}.

%package devel
Summary:        Development files for %{name}
Group:          Development/Languages/C and C++
Requires:       lib%{name}%{sover} = %{version}

%description devel
This is 96BoardGPIO library, which controls hardware via the GPIO on
the 96Boards family of boards that confirm to the CE spec. These
boards have the same Low Speed Expansion Connector, but different
SOCs have different GPIO pins for which different code needs to be
used to enable pins 23-34 on the connector.

The 96BoardGPIO library abstracts the info so that it can be told
what board is being used and what pins are to be used, and the
library does the rest.

This package contains development files for %{name}.

%prep
%setup -q
%patch0 -p1

%build
autoreconf -fiv
export PYTHON="python3"
%configure \
  --enable-static=no
make %{?_smp_mflags}

%install
%make_install
touch %{buildroot}%{_sysconfdir}/libsoc_gpio.conf
rm -rf %{buildroot}%{_libdir}/lib96BoardsGPIO.la

%post -n lib%{name}%{sover} -p /sbin/ldconfig
%postun -n lib%{name}%{sover} -p /sbin/ldconfig

%files -n lib%{name}%{sover}
%{_libdir}/lib%{name}.so.%{sover}*

%files -n %{name}-common
%doc LICENSE
%config %{_sysconfdir}/libsoc_gpio.conf
%dir %{_sysconfdir}/X11/Xsession.d
%config %{_sysconfdir}/X11/Xsession.d/pin_mappings.sh
%config %{_sysconfdir}/profile.d/pin_mappings.sh

%files devel
%{_includedir}/gpio.h
%{_libdir}/lib%{name}.so
%{_libdir}/pkgconfig/%{name}.pc

%files -n python3-%{name}
%{python3_sitelib}/*

%changelog
openSUSE Build Service is sponsored by