Skip to contentSkip to conversation

package/apr: Bump version to 1.5.1

PATCH New Bernd Kuhls 4 participants 19 messages Oct 5, 2014

lore
Share & tools
lore
#0 lore raw

PATCH 1/8 package/apr: Bump version to 1.5.1

apr-0001-cross-compile.patch: Fix cross compilation Fix top_builddir in usr/build-1/apr_rules.mk

---
 package/apr/apr-0001-cross-compile.patch |   53 ++++++++++++++++++++++++++++++
 package/apr/apr.mk                       |    7 +++-
 2 files changed, 59 insertions(+), 1 deletion(-)
 create mode 100644 package/apr/apr-0001-cross-compile.patch
package/apr/apr-0001-cross-compile.patch new file +53 -0
new file mode 100644
index 0000000..6bd1194
@@ -0,0 +1,53 @@
+Fix cross-compilation
+
+Patch submitted upstream:
+https://issues.apache.org/bugzilla/show_bug.cgi?id=57058
+
+Signed-off-by: Bernd Kuhls <[email protected]>
+
+diff -uNr apr-1.5.1.org/configure.in apr-1.5.1/configure.in
+--- apr-1.5.1.org/configure.in	2014-01-25 16:17:29.000000000 +0100
++++ apr-1.5.1/configure.in	2014-10-05 11:20:40.080746760 +0200
+@@ -118,6 +118,16 @@
+ echo "Configuring APR library"
+ echo "Platform: $host"
+ 
++dnl In case of cross compilation we set CC_FOR_BUILD to cc unless
++dnl we got already CC_FOR_BUILD from environment.
++if test "x${build_alias}" != "x${host_alias}"; then
++  if test "x${CC_FOR_BUILD}" = "x"; then
++    CC_FOR_BUILD=cc
++  fi
++fi
++AC_SUBST(CC_FOR_BUILD)
++AC_SUBST(CFLAGS_FOR_BUILD)
++
+ dnl Some initial steps for configuration.  We setup the default directory
+ dnl and which files are to be configured.
+ 
+diff -uNr apr-1.5.1.org/Makefile.in apr-1.5.1/Makefile.in
+--- apr-1.5.1.org/Makefile.in	2014-03-17 16:10:26.000000000 +0100
++++ apr-1.5.1/Makefile.in	2014-10-05 11:22:53.031070519 +0200
+@@ -8,6 +8,8 @@
+ # APR (Apache Portable Runtime) library Makefile.
+ #
+ CPP = @CPP@
++CC_FOR_BUILD = @CC_FOR_BUILD@
++CFLAGS_FOR_BUILD = @CFLAGS_FOR_BUILD@
+ 
+ # get substituted into some targets
+ APR_MAJOR_VERSION=@APR_MAJOR_VERSION@
+@@ -134,8 +136,13 @@
+ 
+ OBJECTS_gen_test_char = tools/gen_test_char.lo $(LOCAL_LIBS)
+ tools/gen_test_char.lo: make_tools_dir
++ifdef CC_FOR_BUILD
++tools/gen_test_char at EXEEXT@: tools/gen_test_char.c $(LOCAL_LIBS)
++	$(CC_FOR_BUILD) $(CFLAGS_FOR_BUILD) -DCROSS_COMPILE -o $@ $<
++else
+ tools/gen_test_char at EXEEXT@: $(OBJECTS_gen_test_char)
+ 	$(LINK_PROG) $(OBJECTS_gen_test_char) $(ALL_LIBS)
++endif
+ 
+ include/private/apr_escape_test_char.h: tools/gen_test_char@EXEEXT@
+ 	$(APR_MKDIR) include/private
package/apr/apr.mk +6 -1
index 1a4c0e2..bdf4c78 100644
@@ -4,12 +4,15 @@
 #
 ################################################################################
 
-APR_VERSION = 1.4.8
+APR_VERSION = 1.5.1
 APR_SITE = http://archive.apache.org/dist/apr
 APR_LICENSE = Apache-2.0
 APR_LICENSE_FILES = LICENSE
 APR_INSTALL_STAGING = YES
+APR_AUTORECONF = YES
 APR_CONF_ENV = \
+	CC_FOR_BUILD="$(HOSTCC)" \
+	CFLAGS_FOR_BUILD="$(HOST_CFLAGS)" \
 	ac_cv_file__dev_zero=yes \
 	ac_cv_func_setpgrp_void=yes \
 	apr_cv_process_shared_works=yes \
@@ -35,6 +38,8 @@ define APR_FIXUP_RULES_MK
 		$(STAGING_DIR)/usr/build-1/apr_rules.mk
 	$(SED) 's%apr_builders=%apr_builders=$(STAGING_DIR)%' \
 		$(STAGING_DIR)/usr/build-1/apr_rules.mk
+	$(SED) 's%top_builddir=%top_builddir=$(STAGING_DIR)%' \
+		$(STAGING_DIR)/usr/build-1/apr_rules.mk
 endef
 
 APR_POST_INSTALL_STAGING_HOOKS += APR_FIXUP_RULES_MK
Signature · 1 line
1.7.10.4
#1 lore raw

PATCH 2/8 package/apr: Fix detection of rlimit and large file support

Snippets from configure log:

before:
checking whether to enable -D_LARGEFILE64_SOURCE... no
...
checking struct rlimit... no

after
checking whether to enable -D_LARGEFILE64_SOURCE... (cached) yes
...
checking struct rlimit... (cached) yes

