diff mbox series

libhttpserver: new package

Message ID 20190923115237.4524-1-stephan.hoffmann@ext.grandcentrix.net
State Superseded
Headers show
Series libhttpserver: new package | expand

Commit Message

Stephan Hoffmann Sept. 23, 2019, 11:52 a.m. UTC
From: Stephan Hoffmann <stephan.hoffmann@ext.grandcentrix.net>

libhttpserver is a C++ library for building high performance RESTfuls
web servers. libhttpserver is built upon libmicrohttpd to provide a
simple API for developers to create HTTP services in C++.

The installed pkg-config file contains an error, thus we include
the patch 458d16b922304006fe418897044e14b0544a127a from the upstream
repo that is not yet released.

Signed-off-by: Stephan Hoffmann <stephan.hoffmann@ext.grandcentrix.net>
---
 package/Config.in                             |  1 +
 ...-expectations-in-libhttpserver.pc.in.patch | 24 +++++++++++++++++++
 package/libhttpserver/Config.in               | 14 +++++++++++
 package/libhttpserver/libhttpserver.hash      |  2 ++
 package/libhttpserver/libhttpserver.mk        | 16 +++++++++++++
 5 files changed, 57 insertions(+)
 create mode 100644 package/libhttpserver/0001-Fix-lib-expectations-in-libhttpserver.pc.in.patch
 create mode 100644 package/libhttpserver/Config.in
 create mode 100644 package/libhttpserver/libhttpserver.hash
 create mode 100644 package/libhttpserver/libhttpserver.mk

Comments

Thomas Petazzoni Sept. 23, 2019, 1:56 p.m. UTC | #1
Hello Stephan,

Thanks for this contribution! It looks mostly good, but I have a few
comments below.

On Mon, 23 Sep 2019 13:52:37 +0200
<stephan.hoffmann@ext.grandcentrix.net> wrote:

> From: Stephan Hoffmann <stephan.hoffmann@ext.grandcentrix.net>
> 
> libhttpserver is a C++ library for building high performance RESTfuls
> web servers. libhttpserver is built upon libmicrohttpd to provide a
> simple API for developers to create HTTP services in C++.
> 
> The installed pkg-config file contains an error, thus we include
> the patch 458d16b922304006fe418897044e14b0544a127a from the upstream
> repo that is not yet released.
> 
> Signed-off-by: Stephan Hoffmann <stephan.hoffmann@ext.grandcentrix.net>
> ---
>  package/Config.in                             |  1 +
>  ...-expectations-in-libhttpserver.pc.in.patch | 24 +++++++++++++++++++
>  package/libhttpserver/Config.in               | 14 +++++++++++
>  package/libhttpserver/libhttpserver.hash      |  2 ++
>  package/libhttpserver/libhttpserver.mk        | 16 +++++++++++++
>  5 files changed, 57 insertions(+)

Could you add an entry in the DEVELOPERS file for this package? This
way, you'll receive notifications about build issues of this package,
as well as when a new upstream release is available.

> diff --git a/package/libhttpserver/0001-Fix-lib-expectations-in-libhttpserver.pc.in.patch b/package/libhttpserver/0001-Fix-lib-expectations-in-libhttpserver.pc.in.patch
> new file mode 100644
> index 0000000000..e0ca5575dc
> --- /dev/null
> +++ b/package/libhttpserver/0001-Fix-lib-expectations-in-libhttpserver.pc.in.patch
> @@ -0,0 +1,24 @@
> +From 2bc7cf0beb6b8a124c1c7360c4fb5279e8763f07 Mon Sep 17 00:00:00 2001
> +From: Sebastiano Merlino <electrictwister2000@gmail.com>
> +Date: Sat, 8 Jun 2019 15:36:06 -0700
> +Subject: [PATCH] Fix lib expectations in libhttpserver.pc.in
> +

We need a Signed-off-by line (at least from you) in this patch. Also,
if it comes from upstream, a link to the upstream commit is good to
have.


> diff --git a/package/libhttpserver/Config.in b/package/libhttpserver/Config.in
> new file mode 100644
> index 0000000000..526ca7c41e
> --- /dev/null
> +++ b/package/libhttpserver/Config.in
> @@ -0,0 +1,14 @@
> +config BR2_PACKAGE_LIBHTTPSERVER
> +	bool "libhttpserver"
> +	depends on BR2_INSTALL_LIBSTDCPP
> +	select BR2_PACKAGE_LIBMICROHTTPD

Since you select BR2_PACKAGE_LIBMICROHTTPD, you need to replicate the
"depends on" of BR2_PACKAGE_LIBMICROHTTPD, i.e
BR2_TOOLCHAIN_HAS_THREADS.

