summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--README4
-rw-r--r--include/host-build.mk2
-rw-r--r--include/host.mk3
-rw-r--r--include/prereq-build.mk8
-rw-r--r--package/mac80211/patches/004-use_env_for_bash.patch9
-rw-r--r--scripts/freebsd.sh1
-rw-r--r--scripts/openbsd.sh24
-rw-r--r--tools/Makefile12
-rw-r--r--tools/e2fsprogs/patches/003-openbsd-compat.patch24
-rw-r--r--tools/e2fsprogs/patches/004-freebsd-compat.patch13
-rw-r--r--tools/include/endian.h5
-rw-r--r--tools/include/getline.h2
-rw-r--r--tools/mkimage/patches/020-openbsd_fixes.patch19
-rw-r--r--tools/patch/Makefile18
-rw-r--r--tools/quilt/Makefile6
-rw-r--r--tools/squashfs4/patches/180-openbsd_compat.patch26
-rw-r--r--tools/yaffs2/patches/110-openbsd-compat.patch14
17 files changed, 173 insertions, 17 deletions
diff --git a/README b/README
index 9301fe456e..32e698d34e 100644
--- a/README
+++ b/README
@@ -3,8 +3,8 @@ This is the buildsystem for the OpenWrt Linux distribution.
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, find, grep, diff, unzip, gawk, getopt, libz-dev and libc headers.
Run "./scripts/feeds update -a" to get all the latest package definitions
defined in feeds.conf / feeds.conf.default respectively
diff --git a/include/host-build.mk b/include/host-build.mk
index 320e74ee47..126671a0b3 100644
--- a/include/host-build.mk
+++ b/include/host-build.mk
@@ -71,7 +71,7 @@ HOST_CONFIGURE_ARGS = \
HOST_MAKE_FLAGS =
-HOST_CONFIGURE_CMD = ./configure
+HOST_CONFIGURE_CMD = $(BASH) ./configure
ifneq ($(HOST_OS),Darwin)
ifeq ($(CONFIG_BUILD_STATIC_TOOLS),y)
diff --git a/include/host.mk b/include/host.mk
index 9b8a32b672..b44c1bf1ac 100644
--- a/include/host.mk
+++ b/include/host.mk
@@ -62,6 +62,9 @@ $(TMP_DIR)/.host.mk: $(TOPDIR)/include/host.mk
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
diff --git a/include/prereq-build.mk b/include/prereq-build.mk
index c7d59f1202..59ea7ef9a7 100644
--- a/include/prereq-build.mk
+++ b/include/prereq-build.mk
@@ -39,6 +39,8 @@ $(eval $(call Require,case-sensitive-fs, \
))
define Require/getopt
+ gnugetopt --help 2>&1 | grep long >/dev/null || \
+ /usr/local/bin/getopt --help 2>&1 | grep long >/dev/null || \
getopt --help 2>&1 | grep long >/dev/null
endef
$(eval $(call Require,getopt, \
@@ -134,15 +136,11 @@ $(eval $(call RequireCommand,bzip2, \
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. \
))
diff --git a/package/mac80211/patches/004-use_env_for_bash.patch b/package/mac80211/patches/004-use_env_for_bash.patch
new file mode 100644
index 0000000000..889191d37e
--- /dev/null
+++ b/package/mac80211/patches/004-use_env_for_bash.patch
@@ -0,0 +1,9 @@
+diff -Nur compat-wireless-2013-02-22.orig/compat/scripts/gen-compat-config.sh compat-wireless-2013-02-22/compat/scripts/gen-compat-config.sh
+--- compat-wireless-2013-02-22.orig/compat/scripts/gen-compat-config.sh 2012-12-20 15:14:36.000000000 +0100
++++ compat-wireless-2013-02-22/compat/scripts/gen-compat-config.sh 2013-03-07 17:27:04.000000000 +0100
+@@ -1,4 +1,4 @@
+-#!/bin/bash
++#!/usr/bin/env bash
+ # Copyright 2012 Luis R. Rodriguez <mcgrof@frijolero.org>
+ # Copyright 2012 Hauke Mehrtens <hauke@hauke-m.de>
+ #
diff --git a/scripts/freebsd.sh b/scripts/freebsd.sh
new file mode 100644
index 0000000000..3107861ff8
--- /dev/null
+++ b/scripts/freebsd.sh
@@ -0,0 +1 @@
+env PACKAGESITE=ftp://ftp.freebsd.org/pub/FreeBSD/ports/amd64/packages-9.0-release/All/ pkg_add -r gmake-3.82.tbz bash-4.1.11.tbz python27-2.7.2_3.tbz gtar-1.26.tbz findutils-4.5.10_2.tbz coreutils-8.12.tbz getopt-1.1.4_2.tbz wget-1.13.4_1.tbz gnugrep-2.9.tbz gawk-4.0.0.tbz
diff --git a/scripts/openbsd.sh b/scripts/openbsd.sh
new file mode 100644
index 0000000000..dc9f4f7780
--- /dev/null
+++ b/scripts/openbsd.sh
@@ -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
diff --git a/tools/Makefile b/tools/Makefile
index d922c5364c..1d65e50ba9 100644
--- a/tools/Makefile
+++ b/tools/Makefile
@@ -15,7 +15,7 @@ tools-y += gmp mpfr mpc libelf
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
@@ -119,6 +119,8 @@ $(STAGING_DIR_HOST)/bin/stat: $(STAGING_DIR)/.prepared
ln -s `which stat` $@; \
elif gstat --version > /dev/null 2>&1; then \
ln -s `which gstat` $@; \
+ elif gnustat --version > /dev/null 2>&1; then \
+ ln -s `which gnustat` $@; \
else \
echo "GNU stat not found"; \
false; \
@@ -128,10 +130,14 @@ $(eval $(call PrepareCommand,find,gfind find))
$(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 /usr/local/bin/getopt 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)
diff --git a/tools/e2fsprogs/patches/003-openbsd-compat.patch b/tools/e2fsprogs/patches/003-openbsd-compat.patch
new file mode 100644
index 0000000000..1f7cdca0e5
--- /dev/null
+++ b/tools/e2fsprogs/patches/003-openbsd-compat.patch
@@ -0,0 +1,24 @@
+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 Thu Mar 7 14:21:59 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 Thu Mar 7 14:21:59 2013
+@@ -8,6 +8,7 @@
+ #include <sys/stat.h>
+ #include <unistd.h>
+ #include <errno.h>
++#include <stdint.h>
+ #include <string.h>
+ #include <fcntl.h>
+
diff --git a/tools/e2fsprogs/patches/004-freebsd-compat.patch b/tools/e2fsprogs/patches/004-freebsd-compat.patch
new file mode 100644
index 0000000000..5eff49999e
--- /dev/null
+++ b/tools/e2fsprogs/patches/004-freebsd-compat.patch
@@ -0,0 +1,13 @@
+diff -Nur e2fsprogs-1.42.7.orig/lib/ext2fs/tdb.c e2fsprogs-1.42.7/lib/ext2fs/tdb.c
+--- e2fsprogs-1.42.7.orig/lib/ext2fs/tdb.c 2012-07-06 15:37:27.000000000 +0200
++++ e2fsprogs-1.42.7/lib/ext2fs/tdb.c 2013-03-07 14:54:59.000000000 +0100
+@@ -56,7 +56,9 @@
+ #include <utime.h>
+ #endif
+ #include <sys/stat.h>
++#ifndef __FreeBSD__
+ #include <sys/file.h>
++#endif
+ #include <fcntl.h>
+
+ #ifdef HAVE_SYS_MMAN_H
diff --git a/tools/include/endian.h b/tools/include/endian.h
index 0f17b41da7..bba70abd83 100644
--- a/tools/include/endian.h
+++ b/tools/include/endian.h
@@ -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)
diff --git a/tools/include/getline.h b/tools/include/getline.h
index 02df6c2f79..3ac21715b8 100644
--- a/tools/include/getline.h
+++ b/tools/include/getline.h
@@ -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.
diff --git a/tools/mkimage/patches/020-openbsd_fixes.patch b/tools/mkimage/patches/020-openbsd_fixes.patch
new file mode 100644
index 0000000000..31ee38f66e
--- /dev/null
+++ b/tools/mkimage/patches/020-openbsd_fixes.patch
@@ -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
diff --git a/tools/patch/Makefile b/tools/patch/Makefile
new file mode 100644
index 0000000000..def8299095
--- /dev/null
+++ b/tools/patch/Makefile
@@ -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))
diff --git a/tools/quilt/Makefile b/tools/quilt/Makefile
index 510d8f6fd5..541e656aff 100644
--- a/tools/quilt/Makefile
+++ b/tools/quilt/Makefile
@@ -15,12 +15,8 @@ PKG_MD5SUM:=f77adda60039ffa753f3c584a286f12b
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
diff --git a/tools/squashfs4/patches/180-openbsd_compat.patch b/tools/squashfs4/patches/180-openbsd_compat.patch
new file mode 100644
index 0000000000..6d7a857a05
--- /dev/null
+++ b/tools/squashfs4/patches/180-openbsd_compat.patch
@@ -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>
diff --git a/tools/yaffs2/patches/110-openbsd-compat.patch b/tools/yaffs2/patches/110-openbsd-compat.patch
new file mode 100644
index 0000000000..cfafc1ca7e
--- /dev/null
+++ b/tools/yaffs2/patches/110-openbsd-compat.patch
@@ -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);