---
 package/apr/apr.mk |    6 ++++++
 1 file changed, 6 insertions(+)
package/apr/apr.mk +6 -0
index bdf4c78..82b1ad2 100644
@@ -19,6 +19,7 @@ APR_CONF_ENV = \
 	apr_cv_mutex_robust_shared=no \
 	apr_cv_tcp_nodelay_with_cork=yes \
 	ac_cv_sizeof_struct_iovec=8 \
+	ac_cv_struct_rlimit=yes \
 	apr_cv_mutex_recursive=yes
 APR_CONFIG_SCRIPTS = apr-1-config
 
@@ -27,6 +28,11 @@ ifeq ($(BR2_TOOLCHAIN_HAS_THREADS),y)
 APR_CONF_ENV += apr_cv_pthreads_lib="-lpthread"
 endif
 
+# Fix lfs detection when cross compiling
+ifeq ($(BR2_LARGEFILE),y)
+APR_CONF_ENV += apr_cv_use_lfs64=yes
+endif
+
 define APR_CLEANUP_UNNEEDED_FILES
 	$(RM) -rf $(TARGET_DIR)/usr/build-1/
 endef
Signature · 1 line
1.7.10.4
#2 lore raw

PATCH 2/8 package/apr: Fix detection of rlimit and large file support

Bernd, All,

On 2014-10-05 15:45 +0200, Bernd Kuhls spake thusly:

Quoted 11 lines

Snippets from configure log:

before:
checking whether to enable -D_LARGEFILE64_SOURCE... no
...
checking struct rlimit... no

after
checking whether to enable -D_LARGEFILE64_SOURCE... (cached) yes
...
checking struct rlimit... (cached) yes

Is that a failure introduced with the bump to 1.5.1?

If so, this should be done in the same patch as the bump.
If not, and it was already present with 1.4.8, it should be done before the bump.

Regards,
Yann E. MORIN.

Quoted 36 lines
---
 package/apr/apr.mk |    6 ++++++
 1 file changed, 6 insertions(+)
package/apr/apr.mk +6 -0
index bdf4c78..82b1ad2 100644
@@ -19,6 +19,7 @@ APR_CONF_ENV = \
 	apr_cv_mutex_robust_shared=no \
 	apr_cv_tcp_nodelay_with_cork=yes \
 	ac_cv_sizeof_struct_iovec=8 \
+	ac_cv_struct_rlimit=yes \
 	apr_cv_mutex_recursive=yes
 APR_CONFIG_SCRIPTS = apr-1-config
 
@@ -27,6 +28,11 @@ ifeq ($(BR2_TOOLCHAIN_HAS_THREADS),y)
 APR_CONF_ENV += apr_cv_pthreads_lib="-lpthread"
 endif
 
+# Fix lfs detection when cross compiling
+ifeq ($(BR2_LARGEFILE),y)
+APR_CONF_ENV += apr_cv_use_lfs64=yes
+endif
+
 define APR_CLEANUP_UNNEEDED_FILES
 	$(RM) -rf $(TARGET_DIR)/usr/build-1/
 endef
Signature · 6 lines
1.7.10.4

_______________________________________________
buildroot mailing list
buildroot at busybox.net
http://lists.busybox.net/mailman/listinfo/buildroot
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.  |
'------------------------------^-------^------------------^--------------------'
#3 lore raw

PATCH 3/8 package/apr-util: Add comment to describe toolchain dependencies

In reply to Bernd Kuhls
---
 package/apr-util/Config.in |    4 ++++
 1 file changed, 4 insertions(+)
package/apr-util/Config.in +4 -0
index 3d4ec23..fcef693 100644
@@ -12,3 +12,7 @@ config BR2_PACKAGE_APR_UTIL
 	  The utility library for the apache runtime project
 
 	  http://apr.apache.org/
+
+comment "apr-util needs a toolchain w/ dynamic library"
+	depends on BR2_USE_MMU
+	depends on BR2_PREFER_STATIC_LIB
Signature · 1 line
1.7.10.4
#4 lore raw

PATCH 3/8 package/apr-util: Add comment to describe toolchain dependencies

Bernd, All,

On 2014-10-05 15:45 +0200, Bernd Kuhls spake thusly:

Quoted 2 lines

However, this should go first in the series.

Regards,
Yann E. MORIN.

Quoted 23 lines
---
 package/apr-util/Config.in |    4 ++++
 1 file changed, 4 insertions(+)
package/apr-util/Config.in +4 -0
index 3d4ec23..fcef693 100644
@@ -12,3 +12,7 @@ config BR2_PACKAGE_APR_UTIL
 	  The utility library for the apache runtime project
 
 	  http://apr.apache.org/
+
+comment "apr-util needs a toolchain w/ dynamic library"
+	depends on BR2_USE_MMU
+	depends on BR2_PREFER_STATIC_LIB
Signature · 6 lines
1.7.10.4

_______________________________________________
buildroot mailing list
buildroot at busybox.net
http://lists.busybox.net/mailman/listinfo/buildroot
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.  |
'------------------------------^-------^------------------^--------------------'
#5 lore raw

PATCH 3/8 package/apr-util: Add comment to describe toolchain dependencies

In reply to Bernd Kuhls

Dear Bernd Kuhls,

Quoted 5 lines · Bernd Kuhls
---
 package/apr-util/Config.in |    4 ++++
 1 file changed, 4 insertions(+)

Applied, thanks.

Thomas

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