> +	help
> +	  libhttpserver is a C++ library for building high performance
> +	  RESTfuls web servers. libhttpserver is built upon
> +	  libmicrohttpd to provide a simple API for developers to
> +	  create HTTP services in C++.
> +
> +	  https://github.com/etr/libhttpserver
> +
> +comment "libhttpserver needs a toolchain w/ c++"
> +	depends on !BR2_INSTALL_LIBSTDCPP

.. and update this comment. Also we write "C++" and not "c++" in those
comments.

> diff --git a/package/libhttpserver/libhttpserver.hash b/package/libhttpserver/libhttpserver.hash
> new file mode 100644
> index 0000000000..5561c3d917
> --- /dev/null
> +++ b/package/libhttpserver/libhttpserver.hash
> @@ -0,0 +1,2 @@
> +# Locally computed:
> +sha256 778fa0aec199bf8737b2d540c2563a694c18957329f9885e372f7aaafb838351 libhttpserver-0.17.5.tar.gz

Please add the hash of the license file as well.

> diff --git a/package/libhttpserver/libhttpserver.mk b/package/libhttpserver/libhttpserver.mk
> new file mode 100644
> index 0000000000..e46271d7d9
> --- /dev/null
> +++ b/package/libhttpserver/libhttpserver.mk
> @@ -0,0 +1,16 @@
> +################################################################################
> +#
> +# libhttpserver
> +#
> +################################################################################
> +
> +LIBHTTPSERVER_VERSION = 0.17.5
> +LIBHTTPSERVER_SITE = $(call github,etr,libhttpserver,$(LIBHTTPSERVER_VERSION))
> +LIBHTTPSERVER_LICENSE = LGPL-2.1-or-later
> +LIBHTTPSERVER_LICENSE_FILES = COPYING.LESSER
> +LIBHTTPSERVER_INSTALL_STAGING = YES
> +LIBHTTPSERVER_CONF_OPTS += --enable-same-directory-build

You can make the += just a = since it's unconditional.

> +LIBHTTPSERVER_AUTORECONF = YES
> +LIBHTTPSERVER_DEPENDENCIES = libmicrohttpd
> +
> +$(eval $(autotools-package))

Could you address those minor details and send an updated version?

Thanks!

Thomas
Stephan Hoffmann Sept. 24, 2019, 7:22 a.m. UTC | #2
Hello Thomas!
On Mon, Sep 23, 2019 at 3:56 PM Thomas Petazzoni <
thomas.petazzoni@bootlin.com> wrote:

> > diff --git
> a/package/libhttpserver/0001-Fix-lib-expectations-in-libhttpserver.pc.in.patch
> b/package/libhttpserver/0001-Fix-lib-expectations-in-libhttpserver.pc.in.patch
> > new file mode 100644
> > index 0000000000..e0ca5575dc
> > --- /dev/null
> > +++
> b/package/libhttpserver/0001-Fix-lib-expectations-in-libhttpserver.pc.in.patch
> > @@ -0,0 +1,24 @@
> > +From 2bc7cf0beb6b8a124c1c7360c4fb5279e8763f07 Mon Sep 17 00:00:00 2001
> > +From: Sebastiano Merlino <electrictwister2000@gmail.com>
> > +Date: Sat, 8 Jun 2019 15:36:06 -0700
> > +Subject: [PATCH] Fix lib expectations in libhttpserver.pc.in
> > +
>
> We need a Signed-off-by line (at least from you) in this patch. Also,
> if it comes from upstream, a link to the upstream commit is good to
> have.
>
>
Is there any mechanism allowing to cherry pick a commit from the upstream
repo instead of providing a patch file? I don't really feel good about
modifying the patch file;-)

Kind regards
Stephan
Thomas Petazzoni Sept. 24, 2019, 7:47 a.m. UTC | #3
On Tue, 24 Sep 2019 09:22:37 +0200
Stephan Hoffmann <stephan.hoffmann@ext.grandcentrix.net> wrote:

> > We need a Signed-off-by line (at least from you) in this patch. Also,
> > if it comes from upstream, a link to the upstream commit is good to
> > have.
> >
> Is there any mechanism allowing to cherry pick a commit from the upstream
> repo instead of providing a patch file? I don't really feel good about
> modifying the patch file;-)

We prefer to have patches locally instead of downloading them, because
the hash of patches generated by Github is not stable.

We have numerous patches locally in package directories, and changing
their commit log is perfectly fine.

