Skip to contentSkip to conversation

ejabberd: XMPP server (branch yem/ejabberd)

PATCH Superseded Yann E. MORIN 3 participants 29 messages Nov 12, 2014 – Dec 8, 2014

v3 of 4 Superseded Latest is v4 →

lore
Share & tools
lore
#0 lore raw

v3 cover ejabberd: XMPP server (branch yem/ejabberd)

Hello All!

Since ejabberd build system relies on rebar to download its dependencies, we've packaged all of them separately and modified ejabberd makefile to not download any dependency.

Actually, every erlang package that is introduced here rely on the rebar software. Thus, we also introduce a new infrastructure to simplify the development of such packages in buildroot.

NOTES!

This series is just an RFC for now, the pkg-rebar infra was largely mangled between v2 and v3, and so was the pkg-autotools patch.

The autotools changes are no longer required by pkg-rebar, but still they make for a godd cleanup and improvement in the code, so I kept them. They can be moved out of this series and into their own later on, if needed.

Since new variables have been added to the pkg-rebar infra, erlang packages will no longer work, because I did not touch them.

Needless to say: I did not even try to build a package with that for now, it may even not pass the smoke test. Use with caution.

==> For review up to the pkg-rebar infra.

Thanks a lot to Johan (and his colleague) for the initial work of introducing this series! Kudos to both of you! :-)