PATCH 4/8 package/apr-util: Bump version to 1.5.4

In reply to Bernd Kuhls
---
 package/apr-util/apr-util.mk |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
package/apr-util/apr-util.mk +1 -1
index bdb3004..3e9ce54 100644
@@ -4,7 +4,7 @@
 #
 ################################################################################
 
-APR_UTIL_VERSION = 1.5.2
+APR_UTIL_VERSION = 1.5.4
 APR_UTIL_SITE = http://archive.apache.org/dist/apr
 APR_UTIL_LICENSE = Apache-2.0
 APR_UTIL_LICENSE_FILES = LICENSE
Signature · 1 line
1.7.10.4
#7 lore raw

PATCH 5/8 package/apr-util: Rework dependencies

In reply to Bernd Kuhls

- add expat hard-dependency, when missing apr-util compiles its own expat
- all database libs are optional
- add optional OpenSSL support
- remove unused dependencies neon and zlib

---
 package/apr-util/Config.in   |    5 +----
 package/apr-util/apr-util.mk |   37 ++++++++++++++++++++++++++++++++++++-
 2 files changed, 37 insertions(+), 5 deletions(-)
package/apr-util/Config.in +1 -4
index fcef693..6757e7e 100644
@@ -1,10 +1,7 @@
 config BR2_PACKAGE_APR_UTIL
 	bool "apr-util"
 	select BR2_PACKAGE_APR
-	select BR2_PACKAGE_SQLITE
-	select BR2_PACKAGE_NEON
-	select BR2_PACKAGE_NEON_ZLIB
-	select BR2_PACKAGE_ZLIB
+	select BR2_PACKAGE_EXPAT
 	# apr really needs shared library support
 	depends on !BR2_PREFER_STATIC_LIB
 	depends on BR2_USE_MMU # apr
package/apr-util/apr-util.mk +36 -1
index 3e9ce54..4d5d988 100644
@@ -9,7 +9,7 @@ APR_UTIL_SITE = http://archive.apache.org/dist/apr
 APR_UTIL_LICENSE = Apache-2.0
 APR_UTIL_LICENSE_FILES = LICENSE
 APR_UTIL_INSTALL_STAGING = YES
-APR_UTIL_DEPENDENCIES = apr sqlite neon zlib
+APR_UTIL_DEPENDENCIES = apr expat
 APR_UTIL_CONF_OPTS = \
 	--with-apr=$(STAGING_DIR)/usr/bin/apr-1-config
 APR_UTIL_CONFIG_SCRIPTS = apu-1-config
@@ -18,4 +18,39 @@ APR_UTIL_CONFIG_SCRIPTS = apu-1-config
 # features.
 APR_UTIL_DEPENDENCIES += $(if $(BR2_PACKAGE_LIBICONV),libiconv)
 
+ifeq ($(BR2_PACKAGE_BERKELEYDB),y)
+APR_UTIL_CONF_OPTS += --with-dbm=db53 --with-berkeley-db="$(STAGING_DIR)/usr"
+APR_UTIL_DEPENDENCIES += berkeleydb
+else
+APR_UTIL_CONF_OPTS += --without-berkeley-db
+endif
+
+ifeq ($(BR2_PACKAGE_GDBM),y)
+APR_UTIL_CONF_OPTS += --with-gdbm="$(STAGING_DIR)/usr"
+APR_UTIL_DEPENDENCIES += gdbm
+else
+APR_UTIL_CONF_OPTS += --without-gdbm
+endif
+
+ifeq ($(BR2_PACKAGE_MYSQL),y)
+APR_UTIL_CONF_OPTS += --with-mysql="$(STAGING_DIR)/usr"
+APR_UTIL_DEPENDENCIES += mysql
+else
+APR_UTIL_CONF_OPTS += --without-mysql
+endif
+
+ifeq ($(BR2_PACKAGE_OPENSSL),y)
+APR_UTIL_CONF_OPTS += --with-crypto --with-openssl="$(STAGING_DIR)/usr"
+APR_UTIL_DEPENDENCIES += openssl
+else
+APR_UTIL_CONF_OPTS += --without-ssl
+endif
+
+ifeq ($(BR2_PACKAGE_SQLITE),y)
+APR_UTIL_CONF_OPTS += --with-sqlite3="$(STAGING_DIR)/usr"
+APR_UTIL_DEPENDENCIES += sqlite
+else
+APR_UTIL_CONF_OPTS += --without-sqlite3
+endif
+
 $(eval $(autotools-package))
Signature · 1 line
1.7.10.4
#8 lore raw

PATCH 5/8 package/apr-util: Rework dependencies

Bernd, All,

On 2014-10-05 15:45 +0200, Bernd Kuhls spake thusly:

Quoted 4 lines

- add expat hard-dependency, when missing apr-util compiles its own expat
- all database libs are optional
- add optional OpenSSL support
- remove unused dependencies neon and zlib

I'd prefer those are done in separate patches:
- add hard-dependency to expat
- remove unused neon and zlib
- make sqlite optional
- add optional bdb
- add optional gdbm
- add optional mysql
- add optional openssl

Also, see below for additional comments...

Quoted 1 line

[--SNIP--]

Quoted 41 lines
package/apr-util/apr-util.mk +25 -1
index 3e9ce54..4d5d988 100644
@@ -9,7 +9,7 @@ APR_UTIL_SITE = http://archive.apache.org/dist/apr
 APR_UTIL_LICENSE = Apache-2.0
 APR_UTIL_LICENSE_FILES = LICENSE
 APR_UTIL_INSTALL_STAGING = YES
