From bb8395ee803dcd2609f06123a4a2d658c9473643f2bc9593faa7ec298879b3ee Mon Sep 17 00:00:00 2001 From: Michal Vyskocil Date: Thu, 16 May 2013 07:49:21 +0000 Subject: [PATCH 1/3] - 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 --- libmicrohttpd-0.9.22.tar.gz | 3 --- libmicrohttpd-0.9.27.tar.gz | 3 +++ libmicrohttpd-0.9.27.tar.gz.sig | Bin 0 -> 72 bytes libmicrohttpd.changes | 30 ++++++++++++++++++++++ libmicrohttpd.keyring | 44 ++++++++++++++++++++++++++++++++ libmicrohttpd.spec | 38 +++++++++++++++------------ 6 files changed, 99 insertions(+), 19 deletions(-) delete mode 100644 libmicrohttpd-0.9.22.tar.gz create mode 100644 libmicrohttpd-0.9.27.tar.gz create mode 100644 libmicrohttpd-0.9.27.tar.gz.sig create mode 100644 libmicrohttpd.keyring diff --git a/libmicrohttpd-0.9.22.tar.gz b/libmicrohttpd-0.9.22.tar.gz deleted file mode 100644 index b2ef3fa..0000000 --- a/libmicrohttpd-0.9.22.tar.gz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:198daebb695eb6b97923200a26c143d38c11b582019927a75b2872ae4ec2f687 -size 829899 diff --git a/libmicrohttpd-0.9.27.tar.gz b/libmicrohttpd-0.9.27.tar.gz new file mode 100644 index 0000000..440502c --- /dev/null +++ b/libmicrohttpd-0.9.27.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d532edf64c3a9da472114c2d10fc94606e3b31f21b883ec2e796ab8478f7e9cb +size 879531 diff --git a/libmicrohttpd-0.9.27.tar.gz.sig b/libmicrohttpd-0.9.27.tar.gz.sig new file mode 100644 index 0000000000000000000000000000000000000000000000000000000000000000..209a191223c74ce4d4f0e271145855e45a6b0281f9b03a949450d1671decc2c8 GIT binary patch literal 72 zcmV-O0Jr~$Mg#y60ssaD0#SyfGyn<-5Wiq>i%3FjexybKpLNsTl$_16t0~PQb~ege eOF(Wi$pD@v5<;rbsNY^p!R1=j&+y#7t>oW@< literal 0 HcmV?d00001 diff --git a/libmicrohttpd.changes b/libmicrohttpd.changes index b4492c0..b9f74b2 100644 --- a/libmicrohttpd.changes +++ b/libmicrohttpd.changes @@ -1,3 +1,33 @@ +------------------------------------------------------------------- +Thu May 16 07:42:59 UTC 2013 - mvyskocil@suse.com + +- 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 + ------------------------------------------------------------------- Wed Oct 3 11:33:35 CEST 2012 - fcrozat@suse.com diff --git a/libmicrohttpd.keyring b/libmicrohttpd.keyring new file mode 100644 index 0000000..fb0f119 --- /dev/null +++ b/libmicrohttpd.keyring @@ -0,0 +1,44 @@ +pub 1024D/48426C7E 2006-12-18 +uid Christian Grothoff +sub 4096g/6433E483 2006-12-18 + +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: GnuPG v2.0.19 (GNU/Linux) + +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 +=b/hy +-----END PGP PUBLIC KEY BLOCK----- diff --git a/libmicrohttpd.spec b/libmicrohttpd.spec index c184318..7b3c672 100644 --- a/libmicrohttpd.spec +++ b/libmicrohttpd.spec @@ -1,7 +1,7 @@ # # spec file for package libmicrohttpd # -# Copyright (c) 2012 SUSE LINUX Products GmbH, Nuernberg, Germany. +# 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 @@ -20,10 +20,12 @@ %define soname 10 Name: libmicrohttpd -Version: 0.9.22 +Version: 0.9.27 Release: 0 Url: http://gnunet.org/libmicrohttpd/ -Source: http://ftpmirror.gnu.org/libmicrohttpd/%{name}-%{version}.tar.gz +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 @@ -32,6 +34,9 @@ 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 @@ -100,7 +105,7 @@ application, check it out. %package devel Requires: %{name}%{soname} = %{version} -PreReq: info +Requires(pre): info Summary: Small Embeddable HTTP Server Library Group: Development/Libraries/C and C++ @@ -132,6 +137,9 @@ application, check it out. %prep +%if 0%{?suse_version} >= 1230 +%gpg_verify %{SOURCE1} +%endif %setup -q %build @@ -143,12 +151,13 @@ application, check it out. %makeinstall find %{buildroot} -name "*.la" -delete -# Some tests fail due to some issue in gnutls -#check -#__make %{?_smp_mflags} check +%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} @@ -165,8 +174,6 @@ find %{buildroot} -name "*.la" -delete %install_info --info-dir=%{_infodir} %{_infodir}/libmicrohttpd-tutorial.info%{ext_info} %endif -%postun -n %{name}%{soname} -p /sbin/ldconfig - %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} @@ -188,18 +195,17 @@ test "%{buildroot}" != "/" && %__rm -rf "%{buildroot}" %files -n %{name}%{soname} %defattr(-,root,root) -%{_libdir}/libmicrohttpd.so.%{soname} -%{_libdir}/libmicrohttpd.so.%{soname}.* +%{_libdir}/%{name}.so.%{soname} +%{_libdir}/%{name}.so.%{soname}.* %files devel %defattr(-,root,root) %doc ChangeLog %{_includedir}/microhttpd.h -%{_libdir}/libmicrohttpd.so -%{_libdir}/pkgconfig/libmicrohttpd.pc -%{_infodir}/microhttpd.info* -%{_infodir}/microhttpd-tutorial.info* -%{_mandir}/man3/libmicrohttpd.3* +%{_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} From ad1f03f3f9c4f4748c86a02feb72b969456ba85d1327a984363eb4783f405bf4 Mon Sep 17 00:00:00 2001 From: Michal Vyskocil Date: Thu, 6 Jun 2013 06:50:50 +0000 Subject: [PATCH 2/3] Accepting request 177792 from home:jengelh:branches:devel:libraries:c_c++ - More robust make install call - Remove redundant %clean section - Requires(pre) is useless without a %pre script OBS-URL: https://build.opensuse.org/request/show/177792 OBS-URL: https://build.opensuse.org/package/show/devel:libraries:c_c++/libmicrohttpd?expand=0&rev=20 --- libmicrohttpd.changes | 7 +++++++ libmicrohttpd.spec | 17 +++++++---------- 2 files changed, 14 insertions(+), 10 deletions(-) diff --git a/libmicrohttpd.changes b/libmicrohttpd.changes index b9f74b2..091164e 100644 --- a/libmicrohttpd.changes +++ b/libmicrohttpd.changes @@ -1,3 +1,10 @@ +------------------------------------------------------------------- +Wed Jun 5 16:42:38 UTC 2013 - jengelh@inai.de + +- More robust make install call +- Remove redundant %clean section +- Requires(pre) is useless without a %pre script + ------------------------------------------------------------------- Thu May 16 07:42:59 UTC 2013 - mvyskocil@suse.com diff --git a/libmicrohttpd.spec b/libmicrohttpd.spec index 7b3c672..e484e01 100644 --- a/libmicrohttpd.spec +++ b/libmicrohttpd.spec @@ -22,7 +22,11 @@ Name: libmicrohttpd Version: 0.9.27 Release: 0 +Summary: Small Embeddable HTTP Server Library +License: LGPL-2.1+ +Group: Productivity/Networking/Web/Servers 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 @@ -30,7 +34,6 @@ 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 @@ -42,10 +45,6 @@ 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 @@ -105,7 +104,8 @@ application, check it out. %package devel Requires: %{name}%{soname} = %{version} -Requires(pre): info +Requires(post): info +Requires(postun): info Summary: Small Embeddable HTTP Server Library Group: Development/Libraries/C and C++ @@ -148,7 +148,7 @@ application, check it out. %__make %{?_smp_mflags} %install -%makeinstall +make install DESTDIR="%buildroot" find %{buildroot} -name "*.la" -delete %check @@ -190,9 +190,6 @@ find %{buildroot} -name "*.la" -delete %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} From 40ffa6c8312741912c5a3ec0783c209f7af80ec2c6a381a3142358d9114f9ebe Mon Sep 17 00:00:00 2001 From: Michal Vyskocil Date: Thu, 6 Jun 2013 08:16:27 +0000 Subject: [PATCH 3/3] - drop test_tls_options if build is in OBS libmicrohttpd-drop-test_tls_options.patch OBS-URL: https://build.opensuse.org/package/show/devel:libraries:c_c++/libmicrohttpd?expand=0&rev=21 --- libmicrohttpd-drop-test_tls_options.patch | 41 +++++++++++++++++++++++ libmicrohttpd.changes | 6 ++++ libmicrohttpd.spec | 7 ++++ 3 files changed, 54 insertions(+) create mode 100644 libmicrohttpd-drop-test_tls_options.patch diff --git a/libmicrohttpd-drop-test_tls_options.patch b/libmicrohttpd-drop-test_tls_options.patch new file mode 100644 index 0000000..cb0fe80 --- /dev/null +++ b/libmicrohttpd-drop-test_tls_options.patch @@ -0,0 +1,41 @@ +From: Michal Vyskocil +Subject: Drop test_tls_options + +test_tls_options fails in OBS, but not in local build. So lets skip it from OBS +builds. + +/usr/bin/make check-TESTS +make[5]: Entering directory `/home/abuild/rpmbuild/BUILD/libmicrohttpd-0.9.27/src/testcurl/https' +curl version: libcurl/7.30.0 OpenSSL/1.0.1e zlib/1.2.8 libidn/1.25 libssh2/1.4.3 +The following handshake should fail (and print an error message)... +curl_easy_perform failed: `SSL connect error' +Fatal error in GNU libmicrohttpd daemon.c:2717: Failed to join a thread + +/bin/sh: line 5: 15991 Aborted ${dir}$tst +FAIL: test_tls_options + +Index: libmicrohttpd-0.9.27/src/testcurl/https/Makefile.am +=================================================================== +--- libmicrohttpd-0.9.27.orig/src/testcurl/https/Makefile.am ++++ libmicrohttpd-0.9.27/src/testcurl/https/Makefile.am +@@ -29,7 +29,6 @@ check_PROGRAMS = \ + EXTRA_DIST = cert.pem key.pem tls_test_keys.h tls_test_common.h + + TESTS = \ +- test_tls_options \ + test_https_multi_daemon \ + test_https_get \ + test_https_get_select \ +Index: libmicrohttpd-0.9.27/src/testcurl/https/Makefile.in +=================================================================== +--- libmicrohttpd-0.9.27.orig/src/testcurl/https/Makefile.in ++++ libmicrohttpd-0.9.27/src/testcurl/https/Makefile.in +@@ -58,7 +58,7 @@ check_PROGRAMS = test_tls_options$(EXEEX + test_https_get_parallel_threads$(EXEEXT) \ + test_https_session_info$(EXEEXT) test_https_time_out$(EXEEXT) \ + test_empty_response$(EXEEXT) +-TESTS = test_tls_options$(EXEEXT) test_https_multi_daemon$(EXEEXT) \ ++TESTS = test_https_multi_daemon$(EXEEXT) \ + test_https_get$(EXEEXT) test_https_get_select$(EXEEXT) \ + test_https_get_parallel$(EXEEXT) \ + test_https_get_parallel_threads$(EXEEXT) \ diff --git a/libmicrohttpd.changes b/libmicrohttpd.changes index 091164e..73e9a53 100644 --- a/libmicrohttpd.changes +++ b/libmicrohttpd.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Thu Jun 6 08:15:30 UTC 2013 - mvyskocil@suse.com + +- drop test_tls_options if build is in OBS + libmicrohttpd-drop-test_tls_options.patch + ------------------------------------------------------------------- Wed Jun 5 16:42:38 UTC 2013 - jengelh@inai.de diff --git a/libmicrohttpd.spec b/libmicrohttpd.spec index e484e01..6f579fe 100644 --- a/libmicrohttpd.spec +++ b/libmicrohttpd.spec @@ -30,6 +30,8 @@ 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 +#PATCH-FIX-OPENSUSE: test_tls_options fails when running in OBS, so lets drop that one +Patch0: libmicrohttpd-drop-test_tls_options.patch BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildRequires: libcurl-devel BuildRequires: libgcrypt-devel >= 1.2.4 @@ -142,6 +144,11 @@ application, check it out. %endif %setup -q +#XXX: test fail inside OBS only +%if 0%{?opensuse_bs} +%patch0 -p1 +%endif + %build %configure --disable-static \ --enable-curl