1
0
forked from pool/libmicrohttpd
libmicrohttpd/libmicrohttpd.spec
Michal Vyskocil bb8395ee80 - Update to 0.9.27
+ performance improvements for POST processing
  + new API call to reduce the number of select calls (if in "external"
    select mode)
  + new function to allow applications to stop MHD from processing new
    incoming connections while finishing ongoing requests
  + fixes an initialization problem on some platforms
  + fixes bug in the postprocessor's URL parser.
  + SSL connections are no longer dropped if the system uptime is less
    than the connection timeout
  + allows creating responses with zero bytes using
    MHD_create_response_from_callback.
  + few "const" statements have been added to allow keeping more static
    strings in ROM.
  + post processor now tolerates uploads which don't contain "\r\n" and
    also returns keys which don't have a matching value
  + fixes the loss of a parameter in processing POST data from IE8 and
    Chrome. It automatically sets a "Connection: close" header if the
    client requests the connection to be closed. Finally, given both
    'chunked' encoding and 'content-length', MHD now ignores the
    'content-length' header as per the RFC
  + adds support for building libmicrohttpd for Android
  + fixes an issue with data in TLS buffers sometimes not being completely
    drained if there was no activity on the socket.
- reenabled tests and moved to %check
- add source verification using gpg

OBS-URL: https://build.opensuse.org/package/show/devel:libraries:c_c++/libmicrohttpd?expand=0&rev=19
2013-05-16 07:49:21 +00:00

216 lines
7.8 KiB
RPMSpec

