Hi Felix,
Felix Fietkau wrote,

> > Index: include/host-build.mk
> > ===================================================================
> > --- include/host-build.mk   (revision 35879)
> > +++ include/host-build.mk   (working copy)
> > @@ -71,7 +71,7 @@
> >  
> >  HOST_MAKE_FLAGS =
> >  
> > -HOST_CONFIGURE_CMD = ./configure
> > +HOST_CONFIGURE_CMD = $(BASH) ./configure
> >  
> >  ifneq ($(HOST_OS),Darwin)
> >    ifeq ($(CONFIG_BUILD_STATIC_TOOLS),y)
> This looks like a workaround for a specific package that doesn't build.
> Please provide some details why this is necessary.

Okay, the details are, when configure of some packages is running
with OpenBSD ksh, print -r is used as portable echo command.
Later then when we compile the configured source bash is used and
there is no print builtin, so the build fails.

Attached is a new patch including fixes for the rest of your
suggestions.

bye
 Waldemar
 
Index: include/host.mk
===================================================================
--- include/host.mk	(revision 35879)
+++ include/host.mk	(working copy)
@@ -62,6 +62,9 @@
 		PATCH=`which gpatch 2>/dev/null`; \
 		[ -n "$$PATCH" -a -x "$$PATCH" ] || PATCH=`which patch 2>/dev/null`; \
 		echo "PATCH:=$$PATCH" >> $@; \
+		PYTHON=`which python2.7 2>/dev/null`; \
+		[ -n "$$PYTHON" -a -x "$$PYTHON" ] || PYTHON=`which python 2>/dev/null`; \
+		echo "PYTHON:=$$PYTHON" >> $@; \
 	)
 
 endif
Index: include/prereq-build.mk
===================================================================
--- include/prereq-build.mk	(revision 35879)
+++ include/prereq-build.mk	(working copy)
@@ -39,6 +39,7 @@
 ))
 
 define Require/getopt
+	gnugetopt --help 2>&1 | grep long >/dev/null || \
 	getopt --help 2>&1 | grep long >/dev/null
 endef
 $(eval $(call Require,getopt, \
@@ -134,15 +135,11 @@
 	Please install bzip2. \
 ))
 
-$(eval $(call RequireCommand,patch, \
-	Please install patch. \
-))
-
 $(eval $(call RequireCommand,perl, \
 	Please install perl. \
 ))
 