-APR_UTIL_DEPENDENCIES = apr sqlite neon zlib
+APR_UTIL_DEPENDENCIES = apr expat
 APR_UTIL_CONF_OPTS = \
 	--with-apr=$(STAGING_DIR)/usr/bin/apr-1-config
 APR_UTIL_CONFIG_SCRIPTS = apu-1-config
@@ -18,4 +18,39 @@ APR_UTIL_CONFIG_SCRIPTS = apu-1-config
 # features.
 APR_UTIL_DEPENDENCIES += $(if $(BR2_PACKAGE_LIBICONV),libiconv)
 
+ifeq ($(BR2_PACKAGE_BERKELEYDB),y)
+APR_UTIL_CONF_OPTS += --with-dbm=db53 --with-berkeley-db="$(STAGING_DIR)/usr"
+APR_UTIL_DEPENDENCIES += berkeleydb
+else
+APR_UTIL_CONF_OPTS += --without-berkeley-db
+endif
+
+ifeq ($(BR2_PACKAGE_GDBM),y)
+APR_UTIL_CONF_OPTS += --with-gdbm="$(STAGING_DIR)/usr"
+APR_UTIL_DEPENDENCIES += gdbm
+else
+APR_UTIL_CONF_OPTS += --without-gdbm
+endif
+
+ifeq ($(BR2_PACKAGE_MYSQL),y)
+APR_UTIL_CONF_OPTS += --with-mysql="$(STAGING_DIR)/usr"
+APR_UTIL_DEPENDENCIES += mysql
+else
+APR_UTIL_CONF_OPTS += --without-mysql
+endif
+
+ifeq ($(BR2_PACKAGE_OPENSSL),y)
+APR_UTIL_CONF_OPTS += --with-crypto --with-openssl="$(STAGING_DIR)/usr"
+APR_UTIL_DEPENDENCIES += openssl

package/apr-util/apr-util.mk APR_UTIL_CONFIG_SCRIPTS = apu-1-config · line 54

Quoted 10 lines
package/apr-util/apr-util.mk +10 -0
+else
+APR_UTIL_CONF_OPTS += --without-ssl
+endif
+
+ifeq ($(BR2_PACKAGE_SQLITE),y)
+APR_UTIL_CONF_OPTS += --with-sqlite3="$(STAGING_DIR)/usr"
+APR_UTIL_DEPENDENCIES += sqlite
+else
+APR_UTIL_CONF_OPTS += --without-sqlite3
+endif

I see you use an alphabetical order. I would prefer they be sorted by category, and then alphabetically:

- bdb
- gdbm
- mysql
- sqlite
- openssl

It seems more logical to me (personal preference), but I won't care much either way.

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.  |
'------------------------------^-------^------------------^--------------------'
#9 lore raw

PATCH 6/8 package/apr: Fix for Apache when listening to multiple ports

In reply to Bernd Kuhls

For details:
https://issues.apache.org/bugzilla/show_bug.cgi?id=56727#c6

---
 package/apr/apr.mk |    1 +
 1 file changed, 1 insertion(+)
package/apr/apr.mk +1 -0
index 82b1ad2..7eda611 100644
@@ -20,6 +20,7 @@ APR_CONF_ENV = \
 	apr_cv_tcp_nodelay_with_cork=yes \
 	ac_cv_sizeof_struct_iovec=8 \
 	ac_cv_struct_rlimit=yes \
+	ac_cv_o_nonblock_inherited=no \
 	apr_cv_mutex_recursive=yes
 APR_CONFIG_SCRIPTS = apr-1-config
 
Signature · 1 line
1.7.10.4
#10 lore raw

PATCH 6/8 package/apr: Fix for Apache when listening to multiple ports

Bernd, All,

On 2014-10-05 15:45 +0200, Bernd Kuhls spake thusly:

Quoted 4 lines

For details:
https://issues.apache.org/bugzilla/show_bug.cgi?id=56727#c6

Regards,
Yann E. MORIN.

Quoted 23 lines
---
 package/apr/apr.mk |    1 +
 1 file changed, 1 insertion(+)
package/apr/apr.mk +1 -0
index 82b1ad2..7eda611 100644
@@ -20,6 +20,7 @@ APR_CONF_ENV = \
 	apr_cv_tcp_nodelay_with_cork=yes \
 	ac_cv_sizeof_struct_iovec=8 \
 	ac_cv_struct_rlimit=yes \
+	ac_cv_o_nonblock_inherited=no \
 	apr_cv_mutex_recursive=yes
 APR_CONFIG_SCRIPTS = apr-1-config
 
Signature · 6 lines
1.7.10.4

_______________________________________________
buildroot mailing list
buildroot at busybox.net
http://lists.busybox.net/mailman/listinfo/buildroot
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.  |
'------------------------------^-------^------------------^--------------------'
#11 lore raw

PATCH 7/8 Apache: New package

In reply to Bernd Kuhls
---
 package/Config.in                              |    1 +
 package/apache/Config.in                       |   19 ++++++++
 package/apache/apache-0001-cross-compile.patch |   58 ++++++++++++++++++++++++
 package/apache/apache.mk                       |   42 +++++++++++++++++
 4 files changed, 120 insertions(+)
 create mode 100644 package/apache/Config.in
 create mode 100644 package/apache/apache-0001-cross-compile.patch
 create mode 100644 package/apache/apache.mk