#
# spec file for package libmicrohttpd
#
# Copyright (c) 2013 SUSE LINUX Products GmbH, Nuernberg, Germany.
# Copyright (c) 2010,2011,2012 Stephan Kleine
#
# 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 soname 10
Name: libmicrohttpd
Version: 0.9.27
Release: 0
Url: http://gnunet.org/libmicrohttpd/
Source0: http://ftpmirror.gnu.org/libmicrohttpd/%{name}-%{version}.tar.gz
Source1: http://ftpmirror.gnu.org/libmicrohttpd/%{name}-%{version}.tar.gz.sig
Source2: libmicrohttpd.keyring
BuildRoot: %{_tmppath}/%{name}-%{version}-build
BuildRequires: libcurl-devel
BuildRequires: libgcrypt-devel >= 1.2.4
BuildRequires: libtasn1-devel
%if 0%{?suse_version}
BuildRequires: libgnutls-devel
BuildRequires: pkg-config
%if 0%{?suse_version} >= 1230
BuildRequires: gpg-offline
%endif
%else
BuildRequires: gnutls-devel
BuildRequires: pkgconfig
%endif
Summary: Small Embeddable HTTP Server Library
License: LGPL-2.1+
Group: Productivity/Networking/Web/Servers
%description
GNU libmicrohttpd is a small C library that is supposed to make it easy to run
an HTTP server as part of another application. GNU libmicrohttpd is free software
and part of the GNU project. Key features that distinguish libmicrohttpd from
other projects are:
* C library: fast and small
* API is simple, expressive and fully reentrant
* Implementation is http 1.1 compliant
* HTTP server can listen on multiple ports
* Support for IPv6
* Support for incremental processing of POST data
* Creates binary of only 30k (without TLS/SSL support)
* Three different threading models
* Supported platforms include GNU/Linux, FreeBSD, OpenBSD, NetBSD, OS X, W32,
Symbian and z/OS
* Optional support for SSL3 and TLS (requires libgcrypt)
libmicrohttpd was started because the author needed an easy way to add a concurrent
HTTP server to other projects. Existing alternatives were either non-free, not
reentrant, standalone, of terrible code quality or a combination thereof. Do not
use libmicrohttpd if you are looking for a standalone http server, there are many
other projects out there that provide that kind of functionality already. However,
if you want to be able to serve simple WWW pages from within your C or C++
application, check it out.
%package -n %{name}%{soname}
Summary: Small Embeddable HTTP Server Library
Group: System/Libraries
%description -n %{name}%{soname}
GNU libmicrohttpd is a small C library that is supposed to make it easy to run
an HTTP server as part of another application. GNU libmicrohttpd is free software
and part of the GNU project. Key features that distinguish libmicrohttpd from
other projects are:
* C library: fast and small
* API is simple, expressive and fully reentrant
* Implementation is http 1.1 compliant
* HTTP server can listen on multiple ports
* Support for IPv6
* Support for incremental processing of POST data
* Creates binary of only 30k (without TLS/SSL support)
* Three different threading models
* Supported platforms include GNU/Linux, FreeBSD, OpenBSD, NetBSD, OS X, W32,
Symbian and z/OS
* Optional support for SSL3 and TLS (requires libgcrypt)
libmicrohttpd was started because the author needed an easy way to add a concurrent
HTTP server to other projects. Existing alternatives were either non-free, not
reentrant, standalone, of terrible code quality or a combination thereof. Do not
use libmicrohttpd if you are looking for a standalone http server, there are many
other projects out there that provide that kind of functionality already. However,
if you want to be able to serve simple WWW pages from within your C or C++
application, check it out.
%package devel
Requires: %{name}%{soname} = %{version}
Requires(pre): info
Summary: Small Embeddable HTTP Server Library
Group: Development/Libraries/C and C++
%description devel
GNU libmicrohttpd is a small C library that is supposed to make it easy to run
an HTTP server as part of another application. GNU libmicrohttpd is free software
and part of the GNU project. Key features that distinguish libmicrohttpd from
other projects are:
* C library: fast and small
* API is simple, expressive and fully reentrant
* Implementation is http 1.1 compliant
* HTTP server can listen on multiple ports
* Support for IPv6
* Support for incremental processing of POST data
* Creates binary of only 30k (without TLS/SSL support)
* Three different threading models
* Supported platforms include GNU/Linux, FreeBSD, OpenBSD, NetBSD, OS X, W32,
Symbian and z/OS
* Optional support for SSL3 and TLS (requires libgcrypt)
libmicrohttpd was started because the author needed an easy way to add a concurrent
HTTP server to other projects. Existing alternatives were either non-free, not
reentrant, standalone, of terrible code quality or a combination thereof. Do not
use libmicrohttpd if you are looking for a standalone http server, there are many
other projects out there that provide that kind of functionality already. However,
if you want to be able to serve simple WWW pages from within your C or C++
application, check it out.
%prep
%if 0%{?suse_version} >= 1230
%gpg_verify %{SOURCE1}
%endif
%setup -q
%build
%configure --disable-static \
--enable-curl
%__make %{?_smp_mflags}
%install
%makeinstall
find %{buildroot} -name "*.la" -delete
%check
%__make %{?_smp_mflags} check
%post -n %{name}%{soname} -p /sbin/ldconfig
%postun -n %{name}%{soname} -p /sbin/ldconfig
%post devel
%if 0%{?fedora_version}
/sbin/install-info --info-dir=%{_infodir} --info-file=%{_infodir}/microhttpd.info%{ext_info}
/sbin/install-info --info-dir=%{_infodir} --info-file=%{_infodir}/microhttpd-tutorial.info%{ext_info}
%endif
%if 0%{?mandriva_version}
%_install_info libmicrohttpd.info
%_install_info libmicrohttpd-tutorial.info
%endif
%if 0%{?suse_version}
%install_info --info-dir=%{_infodir} %{_infodir}/libmicrohttpd.info%{ext_info}
%install_info --info-dir=%{_infodir} %{_infodir}/libmicrohttpd-tutorial.info%{ext_info}
%endif
%postun devel
%if 0%{?fedora_version} || 0%{?scientificlinux_version} || 0%{?centos_version}
/sbin/install-info --delete --info-dir=%{_infodir} --info-file=%{_infodir}/microhttpd.info%{ext_info}
/sbin/install-info --delete --info-dir=%{_infodir} --info-file=%{_infodir}/microhttpd-tutorial.info%{ext_info}
%endif
%if 0%{?mandriva_version}
%_remove_install_info libmicrohttpd.info
%_remove_install_info libmicrohttpd-tutorial.info
%endif
%if 0%{?suse_version}
%install_info_delete --info-dir=%{_infodir} %{_infodir}/libmicrohttpd.info%{ext_info}
%install_info_delete --info-dir=%{_infodir} %{_infodir}/libmicrohttpd-tutorial.info%{ext_info}
%endif
%clean
test "%{buildroot}" != "/" && %__rm -rf "%{buildroot}"
%files -n %{name}%{soname}
%defattr(-,root,root)
%{_libdir}/%{name}.so.%{soname}
%{_libdir}/%{name}.so.%{soname}.*
%files devel
%defattr(-,root,root)
%doc ChangeLog
%{_includedir}/microhttpd.h
%{_libdir}/%{name}.so
%{_libdir}/pkgconfig/%{name}.pc
%{_infodir}/%{name}*.info*
%{_mandir}/man3/%{name}.3*
# Do NOT delete this cause I need it for Fedora & Mandriva too!
%if 0%{?fedora_version} || 0%{?scientificlinux_version} || 0%{?centos_version}
%exclude %{_infodir}/dir
%endif
%changelog