File waltham.spec of Package waltham

#
# spec file for package waltham
#
# Copyright (c) 2016 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 lname	libwaltham0
Name:           waltham
Version:        0.1.0
Release:        0
Summary:        Wayland-style network IPC library
License:        MIT
Group:          Development/Libraries/C and C++
Url:            https://github.com/waltham/waltham

Source:         https://github.com/waltham/waltham/releases/download/v%version/%name-%version.tar.xz
#git#BuildRequires:  autoconf >= 2.64
#git#BuildRequires:  automake >= 1.11
#git#BuildRequires:  libtool >= 2.2
BuildRequires:  python-xml
BuildRequires:  pkg-config
BuildRequires:  xz
%define with_doc 0
%if 0%with_doc
BuildRequires:  doxygen
BuildRequires:  graphviz-gnome
BuildRequires:  xmlto
%endif
BuildRoot:      %{_tmppath}/%{name}-%{version}-build

%description
Waltham is a network IPC library designed to resemble Wayland both
protocol and protocol-API wise. Protocol is described in XML files. A
generator translates XML into C code at build time.

%package -n %lname
Summary:        Wayland-style network IPC library
Group:          System/Libraries

%description -n %lname
Waltham is a network IPC library designed to resemble Wayland both
protocol and protocol-API wise. Protocol is described in XML files. A
generator translates XML into C code at build time.

The major differences from Wayland to Waltham are:
* Waltham uses TCP sockets for communication
* Waltham cannot send file descriptors
* Waltham API is minimal and symmetric between server and client
  sides
* Waltham does not provide an event loop implementation
* the "registry" implementation is left out of the library, only the
  interface is provided
* no multi-threading support for sharing objects between threads

%package devel
Summary:        Development files for the Waltham network IPC library
Group:          Development/Libraries/C and C++
Requires:       %lname = %version

%description devel
Waltham is a network IPC library designed to resemble Wayland both
protocol and protocol-API wise. Protocol is described in XML files. A
generator translates XML into C code at build time.

One designs Waltham protocols exactly the same way as Wayland
extensions, you just miss the file descriptor argument type. The
protocol framework is asynchronous and object-oriented, just like
Wayland.

%package doc
Summary:        Waltham development documentation
Group:          Documentation/HTML
BuildArch:      noarch

%description doc
This subpackage contains the documentation to Waltham.

%prep
%setup -q

%build
if [ ! -e configure ]; then
	autoreconf -fi
fi;
%configure --disable-static --includedir="%_includedir/%name" \
%if %with_doc
	--docdir="%_defaultdocdir/%name"
%else
	--disable-documentation
%endif
make %{?_smp_mflags}

%install
make DESTDIR="%buildroot" install %{?_smp_mflags}
find "%buildroot" -type f -name "*.la" -delete -print

%check
make check

%post   -n %lname -p /sbin/ldconfig
%postun -n %lname -p /sbin/ldconfig

%files -n %lname
%defattr(-,root,root)
%_libdir/libwaltham.so.0*

%files devel
%defattr(-,root,root)
%_includedir/%name/
%_libdir/libwaltham*.so
%_libdir/pkgconfig/*.pc

%if %with_doc
%files doc
%defattr(-,root,root)
%_mandir/man3/w*.3*
%_docdir/%name/
%endif

%changelog
openSUSE Build Service is sponsored by