-$(eval $(call RequireCommand,python, \
+$(eval $(call RequireCommand,$(PYTHON), \
 	Please install python. \
 ))
 
Index: include/host-build.mk
===================================================================
--- include/host-build.mk	(revision 35879)
+++ include/host-build.mk	(working copy)
@@ -71,7 +71,7 @@
 
 HOST_MAKE_FLAGS =
 
-HOST_CONFIGURE_CMD = ./configure
+HOST_CONFIGURE_CMD = $(BASH) ./configure
 
 ifneq ($(HOST_OS),Darwin)
   ifeq ($(CONFIG_BUILD_STATIC_TOOLS),y)
Index: scripts/openbsd.sh
===================================================================
--- scripts/openbsd.sh	(revision 0)
+++ scripts/openbsd.sh	(working copy)
@@ -0,0 +1,24 @@
+#!/bin/sh
+ver=$(uname -r)
+arch=$(uname -m)
+echo "Preparing OpenBSD $arch $ver for OpenWrt"
+PKG_PATH="http://ftp.openbsd.org/pub/OpenBSD/${ver}/packages/${arch}/";
+export PKG_PATH
+pkg_add -v gmake
+pkg_add -v findutils
+pkg_add -v coreutils
+pkg_add -v gdiff
+pkg_add -v rsync--
+pkg_add -v git
+pkg_add -v bash
+pkg_add -v unzip
+pkg_add -v wget
+pkg_add -v gtar--
+pkg_add -v ggrep
+pkg_add -v gawk
+pkg_add -v gsed
+pkg_add -v xz
+pkg_add -v apr-util--
+pkg_add -v cyrus-sasl--
+pkg_add -v subversion
+pkg_add -v gnugetopt

Property changes on: scripts/openbsd.sh
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: README
===================================================================
--- README	(revision 35879)
+++ README	(working copy)
@@ -3,8 +3,8 @@
 Please use "make menuconfig" to configure your appreciated
 configuration for the toolchain and firmware.
 
-You need to have installed gcc, binutils, patch, bzip2, flex,
-make, gettext, pkg-config, unzip, libz-dev and libc headers.
+You need to have installed gcc, binutils, bzip2, flex, python, perl
+make, gettext, unzip, gawk, getopt, libz-dev and libc headers.
 
 Run "./scripts/feeds update" to get the latest package definitions
 defined in feeds.conf / feeds.conf.default respectively
Index: tools/mkimage/patches/020-openbsd_fixes.patch
===================================================================
--- tools/mkimage/patches/020-openbsd_fixes.patch	(revision 0)
+++ tools/mkimage/patches/020-openbsd_fixes.patch	(working copy)
@@ -0,0 +1,19 @@
+diff -Nur u-boot-2012.04.01.orig/tools/mkimage.c u-boot-2012.04.01/tools/mkimage.c
+--- u-boot-2012.04.01.orig/tools/mkimage.c	Wed Apr 25 15:22:50 2012
++++ u-boot-2012.04.01/tools/mkimage.c	Wed Mar  6 17:09:29 2013
+@@ -449,6 +449,7 @@
+ #if defined(_POSIX_SYNCHRONIZED_IO) && \
+    !defined(__sun__) && \
+    !defined(__FreeBSD__) && \
++   !defined(__OpenBSD__) && \
+    !defined(__APPLE__)
+ 	(void) fdatasync (ifd);
+ #else
+@@ -492,6 +493,7 @@
+ #if defined(_POSIX_SYNCHRONIZED_IO) && \
+    !defined(__sun__) && \
+    !defined(__FreeBSD__) && \
++   !defined(__OpenBSD__) && \
+    !defined(__APPLE__)
+ 	(void) fdatasync (ifd);
+ #else
Index: tools/Makefile
===================================================================
--- tools/Makefile	(revision 35879)
+++ tools/Makefile	(working copy)
@@ -15,7 +15,7 @@
 endif
 tools-y += m4 libtool autoconf automake flex bison pkg-config sed mklibs
 tools-y += sstrip ipkg-utils genext2fs e2fsprogs mtd-utils mkimage
-tools-y += firmware-utils patch-image quilt yaffs2 flock padjffs2
+tools-y += firmware-utils patch-image patch quilt yaffs2 flock padjffs2
 tools-y += mm-macros xorg-macros xfce-macros missing-macros xz cmake scons
 tools-$(CONFIG_TARGET_orion_generic) += wrt350nv2-builder upslug2
 tools-$(CONFIG_powerpc) += upx
@@ -128,10 +128,14 @@
 $(eval $(call PrepareCommand,md5sum,gmd5sum md5sum $(SCRIPT_DIR)/md5sum))
 $(eval $(call PrepareCommand,cp,gcp cp))
 $(eval $(call PrepareCommand,seq,gseq seq))
-$(eval $(call PrepareCommand,python,python2 python))
+$(eval $(call PrepareCommand,python,python2 python2.7 python))
 $(eval $(call PrepareCommand,awk,gawk awk))
+$(eval $(call PrepareCommand,getopt,gnugetopt getopt))
+$(eval $(call PrepareCommand,grep,ggrep grep))
+$(eval $(call PrepareCommand,tar,gtar tar))
+$(eval $(call PrepareCommand,diff,gdiff diff))
 
-$(curdir)/cmddeps = $(patsubst %,$(STAGING_DIR_HOST)/bin/%,find md5sum cp stat seq python awk)
+$(curdir)/cmddeps = $(patsubst %,$(STAGING_DIR_HOST)/bin/%,find md5sum cp stat seq python awk getopt grep tar diff)
 $(curdir)//prepare = $(STAGING_DIR)/.prepared $(STAGING_DIR_HOST)/.prepared $($(curdir)/cmddeps)
 $(curdir)//compile = $(STAGING_DIR)/.prepared $(STAGING_DIR_HOST)/.prepared $($(curdir)/cmddeps)
 
Index: tools/squashfs4/patches/180-openbsd_compat.patch
===================================================================
--- tools/squashfs4/patches/180-openbsd_compat.patch	(revision 0)
+++ tools/squashfs4/patches/180-openbsd_compat.patch	(working copy)
@@ -0,0 +1,26 @@
+diff -Nur squashfs4.2.orig/squashfs-tools/mksquashfs.c squashfs4.2/squashfs-tools/mksquashfs.c
+--- squashfs4.2.orig/squashfs-tools/mksquashfs.c	Tue Mar  5 16:20:49 2013
++++ squashfs4.2/squashfs-tools/mksquashfs.c	Tue Mar  5 16:25:10 2013
+@@ -32,6 +32,9 @@
+ #include <stdio.h>
+ #include <stddef.h>
+ #include <sys/time.h>
++#if defined(__OpenBSD__)
++#include <sys/param.h>
++#endif
+ #include <sys/types.h>
+ #include <sys/stat.h>
+ #include <fcntl.h>
+diff -Nur squashfs4.2.orig/squashfs-tools/unsquashfs.h squashfs4.2/squashfs-tools/unsquashfs.h
+--- squashfs4.2.orig/squashfs-tools/unsquashfs.h	Tue Mar  5 16:20:49 2013
++++ squashfs4.2/squashfs-tools/unsquashfs.h	Tue Mar  5 16:25:57 2013
+@@ -25,6 +25,9 @@
+ #define TRUE 1
+ #define FALSE 0
+ #include <stdio.h>
++#if defined(__OpenBSD__)
++#include <sys/param.h>
++#endif
+ #include <sys/types.h>
+ #include <unistd.h>
+ #include <stdlib.h>
Index: tools/quilt/Makefile
===================================================================
--- tools/quilt/Makefile	(revision 35879)
+++ tools/quilt/Makefile	(working copy)
@@ -15,12 +15,8 @@
 
 include $(INCLUDE_DIR)/host-build.mk
 
-GETOPT:=$(shell which getopt)
-
 HOST_CONFIGURE_ARGS += \
-	--with-patch=$(PATCH) \
-	--with-find=$(FIND) \
-	--with-getopt=$(GETOPT)
+	--with-find=$(FIND)
 
 define Host/Configure
 	cd $(HOST_BUILD_DIR) && autoconf
Index: tools/patch/Makefile
===================================================================
--- tools/patch/Makefile	(revision 0)
+++ tools/patch/Makefile	(working copy)
@@ -0,0 +1,18 @@
+# 
+# Copyright (C) 2013 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=patch
+PKG_VERSION:=2.7.1
+
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
+PKG_SOURCE_URL:=ftp://ftp.gnu.org/gnu/patch
+PKG_MD5SUM:=e9ae5393426d3ad783a300a338c09b72
+
+include $(INCLUDE_DIR)/host-build.mk
+
+$(eval $(call HostBuild))
Index: tools/include/getline.h
===================================================================
--- tools/include/getline.h	(revision 35879)
+++ tools/include/getline.h	(working copy)
@@ -32,7 +32,7 @@
 #include <stdlib.h>
 #include <string.h>
 
-#if !defined(__linux__) && !(defined(__APPLE__) && __DARWIN_C_LEVEL >= 200809L)
+#if !defined(__linux__) && !defined(__OpenBSD__) && !(defined(__APPLE__) && __DARWIN_C_LEVEL >= 200809L)
 /*
  * Emulate glibc getline() via BSD fgetln().
  * Note that outsize is not changed unless memory is allocated.
Index: tools/include/endian.h
===================================================================
--- tools/include/endian.h	(revision 35879)
+++ tools/include/endian.h	(working copy)
@@ -15,6 +15,11 @@
 #define bswap_16(x) bswap16(x)
 #define bswap_32(x) bswap32(x)
 #define bswap_64(x) bswap64(x)
+#elif defined(__OpenBSD__)
+#include <sys/types.h>
+#define bswap_16(x) __swap16(x)
+#define bswap_32(x) __swap32(x)
+#define bswap_64(x) __swap64(x)
 #else
 #include <machine/endian.h>
 #define bswap_16(x) swap16(x)
Index: tools/yaffs2/patches/110-openbsd-compat.patch
===================================================================
--- tools/yaffs2/patches/110-openbsd-compat.patch	(revision 0)
+++ tools/yaffs2/patches/110-openbsd-compat.patch	(working copy)
@@ -0,0 +1,14 @@
+diff -Nur yaffs2_android.orig/yaffs2/yaffs_guts.h yaffs2_android/yaffs2/yaffs_guts.h
+--- yaffs2_android.orig/yaffs2/yaffs_guts.h	Sun Feb 15 16:23:50 2009
++++ yaffs2_android/yaffs2/yaffs_guts.h	Tue Mar  5 15:45:21 2013
+@@ -823,6 +823,10 @@
+ int yaffs_SetAttributes(yaffs_Object * obj, struct iattr *attr);
+ int yaffs_GetAttributes(yaffs_Object * obj, struct iattr *attr);
+ 
++#if defined(__OpenBSD__)
++#define loff_t off_t
++#endif
++
+ /* File operations */
+ int yaffs_ReadDataFromFile(yaffs_Object * obj, __u8 * buffer, loff_t offset,
+ 			   int nBytes);
Index: tools/e2fsprogs/patches/003-openbsd-compat.patch
===================================================================
--- tools/e2fsprogs/patches/003-openbsd-compat.patch	(revision 0)
+++ tools/e2fsprogs/patches/003-openbsd-compat.patch	(working copy)
@@ -0,0 +1,805 @@
+diff -Nur e2fsprogs-1.42.7.orig/lib/blkid/getsize.c e2fsprogs-1.42.7/lib/blkid/getsize.c
+--- e2fsprogs-1.42.7.orig/lib/blkid/getsize.c	Fri Nov 30 03:40:18 2012
++++ e2fsprogs-1.42.7/lib/blkid/getsize.c	Wed Mar  6 16:40:56 2013
+@@ -26,6 +26,9 @@
+ #include <fcntl.h>
+ #ifdef HAVE_SYS_IOCTL_H
+ #include <sys/ioctl.h>
++#ifdef __OpenBSD__
++#include <sys/dkio.h>
++#endif
+ #endif
+ #ifdef HAVE_LINUX_FD_H
+ #include <linux/fd.h>
+diff -Nur e2fsprogs-1.42.7.orig/lib/quota/mkquota.c e2fsprogs-1.42.7/lib/quota/mkquota.c
+--- e2fsprogs-1.42.7.orig/lib/quota/mkquota.c	Wed Jan  2 01:47:20 2013
++++ e2fsprogs-1.42.7/lib/quota/mkquota.c	Wed Mar  6 16:40:28 2013
+@@ -8,6 +8,7 @@
+ #include <sys/stat.h>
+ #include <unistd.h>
+ #include <errno.h>
++#include <stdint.h>
+ #include <string.h>
+ #include <fcntl.h>
+ 
_______________________________________________
openwrt-devel mailing list
openwrt-devel@lists.openwrt.org
https://lists.openwrt.org/mailman/listinfo/openwrt-devel

Reply via email to