package/Config.in +1 -0
index 318b743..3b22d25 100644
@@ -945,6 +945,7 @@ endmenu
 menu "Networking applications"
 	source "package/aiccu/Config.in"
 	source "package/aircrack-ng/Config.in"
+	source "package/apache/Config.in"
 	source "package/argus/Config.in"
 	source "package/arptables/Config.in"
 	source "package/atftp/Config.in"
package/apache/Config.in new file +19 -0
new file mode 100644
index 0000000..172346c
@@ -0,0 +1,19 @@
+config BR2_PACKAGE_APACHE
+	bool "apache"
+	select BR2_PACKAGE_APR_UTIL
+	select BR2_PACKAGE_PCRE
+	depends on !BR2_PREFER_STATIC_LIB
+	depends on BR2_TOOLCHAIN_HAS_THREADS
+	depends on BR2_USE_MMU # apr
+	help
+	  The Apache HTTP Server Project is an effort to develop and maintain an
+	  open-source HTTP server for modern operating systems including UNIX
+	  and Windows NT. The goal of this project is to provide a secure,
+	  efficient and extensible server that provides HTTP services in sync
+	  with the current HTTP standards.
+
+	  http://httpd.apache.org
+
+comment "apache needs a toolchain w/ dynamic library, threads"
+	depends on BR2_USE_MMU
+	depends on BR2_PREFER_STATIC_LIB || !BR2_TOOLCHAIN_HAS_THREADS
package/apache/apache-0001-cross-compile.patch new file +58 -0

58 lines not on this page · raw message

package/apache/apache.mk new file +42 -0

42 lines not on this page · raw message

Signature · 1 line
1.7.10.4
#12 lore raw

PATCH 7/8 Apache: New package

Bernd, All,

On 2014-10-05 15:45 +0200, Bernd Kuhls spake thusly:
[--SNIP--]

package/apache/apache-0001-cross-compile.patch line 4

Quoted 10 lines
package/apache/apache-0001-cross-compile.patch new file +4 -0
new file mode 100644
index 0000000..05e99dd
@@ -0,0 +1,58 @@
+Fix cross-compilation
+
+Fetched httpd-2.4.x-cross_compile.diff from upstream bugtracker:
+https://issues.apache.org/bugzilla/show_bug.cgi?id=51257#c6

which is a bundle of upstream revisions:

    http://svn.apache.org/viewvc?view=revision&revision=1327907
    http://svn.apache.org/viewvc?view=revision&revision=1328390
    http://svn.apache.org/viewvc?view=revision&revision=1328714

;-)

[--SNIP--]

Quoted 8 lines
package/apache/apache.mk new file +2 -0
new file mode 100644
index 0000000..d525024
@@ -0,0 +1,42 @@
+################################################################################
+#

package/apache/apache.mk line 12

Quoted 10 lines
package/apache/apache.mk new file +10 -0
+# apache
+#
+################################################################################
+
+APACHE_VERSION = 2.4.10
+APACHE_SOURCE = httpd-$(APACHE_VERSION).tar.bz2
+APACHE_SITE = http://archive.apache.org/dist/httpd
+APACHE_LICENSE = Apache-2.0
+APACHE_LICENSE_FILES = LICENSE
+APACHE_INSTALL_STAGING = YES

Why do you meed to install it in staging?

Answer: I guess that's becasue apache installs headers and libs so that it is possible to build out-of-apache modules. Right?

Say so, because it is not obvious.

package/apache/apache.mk line 13

Quoted 1 line
package/apache/apache.mk new file +1 -0
+APACHE_AUTORECONF = YES

Ditto as for apr: short explanation why autoreconf is needed.

package/apache/apache.mk line 14

Quoted 1 line
package/apache/apache.mk new file +1 -0
+APACHE_DEPENDENCIES = apr-util pcre

Apache does not need apr directly, too?

Quoted 8 lines
package/apache/apache.mk new file +8 -0
+APACHE_CONF_ENV= \
+	CC_FOR_BUILD="$(HOSTCC)" \
+	CFLAGS_FOR_BUILD="$(HOST_CFLAGS)" \
+	ap_cv_void_ptr_lt_long=no \
+	PCRE_CONFIG=$(STAGING_DIR)/usr/bin/pcre-config
+
+APACHE_CONF_OPTS = \
+	--sysconfdir=/etc/apache2 \

package/apache/apache.mk line 33

Quoted 10 lines
package/apache/apache.mk new file +10 -0
+	--with-apr=$(STAGING_DIR)/usr \
+	--with-apr-util=$(STAGING_DIR)/usr \
+	--with-pcre=$(STAGING_DIR)/usr/bin/pcre-config \
+	--enable-http \
+	--enable-dbd \
+	--enable-proxy \
+	--enable-mime-magic \
+	--without-suexec-bin \
+	--enable-mods-shared=all \
+	--with-mpm=worker \

This could later be made a choice option.

package/apache/apache.mk line 34

Quoted 1 line
package/apache/apache.mk new file +1 -0
+	--enable-nonportable-atomics=yes

Can you shade some explanations to this one? How would it work with:
BR2_ARCH_HAS_ATOMICS

Regards,
Yann E. MORIN.