See for example
package/fastd/0003-cipher-remove-aes128-ctr-NaCl-implementation.patch
how the Signed-off-by line and reference to the upstream commit was
added.

Thanks,

Thomas
diff mbox series

Patch

diff --git a/package/Config.in b/package/Config.in
index 2fc11065f6..e6ee550e7a 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -1584,6 +1584,7 @@  menu "Networking"
 	source "package/libgsasl/Config.in"
 	source "package/libhtp/Config.in"
 	source "package/libhttpparser/Config.in"
+	source "package/libhttpserver/Config.in"
 	source "package/libidn/Config.in"
 	source "package/libidn2/Config.in"
 	source "package/libiscsi/Config.in"
diff --git a/package/libhttpserver/0001-Fix-lib-expectations-in-libhttpserver.pc.in.patch b/package/libhttpserver/0001-Fix-lib-expectations-in-libhttpserver.pc.in.patch
new file mode 100644
index 0000000000..e0ca5575dc
--- /dev/null
+++ b/package/libhttpserver/0001-Fix-lib-expectations-in-libhttpserver.pc.in.patch
@@ -0,0 +1,24 @@ 
+From 2bc7cf0beb6b8a124c1c7360c4fb5279e8763f07 Mon Sep 17 00:00:00 2001
+From: Sebastiano Merlino <electrictwister2000@gmail.com>
+Date: Sat, 8 Jun 2019 15:36:06 -0700
+Subject: [PATCH] Fix lib expectations in libhttpserver.pc.in
+
+---
+ libhttpserver.pc.in | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/libhttpserver.pc.in b/libhttpserver.pc.in
+index 36355ee..55f7c0e 100644
+--- a/libhttpserver.pc.in
++++ b/libhttpserver.pc.in
+@@ -8,6 +8,6 @@ Description: A C++ library for creating an embedded Rest HTTP server
+ Version: @VERSION@
+ Requires: libmicrohttpd >= 0.9.37
+ Conflicts:
+-Libs: -L${libdir} -lmicrohttpd
++Libs: -L${libdir} -lhttpserver
+ Libs.private: @LHT_LIBDEPS@
+ Cflags: -I${includedir} -I${includedir}/httpserver
+-- 
+2.17.1
+
diff --git a/package/libhttpserver/Config.in b/package/libhttpserver/Config.in
new file mode 100644
index 0000000000..526ca7c41e
--- /dev/null
+++ b/package/libhttpserver/Config.in
@@ -0,0 +1,14 @@ 
+config BR2_PACKAGE_LIBHTTPSERVER
+	bool "libhttpserver"
+	depends on BR2_INSTALL_LIBSTDCPP
+	select BR2_PACKAGE_LIBMICROHTTPD
+	help
+	  libhttpserver is a C++ library for building high performance
+	  RESTfuls web servers. libhttpserver is built upon
+	  libmicrohttpd to provide a simple API for developers to
+	  create HTTP services in C++.
+
+	  https://github.com/etr/libhttpserver
+
+comment "libhttpserver needs a toolchain w/ c++"
+	depends on !BR2_INSTALL_LIBSTDCPP
diff --git a/package/libhttpserver/libhttpserver.hash b/package/libhttpserver/libhttpserver.hash
new file mode 100644
index 0000000000..5561c3d917
--- /dev/null
+++ b/package/libhttpserver/libhttpserver.hash
@@ -0,0 +1,2 @@ 
+# Locally computed:
+sha256 778fa0aec199bf8737b2d540c2563a694c18957329f9885e372f7aaafb838351 libhttpserver-0.17.5.tar.gz
diff --git a/package/libhttpserver/libhttpserver.mk b/package/libhttpserver/libhttpserver.mk
new file mode 100644
index 0000000000..e46271d7d9
--- /dev/null
+++ b/package/libhttpserver/libhttpserver.mk
@@ -0,0 +1,16 @@ 
+################################################################################
+#
+# libhttpserver
+#
+################################################################################
+
+LIBHTTPSERVER_VERSION = 0.17.5
+LIBHTTPSERVER_SITE = $(call github,etr,libhttpserver,$(LIBHTTPSERVER_VERSION))
+LIBHTTPSERVER_LICENSE = LGPL-2.1-or-later
+LIBHTTPSERVER_LICENSE_FILES = COPYING.LESSER
+LIBHTTPSERVER_INSTALL_STAGING = YES
+LIBHTTPSERVER_CONF_OPTS += --enable-same-directory-build
+LIBHTTPSERVER_AUTORECONF = YES
+LIBHTTPSERVER_DEPENDENCIES = libmicrohttpd
+
+$(eval $(autotools-package))