> My plan for simplifying things while catering to various wishes is to
> * remove pike7.8-full
> * let pike7.8 Recommend all other packages. That way everything will
> be installed if you run apt-get install pike7.8 unless you have
> switched off automatic installation of recommended packages, but
> it's still possible to opt out of individual packages.
I have made a small set of patches which I'd like to be included in pike
and debian packages in order to make the package emdebian (cross)
compilable. I've attached the patches, but as described below there are
still some caveats to them.
Patches according to http://wiki.debian.org/EmdebianMakefile
Patches are made against the current debian package (pike 7.8.352).
1) Patch to debian/rules.
This patch can be included as is. The patch makes it possible to use a
cross compiler for compiling pike.
(cross compiling in debian you can do using "pkg-build -a arm -uc -us)
2) Patch to src/configure.in
This patch can be included as is into pike, I think this was is a bug in
configure.in because it originally tries to use the newly build pike
instead of the pike installed on the host.
3) Patch to src/configure
I think this patch should ultimately be done in src/configure.in. But
I'm no M4 expert and haven't yet found which changes need to be made in
src/configure.in
4) Patch to src/modules/Mysql/configure
I think this patch was already included in src/modules/Mysql/configure.in.
Then there is the issue of bytecompiling. As I understand it pike can do
without byte-compiling. However the debian packaging copies the
byte-compiled files into the several packages. If byte-compiling fails
(because the newly build pike can't be used for byte-compiling) the
package manager fails to create a package.
I've only come up with one possible sollution to this. Which is, push
the byte-compiling of the code into a post-install script. This way the
byte-compiling can be done on the target machine. But maybe there is a
better sollution?
It is not allowed to have diff between the debian and the emdebian
packaging files.
Best regards,
Marc
--- src/configure.in 2009-09-22 20:37:45.000000000 +0000
+++ ../../pike1/configure.in 2010-05-04 09:44:55.000000000 +0000
@@ -541,7 +541,7 @@
RUNTPIKE="USE_PIKE"
else
if test "x$cross_compiling" = "xyes"; then
- RUNPIKE="DEFAULT_RUNPIKE"
+ RUNPIKE="USE_PIKE"
RUNTPIKE="USE_PIKE"
else
RUNPIKE="DEFAULT_RUNPIKE"
--- src/configure 2009-09-22 20:38:19.000000000 +0000
+++ ../../pike1/configure 2010-05-19 10:04:59.835552074 +0000
@@ -106926,7 +106926,7 @@
;;
esac
if test "$cross_compiling" = yes; then
- pike_cv_sys_dynamic_loading=no
+ pike_cv_sys_dynamic_loading=yes
else
cat >conftest.$ac_ext <<_ACEOF
/* confdefs.h. */
--- debian/rules 2010-06-06 09:12:10.000000000 +0000
+++ ../../pike1/rules 2010-05-21 09:35:26.185552286 +0000
@@ -20,6 +20,16 @@
CC=gcc
endif
+export DEB_HOST_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE)
+export DEB_BUILD_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE)
+
+CFARGSEXTRA = --with-cdebug
+
+ifneq ($(DEB_BUILD_GNU_TYPE), $(DEB_HOST_GNU_TYPE))
+export CC=$(DEB_HOST_GNU_TYPE)-gcc
+CFARGSEXTRA += --host=$(DEB_HOST_GNU_TYPE)
+endif
+
ifeq (,$(DEB_BUILD_ARCH))
DEB_BUILD_ARCH=$(shell dpkg-architecture -qDEB_BUILD_ARCH)
endif
@@ -31,7 +41,6 @@
SSP_FLAGS=-fstack-protector
endif
-CFARGSEXTRA = --with-cdebug
ifneq (,$(filter noopt,$(DEB_BUILD_OPTIONS)))
CFARGSEXTRA += --without-copt
@@ -141,6 +150,7 @@
build-arch: build-arch-stamp
build-arch-stamp: $(DPATCH_STAMPFN)
dh_testdir
+ $(MAKE) force_autoconfig CONFIGUREARGS="$(CFARGS)"
$(MAKE) compile CONFIGUREARGS="$(CFARGS)"
touch build-arch-stamp
--- ../../pike1/Mysql_configure 2010-05-19 10:20:10.745552500 +0000
+++ src/modules/Mysql/configure 2009-09-22 20:38:35.000000000 +0000
@@ -7018,7 +7018,13 @@
$as_echo "yes" >&6; }
if test "$cross_compiling" = yes; then
-:
+ { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+{ { $as_echo "$as_me:$LINENO: error: cannot run test program while cross compiling
+See \`config.log' for more details." >&5
+$as_echo "$as_me: error: cannot run test program while cross compiling
+See \`config.log' for more details." >&2;}
+ { (exit 1); exit 1; }; }; }
else
cat >conftest.$ac_ext <<_ACEOF
/* confdefs.h. */