Quoted 14 lines
package/apache/apache.mk new file +7 -0
+define APACHE_FIX_STAGING_APACHE_CONFIG
+	$(SED) 's%/usr/build%$(STAGING_DIR)/usr/build%' $(STAGING_DIR)/usr/bin/apxs
+	$(SED) 's%^prefix =.*%prefix = $(STAGING_DIR)/usr%' $(STAGING_DIR)/usr/build/config_vars.mk
+endef
+APACHE_POST_INSTALL_STAGING_HOOKS += APACHE_FIX_STAGING_APACHE_CONFIG
+
+$(eval $(autotools-package))
Signature · 6 lines
1.7.10.4

_______________________________________________
buildroot mailing list
buildroot at busybox.net
http://lists.busybox.net/mailman/listinfo/buildroot
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.  |
'------------------------------^-------^------------------^--------------------'
#13 lore raw

PATCH 8/8 package/php: Add Apache support

In reply to Bernd Kuhls
---
 package/php/Config.in                            |   17 +++
 package/php/php-04-cross-compile.only-for-apache |  131 ++++++++++++++++++++++
 package/php/php.mk                               |   16 +++
 3 files changed, 164 insertions(+)
 create mode 100644 package/php/php-04-cross-compile.only-for-apache
package/php/Config.in +17 -0
index 32faa32..db4e647 100644
@@ -11,6 +11,9 @@ if BR2_PACKAGE_PHP
 
 source "package/php/Config.ext"
 
+config BR2_PACKAGE_PHP_APACHE
+	bool
+
 config BR2_PACKAGE_PHP_CLI
 	bool
 
@@ -26,6 +29,20 @@ choice
 	help
 	  Select the PHP interface(s).
 
+config BR2_PACKAGE_PHP_SAPI_APACHE
+	bool "Apache"
+	select BR2_PACKAGE_APACHE
+	select BR2_PACKAGE_PHP_APACHE
+	depends on !BR2_PREFER_STATIC_LIB # apache
+	depends on BR2_TOOLCHAIN_HAS_THREADS # apache
+	depends on BR2_USE_MMU # apr
+	help
+	  Apache module
+
+comment "apache module needs a toolchain w/ dynamic library, threads"
+	depends on BR2_USE_MMU
+	depends on BR2_PREFER_STATIC_LIB || !BR2_TOOLCHAIN_HAS_THREADS
+
 config BR2_PACKAGE_PHP_SAPI_CGI
 	bool "CGI"
 	# CGI uses fork()
package/php/php-04-cross-compile.only-for-apache new file +131 -0

131 lines not on this page · raw message

package/php/php.mk +16 -0
index 2e97c9a..0b32bca 100644
@@ -50,6 +50,22 @@ PHP_CONF_OPTS += $(if $(BR2_PACKAGE_PHP_CLI),,--disable-cli)
 PHP_CONF_OPTS += $(if $(BR2_PACKAGE_PHP_CGI),,--disable-cgi)
 PHP_CONF_OPTS += $(if $(BR2_PACKAGE_PHP_FPM),--enable-fpm,--disable-fpm)
 
+ifeq ($(BR2_PACKAGE_PHP_APACHE),y)
+# this patchset is only needed when cross-compiling mod_php for Apache
+define PHP_PATCH_FOR_APACHE
+	patch -d $(@D) -p1 -E -i $(TOPDIR)/$(PKGDIR)php-04-cross-compile.only-for-apache
+endef
+PHP_POST_PATCH_HOOKS += PHP_PATCH_FOR_APACHE
+PHP_CONF_OPTS += \
+	--with-apxs2=$(STAGING_DIR)/usr/bin/apxs \
+	--with-config-file-path=/etc/apache2 \
+	--with-config-file-scan-dir=/etc/apache2/php \
+	--oldincludedir=$(STAGING_DIR)/usr/include \
+	--enable-pthreads \
+	--localstatedir=/var
+PHP_DEPENDENCIES += apache
+endif
+
 ### Extensions
 PHP_CONF_OPTS += $(if $(BR2_PACKAGE_PHP_EXT_SOCKETS),--enable-sockets) \
 		$(if $(BR2_PACKAGE_PHP_EXT_POSIX),--enable-posix) \
Signature · 1 line
1.7.10.4
#14 lore raw

PATCH 8/8 package/php: Add Apache support

Bernd, All,

On 2014-10-05 15:45 +0200, Bernd Kuhls spake thusly:

Quoted 31 lines
---
 package/php/Config.in                            |   17 +++
 package/php/php-04-cross-compile.only-for-apache |  131 ++++++++++++++++++++++
 package/php/php.mk                               |   16 +++
 3 files changed, 164 insertions(+)
 create mode 100644 package/php/php-04-cross-compile.only-for-apache
package/php/Config.in +7 -0
index 32faa32..db4e647 100644
@@ -11,6 +11,9 @@ if BR2_PACKAGE_PHP
 
 source "package/php/Config.ext"
 
+config BR2_PACKAGE_PHP_APACHE
+	bool
+
 config BR2_PACKAGE_PHP_CLI
 	bool
 
@@ -26,6 +29,20 @@ choice
 	help
 	  Select the PHP interface(s).
 
+config BR2_PACKAGE_PHP_SAPI_APACHE
+	bool "Apache"
+	select BR2_PACKAGE_APACHE
+	select BR2_PACKAGE_PHP_APACHE

package/php/Config.in choice · line 45

Quoted 10 lines
package/php/Config.in +10 -0
+	depends on !BR2_PREFER_STATIC_LIB # apache
+	depends on BR2_TOOLCHAIN_HAS_THREADS # apache
+	depends on BR2_USE_MMU # apr
+	help
+	  Apache module
+
+comment "apache module needs a toolchain w/ dynamic library, threads"
+	depends on BR2_USE_MMU
+	depends on BR2_PREFER_STATIC_LIB || !BR2_TOOLCHAIN_HAS_THREADS
+

Unrelated to your patch, but this choice is getting ugly. Maybe we should switch to something like:

config BR2_PACKAGE_PHP
bool "php"
select BR2_PACKAGE_PHP_SAPI_CGI if !BR2_PACKAGE_PHP_HAS_SAPI

config BR2_PACKAGE_PHP_HAS_SAPI
bool

config BR2_PACKAGE_PHP_SAPI_CGI
bool "CGI"

config BR2_PACKAGE_PHP_SAPI_CLI
bool "CLI"
select BR2_PACKAGE_PHP_HAS_SAPI

config BR2_PACKAGE_PHP_SAPI_APACHE
bool "Apache"
select BR2_PACKAGE_PHP_HAS_SAPI

config BR2_PACKAGE_PHP_SAPI_FPM
bool "FPM"
select BR2_PACKAGE_PHP_HAS_SAPI

That way, we ensure at least one is selected, which was the initial reason for the choice, while stil allowing multiple to be selected.

Then, if some are incompatible, we could do, for example:

config BR2_PACKAGE_PHP_SAPI_APACHE
bool "Apache"
depends on !BR2_PACKAGE_PHP_SAPI_CLI
select BR2_PACKAGE_PHP_HAS_SAPI

Quoted 9 lines
package/php/Config.in +0 -0
 config BR2_PACKAGE_PHP_SAPI_CGI
 	bool "CGI"
 	# CGI uses fork()
package/php/php-04-cross-compile.only-for-apache new file +0 -0
new file mode 100644
index 0000000..a72befc

package/php/php-04-cross-compile.only-for-apache line 6

Quoted 6 lines
package/php/php-04-cross-compile.only-for-apache new file +6 -0
@@ -0,0 +1,131 @@
+Fix cross-compilation when used as Apache module.
+
+Apache is configured to use the worker MPM which depends on threads.
+As PHP?s phtread detection is broken in a cross-compile environment, it is not
+possible to apply this patch unconditionally, since php itself works without
+thread support,

I have to say I do not like this much. How complex would it be to have a proper patch that would work both with apache enabled or disabled?

We should try to have such a patch, and push it upstream.

[--SNIP--]

package/php/php.mk PHP_CONF_OPTS += $(if $(BR2_PACKAGE_PHP_CLI),,--disable-cli) · line 56

Quoted 12 lines
package/php/php.mk +4 -0
index 2e97c9a..0b32bca 100644
@@ -50,6 +50,22 @@ PHP_CONF_OPTS += $(if $(BR2_PACKAGE_PHP_CLI),,--disable-cli)
 PHP_CONF_OPTS += $(if $(BR2_PACKAGE_PHP_CGI),,--disable-cgi)
 PHP_CONF_OPTS += $(if $(BR2_PACKAGE_PHP_FPM),--enable-fpm,--disable-fpm)
 
+ifeq ($(BR2_PACKAGE_PHP_APACHE),y)
+# this patchset is only needed when cross-compiling mod_php for Apache
+define PHP_PATCH_FOR_APACHE
+	patch -d $(@D) -p1 -E -i $(TOPDIR)/$(PKGDIR)php-04-cross-compile.only-for-apache

Yes, $(PKGDIR) already has a trailing '/', for for readability, I'd prefer we add one here. Multiple '/' in a path are innocuous.

Regards,
Yann E. MORIN.

Quoted 22 lines
package/php/php.mk +12 -0
+endef
+PHP_POST_PATCH_HOOKS += PHP_PATCH_FOR_APACHE
+PHP_CONF_OPTS += \
+	--with-apxs2=$(STAGING_DIR)/usr/bin/apxs \
+	--with-config-file-path=/etc/apache2 \
+	--with-config-file-scan-dir=/etc/apache2/php \
+	--oldincludedir=$(STAGING_DIR)/usr/include \
+	--enable-pthreads \
+	--localstatedir=/var
+PHP_DEPENDENCIES += apache
+endif
+
 ### Extensions
 PHP_CONF_OPTS += $(if $(BR2_PACKAGE_PHP_EXT_SOCKETS),--enable-sockets) \
 		$(if $(BR2_PACKAGE_PHP_EXT_POSIX),--enable-posix) \
Signature · 6 lines
1.7.10.4

_______________________________________________
buildroot mailing list
buildroot at busybox.net
http://lists.busybox.net/mailman/listinfo/buildroot
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.  |
'------------------------------^-------^------------------^--------------------'
#15 lore raw

PATCH 8/8 package/php: Add Apache support

Quoted 21 lines · Yann E. MORIN

Unrelated to your patch, but this choice is getting ugly. Maybe we should switch to something like:

config BR2_PACKAGE_PHP
bool "php"
select BR2_PACKAGE_PHP_SAPI_CGI if !BR2_PACKAGE_PHP_HAS_SAPI

config BR2_PACKAGE_PHP_HAS_SAPI
bool

config BR2_PACKAGE_PHP_SAPI_CGI
bool "CGI"

config BR2_PACKAGE_PHP_SAPI_CLI
bool "CLI"
select BR2_PACKAGE_PHP_HAS_SAPI

config BR2_PACKAGE_PHP_SAPI_APACHE
bool "Apache"
select BR2_PACKAGE_PHP_HAS_SAPI

Quoted 6 lines

