public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-commits] repo/proj/guru:dev commit in: dev-cpp/usockets/, dev-cpp/usockets/files/
@ 2020-04-30 17:14 Aisha Tammy
  0 siblings, 0 replies; only message in thread
From: Aisha Tammy @ 2020-04-30 17:14 UTC (permalink / raw
  To: gentoo-commits

commit:     d4ff18ce5d8e5c79422128ba7dc36701fe612f4f
Author:     Aisha Tammy <gentoo <AT> aisha <DOT> cc>
AuthorDate: Thu Apr 30 17:12:17 2020 +0000
Commit:     Aisha Tammy <gentoo <AT> aisha <DOT> cc>
CommitDate: Thu Apr 30 17:12:17 2020 +0000
URL:        https://gitweb.gentoo.org/repo/proj/guru.git/commit/?id=d4ff18ce

dev-cpp/usockets: tiny, ultra fast, async sockets framework

Package-Manager: Portage-2.3.89, Repoman-2.3.20
Signed-off-by: Aisha Tammy <gentoo <AT> aisha.cc>

 dev-cpp/usockets/Manifest                      |  1 +
 dev-cpp/usockets/files/usockets-Makefile.patch | 54 ++++++++++++++++++++++++++
 dev-cpp/usockets/metadata.xml                  | 15 +++++++
 dev-cpp/usockets/usockets-0.3.5.ebuild         | 48 +++++++++++++++++++++++
 4 files changed, 118 insertions(+)

diff --git a/dev-cpp/usockets/Manifest b/dev-cpp/usockets/Manifest
new file mode 100644
index 0000000..ddf126a
--- /dev/null
+++ b/dev-cpp/usockets/Manifest
@@ -0,0 +1 @@
+DIST usockets-0.3.5.tar.gz 47939 BLAKE2B fc73f44adc19bd31b78832084a64f2ba3e7b463232056bf67370cf116bf43a0e63734a26fcc833b3d5f917c671cc6fb1983d52c4c92e2f7aae81500df5c5d12d SHA512 a76a469d10e10592b651aa6ccc5d25dfa89015d6b74c8d2268df8eee4206d9194de82ac79079f06f5277803ecfa13cf4bd9ff29bf0ccc98b6ee64798aada796e

diff --git a/dev-cpp/usockets/files/usockets-Makefile.patch b/dev-cpp/usockets/files/usockets-Makefile.patch
new file mode 100644
index 0000000..8d10a20
--- /dev/null
+++ b/dev-cpp/usockets/files/usockets-Makefile.patch
@@ -0,0 +1,54 @@
+diff --git a/Makefile b/Makefile
+index fa6e2ff..9fdcf47 100644
+--- a/Makefile
++++ b/Makefile
+@@ -1,3 +1,14 @@
++DESTDIR ?=
++
++prefix ?= "/usr/local"
++exec_prefix	?=	"$(prefix)"
++libdir ?=	"$(exec_prefix)/lib"
++includedir?=	"$(exec_prefix)/include/uSockets"
++
++VERSION = 0.3.5
++LIBTARGET = libusockets.so
++
++
+ # WITH_OPENSSL=1 enables OpenSSL 1.1+ support
+ ifeq ($(WITH_OPENSSL),1)
+ 	override CFLAGS += -DLIBUS_USE_OPENSSL
+@@ -35,8 +46,27 @@ endif
+ override CFLAGS += -std=c11 -Isrc
+ override LDFLAGS += uSockets.a
+ 
+-# By default we build the uSockets.a static library
++# By default we build the libusockets.so shared library
+ default:
++	rm -f *.o
++	$(CC) $(CFLAGS) $(CPPFLAGS) -fpic -c src/*.c src/eventing/*.c src/crypto/*.c
++	$(CC) -shared -Wl,-soname,libusockets.so -o $(LIBTARGET) *.o
++
++install: default
++	# install the folders needed  (making sure that the exist)
++	install -d "$(DESTDIR)$(libdir)" \
++	"$(DESTDIR)$(includedir)/internal/eventing" \
++	"$(DESTDIR)$(includedir)/internal/networking"
++	# install the library first, while making sure that the symlink is updated
++	install -m 755 $(LIBTARGET) "$(DESTDIR)$(libdir)/$(LIBTARGET).$(VERSION)"
++	@ cd "$(DESTDIR)$(libdir)" && ln -snf "$(LIBTARGET).$(VERSION)" "$(LIBTARGET)"
++	# we also install all the header files
++	install -m 644 src/*.h "$(DESTDIR)$(includedir)/"
++	install -m 644 src/internal/*.h "$(DESTDIR)$(includedir)/internal/"
++	install -m 644 src/internal/eventing/*.h "$(DESTDIR)$(includedir)/internal/eventing/"
++	install -m 644 src/internal/networking/*.h "$(DESTDIR)$(includedir)/internal/networking/"
++
++static:
+ 	rm -f *.o
+ 	$(CC) $(CFLAGS) -flto -O3 -c src/*.c src/eventing/*.c src/crypto/*.c
+ 	$(AR) rvs uSockets.a *.o
+@@ -52,4 +82,5 @@ swift_examples:
+ clean:
+ 	rm -f *.o
+ 	rm -f *.a
++	rm -f *.so
+ 	rm -rf .certs

diff --git a/dev-cpp/usockets/metadata.xml b/dev-cpp/usockets/metadata.xml
new file mode 100644
index 0000000..941cb6b
--- /dev/null
+++ b/dev-cpp/usockets/metadata.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+    <maintainer type="person">
+        <email>gentoo@aisha.cc</email>
+        <name>Aisha Tammy</name>
+    </maintainer>
+    <maintainer type="project">
+        <email>proxy-maint@gentoo.org</email>
+        <name>Proxy Maintainers</name>
+    </maintainer>
+    <use>
+      <flag name="libuv">Enable bindings to use the libuv dispatcher</flag>
+    </use>
+</pkgmetadata>

diff --git a/dev-cpp/usockets/usockets-0.3.5.ebuild b/dev-cpp/usockets/usockets-0.3.5.ebuild
new file mode 100644
index 0000000..d971bed
--- /dev/null
+++ b/dev-cpp/usockets/usockets-0.3.5.ebuild
@@ -0,0 +1,48 @@
+# Copyright 2019-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit multilib
+
+DESCRIPTION="tiny eventing, networking & crypto for async applications"
+HOMEPAGE="https://github.com/uNetworking/uSockets"
+
+if [[ ${PV} == 9999 ]]; then
+	inherit git-r3
+	EGIT_REPO_URI="https://github.com/uNetworking/uSockets.git"
+else
+	SRC_URI="https://github.com/uNetworking/uSockets/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+	KEYWORDS="~amd64 ~arm64 ~x86"
+	S="${WORKDIR}/uSockets-${PV}"
+fi
+
+LICENSE="Apache-2.0"
+SLOT="0"
+IUSE="libuv +ssl libressl debug"
+
+DEPEND="ssl? (
+			  libressl? ( >=dev-libs/libressl-3.0.0 )
+			  !libressl? ( >=dev-libs/openssl-1.1.0 )
+			  )
+	libuv? ( dev-libs/libuv )
+"
+BDEPEND="${DEPEND}"
+RDEPEND="${DEPEND}"
+
+PATCHES=(
+	"${FILESDIR}/usockets-Makefile.patch"
+)
+
+src_compile() {
+	# the Makefile uses environment variables
+	emake WITH_OPENSSL=$(usex ssl 1 0) \
+		  WITH_LIBUV=$(usex libuv 1 0) \
+		  WITH_ASAN=$(usex debug 1 0) \
+		  default
+}
+
+src_install() {
+	emake libdir="/usr/$(get_libdir)" prefix="/usr" DESTDIR="${D}" install
+	einstalldocs
+}


^ permalink raw reply related	[flat|nested] only message in thread

only message in thread, other threads:[~2020-04-30 17:14 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2020-04-30 17:14 [gentoo-commits] repo/proj/guru:dev commit in: dev-cpp/usockets/, dev-cpp/usockets/files/ Aisha Tammy

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox