# # spec file for package libmicrohttpd # # Copyright (c) 2015 SUSE LINUX 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/ # %global libmicrohttpd libmicrohttpd12 %global libmicrospdy libmicrospdy0 %if 0%{?suse_version} > 1310 && !0%{?sles_version} # libmicrosdpy requires openssl >= 1.0.1 # and spdylay %define enable_libmicrospdy 1 %endif Name: libmicrohttpd Version: 0.9.46 Release: 0 Summary: Small Embeddable HTTP Server Library License: LGPL-2.1+ Group: Productivity/Networking/Web/Servers Url: https://www.gnu.org/software/libmicrohttpd/ Source0: http://ftp.gnu.org/gnu/libmicrohttpd/%{name}-%{version}.tar.gz Source1: http://ftp.gnu.org/gnu/libmicrohttpd/%{name}-%{version}.tar.gz.sig Source2: libmicrohttpd.keyring # PATCH-WORKAROUND-OPENSUSE: the threads have a problem deadlocking (in OBS) Patch1: disable-stalling-test.patch Patch2: libmicrohttpd_test_data.patch BuildRequires: libcurl-devel BuildRequires: libgcrypt-devel >= 1.2.4 BuildRequires: libgnutls-devel BuildRequires: libtasn1-devel BuildRequires: libtool BuildRequires: openssl-devel BuildRequires: pkg-config BuildRoot: %{_tmppath}/%{name}-%{version}-build %if 0%{?enable_libmicrospdy} BuildRequires: spdylay-devel %endif %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 %{libmicrohttpd} Summary: Small embeddable http server library Group: System/libraries %description -n %{libmicrohttpd} Shared library for %{name} (%{summary}). %if 0%{?enable_libmicrospdy} %package -n %{libmicrospdy} Summary: Small embeddable http server library Group: System/libraries %description -n %{libmicrospdy} Shared library for libmicrospdy (%{summary}). WARNING: Additionally, a second, still very experimental library is provided for SPDY (the base for HTTP 2.0) support. libmicrospdy provides a compact API and implementation of SPDY server. libmicrospdy currently only implements partially version 3 of SPDY. %endif %package devel Summary: Small Embeddable HTTP Server Library Group: Development/Libraries/C and C++ Requires: %{libmicrohttpd} = %{version} Requires: libgnutls-devel Requires(post): info Requires(preun): info %description devel Headers, pkg-config files, so link and other development files for %{name} (%{summary}). %if 0%{?enable_libmicrospdy} %package -n libmicrospdy-devel Summary: Small Embeddable HTTP Server Library Group: Development/Libraries/C and C++ Requires: %{libmicrospdy} = %{version} %description -n libmicrospdy-devel Headers for libmicrospdy (%{summary}). %package -n microspdy2http Summary: Proxy translated SPDY requests to https server Group: System/Libraries %description -n microspdy2http Translates incoming SPDY requests to http server on localhost. * Uses libcurl. * No error handling for curl requests. %endif %prep %setup -q %patch1 -p1 %patch2 -p1 %build %configure \ --enable-bauth \ --enable-dauth \ --enable-epoll \ --enable-messages \ --enable-postprocessor \ --enable-https \ --disable-static \ --disable-examples \ %if 0%{?enable_libmicrospdy} --enable-spdy \ %else --disable-spdy \ %endif --enable-curl make %{?_smp_mflags} %install make DESTDIR=%{buildroot} install %{?_smp_mflags} find %{buildroot} -type f -name "*.la" -delete -print %check # linking fails with spdy enabled #make -j1 check %post -n %{libmicrohttpd} -p /sbin/ldconfig %postun -n %{libmicrohttpd} -p /sbin/ldconfig %if 0%{?enable_libmicrospdy} %post -n %{libmicrospdy} -p /sbin/ldconfig %postun -n %{libmicrospdy} -p /sbin/ldconfig %endif %post devel %install_info --info-dir=%{_infodir} %{_infodir}/libmicrohttpd.info%{ext_info} %install_info --info-dir=%{_infodir} %{_infodir}/libmicrohttpd-tutorial.info%{ext_info} %preun devel %install_info_delete --info-dir=%{_infodir} %{_infodir}/libmicrohttpd.info%{ext_info} %install_info_delete --info-dir=%{_infodir} %{_infodir}/libmicrohttpd-tutorial.info%{ext_info} %files -n %{libmicrohttpd} %defattr(-,root,root) %{_libdir}/%{name}.so.* %files devel %defattr(-,root,root) %doc ChangeLog %{_includedir}/microhttpd.h %{_libdir}/%{name}.so %{_libdir}/pkgconfig/%{name}.pc %{_infodir}/%{name}*.info* %{_mandir}/man3/%{name}.3* %if 0%{?enable_libmicrospdy} %files -n %{libmicrospdy} %defattr(-,root,root) %{_libdir}/libmicrospdy.so.* %files -n libmicrospdy-devel %defattr(-,root,root) %{_includedir}/microspdy.h %{_libdir}/libmicrospdy.so %{_libdir}/pkgconfig/libmicrospdy.pc %files -n microspdy2http %defattr(-,root,root) %attr(0755,root,root) %{_bindir}/microspdy2http %endif %changelog