config BR2_PACKAGE_PHP_SAPI_FPM
bool "FPM"
select BR2_PACKAGE_PHP_HAS_SAPI

That way, we ensure at least one is selected, which was the initial reason for the choice, while stil allowing multiple to be selected.

+1 the choice is going wild.

Quoted 1 line

Then, if some are incompatible, we could do, for example:

AFAIK you can combine anything the way you like as long as the dependencies are met since the php build system rebuilds for each case. Regards.

#16 lore raw

PATCH 1/8 package/apr: Bump version to 1.5.1

In reply to Bernd Kuhls

Bernd, All,

On 2014-10-05 15:45 +0200, Bernd Kuhls spake thusly:

Quoted 16 lines

apr-0001-cross-compile.patch: Fix cross compilation Fix top_builddir in usr/build-1/apr_rules.mk

---
 package/apr/apr-0001-cross-compile.patch |   53 ++++++++++++++++++++++++++++++
 package/apr/apr.mk                       |    7 +++-
 2 files changed, 59 insertions(+), 1 deletion(-)
 create mode 100644 package/apr/apr-0001-cross-compile.patch
package/apr/apr-0001-cross-compile.patch new file +0 -0
new file mode 100644
index 0000000..6bd1194

package/apr/apr-0001-cross-compile.patch line 4

Quoted 4 lines
package/apr/apr-0001-cross-compile.patch new file +4 -0
@@ -0,0 +1,53 @@
+Fix cross-compilation
+
+Patch submitted upstream:
+https://issues.apache.org/bugzilla/show_bug.cgi?id=57058

which is a bundle of upstream revisions:

    http://svn.apache.org/viewvc?view=revision&revision=1327907
    http://svn.apache.org/viewvc?view=revision&revision=1328390
    http://svn.apache.org/viewvc?view=revision&revision=1328714

[--SNIP rest of patch--]

Quoted 5 lines
package/apr/apr.mk +0 -0
index 1a4c0e2..bdf4c78 100644

package/apr/apr.mk line 12

Quoted 10 lines
package/apr/apr.mk +2 -1
@@ -4,12 +4,15 @@
 #
 ################################################################################
 
-APR_VERSION = 1.4.8
+APR_VERSION = 1.5.1
 APR_SITE = http://archive.apache.org/dist/apr
 APR_LICENSE = Apache-2.0
 APR_LICENSE_FILES = LICENSE
 APR_INSTALL_STAGING = YES
+APR_AUTORECONF = YES

Usually, we explicit why autoreconf is needed:

# We have a patch touching configure.in and Makefile.in, # so we need to autoreconf:
APR_AUTORECONF = YES

With the above two, you can add my:

    Reviewed-by: "Yann E. MORIN" <[email protected]>

Regards,
Yann E. MORIN.

Quoted 22 lines
package/apr/apr.mk +4 -0
 APR_CONF_ENV = \
+	CC_FOR_BUILD="$(HOSTCC)" \
+	CFLAGS_FOR_BUILD="$(HOST_CFLAGS)" \
 	ac_cv_file__dev_zero=yes \
 	ac_cv_func_setpgrp_void=yes \
 	apr_cv_process_shared_works=yes \
@@ -35,6 +38,8 @@ define APR_FIXUP_RULES_MK
 		$(STAGING_DIR)/usr/build-1/apr_rules.mk
 	$(SED) 's%apr_builders=%apr_builders=$(STAGING_DIR)%' \
 		$(STAGING_DIR)/usr/build-1/apr_rules.mk
+	$(SED) 's%top_builddir=%top_builddir=$(STAGING_DIR)%' \
+		$(STAGING_DIR)/usr/build-1/apr_rules.mk
 endef
 
 APR_POST_INSTALL_STAGING_HOOKS += APR_FIXUP_RULES_MK
Signature · 6 lines
1.7.10.4

_______________________________________________
buildroot mailing list
buildroot at busybox.net
http://lists.busybox.net/mailman/listinfo/buildroot
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.  |
'------------------------------^-------^------------------^--------------------'
#17 lore raw

PATCH 1/8 package/apr: Bump version to 1.5.1

Dear Yann E. MORIN,

Quoted 12 lines · Yann E. MORIN

package/apr/apr-0001-cross-compile.patch line 4

Quoted 10 lines
package/apr/apr-0001-cross-compile.patch new file +4 -0
new file mode 100644
index 0000000..6bd1194
@@ -0,0 +1,53 @@
+Fix cross-compilation
+
+Patch submitted upstream:
+https://issues.apache.org/bugzilla/show_bug.cgi?id=57058

which is a bundle of upstream revisions:

Quoted 3 lines
    http://svn.apache.org/viewvc?view=revision&revision=1327907
    http://svn.apache.org/viewvc?view=revision&revision=1328390
    http://svn.apache.org/viewvc?view=revision&revision=1328714

I'm confused: if some pieces of code are already upstream and backported, why do they need to be submitted upstream again?

Thomas

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

PATCH 1/8 package/apr: Bump version to 1.5.1

Thomas Petazzoni <thomas.petazzoni-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8 @public.gmane.org> wrote in news:20141005181638.2614c86f at free-electrons.com:

Quoted 2 lines

I'm confused: if some pieces of code are already upstream and backported, why do they need to be submitted upstream again?

Hi Thomas,

both Apache httpd and standalone apr contain the source for gen_test_char, the cross-compile patches were only applied to the build system of httpd, not apr, therefore the need for the backport.

Regards, Bernd