(BTW, authorship of some patches are wrong, I forgot to set Johan as author when splitting some of the patches. Sorry, I'll fix next time this series flies by in my vincinity.)

Changes v2 -> v3:
- split out the autotools patch into the 7 first ones
- split out the pkg-rebar into patches 8-11
- other packages left untouched

Changes v1 -> v2:
- use BR_PATH instead of an hard-coded path in pkg-rebar.mk.
- update erlang-p1-iconv version to fix a link error with libiconv.

Regards,
Yann E. MORIN.

The following changes since commit 5f617ffa17537d701a2f645f36895fa0d695d221:

sysv init scripts: fix == bashism (2014-11-11 23:08:46 +0100)

are available in the git repository at:

git://git.busybox.net/~ymorin/git/buildroot yem/ejabberd

for you to fetch changes up to 6dfd5938cc100d7f068c4ccb9456c56eea511d3a:

ejabberd: new package. (2014-11-12 00:58:42 +0100)

----------------------------------------------------------------
Johan Oudinet (14):
package/pkg-rebar: new infrastructure
erlang-goldrush: new package.
erlang-lager: new package.
erlang-p1-zlib: new package.
erlang-p1-yaml: new package.
erlang-p1-xml: new package.
erlang-p1-utils: new package.
erlang-p1-tls: new package.
erlang-p1-stun: new package.
erlang-p1-stringprep: new package.
erlang-p1-sip: new package.
erlang-p1-iconv: new package.
erlang-p1-cache-tab: new package.
ejabberd: new package.

Yann E. MORIN (10):
pkg-autotools: move common macros
pkg-autotools: re-order cleaning up the host dependencies
pkg-autotools: commonalise the libtool patching code
pkg-autotools: move the libtool patching call out of the autoreconf hook
pkg-autotools: remove redundant shell conditional
pkg-autotools: fold the libtool patching code directly into the hook
pkg-autotools: only apply libtool patch at the right moment package/erlang: export EI_VSN so other packages can use it package/erlang-rebar: new host package
docs/manual: add documentation for the pkg-rebar infrastructure

 docs/manual/adding-packages-rebar.txt              | 157 +++++++++++++++++
 docs/manual/adding-packages.txt                    |   2 +
 package/Config.in                                  |  17 ++
 package/Makefile.in                                |   1 +
 package/ejabberd/0001-remove-deps.patch            |  20 +++
 package/ejabberd/0002-disable-rebar-deps.patch     |  70 ++++++++
 package/ejabberd/0003-disable-test.patch           |  21 +++
 package/ejabberd/0004-disable-version-check.patch  |  20 +++
 package/ejabberd/0005-fix-includes.patch           |  45 +++++
 package/ejabberd/0006-remove-doc.patch             |  26 +++
 package/ejabberd/0007-fix-init.patch               |  99 +++++++++++
 .../ejabberd/0008-fix-install-permissions.patch    |  76 ++++++++
 package/ejabberd/Config.in                         |  21 +++
 package/ejabberd/S50ejabberd                       |  35 ++++
 package/ejabberd/check-erlang-lib                  |  55 ++++++
 package/ejabberd/ejabberd.mk                       |  51 ++++++
 package/erlang-goldrush/Config.in                  |   6 +
 package/erlang-goldrush/erlang-goldrush.mk         |  14 ++
 package/erlang-lager/Config.in                     |  12 ++
 package/erlang-lager/erlang-lager.mk               |  14 ++
 package/erlang-p1-cache-tab/Config.in              |   6 +
 package/erlang-p1-cache-tab/erlang-p1-cache-tab.mk |  13 ++
 package/erlang-p1-iconv/Config.in                  |   6 +
 package/erlang-p1-iconv/erlang-p1-iconv.mk         |  17 ++
 package/erlang-p1-sip/Config.in                    |   8 +
 .../erlang-p1-sip-01-fix-includes.patch            |  19 ++
 package/erlang-p1-sip/erlang-p1-sip.mk             |  14 ++
 package/erlang-p1-stringprep/Config.in             |   5 +
 .../erlang-p1-stringprep/erlang-p1-stringprep.mk   |  13 ++
 package/erlang-p1-stun/Config.in                   |   7 +
 package/erlang-p1-stun/erlang-p1-stun.mk           |  14 ++
 package/erlang-p1-tls/Config.in                    |   5 +
 package/erlang-p1-tls/erlang-p1-tls.mk             |  14 ++
 package/erlang-p1-utils/Config.in                  |   5 +
 package/erlang-p1-utils/erlang-p1-utils.mk         |  14 ++
 package/erlang-p1-xml/Config.in                    |   6 +
 package/erlang-p1-xml/erlang-p1-xml.mk             |  14 ++
 package/erlang-p1-yaml/Config.in                   |   6 +
 package/erlang-p1-yaml/erlang-p1-yaml.mk           |  13 ++
 package/erlang-p1-zlib/Config.in                   |   5 +
 package/erlang-p1-zlib/erlang-p1-zlib.mk           |  13 ++
 package/erlang-rebar/erlang-rebar.mk               |  31 ++++
 package/erlang/erlang.mk                           |   5 +
 package/pkg-autotools.mk                           | 135 +++++++-------
 package/pkg-rebar.mk                               | 195 +++++++++++++++++++++
 45 files changed, 1273 insertions(+), 72 deletions(-)
 create mode 100644 docs/manual/adding-packages-rebar.txt
 create mode 100644 package/ejabberd/0001-remove-deps.patch
 create mode 100644 package/ejabberd/0002-disable-rebar-deps.patch
 create mode 100644 package/ejabberd/0003-disable-test.patch
 create mode 100644 package/ejabberd/0004-disable-version-check.patch
 create mode 100644 package/ejabberd/0005-fix-includes.patch
 create mode 100644 package/ejabberd/0006-remove-doc.patch
 create mode 100644 package/ejabberd/0007-fix-init.patch
 create mode 100644 package/ejabberd/0008-fix-install-permissions.patch
 create mode 100644 package/ejabberd/Config.in
 create mode 100644 package/ejabberd/S50ejabberd
 create mode 100755 package/ejabberd/check-erlang-lib
 create mode 100644 package/ejabberd/ejabberd.mk
 create mode 100644 package/erlang-goldrush/Config.in
 create mode 100644 package/erlang-goldrush/erlang-goldrush.mk
 create mode 100644 package/erlang-lager/Config.in
 create mode 100644 package/erlang-lager/erlang-lager.mk
 create mode 100644 package/erlang-p1-cache-tab/Config.in
 create mode 100644 package/erlang-p1-cache-tab/erlang-p1-cache-tab.mk
 create mode 100644 package/erlang-p1-iconv/Config.in
 create mode 100644 package/erlang-p1-iconv/erlang-p1-iconv.mk
 create mode 100644 package/erlang-p1-sip/Config.in
 create mode 100644 package/erlang-p1-sip/erlang-p1-sip-01-fix-includes.patch
 create mode 100644 package/erlang-p1-sip/erlang-p1-sip.mk
 create mode 100644 package/erlang-p1-stringprep/Config.in
 create mode 100644 package/erlang-p1-stringprep/erlang-p1-stringprep.mk
 create mode 100644 package/erlang-p1-stun/Config.in
 create mode 100644 package/erlang-p1-stun/erlang-p1-stun.mk
 create mode 100644 package/erlang-p1-tls/Config.in
 create mode 100644 package/erlang-p1-tls/erlang-p1-tls.mk
 create mode 100644 package/erlang-p1-utils/Config.in
 create mode 100644 package/erlang-p1-utils/erlang-p1-utils.mk
 create mode 100644 package/erlang-p1-xml/Config.in
 create mode 100644 package/erlang-p1-xml/erlang-p1-xml.mk
 create mode 100644 package/erlang-p1-yaml/Config.in
 create mode 100644 package/erlang-p1-yaml/erlang-p1-yaml.mk
 create mode 100644 package/erlang-p1-zlib/Config.in
 create mode 100644 package/erlang-p1-zlib/erlang-p1-zlib.mk
 create mode 100644 package/erlang-rebar/erlang-rebar.mk
 create mode 100644 package/pkg-rebar.mk
Signature · 6 lines
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 223 225 172 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'
#1 lore raw

PATCH v3 1/24 pkg-autotools: move common macros

Currently, the common macros used for the various hooks are defined for each and every autotools packages, even though the macros are completely generic.

Besides being completely useless, it tends to slow down make, as the variables are redefined over and over again.

Move their definitions out of inner-autotools-package.

Note: we remove the double-$ because we no longer are in a define-in-a-define block, just a define block.

[yann.morin.1998 at free.fr: split the patch into semantically separate patches]

Cc Thomas Petazzoni <[email protected]>
Cc Arnout Vandecappelle <[email protected]>
---
 package/pkg-autotools.mk | 116 +++++++++++++++++++++++------------------------
 1 file changed, 58 insertions(+), 58 deletions(-)
package/pkg-autotools.mk +58 -58
index 09f9412..60f6997 100644
@@ -46,6 +46,64 @@ endef
 #	$(call AUTOCONF_AC_CHECK_FILE_VAL,/dev/random)=yes
 AUTOCONF_AC_CHECK_FILE_VAL = ac_cv_file_$(subst -,_,$(subst /,_,$(subst .,_,$(1))))
 
+#
+# Hook to update config.sub and config.guess if needed
+#
+define UPDATE_CONFIG_HOOK
+	@$(call MESSAGE,"Updating config.sub and config.guess")
+	$(call CONFIG_UPDATE,$(@D))
+endef
+
+#
+# Hook to patch libtool to make it work properly for cross-compilation
+#
+define LIBTOOL_PATCH_HOOK
+	@$(call MESSAGE,"Patching libtool")
+	if test "$($(PKG)_LIBTOOL_PATCH)" = "YES" \
+		-a "$($(PKG)_AUTORECONF)" != "YES"; then \
+		for i in `find $($(PKG)_SRCDIR) -name ltmain.sh`; do \
+			ltmain_version=`sed -n '/^[ 	]*VERSION=/{s/^[ 	]*VERSION=//;p;q;}' $$i | \
+			sed -e 's/\([0-9].[0-9]*\).*/\1/' -e 's/\"//'`; \
+			if test $${ltmain_version} = '1.5'; then \
+				$(APPLY_PATCHES) $${i%/*} support/libtool buildroot-libtool-v1.5.patch; \
+			elif test $${ltmain_version} = "2.2"; then\
+				$(APPLY_PATCHES) $${i%/*} support/libtool buildroot-libtool-v2.2.patch; \
+			elif test $${ltmain_version} = "2.4"; then\
+				$(APPLY_PATCHES) $${i%/*} support/libtool buildroot-libtool-v2.4.patch; \
+			fi \
+		done \
+	fi
+endef
+
+#
+# Hook to gettextize the package if needed
+#
+define GETTEXTIZE_HOOK
+	@$(call MESSAGE,"Gettextizing")
+	$(Q)cd $($(PKG)_SRCDIR) && $(GETTEXTIZE) $($(PKG)_GETTEXTIZE_OPTS)
+endef
+
+#
+# Hook to autoreconf the package if needed
+#
+define AUTORECONF_HOOK
+	@$(call MESSAGE,"Autoreconfiguring")
+	$(Q)cd $($(PKG)_SRCDIR) && $($(PKG)_AUTORECONF_ENV) $(AUTORECONF) $($(PKG)_AUTORECONF_OPTS)
+	$(Q)if test "$($(PKG)_LIBTOOL_PATCH)" = "YES"; then \
+		for i in `find $($(PKG)_SRCDIR) -name ltmain.sh`; do \
+			ltmain_version=`sed -n '/^[ 	]*VERSION=/{s/^[ 	]*VERSION=//;p;q;}' $$i | \
+			sed -e 's/\([0-9].[0-9]*\).*/\1/' -e 's/\"//'`; \
+			if test $${ltmain_version} = "1.5"; then \
+				$(APPLY_PATCHES) $${i%/*} support/libtool buildroot-libtool-v1.5.patch; \
+			elif test $${ltmain_version} = "2.2"; then\
+				$(APPLY_PATCHES) $${i%/*} support/libtool buildroot-libtool-v2.2.patch; \
+			elif test $${ltmain_version} = "2.4"; then\
+				$(APPLY_PATCHES) $${i%/*} support/libtool buildroot-libtool-v2.4.patch; \
+			fi \
+		done \
+	fi
+endef
+
 ################################################################################
 # inner-autotools-package -- defines how the configuration, compilation and
 # installation of an autotools package should be done, implements a
@@ -183,71 +241,13 @@ endef
 endif
 endif
 
-#
-# Hook to update config.sub and config.guess if needed
-#
-define UPDATE_CONFIG_HOOK
-	@$$(call MESSAGE,"Updating config.sub and config.guess")
-	$$(call CONFIG_UPDATE,$$(@D))
-endef
-
 $(2)_POST_PATCH_HOOKS += UPDATE_CONFIG_HOOK
 
-#
-# Hook to patch libtool to make it work properly for cross-compilation
-#
-define LIBTOOL_PATCH_HOOK
-	@$$(call MESSAGE,"Patching libtool")
-	$$(Q)if test "$$($$(PKG)_LIBTOOL_PATCH)" = "YES" \
-		-a "$$($$(PKG)_AUTORECONF)" != "YES"; then \
-		for i in `find $$($$(PKG)_SRCDIR) -name ltmain.sh`; do \
-			ltmain_version=`sed -n '/^[ 	]*VERSION=/{s/^[ 	]*VERSION=//;p;q;}' $$$$i | \
-			sed -e 's/\([0-9].[0-9]*\).*/\1/' -e 's/\"//'`; \
-			if test $$$${ltmain_version} = '1.5'; then \
-				$$(APPLY_PATCHES) $$$${i%/*} support/libtool buildroot-libtool-v1.5.patch; \
-			elif test $$$${ltmain_version} = "2.2"; then\
-				$$(APPLY_PATCHES) $$$${i%/*} support/libtool buildroot-libtool-v2.2.patch; \
-			elif test $$$${ltmain_version} = "2.4"; then\
-				$$(APPLY_PATCHES) $$$${i%/*} support/libtool buildroot-libtool-v2.4.patch; \
-			fi \
-		done \
-	fi
-endef
-
 # default values are not evaluated yet, so don't rely on this defaulting to YES
 ifneq ($$($(2)_LIBTOOL_PATCH),NO)
 $(2)_POST_PATCH_HOOKS += LIBTOOL_PATCH_HOOK
 endif
 
-#
-# Hook to gettextize the package if needed
-#
-define GETTEXTIZE_HOOK
-	@$$(call MESSAGE,"Gettextizing")
-	$(Q)cd $$($$(PKG)_SRCDIR) && $$(GETTEXTIZE) $$($$(PKG)_GETTEXTIZE_OPTS)
-endef
-
-#
-# Hook to autoreconf the package if needed
-#
-define AUTORECONF_HOOK
-	@$$(call MESSAGE,"Autoreconfiguring")
-	$$(Q)cd $$($$(PKG)_SRCDIR) && $$($$(PKG)_AUTORECONF_ENV) $$(AUTORECONF) $$($$(PKG)_AUTORECONF_OPTS)
-	$$(Q)if test "$$($$(PKG)_LIBTOOL_PATCH)" = "YES"; then \
-		for i in `find $$($$(PKG)_SRCDIR) -name ltmain.sh`; do \
-			ltmain_version=`sed -n '/^[ 	]*VERSION=/{s/^[ 	]*VERSION=//;p;q;}' $$$$i | \
-			sed -e 's/\([0-9].[0-9]*\).*/\1/' -e 's/\"//'`; \
-			if test $$$${ltmain_version} = "1.5"; then \
-				$$(APPLY_PATCHES) $$$${i%/*} support/libtool buildroot-libtool-v1.5.patch; \
-			elif test $$$${ltmain_version} = "2.2"; then\
-				$$(APPLY_PATCHES) $$$${i%/*} support/libtool buildroot-libtool-v2.2.patch; \
-			elif test $$$${ltmain_version} = "2.4"; then\
-				$$(APPLY_PATCHES) $$$${i%/*} support/libtool buildroot-libtool-v2.4.patch; \
-			fi \
-		done \
-	fi
-endef
-
 # This must be repeated from inner-generic-package, otherwise we get an empty
 # _DEPENDENCIES if _AUTORECONF is YES.  Also filter the result of _AUTORECONF
 # and _GETTEXTIZE away from the non-host rule
Signature · 1 line
1.9.1
#2 lore raw

PATCH v3 2/24 pkg-autotools: re-order cleaning up the host dependencies

In reply to Yann E. MORIN

Move the host dependencies cleanup out from in-between all the hooks, so it is easier to see how the hooks all work together.

Cc Thomas Petazzoni <[email protected]>
Cc Arnout Vandecappelle <[email protected]>
Cc Johan Oudinet <[email protected]>
---
 package/pkg-autotools.mk | 17 ++++++++---------
 1 file changed, 8 insertions(+), 9 deletions(-)
package/pkg-autotools.mk +8 -9
index 60f6997..6e198ed 100644
@@ -169,6 +169,14 @@ $(2)_INSTALL_OPTS                ?= install
 $(2)_INSTALL_STAGING_OPTS	?= DESTDIR=$$(STAGING_DIR) install
 $(2)_INSTALL_TARGET_OPTS		?= DESTDIR=$$(TARGET_DIR)  install
 
+# This must be repeated from inner-generic-package, otherwise we get an empty
+# _DEPENDENCIES if _AUTORECONF is YES.  Also filter the result of _AUTORECONF
+# and _GETTEXTIZE away from the non-host rule
+ifeq ($(4),host)
+$(2)_DEPENDENCIES ?= $$(filter-out host-automake host-autoconf host-libtool \
+				host-gettext host-toolchain $(1),\
+    $$(patsubst host-host-%,host-%,$$(addprefix host-,$$($(3)_DEPENDENCIES))))
+endif
 
 #
 # Configure step. Only define it if not already defined by the package
@@ -248,15 +256,6 @@ ifneq ($$($(2)_LIBTOOL_PATCH),NO)
 $(2)_POST_PATCH_HOOKS += LIBTOOL_PATCH_HOOK
 endif
 
-# This must be repeated from inner-generic-package, otherwise we get an empty
-# _DEPENDENCIES if _AUTORECONF is YES.  Also filter the result of _AUTORECONF
-# and _GETTEXTIZE away from the non-host rule
-ifeq ($(4),host)
-$(2)_DEPENDENCIES ?= $$(filter-out host-automake host-autoconf host-libtool \
-				host-gettext host-toolchain $(1),\
-    $$(patsubst host-host-%,host-%,$$(addprefix host-,$$($(3)_DEPENDENCIES))))
-endif
-
 ifeq ($$($(2)_AUTORECONF),YES)
 # This has to come before autoreconf
 ifeq ($$($(2)_GETTEXTIZE),YES)
Signature · 1 line
1.9.1
#3 lore raw

PATCH v3 3/24 pkg-autotools: commonalise the libtool patching code

In reply to Yann E. MORIN

Currently, the heuristic to patch libtool scripts is duplicated both in the libtool post-patch hook and the autoreconf pre-configure hook.

Move that code into a single function that gets called from both hooks.

[yann.morin.1998 at free.fr: split the patch into semantically separate patches]

Cc Thomas Petazzoni <[email protected]>
Cc Arnout Vandecappelle <[email protected]>
---
 package/pkg-autotools.mk | 53 +++++++++++++++++++++++-------------------------
 1 file changed, 25 insertions(+), 28 deletions(-)
package/pkg-autotools.mk +25 -28
index 6e198ed..393f995 100644
@@ -36,6 +36,29 @@ define CONFIG_UPDATE
 	done
 endef
 
+#
+# Utility function to patch the libtool files
+#
+# argument 1 : directory into which to search for libtool scripts to patch.
+# Note that libtool scripts are searched for recursively in this directory
+#
+define PATCH_LIBTOOL
+	@$(call MESSAGE,"Patching libtool")
+	$(Q)if test "$($(PKG)_LIBTOOL_PATCH)" = "YES" ]; then \
+		for i in `find $(1) -name ltmain.sh`; do \
+			ltmain_version=`sed -n '/^[ 	]*VERSION=/{s/^[ 	]*VERSION=//;p;q;}' $$i | \
+			sed -e 's/\([0-9].[0-9]*\).*/\1/' -e 's/\"//'`; \
+			if test $${ltmain_version} = '1.5'; then \
+				$(APPLY_PATCHES) $${i%/*} support/libtool buildroot-libtool-v1.5.patch; \
+			elif test $${ltmain_version} = "2.2"; then\
+				$(APPLY_PATCHES) $${i%/*} support/libtool buildroot-libtool-v2.2.patch; \
+			elif test $${ltmain_version} = "2.4"; then\
+				$(APPLY_PATCHES) $${i%/*} support/libtool buildroot-libtool-v2.4.patch; \
+			fi \
+		done \
+	fi
+endef
+
 # This function generates the ac_cv_file_<foo> value for a given
 # filename. This is needed to convince configure script doing
 # AC_CHECK_FILE() tests that the file actually exists, since such
@@ -58,21 +81,7 @@ endef
 # Hook to patch libtool to make it work properly for cross-compilation
 #
 define LIBTOOL_PATCH_HOOK
-	@$(call MESSAGE,"Patching libtool")
-	if test "$($(PKG)_LIBTOOL_PATCH)" = "YES" \
-		-a "$($(PKG)_AUTORECONF)" != "YES"; then \
-		for i in `find $($(PKG)_SRCDIR) -name ltmain.sh`; do \
-			ltmain_version=`sed -n '/^[ 	]*VERSION=/{s/^[ 	]*VERSION=//;p;q;}' $$i | \
-			sed -e 's/\([0-9].[0-9]*\).*/\1/' -e 's/\"//'`; \
-			if test $${ltmain_version} = '1.5'; then \
-				$(APPLY_PATCHES) $${i%/*} support/libtool buildroot-libtool-v1.5.patch; \
-			elif test $${ltmain_version} = "2.2"; then\
-				$(APPLY_PATCHES) $${i%/*} support/libtool buildroot-libtool-v2.2.patch; \
-			elif test $${ltmain_version} = "2.4"; then\
-				$(APPLY_PATCHES) $${i%/*} support/libtool buildroot-libtool-v2.4.patch; \
-			fi \
-		done \
-	fi
+	$(call PATCH_LIBTOOL,$($(PKG)_SRCDIR))
 endef
 
 #
@@ -89,19 +98,7 @@ endef
 define AUTORECONF_HOOK
 	@$(call MESSAGE,"Autoreconfiguring")
 	$(Q)cd $($(PKG)_SRCDIR) && $($(PKG)_AUTORECONF_ENV) $(AUTORECONF) $($(PKG)_AUTORECONF_OPTS)
-	$(Q)if test "$($(PKG)_LIBTOOL_PATCH)" = "YES"; then \
-		for i in `find $($(PKG)_SRCDIR) -name ltmain.sh`; do \
-			ltmain_version=`sed -n '/^[ 	]*VERSION=/{s/^[ 	]*VERSION=//;p;q;}' $$i | \
-			sed -e 's/\([0-9].[0-9]*\).*/\1/' -e 's/\"//'`; \
-			if test $${ltmain_version} = "1.5"; then \
-				$(APPLY_PATCHES) $${i%/*} support/libtool buildroot-libtool-v1.5.patch; \
-			elif test $${ltmain_version} = "2.2"; then\
-				$(APPLY_PATCHES) $${i%/*} support/libtool buildroot-libtool-v2.2.patch; \
-			elif test $${ltmain_version} = "2.4"; then\
-				$(APPLY_PATCHES) $${i%/*} support/libtool buildroot-libtool-v2.4.patch; \
-			fi \
-		done \
-	fi
+	$(call PATCH_LIBTOOL,$($(PKG)_SRCDIR))
 endef
 
 ################################################################################
Signature · 1 line
1.9.1
#4 lore raw

PATCH v3 4/24 pkg-autotools: move the libtool patching call out of the autoreconf hook

In reply to Yann E. MORIN

Call it as a standalone hook, like is done for post-patch.

[yann.morin.1998 at free.fr: split the patch into semantically separate patches]

Cc Thomas Petazzoni <[email protected]>
Cc Arnout Vandecappelle <[email protected]>
---
 package/pkg-autotools.mk | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)
package/pkg-autotools.mk +4 -1
index 393f995..45947b0 100644
@@ -98,7 +98,6 @@ endef
 define AUTORECONF_HOOK
 	@$(call MESSAGE,"Autoreconfiguring")
 	$(Q)cd $($(PKG)_SRCDIR) && $($(PKG)_AUTORECONF_ENV) $(AUTORECONF) $($(PKG)_AUTORECONF_OPTS)
-	$(call PATCH_LIBTOOL,$($(PKG)_SRCDIR))
 endef
 
 ################################################################################
@@ -260,6 +259,10 @@ $(2)_PRE_CONFIGURE_HOOKS += GETTEXTIZE_HOOK
 $(2)_DEPENDENCIES += host-gettext
 endif
 $(2)_PRE_CONFIGURE_HOOKS += AUTORECONF_HOOK
+# default values are not evaluated yet, so don't rely on this defaulting to YES
+ifneq ($$($(2)_LIBTOOL_PATCH),NO)
+$(2)_PRE_CONFIGURE_HOOKS += LIBTOOL_PATCH_HOOK
+endif
 $(2)_DEPENDENCIES += host-automake host-autoconf host-libtool
 endif
 
Signature · 1 line
1.9.1
#5 lore raw

PATCH v3 5/24 pkg-autotools: remove redundant shell conditional

In reply to Yann E. MORIN

The libtool patching function checks whether patching libtool is wanted before doing the actual patching.

This is redundant now, as all callers are now protected by a conditional block.

Cc Thomas Petazzoni <[email protected]>
Cc Arnout Vandecappelle <[email protected]>
Cc Johan Oudinet <[email protected]>
---
 package/pkg-autotools.mk | 24 +++++++++++-------------
 1 file changed, 11 insertions(+), 13 deletions(-)
package/pkg-autotools.mk +11 -13
index 45947b0..e240b95 100644
@@ -44,19 +44,17 @@ endef
 #
 define PATCH_LIBTOOL
 	@$(call MESSAGE,"Patching libtool")
-	$(Q)if test "$($(PKG)_LIBTOOL_PATCH)" = "YES" ]; then \
-		for i in `find $(1) -name ltmain.sh`; do \
-			ltmain_version=`sed -n '/^[ 	]*VERSION=/{s/^[ 	]*VERSION=//;p;q;}' $$i | \
-			sed -e 's/\([0-9].[0-9]*\).*/\1/' -e 's/\"//'`; \
-			if test $${ltmain_version} = '1.5'; then \
-				$(APPLY_PATCHES) $${i%/*} support/libtool buildroot-libtool-v1.5.patch; \
-			elif test $${ltmain_version} = "2.2"; then\
-				$(APPLY_PATCHES) $${i%/*} support/libtool buildroot-libtool-v2.2.patch; \
-			elif test $${ltmain_version} = "2.4"; then\
-				$(APPLY_PATCHES) $${i%/*} support/libtool buildroot-libtool-v2.4.patch; \
-			fi \
-		done \
-	fi
+	$(Q)for i in `find $(1) -name ltmain.sh`; do \
+		ltmain_version=`sed -n '/^[ 	]*VERSION=/{s/^[ 	]*VERSION=//;p;q;}' $$i | \
+		sed -e 's/\([0-9].[0-9]*\).*/\1/' -e 's/\"//'`; \
+		if test $${ltmain_version} = '1.5'; then \
+			$(APPLY_PATCHES) $${i%/*} support/libtool buildroot-libtool-v1.5.patch; \
+		elif test $${ltmain_version} = "2.2"; then\
+			$(APPLY_PATCHES) $${i%/*} support/libtool buildroot-libtool-v2.2.patch; \
+		elif test $${ltmain_version} = "2.4"; then\
+			$(APPLY_PATCHES) $${i%/*} support/libtool buildroot-libtool-v2.4.patch; \
+		fi \
+	done
 endef
 
 # This function generates the ac_cv_file_<foo> value for a given
Signature · 1 line
1.9.1
#6 lore raw

PATCH v3 6/24 pkg-autotools: fold the libtool patching code directly into the hook

In reply to Yann E. MORIN

We now have only one caller of the libtool patching code, which is the hook itself.

So, there is no longer any need to extract this code into a utility function, and it can be folded into the hook itself.

Cc Thomas Petazzoni <[email protected]>
Cc Arnout Vandecappelle <[email protected]>
Cc Johan Oudinet <[email protected]>
---
 package/pkg-autotools.mk | 34 ++++++++++++----------------------
 1 file changed, 12 insertions(+), 22 deletions(-)
package/pkg-autotools.mk +12 -22
index e240b95..924816b 100644
@@ -36,27 +36,6 @@ define CONFIG_UPDATE
 	done
 endef
 
-#
-# Utility function to patch the libtool files
-#
-# argument 1 : directory into which to search for libtool scripts to patch.
-# Note that libtool scripts are searched for recursively in this directory
-#
-define PATCH_LIBTOOL
-	@$(call MESSAGE,"Patching libtool")
-	$(Q)for i in `find $(1) -name ltmain.sh`; do \
-		ltmain_version=`sed -n '/^[ 	]*VERSION=/{s/^[ 	]*VERSION=//;p;q;}' $$i | \
-		sed -e 's/\([0-9].[0-9]*\).*/\1/' -e 's/\"//'`; \
-		if test $${ltmain_version} = '1.5'; then \
-			$(APPLY_PATCHES) $${i%/*} support/libtool buildroot-libtool-v1.5.patch; \
-		elif test $${ltmain_version} = "2.2"; then\
-			$(APPLY_PATCHES) $${i%/*} support/libtool buildroot-libtool-v2.2.patch; \
-		elif test $${ltmain_version} = "2.4"; then\
-			$(APPLY_PATCHES) $${i%/*} support/libtool buildroot-libtool-v2.4.patch; \
-		fi \
-	done
-endef
-
 # This function generates the ac_cv_file_<foo> value for a given
 # filename. This is needed to convince configure script doing
 # AC_CHECK_FILE() tests that the file actually exists, since such
@@ -79,7 +58,18 @@ endef
 # Hook to patch libtool to make it work properly for cross-compilation
 #
 define LIBTOOL_PATCH_HOOK
-	$(call PATCH_LIBTOOL,$($(PKG)_SRCDIR))
+	@$(call MESSAGE,"Patching libtool")
+	$(Q)for i in `find $($(PKG)_SRCDIR) -name ltmain.sh`; do \
+		ltmain_version=`sed -n '/^[ 	]*VERSION=/{s/^[ 	]*VERSION=//;p;q;}' $$i | \
+		sed -e 's/\([0-9].[0-9]*\).*/\1/' -e 's/\"//'`; \
+		if test $${ltmain_version} = '1.5'; then \
+			$(APPLY_PATCHES) $${i%/*} support/libtool buildroot-libtool-v1.5.patch; \
+		elif test $${ltmain_version} = "2.2"; then\
+			$(APPLY_PATCHES) $${i%/*} support/libtool buildroot-libtool-v2.2.patch; \
+		elif test $${ltmain_version} = "2.4"; then\
+			$(APPLY_PATCHES) $${i%/*} support/libtool buildroot-libtool-v2.4.patch; \
+		fi \
+	done
 endef
 
 #
Signature · 1 line
1.9.1
#7 lore raw

PATCH v3 7/24 pkg-autotools: only apply libtool patch at the right moment

In reply to Yann E. MORIN

Currently, we apply the libtool patch at post-patch time, always. If we need to autoreconf, we also apply it after autoreconf is done.

Obviously, in that second casse, we do not need to apply it at post-patch time. This has no impact on the result, as autoreconf will overwrite the just patched files, and they will be patched yet again. But it is not nice to the user that will see a double "Patching libtool" message.

So, we apply the libtool patch at post-patch time only if we are not autoreconfiguring the package.

Cc Thomas Petazzoni <[email protected]>
Cc Arnout Vandecappelle <[email protected]>
Cc Johan Oudinet <[email protected]>
---
 package/pkg-autotools.mk | 14 +++++++++-----
 1 file changed, 9 insertions(+), 5 deletions(-)
package/pkg-autotools.mk +9 -5
index 924816b..ad2d1a6 100644
@@ -235,12 +235,8 @@ endif
 
 $(2)_POST_PATCH_HOOKS += UPDATE_CONFIG_HOOK
 
-# default values are not evaluated yet, so don't rely on this defaulting to YES
-ifneq ($$($(2)_LIBTOOL_PATCH),NO)
-$(2)_POST_PATCH_HOOKS += LIBTOOL_PATCH_HOOK
-endif
-
 ifeq ($$($(2)_AUTORECONF),YES)
+
 # This has to come before autoreconf
 ifeq ($$($(2)_GETTEXTIZE),YES)
 $(2)_PRE_CONFIGURE_HOOKS += GETTEXTIZE_HOOK
@@ -252,6 +248,14 @@ ifneq ($$($(2)_LIBTOOL_PATCH),NO)
 $(2)_PRE_CONFIGURE_HOOKS += LIBTOOL_PATCH_HOOK
 endif
 $(2)_DEPENDENCIES += host-automake host-autoconf host-libtool
+
+else # ! AUTORECONF = YES
+
+# default values are not evaluated yet, so don't rely on this defaulting to YES
+ifneq ($$($(2)_LIBTOOL_PATCH),NO)
+$(2)_POST_PATCH_HOOKS += LIBTOOL_PATCH_HOOK
+endif
+
 endif
 
 #
Signature · 1 line
1.9.1
#8 lore raw

PATCH v3 8/24 package/erlang: export EI_VSN so other packages can use it

In reply to Yann E. MORIN

Packages that depend on Erlang may need the Erlang Interface Version (aka EI_VSN), so just export it.

We do export a static value instead of looking in the file, to avoid spawning a shell every time the variable is dereferenced.

---
 package/erlang/erlang.mk | 5 +++++
 1 file changed, 5 insertions(+)
package/erlang/erlang.mk +5 -0
index e6899de..f4687e4 100644
@@ -4,6 +4,7 @@
 #
 ################################################################################
 
+# See note below when updating Erlang
 ERLANG_VERSION = 17.3
 ERLANG_SITE = http://www.erlang.org/download
 ERLANG_SOURCE = otp_src_$(ERLANG_VERSION).tar.gz
@@ -13,6 +14,10 @@ ERLANG_LICENSE = EPL
 ERLANG_LICENSE_FILES = EPLICENCE
 ERLANG_INSTALL_STAGING = YES
 
+# Whenever updating Erlang, this value should be updated as well, to the
+# value of EI_VSN in the file lib/erl_interface/vsn.mk
+ERLANG_EI_VSN = 3.7.18
+
 # The configure checks for these functions fail incorrectly
 ERLANG_CONF_ENV = ac_cv_func_isnan=yes ac_cv_func_isinf=yes
 
Signature · 1 line
1.9.1
#9 lore raw

PATCH v3 9/24 package/erlang-rebar: new host package

In reply to Yann E. MORIN

rebar is used to compile Erlang packages.

We need host variant so as to be able to provide it to Erlang packages that do not bundle their own version, or bundle a broken version.

Since this is a host-only package, used only internally, we do not provide a Kconfig option for it. Packages that need it will depend on it.

[yann.morin.1998 at free.fr: extract host-rebar to its own patch]
Cc Arnout Vandecappelle <[email protected]>

---
Changes v2 -> v3:
- fix dependencies (Arnout)
- fix download location
- add licencing info
- add comments

---
 package/erlang-rebar/erlang-rebar.mk | 31 +++++++++++++++++++++++++++++++
 1 file changed, 31 insertions(+)
 create mode 100644 package/erlang-rebar/erlang-rebar.mk
package/erlang-rebar/erlang-rebar.mk new file +31 -0
new file mode 100644
index 0000000..f29eb75
@@ -0,0 +1,31 @@
+################################################################################
+#
+# erlang-rebar
+#
+################################################################################
+
+ERLANG_REBAR_VERSION = 2.5.1
+
+# Upstream publishes a release, but we can not use it as it is a release of
+# a generated rebar script, when we want the sources. So we have to use the
+# gihub helper in this case.
+ERLANG_REBAR_SITE = $(call github,rebar,rebar,$(ERLANG_REBAR_VERSION))
+
+# Although the file LICENSE state Apache-2.0, a lot (if not all) the files
+# in src/ bear the MIT licence.
+ERLANG_LICENSE = Apache-2.0, MIT
+ERLANG_LICENSE_FILES = LICENSE
+
+# We do not have a target variant, so just define the dependencies,
+# configure and build commands for the host variant.
+HOST_ERLANG_REBAR_DEPENDENCIES = host-erlang
+
+define HOST_ERLANG_REBAR_BUILD_CMDS
+	cd $(@D) && $(HOST_MAKE_ENV) $(MAKE)
+endef
+
+define HOST_ERLANG_REBAR_INSTALL_CMDS
+	$(INSTALL) -m 0755 -D $(@D)/rebar $(HOST_DIR)/usr/bin/rebar
+endef
+
+$(eval $(host-generic-package))
Signature · 1 line
1.9.1
#10 lore raw

PATCH v3 10/24 package/pkg-rebar: new infrastructure

In reply to Yann E. MORIN

From: Johan Oudinet <[email protected]>

Ease the development of packages that use the erlang rebar tool as their build system.

[yann.morin.1998 at free.fr: split the patch into semantically separated patches; large rewrites of the rest]

---
Changes v2 -> v3:
- introduce two new options: ERLANG_FOO_CONFIGURE to use the autotools infra (YES) or the generic infra (NO/empty) and ERLANG_FOO_HAS_REBAR to use the package's rebar (YES) or our own (NO/empty)
- remove the duplicated code from the autotools infra
- largely re-organise the code and variables definitions
- move the EI_VSN setting into the elrnag package
- remove the script used to compute EI_VSN, as it is no longer needed
- split host-rebar to its own patch
- add some comments

---
 package/Makefile.in  |   1 +
 package/pkg-rebar.mk | 195 +++++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 196 insertions(+)
 create mode 100644 package/pkg-rebar.mk
package/Makefile.in +1 -0
index df39afd..077851c 100644
@@ -407,3 +407,4 @@ include package/pkg-python.mk
 include package/pkg-virtual.mk
 include package/pkg-generic.mk
 include package/pkg-kconfig.mk
+include package/pkg-rebar.mk
package/pkg-rebar.mk new file +195 -0

195 lines not on this page · raw message

Signature · 1 line
1.9.1
#11 lore raw

PATCH v3 11/24 docs/manual: add documentation for the pkg-rebar infrastructure

In reply to Yann E. MORIN
[yann.morin.1998 at free.fr: split the doc into its own patch]
---
 docs/manual/adding-packages-rebar.txt | 157 ++++++++++++++++++++++++++++++++++
 docs/manual/adding-packages.txt       |   2 +
 2 files changed, 159 insertions(+)
 create mode 100644 docs/manual/adding-packages-rebar.txt
docs/manual/adding-packages-rebar.txt new file +157 -0
new file mode 100644
index 0000000..c132a4a
@@ -0,0 +1,157 @@
+// -*- mode:doc; -*-
+// vim: set syntax=asciidoc:
+
+=== Infrastructure for rebar-based packages
+
+[[rebar-package-tutorial]]
+
+==== +rebar-package+ tutorial
+
+First, let's see how to write a +.mk+ file for a rebar-based package,
+with an example :
+
+------------------------------
+01: ################################################################################
+02: #
+03: # erlang-foobar
+04: #
+05: ################################################################################
+06:
+07: ERLANG_FOOBAR_VERSION = 1.0
+08: ERLANG_FOOBAR_SOURCE = erlang-foobar-$(ERLANG_FOOBAR_VERSION).tar.gz
+09: ERLANG_FOOBAR_SITE = http://www.foosoftware.org/download
+10: ERLANG_FOOBAR_INSTALL_STAGING = YES
+11: ERLANG_FOOBAR_CONF_OPTS = --enable-bar
+12: ERLANG_FOOBAR_DEPENDENCIES = host-libaaa libbbb
+13:
+14: $(eval $(rebar-package))
+--------------------------------
+
+On line 7, we declare the version of the package.
+
+On line 8 and 9, we declare the name of the tarball (xz-ed tarball recommended)
+and the location of the tarball on the Web. Buildroot will automatically
+download the tarball from this location.
+
+On line 10, we tell Buildroot to install the package to the staging
+directory. The staging directory, located in +output/staging/+
+is the directory where all the packages are installed, including their
+development files, etc. By default, packages are not installed to the
+staging directory, since usually, only libraries need to be installed in
+the staging directory: their development files are needed to compile
+other libraries or applications depending on them.
+
+On line 11, we tell Buildroot to pass a custom configure option, that
+will be passed to the +./configure+ script before configuring
+and building the package.
+
+On line 12, we declare our dependencies, so that they are built
+before the build process of our package starts.
+
+Finally, on line line 14, we invoke the +rebar-package+
+macro that generates all the Makefile rules that actually allows the
+package to be built.
+
+[[rebar-package-reference]]
+
+==== +rebar-package+ reference
+
+The main macro of the rebar package infrastructure is
++rebar-package+. It is similar to the +generic-package+ macro. The
+ability to have target and host packages is also available, with the
++host-rebar-package+ macro.
+
+Just like the generic infrastructure, the rebar infrastructure works
+by defining a number of variables before calling the +rebar-package+
+macro.
+
+First, all the package metadata information variables that exist in
+the generic infrastructure also exist in the rebar infrastructure:
++ERLANG_FOOBAR_VERSION+, +ERLANG_FOOBAR_SOURCE+,
++ERLANG_FOOBAR_PATCH+, +ERLANG_FOOBAR_SITE+,
++ERLANG_FOOBAR_SUBDIR+, +ERLANG_FOOBAR_DEPENDENCIES+,
++ERLANG_FOOBAR_INSTALL_STAGING+, +ERLANG_FOOBAR_INSTALL_TARGET+.
+
+Note that the rebar infrastructure does not expect a configure script,
+but does call such a script when it exists.  When a package uses both
+the Autotools and rebar, it should use the rebar infrastructure.  In
+this case however, the build commands do not call make, but only
++rebar compile+; this avoids triggering the download of dependencies
+(as most Makefile's do when combined with rebar).  Also, note that the
+install commands never call +make install+.  Instead, they install
+Erlang's application directories (ebin, priv, etc.)  into a proper
+location.  If this is not what you want, add custom hooks or override
+rebar commands (see below).
+
+A few additional variables, specific to the rebar infrastructure,
+can also be defined. Many of them are only useful in very specific
+cases, typical packages will therefore only use a few of them.
+
+* +ERLANG_FOOBAR_CONF_ENV+, to specify additional environment
+  variables to pass to the configure script. By default, empty.
+
+* +ERLANG_FOOBAR_CONF_OPTS+, to specify additional configure options
+  to pass to the configure script. By default, empty.
+
+* +ERLANG_FOOBAR_AUTORECONF+, tells whether the package should be
+  autoreconfigured or not (i.e. if the configure script and
+  Makefile.in files should be re-generated by re-running autoconf,
+  automake, libtool, etc.). Valid values are +YES+ and +NO+. By
+  default, the value is +NO+
+
+* +ERLANG_FOOBAR_AUTORECONF_ENV+, to specify additional environment
+  variables to pass to the 'autoreconf' program if
+  +ERLANG_FOOBAR_AUTORECONF=YES+. These are passed in the environment
+  of the 'autoreconf' command. By default, empty.
+
+* +ERLANG_FOOBAR_AUTORECONF_OPTS+ to specify additional options passed
+  to the 'autoreconf' program if +ERLANG_FOOBAR_AUTORECONF=YES+. By
+  default, empty.
+
+* +ERLANG_FOOBAR_REBAR_ENV+, to specify additional environment
+  variables to pass to rebar.  By default, the value sets a minimal
+  PATH that only includes +HOST_DIR/bin+, +HOST_DIR/usr/bin+, and
+  +/bin+.
+
+* +ERLANG_FOOBAR_REBAR_FLAGS+, to specify rebar flags. By default, the
+  value is +deps_dir=ERLANG_FOOBAR_REBAR_DEPS_DIR+.
+
+* +ERLANG_FOOBAR_REBAR_DEPS_DIR+, to specify where to look for the
+  package's dependencies.  By default, the value is
+  +output/build/erlang-rebar-deps/target+, or
+  +output/build/erlang-rebar-deps/host+ for host packages.  Note that
+  if the package installs to staging as well, the rebar infrastructure
+  then creates a symbolic link in this directory to
+  +ERLANG_FOOBAR_ERLANG_LIBDIR+ so other packages may use it as
+  a dependency.
+
+* +ERLANG_FOOBAR_ERLANG_LIBDIR+, to specify where to install the
+  Erlang application.  By default, the value is
+  +/usr/lib/erlang/lib/ERLANG_FOOBAR_ERLANG_APP-ERLANG_FOOBAR_VERSION+.
+
+* +ERLANG_FOOBAR_ERLANG_APP+, to specify the name of the Erlang
+  application to be installed.  This modifies where the application is
+  installed (e.g., +/usr/lib/erlang/lib/ERLANG_FOOBAR_ERLANG_APP-ERLANG_FOOBAR_VERSION+)
+  and the name of the symbolic link in +ERLANG_FOOBAR_REBAR_DEPS_DIR+,
+  if any (e.g., +output/build/erlang-rebar-deps/target/ERLANG_FOOBAR_ERLANG_APP+.
+  By default, the value is the lowercase package name stripped from
+  any +erlang-+ prefix, and with dashes converted to underscores.
+
+* +ERLANG_FOOBAR_ENV+, to specify additional environment variables to
+  pass both to the configure script and rebar.  By default, sets CC,
+  CFLAGS, LDFLAGS, ERL_COMPILER_OPTIONS, and ERL_EI_LIBDIR.
+
+With the rebar infrastructure, all the steps required to build
+and install the packages are already defined, and they generally work
+well for most rebar-based packages. However, when required, it is
+still possible to customize what is done in any particular step:
+
+* By adding a post-operation hook (after extract, patch, configure,
+  build or install). See xref:hooks[] for details.
+
+* By overriding one of the steps. For example, even if the rebar
+  infrastructure is used, if the package +.mk+ file defines its
+  own +ERLANG_FOOBAR_CONFIGURE_CMDS+ variable, it will be used
+  instead of the default rebar one. However, using this method
+  should be restricted to very specific cases. Do not use it in the
+  general case.
docs/manual/adding-packages.txt +2 -0
index feb0d13..b8674f8 100644
@@ -27,6 +27,8 @@ include::adding-packages-virtual.txt[]
 
 include::adding-packages-kconfig.txt[]
 
+include::adding-packages-rebar.txt[]
+
 include::adding-packages-asciidoc.txt[]
 
 include::adding-packages-hooks.txt[]
Signature · 1 line
1.9.1
#12 lore raw

PATCH v3 12/24 erlang-goldrush: new package.

In reply to Yann E. MORIN

From: Johan Oudinet <[email protected]>

---
 package/Config.in                          |  5 +++++
 package/erlang-goldrush/Config.in          |  6 ++++++
 package/erlang-goldrush/erlang-goldrush.mk | 14 ++++++++++++++
 3 files changed, 25 insertions(+)
 create mode 100644 package/erlang-goldrush/Config.in
 create mode 100644 package/erlang-goldrush/erlang-goldrush.mk
package/Config.in +5 -0
index 28cf703..b4eaf14 100644
@@ -391,6 +391,11 @@ endmenu
 menu "Interpreter languages and scripting"
 	source "package/enscript/Config.in"
 	source "package/erlang/Config.in"
+if BR2_PACKAGE_ERLANG
+menu "Erlang libraries/modules"
+	source "package/erlang-goldrush/Config.in"
+endmenu
+endif
 	source "package/haserl/Config.in"
 	source "package/jamvm/Config.in"
 	source "package/jimtcl/Config.in"
package/erlang-goldrush/Config.in new file +6 -0
new file mode 100644
index 0000000..685a887
@@ -0,0 +1,6 @@
+config BR2_PACKAGE_ERLANG_GOLDRUSH
+	bool "erlang-goldrush"
+	depends on BR2_PACKAGE_ERLANG
+	help
+	  Goldrush is a small Erlang app that provides fast event
+	  stream processing.
package/erlang-goldrush/erlang-goldrush.mk new file +14 -0
new file mode 100644
index 0000000..7537e76
@@ -0,0 +1,14 @@
+################################################################################
+#
+# erlang-goldrush
+#
+################################################################################
+
+ERLANG_GOLDRUSH_VERSION = 0.1.6
+ERLANG_GOLDRUSH_SITE = $(call github,DeadZen,goldrush,$(ERLANG_GOLDRUSH_VERSION))
+ERLANG_GOLDRUSH_LICENSE_FILES = LICENSE
+ERLANG_GOLDRUSH_DEPENDENCIES = erlang host-erlang-rebar
+ERLANG_GOLDRUSH_INSTALL_STAGING = YES
+
+$(eval $(rebar-package))
+$(eval $(host-rebar-package))
Signature · 1 line
1.9.1
#13 lore raw

PATCH v3 13/24 erlang-lager: new package.

In reply to Yann E. MORIN

From: Johan Oudinet <[email protected]>

---
 package/Config.in                    |  1 +
 package/erlang-lager/Config.in       | 12 ++++++++++++
 package/erlang-lager/erlang-lager.mk | 14 ++++++++++++++
 3 files changed, 27 insertions(+)
 create mode 100644 package/erlang-lager/Config.in
 create mode 100644 package/erlang-lager/erlang-lager.mk
package/Config.in +1 -0
index b4eaf14..c2c0381 100644
@@ -394,6 +394,7 @@ menu "Interpreter languages and scripting"
 if BR2_PACKAGE_ERLANG
 menu "Erlang libraries/modules"
 	source "package/erlang-goldrush/Config.in"
+	source "package/erlang-lager/Config.in"
 endmenu
 endif
 	source "package/haserl/Config.in"
package/erlang-lager/Config.in new file +12 -0
new file mode 100644
index 0000000..f83239e
@@ -0,0 +1,12 @@
+config BR2_PACKAGE_ERLANG_LAGER
+	bool "erlang-lager"
+	depends on BR2_PACKAGE_ERLANG
+	select BR2_PACKAGE_ERLANG_GOLDRUSH
+	help
+	  Logging framework for Erlang.
+	  
+	  Lager (as in the beer) is a logging framework for
+	  Erlang. Its purpose is to provide a more traditional way to
+	  perform logging in an erlang application that plays nicely
+	  with traditional UNIX logging tools like logrotate and
+	  syslog.
package/erlang-lager/erlang-lager.mk new file +14 -0
new file mode 100644
index 0000000..b530c8e
@@ -0,0 +1,14 @@
+################################################################################
+#
+# erlang-lager
+#
+################################################################################
+
+ERLANG_LAGER_VERSION = 2.0.3
+ERLANG_LAGER_SITE = $(call github,basho,lager,$(ERLANG_LAGER_VERSION))
+ERLANG_LAGER_LICENSE = Apache-2.0
+ERLANG_LAGER_LICENSE_FILES = LICENSE
+ERLANG_LAGER_DEPENDENCIES = erlang erlang-goldrush
+
+$(eval $(rebar-package))
+$(eval $(host-rebar-package))
Signature · 1 line
1.9.1
#14 lore raw

PATCH v3 14/24 erlang-p1-zlib: new package.

In reply to Yann E. MORIN

From: Johan Oudinet <[email protected]>

---
 package/Config.in                        |  1 +
 package/erlang-p1-zlib/Config.in         |  5 +++++
 package/erlang-p1-zlib/erlang-p1-zlib.mk | 13 +++++++++++++
 3 files changed, 19 insertions(+)
 create mode 100644 package/erlang-p1-zlib/Config.in
 create mode 100644 package/erlang-p1-zlib/erlang-p1-zlib.mk
package/Config.in +1 -0
index c2c0381..f394e7d 100644
@@ -395,6 +395,7 @@ if BR2_PACKAGE_ERLANG
 menu "Erlang libraries/modules"
 	source "package/erlang-goldrush/Config.in"
 	source "package/erlang-lager/Config.in"
+	source "package/erlang-p1-zlib/Config.in"
 endmenu
 endif
 	source "package/haserl/Config.in"
package/erlang-p1-zlib/Config.in new file +5 -0
new file mode 100644
index 0000000..3d4f455
@@ -0,0 +1,5 @@
+config BR2_PACKAGE_ERLANG_P1_ZLIB
+	bool "erlang-p1-zlib"
+	depends on BR2_PACKAGE_ERLANG
+	help
+	  Erlang interface to zlib
package/erlang-p1-zlib/erlang-p1-zlib.mk new file +13 -0
new file mode 100644
index 0000000..84ecb35
@@ -0,0 +1,13 @@
+################################################################################
+#
+# erlang-p1-zlib
+#
+################################################################################
+
+ERLANG_P1_ZLIB_VERSION = 52e82bb
+ERLANG_P1_ZLIB_SITE = $(call github,processone,zlib,$(ERLANG_P1_ZLIB_VERSION))
+ERLANG_P1_ZLIB_LICENSE = GPLv2+
+ERLANG_P1_ZLIB_LICENSE_FILES = COPYING
+ERLANG_P1_ZLIB_DEPENDENCIES = erlang
+
+$(eval $(rebar-package))
Signature · 1 line
1.9.1
#15 lore raw

PATCH v3 15/24 erlang-p1-yaml: new package.

In reply to Yann E. MORIN

From: Johan Oudinet <[email protected]>

---
 package/Config.in                        |  1 +
 package/erlang-p1-yaml/Config.in         |  6 ++++++
 package/erlang-p1-yaml/erlang-p1-yaml.mk | 13 +++++++++++++
 3 files changed, 20 insertions(+)
 create mode 100644 package/erlang-p1-yaml/Config.in
 create mode 100644 package/erlang-p1-yaml/erlang-p1-yaml.mk
package/Config.in +1 -0
index f394e7d..bd82388 100644
@@ -395,6 +395,7 @@ if BR2_PACKAGE_ERLANG
 menu "Erlang libraries/modules"
 	source "package/erlang-goldrush/Config.in"
 	source "package/erlang-lager/Config.in"
+	source "package/erlang-p1-yaml/Config.in"
 	source "package/erlang-p1-zlib/Config.in"
 endmenu
 endif
package/erlang-p1-yaml/Config.in new file +6 -0
new file mode 100644
index 0000000..423ef3f
@@ -0,0 +1,6 @@
+config BR2_PACKAGE_ERLANG_P1_YAML
+	bool "erlang-p1-yaml"
+	depends on BR2_PACKAGE_ERLANG
+	select BR2_PACKAGE_LIBYAML
+	help
+	  Erlang wrapper for libyaml C library
package/erlang-p1-yaml/erlang-p1-yaml.mk new file +13 -0
new file mode 100644
index 0000000..990c3a7
@@ -0,0 +1,13 @@
+################################################################################
+#
+# erlang-p1-yaml
+#
+################################################################################
+
+ERLANG_P1_YAML_VERSION = 236b943
+ERLANG_P1_YAML_SITE = $(call github,processone,p1_yaml,$(ERLANG_P1_YAML_VERSION))
+ERLANG_P1_YAML_LICENSE = Apache-2.0
+ERLANG_P1_YAML_LICENSE_FILES = COPYING
+ERLANG_P1_YAML_DEPENDENCIES = erlang libyaml
+
+$(eval $(rebar-package))
Signature · 1 line
1.9.1
#16 lore raw

PATCH v3 16/24 erlang-p1-xml: new package.

In reply to Yann E. MORIN

From: Johan Oudinet <[email protected]>

---
 package/Config.in                      |  1 +
 package/erlang-p1-xml/Config.in        |  6 ++++++
 package/erlang-p1-xml/erlang-p1-xml.mk | 14 ++++++++++++++
 3 files changed, 21 insertions(+)
 create mode 100644 package/erlang-p1-xml/Config.in
 create mode 100644 package/erlang-p1-xml/erlang-p1-xml.mk
package/Config.in +1 -0
index bd82388..da13e8b 100644
@@ -395,6 +395,7 @@ if BR2_PACKAGE_ERLANG
 menu "Erlang libraries/modules"
 	source "package/erlang-goldrush/Config.in"
 	source "package/erlang-lager/Config.in"
+	source "package/erlang-p1-xml/Config.in"
 	source "package/erlang-p1-yaml/Config.in"
 	source "package/erlang-p1-zlib/Config.in"
 endmenu
package/erlang-p1-xml/Config.in new file +6 -0
new file mode 100644
index 0000000..85fe02f
@@ -0,0 +1,6 @@
+config BR2_PACKAGE_ERLANG_P1_XML
+	bool "erlang-p1-xml"
+	depends on BR2_PACKAGE_ERLANG
+	select BR2_PACKAGE_EXPAT
+	help
+	  XML utilities for Erlang
package/erlang-p1-xml/erlang-p1-xml.mk new file +14 -0
new file mode 100644
index 0000000..5f43ccb
@@ -0,0 +1,14 @@
+################################################################################
+#
+# erlang-p1-xml
+#
+################################################################################
+
+ERLANG_P1_XML_VERSION = b530983
+ERLANG_P1_XML_SITE = $(call github,processone,xml,$(ERLANG_P1_XML_VERSION))
+ERLANG_P1_XML_LICENSE = GPLv2
+ERLANG_P1_XML_LICENSE_FILES = COPYING
+ERLANG_P1_XML_DEPENDENCIES = erlang expat
+ERLANG_P1_XML_INSTALL_STAGING = YES
+
+$(eval $(rebar-package))
Signature · 1 line
1.9.1
#17 lore raw

PATCH v3 17/24 erlang-p1-utils: new package.

In reply to Yann E. MORIN

From: Johan Oudinet <[email protected]>

---
 package/Config.in                          |  1 +
 package/erlang-p1-utils/Config.in          |  5 +++++
 package/erlang-p1-utils/erlang-p1-utils.mk | 14 ++++++++++++++
 3 files changed, 20 insertions(+)
 create mode 100644 package/erlang-p1-utils/Config.in
 create mode 100644 package/erlang-p1-utils/erlang-p1-utils.mk
package/Config.in +1 -0
index da13e8b..7f6fee9 100644
@@ -395,6 +395,7 @@ if BR2_PACKAGE_ERLANG
 menu "Erlang libraries/modules"
 	source "package/erlang-goldrush/Config.in"
 	source "package/erlang-lager/Config.in"
+	source "package/erlang-p1-utils/Config.in"
 	source "package/erlang-p1-xml/Config.in"
 	source "package/erlang-p1-yaml/Config.in"
 	source "package/erlang-p1-zlib/Config.in"
package/erlang-p1-utils/Config.in new file +5 -0
new file mode 100644
index 0000000..a544eed
@@ -0,0 +1,5 @@
+config BR2_PACKAGE_ERLANG_P1_UTILS
+	bool "erlang-p1-utils"
+	depends on BR2_PACKAGE_ERLANG
+	help
+	  Set of small Erlang libraries
package/erlang-p1-utils/erlang-p1-utils.mk new file +14 -0
new file mode 100644
index 0000000..23e2c63
@@ -0,0 +1,14 @@
+################################################################################
+#
+# erlang-p1-utils
+#
+################################################################################
+
+ERLANG_P1_UTILS_VERSION = 940f42d
+ERLANG_P1_UTILS_SITE = $(call github,processone,p1_utils,$(ERLANG_P1_UTILS_VERSION))
+ERLANG_P1_UTILS_LICENSE = GPLv2+
+ERLANG_P1_UTILS_LICENSE_FILES = COPYING
+ERLANG_P1_UTILS_DEPENDENCIES = erlang
+ERLANG_P1_UTILS_INSTALL_STAGING = YES
+
+$(eval $(rebar-package))
Signature · 1 line
1.9.1
#18 lore raw

PATCH v3 18/24 erlang-p1-tls: new package.

In reply to Yann E. MORIN

From: Johan Oudinet <[email protected]>

---
 package/Config.in                      |  1 +
 package/erlang-p1-tls/Config.in        |  5 +++++
 package/erlang-p1-tls/erlang-p1-tls.mk | 14 ++++++++++++++
 3 files changed, 20 insertions(+)
 create mode 100644 package/erlang-p1-tls/Config.in
 create mode 100644 package/erlang-p1-tls/erlang-p1-tls.mk
package/Config.in +1 -0
index 7f6fee9..21c4071 100644
@@ -395,6 +395,7 @@ if BR2_PACKAGE_ERLANG
 menu "Erlang libraries/modules"
 	source "package/erlang-goldrush/Config.in"
 	source "package/erlang-lager/Config.in"
+	source "package/erlang-p1-tls/Config.in"
 	source "package/erlang-p1-utils/Config.in"
 	source "package/erlang-p1-xml/Config.in"
 	source "package/erlang-p1-yaml/Config.in"
package/erlang-p1-tls/Config.in new file +5 -0
new file mode 100644
index 0000000..1aa53bc
@@ -0,0 +1,5 @@
+config BR2_PACKAGE_ERLANG_P1_TLS
+	bool "erlang-p1-tls"
+	depends on BR2_PACKAGE_ERLANG
+	help
+	  Erlang interface to OpenSSL
package/erlang-p1-tls/erlang-p1-tls.mk new file +14 -0
new file mode 100644
index 0000000..a884377
@@ -0,0 +1,14 @@
+################################################################################
+#
+# erlang-p1-tls
+#
+################################################################################
+
+ERLANG_P1_TLS_VERSION = 53f0478
+ERLANG_P1_TLS_SITE = $(call github,processone,tls,$(ERLANG_P1_TLS_VERSION))
+ERLANG_P1_TLS_LICENSE = GPLv2+
+ERLANG_P1_TLS_LICENSE_FILES = COPYING
+ERLANG_P1_TLS_DEPENDENCIES = erlang
+ERLANG_P1_TLS_INSTALL_STAGING = YES
+
+$(eval $(rebar-package))
Signature · 1 line
1.9.1
#19 lore raw

PATCH v3 19/24 erlang-p1-stun: new package.

In reply to Yann E. MORIN

From: Johan Oudinet <[email protected]>

---
 package/Config.in                        |  1 +
 package/erlang-p1-stun/Config.in         |  7 +++++++
 package/erlang-p1-stun/erlang-p1-stun.mk | 14 ++++++++++++++
 3 files changed, 22 insertions(+)
 create mode 100644 package/erlang-p1-stun/Config.in
 create mode 100644 package/erlang-p1-stun/erlang-p1-stun.mk
package/Config.in +1 -0
index 21c4071..52c597a 100644
@@ -395,6 +395,7 @@ if BR2_PACKAGE_ERLANG
 menu "Erlang libraries/modules"
 	source "package/erlang-goldrush/Config.in"
 	source "package/erlang-lager/Config.in"
+	source "package/erlang-p1-stun/Config.in"
 	source "package/erlang-p1-tls/Config.in"
 	source "package/erlang-p1-utils/Config.in"
 	source "package/erlang-p1-xml/Config.in"
package/erlang-p1-stun/Config.in new file +7 -0
new file mode 100644
index 0000000..bbe6bae
@@ -0,0 +1,7 @@
+config BR2_PACKAGE_ERLANG_P1_STUN
+	bool "erlang-p1-stun"
+	depends on BR2_PACKAGE_ERLANG
+	select BR2_PACKAGE_ERLANG_P1_TLS
+	select BR2_PACKAGE_ERLANG_P1_UTILS
+	help
+	  STUN library for Erlang
package/erlang-p1-stun/erlang-p1-stun.mk new file +14 -0
new file mode 100644
index 0000000..d963caa
@@ -0,0 +1,14 @@
+################################################################################
+#
+# erlang-p1-stun
+#
+################################################################################
+
+ERLANG_P1_STUN_VERSION = a7c07b6
+ERLANG_P1_STUN_SITE = $(call github,processone,stun,$(ERLANG_P1_STUN_VERSION))
+ERLANG_P1_STUN_LICENSE = GPLv2+
+ERLANG_P1_STUN_LICENSE_FILES = COPYING
+ERLANG_P1_STUN_DEPENDENCIES = erlang host-erlang-rebar erlang-p1-tls erlang-p1-utils
+ERLANG_P1_STUN_INSTALL_STAGING = YES
+
+$(eval $(rebar-package))
Signature · 1 line
1.9.1
#20 lore raw

PATCH v3 20/24 erlang-p1-stringprep: new package.

In reply to Yann E. MORIN

From: Johan Oudinet <[email protected]>

---
 package/Config.in                                    |  1 +
 package/erlang-p1-stringprep/Config.in               |  5 +++++
 package/erlang-p1-stringprep/erlang-p1-stringprep.mk | 13 +++++++++++++
 3 files changed, 19 insertions(+)
 create mode 100644 package/erlang-p1-stringprep/Config.in
 create mode 100644 package/erlang-p1-stringprep/erlang-p1-stringprep.mk
package/Config.in +1 -0
index 52c597a..5656a1a 100644
@@ -395,6 +395,7 @@ if BR2_PACKAGE_ERLANG
 menu "Erlang libraries/modules"
 	source "package/erlang-goldrush/Config.in"
 	source "package/erlang-lager/Config.in"
+	source "package/erlang-p1-stringprep/Config.in"
 	source "package/erlang-p1-stun/Config.in"
 	source "package/erlang-p1-tls/Config.in"
 	source "package/erlang-p1-utils/Config.in"
package/erlang-p1-stringprep/Config.in new file +5 -0
new file mode 100644
index 0000000..eaaa59e
@@ -0,0 +1,5 @@
+config BR2_PACKAGE_ERLANG_P1_STRINGPREP
+	bool "erlang-p1-stringprep"
+	depends on BR2_PACKAGE_ERLANG
+	help
+	  Erlang interface to stringprep
package/erlang-p1-stringprep/erlang-p1-stringprep.mk new file +13 -0
new file mode 100644
index 0000000..b83e106
@@ -0,0 +1,13 @@
+################################################################################
+#
+# erlang-p1-stringprep
+#
+################################################################################
+
+ERLANG_P1_STRINGPREP_VERSION = 9e9e0f8
+ERLANG_P1_STRINGPREP_SITE = $(call github,processone,stringprep,$(ERLANG_P1_STRINGPREP_VERSION))
+ERLANG_P1_STRINGPREP_LICENSE = GPLv2+
+ERLANG_P1_STRINGPREP_LICENSE_FILES = LICENSE.TCL
+ERLANG_P1_STRINGPREP_DEPENDENCIES = erlang
+
+$(eval $(rebar-package))
Signature · 1 line
1.9.1
#21 lore raw

PATCH v3 21/24 erlang-p1-sip: new package.

In reply to Yann E. MORIN

From: Johan Oudinet <[email protected]>

---
 package/Config.in                                     |  1 +
 package/erlang-p1-sip/Config.in                       |  8 ++++++++
 .../erlang-p1-sip/erlang-p1-sip-01-fix-includes.patch | 19 +++++++++++++++++++
 package/erlang-p1-sip/erlang-p1-sip.mk                | 14 ++++++++++++++
 4 files changed, 42 insertions(+)
 create mode 100644 package/erlang-p1-sip/Config.in
 create mode 100644 package/erlang-p1-sip/erlang-p1-sip-01-fix-includes.patch
 create mode 100644 package/erlang-p1-sip/erlang-p1-sip.mk
package/Config.in +1 -0
index 5656a1a..8abd6a6 100644
@@ -395,6 +395,7 @@ if BR2_PACKAGE_ERLANG
 menu "Erlang libraries/modules"
 	source "package/erlang-goldrush/Config.in"
 	source "package/erlang-lager/Config.in"
+	source "package/erlang-p1-sip/Config.in"
 	source "package/erlang-p1-stringprep/Config.in"
 	source "package/erlang-p1-stun/Config.in"
 	source "package/erlang-p1-tls/Config.in"
package/erlang-p1-sip/Config.in new file +8 -0
new file mode 100644
index 0000000..64a12b1
@@ -0,0 +1,8 @@
+config BR2_PACKAGE_ERLANG_P1_SIP
+	bool "erlang-p1-sip"
+	depends on BR2_PACKAGE_ERLANG
+	select BR2_PACKAGE_ERLANG_P1_STUN
+	select BR2_PACKAGE_ERLANG_P1_TLS
+	select BR2_PACKAGE_ERLANG_P1_UTILS
+	help
+	  SIP library for Erlang
package/erlang-p1-sip/erlang-p1-sip-01-fix-includes.patch new file +19 -0
new file mode 100644
index 0000000..80e2ab3
@@ -0,0 +1,19 @@
+Description: correct include
+ This part of the code was moved into it's own project and was packaged
+ separately by me. To make the build process work, this small fix is
+ necessary.
+Author: Philipp Huebner <[email protected]>
+
+Index: erlang-p1-sip/src/esip_socket.erl
+===================================================================
+--- erlang-p1-sip.orig/src/esip_socket.erl
++++ erlang-p1-sip/src/esip_socket.erl
+@@ -22,7 +22,7 @@
+ 
+ -include("esip.hrl").
+ -include("esip_lib.hrl").
+--include("stun.hrl").
++-include_lib("p1_stun/include/stun.hrl").
+ 
+ -define(TCP_SEND_TIMEOUT, 15000).
+ -define(CONNECT_TIMEOUT, 20000).
package/erlang-p1-sip/erlang-p1-sip.mk new file +14 -0
new file mode 100644
index 0000000..d38ff2b
@@ -0,0 +1,14 @@
+################################################################################
+#
+# erlang-p1-sip
+#
+################################################################################
+
+ERLANG_P1_SIP_VERSION = bba4459
+ERLANG_P1_SIP_SITE = $(call github,processone,p1_sip,$(ERLANG_P1_SIP_VERSION))
+ERLANG_P1_SIP_LICENSE = GPLv2
+ERLANG_P1_SIP_LICENSE_FILES = COPYING
+ERLANG_P1_SIP_DEPENDENCIES = erlang erlang-p1-stun erlang-p1-tls erlang-p1-utils
+ERLANG_P1_SIP_INSTALL_STAGING = YES
+
+$(eval $(rebar-package))
Signature · 1 line
1.9.1
#22 lore raw

PATCH v3 22/24 erlang-p1-iconv: new package.

In reply to Yann E. MORIN

From: Johan Oudinet <[email protected]>

---
 package/Config.in                          |  1 +
 package/erlang-p1-iconv/Config.in          |  6 ++++++
 package/erlang-p1-iconv/erlang-p1-iconv.mk | 17 +++++++++++++++++
 3 files changed, 24 insertions(+)
 create mode 100644 package/erlang-p1-iconv/Config.in
 create mode 100644 package/erlang-p1-iconv/erlang-p1-iconv.mk
package/Config.in +1 -0
index 8abd6a6..bda3674 100644
@@ -395,6 +395,7 @@ if BR2_PACKAGE_ERLANG
 menu "Erlang libraries/modules"
 	source "package/erlang-goldrush/Config.in"
 	source "package/erlang-lager/Config.in"
+	source "package/erlang-p1-iconv/Config.in"
 	source "package/erlang-p1-sip/Config.in"
 	source "package/erlang-p1-stringprep/Config.in"
 	source "package/erlang-p1-stun/Config.in"
package/erlang-p1-iconv/Config.in new file +6 -0
new file mode 100644
index 0000000..53876bf
@@ -0,0 +1,6 @@
+config BR2_PACKAGE_ERLANG_P1_ICONV
+	bool "erlang-p1-iconv"
+	depends on BR2_PACKAGE_ERLANG
+	select BR2_PACKAGE_LIBICONV if !BR2_ENABLE_LOCALE
+	help
+	  Erlang interface to libiconv
package/erlang-p1-iconv/erlang-p1-iconv.mk new file +17 -0
new file mode 100644
index 0000000..e810a9d
@@ -0,0 +1,17 @@
+################################################################################
+#
+# erlang-p1-iconv
+#
+################################################################################
+
+ERLANG_P1_ICONV_VERSION = dff5ee5
+ERLANG_P1_ICONV_SITE = $(call github,processone,eiconv,$(ERLANG_P1_ICONV_VERSION))
+ERLANG_P1_ICONV_LICENSE = GPLv2+
+ERLANG_P1_ICONV_LICENSE_FILES = COPYING
+ERLANG_P1_ICONV_DEPENDENCIES = erlang
+
+ifeq ($(BR2_PACKAGE_LIBICONV),y)
+ERLANG_P1_ICONV_DEPENDENCIES += libiconv
+endif
+
+$(eval $(rebar-package))
Signature · 1 line
1.9.1
#23 lore raw

PATCH v3 23/24 erlang-p1-cache-tab: new package.

In reply to Yann E. MORIN

From: Johan Oudinet <[email protected]>

---
 package/Config.in                                  |  1 +
 package/erlang-p1-cache-tab/Config.in              |  6 ++++++
 package/erlang-p1-cache-tab/erlang-p1-cache-tab.mk | 13 +++++++++++++
 3 files changed, 20 insertions(+)
 create mode 100644 package/erlang-p1-cache-tab/Config.in
 create mode 100644 package/erlang-p1-cache-tab/erlang-p1-cache-tab.mk
package/Config.in +1 -0
index bda3674..84f919a 100644
@@ -395,6 +395,7 @@ if BR2_PACKAGE_ERLANG
 menu "Erlang libraries/modules"
 	source "package/erlang-goldrush/Config.in"
 	source "package/erlang-lager/Config.in"
+	source "package/erlang-p1-cache-tab/Config.in"
 	source "package/erlang-p1-iconv/Config.in"
 	source "package/erlang-p1-sip/Config.in"
 	source "package/erlang-p1-stringprep/Config.in"
package/erlang-p1-cache-tab/Config.in new file +6 -0
new file mode 100644
index 0000000..6d1f889
@@ -0,0 +1,6 @@
+config BR2_PACKAGE_ERLANG_P1_CACHE_TAB
+	bool "erlang-p1-cache-tab"
+	depends on BR2_PACKAGE_ERLANG
+	select BR2_PACKAGE_ERLANG_P1_UTILS
+	help
+	  Erlang library implementing cache tables
package/erlang-p1-cache-tab/erlang-p1-cache-tab.mk new file +13 -0
new file mode 100644
index 0000000..0f0b637
@@ -0,0 +1,13 @@
+################################################################################
+#
+# erlang-p1-cache-tab
+#
+################################################################################
+
+ERLANG_P1_CACHE_TAB_VERSION = 7b89d6a
+ERLANG_P1_CACHE_TAB_SITE = $(call github,processone,cache_tab,$(ERLANG_P1_CACHE_TAB_VERSION))
+ERLANG_P1_CACHE_TAB_LICENSE = GPLv2+
+ERLANG_P1_CACHE_TAB_LICENSE_FILES = COPYING
+ERLANG_P1_CACHE_TAB_DEPENDENCIES = erlang erlang-p1-utils
+
+$(eval $(rebar-package))
Signature · 1 line
1.9.1
#24 lore raw

PATCH v3 24/24 ejabberd: new package.

In reply to Yann E. MORIN

From: Johan Oudinet <[email protected]>

---
 package/Config.in                                  |  1 +
 package/ejabberd/0001-remove-deps.patch            | 20 +++++
 package/ejabberd/0002-disable-rebar-deps.patch     | 70 +++++++++++++++
 package/ejabberd/0003-disable-test.patch           | 21 +++++
 package/ejabberd/0004-disable-version-check.patch  | 20 +++++
 package/ejabberd/0005-fix-includes.patch           | 45 ++++++++++
 package/ejabberd/0006-remove-doc.patch             | 26 ++++++
 package/ejabberd/0007-fix-init.patch               | 99 ++++++++++++++++++++++
 .../ejabberd/0008-fix-install-permissions.patch    | 76 +++++++++++++++++
 package/ejabberd/Config.in                         | 21 +++++
 package/ejabberd/S50ejabberd                       | 35 ++++++++
 package/ejabberd/check-erlang-lib                  | 55 ++++++++++++
 package/ejabberd/ejabberd.mk                       | 51 +++++++++++
 13 files changed, 540 insertions(+)
 create mode 100644 package/ejabberd/0001-remove-deps.patch
 create mode 100644 package/ejabberd/0002-disable-rebar-deps.patch
 create mode 100644 package/ejabberd/0003-disable-test.patch
 create mode 100644 package/ejabberd/0004-disable-version-check.patch
 create mode 100644 package/ejabberd/0005-fix-includes.patch
 create mode 100644 package/ejabberd/0006-remove-doc.patch
 create mode 100644 package/ejabberd/0007-fix-init.patch
 create mode 100644 package/ejabberd/0008-fix-install-permissions.patch
 create mode 100644 package/ejabberd/Config.in
 create mode 100644 package/ejabberd/S50ejabberd
 create mode 100755 package/ejabberd/check-erlang-lib
 create mode 100644 package/ejabberd/ejabberd.mk
package/Config.in +1 -0
index 84f919a..1695cbe 100644
@@ -1015,6 +1015,7 @@ endif
 	source "package/dnsmasq/Config.in"
 	source "package/dropbear/Config.in"
 	source "package/ebtables/Config.in"
+	source "package/ejabberd/Config.in"
 	source "package/ethtool/Config.in"
 	source "package/faifa/Config.in"
 	source "package/fmc/Config.in"
package/ejabberd/0001-remove-deps.patch new file +20 -0
new file mode 100644
index 0000000..1982ca8
@@ -0,0 +1,20 @@
+Description: remove make targets for deps
+ Without this patch, dependencies would be downloaded and compiled
+ using rebar at build time.
+Author: Philipp Huebner <[email protected]>
+
+Index: ejabberd/rebar.config.script
+===================================================================
+--- ejabberd.orig/rebar.config.script
++++ ejabberd/rebar.config.script
+@@ -126,9 +126,7 @@ Config = [{erl_opts, Macros ++ HiPE ++ D
+           {sub_dirs, ["rel"]},
+           {keep_build_info, true},
+           {ct_extra_params, "-include "
+-           ++ filename:join([Cwd, "tools"])},
+-          {post_hooks, PostHooks ++ CfgPostHooks},
+-          {deps, Deps ++ CfgDeps}],
++           ++ filename:join([Cwd, "tools"])}],
+ %%io:format("ejabberd configuration:~n  ~p~n", [Config]),
+ Config.
+ 
package/ejabberd/0002-disable-rebar-deps.patch new file +70 -0

70 lines not on this page · raw message

package/ejabberd/0003-disable-test.patch new file +21 -0
new file mode 100644
index 0000000..4354ab6
@@ -0,0 +1,21 @@
+Description: remove testing with MySQL and PostgreSQL
+ Without this patch a test would be initiated after building ejabberd that
+ requires specially configured instances of MySQL and PostgreSQL to be up
+ and running.
+Author: Philipp Huebner <[email protected]>
+
+Index: ejabberd/Makefile.in
+===================================================================
+--- ejabberd.orig/Makefile.in
++++ ejabberd/Makefile.in
+@@ -260,10 +260,6 @@ dialyzer: erlang_plt deps_plt ejabberd_p
+ 	status=$$? ; if [ $$status -ne 2 ]; then exit $$status; else exit 0; fi
+ 
+ test:
+-	@echo "************************** NOTICE ***************************************"
+-	@cat test/README
+-	@echo "*************************************************************************"
+-	$(REBAR) skip_deps=true ct
+ 
+ .PHONY: src doc edoc dialyzer Makefile TAGS clean clean-rel distclean rel \
+ 	install uninstall uninstall-binary uninstall-all translations deps test spec \
package/ejabberd/0004-disable-version-check.patch new file +20 -0
new file mode 100644
index 0000000..f2f1e81
@@ -0,0 +1,20 @@
+Description: remove checking erlang version
+ Without this patch, the configure will try to run erlang to simply check if
+ the version is supported by ejabberd. Instead, we do this test statically.
+Author: Johan Oudinet <[email protected]>
+
+Index: ejabberd/configure.ac
+===================================================================
+--- ejabberd.orig/configure.ac	2014-10-20 11:04:14.751256865 +0200
++++ ejabberd/configure.ac	2014-10-20 11:03:47.983578623 +0200
+@@ -37,10 +37,8 @@ AC_ARG_ENABLE(erlang-version-check,
+ 	[Check Erlang/OTP version @<:@default=yes@:>@])])
+ case "$enable_erlang_version_check" in
+ 	yes|'')
+-		ERLANG_VERSION_CHECK([$REQUIRE_ERLANG_MIN],[$REQUIRE_ERLANG_MAX])
+ 		;;
+ 	no)
+-		ERLANG_VERSION_CHECK([$REQUIRE_ERLANG_MIN],[$REQUIRE_ERLANG_MAX],[warn])
+ 		;;
+ esac
+ 
package/ejabberd/0005-fix-includes.patch new file +45 -0

45 lines not on this page · raw message

package/ejabberd/0006-remove-doc.patch new file +26 -0
new file mode 100644
index 0000000..0c0a21b
@@ -0,0 +1,26 @@
+Description: remove installing documentation
+ Without this patch, the Makefile will try to install ejabberd
+ documentation even if it is not generated, which will fail.
+Author: Johan Oudinet <[email protected]>
+
+Index: ejabberd/Makefile.in
+===================================================================
+--- ejabberd.orig/Makefile.in	2014-10-21 16:43:42.604972005 +0200
++++ ejabberd/Makefile.in	2014-10-21 16:45:12.419989667 +0200
+@@ -156,16 +156,6 @@ install: all
+ 	$(INSTALL) -d -m 750 $(O_USER) $(LOGDIR)
+ 	$(CHOWN_COMMAND) -R @INSTALLUSER@ $(LOGDIR) >$(CHOWN_OUTPUT)
+ 	chmod -R 750 $(LOGDIR)
+-	#
+-	# Documentation
+-	$(INSTALL) -d $(DOCDIR)
+-	$(INSTALL) -m 644 doc/dev.html $(DOCDIR)
+-	$(INSTALL) -m 644 doc/guide.html $(DOCDIR)
+-	$(INSTALL) -m 644 doc/*.png $(DOCDIR)
+-	[ -f doc/guide.pdf ] \
+-		&& $(INSTALL) -m 644 doc/guide.pdf $(DOCDIR) \
+-		|| echo "No doc/guide.pdf was built"
+-	$(INSTALL) -m 644 COPYING $(DOCDIR)
+ 
+ uninstall: uninstall-binary
+ 
package/ejabberd/0007-fix-init.patch new file +99 -0

99 lines not on this page · raw message

package/ejabberd/0008-fix-install-permissions.patch new file +76 -0

76 lines not on this page · raw message

package/ejabberd/Config.in new file +21 -0
new file mode 100644
index 0000000..2a8d274
@@ -0,0 +1,21 @@
+config BR2_PACKAGE_EJABBERD
+	bool "ejabberd"
+	depends on BR2_PACKAGE_ERLANG
+	select BR2_PACKAGE_ERLANG_LAGER
+	select BR2_PACKAGE_ERLANG_P1_CACHE_TAB
+	select BR2_PACKAGE_ERLANG_P1_ICONV
+	select BR2_PACKAGE_ERLANG_P1_SIP
+	select BR2_PACKAGE_ERLANG_P1_STRINGPREP
+	select BR2_PACKAGE_ERLANG_P1_XML
+	select BR2_PACKAGE_ERLANG_P1_YAML
+	select BR2_PACKAGE_ERLANG_P1_ZLIB
+	select BR2_PACKAGE_OPENSSL
+	help
+	  Ejabberd is a Jabber/XMPP instant messaging server, written
+	  in Erlang/OTP. Among other features, ejabberd is
+	  cross-platform, fault-tolerant, clusterable and modular.
+
+	  http://www.ejabberd.im
+
+comment "Ejabberd needs a toolchain w/ Erlang"
+	depends on !BR2_PACKAGE_ERLANG
package/ejabberd/S50ejabberd new file +35 -0
new file mode 100644
index 0000000..2656307
@@ -0,0 +1,35 @@
+#!/bin/sh
+#
+# Start/stop ejabberd
+#
+
+USER=ejabberd
+RUNDIR=/var/run/ejabberd
+
+mkrundir() {
+    install -d -o $USER -g $USER $RUNDIR
+}
+
+case "$1" in
+    start)
+	mkrundir
+        echo "Starting ejabberd..."
+        ejabberdctl start
+        ;;
+    stop)
+        echo -n "Stopping ejabberd... "
+        ejabberdctl stop > /dev/null
+        if [ $? -eq 3 ] || ejabberdctl stopped; then
+            echo "OK"
+        else
+            echo "failed"
+        fi
+        ;;
+    restart|reload)
+        "$0" stop
+        "$0" start
+        ;;
+    *)
+        echo "Usage: $0 {start|stop|restart}"
+        exit 1
+esac
package/ejabberd/check-erlang-lib new file +55 -0

55 lines not on this page · raw message

package/ejabberd/ejabberd.mk new file +51 -0

51 lines not on this page · raw message

Signature · 1 line
1.9.1
#25 lore raw

v3 cover ejabberd: XMPP server (branch yem/ejabberd)

In reply to Yann E. MORIN

Yann, Johan,

Quoted 17 lines · Yann E. MORIN

----------------------------------------------------------------
Johan Oudinet (14):
package/pkg-rebar: new infrastructure
erlang-goldrush: new package.
erlang-lager: new package.
erlang-p1-zlib: new package.
erlang-p1-yaml: new package.
erlang-p1-xml: new package.
erlang-p1-utils: new package.
erlang-p1-tls: new package.
erlang-p1-stun: new package.
erlang-p1-stringprep: new package.
erlang-p1-sip: new package.
erlang-p1-iconv: new package.
erlang-p1-cache-tab: new package.
ejabberd: new package.

Quoted 8 lines

Yann E. MORIN (10):
pkg-autotools: move common macros
pkg-autotools: re-order cleaning up the host dependencies
pkg-autotools: commonalise the libtool patching code
pkg-autotools: move the libtool patching call out of the autoreconf hook
pkg-autotools: remove redundant shell conditional
pkg-autotools: fold the libtool patching code directly into the hook
pkg-autotools: only apply libtool patch at the right moment

I've applied all the pkg-autotools patches of this series. As discussed on IRC, I've changed back the authorship of patches 1, 3, 4 to Johan, who is actually the author of those patches.

I haven't yet looked at the rest of the series, but at least it's 7 less patches for you to carry in your branch.

Best regards,

Thomas

Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
#26 lore raw

v3 cover ejabberd: XMPP server (branch yem/ejabberd)

Yann, Thomas, All,

Quoted 28 lines · Thomas Petazzoni
Quoted 17 lines · Yann E. MORIN

----------------------------------------------------------------
Johan Oudinet (14):
package/pkg-rebar: new infrastructure
erlang-goldrush: new package.
erlang-lager: new package.
erlang-p1-zlib: new package.
erlang-p1-yaml: new package.
erlang-p1-xml: new package.
erlang-p1-utils: new package.
erlang-p1-tls: new package.
erlang-p1-stun: new package.
erlang-p1-stringprep: new package.
erlang-p1-sip: new package.
erlang-p1-iconv: new package.
erlang-p1-cache-tab: new package.
ejabberd: new package.

Quoted 8 lines

Yann E. MORIN (10):
pkg-autotools: move common macros
pkg-autotools: re-order cleaning up the host dependencies
pkg-autotools: commonalise the libtool patching code
pkg-autotools: move the libtool patching call out of the autoreconf hook
pkg-autotools: remove redundant shell conditional
pkg-autotools: fold the libtool patching code directly into the hook
pkg-autotools: only apply libtool patch at the right moment

Quoted 6 lines

I've applied all the pkg-autotools patches of this series. As discussed on IRC, I've changed back the authorship of patches 1, 3, 4 to Johan, who is actually the author of those patches.

I haven't yet looked at the rest of the series, but at least it's 7 less patches for you to carry in your branch.

Thanks Thomas for having applied these patches.

I've looked into Yann's branch and made some modifications to fix the compilation and runtime errors.
I've also find out and fix the issue with erl_interface, which ld does not find if we compile an erlang library after finalizing make once:
It's because rebar was looking for such libraries in $(TARGET_DIR) instead of $(STAGING_DIR), and libraries in TARGET_DIR are deleted by the target-finalize Makefile rule.
How should I share these modifications? I guess I cannot push to Yann's git repository.
Should I send again a patch series, even though Yann has not finished its review yet?

Best regards,

Signature · 1 line
Johan
#27 lore raw

v3 cover ejabberd: XMPP server (branch yem/ejabberd)

Dear Johan Oudinet,

Quoted 11 lines · Johan Oudinet

I've looked into Yann's branch and made some modifications to fix the compilation and runtime errors.
I've also find out and fix the issue with erl_interface, which ld does not find if we compile an erlang library after finalizing make once:
It's because rebar was looking for such libraries in $(TARGET_DIR) instead of $(STAGING_DIR), and libraries in TARGET_DIR are deleted by the target-finalize Makefile rule.
How should I share these modifications? I guess I cannot push to Yann's git repository.
Should I send again a patch series, even though Yann has not finished its review yet?

You should sync with Yann on this. I guess it would be easier if you posted new iterations of the patch series, but please coordinate with Yann about this.

If you're available in the evenings, feel free to come on #buildroot on Freenode to discuss this with Yann and me.

Best regards,

Thomas

Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
#28 lore raw

v3 cover ejabberd: XMPP server (branch yem/ejabberd)

In reply to Johan Oudinet

Johan, All,

On 2014-12-08 17:33 +0100, Johan Oudinet spake thusly:

Quoted 11 lines

I've looked into Yann's branch and made some modifications to fix the compilation and runtime errors.
I've also find out and fix the issue with erl_interface, which ld does not find if we compile an erlang library after finalizing make once:
It's because rebar was looking for such libraries in $(TARGET_DIR) instead of $(STAGING_DIR), and libraries in TARGET_DIR are deleted by the target-finalize Makefile rule.
How should I share these modifications? I guess I cannot push to Yann's git repository.
Should I send again a patch series, even though Yann has not finished its review yet?

I think I won;t do much more review on the series you already posted. I don't remember exactly, but IIRC I've done some changes on your patches, which are now in my branch.

The best way to move forward is for you to take the patches from my branch, work on them, and respin the series on the list.

Afterall, you are in the best position to work on the core functionality, since you have good knowledge of Erlang and ejabberd.

I can help round the edges (aka. code style and eye-candy), so I'll wait for you to respin the series before looking further into it.

So yes, just respin on the list! ;-)

And as Thomas said, you can pop up in #buildroot, where we hang together for discussing, guess what, Buildroot! ;-)

Thank you for your work on this!

Regards,
Yann E. MORIN.

Signature · 6 lines
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 223 225 172 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'