diff --git a/app-admin/pwgen/pwgen-2.06.bep b/app-admin/pwgen/pwgen-2.06.bep index 05bb863ae..209ad42d1 100644 --- a/app-admin/pwgen/pwgen-2.06.bep +++ b/app-admin/pwgen/pwgen-2.06.bep @@ -7,7 +7,7 @@ STATUS_HAIKU="stable" DEPEND="" BUILD { cd pwgen-2.06 - ./configure --prefix=/boot/common + ./configure --prefix=`finddir B_COMMON_DIRECTORY` make } diff --git a/app-arch/arc/arc-5.21o.bep b/app-arch/arc/arc-5.21o.bep index 96d0cbf22..a27d79533 100644 --- a/app-arch/arc/arc-5.21o.bep +++ b/app-arch/arc/arc-5.21o.bep @@ -12,9 +12,9 @@ BUILD { INSTALL { cd arc-5.21o - install arc /boot/common/bin - install marc /boot/common/bin - install arc.1 /boot/common/man/man1 + install arc --prefix={$DESTDIR}`finddir B_COMMON_DIRECTORY` + install marc --prefix={$DESTDIR}`finddir B_COMMON_DIRECTORY` + install arc.1 {$DESTDIR}`finddir B_COMMON_DOCUMENTATION_DIRECTORY`/man/man1 } LICENSE="GNU GPL v2" diff --git a/app-arch/cabextract/cabextract-1.2.bep b/app-arch/cabextract/cabextract-1.2.bep index 12752d2f0..5e6df8e4c 100644 --- a/app-arch/cabextract/cabextract-1.2.bep +++ b/app-arch/cabextract/cabextract-1.2.bep @@ -7,7 +7,7 @@ STATUS_HAIKU="stable" DEPEND="" BUILD { cd cabextract-1.2 - ./configure --prefix=/boot/common + ./configure --prefix=`finddir B_COMMON_DIRECTORY` make } diff --git a/app-arch/cabextract/cabextract-1.3.bep b/app-arch/cabextract/cabextract-1.3.bep index 9264b066c..be5f7b460 100644 --- a/app-arch/cabextract/cabextract-1.3.bep +++ b/app-arch/cabextract/cabextract-1.3.bep @@ -7,7 +7,7 @@ STATUS_HAIKU="stable" DEPEND="" BUILD { cd cabextract-1.3 - ./configure --prefix=/boot/common + ./configure --prefix=`finddir B_COMMON_DIRECTORY` make } diff --git a/app-arch/cpio/cpio-2.10.bep b/app-arch/cpio/cpio-2.10.bep index 9899f3a06..f0971c4c3 100644 --- a/app-arch/cpio/cpio-2.10.bep +++ b/app-arch/cpio/cpio-2.10.bep @@ -7,7 +7,11 @@ STATUS_HAIKU="stable" DEPEND="" BUILD { cd cpio-2.10 - ./configure --prefix=/boot/common + sed -i 's/restrict//g' gnu/string.in.h + ./configure --prefix=`finddir B_COMMON_DIRECTORY` \ + infodir=`finddir B_COMMON_DOCUMENTATION_DIRECTORY`/info \ + mandir=`finddir B_COMMON_DOCUMENTATION_DIRECTORY`/man \ + localedir=`finddir B_COMMON_DATA_DIRECTORY`/locale make } @@ -15,5 +19,11 @@ INSTALL { cd cpio-2.10 make install } + +TEST { + cd cpio-2.10 + make check +} + LICENSE="GNU GPL v3" COPYRIGHT="1988-2009 Free Software Foundation, Inc." diff --git a/app-arch/cpio/cpio-2.11.bep b/app-arch/cpio/cpio-2.11.bep new file mode 100644 index 000000000..4b5e8d0bb --- /dev/null +++ b/app-arch/cpio/cpio-2.11.bep @@ -0,0 +1,29 @@ +DESCRIPTION="GNU cpio copies files into or out of a cpio or tar archive. The archive can be another file on the disk, a magnetic tape, or a pipe." +HOMEPAGE="http://www.gnu.org/software/cpio/cpio.html" +SRC_URI="http://ftp.gnu.org/gnu/cpio/cpio-2.11.tar.gz" +CHECKSUM_MD5="1112bb6c45863468b5496ba128792f6c" +REVISION="1" +STATUS_HAIKU="broken" +DEPEND="" +BUILD { + cd cpio-2.11 +# sed -i 's/restrict//g' gnu/string.in.h + ./configure --prefix=`finddir B_COMMON_DIRECTORY` \ + infodir=`finddir B_COMMON_DOCUMENTATION_DIRECTORY`/info \ + mandir=`finddir B_COMMON_DOCUMENTATION_DIRECTORY`/man \ + localedir=`finddir B_COMMON_DATA_DIRECTORY`/locale + make +} + +INSTALL { + cd cpio-2.11 + make install +} + +TEST { + cd cpio-2.11 + make check +} + +LICENSE="GNU GPL v3" +COPYRIGHT="1988-2010 Free Software Foundation, Inc." diff --git a/app-arch/cpio/patches/cpio-2.10.patch b/app-arch/cpio/patches/cpio-2.10.patch index 345fdb451..c81bad271 100644 --- a/app-arch/cpio/patches/cpio-2.10.patch +++ b/app-arch/cpio/patches/cpio-2.10.patch @@ -35,15 +35,16 @@ diff -urN cpio-2.10/gnu/hash.c cpio-2.10-haiku/gnu/hash.c char *dirpath; /* A copy we can scribble NULs on. */ struct stat stats; int retval = 0; -+ char *slash = dirpath; ++ char *slash; mode_t tmpmode; mode_t invert_permissions; int we_are_root = getuid () == 0; -@@ -68,7 +68,6 @@ +@@ -68,7 +69,7 @@ tmpmode = MODE_RWX & ~ newdir_umask; invert_permissions = we_are_root ? 0 : MODE_WXUSR & ~ tmpmode; - char *slash = dirpath; ++ slash = dirpath; while (*slash == '/') slash++; while ((slash = strchr (slash, '/'))) diff --git a/app-arch/cpio/patches/cpio-2.11.patch b/app-arch/cpio/patches/cpio-2.11.patch new file mode 100644 index 000000000..bc25253d3 --- /dev/null +++ b/app-arch/cpio/patches/cpio-2.11.patch @@ -0,0 +1,32 @@ +diff -urN cpio-2.11/configure.ac cpio-2.11-haiku/configure.ac +--- cpio-2.11/configure.ac 2010-03-10 04:59:16.008126464 -0800 ++++ cpio-2.11-haiku/configure.ac 2013-03-12 15:18:23.338165760 -0700 +@@ -47,6 +47,8 @@ + AC_HEADER_STDC + AC_HEADER_DIRENT + ++AC_SEARCH_LIBS(gethostbyname, [socket, network]) ++ + AC_CHECK_FUNCS([fchmod fchown]) + # This is needed for mingw build + AC_CHECK_FUNCS([setmode getpwuid getpwnam getgrgid getgrnam pipe fork getuid geteuid]) +diff -urN cpio-2.11/src/makepath.c cpio-2.11-haiku/src/makepath.c +--- cpio-2.11/src/makepath.c 2010-02-12 02:19:23.043778048 -0800 ++++ cpio-2.11-haiku/src/makepath.c 2013-03-12 15:18:30.096993280 -0700 +@@ -56,6 +56,7 @@ + char *dirpath; /* A copy we can scribble NULs on. */ + struct stat stats; + int retval = 0; ++ char *slash; + mode_t tmpmode; + mode_t invert_permissions; + int we_are_root = getuid () == 0; +@@ -68,7 +69,7 @@ + tmpmode = MODE_RWX & ~ newdir_umask; + invert_permissions = we_are_root ? 0 : MODE_WXUSR & ~ tmpmode; + +- char *slash = dirpath; ++ slash = dirpath; + while (*slash == '/') + slash++; + while ((slash = strchr (slash, '/'))) diff --git a/app-arch/fastjar/fastjar-0.98.bep b/app-arch/fastjar/fastjar-0.98.bep index 58d382d98..d1d6e50f3 100644 --- a/app-arch/fastjar/fastjar-0.98.bep +++ b/app-arch/fastjar/fastjar-0.98.bep @@ -8,7 +8,7 @@ DEPEND="" BUILD { cd fastjar-0.98 autoreconf -vfi - configure --prefix=/boot/common + configure --prefix=`finddir B_COMMON_DIRECTORY` make } diff --git a/app-arch/gzip/gzip-1.2.4a.bep b/app-arch/gzip/gzip-1.2.4a.bep index 92592902e..df43f1de9 100644 --- a/app-arch/gzip/gzip-1.2.4a.bep +++ b/app-arch/gzip/gzip-1.2.4a.bep @@ -7,7 +7,7 @@ STATUS_HAIKU="untested" DEPEND="" BUILD { cd gzip-1.2.4a - ./configure --prefix=/boot/common + ./configure --prefix=`finddir B_COMMON_DIRECTORY` make } diff --git a/app-arch/gzip/gzip-1.3.12.bep b/app-arch/gzip/gzip-1.3.12.bep index 69f0b4c3f..b5a35d4ef 100644 --- a/app-arch/gzip/gzip-1.3.12.bep +++ b/app-arch/gzip/gzip-1.3.12.bep @@ -7,7 +7,7 @@ STATUS_HAIKU="untested" DEPEND="" BUILD { cd gzip-1.3.12 - ./configure --prefix=/boot/common + ./configure --prefix=`finddir B_COMMON_DIRECTORY` make } diff --git a/app-arch/gzip/gzip-1.4.bep b/app-arch/gzip/gzip-1.4.bep new file mode 100644 index 000000000..555edcd22 --- /dev/null +++ b/app-arch/gzip/gzip-1.4.bep @@ -0,0 +1,21 @@ +DESCRIPTION="GNU zip" +HOMEPAGE="http://www.gzip.org/" +SRC_URI="ftp://ftp.gnu.org/gnu/gzip/gzip-1.4.tar.gz" +CHECKSUM_MD5="e381b8506210c794278f5527cba0e765" +REVISION="1" +STATUS_HAIKU="untested" +DEPEND="" +BUILD { + cd gzip-1.4 + ./configure --prefix=`finddir B_COMMON_DIRECTORY` + make +} + +INSTALL { + cd gzip-1.4 + make install +} +LICENSE="GNU GPL v3" +COPYRIGHT="1999, 2001-2002, 2006-2007, 2009-2010 Free Software Foundation, Inc. + 1992-1993 Jean-loup Gailly" + diff --git a/app-arch/gzip/patches/gzip-1.4.patch b/app-arch/gzip/patches/gzip-1.4.patch new file mode 100644 index 000000000..8b7051d87 --- /dev/null +++ b/app-arch/gzip/patches/gzip-1.4.patch @@ -0,0 +1,18 @@ +--- ./gzip-1.4/inflate.c 2010-01-20 14:15:12.017039360 +0100 ++++ ./gzip-1.4/inflate.c 2011-12-03 00:03:37.421003264 +0100 +@@ -588,6 +588,7 @@ + /* do the copy */ + do { + n -= (e = (e = WSIZE - ((d &= WSIZE-1) > w ? d : w)) > n ? n : e); ++ { + #if !defined(NOMEMCPY) && !defined(DEBUG) + unsigned int delta = w > d ? w - d : d - w; + if (delta >= e) +@@ -602,6 +603,7 @@ + slide[w++] = slide[d++]; + Tracevv((stderr, "%c", slide[w-1])); + } while (--e); ++ } + if (w == WSIZE) + { + flush_output(w); diff --git a/app-arch/lha/lha-1.14i.bep b/app-arch/lha/lha-1.14i.bep index 1a3e28307..1219ed066 100644 --- a/app-arch/lha/lha-1.14i.bep +++ b/app-arch/lha/lha-1.14i.bep @@ -8,7 +8,7 @@ DEPEND="" BUILD { cd lha-1.14i-ac20050924p1 autoreconf -vfi - ./configure --prefix=/boot/common/ + ./configure --prefix=`finddir B_COMMON_DIRECTORY`/ make } diff --git a/app-arch/libarchive/libarchive-2.8.5.bep b/app-arch/libarchive/libarchive-2.8.5.bep new file mode 100644 index 000000000..d44ecd1b8 --- /dev/null +++ b/app-arch/libarchive/libarchive-2.8.5.bep @@ -0,0 +1,34 @@ +DESCRIPTION="C library and command-line tools for reading and writing tar, cpio, zip, ISO, and other archive formats." +HOMEPAGE="http://libarchive.github.com/" +SRC_URI="https://github.com/downloads/libarchive/libarchive/libarchive-2.8.5.zip" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="" +CHECKSUM_MD5="58d1b202b4878e9da45cfe6d2a740881" +BUILD { + cd libarchive-2.8.5 + libtoolize --force --copy --install + aclocal -I build/autoconf + autoconf + automake + chmod 755 configure + COMMON_DOCS=`finddir B_COMMON_DOCUMENTATION_DIRECTORY` + COMMON_BIN=`finddir B_COMMON_BIN_DIRECTORY` + COMMON_DIR=`finddir B_COMMON_DIRECTORY` + ./configure --prefix=$COMMON_DIR \ + --mandir=$COMMON_DOCS/man + make +} + +INSTALL { + cd libarchive-2.8.5 + make install +} + +TEST { + cd libarchive-2.8.5 + make check +} + +LICENSE="BSD (2-clause)" +COPYRIGHT="2003-2009 Tim Kientzle" diff --git a/app-arch/libarchive/libarchive-3.0.3.bep b/app-arch/libarchive/libarchive-3.0.3.bep new file mode 100644 index 000000000..b5d4644a6 --- /dev/null +++ b/app-arch/libarchive/libarchive-3.0.3.bep @@ -0,0 +1,34 @@ +DESCRIPTION="C library and command-line tools for reading and writing tar, cpio, zip, ISO, and other archive formats." +HOMEPAGE="http://libarchive.github.com/" +SRC_URI="https://github.com/downloads/libarchive/libarchive/libarchive-3.0.3.tar.gz" +REVISION="1" +STATUS_HAIKU="broken" +DEPEND="" +CHECKSUM_MD5="ca4090f0099432a9ac5a8b6618dc3892" +BUILD { + cd libarchive-3.0.3 + libtoolize --force --copy --install + aclocal -I build/autoconf + autoconf + automake + chmod 755 configure + COMMON_DOCS=`finddir B_COMMON_DOCUMENTATION_DIRECTORY` + COMMON_BIN=`finddir B_COMMON_BIN_DIRECTORY` + COMMON_DIR=`finddir B_COMMON_DIRECTORY` + ./configure --prefix=$COMMON_DIR \ + --mandir=$COMMON_DOCS/man + make +} + +INSTALL { + cd libarchive-3.0.3 + make install +} + +TEST { + cd libarchive-3.0.3 + make check +} + +LICENSE="BSD (2-clause)" +COPYRIGHT="2003-2009 Tim Kientzle" diff --git a/app-arch/p7zip/p7zip-9.04.bep b/app-arch/p7zip/p7zip-9.04.bep index 4a35a39af..26ae736bb 100644 --- a/app-arch/p7zip/p7zip-9.04.bep +++ b/app-arch/p7zip/p7zip-9.04.bep @@ -1,5 +1,5 @@ -DESCRIPTION="p7zip" -HOMEPAGE="http://p7zip.sourceforge.net" +DESCRIPTION="p7zip" +HOMEPAGE="http://p7zip.sourceforge.net" SRC_URI="http://downloads.sourceforge.net/project/p7zip/p7zip/9.04/p7zip_9.04_src_all.tar.bz2?use_mirror=cdnetworks-us-2" REVISION="1" STATUS_HAIKU="stable" @@ -13,7 +13,11 @@ BUILD { INSTALL { cd p7zip_9.04 - make install DEST_DIR=${DESTDIR} DEST_HOME=`finddir B_COMMON_DIRECTORY` DEST_SHARE_DOC=`finddir B_COMMON_DOCUMENTATION_DIRECTORY`/p7zip DEST_MAN=`finddir B_COMMON_DOCUMENTATION_DIRECTORY`/man + COMMON_DOCS=`finddir B_COMMON_DOCUMENTATION_DIRECTORY` + make install DEST_DIR=${DESTDIR} \ + DEST_HOME=`finddir B_COMMON_DIRECTORY` \ + DEST_SHARE_DOC=$COMMON_DOCS/doc/p7zip \ + DEST_MAN=$COMMON_DOCS/man } LICENSE="GNU LGPL v2.1" COPYRIGHT="1999-2009 7-Zip Igor Pavlov." diff --git a/app-arch/p7zip/p7zip-9.13.bep b/app-arch/p7zip/p7zip-9.13.bep index a7e8ff335..a2b44e7f1 100644 --- a/app-arch/p7zip/p7zip-9.13.bep +++ b/app-arch/p7zip/p7zip-9.13.bep @@ -1,5 +1,5 @@ -DESCRIPTION="p7zip" -HOMEPAGE="http://p7zip.sourceforge.net" +DESCRIPTION="p7zip" +HOMEPAGE="http://p7zip.sourceforge.net" SRC_URI="http://downloads.sourceforge.net/project/p7zip/p7zip/9.13/p7zip_9.13_src_all.tar.bz2" REVISION="1" STATUS_HAIKU="stable" @@ -13,9 +13,10 @@ BUILD { INSTALL { cd p7zip_9.13 + COMMON_DOCS=`finddir B_COMMON_DOCUMENTATION_DIRECTORY` make install DEST_DIR=${DESTDIR} DEST_HOME=`finddir B_COMMON_DIRECTORY` \ - DEST_SHARE_DOC=`finddir B_COMMON_DOCUMENTATION_DIRECTORY`/p7zip \ - DEST_MAN=`finddir B_COMMON_DOCUMENTATION_DIRECTORY`/man + DEST_SHARE_DOC=$COMMON_DOCS/doc/p7zip \ + DEST_MAN=$COMMON_DOCS/man } LICENSE="GNU LGPL v2.1" COPYRIGHT="1999-2010 7-Zip Igor Pavlov." diff --git a/app-arch/p7zip/p7zip-9.20.1.bep b/app-arch/p7zip/p7zip-9.20.1.bep new file mode 100644 index 000000000..a011b20e1 --- /dev/null +++ b/app-arch/p7zip/p7zip-9.20.1.bep @@ -0,0 +1,22 @@ +DESCRIPTION="p7zip" +HOMEPAGE="http://p7zip.sourceforge.net" +SRC_URI="http://downloads.sourceforge.net/project/p7zip/p7zip/9.20.1/p7zip_9.20.1_src_all.tar.bz2" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="" +CHECKSUM_MD5="bd6caaea567dc0d995c990c5cc883c89" +BUILD { + cd p7zip_9.20.1 + cp makefile.haiku makefile.machine + make +} + +INSTALL { + cd p7zip_9.20.1 + COMMON_DOCS=`finddir B_COMMON_DOCUMENTATION_DIRECTORY` + make install DEST_DIR=${DESTDIR} DEST_HOME=`finddir B_COMMON_DIRECTORY` \ + DEST_SHARE_DOC=$COMMON_DOCS/doc/p7zip \ + DEST_MAN=$COMMON_DOCS/man +} +LICENSE="GNU LGPL v2.1" +COPYRIGHT="1999-2011 7-Zip Igor Pavlov." diff --git a/app-arch/p7zip/patches/p7zip-9.20.1.patch b/app-arch/p7zip/patches/p7zip-9.20.1.patch new file mode 100644 index 000000000..5608dfd7e --- /dev/null +++ b/app-arch/p7zip/patches/p7zip-9.20.1.patch @@ -0,0 +1,53 @@ +diff -urN p7zip_9.20.1/CPP/myWindows/config.h p7zip_9.20.1-haiku/CPP/myWindows/config.h +--- p7zip_9.20.1/CPP/myWindows/config.h 2011-01-21 22:24:42.022806528 -0800 ++++ p7zip_9.20.1-haiku/CPP/myWindows/config.h 2012-06-13 23:02:29.589824000 -0700 +@@ -24,7 +24,7 @@ + + #endif /* !ENV_MACOSX && !ENV_BEOS */ + +- #if !defined(ENV_BEOS) ++ #if !defined(ENV_BEOS) && !defined(ENV_HAIKU) + #define ENV_HAVE_GETPASS + + #if !defined(sun) +diff -urN p7zip_9.20.1/CPP/Windows/System.cpp p7zip_9.20.1-haiku/CPP/Windows/System.cpp +--- p7zip_9.20.1/CPP/Windows/System.cpp 2009-02-15 01:19:45.023330816 -0800 ++++ p7zip_9.20.1-haiku/CPP/Windows/System.cpp 2012-06-13 23:06:28.000786432 -0700 +@@ -15,7 +15,7 @@ + #include + #endif + +-#if defined(ENV_BEOS) ++#if defined(ENV_BEOS) || defined(ENV_HAIKU) + #include + #endif + +@@ -79,7 +79,7 @@ + if (nbcpu < 1) nbcpu = 1; + return nbcpu; + } +- #elif defined(ENV_BEOS) ++ #elif defined(ENV_BEOS) || defined(ENV_HAIKU) + UInt32 GetNumberOfProcessors() { + system_info info; + get_system_info(&info); +diff -urN p7zip_9.20.1/makefile.haiku p7zip_9.20.1-haiku/makefile.haiku +--- p7zip_9.20.1/makefile.haiku 1969-12-31 16:00:00.000000000 -0800 ++++ p7zip_9.20.1-haiku/makefile.haiku 2012-06-13 23:09:01.245628928 -0700 +@@ -0,0 +1,16 @@ ++OPTFLAGS=-O ++ ++ALLFLAGS=${OPTFLAGS} -s \ ++ -DENV_HAIKU \ ++ -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE \ ++ -DNDEBUG -D_REENTRANT -DENV_UNIX \ ++ $(LOCAL_FLAGS) ++ ++CXX=g++ $(ALLFLAGS) ++CC=gcc $(ALLFLAGS) ++LINK_SHARED=-nostart ++ ++LOCAL_LIBS= ++LOCAL_LIBS_DLL=$(LOCAL_LIBS) ++ ++OBJ_CRC32=$(OBJ_CRC32_C) diff --git a/app-arch/sharutils/sharutils-4.10.bep b/app-arch/sharutils/sharutils-4.10.bep index 72367da5e..9c30b836d 100644 --- a/app-arch/sharutils/sharutils-4.10.bep +++ b/app-arch/sharutils/sharutils-4.10.bep @@ -1,5 +1,5 @@ -DESCRIPTION="sharutils" -HOMEPAGE="http://www.gnu.org/software/sharutils/" +DESCRIPTION="sharutils" +HOMEPAGE="http://www.gnu.org/software/sharutils/" SRC_URI="ftp://ftp.gnu.org/gnu/sharutils/sharutils-4.10.tar.gz" CHECKSUM_MD5="c8bbfa89810ce9f5399b38392549207c" REVISION="1" @@ -8,9 +8,10 @@ DEPEND="" MESSAGE="This port only builds with gcc4. Use 'setgcc gcc4' before building." BUILD { cd sharutils-4.10 - MANDIR=`finddir B_COMMON_DOCUMENTATION_DIRECTORY`/man + COMMON_DOCS=`finddir B_COMMON_DOCUMENTATION_DIRECTORY` ./configure --prefix=`finddir B_COMMON_DIRECTORY` \ - --mandir=$MANDIR \ + --infodir=$COMMON_DOCS/info \ + --mandir=$COMMON_DOCS/man \ --disable-nls make } diff --git a/app-arch/tar/patches/tar-1.26.patch b/app-arch/tar/patches/tar-1.26.patch new file mode 100644 index 000000000..6a5c15c80 --- /dev/null +++ b/app-arch/tar/patches/tar-1.26.patch @@ -0,0 +1,108 @@ +diff -aur tar-1.26/src/common.h tar/src/common.h +--- tar-1.26/src/common.h 2011-02-11 12:56:13.006553600 +0100 ++++ tar/src/common.h 2012-10-30 20:04:25.823132160 +0100 +@@ -186,6 +186,8 @@ + }; + GLOBAL enum old_files old_files_option; + ++GLOBAL bool simulate_hardlinks_option; ++ + /* Specified file name for incremental list. */ + GLOBAL const char *listed_incremental_option; + /* Incremental dump level */ +diff -aur tar-1.26/src/extract.c tar/src/extract.c +--- tar-1.26/src/extract.c 2010-11-27 11:33:22.008912896 +0100 ++++ tar/src/extract.c 2012-10-30 20:26:14.453246976 +0100 +@@ -31,6 +31,8 @@ + static mode_t newdir_umask; /* umask when creating new directories */ + static mode_t current_umask; /* current umask (which is set to 0 if -p) */ + ++static int extract_symlink (char *, int); ++ + #define ALL_MODE_BITS ((mode_t) ~ (mode_t) 0) + + #if ! HAVE_FCHMOD && ! defined fchmod +@@ -1113,6 +1115,38 @@ + char const *link_name; + int rc; + ++ if (simulate_hardlinks_option) ++ { ++ /* symlinks have to be normalized */ ++ const char* f = file_name; ++ const char* l = current_stat_info.link_name; ++ int sep_pos = 0; ++ int p_count = 0; ++ char *link_name = (char*) xmalloc(strlen(current_stat_info.link_name) * 2); ++ ++ for (; *f && *l; f++, l++) ++ { ++ if (*f != *l) ++ break; ++ if (*f == DIRECTORY_SEPARATOR) ++ sep_pos = f - file_name; ++ } ++ ++ for (p_count = 0; *f; f++) ++ if (*f == DIRECTORY_SEPARATOR) ++ p_count++; ++ ++ link_name[0] = '\0'; ++ while (p_count--) ++ strcat(link_name, "../"); ++ ++ strcat(link_name, ¤t_stat_info.link_name[sep_pos + 1]); ++ free(current_stat_info.link_name); ++ current_stat_info.link_name = link_name; ++ ++ return extract_symlink(file_name, typeflag); ++ } ++ + link_name = current_stat_info.link_name; + + if (! absolute_names_option && contains_dot_dot (link_name)) +@@ -1201,6 +1235,13 @@ + #else + static int warned_once; + ++ /* recursion is not welcomed here */ ++ if (simulate_hardlinks_option && typeflag == LINKTYPE) ++ { ++ link_error (current_stat_info.link_name, file_name); ++ return -1; ++ } ++ + if (!warned_once) + { + warned_once = 1; +diff -aur tar-1.26/src/tar.c tar/src/tar.c +--- tar-1.26/src/tar.c 2010-10-24 20:07:55.005767168 +0200 ++++ tar/src/tar.c 2012-10-30 20:21:51.518520832 +0100 +@@ -466,6 +466,8 @@ + {"overwrite-dir", OVERWRITE_DIR_OPTION, 0, 0, + N_("overwrite metadata of existing directories when extracting (default)"), + GRID+1 }, ++ {"replace-hardlinks", 'Q', 0, 0, ++ N_("replace hardlinks with corresponding symlink when extracting"), GRID+1 }, + #undef GRID + + #define GRID 40 +@@ -1815,6 +1817,10 @@ + set_archive_format (arg); + break; + ++ case 'Q': ++ simulate_hardlinks_option = true; ++ break; ++ + case INDEX_FILE_OPTION: + index_file_name = arg; + break; +@@ -2240,6 +2246,7 @@ + unquote_option = true; + tar_sparse_major = 1; + tar_sparse_minor = 0; ++ simulate_hardlinks_option = false; + + owner_option = -1; + group_option = -1; diff --git a/app-arch/tar/tar-1.22.bep b/app-arch/tar/tar-1.22.bep index 9f4d4a475..c27dcb404 100644 --- a/app-arch/tar/tar-1.22.bep +++ b/app-arch/tar/tar-1.22.bep @@ -7,7 +7,9 @@ STATUS_HAIKU="stable" DEPEND="" BUILD { cd tar-1.22 - ./configure --prefix=/boot/common --sbindir=/boot/common/bin --libexecdir=/boot/common/bin + ./configure --prefix=`finddir B_COMMON_DIRECTORY` \ + --sbindir=`finddir B_COMMON_BIN_DIRECTORY` \ + --libexecdir=`finddir B_COMMON_BIN_DIRECTORY` make } diff --git a/app-arch/tar/tar-1.23.bep b/app-arch/tar/tar-1.23.bep index e281aa46a..8b61cc573 100644 --- a/app-arch/tar/tar-1.23.bep +++ b/app-arch/tar/tar-1.23.bep @@ -7,7 +7,7 @@ STATUS_HAIKU="broken" DEPEND="" BUILD { cd tar-1.23 - ./configure --prefix=/boot/common + ./configure --prefix=`finddir B_COMMON_DIRECTORY` make } diff --git a/app-arch/tar/tar-1.25.bep b/app-arch/tar/tar-1.25.bep index 93ce9ce62..28fecf0bf 100644 --- a/app-arch/tar/tar-1.25.bep +++ b/app-arch/tar/tar-1.25.bep @@ -1,5 +1,5 @@ -DESCRIPTION="tar saves and restores files from a tape or disk archive." -HOMEPAGE="http://www.gnu.org/software/tar/" +DESCRIPTION="tar saves and restores files from a tape or disk archive." +HOMEPAGE="http://www.gnu.org/software/tar/" SRC_URI="http://ftp.gnu.org/gnu/tar/tar-1.25.tar.bz2" CHECKSUM_MD5="6e497f861c77bbba2f7da4e10270995b" REVISION="1" @@ -15,12 +15,15 @@ BUILD { cp -a `haikuporter -t`/dev-libs/gnulib/work/gnulib-9999/lib/fseek* gnu/ cp -a `haikuporter -t`/dev-libs/gnulib/work/gnulib-9999/lib/iswblank* gnu/ cp -a `haikuporter -t`/dev-libs/gnulib/work/gnulib-9999/lib/fcntl* gnu/ - ./configure --prefix=/boot/common \ - --infodir=`finddir B_COMMON_DOCUMENTATION_DIRECTORY`/info \ + sed -i 's/@GNULIB_NONBLOCKING@/0/' gnu/fcntl* + COMMON_DOCS=`finddir B_COMMON_DOCUMENTATION_DIRECTORY` + ./configure --prefix=`finddir B_COMMON_DIRECTORY` \ + --infodir=$COMMON_DOCS/info \ --libexecdir=`finddir B_COMMON_LIB_DIRECTORY`/exec \ - --sbindir=`finddir B_COMMON_SERVERS_DIRECTORY` \ + --sbindir=`finddir B_COMMON_BIN_DIRECTORY` \ + --disable-nls \ LDFLAGS="-lnetwork" \ - FORCE_UNSAFE_CONFIGURE=1 + FORCE_UNSAFE_CONFIGURE=1 make } diff --git a/app-arch/tar/tar-1.26.bep b/app-arch/tar/tar-1.26.bep new file mode 100644 index 000000000..ee941c03c --- /dev/null +++ b/app-arch/tar/tar-1.26.bep @@ -0,0 +1,26 @@ +DESCRIPTION="tar saves and restores files from a tape or disk archive." +HOMEPAGE="http://www.gnu.org/software/tar/" +SRC_URI="http://ftp.gnu.org/gnu/tar/tar-1.26.tar.bz2" +CHECKSUM_MD5="2cee42a2ff4f1cd4f9298eeeb2264519" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="" +BUILD { + cd tar-1.26 + COMMON_DOCS=`finddir B_COMMON_DOCUMENTATION_DIRECTORY` + ./configure --prefix=`finddir B_COMMON_DIRECTORY` \ + --infodir=$COMMON_DOCS/info \ + --libexecdir=`finddir B_COMMON_LIB_DIRECTORY`/exec \ + --sbindir=`finddir B_COMMON_BIN_DIRECTORY` \ + --disable-nls \ + LDFLAGS="-lnetwork" \ + FORCE_UNSAFE_CONFIGURE=1 + make +} + +INSTALL { + cd tar-1.26 + make install +} +LICENSE="GNU GPL v3" +COPYRIGHT="1990-2011 Free Software Foundation, Inc." diff --git a/app-arch/unrar/patches/unrar-4.2.4.patch b/app-arch/unrar/patches/unrar-4.2.4.patch new file mode 100644 index 000000000..bd12da35b --- /dev/null +++ b/app-arch/unrar/patches/unrar-4.2.4.patch @@ -0,0 +1,263 @@ +diff -aur unrar/arcread.cpp unrar.4.2.4.haiku/arcread.cpp +--- unrar/arcread.cpp 2012-06-09 15:21:04.066584576 +0200 ++++ unrar.4.2.4.haiku/arcread.cpp 2013-01-17 21:57:19.749207552 +0100 +@@ -666,7 +666,7 @@ + { + if (*s=='/' || *s=='\\') + *s=CPATHDIVIDER; +-#if defined(_APPLE) && !defined(UNICODE_SUPPORTED) ++#if (defined(_APPLE) || defined(_BEOS)) && !defined(UNICODE_SUPPORTED) + if ((byte)*s<32 || (byte)*s>127) + *s='_'; + #endif +diff -aur unrar/consio.cpp unrar.4.2.4.haiku/consio.cpp +--- unrar/consio.cpp 2012-06-09 15:21:04.000524288 +0200 ++++ unrar.4.2.4.haiku/consio.cpp 2013-01-21 22:23:37.662437888 +0100 +@@ -141,7 +141,7 @@ + SetConsoleMode(hConOut,ConOutMode); + #else + char StrA[MAXPASSWORD]; +-#if defined(_EMX) || defined(_BEOS) || defined(__sparc) || defined(sparc) || defined (__VMS) ++#if defined(_EMX) || defined(__sparc) || defined(sparc) || defined (__VMS) + fgets(StrA,ASIZE(StrA)-1,stdin); + #else + strncpyz(StrA,getpass(""),ASIZE(StrA)); +diff -aur unrar/extract.cpp unrar.4.2.4.haiku/extract.cpp +--- unrar/extract.cpp 2012-06-09 15:21:04.002097152 +0200 ++++ unrar.4.2.4.haiku/extract.cpp 2013-01-17 21:42:21.914620416 +0100 +@@ -311,7 +311,7 @@ + bool WideName=false; + #endif + +-#ifdef _APPLE ++#if defined(_APPLE) || defined(_BEOS) + if (WideName) + { + // Prepare UTF-8 name for OS X. Since we are sure that destination +diff -aur unrar/file.cpp unrar.4.2.4.haiku/file.cpp +--- unrar/file.cpp 2012-06-09 15:21:04.002621440 +0200 ++++ unrar.4.2.4.haiku/file.cpp 2013-01-21 22:12:02.543162368 +0100 +@@ -304,6 +304,8 @@ + hFile=stderr; + #endif + break; ++ default: ++ break; + } + #endif + while (1) +diff -aur unrar/find.cpp unrar.4.2.4.haiku/find.cpp +--- unrar/find.cpp 2012-06-09 15:21:04.003145728 +0200 ++++ unrar.4.2.4.haiku/find.cpp 2013-01-17 21:43:25.860618752 +0100 +@@ -104,7 +104,7 @@ + } + } + *fd->NameW=0; +-#ifdef _APPLE ++#if defined(_APPLE) || defined(_BEOS) + if (!LowAscii(fd->Name)) + UtfToWide(fd->Name,fd->NameW,sizeof(fd->NameW)); + #elif defined(UNICODE_SUPPORTED) +@@ -170,7 +170,7 @@ + strcpy(fd->Name,FindMask); + + *fd->NameW=0; +-#ifdef _APPLE ++#if defined(_APPLE) || defined(_BEOS) + if (!LowAscii(fd->Name)) + UtfToWide(fd->Name,fd->NameW,sizeof(fd->NameW)); + #elif defined(UNICODE_SUPPORTED) +diff -aur unrar/makefile.unix unrar.4.2.4.haiku/makefile.unix +--- unrar/makefile.unix 2012-05-15 07:31:03.004980736 +0200 ++++ unrar.4.2.4.haiku/makefile.unix 2013-01-21 22:17:15.800325632 +0100 +@@ -7,7 +7,11 @@ + LIBFLAGS=-fPIC + DEFINES=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE + STRIP=strip +-DESTDIR=/usr ++LDFLAGS=-lbsd ++RC=rc ++XRES=xres ++MIMESET=mimeset ++DESTDIR=$(shell finddir B_COMMON_DIRECTORY) + + # Linux using LCC + #CXX=lcc +@@ -114,12 +118,14 @@ + uninstall: uninstall-unrar + + clean: +- @rm -f *.o *.bak *~ ++ @rm -f *.o *.bak *~ *.rsrc + + unrar: clean $(OBJECTS) $(UNRAR_OBJ) + @rm -f unrar + $(LINK) -o unrar $(LDFLAGS) $(OBJECTS) $(UNRAR_OBJ) $(LIBS) +- $(STRIP) unrar ++ $(RC) -o unrar.rsrc unrar.rdef ++ $(XRES) -o unrar unrar.rsrc ++ $(MIMESET) unrar + + sfx: WHAT=SFX_MODULE + sfx: clean $(OBJECTS) +@@ -144,3 +150,29 @@ + + uninstall-lib: + rm -f $(DESTDIR)/lib/libunrar.so ++ ++MACHINE=$(shell uname -m) ++ifeq ($(MACHINE), BePC) ++ MACHINE = x86-gcc$(word 1, $(subst -, , $(subst ., , $(shell $(CC) -dumpversion)))) ++endif ++ ++VERSION=4.2.4 ++DATE := `date +%F` ++PACKAGE_NAME := unrar-$(VERSION)-$(MACHINE)-$(DATE) ++COMMENT = .OptionalPackageDescription ++DESCRIPTION = dist/$(COMMENT) ++ ++haiku_package: unrar ++ -rm -rf dist/common ++ -mkdir -p dist/common/bin ++ -cp unrar dist/common/bin ++ -mkdir -p dist/common/data/licenses ++ -cp license.txt dist/common/data/licenses/UnRAR ++ echo "Package: UnRAR" > $(DESCRIPTION) ++ echo "Version: $(VERSION)-$(MACHINE)-$(DATE)" >> $(DESCRIPTION) ++ echo "Copyright: Alexander Roshal." >> $(DESCRIPTION) ++ echo "Description: Utility to list, test and expand RAR archives." >> $(DESCRIPTION) ++ echo "License: UnRAR" >> $(DESCRIPTION) ++ echo "URL: http://www.rarlab.com/" >> $(DESCRIPTION) ++ cd dist && zip -9 -r -z -y $(PACKAGE_NAME).zip common $(COMMENT) < $(COMMENT) ++ +diff -aur unrar/os.hpp unrar.4.2.4.haiku/os.hpp +--- unrar/os.hpp 2012-06-09 15:21:04.005767168 +0200 ++++ unrar.4.2.4.haiku/os.hpp 2013-01-21 22:25:04.170655744 +0100 +@@ -134,8 +134,9 @@ + #define NM 1024 + + #ifdef _BEOS +-#include +-#include ++#include ++#include ++#include + #endif + + #include +@@ -206,6 +207,16 @@ + #endif + #endif + ++#ifdef _BEOS ++#if LITTLE_ENDIAN ++ #undef BIG_ENDIAN ++#elif BIG_ENDIAN ++ #undef LITTLE_ENDIAN ++#else ++ #error "Byte order must be defined!" ++#endif ++#endif ++ + #if defined(__sparc) || defined(sparc) || defined(__hpux) + #ifndef BIG_ENDIAN + #define BIG_ENDIAN +diff -aur unrar/raros.hpp unrar.4.2.4.haiku/raros.hpp +--- unrar/raros.hpp 2012-06-09 15:21:04.006553600 +0200 ++++ unrar.4.2.4.haiku/raros.hpp 2013-01-16 19:50:06.066060288 +0100 +@@ -29,7 +29,7 @@ + #endif + #endif + +-#ifdef __BEOS__ ++#if defined(__BEOS__) || defined(__HAIKU__) + #define _UNIX + #define _BEOS + #endif +diff -aur unrar/rartypes.hpp unrar.4.2.4.haiku/rartypes.hpp +--- unrar/rartypes.hpp 2012-06-09 15:21:04.006815744 +0200 ++++ unrar.4.2.4.haiku/rartypes.hpp 2013-01-19 23:12:46.715653120 +0100 +@@ -7,6 +7,7 @@ + + #define PRESENT_INT32 // undefine if signed 32 bits is not available + ++#ifndef _BEOS + typedef unsigned int uint32; // 32 bits exactly + typedef signed int int32; // signed 32 bits exactly + +@@ -20,6 +21,7 @@ + typedef unsigned long long uint64; // unsigned 64 bits + typedef signed long long int64; // signed 64 bits + #endif ++#endif // #ifndef _BEOS + + + #if defined(_WIN_ALL) || defined(__GNUC__) || defined(__sgi) || defined(_AIX) || defined(__sun) || defined(__hpux) || defined(_OSF_SOURCE) +diff -aur unrar/rarvm.cpp unrar.4.2.4.haiku/rarvm.cpp +--- unrar/rarvm.cpp 2012-06-09 15:21:04.007077888 +0200 ++++ unrar.4.2.4.haiku/rarvm.cpp 2013-01-21 22:12:02.605814784 +0100 +@@ -792,6 +792,8 @@ + case VM_CMP: + Cmd->OpCode=Cmd->ByteMode ? VM_CMPB:VM_CMPD; + continue; ++ default: ++ break; + } + if ((VM_CmdFlags[Cmd->OpCode] & VMCF_CHFLAGS)==0) + continue; +@@ -835,6 +837,8 @@ + case VM_NEG: + Cmd->OpCode=Cmd->ByteMode ? VM_NEGB:VM_NEGD; + continue; ++ default: ++ break; + } + } + } +@@ -1102,6 +1106,8 @@ + SET_VALUE(false,&Mem[VM_GLOBALMEMADDR+0x20],DataSize); + } + break; ++ default: ++ break; + } + } + +diff -aur unrar/unicode.cpp unrar.4.2.4.haiku/unicode.cpp +--- unrar/unicode.cpp 2012-06-09 15:21:04.010747904 +0200 ++++ unrar.4.2.4.haiku/unicode.cpp 2013-01-17 21:41:15.856686592 +0100 +@@ -13,7 +13,7 @@ + if (WideCharToMultiByte(CP_ACP,0,Src,-1,Dest,(int)DestSize,NULL,NULL)==0) + RetCode=false; + +-#elif defined(_APPLE) ++#elif defined(_APPLE) || defined(_BEOS) + WideToUtf(Src,Dest,DestSize); + + #elif defined(MBFUNCTIONS) +@@ -73,7 +73,7 @@ + if (MultiByteToWideChar(CP_ACP,0,Src,-1,Dest,(int)DestSize)==0) + RetCode=false; + +-#elif defined(_APPLE) ++#elif defined(_APPLE) || defined(_BEOS) + UtfToWide(Src,Dest,DestSize); + + #elif defined(MBFUNCTIONS) +diff -aur unrar/unrar.rdef unrar.4.2.4.haiku/unrar.rdef +--- unrar/unrar.rdef 1970-01-01 01:00:00.000000000 +0100 ++++ unrar.4.2.4.haiku/unrar.rdef 2013-01-16 20:43:32.898629632 +0100 +@@ -0,0 +1,13 @@ ++ ++resource app_signature "application/x-vnd.Roshal-UnRAR"; ++resource app_flags B_MULTIPLE_LAUNCH | B_BACKGROUND_APP; ++ ++resource app_version { ++ major = 4, ++ middle = 2, ++ minor = 4, ++ variety = 0, ++ internal = 0, ++ short_info = "4.2.4", ++ long_info = "4.2.4 Alexander Roshal" ++}; diff --git a/app-arch/unrar/unrar-4.2.4.bep b/app-arch/unrar/unrar-4.2.4.bep new file mode 100644 index 000000000..1b697795b --- /dev/null +++ b/app-arch/unrar/unrar-4.2.4.bep @@ -0,0 +1,19 @@ +DESCRIPTION="unrar" +HOMEPAGE="http://www.rarlab.com/" +SRC_URI="http://www.rarlab.com/rar/unrarsrc-4.2.4.tar.gz" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="" +CHECKSUM_MD5="8ea9d1b4139474b282d76e627a2de3e4" +BUILD { + cd unrar + make -f makefile.unix DESTDIR=`finddir B_COMMON_DIRECTORY` +} + +INSTALL { + cd unrar + make -f makefile.unix DESTDIR=`finddir B_COMMON_DIRECTORY` install +} + +LICENSE="UnRAR" +COPYRIGHT="Alexander Roshal" diff --git a/app-arch/unzip/unzip-6.0.bep b/app-arch/unzip/unzip-6.0.bep new file mode 100644 index 000000000..868411e99 --- /dev/null +++ b/app-arch/unzip/unzip-6.0.bep @@ -0,0 +1,28 @@ +DESCRIPTION="unzip" +HOMEPAGE="http://www.info-zip.org/UnZip.html" +SRC_URI="http://downloads.sourceforge.net/project/infozip/UnZip%206.x%20%28latest%29/UnZip%206.0/unzip60.tar.gz" +REVISION="1" +STATUS_HAIKU="broken" +DEPEND="" +CHECKSUM_MD5="62b490407489521db863b523a7f86375" +BUILD { + cd unzip60 + make -f beos/Makefile \ + PREFIX=`finddir B_COMMON_DIRECTORY` \ + MANDIR=`finddir B_COMMON_DOCUMENTATION_DIRECTORY`/man + +} + +INSTALL { + cd unzip60 + make -f beos/Makefile install +} + +TEST { + cd unzip60 +# make test +# make check +} + +LICENSE="Info-ZIP" +#COPYRIGHT="" diff --git a/app-arch/xar/patches/xar-1.5.2.patch b/app-arch/xar/patches/xar-1.5.2.patch new file mode 100644 index 000000000..31d503ffb --- /dev/null +++ b/app-arch/xar/patches/xar-1.5.2.patch @@ -0,0 +1,24 @@ +diff -Naur xar-1.5.2/lib/darwinattr.c xar-1.5.2-haiku/lib/darwinattr.c +--- xar-1.5.2/lib/darwinattr.c 2007-12-29 18:49:57.035651584 +0000 ++++ xar-1.5.2-haiku/lib/darwinattr.c 2013-01-09 20:55:26.246415360 +0000 +@@ -40,7 +40,7 @@ + #include + #include + #include +-#include ++#include + #include + #include + #include "xar.h" +diff -Naur xar-1.5.2/lib/stat.c xar-1.5.2-haiku/lib/stat.c +--- xar-1.5.2/lib/stat.c 2007-12-29 18:49:57.033554432 +0000 ++++ xar-1.5.2-haiku/lib/stat.c 2013-01-09 20:55:34.206307328 +0000 +@@ -53,7 +53,7 @@ + #include + #include + #include +-#include ++#include + #include + #include + #include diff --git a/app-arch/xar/xar-1.5.2.bep b/app-arch/xar/xar-1.5.2.bep new file mode 100644 index 000000000..5eddcd68b --- /dev/null +++ b/app-arch/xar/xar-1.5.2.bep @@ -0,0 +1,25 @@ +DESCRIPTION="Easily extensible archiver" +HOMEPAGE="http://code.google.com/p/xar/" +SRC_URI="http://xar.googlecode.com/files/xar-1.5.2.tar.gz" +CHECKSUM_MD5="8eabb055d3387b8edc30ecfb08d2e80d" +REVISION="1" +STATUS_HAIKU="stable" +MESSAGE="This port builds only with gcc4. Use 'setgcc gcc4' before building." +DEPEND="" + +BUILD { + cd xar-1.5.2 + libtoolize --force --copy --install + aclocal + autoconf + ./configure --prefix=`finddir B_COMMON_DIRECTORY` + make +} + +INSTALL { + cd xar-1.5.2 + make install +} + +LICENSE="BSD (3-clause)" +COPYRIGHT="2005 Rob Braun" diff --git a/app-arch/xz-utils/xz-utils-4.999.9.bep b/app-arch/xz-utils/xz-utils-4.999.9.bep index 40229ba4e..a692dc832 100644 --- a/app-arch/xz-utils/xz-utils-4.999.9.bep +++ b/app-arch/xz-utils/xz-utils-4.999.9.bep @@ -8,13 +8,13 @@ MESSAGE="This port only builds with gcc4. Use 'setgcc gcc4' before building." DEPEND="" BUILD { cd xz-4.999.9beta - cp -f /boot/common/bin/libtool . + cp -f `finddir B_COMMON_BIN_DIRECTORY`/libtool . libtoolize -c -f aclocal -I m4 autoconf autoheader automake -acf --foreign - ./configure --prefix=/boot/common + ./configure --prefix=`finddir B_COMMON_DIRECTORY` make } diff --git a/app-arch/xz-utils/xz-utils-5.0.1.bep b/app-arch/xz-utils/xz-utils-5.0.1.bep new file mode 100644 index 000000000..cfec88a3c --- /dev/null +++ b/app-arch/xz-utils/xz-utils-5.0.1.bep @@ -0,0 +1,34 @@ +DESCRIPTION="XZ Utils is data compression software for working with LZMA compressed files." +HOMEPAGE="http://tukaani.org/xz/" +SRC_URI="http://tukaani.org/xz/xz-5.0.1.tar.bz2" +CHECKSUM_MD5="cb6c7a58cec4d663a395c54d186ca0c6" +REVISION="1" +STATUS_HAIKU="stable" +MESSAGE="This port only builds with gcc4." +DEPEND="" +BUILD { + cd xz-5.0.1 + touch po/t-cs.gmo + libtoolize --force --copy --install + COMMON_DOCS=`finddir B_COMMON_DOCUMENTATION_DIRECTORY` + ./configure --prefix=`finddir B_COMMON_DIRECTORY` \ + --docdir=$COMMON_DOCS/doc/xz \ + --mandir=$COMMON_DOCS/man \ + --localedir=`finddir B_COMMON_DATA_DIRECTORY`/locale + make +} + +INSTALL { + cd xz-5.0.1 + make install +} + +TEST { + cd xz-5.0.1 + make check +} + +LICENSE="GNU LGPL v2.1 + GNU GPL v2 + GNU GPL v3" +COPYRIGHT="2005-2011 Lasse Collin" diff --git a/app-arch/xz-utils/xz-utils-5.0.4.bep b/app-arch/xz-utils/xz-utils-5.0.4.bep new file mode 100644 index 000000000..efeaeaeb8 --- /dev/null +++ b/app-arch/xz-utils/xz-utils-5.0.4.bep @@ -0,0 +1,34 @@ +DESCRIPTION="XZ Utils is data compression software for working with LZMA compressed files." +HOMEPAGE="http://tukaani.org/xz/" +SRC_URI="http://tukaani.org/xz/xz-5.0.4.tar.bz2" +CHECKSUM_MD5="741cd3a5f64b23b7bac56ec5b2258715" +REVISION="1" +STATUS_HAIKU="stable" +MESSAGE="This port only builds with gcc4." +DEPEND="" +BUILD { + cd xz-5.0.4 + touch po/t-cs.gmo + libtoolize --force --copy --install + COMMON_DOCS=`finddir B_COMMON_DOCUMENTATION_DIRECTORY` + ./configure --prefix=`finddir B_COMMON_DIRECTORY` \ + --docdir=$COMMON_DOCS/doc/xz \ + --mandir=$COMMON_DOCS/man \ + --localedir=`finddir B_COMMON_DATA_DIRECTORY`/locale + make +} + +INSTALL { + cd xz-5.0.4 + make install +} + +TEST { + cd xz-5.0.4 + make check +} + +LICENSE="GNU LGPL v2.1 + GNU GPL v2 + GNU GPL v3" +COPYRIGHT="2005-2012 Lasse Collin" diff --git a/app-arch/info-zip/zip30-haiku.patch b/app-arch/zip/patches/zip-3.0.patch similarity index 100% rename from app-arch/info-zip/zip30-haiku.patch rename to app-arch/zip/patches/zip-3.0.patch diff --git a/app-arch/zip/zip-3.0.bep b/app-arch/zip/zip-3.0.bep new file mode 100644 index 000000000..132af02e8 --- /dev/null +++ b/app-arch/zip/zip-3.0.bep @@ -0,0 +1,27 @@ +DESCRIPTION="zip" +HOMEPAGE="http://www.info-zip.org/Zip.html" +SRC_URI="http://downloads.sourceforge.net/project/infozip/Zip%203.x%20%28latest%29/3.0/zip30.tar.gz" +REVISION="1" +STATUS_HAIKU="broken" +DEPEND="" +CHECKSUM_MD5="7b74551e63f8ee6aab6fbc86676c0d37" +BUILD { + cd zip30 + make -f beos/Makefile \ + PREFIX=`finddir B_COMMON_DIRECTORY` \ + MANDIR=`finddir B_COMMON_DOCUMENTATION_DIRECTORY`/man +} + +INSTALL { + cd zip30 + make -f beos/Makefile install +} + +TEST { + cd zip30 +# make test +# make check +} + +#LICENSE="Info-Zip" +#COPYRIGHT="" diff --git a/app-benchmarks/bonnie++/bonnie++-1.03e.bep b/app-benchmarks/bonnie++/bonnie++-1.03e.bep index 1650d186d..bb6fb950f 100644 --- a/app-benchmarks/bonnie++/bonnie++-1.03e.bep +++ b/app-benchmarks/bonnie++/bonnie++-1.03e.bep @@ -7,10 +7,12 @@ DEPEND="" CHECKSUM_MD5="750aa5b5051263a99c6c195888c74968" BUILD { cd bonnie++-1.03e + COMMON_DOCS=`finddir B_COMMON_DOCUMENTATION_DIRECTORY` + COMMON_BIN=`finddir B_COMMON_BIN_DIRECTORY` ./configure --prefix=`finddir B_COMMON_DIRECTORY` \ - --mandir=`finddir B_COMMON_DOCUMENTATION_DIRECTORY`/man \ - --bindir=`finddir B_COMMON_BIN_DIRECTORY` \ - --sbindir=`finddir B_COMMON_BIN_DIRECTORY` + --mandir=$COMMON_DOCS/man \ + --bindir=$COMMON_BIN \ + --sbindir=$COMMON_BIN make } INSTALL { diff --git a/app-benchmarks/libmicro/libmicro-0.4.1.bep b/app-benchmarks/libmicro/libmicro-0.4.1.bep new file mode 100644 index 000000000..db2d7b796 --- /dev/null +++ b/app-benchmarks/libmicro/libmicro-0.4.1.bep @@ -0,0 +1,26 @@ +DESCRIPTION="libmicro - portable microbenchmarks" +HOMEPAGE="http://hub.opensolaris.org/bin/view/Project+libmicro" +SRC_URI="http://hub.opensolaris.org/bin/download/Project+libmicro/Source+Archives/libmicro-0.4.1.tar.gz" +REVISION="1" +STATUS_HAIKU="broken" +DEPEND="" +CHECKSUM_MD5="2b6e1ff22164e4ae0c21c11e6c28f7ed" +BUILD { + cd libMicro-0.4.1 + make +} + +INSTALL { + cd libMicro-0.4.1 + cd bin-BePC + ls +} + +TEST { + cd libMicro-0.4.1 +# make test +# make check +} + +LICENSE="CDDL v1" +#COPYRIGHT="" diff --git a/app-benchmarks/libmicro/patches/libmicro-0.4.1.patch b/app-benchmarks/libmicro/patches/libmicro-0.4.1.patch new file mode 100644 index 000000000..f2585f153 --- /dev/null +++ b/app-benchmarks/libmicro/patches/libmicro-0.4.1.patch @@ -0,0 +1,124 @@ +diff -urN libMicro-0.4.1/bench.sh libMicro-0.4.1-haiku/bench.sh +--- libMicro-0.4.1/bench.sh 2011-05-11 00:58:23.061079552 +0000 ++++ libMicro-0.4.1-haiku/bench.sh 2012-07-23 22:10:32.466616320 +0000 +@@ -56,7 +56,7 @@ + VDIR2=$VARROOT/1/2/3/4/5/6/7/8/9/0 + + +-OPTS="-E -C 200 -L -S -W" ++OPTS="-l -E -C 200 -L -S -W" + + dd if=/dev/zero of=$TFILE bs=1024k count=10 2>/dev/null + dd if=/dev/zero of=$VFILE bs=1024k count=10 2>/dev/null +@@ -65,7 +65,7 @@ + + touch $IFILE + +-ARCH=`arch -k` ++ARCH=`uname -m` + + # produce benchmark header for easier comparisons + +diff -urN libMicro-0.4.1/cascade_flock.c libMicro-0.4.1-haiku/cascade_flock.c +--- libMicro-0.4.1/cascade_flock.c 2011-05-11 00:58:23.063176704 +0000 ++++ libMicro-0.4.1-haiku/cascade_flock.c 2012-07-23 22:02:58.843579392 +0000 +@@ -50,7 +50,7 @@ + #include "libmicro.h" + + #ifndef LOCK_EX +-#include "/usr/ucbinclude/sys/file.h" ++#include "sys/file.h" + extern int flock(int fd, int operation); + #endif + +diff -urN libMicro-0.4.1/Makefile.benchmarks libMicro-0.4.1-haiku/Makefile.benchmarks +--- libMicro-0.4.1/Makefile.benchmarks 2011-05-11 00:58:23.066584576 +0000 ++++ libMicro-0.4.1-haiku/Makefile.benchmarks 2012-07-23 22:09:00.531365888 +0000 +@@ -50,7 +50,7 @@ + fcntl_ndelay \ + file_lock \ + fork \ +- getcontext \ ++# getcontext \ + getenv \ + gettimeofday \ + getpeername \ +diff -urN libMicro-0.4.1/Makefile.com libMicro-0.4.1-haiku/Makefile.com +--- libMicro-0.4.1/Makefile.com 2011-05-11 00:58:23.057147392 +0000 ++++ libMicro-0.4.1-haiku/Makefile.com 2012-07-23 22:08:55.440664064 +0000 +@@ -54,10 +54,10 @@ + + + $(EXTRA_CFILES:%.c=%.lint): +- $(LINT) ../$(@:%.lint=%.c) -I. -mu -lc libmicro.ln -lm ++ $(LINT) ../$(@:%.lint=%.c) -I. -mu -lc libmicro.ln + + %.lint: ../%.c libmicro.ln +- $(LINT) -mu $(CPPFLAGS) $< libmicro.ln -lpthread -lsocket -lnsl -lm ++ $(LINT) -mu $(CPPFLAGS) $< libmicro.ln -lnetwork + + %.o: ../%.c + $(CC) -c $(CFLAGS) $(CPPFLAGS) $< -o $@ +@@ -107,13 +107,13 @@ + echo "char * compiler_version = \""`$(COMPILER_VERSION_CMD)`"\";" > tattle.h + echo "char * CC = \""$(CC)"\";" >> tattle.h + echo "char * extra_compiler_flags = \""$(extra_CFLAGS)"\";" >> tattle.h +- $(CC) -o tattle $(CFLAGS) -I. ../tattle.c libmicro.a -lrt -lm ++ $(CC) -o tattle $(CFLAGS) -I. ../tattle.c libmicro.a + + $(ELIDED_BENCHMARKS): ../elided.c + $(CC) -o $(@) ../elided.c + + %: libmicro.a %.o +- $(CC) -o $(@) $(@).o $($(@)_EXTRA_DEPS) $(CFLAGS) libmicro.a $($(@)_EXTRA_LIBS) $(EXTRA_LIBS) -lpthread -lm ++ $(CC) -o $(@) $(@).o $($(@)_EXTRA_DEPS) $(CFLAGS) libmicro.a $($(@)_EXTRA_LIBS) $(EXTRA_LIBS) -lnetwork + + exec: exec_bin + +diff -urN libMicro-0.4.1/Makefile.Haiku libMicro-0.4.1-haiku/Makefile.Haiku +--- libMicro-0.4.1/Makefile.Haiku 1970-01-01 00:00:00.000000000 +0000 ++++ libMicro-0.4.1-haiku/Makefile.Haiku 2012-07-23 22:08:51.105381888 +0000 +@@ -0,0 +1,43 @@ ++# ++# CDDL HEADER START ++# ++# The contents of this file are subject to the terms ++# of the Common Development and Distribution License ++# (the "License"). You may not use this file except ++# in compliance with the License. ++# ++# You can obtain a copy of the license at ++# src/OPENSOLARIS.LICENSE ++# or http://www.opensolaris.org/os/licensing. ++# See the License for the specific language governing ++# permissions and limitations under the License. ++# ++# When distributing Covered Code, include this CDDL ++# HEADER in each file and include the License file at ++# usr/src/OPENSOLARIS.LICENSE. If applicable, ++# add the following below this CDDL HEADER, with the ++# fields enclosed by brackets "[]" replaced with your ++# own identifying information: Portions Copyright [yyyy] ++# [name of copyright owner] ++# ++# CDDL HEADER END ++# ++ ++# ++# Copyright 2005 Sun Microsystems, Inc. All rights reserved. ++# Use is subject to license terms. ++# ++ ++ ++CC= gcc ++ ++#CFLAGS= -O -DUSE_SEMOP ++CPPFLAGS= -DUSE_SEMOP -D_REENTRANT ++MATHLIB= ++ ++ELIDED_BENCHMARKS= \ ++ cachetocache \ ++ atomic ++ ++ ++include ../Makefile.com diff --git a/app-benchmarks/piozone/patches/piozone-1.0.patch b/app-benchmarks/piozone/patches/piozone-1.0.patch new file mode 100644 index 000000000..6ba612597 --- /dev/null +++ b/app-benchmarks/piozone/patches/piozone-1.0.patch @@ -0,0 +1,40 @@ +diff -urN piozone-1.0/piozone.c piozone-1.0-haiku/piozone.c +--- piozone-1.0/piozone.c 2002-01-28 08:14:54.022282240 +0000 ++++ piozone-1.0-haiku/piozone.c 2012-07-18 19:03:17.767295488 +0000 +@@ -12,7 +12,9 @@ + ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + */ + ++#include + #include ++#include + #include + #include + #include +@@ -73,7 +75,7 @@ + int count = 0; + int nr = 0; + +- llseek(fd, off, SEEK_SET); ++ lseek(fd, off, SEEK_SET); + signal(SIGALRM, sigalrm_handler); + stopf = 0; + printf("Testing... "); +@@ -121,7 +123,7 @@ + printf("Testing... "); + alarm(ts); + while (!stopf && +- llseek(fd, off+((rand()&area)*MiB), SEEK_SET) != -1 && ++ lseek(fd, off+((rand()&area)*MiB), SEEK_SET) != -1 && + (nr = read(fd, iobuf, len)) == len) + { + print_dial(); +@@ -159,7 +161,7 @@ + off = 0; + del = 64*GiB; + +- while (del > 8*KiB && llseek(fd, off+del, SEEK_SET) != -1) ++ while (del > 8*KiB && lseek(fd, off+del, SEEK_SET) != -1) + { + if (read(fd, buf, 8*KiB) < 0) + del >>= 1; diff --git a/app-benchmarks/piozone/piozone-1.0.bep b/app-benchmarks/piozone/piozone-1.0.bep new file mode 100644 index 000000000..c8069b088 --- /dev/null +++ b/app-benchmarks/piozone/piozone-1.0.bep @@ -0,0 +1,20 @@ +DESCRIPTION="Hard disk benchmarking program" +HOMEPAGE="http://www.lysator.se/~pen/piozone/" +SRC_URI="ftp://ftp.lysator.liu.se/pub/unix/piozone/piozone-1.0.tar.gz" +CHECKSUM_MD5="e48370a9aa80aed212b18e16c08b9056" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="" +BUILD { + cd piozone-1.0 + make +} + +INSTALL { + cd piozone-1.0 + mkdir -p $DESTDIR/`finddir B_COMMON_BIN_DIRECTORY` + cp -a piozone $DESTDIR/`finddir B_COMMON_BIN_DIRECTORY`/piozone +} + +LICENSE="GNU GPL v2" +COPYRIGHT="2002 Peter Eriksson" diff --git a/app-cdr/bchunk/bchunk-1.2.0.bep b/app-cdr/bchunk/bchunk-1.2.0.bep index 703cfbe41..0e4d80adb 100644 --- a/app-cdr/bchunk/bchunk-1.2.0.bep +++ b/app-cdr/bchunk/bchunk-1.2.0.bep @@ -1,5 +1,5 @@ -DESCRIPTION="binchunker converts a CD image in .bin/.cue format to a set of .iso and .cdr tracks." -HOMEPAGE="http://he.fi/bchunk/" +DESCRIPTION="binchunker converts a CD image in .bin/.cue format to a set of .iso and .cdr tracks." +HOMEPAGE="http://he.fi/bchunk/" SRC_URI="http://he.fi/bchunk/bchunk-1.2.0.tar.gz" REVISION="1" STATUS_HAIKU="stable" @@ -12,12 +12,14 @@ BUILD { INSTALL { cd bchunk-1.2.0 - mkdir -p $(finddir B_COMMON_BIN_DIRECTORY) - mkdir -p $(finddir B_COMMON_DOCUMENTATION_DIRECTORY)/man/man1 - mkdir -p ${DESTDIR}$(finddir B_COMMON_BIN_DIRECTORY) - mkdir -p ${DESTDIR}$(finddir B_COMMON_DOCUMENTATION_DIRECTORY)/man/man1 - install -m 755 -s bchunk ${DESTDIR}$(finddir B_COMMON_BIN_DIRECTORY) - install -m 644 bchunk.1 ${DESTDIR}$(finddir B_COMMON_DOCUMENTATION_DIRECTORY)/man/man1 + COMMON_DOCS=`finddir B_COMMON_DOCUMENTATION_DIRECTORY` + COMMON_BIN=`finddir B_COMMON_BIN_DIRECTORY` + mkdir -p $COMMON_BIN + mkdir -p $COMMON_DOCS/man/man1 + mkdir -p ${DESTDIR}$COMMON_BIN + mkdir -p ${DESTDIR}$COMMON_DOCS/man/man1 + install -m 755 -s bchunk ${DESTDIR}$COMMON_BIN + install -m 644 bchunk.1 ${DESTDIR}$COMMON_DOCS/man/man1 } LICENSE="GNU GPL v2" COPYRIGHT="1998-2004 Heikki Hannikainen" diff --git a/app-cdr/cdrdao/cdrdao-1.2.3.bep b/app-cdr/cdrdao/cdrdao-1.2.3.bep index e0bbae033..560f0daf2 100644 --- a/app-cdr/cdrdao/cdrdao-1.2.3.bep +++ b/app-cdr/cdrdao/cdrdao-1.2.3.bep @@ -11,7 +11,7 @@ BUILD { aclocal autoconf automake - ./configure --prefix=/boot/common + ./configure --prefix=`finddir B_COMMON_DIRECTORY` make } diff --git a/app-cdr/cdrtools/cdrtools-2.01.01a66.bep b/app-cdr/cdrtools/cdrtools-2.01.01a66.bep index 4aca59234..ee394e382 100644 --- a/app-cdr/cdrtools/cdrtools-2.01.01a66.bep +++ b/app-cdr/cdrtools/cdrtools-2.01.01a66.bep @@ -7,7 +7,7 @@ STATUS_HAIKU="stable" DEPEND="" BUILD { cd cdrtools-2.01.01 - ./configure --prefix=/boot/common + ./configure --prefix=`finddir B_COMMON_DIRECTORY` make } diff --git a/app-cdr/cdrtools/cdrtools-3.01a01.bep b/app-cdr/cdrtools/cdrtools-3.01a01.bep index afef16612..146935807 100644 --- a/app-cdr/cdrtools/cdrtools-3.01a01.bep +++ b/app-cdr/cdrtools/cdrtools-3.01a01.bep @@ -7,10 +7,21 @@ STATUS_HAIKU="stable" DEPEND="" BUILD { cd cdrtools-3.01 + sed -i 's/share\/doc\//documentation\/doc\//g' rscsi/Makefile.doc + sed -i 's/share\/doc\//documentation\/doc\//g' pkgdefs/CSW/CSWcdrtools/prototype + sed -i 's/share\/doc\//documentation\/doc\//g' mkisofs/readme.mk + sed -i 's/share\/doc\//documentation\/doc\//g' cdda2wav/M* + sed -i 's/share\/doc\//documentation\/doc\//g' cdrecord/R* + sed -i 's/share\/doc\//documentation\/doc\//g' mkisofs/R* + sed -i 's/share\/doc\//documentation\/doc\//g' libparanoia/R* + sed -i 's/share\/doc\//documentation\/doc\//g' cdda2wav/M* + sed -i 's/share\/doc\//documentation\/doc\//g' cdrecord/r* + sed -i 's/sbin\/rscsi/ bin\/rscsi/g' pkgdefs/CSW/CSWcdrtools/prototype + sed -i 's/sbin/bin/' rscsi/Makefile make GMAKE_NOWARN=true } INSTALL { cd cdrtools-3.01 - make install + make GMAKE_NOWARN=true DEFMANBASE=documentation install } diff --git a/app-cdr/cdrtools/cdrtools-3.01a06.bep b/app-cdr/cdrtools/cdrtools-3.01a06.bep new file mode 100644 index 000000000..b4e4171fe --- /dev/null +++ b/app-cdr/cdrtools/cdrtools-3.01a06.bep @@ -0,0 +1,27 @@ +DESCRIPTION="cdrtools - A set of tools for CD/DVD reading and recording, including cdrecord" +HOMEPAGE="http://cdrecord.berlios.de" +SRC_URI="ftp://ftp.berlios.de/pub/cdrecord/alpha/cdrtools-3.01a06.tar.bz2" +CHECKSUM_MD5="00b6c2128023186e712cf27e629ed246" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="" +BUILD { + cd cdrtools-3.01 + sed -i 's/share\/doc\//documentation\/doc\//g' rscsi/Makefile.doc + sed -i 's/share\/doc\//documentation\/doc\//g' pkgdefs/CSW/CSWcdrtools/prototype + sed -i 's/share\/doc\//documentation\/doc\//g' mkisofs/readme.mk + sed -i 's/share\/doc\//documentation\/doc\//g' cdda2wav/M* + sed -i 's/share\/doc\//documentation\/doc\//g' cdrecord/R* + sed -i 's/share\/doc\//documentation\/doc\//g' mkisofs/R* + sed -i 's/share\/doc\//documentation\/doc\//g' libparanoia/R* + sed -i 's/share\/doc\//documentation\/doc\//g' cdda2wav/M* + sed -i 's/share\/doc\//documentation\/doc\//g' cdrecord/r* + sed -i 's/sbin\/rscsi/ bin\/rscsi/g' pkgdefs/CSW/CSWcdrtools/prototype + sed -i 's/sbin/bin/' rscsi/Makefile + make GMAKE_NOWARN=true +} + +INSTALL { + cd cdrtools-3.01 + make GMAKE_NOWARN=true DEFMANBASE=documentation install +} diff --git a/app-cdr/cdrtools/cdrtools-3.01a07.bep b/app-cdr/cdrtools/cdrtools-3.01a07.bep new file mode 100644 index 000000000..819664d1f --- /dev/null +++ b/app-cdr/cdrtools/cdrtools-3.01a07.bep @@ -0,0 +1,27 @@ +DESCRIPTION="cdrtools - A set of tools for CD/DVD reading and recording, including cdrecord" +HOMEPAGE="http://cdrecord.berlios.de" +SRC_URI="ftp://ftp.berlios.de/pub/cdrecord/alpha/cdrtools-3.01a07.tar.bz2" +CHECKSUM_MD5="266bae8db7d1e5473555b48c306aa216" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="" +BUILD { + cd cdrtools-3.01 + sed -i 's/share\/doc\//documentation\/doc\//g' rscsi/Makefile.doc + sed -i 's/share\/doc\//documentation\/doc\//g' pkgdefs/CSW/CSWcdrtools/prototype + sed -i 's/share\/doc\//documentation\/doc\//g' mkisofs/readme.mk + sed -i 's/share\/doc\//documentation\/doc\//g' cdda2wav/M* + sed -i 's/share\/doc\//documentation\/doc\//g' cdrecord/R* + sed -i 's/share\/doc\//documentation\/doc\//g' mkisofs/R* + sed -i 's/share\/doc\//documentation\/doc\//g' libparanoia/R* + sed -i 's/share\/doc\//documentation\/doc\//g' cdda2wav/M* + sed -i 's/share\/doc\//documentation\/doc\//g' cdrecord/r* + sed -i 's/sbin\/rscsi/ bin\/rscsi/g' pkgdefs/CSW/CSWcdrtools/prototype + sed -i 's/sbin/bin/' rscsi/Makefile + make GMAKE_NOWARN=true +} + +INSTALL { + cd cdrtools-3.01 + make GMAKE_NOWARN=true DEFMANBASE=documentation install +} diff --git a/app-cdr/cdrtools/patches/cdrtools-3.01a01.patch b/app-cdr/cdrtools/patches/cdrtools-3.01a01.patch new file mode 100644 index 000000000..b7cdc050f --- /dev/null +++ b/app-cdr/cdrtools/patches/cdrtools-3.01a01.patch @@ -0,0 +1,23 @@ +diff -urN cdrtools-3.01/DEFAULTS/Defaults.haiku cdrtools-3.01-haiku/DEFAULTS/Defaults.haiku +--- cdrtools-3.01/DEFAULTS/Defaults.haiku ++++ cdrtools-3.01-haiku/DEFAULTS/Defaults.haiku +@@ -29,16 +29,16 @@ + CWARNOPTS= + + DEFINCDIRS= $(SRCROOT)/include +-LDPATH= -L/opt/schily/lib ++LDPATH= -L$(shell finddir B_COMMON_LIB_DIRECTORY) + #RUNPATH= -R$(INS_BASE)/lib -R/opt/schily/lib -R$(OLIBSDIR) +-RUNPATH= -R$(INS_BASE)/lib -R/opt/schily/lib ++RUNPATH= -R$(INS_BASE)/lib + + ########################################################################### + # + # Installation config stuff + # + ########################################################################### +-INS_BASE= /boot/opt/schily ++INS_BASE= $(shell finddir B_COMMON_DIRECTORY) + INS_KBASE= / + INS_RBASE= / + # diff --git a/app-cdr/cdrtools/patches/cdrtools-3.01a06.patch b/app-cdr/cdrtools/patches/cdrtools-3.01a06.patch new file mode 100644 index 000000000..b7cdc050f --- /dev/null +++ b/app-cdr/cdrtools/patches/cdrtools-3.01a06.patch @@ -0,0 +1,23 @@ +diff -urN cdrtools-3.01/DEFAULTS/Defaults.haiku cdrtools-3.01-haiku/DEFAULTS/Defaults.haiku +--- cdrtools-3.01/DEFAULTS/Defaults.haiku ++++ cdrtools-3.01-haiku/DEFAULTS/Defaults.haiku +@@ -29,16 +29,16 @@ + CWARNOPTS= + + DEFINCDIRS= $(SRCROOT)/include +-LDPATH= -L/opt/schily/lib ++LDPATH= -L$(shell finddir B_COMMON_LIB_DIRECTORY) + #RUNPATH= -R$(INS_BASE)/lib -R/opt/schily/lib -R$(OLIBSDIR) +-RUNPATH= -R$(INS_BASE)/lib -R/opt/schily/lib ++RUNPATH= -R$(INS_BASE)/lib + + ########################################################################### + # + # Installation config stuff + # + ########################################################################### +-INS_BASE= /boot/opt/schily ++INS_BASE= $(shell finddir B_COMMON_DIRECTORY) + INS_KBASE= / + INS_RBASE= / + # diff --git a/app-cdr/cdrtools/patches/cdrtools-3.01a07.patch b/app-cdr/cdrtools/patches/cdrtools-3.01a07.patch new file mode 100644 index 000000000..e11110e03 --- /dev/null +++ b/app-cdr/cdrtools/patches/cdrtools-3.01a07.patch @@ -0,0 +1,139 @@ +diff -urN cdrtools-3.01/DEFAULTS/Defaults.haiku cdrtools-3.01-haiku/DEFAULTS/Defaults.haiku +--- cdrtools-3.01/DEFAULTS/Defaults.haiku ++++ cdrtools-3.01-haiku/DEFAULTS/Defaults.haiku +@@ -29,16 +29,16 @@ + CWARNOPTS= + + DEFINCDIRS= $(SRCROOT)/include +-LDPATH= -L/opt/schily/lib ++LDPATH= -L$(shell finddir B_COMMON_LIB_DIRECTORY) + #RUNPATH= -R$(INS_BASE)/lib -R/opt/schily/lib -R$(OLIBSDIR) +-RUNPATH= -R$(INS_BASE)/lib -R/opt/schily/lib ++RUNPATH= -R$(INS_BASE)/lib + + ########################################################################### + # + # Installation config stuff + # + ########################################################################### +-INS_BASE= /boot/opt/schily ++INS_BASE= $(shell finddir B_COMMON_DIRECTORY) + INS_KBASE= / + INS_RBASE= / + # +diff -urN cdrtools-3.01/RULES/x86_64-haiku-cc.rul cdrtools-3.01-haiku/RULES/x86_64-haiku-cc.rul +--- cdrtools-3.01/RULES/x86_64-haiku-cc.rul 1970-01-01 00:00:00.000000000 +0000 ++++ cdrtools-3.01-haiku/RULES/x86_64-haiku-cc.rul 2012-12-08 19:24:57.418643968 +0000 +@@ -0,0 +1,54 @@ ++#ident "@(#)bepc-haiku-cc.rul 1.3 09/02/05 " ++########################################################################### ++# Written 1996 by J. Schilling ++########################################################################### ++# ++# Platform dependent MACROS for Haiku, a BeOS like OS ++# ++########################################################################### ++# Copyright (c) J. Schilling ++########################################################################### ++# The contents of this file are subject to the terms of the ++# Common Development and Distribution License, Version 1.0 only ++# (the "License"). You may not use this file except in compliance ++# with the License. ++# ++# See the file CDDL.Schily.txt in this distribution for details. ++# ++# When distributing Covered Code, include this CDDL HEADER in each ++# file and include the License file CDDL.Schily.txt from this distribution. ++########################################################################### ++include $(SRCROOT)/$(RULESDIR)/rules.prg ++########################################################################### ++include $(SRCROOT)/$(RULESDIR)/cc-gcc.rul ++ ++# ++# XXX Old BeOS needs libroot.so to get [efg]cvt() ++# XXX New BeOS seems to have this in libc and in addition we include ++# XXX strtod.c for floating point conversion on OS without such code. ++# XXX For this reason, -DNO_FLOATINGPOINT -DUSE_FLOATINGARGS has been ++# XXX removed and printing floating numbers will work with old/new BeOS ++# ++#OSDEFS += -DNO_FLOATINGPOINT -DUSE_FLOATINGARGS ++OSDEFS += ++ ++KDEFINES= -DKERNEL -D_KERNEL ++ ++#CONFFLAGS= i586 ++ ++LIB_PREFIX= lib ++LIB_SUFFIX= .a ++SHL_SUFFIX= .so ++ ++#LIB_SOCKET= -lsocket -lbind ++LIB_SOCKET= -lnetwork ++LIB_MATH= ++LIB_KVM= ++ ++#LDOPTS= $(LIBS_PATH) $(LDPATH) $(RUNPATH:-R%=-Wl,-R%) ++LDOPTS= $(LIBS_PATH) $(LDPATH) ++ ++LORDER= echo ++TSORT= cat ++ ++LN= /bin/ln -s +diff -urN cdrtools-3.01/RULES/x86_64-haiku-gcc.rul cdrtools-3.01-haiku/RULES/x86_64-haiku-gcc.rul +--- cdrtools-3.01/RULES/x86_64-haiku-gcc.rul 1970-01-01 00:00:00.000000000 +0000 ++++ cdrtools-3.01-haiku/RULES/x86_64-haiku-gcc.rul 2012-12-08 19:24:57.421265408 +0000 +@@ -0,0 +1,54 @@ ++#ident "@(#)bepc-haiku-gcc.rul 1.3 09/02/05 " ++########################################################################### ++# Written 1996 by J. Schilling ++########################################################################### ++# ++# Platform dependent MACROS for Haiku, a BeOS like OS ++# ++########################################################################### ++# Copyright (c) J. Schilling ++########################################################################### ++# The contents of this file are subject to the terms of the ++# Common Development and Distribution License, Version 1.0 only ++# (the "License"). You may not use this file except in compliance ++# with the License. ++# ++# See the file CDDL.Schily.txt in this distribution for details. ++# ++# When distributing Covered Code, include this CDDL HEADER in each ++# file and include the License file CDDL.Schily.txt from this distribution. ++########################################################################### ++include $(SRCROOT)/$(RULESDIR)/rules.prg ++########################################################################### ++include $(SRCROOT)/$(RULESDIR)/cc-gcc.rul ++ ++# ++# XXX Old BeOS needs libroot.so to get [efg]cvt() ++# XXX New BeOS seems to have this in libc and in addition we include ++# XXX strtod.c for floating point conversion on OS without such code. ++# XXX For this reason, -DNO_FLOATINGPOINT -DUSE_FLOATINGARGS has been ++# XXX removed and printing floating numbers will work with old/new BeOS ++# ++#OSDEFS += -DNO_FLOATINGPOINT -DUSE_FLOATINGARGS ++OSDEFS += ++ ++KDEFINES= -DKERNEL -D_KERNEL ++ ++#CONFFLAGS= i586 ++ ++LIB_PREFIX= lib ++LIB_SUFFIX= .a ++SHL_SUFFIX= .so ++ ++#LIB_SOCKET= -lsocket -lbind ++LIB_SOCKET= -lnetwork ++LIB_MATH= ++LIB_KVM= ++ ++#LDOPTS= $(LIBS_PATH) $(LDPATH) $(RUNPATH:-R%=-Wl,-R%) ++LDOPTS= $(LIBS_PATH) $(LDPATH) ++ ++LORDER= echo ++TSORT= cat ++ ++LN= /bin/ln -s diff --git a/app-cdr/daa2iso/daa2iso-0.1.7e.bep b/app-cdr/daa2iso/daa2iso-0.1.7e.bep new file mode 100644 index 000000000..c98e0db64 --- /dev/null +++ b/app-cdr/daa2iso/daa2iso-0.1.7e.bep @@ -0,0 +1,20 @@ +DESCRIPTION="DAA2ISO is an open source command-line/GUI tool for converting single and multipart DAA and GBI images to the original ISO format." +HOMEPAGE="http://aluigi.org/mytoolz.htm#daa2iso" +SRC_URI="http://aluigi.altervista.org/mytoolz/daa2iso.zip" +REVISION="1" +DEPEND="" +STATUS_HAIKU="stable" +CHECKSUM_MD5="6930ebcd8568e8ade0a175352d4a3481" + +BUILD { + cd src + make CFLAGS="-DNOLFS -O2 -s" +} + +INSTALL { + cd src + make install PREFIX=${DESTDIR}/$(finddir B_COMMON_DIRECTORY) +} + +LICENSE="GNU GPL v2" +COPYRIGHT="Luigi Auriemma" diff --git a/app-cdr/uif2iso/uif2iso-0.1.7c.bep b/app-cdr/uif2iso/uif2iso-0.1.7c.bep new file mode 100644 index 000000000..c9bf0a10b --- /dev/null +++ b/app-cdr/uif2iso/uif2iso-0.1.7c.bep @@ -0,0 +1,19 @@ +DESCRIPTION="A command-line tool for converting single and multipart UIF images to the ISO format." +HOMEPAGE="http://aluigi.org/mytoolz.htm#uif2iso" +SRC_URI="http://aluigi.altervista.org/mytoolz/uif2iso.zip" +REVISION="1" +DEPEND="" +STATUS_HAIKU="stable" +CHECKSUM_MD5="2eb9797ec463c38253014d45591a7043" + +BUILD { + cd src + make CFLAGS="-DNOLFS -O2 -s" +} + +INSTALL { + cd src + make install prefix=$(finddir B_COMMON_DIRECTORY) DESTDIR="${DESTDIR}" +} +LICENSE="GNU GPL v2" +COPYRIGHT="2007-2009 Luigi Auriemma" diff --git a/app-crypt/gnupg/gnupg-1.4.10.bep b/app-crypt/gnupg/gnupg-1.4.10.bep index 237d25a54..8ec90e2c8 100644 --- a/app-crypt/gnupg/gnupg-1.4.10.bep +++ b/app-crypt/gnupg/gnupg-1.4.10.bep @@ -9,7 +9,7 @@ BUILD { cd gnupg-1.4.10 libtoolize --force --copy --install autoconf - ./configure --prefix=/boot/common + ./configure --prefix=`finddir B_COMMON_DIRECTORY` make } diff --git a/app-crypt/gnupg/gnupg-1.4.11.bep b/app-crypt/gnupg/gnupg-1.4.11.bep index e87250548..9e6bf53b1 100644 --- a/app-crypt/gnupg/gnupg-1.4.11.bep +++ b/app-crypt/gnupg/gnupg-1.4.11.bep @@ -9,7 +9,7 @@ BUILD { cd gnupg-1.4.11 libtoolize --force --copy --install autoconf - ./configure --prefix=/boot/common + ./configure --prefix=`finddir B_COMMON_DIRECTORY` make } diff --git a/app-doc/doxygen/doxygen-1.6.3.bep b/app-doc/doxygen/doxygen-1.6.3.bep index 7653b601f..946585e34 100644 --- a/app-doc/doxygen/doxygen-1.6.3.bep +++ b/app-doc/doxygen/doxygen-1.6.3.bep @@ -7,7 +7,8 @@ STATUS_HAIKU="stable" DEPEND="" BUILD { cd doxygen-1.6.3 - ./configure --prefix /boot/common + sed -i 's/MAN1DIR = man\/man1/MAN1DIR = documentation\/man\/man1/' Makefile.in + ./configure --prefix `finddir B_COMMON_DIRECTORY` make } diff --git a/app-doc/doxygen/doxygen-1.7.4.bep b/app-doc/doxygen/doxygen-1.7.4.bep new file mode 100644 index 000000000..1f00fc066 --- /dev/null +++ b/app-doc/doxygen/doxygen-1.7.4.bep @@ -0,0 +1,20 @@ +DESCRIPTION="Doxygen is a documentation system for C++, C, Java, Objective-C, Python, IDL (Corba and Microsoft flavors), Fortran, VHDL, PHP, C#, and to some extent D." +HOMEPAGE="http://www.doxygen.org" +SRC_URI="http://ftp.stack.nl/pub/users/dimitri/doxygen-1.7.4.src.tar.gz" +CHECKSUM_MD5="ff908759ff7cd9464424b04ae6c68e48" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="" +BUILD { + cd doxygen-1.7.4 + sed -i 's/MAN1DIR = man\/man1/MAN1DIR = documentation\/man\/man1/' Makefile.in + ./configure --prefix `finddir B_COMMON_DIRECTORY` + make +} + +INSTALL { + cd doxygen-1.7.4 + make install +} +LICENSE="GNU GPL v2" +COPYRIGHT="1997-2011 Dimitri van Heesch" diff --git a/app-doc/doxygen/patches/doxygen-1.7.4.patch b/app-doc/doxygen/patches/doxygen-1.7.4.patch new file mode 100644 index 000000000..d51095cc2 --- /dev/null +++ b/app-doc/doxygen/patches/doxygen-1.7.4.patch @@ -0,0 +1,158 @@ +diff -up doxygen-1.7.4/Makefile.in.orig doxygen-1.7.4/Makefile.in +--- doxygen-1.7.4/Makefile.in.orig 2009-08-20 13:41:13.056098816 -0600 ++++ doxygen-1.7.4/Makefile.in 2011-05-14 12:14:04.776208384 -0600 +@@ -2,7 +2,7 @@ + # cd qtools ; $(MAKE) + # cd src ; $(MAKE) + +-DESTDIR = ++#DESTDIR = + + clean: FORCE + cd examples ; $(MAKE) clean +diff -up doxygen-1.7.4/PLATFORMS.orig doxygen-1.7.4/PLATFORMS +--- doxygen-1.7.4/PLATFORMS.orig 2007-11-24 09:12:35.056360960 -0700 ++++ doxygen-1.7.4/PLATFORMS 2011-05-14 12:14:04.777519104 -0600 +@@ -4,6 +4,7 @@ beos-g++ + dgux-g++ + freebsd-g++ + gnu-g++ ++haiku-g++ + hpux-acc + hpux-cc + hpux-g++ +diff -up doxygen-1.7.4/configure.orig doxygen-1.7.4/configure +--- doxygen-1.7.4/configure.orig 2011-03-28 07:12:47.055050240 -0600 ++++ doxygen-1.7.4/configure 2011-05-14 12:14:04.783548416 -0600 +@@ -180,6 +180,9 @@ if test -z "$f_platform"; then + f_insttool=/usr/bin/install + fi + ;; ++ Haiku:*) ++ f_platform=haiku-g++ ++ ;; + HP-UX:*) + f_platform=hpux-g++ + if test "$f_insttool" = NO; then +diff -up doxygen-1.7.4/qtools/qglobal.h.orig doxygen-1.7.4/qtools/qglobal.h +--- doxygen-1.7.4/qtools/qglobal.h.orig 2010-06-09 03:49:13.006553600 -0600 ++++ doxygen-1.7.4/qtools/qglobal.h 2011-05-14 12:14:04.784859136 -0600 +@@ -150,6 +150,8 @@ + #define _OS_CYGWIN_ + #elif defined(__BEOS__) + #define _OS_BEOS_ ++#elif defined(__HAIKU__) ++#define _OS_HAIKU_ + #elif defined(__MINT__) + #define _OS_MINT_ + #else +diff -up doxygen-1.7.4/qtools/qthread_unix.cpp.orig doxygen-1.7.4/qtools/qthread_unix.cpp +--- doxygen-1.7.4/qtools/qthread_unix.cpp.orig 2010-05-15 09:48:47.012058624 -0600 ++++ doxygen-1.7.4/qtools/qthread_unix.cpp 2011-05-14 12:14:04.785645568 -0600 +@@ -123,7 +123,7 @@ void QThread::start() + pthread_attr_t attr; + pthread_attr_init(&attr); + pthread_attr_setdetachstate(&attr,PTHREAD_CREATE_DETACHED); +- pthread_attr_setinheritsched(&attr, PTHREAD_INHERIT_SCHED); ++ //pthread_attr_setinheritsched(&attr, PTHREAD_INHERIT_SCHED); + if (d->stackSize>0) + { + #if defined(_POSIX_THREAD_ATTR_STACKSIZE) && (_POSIX_THREAD_ATTR_STACKSIZE-0>0) +diff -up doxygen-1.7.4/src/doxygen.cpp.orig doxygen-1.7.4/src/doxygen.cpp +--- doxygen-1.7.4/src/doxygen.cpp.orig 2011-03-22 15:56:58.029360128 -0600 ++++ doxygen-1.7.4/src/doxygen.cpp 2011-05-14 12:14:04.802684928 -0600 +@@ -9465,7 +9465,7 @@ void readConfiguration(int argc, char ** + { + if (optind+4parse(df)) + { + err("error opening or reading configuration file %s!\n",argv[optind+4]); +diff -up doxygen-1.7.4/src/doxygen.pro.in.orig doxygen-1.7.4/src/doxygen.pro.in +--- doxygen-1.7.4/src/doxygen.pro.in.orig 2011-01-03 13:14:46.046661632 -0700 ++++ doxygen-1.7.4/src/doxygen.pro.in 2011-05-14 12:15:50.176947200 -0600 +@@ -18,7 +18,8 @@ TEMPLATE = app.t + CONFIG = console warn_on $extraopts + HEADERS = doxygen.h + SOURCES = main.cpp +-unix:LIBS += -L../lib -ldoxygen -ldoxycfg -lqtools -lmd5 -lpthread ++unix:LIBS += -L../lib -ldoxygen -ldoxycfg -lqtools -lmd5 ++haiku-g++:LIBS += -L/boot/common/lib -liconv + win32:INCLUDEPATH += . + win32-mingw:LIBS += -L../lib -ldoxygen -ldoxycfg -lqtools -lmd5 -lpthread + win32-msvc:LIBS += qtools.lib md5.lib doxygen.lib doxycfg.lib shell32.lib iconv.lib +diff -up doxygen-1.7.4/tmake/lib/haiku-g++/app.t.orig doxygen-1.7.4/tmake/lib/haiku-g++/app.t +--- doxygen-1.7.4/tmake/lib/haiku-g++/app.t.orig 2011-05-14 12:14:04.823132160 -0600 ++++ doxygen-1.7.4/tmake/lib/haiku-g++/app.t 2011-05-14 12:14:04.818937856 -0600 +@@ -0,0 +1,2 @@ ++#! Use the common Unix template ++#$ IncludeTemplate("../unix/app.t"); +diff -up doxygen-1.7.4/tmake/lib/haiku-g++/lib.t.orig doxygen-1.7.4/tmake/lib/haiku-g++/lib.t +--- doxygen-1.7.4/tmake/lib/haiku-g++/lib.t.orig 2011-05-14 12:14:04.828375040 -0600 ++++ doxygen-1.7.4/tmake/lib/haiku-g++/lib.t 2011-05-14 12:14:04.827326464 -0600 +@@ -0,0 +1,2 @@ ++#! Use the common Unix template ++#$ IncludeTemplate("../unix/lib.t"); +diff -up doxygen-1.7.4/tmake/lib/haiku-g++/subdirs.t.orig doxygen-1.7.4/tmake/lib/haiku-g++/subdirs.t +--- doxygen-1.7.4/tmake/lib/haiku-g++/subdirs.t.orig 2011-05-14 12:14:04.830210048 -0600 ++++ doxygen-1.7.4/tmake/lib/haiku-g++/subdirs.t 2011-05-14 12:14:04.828899328 -0600 +@@ -0,0 +1,2 @@ ++#! Use the common Unix template ++#$ IncludeTemplate("../unix/subdirs.t"); +diff -up doxygen-1.7.4/tmake/lib/haiku-g++/tmake.conf.orig doxygen-1.7.4/tmake/lib/haiku-g++/tmake.conf +--- doxygen-1.7.4/tmake/lib/haiku-g++/tmake.conf.orig 2011-05-14 12:14:04.832045056 -0600 ++++ doxygen-1.7.4/tmake/lib/haiku-g++/tmake.conf 2011-05-14 12:14:04.830734336 -0600 +@@ -0,0 +1,51 @@ ++# ++# ++# ++# tmake configuration for haiku-g++ ++# ++ ++TEMPLATE = app ++CONFIG = qt warn_on release ++ ++TMAKE_CC = gcc ++TMAKE_CFLAGS = ++TMAKE_CFLAGS_WARN_ON = -Wall -W ++TMAKE_CFLAGS_WARN_OFF = ++TMAKE_CFLAGS_RELEASE = ++TMAKE_CFLAGS_DEBUG = -g ++TMAKE_CFLAGS_SHLIB = -fPIC ++TMAKE_CFLAGS_YACC = -Wno-unused -Wno-parentheses ++ ++TMAKE_CXX = g++ ++TMAKE_CXXFLAGS = $$TMAKE_CFLAGS ++TMAKE_CXXFLAGS_WARN_ON = $$TMAKE_CFLAGS_WARN_ON ++TMAKE_CXXFLAGS_WARN_OFF = $$TMAKE_CFLAGS_WARN_OFF ++TMAKE_CXXFLAGS_RELEASE = $$TMAKE_CFLAGS_RELEASE ++TMAKE_CXXFLAGS_DEBUG = $$TMAKE_CFLAGS_DEBUG ++TMAKE_CXXFLAGS_SHLIB = $$TMAKE_CFLAGS_SHLIB ++TMAKE_CXXFLAGS_YACC = $$TMAKE_CFLAGS_YACC ++ ++TMAKE_INCDIR = ++TMAKE_LIBDIR = ++TMAKE_INCDIR_QT = $(QTDIR)/include ++TMAKE_LIBDIR_QT = $(QTDIR)/lib ++ ++TMAKE_LINK = g++ ++TMAKE_LINK_SHLIB = g++ ++TMAKE_LFLAGS = -Wl,-rpath=/lib:$(QTDIR)/lib ++TMAKE_LFLAGS_RELEASE = ++TMAKE_LFLAGS_DEBUG = ++TMAKE_LFLAGS_SHLIB = -shared ++TMAKE_LFLAGS_SONAME = -Wl,-soname, ++ ++TMAKE_LIBS = ++TMAKE_LIBS_QT = -lqt ++TMAKE_LIBS_QT_MT = -lqt-mt ++ ++TMAKE_MOC = moc ++ ++TMAKE_AR = ar cqs ++TMAKE_RANLIB = ++ ++TMAKE_TAR = tar -cf ++TMAKE_GZIP = gzip -9f diff --git a/app-editors/joe/joe-3.8-hg.bep b/app-editors/joe/joe-3.8-hg.bep index f29c211f5..c187bada5 100644 --- a/app-editors/joe/joe-3.8-hg.bep +++ b/app-editors/joe/joe-3.8-hg.bep @@ -1,14 +1,19 @@ DESCRIPTION="JOE is a full featured terminal-based screen editor which is distributed under the GNU General Public License (GPL)." HOMEPAGE="http://joe-editor.sourceforge.net/" SRC_URI="hg+http://joe-editor.hg.sourceforge.net:8000/hgroot/joe-editor/joe-editor" -REVISION="1" +REVISION="2" STATUS_HAIKU="stable" DEPEND="" #CHECKSUM_MD5="66de1b073e869ba12abbfcde3885c577" BUILD { cd joe-3.8-hg autojoe - ./configure --prefix=/boot/common + COMMON_DOCS=`finddir B_COMMON_DOCUMENTATION_DIRECTORY` + ./configure --prefix=`finddir B_COMMON_DIRECTORY` \ + --datadir=`finddir B_COMMON_DATA_DIRECTORY` \ + --docdir=$COMMON_DOCS/doc/joe \ + --mandir=$COMMON_DOCS/man + make } diff --git a/app-editors/nano/nano-2.2.3.bep b/app-editors/nano/nano-2.2.3.bep index 9727ffa90..77247c1bf 100644 --- a/app-editors/nano/nano-2.2.3.bep +++ b/app-editors/nano/nano-2.2.3.bep @@ -7,7 +7,7 @@ DEPEND="sys-libs/ncurses >= 5.6" CHECKSUM_MD5="91918a484f54f94fedaebe00dc393a50" BUILD { cd nano-2.2.3 - ./configure --prefix=/boot/common + ./configure --prefix=`finddir B_COMMON_DIRECTORY` make } diff --git a/app-editors/nano/nano-2.2.5.bep b/app-editors/nano/nano-2.2.5.bep index 70f2ba256..216e4fc4f 100644 --- a/app-editors/nano/nano-2.2.5.bep +++ b/app-editors/nano/nano-2.2.5.bep @@ -7,7 +7,7 @@ DEPEND="sys-libs/ncurses >= 5.6" CHECKSUM_MD5="77a10a49589f975ce98350a4527a2ebf" BUILD { cd nano-2.2.5 - ./configure --prefix=/boot/common + ./configure --prefix=`finddir B_COMMON_DIRECTORY` make } diff --git a/app-editors/nano/nano-2.2.6.bep b/app-editors/nano/nano-2.2.6.bep index fb9a9ff51..074d13d35 100644 --- a/app-editors/nano/nano-2.2.6.bep +++ b/app-editors/nano/nano-2.2.6.bep @@ -1,5 +1,5 @@ -DESCRIPTION="GNU GPL'd Pico clone with more functionality" -HOMEPAGE="http://www.nano-editor.org/" +DESCRIPTION="GNU GPL'd Pico clone with more functionality" +HOMEPAGE="http://www.nano-editor.org/" SRC_URI="http://www.nano-editor.org/dist/v2.2/nano-2.2.6.tar.gz" REVISION="1" STATUS_HAIKU="stable" @@ -8,10 +8,11 @@ DEPEND="sys-libs/ncurses >= 5.6 CHECKSUM_MD5="03233ae480689a008eb98feb1b599807" BUILD { cd nano-2.2.6 + COMMON_DOCS=`finddir B_COMMON_DOCUMENTATION_DIRECTORY` ./configure --prefix=`finddir B_COMMON_DIRECTORY` \ --datadir=`finddir B_COMMON_DATA_DIRECTORY` \ - --infodir=`finddir B_COMMON_DOCUMENTATION_DIRECTORY`/info \ - --mandir=`finddir B_COMMON_DOCUMENTATION_DATA_DIRECTORY`/man + --infodir=$COMMON_DOCS/info \ + --mandir=$COMMON_DOCS/man make } diff --git a/app-editors/nano/nano-2.3.1.bep b/app-editors/nano/nano-2.3.1.bep new file mode 100644 index 000000000..572854138 --- /dev/null +++ b/app-editors/nano/nano-2.3.1.bep @@ -0,0 +1,25 @@ +DESCRIPTION="GNU GPL'd Pico clone with more functionality" +HOMEPAGE="http://www.nano-editor.org/" +SRC_URI="http://ftpmirror.gnu.org/nano/nano-2.3.1.tar.gz" +CHECKSUM_MD5="af09f8828744b0ea0808d6c19a2b4bfd" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="sys-libs/ncurses >= 5.6 + sys-apps/groff >= 1.20.1" +BUILD { + cd nano-2.3.1 + COMMON_DOCS=`finddir B_COMMON_DOCUMENTATION_DIRECTORY` + ./configure --prefix=`finddir B_COMMON_DIRECTORY` \ + --datadir=`finddir B_COMMON_DATA_DIRECTORY` \ + --infodir=$COMMON_DOCS/info \ + --mandir=$COMMON_DOCS/man + make +} + +INSTALL { + cd nano-2.3.1 + make install +} + +LICENSE="GNU GPL v3" +COPYRIGHT="1999-2011 Free Software Foundation, Inc. " diff --git a/app-editors/ne/ne-2.1.bep b/app-editors/ne/ne-2.1.bep new file mode 100644 index 000000000..474e9206a --- /dev/null +++ b/app-editors/ne/ne-2.1.bep @@ -0,0 +1,19 @@ +DESCRIPTION="ne, the nice editor" +HOMEPAGE="http://ne.dsi.unimi.it" +SRC_URI="http://ne.dsi.unimi.it/ne-2.1.tar.gz" +REVISION="1" +STATUS_HAIKU="stable" +CHECKSUM_MD5="9f76652f6349721cfe0e8dc2aec9c767" +BUILD { + cd ne-2.1 + make PREFIX=`finddir B_COMMON_DIRECTORY` NE_ANSI=1 haiku +} + +INSTALL { + cd ne-2.1 + make PREFIX=`finddir B_COMMON_DIRECTORY` haiku +} + +LICENSE="GNU GPL v2" +COPYRIGHT="1993-1998 Sebastiano Vigna + 1999-2010 Todd M. Lewis and Sebastiano Vigna" diff --git a/app-editors/ne/patches/ne-2.1.patch b/app-editors/ne/patches/ne-2.1.patch new file mode 100644 index 000000000..cb02e07a9 --- /dev/null +++ b/app-editors/ne/patches/ne-2.1.patch @@ -0,0 +1,39 @@ +diff -Naur ne-2.1/makefile ne-2.1-haiku/makefile +--- ne-2.1/makefile 2010-05-10 09:42:12.052953088 -0700 ++++ ne-2.1-haiku/makefile 2011-07-29 16:03:27.170131456 -0700 +@@ -42,6 +42,19 @@ + make install PREFIX=/usr CMDSUFFIX=.exe + tar zcvf ne-cygwin-$(VERSION).tar.gz /usr/share/ne /usr/bin/ne.exe /usr/share/doc/ne /usr/share/info/ne.info.gz /usr/share/man/man1/ne.1 + ++haiku: ++ (cd src; make NE_GLOBAL_DIR=$(shell finddir B_COMMON_DATA_DIRECTORY)/ne) ++ mkdir -p $(DESTDIR)$(shell finddir B_COMMON_BIN_DIRECTORY) ++ mkdir -p $(DESTDIR)$(shell finddir B_COMMON_DATA_DIRECTORY)/ne/syntax ++ mkdir -p $(DESTDIR)$(shell finddir B_COMMON_DOCUMENTATION_DIRECTORY)/man/man1 ++ mkdir -p $(DESTDIR)$(shell finddir B_COMMON_DATA_DIRECTORY)/doc/ne ++ mkdir -p $(DESTDIR)$(shell finddir B_COMMON_DATA_DIRECTORY)/info ++ cp -pf src/ne$(CMDSUFFIX) $(DESTDIR)$(shell finddir B_COMMON_BIN_DIRECTORY) ++ cp -p syntax/*.jsf $(DESTDIR)$(shell finddir B_COMMON_DATA_DIRECTORY)/ne/syntax ++ cp -p doc/ne.1 $(DESTDIR)$(shell finddir B_COMMON_DOCUMENTATION_DIRECTORY)/man/man1 ++ cp -pr doc/ne.pdf doc/html doc/ne.txt doc/default.* README COPYING NEWS CHANGES $(DESTDIR)$(shell finddir B_COMMON_DATA_DIRECTORY)/doc/ne ++ cp -p doc/ne.info.gz $(DESTDIR)$(shell finddir B_COMMON_DATA_DIRECTORY)/info ++ + install: + (cd src; make NE_GLOBAL_DIR=$(PREFIX)/share/ne) + mkdir -p $(DESTDIR)$(PREFIX)/bin +diff -Naur ne-2.1/src/makefile ne-2.1-haiku/src/makefile +--- ne-2.1/src/makefile 2010-04-28 06:47:06.005767168 +0000 ++++ ne-2.1-haiku/src/makefile 2011-04-26 12:54:53.738721792 +0000 +@@ -101,10 +101,10 @@ + $(if $(NE_TERMCAP), -DTERMCAP,) \ + $(if $(NE_ANSI), -DTERMCAP -DANSI,) + +-LIBS=$(if $(NE_TERMCAP)$(NE_ANSI),,-lcurses) ++LIBS=$(if $(NE_TERMCAP)$(NE_ANSI),,-lncurses) + + ne: $(OBJS) $(if $(NE_TERMCAP)$(NE_ANSI),$(TERMCAPOBJS),) +- $(CC) -lm $(OPTS) $(LDFLAGS) $^ $(LIBS) -o $(PROGRAM) ++ $(CC) $(OPTS) $(LDFLAGS) $^ $(LIBS) -o $(PROGRAM) + + clean: + rm -f *.o core diff --git a/app-editors/qemacs/patches/qemacs-0.3.2dev-cvs.patch b/app-editors/qemacs/patches/qemacs-0.3.2dev-cvs.patch new file mode 100644 index 000000000..c04011406 --- /dev/null +++ b/app-editors/qemacs/patches/qemacs-0.3.2dev-cvs.patch @@ -0,0 +1,1558 @@ +Index: Makefile +=================================================================== +RCS file: /sources/qemacs/qemacs/Makefile,v +retrieving revision 1.50 +diff -u -r1.50 Makefile +--- qemacs-0.3.2dev-cvs/Makefile 5 Jun 2008 07:14:12 -0000 1.50 ++++ qemacs-0.3.2dev-cvs/Makefile 14 Mar 2013 23:32:46 -0000 +@@ -63,7 +63,7 @@ + endif + + ifdef CONFIG_DLL +- LIBS+=-ldl ++ LIBS+=$(DLLIBS) + # export some qemacs symbols + LDFLAGS+=-Wl,-E + endif +@@ -72,6 +72,11 @@ + TARGETS+= qe-doc.html + endif + ++ifdef CONFIG_HAIKU ++ OBJS+= haiku.o ++ LIBS+= -lbe ++endif ++ + ifdef CONFIG_WIN32 + OBJS+= unix.o + TOBJS+= unix.o +@@ -84,7 +89,7 @@ + else + OBJS+= unix.o tty.o + TOBJS+= unix.o tty.o +- LIBS+= -lm ++ LIBS+= $(EXTRALIBS) + endif + + ifdef CONFIG_QSCRIPT +@@ -143,7 +148,7 @@ + OBJS+= video.o image.o + DEP_LIBS+= $(FFMPEG_LIBDIR)/libavcodec/libavcodec.a $(FFMPEG_LIBDIR)/libavformat/libavformat.a + LIBS+= -L$(FFMPEG_LIBDIR)/libavcodec -L$(FFMPEG_LIBDIR)/libavformat -lavformat -lavcodec -lz -lpthread +- DEFINES+= -I$(FFMPEG_SRCDIR)/libavcodec -I$(FFMPEG_SRCDIR)/libavformat ++ DEFINES+= -I$(FFMPEG_SRCDIR) -I$(FFMPEG_SRCDIR)/libavcodec -I$(FFMPEG_SRCDIR)/libavformat + TARGETS+= ffplay$(EXE) + endif + +@@ -226,6 +231,9 @@ + $(OBJS_DIR)/%.o: %.c qe.h qestyles.h config.h config.mak Makefile + $(CC) $(DEFINES) $(CFLAGS) -o $@ -c $< + ++$(OBJS_DIR)/haiku.o: haiku.cpp qe.h qestyles.h config.h config.mak Makefile ++ g++ $(DEFINES) $(CFLAGS) -Wno-multichar -o $@ -c $< ++ + # + # Test for bidir algorithm + # +@@ -391,7 +399,8 @@ + charsetjis.def charsetmore.c clang.c config.eg config.h \ + configure cptoqe.c cutils.c cutils.h dired.c display.c \ + display.h docbook.c extras.c fbffonts.c fbfrender.c \ +- fbfrender.h fbftoqe.c hex.c html.c html2png.c htmlsrc.c \ ++ fbfrender.h fbftoqe.c haiku.cpp hex.c html.c html2png.c \ ++ htmlsrc.c \ + image.c indic.c input.c jistoqe.c kmap.c kmaptoqe.c \ + latex-mode.c libfbf.c libfbf.h ligtoqe.c list.c makemode.c \ + mpeg.c perl.c qe-doc.html qe-doc.texi qe.1 qe.c qe.h qe.tcc \ +Index: cfb.c +=================================================================== +RCS file: /sources/qemacs/qemacs/cfb.c,v +retrieving revision 1.8 +diff -u -r1.8 cfb.c +--- qemacs-0.3.2dev-cvs/cfb.c 8 Apr 2008 06:55:44 -0000 1.8 ++++ qemacs-0.3.2dev-cvs/cfb.c 14 Mar 2013 23:32:46 -0000 +@@ -50,7 +50,7 @@ + static void cfb16_fill_rectangle(QEditScreen *s, + int x1, int y1, int w, int h, QEColor color) + { +- CFBContext *cfb = s->private; ++ CFBContext *cfb = s->priv_data; + unsigned char *dest, *d; + int y, n; + unsigned int col; +@@ -101,7 +101,7 @@ + static void cfb32_fill_rectangle(QEditScreen *s, + int x1, int y1, int w, int h, QEColor color) + { +- CFBContext *cfb = s->private; ++ CFBContext *cfb = s->priv_data; + unsigned char *dest, *d; + int y, n; + unsigned int col; +@@ -145,7 +145,7 @@ + int x1, int y1, int w, int h, QEColor color, + unsigned char *glyph, int glyph_wrap) + { +- CFBContext *cfb = s1->private; ++ CFBContext *cfb = s1->priv_data; + unsigned char *dest, *d, *s, *src; + int n; + unsigned int col; +@@ -189,7 +189,7 @@ + int x1, int y1, int w, int h, QEColor color, + unsigned char *glyph, int glyph_wrap) + { +- CFBContext *cfb = s1->private; ++ CFBContext *cfb = s1->priv_data; + unsigned char *dest, *d, *s, *src; + int n; + unsigned int col; +@@ -233,7 +233,7 @@ + int x_start, int y, const unsigned int *str, int len, + QEColor color) + { +- CFBContext *cfb = s->private; ++ CFBContext *cfb = s->priv_data; + GlyphCache *g; + unsigned char *glyph_ptr; + int i, x1, y1, x2, y2, wrap, x; +@@ -309,7 +309,7 @@ + int cfb_init(QEditScreen *s, + void *base, int wrap, int depth, const char *font_path) + { +- CFBContext *cfb = s->private; ++ CFBContext *cfb = s->priv_data; + + cfb->base = base; + cfb->wrap = wrap; +Index: configure +=================================================================== +RCS file: /sources/qemacs/qemacs/configure,v +retrieving revision 1.15 +diff -u -r1.15 configure +--- qemacs-0.3.2dev-cvs/configure 17 Apr 2008 15:06:44 -0000 1.15 ++++ qemacs-0.3.2dev-cvs/configure 14 Mar 2013 23:32:46 -0000 +@@ -45,9 +45,11 @@ + ptsname="yes" + gprof="no" + network="yes" ++haiku="no" + win32="no" + cygwin="no" + lshared="no" ++dllibs="-ldl" + extralibs="" + simpleidct="yes" + bigendian="no" +@@ -79,10 +81,10 @@ + # no need for libm, but the inet stuff + # Check for BONE + if (echo $BEINCLUDES|grep 'headers/be/bone' >/dev/null); then +- extralibs="-lbind -lsocket -lm" ++ extralibs="-lbind -lsocket" + else + echo "Not sure building for net_server will succeed... good luck." +- extralibs="-lsocket -lm" ++ extralibs="-lsocket" + fi + ;; + BSD/OS) +@@ -102,6 +104,19 @@ + CYGWIN*) + cygwin="yes" + ;; ++ Haiku) ++ prefix="`finddir B_COMMON_DIRECTORY`" ++ # no need for libm, but the network stuff ++ extralibs="-lnetwork" ++ # dlopen() is in libroot already ++ dllibs="" ++ # use Haiku GUI; avoid building for X11 even if there are headers around ++ haiku="yes" ++ html="yes" ++ png="yes" ++ x11="no" ++ xv="no" ++ ;; + *) + extralibs="-lm" + unlockio="yes" +@@ -256,8 +271,11 @@ + if test "$x11" = "no" ; then + xv="no" + xrender="no" +- png="no" ++fi ++ ++if test "$x11" = "no" -a "$haiku" = "no" ; then + ffmpeg="no" ++ png="no" + html="no" + fi + +@@ -439,6 +457,7 @@ + echo "BUILD_SHARED=yes" >> config.mak + echo "PIC=-fPIC" >> config.mak + fi ++echo "DLLIBS=$dllibs" >> config.mak + echo "EXTRALIBS=$extralibs" >> config.mak + echo -n "VERSION=" >>config.mak + echo -n `head $source_path/VERSION` >> config.mak +@@ -451,6 +470,11 @@ + echo "CONFIG_NETWORK=yes" >> config.mak + fi + ++if test "$haiku" = "yes" ; then ++ echo "#define CONFIG_HAIKU 1" >> $TMPH ++ echo "CONFIG_HAIKU=yes" >> config.mak ++fi ++ + if test "$win32" = "yes" ; then + echo "#define CONFIG_WIN32 1" >> $TMPH + echo "CONFIG_WIN32=yes" >> config.mak +Index: display.h +=================================================================== +RCS file: /sources/qemacs/qemacs/display.h,v +retrieving revision 1.11 +diff -u -r1.11 display.h +--- qemacs-0.3.2dev-cvs/display.h 11 Jan 2008 11:29:28 -0000 1.11 ++++ qemacs-0.3.2dev-cvs/display.h 14 Mar 2013 23:32:46 -0000 +@@ -53,7 +53,7 @@ + int refcount; + int ascent; + int descent; +- void *private; ++ void *priv_data; + int system_font; /* TRUE if system font */ + /* cache data */ + int style; +@@ -148,12 +148,12 @@ + QECharset *charset; /* the charset of the TTY, XXX: suppress that, + use a system in fonts instead */ + int media; /* media type (see CSS_MEDIA_xxx) */ +- int bitmap_format; /* supported bitmap format */ +- int video_format; /* supported video format */ ++ QEBitmapFormat bitmap_format; /* supported bitmap format */ ++ QEBitmapFormat video_format; /* supported video format */ + /* clip region handling */ + int clip_x1, clip_y1; + int clip_x2, clip_y2; +- void *private; ++ void *priv_data; + }; + + int qe_register_display(QEDisplay *dpy); +Index: fbfrender.c +=================================================================== +RCS file: /sources/qemacs/qemacs/fbfrender.c,v +retrieving revision 1.10 +diff -u -r1.10 fbfrender.c +--- qemacs-0.3.2dev-cvs/fbfrender.c 8 Jan 2008 16:37:54 -0000 1.10 ++++ qemacs-0.3.2dev-cvs/fbfrender.c 14 Mar 2013 23:32:46 -0000 +@@ -124,7 +124,7 @@ + + static GlyphCache *fbf_decode_glyph1(QEFont *font, int code) + { +- UniFontData *uf = font->private; ++ UniFontData *uf = font->priv_data; + int glyph_index, size, src_width, src_height; + GlyphCache *glyph_cache; + GlyphEntry *fbf_glyph_entry; +@@ -270,7 +270,7 @@ + } + } + } +- font->private = uf_found; ++ font->priv_data = uf_found; + font->ascent = uf_found->ascent; + font->descent = uf_found->descent; + return font; +Index: html2png.c +=================================================================== +RCS file: /sources/qemacs/qemacs/html2png.c,v +retrieving revision 1.12 +diff -u -r1.12 html2png.c +--- qemacs-0.3.2dev-cvs/html2png.c 11 Jan 2008 11:29:28 -0000 1.12 ++++ qemacs-0.3.2dev-cvs/html2png.c 14 Mar 2013 23:32:47 -0000 +@@ -135,7 +135,7 @@ + /* realloc ppm bitmap */ + static int ppm_resize(QEditScreen *s, int w, int h) + { +- CFBContext *cfb = s->private; ++ CFBContext *cfb = s->priv_data; + + /* alloc bitmap */ + if (!qe_realloc(&cfb->base, w * h * sizeof(int))) { +@@ -160,7 +160,7 @@ + if (!cfb) + return -1; + +- s->private = cfb; ++ s->priv_data = cfb; + s->media = CSS_MEDIA_SCREEN; + + if (cfb_init(s, NULL, w * sizeof(int), 32, ".") < 0) +@@ -169,7 +169,7 @@ + if (ppm_resize(s, w, h) < 0) { + fail: + qe_free(&cfb->base); +- qe_free(&s->private); ++ qe_free(&s->priv_data); + return -1; + } + return 0; +@@ -177,15 +177,15 @@ + + static void ppm_close(QEditScreen *s) + { +- CFBContext *cfb = s->private; ++ CFBContext *cfb = s->priv_data; + + qe_free(&cfb->base); +- qe_free(&s->private); ++ qe_free(&s->priv_data); + } + + static int ppm_save(QEditScreen *s, const char *filename) + { +- CFBContext *cfb = s->private; ++ CFBContext *cfb = s->priv_data; + int w, h, x, y; + unsigned int r, g, b, v; + unsigned int *data; +@@ -219,7 +219,7 @@ + + static int png_save(QEditScreen *s, const char *filename) + { +- CFBContext *cfb = s->private; ++ CFBContext *cfb = s->priv_data; + struct png_save_data { + FILE *f; + png_structp png_ptr; +Index: qe.h +=================================================================== +RCS file: /sources/qemacs/qemacs/qe.h,v +retrieving revision 1.96 +diff -u -r1.96 qe.h +--- qemacs-0.3.2dev-cvs/qe.h 4 May 2008 15:54:39 -0000 1.96 ++++ qemacs-0.3.2dev-cvs/qe.h 14 Mar 2013 23:32:48 -0000 +@@ -267,11 +267,11 @@ + int ustristart(const unsigned int *str, const char *val, const unsigned int **ptr); + static inline unsigned int *umemmove(unsigned int *dest, + unsigned int *src, int count) { +- return memmove(dest, src, count * sizeof(unsigned int)); ++ return (unsigned int *)memmove(dest, src, count * sizeof(unsigned int)); + } + static inline unsigned int *umemcpy(unsigned int *dest, + unsigned int *src, int count) { +- return memcpy(dest, src, count * sizeof(unsigned int)); ++ return (unsigned int *)memcpy(dest, src, count * sizeof(unsigned int)); + } + int umemcmp(const unsigned int *s1, const unsigned int *s2, int count); + +Index: tty.c +=================================================================== +RCS file: /sources/qemacs/qemacs/tty.c,v +retrieving revision 1.50 +diff -u -r1.50 tty.c +--- qemacs-0.3.2dev-cvs/tty.c 23 Apr 2008 15:30:33 -0000 1.50 ++++ qemacs-0.3.2dev-cvs/tty.c 14 Mar 2013 23:32:49 -0000 +@@ -118,7 +118,7 @@ + + tty_screen = s; + ts = &tty_state; +- s->private = ts; ++ s->priv_data = ts; + s->media = CSS_MEDIA_TTY; + + /* Derive some settings from the TERM environment variable */ +@@ -263,7 +263,7 @@ + static void tty_term_exit(void) + { + QEditScreen *s = tty_screen; +- TTYState *ts = s->private; ++ TTYState *ts = s->priv_data; + + tcsetattr(fileno(s->STDIN), TCSANOW, &ts->oldtty); + } +@@ -271,7 +271,7 @@ + static void tty_resize(__unused__ int sig) + { + QEditScreen *s = tty_screen; +- TTYState *ts = s->private; ++ TTYState *ts = s->priv_data; + struct winsize ws; + int i, count, size; + TTYChar tc; +@@ -318,7 +318,7 @@ + static void tty_term_cursor_at(QEditScreen *s, int x1, int y1, + __unused__ int w, __unused__ int h) + { +- TTYState *ts = s->private; ++ TTYState *ts = s->priv_data; + ts->cursor_x = x1; + ts->cursor_y = y1; + } +@@ -380,7 +380,7 @@ + { + QEditScreen *s = opaque; + QEmacsState *qs = &qe_state; +- TTYState *ts = s->private; ++ TTYState *ts = s->priv_data; + int ch; + QEEvent ev1, *ev = &ev1; + +@@ -425,6 +425,7 @@ + ts->input_param = 0; + } else if (ch == 'O') { + ts->input_state = IS_ESC2; ++ ts->input_param = 0; + } else { + ch = KEY_META(ch); + ts->input_state = IS_NORM; +@@ -826,7 +827,7 @@ + static void tty_term_fill_rectangle(QEditScreen *s, + int x1, int y1, int w, int h, QEColor color) + { +- TTYState *ts = s->private; ++ TTYState *ts = s->priv_data; + int x2 = x1 + w; + int y2 = y1 + h; + int x, y; +@@ -869,7 +870,7 @@ + + font->ascent = 0; + font->descent = 1; +- font->private = NULL; ++ font->priv_data = NULL; + return font; + } + +@@ -958,7 +959,7 @@ + int x, int y, const unsigned int *str, int len, + QEColor color) + { +- TTYState *ts = s->private; ++ TTYState *ts = s->priv_data; + TTYChar *ptr; + int fgcolor, w, n; + unsigned int cc; +@@ -1021,7 +1022,7 @@ + + static void tty_term_flush(QEditScreen *s) + { +- TTYState *ts = s->private; ++ TTYState *ts = s->priv_data; + TTYChar *ptr, *ptr1, *ptr2, *ptr3, *ptr4, cc, blankcc; + int y, shadow, ch, bgcolor, fgcolor, shifted; + +Index: win32.c +=================================================================== +RCS file: /sources/qemacs/qemacs/win32.c,v +retrieving revision 1.15 +diff -u -r1.15 win32.c +--- qemacs-0.3.2dev-cvs/win32.c 23 Apr 2008 15:29:35 -0000 1.15 ++++ qemacs-0.3.2dev-cvs/win32.c 14 Mar 2013 23:32:49 -0000 +@@ -139,7 +139,7 @@ + if (!_hPrev) + init_application(); + +- s->private = NULL; ++ s->priv_data = NULL; + s->media = CSS_MEDIA_SCREEN; + + win_ctx.font = CreateFont(-12, 0, 0, 0, 0 , 0, 0, 0, 0, 0, 0, 0, +@@ -452,7 +452,7 @@ + GetTextMetrics(win_ctx.hdc, &tm); + font->ascent = tm.tmAscent; + font->descent = tm.tmDescent; +- font->private = NULL; ++ font->priv_data = NULL; + return font; + } + +Index: x11.c +=================================================================== +RCS file: /sources/qemacs/qemacs/x11.c,v +retrieving revision 1.28 +diff -u -r1.28 x11.c +--- qemacs-0.3.2dev-cvs/x11.c 15 Apr 2008 23:24:04 -0000 1.28 ++++ qemacs-0.3.2dev-cvs/x11.c 14 Mar 2013 23:32:49 -0000 +@@ -194,7 +194,7 @@ + QEStyleDef default_style; + XGCValues gc_val; + +- s->private = NULL; ++ s->priv_data = NULL; + s->media = CSS_MEDIA_SCREEN; + + if (!display_str) +@@ -564,13 +564,13 @@ + } + font->ascent = renderFont->ascent; + font->descent = renderFont->descent; +- font->private = renderFont; ++ font->priv_data = renderFont; + return font; + } + + static void term_close_font(QEditScreen *s, QEFont *font) + { +- XftFont *renderFont = font->private; ++ XftFont *renderFont = font->priv_data; + + XftFontClose(display, renderFont); + /* Clear structure to force crash if font is still used after +@@ -582,7 +582,7 @@ + + static int term_glyph_width(QEditScreen *s, QEFont *font, unsigned int cc) + { +- XftFont *renderFont = font->private; ++ XftFont *renderFont = font->priv_data; + XGlyphInfo gi; + + XftTextExtents32(display, renderFont, &cc, 1, &gi); +@@ -593,7 +593,7 @@ + int x, int y, const unsigned int *str, int len, + QEColor color) + { +- XftFont *renderFont = font->private; ++ XftFont *renderFont = font->priv_data; + XftColor col; + int r, g, b, a; + +@@ -764,7 +764,7 @@ + + font->ascent = xfont->ascent; + font->descent = xfont->descent; +- font->private = xfont; ++ font->priv_data = xfont; + return font; + fail: + XFreeFontNames(list); +@@ -774,7 +774,7 @@ + + static void term_close_font(__unused__ QEditScreen *s, QEFont *font) + { +- XFontStruct *xfont = font->private; ++ XFontStruct *xfont = font->priv_data; + + XFreeFont(display, xfont); + /* Clear structure to force crash if font is still used after +@@ -788,7 +788,7 @@ + associated. */ + static XCharStruct *get_char_struct(QEFont *font, int cc) + { +- XFontStruct *xfont = font->private; ++ XFontStruct *xfont = font->priv_data; + int b1, b2; + XCharStruct *cs; + +@@ -856,7 +856,7 @@ + + /* really no glyph : use default char in current font */ + /* Should have half-width and full-width default char patterns */ +- xfont = font->private; ++ xfont = font->priv_data; + cs = get_char_struct(font, xfont->default_char); + *out_font = lock_font(s, font); + return cs; +@@ -928,13 +928,13 @@ + cs = handle_fallback(s, &font1, font, cc); + if (!cs) { + /* still no char: use default glyph */ +- xfont = font->private; ++ xfont = font->priv_data; + cc = xfont->default_char; + } + } + /* flush previous chars if font change needed */ + if (font1 != last_font && q > x11_str) { +- xfont = last_font->private; ++ xfont = last_font->priv_data; + l = q - x11_str; + XSetFont(display, gc, xfont->fid); + XDrawString16(display, dbuffer, gc, x_start, y, x11_str, l); +@@ -950,7 +950,7 @@ + } + if (q > x11_str) { + /* flush remaining chars (more common case) */ +- xfont = last_font->private; ++ xfont = last_font->priv_data; + l = q - x11_str; + XSetFont(display, gc, xfont->fid); + XDrawString16(display, dbuffer, gc, x_start, y, x11_str, l); +--- qemacs-0.3.2dev-cvs//dev/null 2013-03-14 16:10:28.351668000 +0100 ++++ qemacs-0.3.2dev-cvs/haiku.cpp 2013-03-14 20:51:17.995622912 +0100 +@@ -0,0 +1,883 @@ ++/* ++ * Haiku driver for QEmacs ++ * Copyright (c) 2013 François Revol. ++ * Copyright (c) 2002 Fabrice Bellard. ++ * ++ * This library is free software; you can redistribute it and/or ++ * modify it under the terms of the GNU Lesser General Public ++ * License as published by the Free Software Foundation; either ++ * version 2 of the License, or (at your option) any later version. ++ * ++ * This library is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ * Lesser General Public License for more details. ++ * ++ * You should have received a copy of the GNU Lesser General Public ++ * License along with this library; if not, write to the Free Software ++ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ++ */ ++extern "C" { ++#include "qe.h" ++} ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++extern QEDisplay haiku_dpy; ++ ++static int force_tty = 0; ++ ++static int font_xsize; ++ ++class QEWindow; ++class QEView; ++ ++/* state of a single window */ ++typedef struct WindowState { ++ BWindow *w; ++ BView *v; ++ BFont font; ++ int events_rd; ++ int events_wr; ++} WindowState; ++ ++WindowState haiku_ctx; ++static thread_id bapp_thid; ++static int bapp_ref_count = 0; ++static int events_wr; ++ ++/* count of pending repaints */ ++static vint32 repaints = 0; ++//TODO:use double-buffering with a BBitmap ++ ++static void haiku_handle_event(void *opaque); ++ ++static status_t bmessage_input(QEWindow *win, QEView *view, BMessage *message) ++{ ++ if (!message) ++ return EINVAL; ++ /* push the message into the pipe */ ++ if (write(events_wr, &message, sizeof(BMessage *)) < 0) ++ return errno; ++ return B_OK; ++} ++ ++class QEWindow: public BWindow ++{ ++public: ++ QEWindow(BRect frame, const char *name, QEView *view) ++ :BWindow(frame, name, B_TITLED_WINDOW, 0) ++ ,fView(view) ++ {} ++ ++ virtual ~QEWindow() {} ++ ++//virtual void Show(); ++//virtual void Hide(); ++//virtual void Minimize(bool minimize); ++virtual bool QuitRequested(); ++virtual void DispatchMessage(BMessage *message, BHandler *handler); ++ ++private: ++ QEView *fView; ++}; ++ ++class QEView: public BView ++{ ++public: ++ QEView(BRect frame, const char *name); ++ virtual ~QEView(); ++ ++virtual void MouseDown(BPoint where); ++virtual void MouseUp(BPoint where); ++virtual void MouseMoved(BPoint where, uint32 code, const BMessage *a_message); ++virtual void KeyDown(const char *bytes, int32 numBytes); ++virtual void KeyUp(const char *bytes, int32 numBytes); ++virtual void Draw(BRect updateRect); ++virtual void FrameResized(float new_width, float new_height); ++#if 0 ++virtual void WindowActivated(bool state); ++virtual void MessageReceived(BMessage *message); ++#endif ++}; ++ ++ ++bool QEWindow::QuitRequested() ++{ ++ BMessage *message = new BMessage(B_QUIT_REQUESTED); ++ bmessage_input(this, NULL, message); ++ return false; ++} ++ ++void QEWindow::DispatchMessage(BMessage *message, BHandler *handler) ++{ ++ uint32 mods; ++ switch (message->what) { ++ case B_MOUSE_WHEEL_CHANGED: ++ { ++ BMessage *message = DetachCurrentMessage(); ++ bmessage_input(this, NULL, message); ++ } ++ break; ++ case B_KEY_DOWN: ++ if ((message->FindInt32("modifiers", (int32 *)&mods) == B_OK) && ++ (mods & B_COMMAND_KEY)) { ++ /* BWindow swallows KEY_DOWN when ALT is down... ++ * so this hack is needed. ++ */ ++ fView->KeyDown(NULL, 0); ++ return; ++ } ++ break; ++ case B_UNMAPPED_KEY_DOWN: ++ case B_UNMAPPED_KEY_UP: ++ case B_KEY_UP: ++ //message->PrintToStream(); ++ break; ++ } ++ BWindow::DispatchMessage(message, handler); ++} ++ ++QEView::QEView(BRect frame, const char *name) ++ :BView(frame, name, B_FOLLOW_ALL_SIDES, B_WILL_DRAW|B_FRAME_EVENTS) ++{ ++ SetViewColor(ui_color(B_DOCUMENT_BACKGROUND_COLOR)); ++ //SetViewColor(0, 255, 0); ++} ++ ++QEView::~QEView() ++{ ++} ++ ++void QEView::MouseDown(BPoint where) ++{ ++ BMessage *message = Window()->DetachCurrentMessage(); ++ bmessage_input(NULL, this, message); ++} ++ ++void QEView::MouseUp(BPoint where) ++{ ++ BMessage *message = Window()->DetachCurrentMessage(); ++ bmessage_input(NULL, this, message); ++} ++ ++void QEView::MouseMoved(BPoint where, uint32 code, const BMessage *a_message) ++{ ++ BMessage *message = Window()->DetachCurrentMessage(); ++ bmessage_input(NULL, this, message); ++} ++ ++void QEView::KeyDown(const char *bytes, int32 numBytes) ++{ ++ BMessage *message = Window()->DetachCurrentMessage(); ++ //message->PrintToStream(); ++ bmessage_input(NULL, this, message); ++} ++ ++void QEView::KeyUp(const char *bytes, int32 numBytes) ++{ ++ uint32 mods; ++ BMessage *message = Window()->DetachCurrentMessage(); ++ //message->PrintToStream(); ++ bmessage_input(NULL, this, message); ++} ++ ++void QEView::Draw(BRect updateRect) ++{ ++ BMessage *message; ++ message = new BMessage(_UPDATE_); ++ message->AddRect("update_rect", updateRect); ++ atomic_add(&repaints, 1); ++ bmessage_input(NULL, this, message); ++} ++ ++void QEView::FrameResized(float new_width, float new_height) ++{ ++ BMessage *message = Window()->DetachCurrentMessage(); ++ atomic_set(&repaints, 0); ++ bmessage_input(NULL, this, message); ++ BView::FrameResized(new_width, new_height); ++} ++ ++ ++static int haiku_probe(void) ++{ ++ if (force_tty) ++ return 0; ++ return 2; ++} ++ ++static int32 bapp_quit_thread(void *arg) ++{ ++ be_app->Lock(); ++ be_app->Quit(); ++ return 0; ++} ++ ++ ++static int32 bapp_thread(void *arg) ++{ ++ be_app->Lock(); ++ be_app->Run(); ++ return 0; ++} ++ ++ ++ ++static void init_application(void) ++{ ++ bapp_ref_count++; ++ if (be_app) ++ return; /* done already! */ ++ new BApplication("application/x-vnd.Bellard-QEmacs"); ++ //new XEmacsApp; ++ bapp_thid = spawn_thread(bapp_thread, "BApplication(QEmacs)", B_NORMAL_PRIORITY, (void *)find_thread(NULL)); ++ if (bapp_thid < B_OK) ++ return; /* #### handle errors */ ++ if (resume_thread(bapp_thid) < B_OK) ++ return; ++ // This way we ensure we don't create BWindows before be_app is created ++ // (creating it in the thread doesn't ensure this) ++ be_app->Unlock(); ++} ++ ++static void uninit_application(void) ++{ ++ status_t err; ++ if (--bapp_ref_count) ++ return; ++ be_app->Lock(); ++ be_app->Quit(); ++ //XXX:HACK ++ be_app->Unlock(); ++ //be_app_messenger.SendMessage(B_QUIT_REQUESTED); ++ wait_for_thread(bapp_thid, &err); ++ //FIXME:leak or crash ++ //delete be_app; ++ be_app = NULL; ++} ++ ++static int haiku_init(QEditScreen *s, int w, int h) ++{ ++ int xsize, ysize, font_ysize; ++ WindowState *ctx; ++ ++ if (!be_app) ++ init_application(); ++ ++ memcpy(&s->dpy, &haiku_dpy, sizeof(QEDisplay)); ++ ++ ctx = (WindowState *)malloc(sizeof(WindowState)); ++ if (ctx == NULL) ++ return -1; ++ s->priv_data = ctx; ++ s->media = CSS_MEDIA_SCREEN; ++ ++ s->bitmap_format = QEBITMAP_FORMAT_RGBA32; ++ /* BBitmap supports overlay, but not planar data */ ++ //s->video_format = QEBITMAP_FORMAT_RGBA32; ++ ++ int event_pipe[2]; ++ if (pipe(event_pipe) < 0) ++ return -1; ++ fcntl(event_pipe[0], F_SETFD, FD_CLOEXEC); ++ fcntl(event_pipe[1], F_SETFD, FD_CLOEXEC); ++ ++ ctx->events_rd = event_pipe[0]; ++ ctx->events_wr = events_wr = event_pipe[1]; ++ ++ set_read_handler(event_pipe[0], haiku_handle_event, s); ++ ++ ++ ctx->font = BFont(be_fixed_font); ++ ++ font_height height; ++ ctx->font.GetHeight(&height); ++ ++ font_xsize = (int)ctx->font.StringWidth("n"); ++ font_ysize = (int)(height.ascent + height.descent + height.leading + 1); ++ ++ if (w == 0) ++ w = 80; ++ if (h == 0) ++ h = 25; ++ xsize = w * font_xsize; ++ ysize = h * font_ysize; ++ ++ s->width = xsize; ++ s->height = ysize; ++ s->charset = &charset_utf8; ++ ++ s->clip_x1 = 0; ++ s->clip_y1 = 0; ++ s->clip_x2 = s->width; ++ s->clip_y2 = s->height; ++ ++ BRect frame(0, 0, s->width - 1, s->height - 1); ++ ++ QEView *v = new QEView(frame, "qemacs"); ++ ctx->v = v; ++ ++ frame.OffsetTo(200, 200); ++ ++ ctx->w = new QEWindow(frame, "qemacs", v); ++ ctx->w->AddChild(ctx->v); ++ ctx->v->MakeFocus(); ++ //ctx->v->SetViewColor(B_TRANSPARENT_COLOR); ++ ctx->v->SetDrawingMode(B_OP_OVER); ++ ++ ctx->w->Show(); ++ ++ return 0; ++} ++ ++static void haiku_close(QEditScreen *s) ++{ ++ WindowState *ctx = (WindowState *)s->priv_data; ++ ctx->w->Lock(); ++ ctx->w->Quit(); ++ free(s->priv_data); ++} ++ ++static void haiku_flush(QEditScreen *s) ++{ ++ WindowState *ctx = (WindowState *)s->priv_data; ++ //fprintf(stderr, "%s()\n", __FUNCTION__); ++ ++ ctx->v->LockLooper(); ++ ++ // doesn't really help ++ ctx->v->Sync(); ++ ++ ctx->v->UnlockLooper(); ++} ++ ++static int haiku_is_user_input_pending(QEditScreen *s) ++{ ++ /* XXX: do it */ ++ return 0; ++} ++ ++/* called when an BMessage is forwarded. dispatch events to qe_handle_event() */ ++static void haiku_handle_event(void *opaque) ++{ ++ QEditScreen *s = (QEditScreen *)opaque; ++ WindowState *ctx = (WindowState *)s->priv_data; ++ unsigned char buf[16]; ++ bigtime_t timestamp_ms; ++ BMessage *event; ++ //fprintf(stderr, "%s()\n", __FUNCTION__); ++/* ++ KeySym keysym; ++*/ ++ int shift, ctrl, meta, len, key = 0; ++ QEEvent ev1, *ev = &ev1; ++ ++ if (read(ctx->events_rd, &event, sizeof(BMessage *)) < sizeof(BMessage *)) ++ return; ++ //event->PrintToStream(); ++ ++ switch(event->what) { ++ case B_QUIT_REQUESTED: ++ ++ // cancel pending operation ++ ev->key_event.type = QE_KEY_EVENT; ++ ev->key_event.key = KEY_CTRL('g'); ++ qe_handle_event(ev); ++ ++ // simulate C-x C-c ++ ev->key_event.type = QE_KEY_EVENT; ++ ev->key_event.key = KEY_CTRL('x'); ++ qe_handle_event(ev); ++ ev->key_event.type = QE_KEY_EVENT; ++ ev->key_event.key = KEY_CTRL('c'); ++ qe_handle_event(ev); ++ break; ++ ++ case _UPDATE_: ++ // flush queued repaints ++ if (atomic_set(&repaints, 0)) { ++ ev->expose_event.type = QE_EXPOSE_EVENT; ++ qe_handle_event(ev); ++ } ++ break; ++ ++ case B_VIEW_RESIZED: ++ { ++ int32 width, height; ++ int columns, rows; ++ //event->PrintToStream(); ++/* ++ if (event->FindInt32("width", &width) < B_OK) ++ break; ++ if (event->FindInt32("height", &height) < B_OK) ++ break; ++*/ ++ ++ ctx->v->LockLooper(); ++ ++ width = ctx->v->Bounds().IntegerWidth() + 1; ++ height = ctx->v->Bounds().IntegerHeight() + 1; ++ ++ if (width != s->width || height != s->height) ++ ctx->v->Invalidate(ctx->v->Bounds()); ++ ++ s->width = width; ++ s->height = height; ++ ++ ctx->v->UnlockLooper(); ++ ++ //ev->expose_event.type = QE_EXPOSE_EVENT; ++ //qe_handle_event(ev); ++ } ++ break; ++ ++ case B_MOUSE_MOVED: ++ { ++ BPoint pt; ++ ++ ev->button_event.type = QE_MOTION_EVENT; ++ ev->button_event.x = (int)pt.x; ++ ev->button_event.y = (int)pt.y; ++ qe_handle_event(ev); ++ } ++ break; ++ ++ case B_MOUSE_DOWN: ++ case B_MOUSE_UP: ++ { ++ BPoint pt; ++ uint32 buttons; ++ ++ if (event->what == B_MOUSE_DOWN) ++ ev->button_event.type = QE_BUTTON_PRESS_EVENT; ++ else ++ ev->button_event.type = QE_BUTTON_RELEASE_EVENT; ++ ++ if (event->FindPoint("where", &pt) < B_OK) ++ pt = BPoint(0,0); ++ ev->button_event.x = (int)pt.x; ++ ev->button_event.y = (int)pt.y; ++ ++ if (event->FindInt32("buttons", (int32 *)&buttons) < B_OK) ++ buttons = (event->what == B_MOUSE_UP)?0:B_PRIMARY_MOUSE_BUTTON; ++ ++ ++ if (buttons & B_PRIMARY_MOUSE_BUTTON) ++ ev->button_event.button = QE_BUTTON_LEFT; ++ else if (buttons & B_SECONDARY_MOUSE_BUTTON) ++ ev->button_event.button = QE_BUTTON_MIDDLE; ++ else if (buttons & B_TERTIARY_MOUSE_BUTTON) ++ ev->button_event.button = QE_BUTTON_RIGHT; ++ ++ qe_handle_event(ev); ++ } ++ break; ++ ++ case B_MOUSE_WHEEL_CHANGED: ++ { ++ float delta; ++ ++ ev->button_event.type = QE_BUTTON_PRESS_EVENT; ++ ++ if (event->FindFloat("be:wheel_delta_y", &delta) < B_OK) ++ delta = 0.0; ++ ++ if (delta > 0) ++ ev->button_event.button = QE_WHEEL_DOWN; ++ else if (delta < 0) ++ ev->button_event.button = QE_WHEEL_UP; ++ else ++ break; ++ ++ qe_handle_event(ev); ++ } ++ break; ++ ++ case B_KEY_UP: ++ break; ++ ++ case B_KEY_DOWN: ++ { ++ unsigned int mods = 0; ++ uint32 state; ++ //event->PrintToStream(); ++ uint32 scancode; ++ uint32 raw_char; ++ const char *bytes; ++ char buff[6]; ++ int numbytes = 0; ++ int i; ++ ++ if (event->FindInt64("when", ×tamp_ms) < B_OK) ++ timestamp_ms = 0LL; ++ if (event->FindInt32("modifiers", (int32 *)&state) < B_OK) ++ state = modifiers(); ++ if (event->FindInt32("key", (int32 *)&scancode) < B_OK) ++ scancode = 0; ++ if (event->FindInt32("raw_char", (int32 *)&raw_char) < B_OK) ++ raw_char = 0; ++ ++ /* check for byte[] first, ++ because C-space gives bytes="" (and byte[0] = '\0') */ ++ for (i = 0; i < 5; i++) { ++ buff[i] = '\0'; ++ if (event->FindInt8("byte", i, (int8 *)&buff[i]) < B_OK) ++ break; ++ } ++ ++ if (i) { ++ bytes = buff; ++ numbytes = i; ++ } else if (event->FindString("bytes", &bytes) < B_OK) ++ bytes = ""; ++ ++ if (!numbytes) ++ numbytes = strlen(bytes); ++ ++ shift = (state & B_SHIFT_KEY); ++ ctrl = (state & B_CONTROL_KEY); ++ meta = (state & (B_LEFT_OPTION_KEY | B_COMMAND_KEY)); ++ ++ //fprintf(stderr, "%cshift %cctrl %cmeta numbytes %d \n", shift ? ' ' : '!', ctrl ? ' ' : '!', meta ? ' ' : '!', numbytes); ++ ++ char byte = 0; ++ if (numbytes == 1) { ++ byte = bytes[0]; ++ if (state & B_CONTROL_KEY) ++ byte = (char)raw_char; ++ switch (byte) { ++ case B_BACKSPACE: ++ key = KEY_BS; ++ if (meta) ++ key = KEY_META(KEY_BS); ++ break; ++ case B_TAB: ++ key = KEY_TAB; ++ break; ++ case B_ENTER: ++ key = KEY_RET; ++ break; ++ case B_ESCAPE: ++ key = KEY_ESC; ++ break; ++ case B_SPACE: ++ key = KEY_SPC; ++ break; ++ case B_DELETE: ++ key = KEY_DELETE; ++ break; ++ case B_INSERT: ++ key = KEY_INSERT; ++ break; ++ case B_HOME: ++ key = ctrl ? KEY_CTRL_HOME : KEY_HOME; ++ break; ++ case B_END: ++ key = ctrl ? KEY_CTRL_END : KEY_END; ++ break; ++ case B_PAGE_UP: ++ key = KEY_PAGEUP; ++ break; ++ case B_PAGE_DOWN: ++ key = KEY_PAGEDOWN; ++ break; ++ case B_LEFT_ARROW: ++ key = ctrl ? KEY_CTRL_LEFT : KEY_LEFT; ++ break; ++ case B_RIGHT_ARROW: ++ key = ctrl ? KEY_CTRL_RIGHT : KEY_RIGHT; ++ break; ++ case B_UP_ARROW: ++ key = KEY_UP; ++ break; ++ case B_DOWN_ARROW: ++ key = KEY_DOWN; ++ break; ++ case B_FUNCTION_KEY: ++ switch (scancode) { ++ case B_F1_KEY: ++ case B_F2_KEY: ++ case B_F3_KEY: ++ case B_F4_KEY: ++ case B_F5_KEY: ++ case B_F6_KEY: ++ case B_F7_KEY: ++ case B_F8_KEY: ++ case B_F9_KEY: ++ case B_F10_KEY: ++ case B_F11_KEY: ++ case B_F12_KEY: ++ key = KEY_F1 + scancode - B_F1_KEY; ++ break; ++ case B_PRINT_KEY: ++ case B_SCROLL_KEY: ++ case B_PAUSE_KEY: ++ default: ++ break; ++ } ++ break; ++ case 0: ++ break; ++ default: ++ if (byte >= ' ' && byte <= '~') ++ if (meta) ++ key = KEY_META(' ') + byte - ' '; ++ else if (ctrl) ++ key = KEY_CTRL(byte); ++ else ++ key = byte; ++ ++ } ++ } else { ++ const char *p = bytes; ++ key = utf8_decode(&p); ++ } ++ ++ got_key: ++ if (key) { ++ ev->key_event.type = QE_KEY_EVENT; ++ ev->key_event.key = key; ++ qe_handle_event(ev); ++ } ++ } ++ break; ++ } ++ ++ delete event; ++} ++ ++static void haiku_fill_rectangle(QEditScreen *s, ++ int x1, int y1, int w, int h, QEColor color) ++{ ++ WindowState *ctx = (WindowState *)s->priv_data; ++ //fprintf(stderr, "%s()\n", __FUNCTION__); ++ drawing_mode oldMode; ++ ++ BRect r(x1, y1, x1 + w - 1, y1 + h - 1); ++ rgb_color c = {(color >> 16) & 0xff, (color >> 8) & 0xff, color & 0xff, ++ 0xff}; ++ ++ ctx->v->LockLooper(); ++ ++ oldMode = ctx->v->DrawingMode(); ++ ++ /* XXX: suppress XOR mode */ ++ if (color == QECOLOR_XOR) ++ ctx->v->SetDrawingMode(B_OP_INVERT); ++ else ++ ctx->v->SetHighColor(c); ++ ctx->v->FillRect(r); ++ ++ /* XXX: suppress XOR mode */ ++ if (color == QECOLOR_XOR) ++ ctx->v->SetDrawingMode(oldMode); ++ ++ ctx->v->UnlockLooper(); ++} ++ ++static QEFont *haiku_open_font(QEditScreen *s, int style, int size) ++{ ++ WindowState *ctx = (WindowState *)s->priv_data; ++ //fprintf(stderr, "%s()\n", __FUNCTION__); ++ QEFont *font; ++ ++ font = (QEFont *)malloc(sizeof(QEFont)); ++ if (!font) ++ return NULL; ++ ++ // TODO: use style / size ++ BFont *f = new BFont(ctx->font); ++ ++ font_height height; ++ f->GetHeight(&height); ++ font->ascent = (int)height.ascent; ++ font->descent = (int)(height.descent + height.leading + 1); ++ font->priv_data = f; ++ return font; ++} ++ ++static void haiku_close_font(QEditScreen *s, QEFont *font) ++{ ++ BFont *f = (BFont *)font->priv_data; ++ delete f; ++ free(font); ++} ++ ++static void haiku_text_metrics(QEditScreen *s, QEFont *font, ++ QECharMetrics *metrics, ++ const unsigned int *str, int len) ++{ ++ //TODO: use BFont::GetEscapements() or StringWidth() ++ int i, x; ++ metrics->font_ascent = font->ascent; ++ metrics->font_descent = font->descent; ++ x = 0; ++ for(i=0;iwidth = x; ++} ++ ++static void haiku_draw_text(QEditScreen *s, QEFont *font, ++ int x1, int y, const unsigned int *str, int len, ++ QEColor color) ++{ ++ WindowState *ctx = (WindowState *)s->priv_data; ++ BFont *f = (BFont *)(font->priv_data); ++ int i; ++ //fprintf(stderr, "%s()\n", __FUNCTION__); ++ ++ /* XXX: suppress XOR mode */ ++ if (color == QECOLOR_XOR) ++ color = QERGB(0xff, 0xff, 0xff); ++ ++ rgb_color c = {(color >> 16) & 0xff, (color >> 8) & 0xff, color & 0xff, ++ 0xff}; ++ ++ ctx->v->LockLooper(); ++ ++ ctx->v->SetHighColor(c); ++ ctx->v->SetLowColor(B_TRANSPARENT_COLOR); ++ ctx->v->SetFont(f); ++ ctx->v->MovePenTo(x1, y - 1); ++ ++ char buf[10]; ++ unsigned int cc; ++ ++ BString text; ++ for(i=0;iv->DrawString(buf); ++ } ++ ctx->v->DrawString(text.String()); ++ ++ ctx->v->UnlockLooper(); ++ ++ //TextOutW(haiku_ctx.hdc, x1, y - font->ascent, buf, len); ++} ++ ++static void haiku_set_clip(QEditScreen *s, ++ int x, int y, int w, int h) ++{ ++ WindowState *ctx = (WindowState *)s->priv_data; ++ //fprintf(stderr, "%s(,%d, %d, %d, %d)\n", __FUNCTION__, x, y, w, h); ++ ++ BRegion clip(BRect(x, y, x + w - 1, y + h - 1)); ++ ++ ctx->v->LockLooper(); ++ ++ ctx->v->ConstrainClippingRegion(&clip); ++ ++ ctx->v->UnlockLooper(); ++} ++ ++static int haiku_bmp_alloc(QEditScreen *s, QEBitmap *b) ++{ ++ BBitmap *bitmap; ++ color_space space = B_RGBA32; ++ uint32 flags = 0; ++ ++ b->format = s->bitmap_format; ++ if (b->flags & QEBITMAP_FLAG_VIDEO) { ++ b->format = s->video_format; ++ } ++fprintf(stderr, "%s(, [w %d, h %d])\n", __FUNCTION__, b->width, b->height); ++ switch (b->format) { ++ case QEBITMAP_FORMAT_RGB565: ++ space = B_RGB16; ++ break; ++ case QEBITMAP_FORMAT_RGB555: ++ space = B_RGB15; ++ break; ++ case QEBITMAP_FORMAT_RGB24: ++ space = B_RGB24; ++ break; ++ case QEBITMAP_FORMAT_RGBA32: ++ space = B_RGBA32; ++ break; ++ case QEBITMAP_FORMAT_YUV420P: ++ // we don't support planar overlays ++ default: ++ return -1; ++ } ++ ++ BRect bounds(0, 0, b->width - 1, b->height - 1); ++ bitmap = new BBitmap(bounds, flags, space); ++ if (bitmap->InitCheck() != B_OK) { ++ delete bitmap; ++ return -1; ++ } ++ b->priv_data = bitmap; ++ ++ return 0; ++} ++ ++static void haiku_bmp_free(__unused__ QEditScreen *s, QEBitmap *b) ++{ ++ BBitmap *bitmap = (BBitmap *)b->priv_data; ++ delete bitmap; ++} ++ ++extern QEDisplay haiku_dpy = { ++ "haiku", ++ haiku_probe, ++ haiku_init, ++ haiku_close, ++ haiku_flush, ++ haiku_is_user_input_pending, ++ haiku_fill_rectangle, ++ haiku_open_font, ++ haiku_close_font, ++ haiku_text_metrics, ++ haiku_draw_text, ++ haiku_set_clip, ++ NULL, /* no selection handling */ ++ NULL, /* no selection handling */ ++ NULL, /* dpy_invalidate */ ++ NULL, /* dpy_cursor_at */ ++ haiku_bmp_alloc, /* dpy_bmp_alloc */ ++ haiku_bmp_free, /* dpy_bmp_free */ ++ NULL, /* dpy_bmp_draw */ ++ NULL, /* dpy_bmp_lock */ ++ NULL, /* dpy_bmp_unlock */ ++ NULL, /* dpy_full_screen */ ++ NULL, /* next */ ++}; ++ ++static CmdOptionDef cmd_options[] = { ++ { "no-windows", "nw", NULL, CMD_OPT_BOOL, "force tty terminal usage", ++ { int_ptr: &force_tty }}, ++ { NULL, NULL, NULL, 0, NULL, { NULL }} ++}; ++ ++static int haiku_init(void) ++{ ++ QEmacsState *qs = &qe_state; ++ ++ /* override default res path, to find config file at native location */ ++ BPath path; ++ BString old(":"); ++ old << qs->res_path; ++ qs->res_path[0] = '\0'; ++ if (find_directory(B_USER_SETTINGS_DIRECTORY, &path) == B_OK) { ++ path.Append("qemacs"); ++ pstrcat(qs->res_path, sizeof(qs->res_path), path.Path()); ++ } ++ pstrcat(qs->res_path, sizeof(qs->res_path), old.String()); ++ ++ qe_register_cmd_line_options(cmd_options); ++ return qe_register_display(&haiku_dpy); ++} ++ ++qe_module_init(haiku_init); +--- qemacs-0.3.2dev-cvs//dev/null 2013-03-14 16:10:28.351668000 +0100 ++++ qemacs-0.3.2dev-cvs/contrib/haiku-pe2qe.sh 2013-03-14 19:17:29.552599552 +0100 +@@ -0,0 +1,85 @@ ++#!/bin/sh ++ ++pesettings=`finddir B_USER_SETTINGS_DIRECTORY`/pe/settings ++ ++fgmap=( ++"alt comment:" ++"alt error:" ++"alt keyword:" ++"alt number:" ++"alt operator:" ++"alt separator:" ++"altprocessor:" ++"attribute:" ++"char constant:html-entity" ++"comment:comment html-comment" ++"error:" ++"highlight:highlight" ++"invisibles:" ++"keyword:keyword preprocess" ++"low:window-border" ++"mark:status" ++"number:number" ++"operator:function" ++"preprocessor:" ++"selection:selection" ++"separator:" ++"string:string string-q html-string" ++"system identifier:type" ++"tag:tag" ++"tagstring:html-tag" ++"text:default mode-line minibuf" ++"user identifier:variable" ++) ++ ++bgmap=( ++"low:default" ++"selection:mode-line window-border region-hilite" ++) ++ ++map_pe_fg () { ++ for item in "${fgmap[@]}"; do ++ if [ "$1" = "${item%:*}" ]; then ++ echo "${item#*:}" ++ return ++ fi ++ done ++} ++ ++map_pe_bg () { ++ for item in "${bgmap[@]}"; do ++ if [ "$1" = "${item%:*}" ]; then ++ echo "${item#*:}" ++ return ++ fi ++ done ++} ++ ++out_style () { ++ echo "set_style(\"$1\", \"$2\", \"$3\")" ++} ++ ++echo "// map Pe settings to QEmacs" ++echo "// generated by $(basename "$0") on `date`" ++ ++while read line; do ++ token="${line%=*}" ++ value="${line#*=}" ++ case "$token" in ++ *color) ++ name="${token% color}" ++ qenames="$(map_pe_fg "$name")" ++ for qename in ${qenames}; do ++ #echo "color: $name -> $qename" >&2 ++ out_style "$qename" "color" "$value" ++ done ++ qenames="$(map_pe_bg "$name")" ++ for qename in ${qenames}; do ++ #echo "bgcolor: $name -> $qename" >&2 ++ out_style "$qename" "background-color" "$value" ++ done ++ ;; ++ *) ++ ;; ++ esac ++done < "$pesettings" diff --git a/app-editors/qemacs/patches/qemacs-0.3.3.patch b/app-editors/qemacs/patches/qemacs-0.3.3.patch new file mode 100644 index 000000000..c980856a5 --- /dev/null +++ b/app-editors/qemacs/patches/qemacs-0.3.3.patch @@ -0,0 +1,1393 @@ +diff -urN qemacs-0.3.3.org/cfb.c qemacs-0.3.3/cfb.c +--- qemacs-0.3.3.org/cfb.c 2013-02-03 13:14:08.057933824 +0100 ++++ qemacs-0.3.3/cfb.c 2013-03-08 00:25:33.013107200 +0100 +@@ -48,7 +48,7 @@ + static void cfb16_fill_rectangle(QEditScreen *s, + int x1, int y1, int w, int h, QEColor color) + { +- CFBContext *cfb = s->private; ++ CFBContext *cfb = s->priv_data; + unsigned char *dest, *d; + int y, n; + unsigned int col; +@@ -99,7 +99,7 @@ + static void cfb32_fill_rectangle(QEditScreen *s, + int x1, int y1, int w, int h, QEColor color) + { +- CFBContext *cfb = s->private; ++ CFBContext *cfb = s->priv_data; + unsigned char *dest, *d; + int y, n; + unsigned int col; +@@ -142,7 +142,7 @@ + int x1, int y1, int w, int h, QEColor color, + unsigned char *glyph, int glyph_wrap) + { +- CFBContext *cfb = s1->private; ++ CFBContext *cfb = s1->priv_data; + unsigned char *dest, *d, *s, *src; + int n; + unsigned int col; +@@ -186,7 +186,7 @@ + int x1, int y1, int w, int h, QEColor color, + unsigned char *glyph, int glyph_wrap) + { +- CFBContext *cfb = s1->private; ++ CFBContext *cfb = s1->priv_data; + unsigned char *dest, *d, *s, *src; + int n; + unsigned int col; +@@ -230,7 +230,7 @@ + int x_start, int y, const unsigned int *str, int len, + QEColor color) + { +- CFBContext *cfb = s->private; ++ CFBContext *cfb = s->priv_data; + GlyphCache *g; + unsigned char *glyph_ptr; + int i, x1, y1, x2, y2, wrap, x; +@@ -305,7 +305,7 @@ + int cfb_init(QEditScreen *s, + void *base, int wrap, int depth, const char *font_path) + { +- CFBContext *cfb = s->private; ++ CFBContext *cfb = s->priv_data; + + cfb->base = base; + cfb->wrap = wrap; +diff -urN qemacs-0.3.3.org/configure qemacs-0.3.3/configure +--- qemacs-0.3.3.org/configure 2013-02-03 13:14:08.001572864 +0100 ++++ qemacs-0.3.3/configure 2013-03-08 00:19:41.561250304 +0100 +@@ -41,8 +41,10 @@ + esac + gprof="no" + network="yes" ++haiku="no" + win32="no" + lshared="no" ++dllibs="-ldl" + extralibs="-lm" + simpleidct="yes" + bigendian="no" +@@ -78,6 +80,17 @@ + extralibs="-lpoll -lgnugetopt -lm" + make="gmake" + ;; ++Haiku) ++prefix="`finddir B_COMMON_DIRECTORY`" ++# no need for libm, but the network stuff ++extralibs="-lnetwork" ++# dlopen() is in libroot already ++dllibs="" ++# use Haiku GUI; avoid building for X11 even if there are headers around ++haiku="yes" ++x11="no" ++xv="no" ++;; + *) ;; + esac + +@@ -314,6 +327,7 @@ + echo "BUILD_SHARED=yes" >> config.mak + echo "PIC=-fPIC" >> config.mak + fi ++echo "DLLIBS=$dllibs" >> config.mak + echo "EXTRALIBS=$extralibs" >> config.mak + version=`head $source_path/VERSION` + echo "VERSION=$version" >>config.mak +@@ -324,6 +338,11 @@ + echo "CONFIG_NETWORK=yes" >> config.mak + fi + ++if test "$haiku" = "yes" ; then ++ echo "#define CONFIG_HAIKU 1" >> $TMPH ++ echo "CONFIG_HAIKU=yes" >> config.mak ++fi ++ + if test "$win32" = "yes" ; then + echo "#define CONFIG_WIN32 1" >> $TMPH + echo "CONFIG_WIN32=yes" >> config.mak +diff -urN qemacs-0.3.3.org/display.h qemacs-0.3.3/display.h +--- qemacs-0.3.3.org/display.h 2013-02-03 13:14:08.000524288 +0100 ++++ qemacs-0.3.3/display.h 2013-03-08 00:23:30.161218560 +0100 +@@ -32,7 +32,7 @@ + typedef struct QEFont { + int ascent; + int descent; +- void *private; ++ void *priv_data; + int system_font; /* TRUE if system font */ + /* cache data */ + int style; +@@ -127,7 +127,7 @@ + /* clip region handling */ + int clip_x1, clip_y1; + int clip_x2, clip_y2; +- void *private; ++ void *priv_data; + }; + + static inline void draw_text(QEditScreen *s, QEFont *font, +diff -urN qemacs-0.3.3.org/fbfrender.c qemacs-0.3.3/fbfrender.c +--- qemacs-0.3.3.org/fbfrender.c 2013-02-03 13:14:08.061079552 +0100 ++++ qemacs-0.3.3/fbfrender.c 2013-03-08 02:16:10.757334016 +0100 +@@ -124,7 +124,7 @@ + + GlyphCache *fbf_decode_glyph1(QEFont *font, int code) + { +- UniFontData *uf = font->private; ++ UniFontData *uf = font->priv_data; + int glyph_index, size, src_width, src_height; + GlyphCache *glyph_cache; + GlyphEntry *fbf_glyph_entry; +@@ -269,7 +269,7 @@ + } + } + } +- font->private = uf_found; ++ font->priv_data = uf_found; + font->ascent = uf_found->ascent; + font->descent = uf_found->descent; + return font; +diff -urN qemacs-0.3.3.org/haiku.cpp qemacs-0.3.3/haiku.cpp +--- qemacs-0.3.3.org/haiku.cpp 1970-01-01 01:00:00.000000000 +0100 ++++ qemacs-0.3.3/haiku.cpp 2013-03-08 16:13:59.829947904 +0100 +@@ -0,0 +1,864 @@ ++/* ++ * Haiku driver for QEmacs ++ * Copyright (c) 2013 François Revol. ++ * Copyright (c) 2002 Fabrice Bellard. ++ * ++ * This library is free software; you can redistribute it and/or ++ * modify it under the terms of the GNU Lesser General Public ++ * License as published by the Free Software Foundation; either ++ * version 2 of the License, or (at your option) any later version. ++ * ++ * This library is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ * Lesser General Public License for more details. ++ * ++ * You should have received a copy of the GNU Lesser General Public ++ * License along with this library; if not, write to the Free Software ++ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ++ */ ++extern "C" { ++//XXX:shouldn't be required anymore ++//#define private priv_data ++#include "qe.h" ++//#undef private ++} ++ ++#include ++#include ++#include ++#include ++#include ++ ++extern QEDisplay haiku_dpy; ++ ++static int force_tty = 0; ++ ++static int font_xsize; ++ ++class QEWindow; ++class QEView; ++ ++/* state of a single window */ ++typedef struct WindowState { ++ BWindow *w; ++ BView *v; ++ BFont font; ++ int events_rd; ++ int events_wr; ++} WindowState; ++ ++WindowState haiku_ctx; ++static thread_id bapp_thid; ++static int bapp_ref_count = 0; ++static int events_wr; ++ ++static void haiku_handle_event(void *opaque); ++ ++static status_t bmessage_input(QEWindow *win, QEView *view, BMessage *message) ++{ ++ if (!message) ++ return EINVAL; ++ /* push the message into the pipe */ ++ if (write(events_wr, &message, sizeof(BMessage *)) < 0) ++ return errno; ++ return B_OK; ++} ++ ++class QEWindow: public BWindow ++{ ++public: ++ QEWindow(BRect frame, const char *name, QEView *view) ++ :BWindow(frame, name, B_TITLED_WINDOW, 0) ++ ,fView(view) ++ {} ++ ++ virtual ~QEWindow() {} ++ ++//virtual void Show(); ++//virtual void Hide(); ++//virtual void Minimize(bool minimize); ++virtual bool QuitRequested(); ++virtual void DispatchMessage(BMessage *message, BHandler *handler); ++ ++private: ++ QEView *fView; ++}; ++ ++class QEView: public BView ++{ ++public: ++ QEView(BRect frame, const char *name); ++ virtual ~QEView(); ++ ++#if 0 ++virtual void MouseDown(BPoint where); ++virtual void MouseUp(BPoint where); ++virtual void MouseMoved(BPoint where, uint32 code, const BMessage *a_message); ++#endif ++virtual void KeyDown(const char *bytes, int32 numBytes); ++virtual void KeyUp(const char *bytes, int32 numBytes); ++virtual void Draw(BRect updateRect); ++#if 0 ++virtual void WindowActivated(bool state); ++virtual void FrameResized(float new_width, float new_height); ++virtual void MessageReceived(BMessage *message); ++#endif ++}; ++ ++ ++bool QEWindow::QuitRequested() ++{ ++ BMessage *message = new BMessage(B_QUIT_REQUESTED); ++ bmessage_input(this, NULL, message); ++ return false; ++} ++ ++void QEWindow::DispatchMessage(BMessage *message, BHandler *handler) ++{ ++ uint32 mods; ++ switch (message->what) { ++ case B_KEY_DOWN: ++ if ((message->FindInt32("modifiers", (int32 *)&mods) == B_OK) && ++ (mods & B_COMMAND_KEY)) { ++ /* BWindow swallows KEY_DOWN when ALT is down... ++ * so this hack is needed. ++ */ ++ fView->KeyDown(NULL, 0); ++ return; ++ } ++ break; ++ case B_UNMAPPED_KEY_DOWN: ++ case B_UNMAPPED_KEY_UP: ++ case B_KEY_UP: ++ //message->PrintToStream(); ++ break; ++ } ++ BWindow::DispatchMessage(message, handler); ++} ++ ++QEView::QEView(BRect frame, const char *name) ++ :BView(frame, name, B_FOLLOW_ALL_SIDES, B_WILL_DRAW|B_FRAME_EVENTS) ++{ ++ SetViewColor(0,255,0); ++} ++ ++QEView::~QEView() ++{ ++} ++ ++void QEView::KeyDown(const char *bytes, int32 numBytes) ++{ ++ BMessage *message = Window()->DetachCurrentMessage(); ++ //message->PrintToStream(); ++ bmessage_input(NULL, this, message); ++} ++ ++void QEView::KeyUp(const char *bytes, int32 numBytes) ++{ ++ uint32 mods; ++ BMessage *message = Window()->DetachCurrentMessage(); ++ //message->PrintToStream(); ++ bmessage_input(NULL, this, message); ++} ++ ++void QEView::Draw(BRect updateRect) ++{ ++ BMessage *message; ++ message = new BMessage(_UPDATE_); ++ message->AddRect("update_rect", updateRect); ++ bmessage_input(NULL, this, message); ++} ++ ++ ++ ++static int haiku_probe(void) ++{ ++ if (force_tty) ++ return 0; ++ return 1; ++} ++ ++static int32 bapp_quit_thread(void *arg) ++{ ++ be_app->Lock(); ++ be_app->Quit(); ++ return 0; ++} ++ ++ ++static int32 bapp_thread(void *arg) ++{ ++ be_app->Lock(); ++ be_app->Run(); ++ return 0; ++} ++ ++ ++ ++static void init_application(void) ++{ ++ bapp_ref_count++; ++ if (be_app) ++ return; /* done already! */ ++ new BApplication("application/x-vnd.Bellard-QEmacs"); ++ //new XEmacsApp; ++ bapp_thid = spawn_thread(bapp_thread, "BApplication(QEmacs)", B_NORMAL_PRIORITY, (void *)find_thread(NULL)); ++ if (bapp_thid < B_OK) ++ return; /* #### handle errors */ ++ if (resume_thread(bapp_thid) < B_OK) ++ return; ++ // This way we ensure we don't create BWindows before be_app is created ++ // (creating it in the thread doesn't ensure this) ++ be_app->Unlock(); ++} ++ ++static void uninit_application(void) ++{ ++ status_t err; ++ if (--bapp_ref_count) ++ return; ++ be_app->Lock(); ++ be_app->Quit(); ++ //XXX:HACK ++ be_app->Unlock(); ++ //be_app_messenger.SendMessage(B_QUIT_REQUESTED); ++ wait_for_thread(bapp_thid, &err); ++ //FIXME:leak or crash ++ //delete be_app; ++ be_app = NULL; ++} ++ ++static int haiku_init(QEditScreen *s, int w, int h) ++{ ++ int xsize, ysize, font_ysize; ++ WindowState *ctx; ++ ++ if (!be_app) ++ init_application(); ++ ++ memcpy(&s->dpy, &haiku_dpy, sizeof(QEDisplay)); ++ ++ ctx = (WindowState *)malloc(sizeof(WindowState)); ++ if (ctx == NULL) ++ return -1; ++ s->priv_data = ctx; ++ s->media = CSS_MEDIA_SCREEN; ++ ++ int event_pipe[2]; ++ if (pipe(event_pipe) < 0) ++ return -1; ++ fcntl(event_pipe[0], F_SETFD, FD_CLOEXEC); ++ fcntl(event_pipe[1], F_SETFD, FD_CLOEXEC); ++ ++ ctx->events_rd = event_pipe[0]; ++ ctx->events_wr = events_wr = event_pipe[1]; ++ ++ set_read_handler(event_pipe[0], haiku_handle_event, s); ++ ++ ++ ctx->font = BFont(be_fixed_font); ++ ++ font_height height; ++ ctx->font.GetHeight(&height); ++ ++ font_xsize = (int)ctx->font.StringWidth("n"); ++ font_ysize = (int)(height.ascent + height.descent + height.leading); ++ ++ if (w == 0) ++ w = 80; ++ if (h == 0) ++ h = 25; ++ xsize = w * font_xsize; ++ ysize = h * font_ysize; ++ ++ s->width = xsize; ++ s->height = ysize; ++ s->charset = &charset_utf8; ++ ++ s->clip_x1 = 0; ++ s->clip_y1 = 0; ++ s->clip_x2 = s->width; ++ s->clip_y2 = s->height; ++ ++ BRect frame(0, 0, s->width - 1, s->height - 1); ++ ++ QEView *v = new QEView(frame, "qemacs"); ++ ctx->v = v; ++ ++ frame.OffsetTo(200, 200); ++ ++ ctx->w = new QEWindow(frame, "qemacs", v); ++ ctx->w->AddChild(ctx->v); ++ ctx->v->MakeFocus(); ++ ctx->v->SetViewColor(B_TRANSPARENT_COLOR); ++ ctx->v->SetDrawingMode(B_OP_OVER); ++ ++ ctx->w->Show(); ++ ++ return 0; ++} ++ ++static void haiku_close(QEditScreen *s) ++{ ++ WindowState *ctx = (WindowState *)s->priv_data; ++ ctx->w->Lock(); ++ ctx->w->Quit(); ++ free(s->priv_data); ++} ++ ++static void haiku_flush(QEditScreen *s) ++{ ++} ++ ++static int haiku_is_user_input_pending(QEditScreen *s) ++{ ++ /* XXX: do it */ ++ return 0; ++} ++ ++#if 0 ++static void push_event(QEEvent *ev) ++{ ++ QEEventQ *e; ++ ++ e = malloc(sizeof(QEEventQ)); ++ if (!e) ++ return; ++ e->ev = *ev; ++ e->next = NULL; ++ if (!last_event) ++ first_event = e; ++ else ++ last_event->next = e; ++ last_event = e; ++} ++ ++static void push_key(int key) ++{ ++ QEEvent ev; ++ ev.type = QE_KEY_EVENT; ++ ev.key_event.key = key; ++ push_event(&ev); ++} ++ ++static int ignore_wchar_msg = 0; ++ ++LRESULT CALLBACK qe_wnd_proc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam) ++{ ++ // printf("msg=%d\n", msg); ++ switch (msg) { ++ case WM_CREATE: ++ /* NOTE: must store them here to avoid problems in main */ ++ haiku_ctx.w = hWnd; ++ return 0; ++ ++ /* key handling */ ++ case WM_CHAR: ++ if (!ignore_wchar_msg) { ++ push_key(wParam); ++ } else { ++ return DefWindowProc(hWnd, msg, wParam, lParam); ++ } ++ break; ++ case WM_SYSCHAR: ++ if (!ignore_wchar_msg) { ++ int key; ++ key = wParam; ++ if (key >= ' ' && key <= '~') { ++ key = KEY_META(' ') + key - ' '; ++ push_key(key); ++ break; ++ } ++ } ++ return DefWindowProc(hWnd, msg, wParam, lParam); ++ case WM_SYSKEYDOWN: ++ case WM_KEYDOWN: ++ { ++ unsigned int scan; ++ int ctrl, shift, alt, key; ++ ++ ctrl = (GetKeyState(VK_CONTROL) & 0x8000); ++ shift = (GetKeyState(VK_SHIFT) & 0x8000); ++ alt = (GetKeyState(VK_MENU) & 0x8000); ++ ++ ignore_wchar_msg = 0; ++ ++ scan = (unsigned int) ((lParam >> 16) & 0x1FF); ++ switch(scan) { ++ case 0x00E: ++ ignore_wchar_msg = 1; ++ push_key(KEY_BACKSPACE); ++ break; ++ case 0x039: /* space */ ++ ignore_wchar_msg = 1; ++ if (!ctrl) ++ push_key(KEY_SPC); ++ else ++ push_key(KEY_CTRL('@')); ++ break; ++ case 0x147: /* home */ ++ push_key(KEY_HOME); ++ break; ++ case 0x148: /* UP */ ++ push_key(KEY_UP); ++ break; ++ case 0x149: /* PGUP */ ++ push_key(KEY_PAGEUP); ++ break; ++ case 0x14B: /* LEFT */ ++ push_key(KEY_LEFT); ++ break; ++ case 0x14D: /* RIGHT */ ++ push_key(KEY_RIGHT); ++ break; ++ case 0x14F: /* END */ ++ push_key(KEY_END); ++ break; ++ case 0x150: /* DOWN */ ++ push_key(KEY_DOWN); ++ break; ++ case 0x151: /* PGDN */ ++ push_key(KEY_PAGEDOWN); ++ break; ++ case 0x153: /* DEL */ ++ push_key(KEY_DELETE); ++ break; ++ case 0x152: /* INSERT */ ++ push_key(KEY_INSERT); ++ break; ++ case 0x3b: /* F1 */ ++ case 0x3c: ++ case 0x3d: ++ case 0x3e: ++ case 0x3f: ++ case 0x40: ++ case 0x41: ++ case 0x42: ++ case 0x43: ++ case 0x44: ++ case 0x57: ++ case 0x58: /* F12 */ ++ key = scan - 0x3b; ++ if (key > 9) ++ key -= 0x12; ++ key += KEY_F1; ++ /* we leave Alt-F4 to close the window */ ++ if (alt && key == KEY_F4) ++ return DefWindowProc(hWnd, msg, wParam, lParam); ++ push_key(key); ++ break; ++ ++ default: ++ return DefWindowProc(hWnd, msg, wParam, lParam); ++ } ++ } ++ break; ++ ++ case WM_KEYUP: ++ ignore_wchar_msg = 0; ++ break; ++ ++ case WM_SYSKEYUP: ++ ignore_wchar_msg = 0; ++ return DefWindowProc(hWnd, msg, wParam, lParam); ++ ++ case WM_SIZE: ++ if (wParam != SIZE_MINIMIZED) { ++ QEmacsState *qs = &qe_state; ++ QEEvent ev; ++ ++ qs->screen->width = LOWORD(lParam); ++ qs->screen->height = HIWORD(lParam); ++ ev.expose_event.type = QE_EXPOSE_EVENT; ++ push_event(&ev); ++ } ++ break; ++ case WM_PAINT: ++ { ++ PAINTSTRUCT ps; ++ HDC saved_hdc; ++ BeginPaint(haiku_ctx.w, &ps); ++ saved_hdc = haiku_ctx.hdc; ++ haiku_ctx.hdc = ps.hdc; ++ SelectObject(haiku_ctx.hdc, haiku_ctx.font); ++ do_refresh(NULL); ++ ++ EndPaint(haiku_ctx.w, &ps); ++ haiku_ctx.hdc = saved_hdc; ++ } ++ break; ++ ++ case WM_SETFOCUS: ++ case WM_KILLFOCUS: ++ break; ++ ++ default: ++ return DefWindowProc(hWnd, msg, wParam, lParam); ++ } ++ return 0; ++} ++ ++static int get_unicode_key(QEditScreen *s, QEPollData *pd, QEEvent *ev) ++{ ++ MSG msg; ++ QEEventQ *e; ++ ++ for(;;) { ++ /* check if events queued */ ++ if (first_event != NULL) { ++ e = first_event; ++ *ev = e->ev; ++ first_event = e->next; ++ if (!first_event) ++ last_event = NULL; ++ free(e); ++ break; ++ } ++ ++ /* check if message queued */ ++ if (GetMessage(&msg, NULL, 0, 0)) { ++ TranslateMessage(&msg); ++ DispatchMessage(&msg); ++ } ++ } ++ return 1; ++} ++#endif ++ ++/* called when an BMessage is forwarded. dispatch events to qe_handle_event() */ ++static void haiku_handle_event(void *opaque) ++{ ++ QEditScreen *s = (QEditScreen *)opaque; ++ WindowState *ctx = (WindowState *)s->priv_data; ++ unsigned char buf[16]; ++ bigtime_t timestamp_ms; ++ BMessage *event; ++ //fprintf(stderr, "%s()\n", __FUNCTION__); ++/* ++ KeySym keysym; ++*/ ++ int shift, ctrl, meta, len, key = 0; ++ QEEvent ev1, *ev = &ev1; ++ ++ if (read(ctx->events_rd, &event, sizeof(BMessage *)) < sizeof(BMessage *)) ++ return; ++ //event->PrintToStream(); ++ ++ switch(event->what) { ++ case B_QUIT_REQUESTED: ++ ++ // cancel pending operation ++ ev->key_event.type = QE_KEY_EVENT; ++ ev->key_event.key = KEY_CTRL('g'); ++ qe_handle_event(ev); ++ ++ // simulate C-x C-c ++ ev->key_event.type = QE_KEY_EVENT; ++ ev->key_event.key = KEY_CTRL('x'); ++ qe_handle_event(ev); ++ ev->key_event.type = QE_KEY_EVENT; ++ ev->key_event.key = KEY_CTRL('c'); ++ qe_handle_event(ev); ++ break; ++ ++ case _UPDATE_: ++ // TODO: flush queued ++ ev->expose_event.type = QE_EXPOSE_EVENT; ++ qe_handle_event(ev); ++ break; ++ ++ case B_KEY_UP: ++ break; ++ ++ case B_KEY_DOWN: ++ { ++ unsigned int mods = 0; ++ uint32 state; ++ //event->PrintToStream(); ++ uint32 scancode; ++ uint32 raw_char; ++ const char *bytes; ++ char buff[6]; ++ int numbytes = 0; ++ int i; ++ ++ if (event->FindInt64("when", ×tamp_ms) < B_OK) ++ timestamp_ms = 0LL; ++ if (event->FindInt32("modifiers", (int32 *)&state) < B_OK) ++ state = modifiers(); ++ if (event->FindInt32("key", (int32 *)&scancode) < B_OK) ++ scancode = 0; ++ if (event->FindInt32("raw_char", (int32 *)&raw_char) < B_OK) ++ raw_char = 0; ++ ++ /* check for byte[] first, ++ because C-space gives bytes="" (and byte[0] = '\0') */ ++ for (i = 0; i < 5; i++) { ++ buff[i] = '\0'; ++ if (event->FindInt8("byte", i, (int8 *)&buff[i]) < B_OK) ++ break; ++ } ++ ++ if (i) { ++ bytes = buff; ++ numbytes = i; ++ } else if (event->FindString("bytes", &bytes) < B_OK) ++ bytes = ""; ++ ++ if (!numbytes) ++ numbytes = strlen(bytes); ++ ++ shift = (state & B_SHIFT_KEY); ++ ctrl = (state & B_CONTROL_KEY); ++ meta = (state & (B_LEFT_OPTION_KEY | B_COMMAND_KEY)); ++ ++ //fprintf(stderr, "%cshift %cctrl %cmeta numbytes %d \n", shift ? ' ' : '!', ctrl ? ' ' : '!', meta ? ' ' : '!', numbytes); ++ ++ char byte = 0; ++ if (numbytes == 1) { ++ byte = bytes[0]; ++ if (state & B_CONTROL_KEY) ++ byte = (char)raw_char; ++ switch (byte) { ++ case B_BACKSPACE: ++ key = KEY_BACKSPACE; ++ if (meta) ++ key = KEY_META(KEY_BACKSPACE); ++ break; ++ case B_TAB: ++ key = KEY_TAB; ++ break; ++ case B_ENTER: ++ key = KEY_RET; ++ break; ++ case B_ESCAPE: ++ key = KEY_ESC; ++ break; ++ case B_SPACE: ++ key = KEY_SPC; ++ break; ++ case B_DELETE: ++ key = KEY_DELETE; ++ break; ++ case B_INSERT: ++ key = KEY_INSERT; ++ break; ++ case B_HOME: ++ key = ctrl ? KEY_CTRL_HOME : KEY_HOME; ++ break; ++ case B_END: ++ key = ctrl ? KEY_CTRL_END : KEY_END; ++ break; ++ case B_PAGE_UP: ++ key = KEY_PAGEUP; ++ break; ++ case B_PAGE_DOWN: ++ key = KEY_PAGEDOWN; ++ break; ++ case B_LEFT_ARROW: ++ key = ctrl ? KEY_CTRL_LEFT : KEY_LEFT; ++ break; ++ case B_RIGHT_ARROW: ++ key = ctrl ? KEY_CTRL_RIGHT : KEY_RIGHT; ++ break; ++ case B_UP_ARROW: ++ key = KEY_UP; ++ break; ++ case B_DOWN_ARROW: ++ key = KEY_DOWN; ++ break; ++ case B_FUNCTION_KEY: ++ switch (scancode) { ++ case B_F1_KEY: ++ case B_F2_KEY: ++ case B_F3_KEY: ++ case B_F4_KEY: ++ case B_F5_KEY: ++ case B_F6_KEY: ++ case B_F7_KEY: ++ case B_F8_KEY: ++ case B_F9_KEY: ++ case B_F10_KEY: ++ case B_F11_KEY: ++ case B_F12_KEY: ++ key = KEY_F1 + scancode - B_F1_KEY; ++ break; ++ case B_PRINT_KEY: ++ case B_SCROLL_KEY: ++ case B_PAUSE_KEY: ++ default: ++ break; ++ } ++ break; ++ case 0: ++ break; ++ default: ++ if (byte >= ' ' && byte <= '~') ++ if (meta) ++ key = KEY_META(' ') + byte - ' '; ++ else if (ctrl) ++ key = KEY_CTRL(byte); ++ else ++ key = byte; ++ ++ } ++ } else { ++ const char *p = bytes; ++ key = utf8_decode(&p); ++ } ++ ++ got_key: ++ if (key) { ++ ev->key_event.type = QE_KEY_EVENT; ++ ev->key_event.key = key; ++ qe_handle_event(ev); ++ } ++ } ++ break; ++ } ++ ++ delete event; ++} ++ ++static void haiku_fill_rectangle(QEditScreen *s, ++ int x1, int y1, int w, int h, QEColor color) ++{ ++ WindowState *ctx = (WindowState *)s->priv_data; ++ //fprintf(stderr, "%s()\n", __FUNCTION__); ++ ++ /* XXX: suppress XOR mode */ ++ if (color == QECOLOR_XOR) ++ color = QERGB(0xff, 0xff, 0xff); ++ ++ BRect r(x1, y1, x1 + w - 1, y1 + h - 1); ++ rgb_color c = {(color >> 16) & 0xff, (color >> 8) & 0xff, color & 0xff, ++ 0xff}; ++ ++ ctx->v->LockLooper(); ++ ++ ctx->v->SetHighColor(c); ++ ctx->v->FillRect(r); ++ ++ ctx->v->UnlockLooper(); ++} ++ ++static QEFont *haiku_open_font(QEditScreen *s, int style, int size) ++{ ++ WindowState *ctx = (WindowState *)s->priv_data; ++ //fprintf(stderr, "%s()\n", __FUNCTION__); ++ QEFont *font; ++ ++ font = (QEFont *)malloc(sizeof(QEFont)); ++ if (!font) ++ return NULL; ++ ++ // TODO: use style / size ++ BFont *f = new BFont(ctx->font); ++ ++ font_height height; ++ f->GetHeight(&height); ++ font->ascent = (int)height.ascent; ++ font->descent = (int)(height.descent + height.leading); ++ font->priv_data = f; ++ return font; ++} ++ ++static void haiku_close_font(QEditScreen *s, QEFont *font) ++{ ++ BFont *f = (BFont *)font->priv_data; ++ delete f; ++ free(font); ++} ++ ++static void haiku_text_metrics(QEditScreen *s, QEFont *font, ++ QECharMetrics *metrics, ++ const unsigned int *str, int len) ++{ ++ //TODO: use BFont::GetEscapements() or StringWidth() ++ int i, x; ++ metrics->font_ascent = font->ascent; ++ metrics->font_descent = font->descent; ++ x = 0; ++ for(i=0;iwidth = x; ++} ++ ++static void haiku_draw_text(QEditScreen *s, QEFont *font, ++ int x1, int y, const unsigned int *str, int len, ++ QEColor color) ++{ ++ WindowState *ctx = (WindowState *)s->priv_data; ++ BFont *f = (BFont *)(font->priv_data); ++ int i; ++ //fprintf(stderr, "%s()\n", __FUNCTION__); ++ ++ /* XXX: suppress XOR mode */ ++ if (color == QECOLOR_XOR) ++ color = QERGB(0xff, 0xff, 0xff); ++ ++ rgb_color c = {(color >> 16) & 0xff, (color >> 8) & 0xff, color & 0xff, ++ 0xff}; ++ ++ ctx->v->LockLooper(); ++ ++ ctx->v->SetHighColor(c); ++ ctx->v->SetLowColor(B_TRANSPARENT_COLOR); ++ ctx->v->SetFont(f); ++ ctx->v->MovePenTo(x1, y - 1); ++ ++ char buf[10]; ++ unsigned int cc; ++ ++ BString text; ++ for(i=0;iv->DrawString(buf); ++ } ++ ctx->v->DrawString(text.String()); ++ ++ ctx->v->UnlockLooper(); ++ ++ //TextOutW(haiku_ctx.hdc, x1, y - font->ascent, buf, len); ++} ++ ++static void haiku_set_clip(QEditScreen *s, ++ int x, int y, int w, int h) ++{ ++ /* nothing to do */ ++} ++ ++extern QEDisplay haiku_dpy = { ++ "haiku", ++ haiku_probe, ++ haiku_init, ++ haiku_close, ++ NULL, ++ haiku_flush, ++ haiku_is_user_input_pending, ++ haiku_fill_rectangle, ++ haiku_open_font, ++ haiku_close_font, ++ haiku_text_metrics, ++ haiku_draw_text, ++ haiku_set_clip, ++ NULL, /* no selection handling */ ++ NULL, /* no selection handling */ ++}; ++ ++static CmdOptionDef cmd_options[] = { ++ { "nw", NULL, CMD_OPT_BOOL, "force tty terminal usage", ++ {int_ptr: &force_tty} }, ++ { NULL }, ++}; ++ ++int haiku_init(void) ++{ ++ qe_register_cmd_line_options(cmd_options); ++ return qe_register_display(&haiku_dpy); ++} ++ ++qe_module_init(haiku_init); +diff -urN qemacs-0.3.3.org/html2png.c qemacs-0.3.3/html2png.c +--- qemacs-0.3.3.org/html2png.c 2013-02-03 13:14:08.063700992 +0100 ++++ qemacs-0.3.3/html2png.c 2013-03-08 00:28:58.506462208 +0100 +@@ -101,7 +101,7 @@ + /* realloc ppm bitmap */ + int ppm_resize(QEditScreen *s, int w, int h) + { +- CFBContext *cfb = s->private; ++ CFBContext *cfb = s->priv_data; + unsigned char *data; + + /* alloc bitmap */ +@@ -131,7 +131,7 @@ + if (!cfb) + return -1; + +- s->private = cfb; ++ s->priv_data = cfb; + s->media = CSS_MEDIA_SCREEN; + + if (cfb_init(s, NULL, w * sizeof(int), 32, ".") < 0) +@@ -147,7 +147,7 @@ + + static void ppm_close(QEditScreen *s) + { +- CFBContext *cfb = s->private; ++ CFBContext *cfb = s->priv_data; + + free(cfb->base); + free(cfb); +@@ -155,7 +155,7 @@ + + int ppm_save(QEditScreen *s, const char *filename) + { +- CFBContext *cfb = s->private; ++ CFBContext *cfb = s->priv_data; + int w, h, x, y; + unsigned int r, g, b, v; + unsigned int *data; +@@ -190,7 +190,7 @@ + + int png_save(QEditScreen *s, const char *filename) + { +- CFBContext *cfb = s->private; ++ CFBContext *cfb = s->priv_data; + png_struct * volatile png_ptr = NULL; + png_info * volatile info_ptr = NULL; + png_byte *row_ptr, *row_pointers[1], *row = NULL; +diff -urN qemacs-0.3.3.org/Makefile qemacs-0.3.3/Makefile +--- qemacs-0.3.3.org/Makefile 2013-02-03 13:14:08.000524288 +0100 ++++ qemacs-0.3.3/Makefile 2013-03-08 02:17:54.859570176 +0100 +@@ -45,11 +45,11 @@ + endif + + ifdef CONFIG_DLL +-LIBS+=-ldl ++LIBS+=$(DLLIBS) + # export some qemacs symbols + LDFLAGS+=-Wl,-E + endif +-LIBS+=-lm ++LIBS+=$(EXTRALIBS) + + TARGETS+=qe$(EXE) qe-doc.html + +@@ -64,6 +64,11 @@ + OBJS+= shell.o dired.o + endif + ++ifdef CONFIG_HAIKU ++OBJS+= haiku.o ++LIBS+= -lbe ++endif ++ + ifdef CONFIG_WIN32 + OBJS+= win32.o + LIBS+= -lgdi32 +@@ -155,15 +160,17 @@ + rm -f config.h config.mak + + install: qe qe.1 kmaps ligatures html2png +- install -m 755 qe $(prefix)/bin/qemacs +- ln -sf qemacs $(prefix)/bin/qe ++ mkdir -p $(DESTDIR)$(prefix)/bin ++ install -m 755 qe $(DESTDIR)$(prefix)/bin/qemacs ++ ln -sf qemacs $(DESTDIR)$(prefix)/bin/qe + ifdef CONFIG_FFMPEG +- ln -sf qemacs $(prefix)/bin/ffplay ++ ln -sf qemacs $(DESTDIR)$(prefix)/bin/ffplay + endif +- mkdir -p $(prefix)/share/qe +- install kmaps ligatures $(prefix)/share/qe +- install qe.1 $(prefix)/man/man1 +- install -m 755 -s html2png $(prefix)/bin ++ mkdir -p $(DESTDIR)$(prefix)/share/qe ++ install kmaps ligatures $(DESTDIR)$(prefix)/share/qe ++ mkdir -p $(DESTDIR)$(prefix)/man/man1 ++ install qe.1 $(DESTDIR)$(prefix)/man/man1 ++ install -m 755 -s html2png $(DESTDIR)$(prefix)/bin + + TAGS: force + etags *.[ch] +@@ -244,7 +251,7 @@ + Russian.kmap SGML.kmap TeX.kmap Troff.kmap VNtelex.kmap \ + Vietnamese.kmap XKB_iso8859-4.kmap + # Hangul.kmap Hangul2.kmap Hangul3.kmap Unicode2.kmap +-KMAPS_DIR=$(prefix)/share/yudit/data ++KMAPS_DIR=$(DESTDIR)$(prefix)/share/yudit/data + KMAPS:=$(addprefix $(KMAPS_DIR)/, $(KMAPS)) + + kmaptoqe: kmaptoqe.c +diff -urN qemacs-0.3.3.org/tty.c qemacs-0.3.3/tty.c +--- qemacs-0.3.3.org/tty.c 2013-02-03 13:14:08.002621440 +0100 ++++ qemacs-0.3.3/tty.c 2013-03-09 00:45:31.432275456 +0100 +@@ -150,7 +150,7 @@ + + tty_screen = s; + ts = &tty_state; +- s->private = ts; ++ s->priv_data = ts; + s->media = CSS_MEDIA_TTY; + + tcgetattr (0, &tty); +@@ -214,7 +214,7 @@ + static void term_exit(void) + { + QEditScreen *s = tty_screen; +- TTYState *ts = s->private; ++ TTYState *ts = s->priv_data; + + tcsetattr (0, TCSANOW, &ts->oldtty); + } +@@ -222,7 +222,7 @@ + static void tty_resize(int sig) + { + QEditScreen *s = tty_screen; +- TTYState *ts = s->private; ++ TTYState *ts = s->priv_data; + int size; + + if (sig == -1) { +@@ -254,7 +254,7 @@ + + static void term_cursor_at(QEditScreen *s, int x1, int y1, int w, int h) + { +- TTYState *ts = s->private; ++ TTYState *ts = s->priv_data; + ts->cursor_x = x1; + ts->cursor_y = y1; + } +@@ -277,7 +277,7 @@ + static void tty_read_handler(void *opaque) + { + QEditScreen *s = opaque; +- TTYState *ts = s->private; ++ TTYState *ts = s->priv_data; + int ch; + QEEvent ev1, *ev = &ev1; + +@@ -312,6 +312,7 @@ + ts->input_param = 0; + } else if (ch == 'O') { + ts->input_state = IS_ESC2; ++ ts->input_param = 0; + } else { + ch = KEY_META(ch); + ts->input_state = IS_NORM; +@@ -347,13 +348,26 @@ + break; + case IS_ESC2: + /* xterm fn */ +- ts->input_state = IS_NORM; +- if (ch >= 'P' && ch <= 'S') { +- ch = KEY_F1 + ch - 'P'; +- the_end: +- ev->key_event.type = QE_KEY_EVENT; +- ev->key_event.key = ch; +- qe_handle_event(ev); ++ if (!isdigit(ch)) { ++ ts->input_state = IS_NORM; ++ if (ts->input_param == 5 && ch >= 'A' && ch <= 'D') { ++ /* CTRL-arrows variant */ ++ ch += 'a' - 'A'; ++ ch = KEY_ESC1(ch); ++ goto the_end; ++ } else if (ch >= 'A' && ch <= 'D') { ++ /* arrows variant */ ++ ch = KEY_ESC1(ch); ++ goto the_end; ++ } else if (ch >= 'P' && ch <= 'S') { ++ ch = KEY_F1 + ch - 'P'; ++ the_end: ++ ev->key_event.type = QE_KEY_EVENT; ++ ev->key_event.key = ch; ++ qe_handle_event(ev); ++ } ++ } else { ++ ts->input_param = ts->input_param * 10 + ch - '0'; + } + break; + } +@@ -399,7 +413,7 @@ + static void term_fill_rectangle(QEditScreen *s, + int x1, int y1, int w, int h, QEColor color) + { +- TTYState *ts = s->private; ++ TTYState *ts = s->priv_data; + int x2 = x1 + w; + int y2 = y1 + h; + int x, y; +@@ -443,7 +457,7 @@ + return NULL; + font->ascent = 0; + font->descent = 1; +- font->private = NULL; ++ font->priv_data = NULL; + return font; + } + +@@ -493,7 +507,7 @@ + int x, int y, const unsigned int *str, int len, + QEColor color) + { +- TTYState *ts = s->private; ++ TTYState *ts = s->priv_data; + TTYChar *ptr; + int fgcolor, w, n; + unsigned int cc; +@@ -560,7 +574,7 @@ + + static void term_flush(QEditScreen *s) + { +- TTYState *ts = s->private; ++ TTYState *ts = s->priv_data; + TTYChar *ptr, *optr; + int x, y, bgcolor, fgcolor; + char buf[10]; +diff -urN qemacs-0.3.3.org/win32.c qemacs-0.3.3/win32.c +--- qemacs-0.3.3.org/win32.c 2013-02-03 13:14:08.000000000 +0100 ++++ qemacs-0.3.3/win32.c 2013-03-08 00:24:37.173277184 +0100 +@@ -139,7 +139,7 @@ + + memcpy(&s->dpy, &win32_dpy, sizeof(QEDisplay)); + +- s->private = NULL; ++ s->priv_data = NULL; + s->media = CSS_MEDIA_SCREEN; + + win_ctx.font = CreateFont(-12, 0, 0, 0, 0 , 0, 0, 0, 0, 0, 0, 0, +@@ -434,7 +434,7 @@ + GetTextMetrics(win_ctx.hdc, &tm); + font->ascent = tm.tmAscent; + font->descent = tm.tmDescent; +- font->private = NULL; ++ font->priv_data = NULL; + return font; + } + +diff -urN qemacs-0.3.3.org/x11.c qemacs-0.3.3/x11.c +--- qemacs-0.3.3.org/x11.c 2013-02-03 13:14:08.060817408 +0100 ++++ qemacs-0.3.3/x11.c 2013-03-08 00:24:24.825491456 +0100 +@@ -191,7 +191,7 @@ + + memcpy(&s->dpy, &x11_dpy, sizeof(QEDisplay)); + +- s->private = NULL; ++ s->priv_data = NULL; + s->media = CSS_MEDIA_SCREEN; + + display = XOpenDisplay(display_str); +@@ -552,13 +552,13 @@ + 0); + font->ascent = renderFont->ascent; + font->descent = renderFont->descent; +- font->private = renderFont; ++ font->priv_data = renderFont; + return font; + } + + static void term_close_font(QEditScreen *s, QEFont *font) + { +- XftFont *renderFont = font->private; ++ XftFont *renderFont = font->priv_data; + + XftFontClose(display, renderFont); + free(font); +@@ -566,7 +566,7 @@ + + static int term_glyph_width(QEditScreen *s, QEFont *font, unsigned int cc) + { +- XftFont *renderFont = font->private; ++ XftFont *renderFont = font->priv_data; + XGlyphInfo gi; + + XftTextExtents32 (display, renderFont, &cc, 1, &gi); +@@ -577,7 +577,7 @@ + int x, int y, const unsigned int *str, int len, + QEColor color) + { +- XftFont *renderFont = font->private; ++ XftFont *renderFont = font->priv_data; + XftColor col; + int r, g, b, a; + +@@ -749,7 +749,7 @@ + + font->ascent = xfont->ascent; + font->descent = xfont->descent; +- font->private = xfont; ++ font->priv_data = xfont; + return font; + fail: + XFreeFontNames(list); +@@ -759,7 +759,7 @@ + + static void term_close_font(QEditScreen *s, QEFont *font) + { +- XFontStruct *xfont = font->private; ++ XFontStruct *xfont = font->priv_data; + + XFreeFont(display, xfont); + free(font); +@@ -769,7 +769,7 @@ + associated. */ + static XCharStruct *get_char_struct(QEFont *font, int cc) + { +- XFontStruct *xfont = font->private; ++ XFontStruct *xfont = font->priv_data; + int b1, b2; + XCharStruct *cs; + +@@ -811,7 +811,7 @@ + static XCharStruct *handle_fallback(QEditScreen *s, QEFont **out_font, + QEFont *font, unsigned int cc) + { +- XFontStruct *xfont = font->private; ++ XFontStruct *xfont = font->priv_data; + XCharStruct *cs; + int fallback_count; + QEFont *font1; +@@ -833,7 +833,7 @@ + } + + /* really no glyph : use default char in current font */ +- xfont = font->private; ++ xfont = font->priv_data; + cs = get_char_struct(font, xfont->default_char); + *out_font = font; + return cs; +@@ -904,13 +904,13 @@ + cs = handle_fallback(s, &font1, font, cc); + if (!cs) { + /* still no char: use default glyph */ +- xfont = font->private; ++ xfont = font->priv_data; + cc = xfont->default_char; + } + } + /* flush previous chars if font change needed */ + if (font1 != last_font && q > x11_str) { +- xfont = last_font->private; ++ xfont = last_font->priv_data; + l = q - x11_str; + XSetFont(display, gc, xfont->fid); + XDrawString16(display, dbuffer, gc, +@@ -927,7 +927,7 @@ + } + if (q > x11_str) { + /* flush remaining chars (more common case) */ +- xfont = last_font->private; ++ xfont = last_font->priv_data; + l = q - x11_str; + XSetFont(display, gc, xfont->fid); + XDrawString16(display, dbuffer, gc, diff --git a/app-editors/qemacs/qemacs-0.3.2dev-cvs.bep b/app-editors/qemacs/qemacs-0.3.2dev-cvs.bep new file mode 100644 index 000000000..61a3b25fb --- /dev/null +++ b/app-editors/qemacs/qemacs-0.3.2dev-cvs.bep @@ -0,0 +1,20 @@ +DESCRIPTION="QEmacs (for Quick Emacs), a very small but powerful UNIX editor" +HOMEPAGE="http://bellard.org/qemacs/" +SRC_URI="cvs://:pserver:anonymous@cvs.savannah.nongnu.org:/sources/qemacs/qemacs" +#CHECKSUM_MD5="" +REVISION="1" +STATUS_HAIKU="broken" +DEPEND="app-text/texi2html >= 1.82" +BUILD { + cd qemacs-0.3.2dev-cvs + ./configure + make +} + +INSTALL { + cd qemacs-0.3.2dev-cvs + make install +} + +LICENSE="GNU LGPL v2.1" +COPYRIGHT="2000-2003 Fabrice Bellard" diff --git a/app-editors/qemacs/qemacs-0.3.3.bep b/app-editors/qemacs/qemacs-0.3.3.bep new file mode 100644 index 000000000..6f08ac38a --- /dev/null +++ b/app-editors/qemacs/qemacs-0.3.3.bep @@ -0,0 +1,20 @@ +DESCRIPTION="QEmacs (for Quick Emacs), a very small but powerful UNIX editor" +HOMEPAGE="http://bellard.org/qemacs/" +SRC_URI="http://bellard.org/qemacs/qemacs-0.3.3.tar.gz" +CHECKSUM_MD5="42fe8cc431bb9cbbeb898a2c18335990" +REVISION="1" +STATUS_HAIKU="broken" +DEPEND="app-text/texi2html >= 1.82" +BUILD { + cd qemacs-0.3.3 + ./configure + make +} + +INSTALL { + cd qemacs-0.3.3 + make install +} + +LICENSE="GNU LGPL v2.1" +COPYRIGHT="2000-2003 Fabrice Bellard" diff --git a/app-editors/se/se-3.0.bep b/app-editors/se/se-3.0.bep new file mode 100644 index 000000000..fbb4eef2a --- /dev/null +++ b/app-editors/se/se-3.0.bep @@ -0,0 +1,24 @@ +DESCRIPTION="Screen oriented version of ed" +HOMEPAGE="http://se-editor.org/" +SRC_URI="http://se-editor.org/dist/se-3.0.tar.gz" +CHECKSUM_MD5="b080a5377b95d989e14ad01b0d25e33a" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="sys-libs/ncurses >= 5.6" + +BUILD { + cd se-3.0 + COMMON_DOCS=`finddir B_COMMON_DOCUMENTATION_DIRECTORY` + ./configure --prefix=`finddir B_COMMON_DIRECTORY` \ + --datadir=`finddir B_COMMON_DATA_DIRECTORY` \ + --infodir=$COMMON_DOCS/info \ + --mandir=$COMMON_DOCS/man + make +} + +INSTALL { + cd se-3.0 + make install +} + +LICENSE="Public Domain" diff --git a/app-editors/vim/patches/vim-7.3.patch b/app-editors/vim/patches/vim-7.3.patch index 97888c733..09e8c002c 100644 --- a/app-editors/vim/patches/vim-7.3.patch +++ b/app-editors/vim/patches/vim-7.3.patch @@ -12,50 +12,509 @@ diff -Naur vim73/Makefile vim73.haiku/Makefile +# - Go to "src" directory and use "make autoconf" to regenerate configure script. +# - Default "make [install]" will produce GUI version. +# - To prepare Haiku package use following command: -+# make haiku_package GCCVER_SUFFIX="-gcc2" ++# make haiku_package +# Both gui-less and full versions of vim will be packaged. VIMVER = vim-$(MAJOR).$(MINOR) VERSION = $(MAJOR)$(MINOR) -@@ -236,6 +245,7 @@ - COMMENT_OS2 = comment/$(VERSION)-bin-os2 - COMMENT_HTML = comment/$(VERSION)-html - COMMENT_FARSI = comment/$(VERSION)-farsi -+COMMENT_HAIKU = comment/$(VERSION)-haiku - - dist/$(COMMENT_RT): dist/comment - echo "Vim - Vi IMproved - v$(VDOT) runtime files for MS-DOS and MS-Windows" > dist/$(COMMENT_RT) -@@ -270,6 +280,9 @@ - dist/$(COMMENT_FARSI): dist/comment - echo "Vim - Vi IMproved - v$(VDOT) Farsi language files" > dist/$(COMMENT_FARSI) - -+dist/$(COMMENT_HAIKU): dist/comment -+ echo "Vim - Vi IMproved - v$(VDOT)$(GCCVER_SUFFIX) package for Haiku OS" > dist/$(COMMENT_HAIKU) -+ - unixall: dist prepare - -rm -f dist/$(VIMVER).tar.bz2 - -rm -rf dist/$(VIMRTDIR) -@@ -576,3 +589,20 @@ +@@ -576,3 +585,37 @@ farsi: dist dist/$(COMMENT_FARSI) -rm -f dist/farsi$(VERSION).zip zip -9 -rD -z dist/farsi$(VERSION).zip farsi < dist/$(COMMENT_FARSI) + -+haiku_package: dist dist/$(COMMENT_HAIKU) ++# Haiku package ++MACHINE=$(shell uname -m) ++ifeq ($(MACHINE), BePC) ++ MACHINE = x86-gcc$(word 1, $(subst -, , $(subst ., , $(shell $(CC) -dumpversion)))) ++endif ++DATE = `date +%F` ++PACKAGE_NAME := vim-$(VDOT)-$(MACHINE)-$(DATE) ++COMMENT = .OptionalPackageDescription ++DESCRIPTION = dist/boot/$(COMMENT) ++ ++haiku_package: dist + -rm -rf dist/boot/ -+ ./configure --prefix=/boot/common --with-features=big --with-compiledby="$(COMPILEDBY)" ++ ./configure --prefix=/boot/common \ ++ --datarootdir=`finddir B_COMMON_DATA_DIRECTORY` \ ++ --mandir=`finddir B_COMMON_DOCUMENTATION_DIRECTORY`/man \ ++ --with-features=big --with-compiledby="$(COMPILEDBY)" --disable-nls + make clean; make install DESTDIR=`pwd`/dist -+ ./configure --prefix=/boot/common --with-features=big --disable-gui --with-compiledby="$(COMPILEDBY)" ++ ./configure --prefix=/boot/common \ ++ --datarootdir=`finddir B_COMMON_DATA_DIRECTORY` \ ++ --mandir=`finddir B_COMMON_DOCUMENTATION_DIRECTORY`/man \ ++ --with-features=big --disable-gui --with-compiledby="$(COMPILEDBY)" --disable-nls + make clean; make install DESTDIR=`pwd`/dist + -mkdir -p dist/boot/common/data/licenses + -cp runtime/doc/uganda.txt dist/boot/common/data/licenses/vim -+ echo "Package: Vim" > dist/boot/.OptionalPackageDescription -+ echo "Version: $(VDOT)$(GCCVER_SUFFIX)" >> dist/boot/.OptionalPackageDescription -+ echo "Copyright: Bram Moolenaar et al." >> dist/boot/.OptionalPackageDescription -+ echo "Description: Vi IMproved. Highly configurable text editor." >> dist/boot/.OptionalPackageDescription -+ echo "License: vim" >> dist/boot/.OptionalPackageDescription -+ echo "URL: http://www.vim.org/" >> dist/boot/.OptionalPackageDescription -+ cd dist/boot && zip -9 -r -z -y ../vim-$(VDOT)$(GCCVER_SUFFIX)-`date +%F`.zip * .OptionalPackageDescription* < ../$(COMMENT_HAIKU) ++ ln -s -T vim dist/boot/common/bin/vi ++ echo "Package: Vim" > $(DESCRIPTION) ++ echo "Version: $(VDOT)-$(MACHINE)" >> $(DESCRIPTION) ++ echo "Copyright: Bram Moolenaar et al." >> $(DESCRIPTION) ++ echo "Description: Vi IMproved. Highly configurable text editor." >> $(DESCRIPTION) ++ echo "License: vim" >> $(DESCRIPTION) ++ echo "URL: http://www.vim.org/" >> $(DESCRIPTION) ++ cd dist/boot && zip -9 -r -z -y ../$(PACKAGE_NAME).zip * $(COMMENT) < $(COMMENT) + +diff -Naur vim73/runtime/doc/eval.txt vim73.haiku/runtime/doc/eval.txt +--- vim73/runtime/doc/eval.txt 2010-08-15 14:23:20.045088768 +0200 ++++ vim73.haiku/runtime/doc/eval.txt 2012-09-15 21:37:50.934019072 +0200 +@@ -6081,7 +6081,7 @@ + autocmd Compiled with autocommand support. |autocommand| + balloon_eval Compiled with |balloon-eval| support. + balloon_multiline GUI supports multiline balloons. +-beos BeOS version of Vim. ++beos BeOS/Haiku version of Vim. + browse Compiled with |:browse| support, and browse() will + work. + builtin_terms Compiled with some builtin terminals. +@@ -6133,6 +6133,7 @@ + gui_motif Compiled with Motif GUI. + gui_photon Compiled with Photon GUI. + gui_win32 Compiled with MS Windows Win32 GUI. ++gui_beos Compiled with BeOS/Haiku GUI. + gui_win32s idem, and Win32s system being used (Windows 3.1) + gui_running Vim is running in the GUI, or it will start soon. + hangul_input Compiled with Hangul input support. |hangul| +diff -Naur vim73/runtime/doc/gui.txt vim73.haiku/runtime/doc/gui.txt +--- vim73/runtime/doc/gui.txt 2010-08-15 14:23:20.046661632 +0200 ++++ vim73.haiku/runtime/doc/gui.txt 2012-09-16 21:58:25.748158976 +0200 +@@ -97,6 +97,7 @@ + OS/2 $HOME/.gvimrc or $VIM/.gvimrc + MS-DOS and Win32 $HOME/_gvimrc or $VIM/_gvimrc + Amiga s:.gvimrc or $VIM/.gvimrc ++ Haiku $HOME/config/settings/vim/gvimrc + + There are a number of options which only have meaning in the GUI version of + Vim. These are 'guicursor', 'guifont', 'guipty' and 'guioptions'. They are +diff -Naur vim73/runtime/doc/help.txt vim73.haiku/runtime/doc/help.txt +--- vim73/runtime/doc/help.txt 2010-08-15 14:23:20.047448064 +0200 ++++ vim73.haiku/runtime/doc/help.txt 2012-09-16 22:03:00.902823936 +0200 +@@ -155,6 +155,7 @@ + |gui_w16.txt| Windows 3.1 GUI + |gui_w32.txt| Win32 GUI + |gui_x11.txt| X11 GUI ++|gui_beos.txt| BeOS/Haiku GUI + + Interfaces ~ + |if_cscop.txt| using Cscope with Vim +@@ -181,7 +182,7 @@ + Remarks about specific systems ~ + |os_390.txt| OS/390 Unix + |os_amiga.txt| Amiga +-|os_beos.txt| BeOS and BeBox ++|os_beos.txt| BeOS/Haiku and BeBox + |os_dos.txt| MS-DOS and MS-Windows NT/95 common items + |os_mac.txt| Macintosh + |os_mint.txt| Atari MiNT +diff -Naur vim73/runtime/doc/options.txt vim73.haiku/runtime/doc/options.txt +--- vim73/runtime/doc/options.txt 2010-08-15 14:23:21.051642368 +0200 ++++ vim73.haiku/runtime/doc/options.txt 2012-05-28 12:06:04.016777216 +0200 +@@ -3528,7 +3528,8 @@ + 'guitablabel' can be used to change the text in the labels. + When 'e' is missing a non-GUI tab pages line may be used. + The GUI tabs are only supported on some systems, currently +- GTK, Motif, Mac OS/X and MS-Windows. ++ GTK, Motif, Mac OS/X, Haiku and MS-Windows. ++ + *'go-f'* + 'f' Foreground: Don't use fork() to detach the GUI from the shell + where it was started. Use this for programs that wait for the +@@ -5567,7 +5568,12 @@ + $VIM/vimfiles, + $VIMRUNTIME, + $VIM/vimfiles/after, +- sys$login:vimfiles/after") ++ sys$login:vimfiles/after" ++ Haiku: "$BE_USER_SETTINGS/vim, ++ $VIM/vimfiles, ++ $VIMRUNTIME, ++ $VIM/vimfiles/after, ++ $BE_USER_SETTINGS/vim/after") + global + {not in Vi} + This is a list of directories which will be searched for runtime +@@ -6920,6 +6926,7 @@ + in the GUI: "builtin_gui" + on Amiga: "amiga" + on BeOS: "beos-ansi" ++ on Haiku: "xterm" + on Mac: "mac-ansi" + on MiNT: "vt52" + on MS-DOS: "pcterm" +diff -Naur vim73/runtime/doc/os_haiku.txt vim73.haiku/runtime/doc/os_haiku.txt +--- vim73/runtime/doc/os_haiku.txt 1970-01-01 01:00:00.000000000 +0100 ++++ vim73.haiku/runtime/doc/os_haiku.txt 2012-09-17 20:45:04.675807232 +0200 +@@ -0,0 +1,323 @@ ++*os_haiku.txt* For Vim version 7.4. Last change: 2012 May 28 ++ ++ ++ VIM REFERENCE MANUAL by Bram Moolenaar ++ ++// TODO - bring to correspondence with Haiku circumstances! ++ ++ *Haiku* ++This is a port of Vim 7.4 to the Haiku A4 or later. ++ ++This file contains the particularities for the Haiku version of Vim. For ++matters not discussed in this file, Vim behaves very much like the Unix ++|os_unix.txt| version. ++ ++ 1. General |beos-general| ++ 2. Compiling Vim |beos-compiling| ++ 3. Timeout in the Terminal |beos-timeout| ++ 4. Unicode vs. Latin1 |beos-unicode| ++ 5. The BeOS GUI |beos-gui| ++ 6. The $VIM directory |beos-vimdir| ++ 6+. The $BE_USER_SETTINGS directory |haiku-user-settings-dir| ++ 7. Drag & Drop |beos-dragndrop| ++ 8. Single Launch vs. Multiple ++ Launch |beos-launch| ++ 9. Fonts |beos-fonts| ++10. The meta key modifier |beos-meta| ++11. Mouse key mappings |beos-mouse| ++12. Color names |beos-colors| ++13. Compiling with Perl |beos-perl| ++ ++ ++1. General *beos-general* ++ ++The default syntax highlighting mostly works with different foreground colors ++to highlight items. This works best if you set your Terminal window to a ++darkish background and light letters. Some middle-grey background (for ++instance (r,g,b)=(168,168,168)) with black letters also works nicely. If you ++use the default light background and dark letters, it may look better to ++simply reverse the notion of foreground and background color settings. To do ++this, add this to your .vimrc file (where may need to be replaced with ++the escape character): > ++ ++ :if &term == "beos-ansi" ++ : set t_AB=[3%dm ++ : set t_AF=[4%dm ++ :endif ++ ++ ++2. Compiling Vim *beos-compiling* ++ ++From the Advanced Access Preview Release (AAPR) on, Vim can be configured with ++the standard configure script. To get the compiler and its flags right, use ++the following command-line in the shell (you can cut and paste it in one go): ++ ++CC=$BE_C_COMPILER CFLAGS="$BE_DEFAULT_C_FLAGS -O7" \ ++ ./configure --prefix=/boot/home/config ++ ++$BE_C_COMPILER is usually "mwcc", $BE_DEFAULT_C_FLAGS is usually "-I- -I." ++ ++When configure has run, and you wish to enable GUI support, you must edit the ++config.mk file so that the lines with GUI_xxx refer to $(BEOSGUI_xxx) instead ++of $(NONE_xxx). ++Alternatively you can make this change in the Makefile; it will have a ++more permanent effect. Search for "NONE_". ++ ++After compilation you need to add the resources to the binary. Add the ++following few lines near the end (before the line with "exit $exit_value") of ++the link.sh script to do this automatically. ++ ++ rmattr BEOS:TYPE vim ++ copyres os_beos.rsrc vim ++ mimeset vim ++ ++Also, create a dummy file "strip": ++ ++ #!/bin/sh ++ mimeset $1 ++ exit 0 ++ ++You will need it when using "make install" to install Vim. ++ ++Now type "make" to compile Vim, then "make install" to install it. ++ ++If you want to install Vim by hand, you must copy Vim to $HOME/config/bin, and ++create a bunch of symlinks to it ({g,r,rg}{vim,ex,view}). Furthermore you must ++copy Vim's configuration files to $HOME/config/share/vim: ++vim-5.0s/{*.vim,doc,syntax}. For completeness, you should also copy the nroff ++manual pages to $HOME/config/man/man1. Don't forget ctags/ctags and xxd/xxd! ++ ++Obviously, you need the unlimited linker to actually link Vim. See ++http://www.metrowerks.com for purchasing the CodeWarrior compiler for BeOS. ++There are currently no other linkers that can do the job. ++ ++This won't be able to include the Perl or Python interfaces even if ++you have the appropriate files installed. |beos-perl| ++ ++ ++3. Timeout in the Terminal *beos-timeout* ++ ++Because some POSIX/UNIX features are still missing[1], there is no direct OS ++support for read-with-timeout in the Terminal. This would mean that you cannot ++use :mappings of more than one character, unless you also :set notimeout. ++|'timeout'| ++ ++To circumvent this problem, I added a workaround to provide the necessary ++input with timeout by using an extra thread which reads ahead one character. ++As a side effect, it also makes Vim recognize when the Terminal window ++resizes. ++ ++Function keys are not supported in the Terminal since they produce very ++indistinctive character sequences. ++ ++These problems do not exist in the GUI. ++ ++[1]: there is no select() on file descriptors; also the termios VMIN and VTIME ++settings do not seem to work properly. This has been the case since DR7 at ++least and still has not been fixed as of PR2. ++ ++ *beos-unicode* ++4. Unicode vs. Latin1 *beos-utf8* ++ ++BeOS uses Unicode and UTF-8 for text strings (16-bit characters encoded to ++8-bit characters). Vim assumes ISO-Latin1 or other 8-bit character codes. ++This does not produce the desired results for non-ASCII characters. Try the ++command :digraphs to see. If they look messed up, use :set isprint=@ to ++(slightly) improve the display of ISO-Latin1 characters 128-255. This works ++better in the GUI, depending on which font you use (below). ++ ++You may also use the /boot/bin/xtou command to convert UTF-8 files from (xtou ++-f iso1 filename) or to (xtou -t iso1 filename) ISO-Latin1 characters. ++ ++ ++5. The BeOS GUI *beos-gui* ++ ++The BeOS GUI is no longer included. It was not maintained for a while and ++most likely didn't work. If you want to work on this: get the Vim 6.x version ++and merge it back in. ++ ++ ++6. The $VIM directory *beos-vimdir* ++ ++$VIM is the symbolic name for the place where Vims support files are stored. ++The default value for $VIM is set at compile time and can be determined with > ++ ++ :version ++ ++The normal value is /boot/home/config/share/vim. If you don't like it you can ++set the VIM environment variable to override this, or set 'helpfile' in your ++.vimrc: > ++ ++ :if version >= 500 ++ : set helpfile=~/vim/vim54/doc/help.txt ++ : syntax on ++ :endif ++ ++ ++6a. The $USER_SETTINGS_DIR directory *haiku-user-settings-dir* ++ ++ ++7. Drag & Drop *beos-dragndrop* ++ ++You can drop files and directories on either the Vim icon (starts a new Vim ++session, unless you use the File Types application to set Vim to be "Single ++Launch") or on the Vim window (starts editing the files). Dropping a folder ++sets Vim's current working directory. |:cd| |:pwd| If you drop files or ++folders with either SHIFT key pressed, Vim changes directory to the folder ++that contains the first item dropped. When starting Vim, there is no need to ++press shift: Vim behaves as if you do. ++ ++Files dropped set the current argument list. |argument-list| ++ ++ ++8. Single Launch vs. Multiple Launch *beos-launch* ++ ++As distributed Vim's Application Flags (as seen in the FileTypes preference) ++are set to Multiple Launch. If you prefer, you can set them to Single Launch ++instead. Attempts to start a second copy of Vim will cause the first Vim to ++open the files instead. This works from the Tracker but also from the command ++line. In the latter case, non-file (option) arguments are not supported. ++ ++NB: Only the GUI version has a BApplication (and hence Application Flags). ++This section does not apply to the GUI-less version, should you compile one. ++ ++ ++9. Fonts *beos-fonts* ++ ++Set fonts with > ++ ++ :set guifont=Courier10_BT/Roman/10 ++ ++where the first part is the font family, the second part the style, and the ++third part the size. You can use underscores instead of spaces in family and ++style. ++ ++Best results are obtained with monospaced fonts (such as Courier). Vim ++attempts to use all fonts in B_FIXED_SPACING mode but apparently this does not ++work for proportional fonts (despite what the BeBook says). ++ ++Vim also tries to use the B_ISO8859_1 encoding, also known as ISO Latin 1. ++This also does not work for all fonts. It does work for Courier, but not for ++ProFontISOLatin1/Regular (strangely enough). You can verify this by giving the > ++ ++ :digraphs ++ ++command, which lists a bunch of characters with their ISO Latin 1 encoding. ++If, for instance, there are "box" characters among them, or the last character ++isn't a dotted-y, then for this font the encoding does not work. ++ ++If the font you specify is unavailable, you get the system fixed font. ++ ++Standard fixed-width system fonts are: ++ ++ ProFontISOLatin1/Regular ++ Courier10_BT/Roman ++ Courier10_BT/Italic ++ Courier10_BT/Bold ++ Courier10_BT/Bold_Italic ++ ++Standard proportional system fonts are: ++ ++ Swis721_BT/Roman ++ Swis721_BT/Italic ++ Swis721_BT/Bold ++ Swis721_BT/Bold_Italic ++ Dutch801_Rm_BT/Roman ++ Dutch801_Rm_BT/Italic ++ Dutch801_Rm_BT/Bold ++ Dutch801_Rm_BT/Bold_Italic ++ Baskerville/Roman ++ Baskerville/Italic ++ Baskerville/Bold ++ Baskerville/Bold_Italic ++ SymbolProp_BT/Regular ++ ++Try some of them, just for fun. ++ ++ ++10. The meta key modifier *beos-meta* ++ ++The META key modifier is obtained by the left or right OPTION keys. This is ++because the ALT (aka COMMAND) keys are not passed to applications. ++ ++ ++11. Mouse key mappings *beos-mouse* ++ ++Vim calls the various mouse buttons LeftMouse, MiddleMouse and RightMouse. If ++you use the default Mouse preference settings these names indeed correspond to ++reality. Vim uses this mapping: ++ ++ Button 1 -> LeftMouse, ++ Button 2 -> RightMouse, ++ Button 3 -> MiddleMouse. ++ ++If your mouse has fewer than 3 buttons you can provide your own mapping from ++mouse clicks with modifier(s) to other mouse buttons. See the file ++vim-5.x/macros/swapmous.vim for an example. |gui-mouse-mapping| ++ ++ ++12. Color names *beos-colors* ++ ++Vim has a number of color names built-in. Additional names are read from the ++file $VIMRUNTIME/rgb.txt, if present. This file is basically the color ++database from X. Names used from this file are cached for efficiency. ++ ++ ++13. Compiling with Perl *beos-perl* ++ ++Compiling with Perl support enabled is slightly tricky. The Metrowerks ++compiler has some strange ideas where to search for include files. Since ++several include files with Perl have the same names as some Vim header ++files, the wrong ones get included. To fix this, run the following Perl ++script while in the vim-5.0/src directory: > ++ ++ preproc.pl > perl.h ++ ++ #!/bin/env perl ++ # Simple #include expander, just good enough for the Perl header files. ++ ++ use strict; ++ use IO::File; ++ use Config; ++ ++ sub doinclude ++ { ++ my $filename = $_[0]; ++ my $fh = new IO::File($filename, "r"); ++ if (defined $fh) { ++ print "/* Start of $filename */\n"; ++ ++ while (<$fh>) { ++ if (/^#include "(.*)"/) { ++ doinclude($1); ++ print "/* Back in $filename */\n"; ++ } else { ++ print $_; ++ } ++ } ++ print "/* End of $filename */\n"; ++ ++ undef $fh; ++ } else { ++ print "/* Cannot open $filename */\n"; ++ print "#include \"$filename\"\n"; ++ } ++ } ++ ++ chdir $Config{installarchlib}."/CORE"; ++ doinclude "perl.h"; ++ ++It expands the "perl.h" header file, using only other Perl header files. ++ ++Now you can configure & make Vim with the --enable-perlinterp option. ++Be warned though that this adds about 616 kilobytes to the size of Vim! ++Without Perl, Vim with default features and GUI is about 575K, with Perl ++it is about 1191K. ++ ++-Olaf Seibert ++ ++[Note: these addresses no longer work:] ++ ++http://polder.ubc.kun.nl/~rhialto/be ++ ++ vim:tw=78:ts=8:ft=help:norl: +diff -Naur vim73/runtime/doc/starting.txt vim73.haiku/runtime/doc/starting.txt +--- vim73/runtime/doc/starting.txt 2010-08-15 14:23:22.056360960 +0200 ++++ vim73.haiku/runtime/doc/starting.txt 2012-09-16 22:03:00.965476352 +0200 +@@ -756,6 +756,7 @@ + OS/2 $HOME/.vimrc or $VIM/.vimrc (or _vimrc) + MS-DOS and Win32 $HOME/_vimrc or $VIM/_vimrc + Amiga s:.vimrc or $VIM/.vimrc ++ Haiku $HOME/config/settings/vim/vimrc + + If Vim was started with "-u filename", the file "filename" is used. + All following initializations until 4. are skipped. +@@ -791,6 +792,7 @@ + "$VIM/.vimrc" (for OS/2 and Amiga) (*) + "$HOME/_vimrc" (for MS-DOS and Win32) (*) + "$VIM/_vimrc" (for MS-DOS and Win32) (*) ++ "$HOME/.vimrc" (for BeOS/Haiku) (*) + Note: For Unix, OS/2 and Amiga, when ".vimrc" does not exist, + "_vimrc" is also tried, in case an MS-DOS compatible file + system is used. For MS-DOS and Win32 ".vimrc" is checked +@@ -880,6 +882,7 @@ + ~/.vimrc (Unix and OS/2) + s:.vimrc (Amiga) + $VIM\_vimrc (MS-DOS and Win32) ++ ~/.vimrc (BeOS/Haiku) + Note that creating a vimrc file will cause the 'compatible' option to be off + by default. See |compatible-default|. + +diff -Naur vim73/runtime/doc/vi_diff.txt vim73.haiku/runtime/doc/vi_diff.txt +--- vim73/runtime/doc/vi_diff.txt 2010-08-15 14:23:23.066322432 +0200 ++++ vim73.haiku/runtime/doc/vi_diff.txt 2012-05-13 20:55:51.593494016 +0200 +@@ -139,6 +139,7 @@ + - Atari MiNT + - VMS + - BeOS ++ - Haiku + - Macintosh + - Risc OS + - IBM OS/390 +@@ -163,7 +164,7 @@ + define your own menus. Better support for CTRL/SHIFT/ALT keys in + combination with special keys and mouse. Supported for various + platforms, such as X11 (with Motif and Athena interfaces), GTK, Win32 +- (Windows 95 and later), BeOS, Amiga and Macintosh. ++ (Windows 95 and later), Haiku, Amiga and Macintosh. + + Multiple windows and buffers. |windows.txt| + Vim can split the screen into several windows, each editing a diff -Naur vim73/runtime/gvimrc_example.vim vim73.haiku/runtime/gvimrc_example.vim --- vim73/runtime/gvimrc_example.vim 2010-05-15 11:03:31.008650752 +0000 +++ vim73.haiku/runtime/gvimrc_example.vim 2010-08-20 23:25:03.942407680 +0000 @@ -81,7 +540,7 @@ diff -Naur vim73/runtime/vimrc_example.vim vim73.haiku/runtime/vimrc_example.vim diff -Naur vim73/src/Makefile vim73.haiku/src/Makefile --- vim73/src/Makefile 2010-08-15 12:56:15.017301504 +0000 +++ vim73.haiku/src/Makefile 2010-08-20 23:27:51.707264512 +0000 -@@ -1242,6 +1242,21 @@ +@@ -1242,6 +1242,23 @@ # too: #EXTRA_LIBS = /usr/openwin/lib/libXmu.sa -lm @@ -91,8 +550,10 @@ diff -Naur vim73/src/Makefile vim73.haiku/src/Makefile +BEOSGUI_DEFS = -DFEAT_GUI_BEOS +BEOSGUI_IPATH = +BEOSGUI_LIBS_DIR = -+BEOSGUI_LIBS1 = -lbe -lroot -ltracker -lsupc++ -ltranslation -+#BEOSGUI_LIBS1 = -lbe -lroot -ltracker -ltranslation ++BEOSGUI_LIBS1 = -lbe -lroot -ltracker -ltranslation ++ifeq ($(strip $(word 1, $(subst -, , $(subst ., , $(shell $(CC) -dumpversion))))), 4) ++BEOSGUI_LIBS1 += -lsupc++ ++endif +BEOSGUI_LIBS2 = +BEOSGUI_INSTALL = install_normal install_beos_extra +BEOSGUI_TARGETS = installglinks_beos @@ -103,7 +564,7 @@ diff -Naur vim73/src/Makefile vim73.haiku/src/Makefile # PHOTON GUI PHOTONGUI_SRC = gui.c gui_photon.c pty.c PHOTONGUI_OBJ = objects/gui.o objects/gui_photon.o objects/pty.o -@@ -2458,6 +2473,9 @@ +@@ -2458,6 +2475,9 @@ objects/gui_athena.o: gui_athena.c $(CCC) -o $@ gui_athena.c @@ -113,7 +574,7 @@ diff -Naur vim73/src/Makefile vim73.haiku/src/Makefile objects/gui_beval.o: gui_beval.c $(CCC) -o $@ gui_beval.c -@@ -2585,6 +2603,9 @@ +@@ -2585,6 +2605,9 @@ objects/os_beos.o: os_beos.c $(CCC) -o $@ os_beos.c @@ -123,7 +584,7 @@ diff -Naur vim73/src/Makefile vim73.haiku/src/Makefile objects/os_qnx.o: os_qnx.c $(CCC) -o $@ os_qnx.c -@@ -2738,6 +2759,56 @@ +@@ -2738,6 +2761,56 @@ ############################################################################### @@ -173,7 +634,7 @@ diff -Naur vim73/src/Makefile vim73.haiku/src/Makefile + chmod $(BINMOD) $$i ; \ + addattr -f ~icon.attr -t \'VICN\' BEOS:ICON $$i ; \ + done -+ addattr -f ~icon.attr -t \'ICON\' BEOS:ICON $(DEST_BIN)/$(VIMNAME)tutor ++ addattr -f ~icon.attr -t \'VICN\' BEOS:ICON $(DEST_BIN)/$(VIMNAME)tutor + @rm ~icon.attr + +############################################################################### @@ -330,7 +791,15 @@ diff -Naur vim73/src/feature.h vim73.haiku/src/feature.h # define FEAT_TOOLBAR #endif -@@ -795,7 +804,7 @@ +@@ -784,6 +793,7 @@ + && (defined(FEAT_GUI_GTK) \ + || (defined(FEAT_GUI_MOTIF) && defined(HAVE_XM_NOTEBOOK_H)) \ + || defined(FEAT_GUI_MAC) \ ++ || defined(FEAT_GUI_BEOS) \ + || (defined(FEAT_GUI_MSWIN) && !defined(WIN16) \ + && (!defined(_MSC_VER) || _MSC_VER > 1020))) + # define FEAT_GUI_TABLINE +@@ -795,7 +805,7 @@ */ #if defined(FEAT_NORMAL) # define FEAT_BROWSE_CMD @@ -339,7 +808,7 @@ diff -Naur vim73/src/feature.h vim73.haiku/src/feature.h # define FEAT_BROWSE # endif #endif -@@ -810,6 +819,7 @@ +@@ -810,6 +820,7 @@ && defined(HAVE_X11_XPM_H)) \ || defined(FEAT_GUI_GTK) \ || defined(FEAT_GUI_PHOTON) \ @@ -347,7 +816,7 @@ diff -Naur vim73/src/feature.h vim73.haiku/src/feature.h || defined(FEAT_GUI_MSWIN) \ || defined(FEAT_GUI_MAC) # define FEAT_CON_DIALOG -@@ -827,7 +837,8 @@ +@@ -827,7 +838,8 @@ #if defined(FEAT_GUI_DIALOG) && \ (defined(FEAT_GUI_MOTIF) || defined(FEAT_GUI_ATHENA) \ || defined(FEAT_GUI_GTK) || defined(FEAT_GUI_MSWIN) \ @@ -391,7 +860,30 @@ diff -Naur vim73/src/gui.c vim73.haiku/src/gui.c gui_mch_set_toolbar_pos(0, text_area_y, gui.menu_width, gui.toolbar_height); # endif -@@ -1292,7 +1292,11 @@ +@@ -1178,6 +1178,13 @@ + } + #endif + ++# if defined(FEAT_GUI_TABLINE) && (defined(FEAT_GUI_BEOS)) ++ gui_mch_set_tabline_pos(0, text_area_y, ++ gui.menu_width, gui.tabline_height); ++ if (gui_has_tabline()) ++ text_area_y += gui.tabline_height; ++#endif ++ + text_area_width = gui.num_cols * gui.char_width + gui.border_offset * 2; + text_area_height = gui.num_rows * gui.char_height + gui.border_offset * 2; + +@@ -1249,7 +1256,7 @@ + # endif + # endif + # if defined(FEAT_GUI_TABLINE) && (defined(FEAT_GUI_MSWIN) \ +- || defined(FEAT_GUI_MOTIF)) ++ || defined(FEAT_GUI_MOTIF) || defined(FEAT_GUI_BEOS)) + if (gui_has_tabline()) + base_height += gui.tabline_height; + # endif +@@ -1292,7 +1299,11 @@ again: busy = TRUE; @@ -404,7 +896,7 @@ diff -Naur vim73/src/gui.c vim73.haiku/src/gui.c out_flush(); gui.num_cols = (pixel_width - gui_get_base_width()) / gui.char_width; -@@ -1314,7 +1318,11 @@ +@@ -1314,7 +1325,11 @@ || gui.num_rows != Rows || gui.num_cols != Columns) shell_resized(); @@ -417,7 +909,7 @@ diff -Naur vim73/src/gui.c vim73.haiku/src/gui.c gui_update_cursor(FALSE, TRUE); #if defined(FEAT_XIM) && !defined(FEAT_GUI_GTK) xim_set_status_area(); -@@ -4055,9 +4063,9 @@ +@@ -4055,9 +4070,9 @@ y += gui.menu_height; #endif @@ -429,7 +921,17 @@ diff -Naur vim73/src/gui.c vim73.haiku/src/gui.c y += gui.toolbar_height; # else # ifdef FEAT_GUI_MSWIN -@@ -4811,7 +4819,8 @@ +@@ -4066,7 +4081,8 @@ + # endif + #endif + +-#if defined(FEAT_GUI_TABLINE) && defined(FEAT_GUI_MSWIN) ++ //XXX ++#if defined(FEAT_GUI_TABLINE) && (defined(FEAT_GUI_MSWIN) || defined(FEAT_GUI_BEOS)) + if (gui_has_tabline()) + y += gui.tabline_height; + #endif +@@ -4811,7 +4827,8 @@ } #if ((defined(FEAT_GUI_X11) || defined(FEAT_GUI_GTK) || defined(FEAT_GUI_W32) \ @@ -472,6 +974,15 @@ diff -Naur vim73/src/gui.h vim73.haiku/src/gui.h #ifdef FEAT_GUI_MAC ControlHandle id; /* A handle to the scrollbar */ #endif +@@ -412,7 +419,7 @@ + + #if defined(FEAT_GUI_TABLINE) \ + && (defined(FEAT_GUI_W32) || defined(FEAT_GUI_MOTIF) \ +- || defined(FEAT_GUI_MAC)) ++ || defined(FEAT_GUI_MAC) || defined(FEAT_GUI_BEOS)) + int tabline_height; + #endif + @@ -421,7 +428,7 @@ #endif @@ -499,7 +1010,7 @@ diff -Naur vim73/src/gui.h vim73.haiku/src/gui.h diff -Naur vim73/src/gui_beos.cc vim73.haiku/src/gui_beos.cc --- vim73/src/gui_beos.cc 1970-01-01 00:00:00.000000000 +0000 +++ vim73.haiku/src/gui_beos.cc 2010-08-20 23:43:35.727711744 +0000 -@@ -0,0 +1,4590 @@ +@@ -0,0 +1,4868 @@ +/* vi:set ts=8 sts=4 sw=4: + * + * VIM - Vi IMproved by Bram Moolenaar @@ -571,6 +1082,7 @@ diff -Naur vim73/src/gui_beos.cc vim73.haiku/src/gui_beos.cc + * This locking protocol consists of locking Vim's window. This is both + * convenient and necessary. + */ ++ +extern "C" { + +#include @@ -592,8 +1104,10 @@ diff -Naur vim73/src/gui_beos.cc vim73.haiku/src/gui_beos.cc +#include +#include +#include ++#include +#include +#include ++#include +#include +#include +#include @@ -621,17 +1135,7 @@ diff -Naur vim73/src/gui_beos.cc vim73.haiku/src/gui_beos.cc +#include + +#ifdef __HAIKU__ -+//#include -+ -+// TRICK! IconUtils.h is not a public API, anyway it is exportred by libbe -+namespace BIconUtils { -+ -+status_t GetVectorIcon(const uint8* buffer, size_t size, BBitmap* result); -+ -+status_t ConvertFromCMAP8(const uint8* data, uint32 width, uint32 height, -+ uint32 bytesPerRow, BBitmap* result); -+}; -+ ++#include +#endif + +class VimApp; @@ -639,6 +1143,7 @@ diff -Naur vim73/src/gui_beos.cc vim73.haiku/src/gui_beos.cc +class VimTextAreaView; +class VimWindow; +class VimToolbar; ++class VimTabLine; + +extern key_map *keyMap; +extern char *keyMapChars; @@ -731,6 +1236,16 @@ diff -Naur vim73/src/gui_beos.cc vim73.haiku/src/gui_beos.cc + VimToolbar *toolBar; +#endif + ++#ifdef FEAT_GUI_TABLINE ++ public: ++ VimTabLine *TabLine() const { return tabLine; } ++ bool IsShowingTabLine() const { return showingTabLine; } ++ void SetShowingTabLine(bool showing) { showingTabLine = showing; } ++ float TablineHeight() const; ++ private: ++ VimTabLine *tabLine; ++ int showingTabLine; ++#endif +}; + +class VimTextAreaView: public BView @@ -839,14 +1354,31 @@ diff -Naur vim73/src/gui_beos.cc vim73.haiku/src/gui_beos.cc + +const float ToolbarMargin = 3.; +const float ButtonMargin = 3.; -+/* -+class VimToolbarButton : public BPictureButton -+{ + -+}; -+*/ +#endif /*FEAT_TOOLBAR*/ + ++#ifdef FEAT_GUI_TABLINE ++ ++class VimTabLine : public BTabView ++{ ++ public: ++ class VimTab : public BTab { ++ public: ++ VimTab() : BTab(new BView(BRect(), "-Empty-", 0, 0)) {} ++ ++ virtual void Select(BView* owner); ++ }; ++ ++ VimTabLine(BRect r) : BTabView(r, "vimTabLine", B_WIDTH_FROM_LABEL, ++ B_FOLLOW_LEFT | B_FOLLOW_TOP | B_FOLLOW_RIGHT, B_WILL_DRAW | B_FRAME_EVENTS) {} ++ ++ float TablineHeight() const; ++ virtual void MouseDown(BPoint point); ++}; ++ ++#endif //FEAT_GUI_TABLINE ++ ++ +/* + * For caching the fonts that are used; + * Vim seems rather sloppy in this regard. @@ -975,9 +1507,18 @@ diff -Naur vim73/src/gui_beos.cc vim73.haiku/src/gui_beos.cc + bool changedir; +}; + ++struct VimTablineMsg { ++ int index; ++}; ++ ++struct VimTablineMenuMsg { ++ int index; ++ int event; ++}; ++ +struct VimMsg { + enum VimMsgType { -+ Key, Resize, ScrollBar, Menu, Mouse, MouseMoved, Focus, Refs ++ Key, Resize, ScrollBar, Menu, Mouse, MouseMoved, Focus, Refs, Tabline, TablineMenu + }; + + union { @@ -989,6 +1530,8 @@ diff -Naur vim73/src/gui_beos.cc vim73.haiku/src/gui_beos.cc + struct VimMouseMovedMsg MouseMoved; + struct VimFocusMsg Focus; + struct VimRefsMsg Refs; ++ struct VimTablineMsg Tabline; ++ struct VimTablineMenuMsg TablineMenu; + } u; +}; + @@ -1428,6 +1971,10 @@ diff -Naur vim73/src/gui_beos.cc vim73.haiku/src/gui_beos.cc +#ifdef FEAT_TOOLBAR + toolBar(NULL), +#endif ++#ifdef FEAT_GUI_TABLINE ++// showingTabLine(false), ++ tabLine(NULL), ++#endif + textArea(NULL) +{ + init(frame); @@ -1448,6 +1995,10 @@ diff -Naur vim73/src/gui_beos.cc vim73.haiku/src/gui_beos.cc + delete toolBar; +#endif + ++#ifdef FEAT_GUI_TABLINE ++ delete tabLine; ++#endif ++ + if (textArea) { + RemoveChild(textArea); + delete textArea; @@ -1469,6 +2020,12 @@ diff -Naur vim73/src/gui_beos.cc vim73.haiku/src/gui_beos.cc + AddChild(toolBar); +#endif + ++#ifdef FEAT_GUI_TABLINE ++ tabLine = new VimTabLine(BRect(0,0,0,0)); ++// tabLine->PrepareButtonBitmaps(); ++ AddChild(tabLine); ++#endif ++ + BRect remaining = frame; + textArea = new VimTextAreaView(remaining); + AddChild(textArea); @@ -1485,6 +2042,14 @@ diff -Naur vim73/src/gui_beos.cc vim73.haiku/src/gui_beos.cc +} +#endif + ++#ifdef FEAT_GUI_TABLINE ++ float ++VimFormView::TablineHeight() const ++{ ++ return (tabLine && IsShowingTabLine()) ? tabLine->TablineHeight() : 0.; ++} ++#endif ++ + void +VimFormView::AllAttached() +{ @@ -1515,6 +2080,14 @@ diff -Naur vim73/src/gui_beos.cc vim73.haiku/src/gui_beos.cc + remaining.top += ToolbarHeight(); + gui.toolbar_height = ToolbarHeight(); +#endif ++ ++#ifdef FEAT_GUI_TABLINE ++ tabLine->MoveTo(remaining.left, remaining.top); ++ tabLine->ResizeTo(remaining.right + 1, TablineHeight()); ++ remaining.top += TablineHeight(); ++ gui.tabline_height = TablineHeight(); ++#endif ++ + textArea->ResizeTo(remaining.Width(), remaining.Height()); + textArea->MoveTo(remaining.left, remaining.top); + } @@ -2736,9 +3309,6 @@ diff -Naur vim73/src/gui_beos.cc vim73.haiku/src/gui_beos.cc + return; + } + -+ //app_info appInfo; -+ //status_t status = gui.vimApp->GetAppInfo(&appInfo); -+ + BPath path; + status_t status = find_directory(B_BEOS_SERVERS_DIRECTORY, &path); + if(status != B_OK) { @@ -2748,7 +3318,7 @@ diff -Naur vim73/src/gui_beos.cc vim73.haiku/src/gui_beos.cc + + path.Append("app_server"); + -+ BFile file(/*&appInfo.ref*/path.Path(), O_RDONLY); ++ BFile file(path.Path(), O_RDONLY); + if(file.InitCheck() != B_OK) { + fprintf(stderr, "App file assignment failed:%s\n", + strerror(file.InitCheck())); @@ -2785,7 +3355,6 @@ diff -Naur vim73/src/gui_beos.cc vim73.haiku/src/gui_beos.cc + // try vector icon first? + iconData = (const uint8*)resources.LoadResource(B_VECTOR_ICON_TYPE, name, &size); + if(iconData != NULL && BIconUtils::GetVectorIcon(iconData, size, fIconBitmap) == B_OK) { -+ delete iconData; + return; + } +#endif @@ -2806,8 +3375,6 @@ diff -Naur vim73/src/gui_beos.cc vim73.haiku/src/gui_beos.cc +#else + fIconBitmap->SetBits(iconData, size, 0, B_CMAP8); +#endif -+ -+ delete iconData; +} + +#endif /* FEAT_GUI_DIALOG */ @@ -3054,6 +3621,104 @@ diff -Naur vim73/src/gui_beos.cc vim73.haiku/src/gui_beos.cc + +#endif /*FEAT_TOOLBAR*/ + ++#if defined(FEAT_GUI_TABLINE) ++ ++ float ++VimTabLine::TablineHeight() const ++{ ++// float size = NULL == normalButtonsBitmap ? 18. : normalButtonsBitmap->Bounds().Height(); ++// return size + ToolbarMargin * 2 + ButtonMargin * 2 + 1; ++ return TabHeight();// + ToolbarMargin; ++} ++ ++void ++VimTabLine::MouseDown(BPoint point) ++{ ++ if(!gui_mch_showing_tabline()) ++ return; ++ ++ BMessage *m = Window()->CurrentMessage(); ++ assert(m); ++ ++ int32 buttons = 0; ++ m->FindInt32("buttons", &buttons); ++ ++ int32 clicks = 0; ++ m->FindInt32("clicks", &clicks); ++ ++ int index = 0; // 0 means here - no tab found ++ for (int i = 0; i < CountTabs(); i++) { ++ if(TabFrame(i).Contains(point)) { ++ index = i + 1; // indexes are 1-based ++ break; ++ } ++ } ++ ++ int event = -1; ++ ++ if ((buttons & B_PRIMARY_MOUSE_BUTTON) && clicks > 1) { ++ // left button double click on - create new tab ++ event = TABLINE_MENU_NEW; ++ ++ } else if (buttons & B_TERTIARY_MOUSE_BUTTON) { ++ // middle button click - close the pointed tab ++ // or create new one in case empty space ++ event = index > 0 ? TABLINE_MENU_CLOSE : TABLINE_MENU_NEW; ++ ++ } else if (buttons & B_SECONDARY_MOUSE_BUTTON) { ++ // right button click - show context menu ++ BPopUpMenu* popUpMenu = new BPopUpMenu("tabLineContextMenu", false, false); ++ popUpMenu->AddItem(new BMenuItem(_("Close tabi R"), new BMessage(TABLINE_MENU_CLOSE))); ++ popUpMenu->AddItem(new BMenuItem(_("New tab T"), new BMessage(TABLINE_MENU_NEW))); ++ popUpMenu->AddItem(new BMenuItem(_("Open tab..."), new BMessage(TABLINE_MENU_OPEN))); ++ ++ ConvertToScreen(&point); ++ BMenuItem* item = popUpMenu->Go(point); ++ if (item != NULL) { ++ event = item->Command(); ++ } ++ ++ delete popUpMenu; ++ ++ } else { ++ // default processing ++ BTabView::MouseDown(point); ++ return; ++ } ++ ++ if (event < 0) ++ return; ++ ++ VimTablineMenuMsg tmm; ++ tmm.index = index; ++ tmm.event = event; ++ write_port(gui.vdcmp, VimMsg::TablineMenu, &tmm, sizeof(tmm)); ++} ++ ++void ++VimTabLine::VimTab::Select(BView* owner) ++{ ++ BTab::Select(owner); ++ ++ VimTabLine *tabLine = gui.vimForm->TabLine(); ++ if(tabLine != NULL) { ++ ++ int32 i = 0; ++ for (; i < tabLine->CountTabs(); i++) { ++ if(this == tabLine->TabAt(i)) ++ break; ++ } ++ ++ printf("%d:%d:%s\n", i, tabLine->CountTabs(), tabLine->TabAt(i)->Label()); ++ if(i < tabLine->CountTabs()) { ++ VimTablineMsg tm; ++ tm.index = i + 1; ++ write_port(gui.vdcmp, VimMsg::Tabline, &tm, sizeof(tm)); ++ } ++ } ++} ++ ++#endif // defined(FEAT_GUI_TABLINE) + +/* ---------------- ---------------- */ + @@ -3067,7 +3732,7 @@ diff -Naur vim73/src/gui_beos.cc vim73.haiku/src/gui_beos.cc +gui_beos_process_event(bigtime_t timeout) +{ + struct VimMsg vm; -+ long what; ++ int32 what; + ssize_t size; + + size = read_port_etc(gui.vdcmp, &what, &vm, sizeof(vm), @@ -3167,6 +3832,12 @@ diff -Naur vim73/src/gui_beos.cc vim73.haiku/src/gui_beos.cc + case VimMsg::Refs: + ::RefsReceived(vm.u.Refs.message, vm.u.Refs.changedir); + break; ++ case VimMsg::Tabline: ++ send_tabline_event(vm.u.Tabline.index); ++ break; ++ case VimMsg::TablineMenu: ++ send_tabline_menu_event(vm.u.TablineMenu.index, vm.u.TablineMenu.event); ++ break; + default: + // unrecognised message, ignore it + break; @@ -3595,6 +4266,13 @@ diff -Naur vim73/src/gui_beos.cc vim73.haiku/src/gui_beos.cc + if (gui.vimWindow->Lock()) { + gui.vimTextArea->MoveTo(x, y); + gui.vimTextArea->ResizeTo(w - PEN_WIDTH, h - PEN_WIDTH); ++ ++/*#ifdef FEAT_GUI_TABLINE ++ if(gui.vimForm->TabLine() != NULL) { ++ gui.vimForm->TabLine()->ResizeTo(w, gui.vimForm->TablineHeight()); ++ } ++#endif //FEAT_GUI_TABLINE*/ ++ + gui.vimWindow->Unlock(); + } +} @@ -4566,6 +5244,14 @@ diff -Naur vim73/src/gui_beos.cc vim73.haiku/src/gui_beos.cc +{ + vimmenu_T *parent = menu->parent; + ++ // popup menu - just create it unattached ++ if (menu_is_popup(menu->name) && parent == NULL) { ++ BPopUpMenu* popUpMenu = new BPopUpMenu((const char*)menu->name, false, false); ++ menu->submenu_id = popUpMenu; ++ menu->id = NULL; ++ return; ++ } ++ + if (!menu_is_menubar(menu->name) + || (parent != NULL && parent->submenu_id == NULL)) + return; @@ -4633,21 +5319,6 @@ diff -Naur vim73/src/gui_beos.cc vim73.haiku/src/gui_beos.cc + int mnemonic = 0; + vimmenu_T *parent = menu->parent; + -+// printf("parent:%s:%#010x\n", parent->name, parent->submenu_id); -+// if (parent->submenu_id == NULL) -+// return; -+ -+// printf("parent:%s\n", parent->name); -+ -+//#ifdef never -+ /* why not add separators ? -+ * richard -+ */ -+ /* Don't add menu separator */ -+// if (menu_is_separator(menu->name)) -+// return; -+//#endif -+ + /* TODO: use menu->actext */ + /* This is difficult, since on Be, an accelerator must be a single char + * and a lot of Vim ones are the standard VI commands. @@ -4665,9 +5336,9 @@ diff -Naur vim73/src/gui_beos.cc vim73.haiku/src/gui_beos.cc + } + } else +#endif -+ -+ if (parent->submenu_id != NULL) { -+ if ( menu_is_separator(menu->name)) { ++ ++ if (parent->submenu_id != NULL || menu_is_popup(parent->name)) { ++ if (menu_is_separator(menu->name)) { + BSeparatorItem *item = new BSeparatorItem(); + parent->submenu_id->AddItem(item); + menu->id = item; @@ -4780,6 +5451,26 @@ diff -Naur vim73/src/gui_beos.cc vim73.haiku/src/gui_beos.cc + /* Nothing to do in BeOS */ +} + ++ void ++gui_mch_show_popupmenu(vimmenu_T *menu) ++{ ++ if (!menu_is_popup(menu->name) || menu->submenu_id == NULL) ++ return; ++ ++ BPopUpMenu* popupMenu = dynamic_cast(menu->submenu_id); ++ if (popupMenu == NULL) ++ return; ++ ++ BPoint point; ++ if(gui.vimWindow->Lock()) { ++ uint32 buttons = 0; ++ gui.vimTextArea->GetMouse(&point, &buttons); ++ gui.vimTextArea->ConvertToScreen(&point); ++ gui.vimWindow->Unlock(); ++ } ++ popupMenu->Go(point, true); ++} ++ +#endif /* FEAT_MENU */ + +/* Mouse stuff */ @@ -5030,13 +5721,6 @@ diff -Naur vim73/src/gui_beos.cc vim73.haiku/src/gui_beos.cc + /* TODO */ +} + -+ void -+gui_mch_show_popupmenu(vimmenu_T *menu) -+{ -+ TRACE(); -+ /* TODO */ -+} -+ +#ifdef FEAT_MBYTE_IME + void +im_set_position(int row, int col) @@ -5089,7 +5773,113 @@ diff -Naur vim73/src/gui_beos.cc vim73.haiku/src/gui_beos.cc + } + } +} -+//} /* extern "C" */ ++ ++#if defined(FEAT_GUI_TABLINE) || defined(PROTO) ++ ++/* ++ * Show or hide the tabline. ++ */ ++ void ++gui_mch_show_tabline(int showit) ++{ ++ VimTabLine *tabLine = gui.vimForm->TabLine(); ++ ++ if (tabLine == NULL) ++ return; ++ ++ if (!showit != !gui.vimForm->IsShowingTabLine()) { ++ gui.vimForm->SetShowingTabLine(showit != 0); ++ gui.tabline_height = gui.vimForm->TablineHeight(); ++ } ++} ++ ++ void ++gui_mch_set_tabline_pos(int x, int y, int w, int h) ++{ ++ VimTabLine *tabLine = gui.vimForm->TabLine(); ++ if(tabLine != NULL) { ++ if (gui.vimWindow->Lock()) { ++ tabLine->MoveTo(x, y); ++ tabLine->ResizeTo(w - 1, h - 1); ++ gui.vimWindow->Unlock(); ++ } ++ } ++} ++ ++/* ++ * Return TRUE when tabline is displayed. ++ */ ++ int ++gui_mch_showing_tabline() ++{ ++ VimTabLine *tabLine = gui.vimForm->TabLine(); ++ return tabLine != NULL && gui.vimForm->IsShowingTabLine(); ++} ++ ++/* ++ * Update the labels of the tabline. ++ */ ++ void ++gui_mch_update_tabline() ++{ ++ tabpage_T *tp; ++ int nr = 0; ++ int curtabidx = 0; ++ ++ VimTabLine *tabLine = gui.vimForm->TabLine(); ++ ++ if (tabLine == NULL) ++ return; ++ ++ gui.vimWindow->Lock(); ++ ++ /* Add a label for each tab page. They all contain the same text area. */ ++ for (tp = first_tabpage; tp != NULL; tp = tp->tp_next, ++nr) { ++ if (tp == curtab) ++ curtabidx = nr; ++ ++ BTab* tab = tabLine->TabAt(nr); ++ ++ if (tab == NULL) { ++ tab = new VimTabLine::VimTab(); ++ tabLine->AddTab(NULL, tab); ++ } ++ ++ get_tabline_label(tp, FALSE); ++ tab->SetLabel((const char*)NameBuff); ++ tabLine->Invalidate(); ++ } ++ ++ /* Remove any old labels. */ ++ while (nr < tabLine->CountTabs()) ++ tabLine->RemoveTab(nr); ++ ++ if(tabLine->Selection() != curtabidx) ++ tabLine->Select(curtabidx); ++ ++ gui.vimWindow->Unlock(); ++} ++ ++/* ++ * Set the current tab to "nr". First tab is 1. ++ */ ++ void ++gui_mch_set_curtab(int nr) ++{ ++ VimTabLine *tabLine = gui.vimForm->TabLine(); ++ if(tabLine == NULL) ++ return; ++ ++ gui.vimWindow->Lock(); ++ ++ if(tabLine->Selection() != nr -1) ++ tabLine->Select(nr -1); ++ ++ gui.vimWindow->Unlock(); ++} ++ ++#endif //FEAT_GUI_TABLINE ++ diff -Naur vim73/src/gui_beos.h vim73.haiku/src/gui_beos.h --- vim73/src/gui_beos.h 1970-01-01 00:00:00.000000000 +0000 +++ vim73.haiku/src/gui_beos.h 2010-08-20 22:25:02.562298880 +0000 @@ -5182,7 +5972,32 @@ diff -Naur vim73/src/misc1.c vim73.haiku/src/misc1.c diff -Naur vim73/src/normal.c vim73.haiku/src/normal.c --- vim73/src/normal.c 2010-07-31 13:25:19.021233664 +0000 +++ vim73.haiku/src/normal.c 2010-08-20 22:44:36.301203456 +0000 -@@ -5385,7 +5385,8 @@ +@@ -2599,6 +2599,7 @@ + * shift-left button -> right button + * alt-left button -> alt-right button + */ ++ + if (mouse_model_popup()) + { + if (which_button == MOUSE_RIGHT +@@ -2613,13 +2614,14 @@ + if (!is_click) + return FALSE; + #endif +-#if defined(FEAT_GUI_ATHENA) || defined(FEAT_GUI_MSWIN) ++#if defined(FEAT_GUI_ATHENA) || defined(FEAT_GUI_MSWIN) || defined(FEAT_GUI_BEOS) + if (is_click || is_drag) + return FALSE; + #endif + #if defined(FEAT_GUI_MOTIF) || defined(FEAT_GUI_GTK) \ + || defined(FEAT_GUI_ATHENA) || defined(FEAT_GUI_MSWIN) \ +- || defined(FEAT_GUI_MAC) || defined(FEAT_GUI_PHOTON) ++ || defined(FEAT_GUI_MAC) || defined(FEAT_GUI_PHOTON) \ ++ || defined(FEAT_GUI_BEOS) + if (gui.in_use) + { + jump_flags = 0; +@@ -5385,7 +5387,8 @@ { if (!checkclearop(cap->oap)) { @@ -5192,7 +6007,7 @@ diff -Naur vim73/src/normal.c vim73.haiku/src/normal.c /* * Right now, the BeBox doesn't seem to have an easy way to detect * window resizing, so we cheat and make the user detect it -@@ -5393,6 +5394,7 @@ +@@ -5393,6 +5396,7 @@ */ ui_get_shellsize(); #endif @@ -5323,19 +6138,27 @@ diff -Naur vim73/src/os_beos.c vim73.haiku/src/os_beos.c diff -Naur vim73/src/os_beos.h vim73.haiku/src/os_beos.h --- vim73/src/os_beos.h 2010-05-15 11:04:11.065273856 +0000 +++ vim73.haiku/src/os_beos.h 2010-08-20 23:16:40.791937024 +0000 -@@ -20,6 +20,11 @@ +@@ -20,6 +20,18 @@ #undef BEOS_DR8 #define BEOS_PR_OR_BETTER -+#define USR_VIMRC_FILE "$BE_USER_SETTINGS/vim/vimrc" -+#define USR_GVIMRC_FILE "$BE_USER_SETTINGS/vim/gvimrc" +-/* select emulation */ ++#define USR_VIM_DIR "$BE_USER_SETTINGS/vim" + -+#define VIMINFO_FILE "$BE_USER_SETTINGS/vim/viminfo" ++#define USR_EXRC_FILE USR_VIM_DIR "/exrc" ++#define USR_VIMRC_FILE USR_VIM_DIR "/vimrc" ++#define USR_GVIMRC_FILE USR_VIM_DIR "/gvimrc" ++#define VIMINFO_FILE USR_VIM_DIR "/viminfo" + - /* select emulation */ ++#ifdef RUNTIME_GLOBAL ++# define DFLT_RUNTIMEPATH USR_VIM_DIR "/vimfiles," RUNTIME_GLOBAL \ ++ ",$VIMRUNTIME," RUNTIME_GLOBAL "/after," USR_VIM_DIR "/vimfiles/after" ++#else ++# define DFLT_RUNTIMEPATH USR_VIM_DIR "/vimfiles," "$VIM/vimfiles" \ ++ ",$VIMRUNTIME," "$VIM/vimfiles/after," USR_VIM_DIR "/vimfiles/after" ++#endif -#include /* for typedefs and #defines only */ -+//#include /* for typedefs and #defines only */ diff -Naur vim73/src/os_beos.rdef vim73.haiku/src/os_beos.rdef --- vim73/src/os_beos.rdef 1970-01-01 00:00:00.000000000 +0000 +++ vim73.haiku/src/os_beos.rdef 2010-05-02 14:29:42.040894464 +0000 @@ -5348,7 +6171,7 @@ diff -Naur vim73/src/os_beos.rdef vim73.haiku/src/os_beos.rdef + +resource app_version { + major = 7, -+ middle = 2, ++ middle = 3, + minor = 0, + + variety = B_APPV_FINAL, @@ -5597,10 +6420,31 @@ diff -Naur vim73/src/os_unix.c vim73.haiku/src/os_unix.c beos_cleanup_read_thread(); # endif +diff -Naur vim73/src/os_unix.h vim73.haiku/src/os_unix.h +--- vim73/src/os_unix.h 2010-05-23 14:16:14.034865152 +0200 ++++ vim73.haiku/src/os_unix.h 2011-02-21 23:18:13.038797312 +0100 +@@ -388,6 +388,8 @@ + + #define DFLT_ERRORFILE "errors.err" + ++#ifndef DFLT_RUNTIMEPATH ++ + #ifdef OS2 + # define DFLT_RUNTIMEPATH "$HOME/vimfiles,$VIM/vimfiles,$VIMRUNTIME,$VIM/vimfiles/after,$HOME/vimfiles/after" + #else +@@ -402,6 +404,8 @@ + # endif + #endif + ++#endif ++ + #ifdef OS2 + /* + * Try several directories to put the temp files. diff -Naur vim73/src/proto/gui_beos.pro vim73.haiku/src/proto/gui_beos.pro --- vim73/src/proto/gui_beos.pro 1970-01-01 00:00:00.000000000 +0000 +++ vim73.haiku/src/proto/gui_beos.pro 2010-08-20 23:42:00.825229312 +0000 -@@ -0,0 +1,84 @@ +@@ -0,0 +1,90 @@ +/* gui_beos.cc - hand crafted */ +void gui_mch_prepare __ARGS((int *argc, char **argv)); +int gui_mch_init __ARGS((void)); @@ -5685,6 +6529,12 @@ diff -Naur vim73/src/proto/gui_beos.pro vim73.haiku/src/proto/gui_beos.pro + +void gui_mch_show_toolbar __ARGS((int showit)); +void gui_mch_set_toolbar_pos __ARGS((int x, int y, int w, int h)); ++ ++void gui_mch_show_tabline __ARGS((int showit)); ++void gui_mch_set_tabline_pos __ARGS((int x, int y, int w, int h)); ++int gui_mch_showing_tabline __ARGS((void)); ++void gui_mch_update_tabline __ARGS((void)); ++void gui_mch_set_curtab __ARGS((int nr)); diff -Naur vim73/src/proto/os_beos.pro vim73.haiku/src/proto/os_beos.pro --- vim73/src/proto/os_beos.pro 1970-01-01 00:00:00.000000000 +0000 +++ vim73.haiku/src/proto/os_beos.pro 2009-05-16 16:18:36.066846720 +0000 @@ -5837,6 +6687,15 @@ diff -Naur vim73/src/ui.c vim73.haiku/src/ui.c /* * When the OS can't really suspend, call this function to start a shell. * This is never called in the GUI. +@@ -3000,7 +3000,7 @@ + + #if defined(FEAT_GUI_MOTIF) || defined(FEAT_GUI_GTK) || defined(FEAT_GUI_MAC) \ + || defined(FEAT_GUI_ATHENA) || defined(FEAT_GUI_MSWIN) \ +- || defined(FEAT_GUI_PHOTON) || defined(PROTO) ++ || defined(FEAT_GUI_PHOTON) || defined(FEAT_GUI_BEOS) || defined(PROTO) + /* + * Translate window coordinates to buffer position without any side effects + */ diff -Naur vim73/src/version.c vim73.haiku/src/version.c --- vim73/src/version.c 2010-08-01 13:45:48.052953088 +0000 +++ vim73.haiku/src/version.c 2010-08-20 22:58:43.417333248 +0000 diff --git a/app-editors/vim/vim-7.2.bep b/app-editors/vim/vim-7.2.bep index 6820d80aa..7b6d90625 100644 --- a/app-editors/vim/vim-7.2.bep +++ b/app-editors/vim/vim-7.2.bep @@ -10,7 +10,7 @@ BUILD { cd src make autoconf cd ../ - ./configure --prefix=/boot/common --with-features=big + ./configure --prefix=`finddir B_COMMON_DIRECTORY` --with-features=big make } diff --git a/app-editors/vim/vim-7.3.bep b/app-editors/vim/vim-7.3.bep index 659c6db35..52c00432d 100644 --- a/app-editors/vim/vim-7.3.bep +++ b/app-editors/vim/vim-7.3.bep @@ -10,7 +10,7 @@ BUILD { cd src make autoconf cd ../ - ./configure --prefix=/boot/common --with-features=big + ./configure --prefix=`finddir B_COMMON_DIRECTORY` --with-features=big make } diff --git a/app-emulation/aranym/aranym-0.9.11-cvs.bep b/app-emulation/aranym/aranym-0.9.11-cvs.bep new file mode 100644 index 000000000..d5866162a --- /dev/null +++ b/app-emulation/aranym/aranym-0.9.11-cvs.bep @@ -0,0 +1,23 @@ +DESCRIPTION="ARAnyM (Atari Running on Any Machine) is a multiplatform virtual machine for running Atari ST/TT/Falcon operating systems and applications." +HOMEPAGE="http://aranym.org/" +SRC_URI="cvs://:pserver:anoncvs@cvs.aranym.org:/var/repos/aranym" +REVISION="1" +STATUS_HAIKU="untested" +DEPEND="dev-libs/libcdio >= 0.82 + media-libs/libsdl >= 1.2.10" +#CHECKSUM_MD5="" + +BUILD { + cd aranym + ./autogen.sh --help >/dev/null + ./configure --prefix=/boot/apps/ARAnyM + make +} + +INSTALL { + cd aranym + make install +} + +COPYRIGHT="2001-2010 ARAnyM developer team" +LICENSE="GNU GPL v2" diff --git a/app-emulation/libdsk/libdsk-1.3.3.bep b/app-emulation/libdsk/libdsk-1.3.3.bep new file mode 100644 index 000000000..b9217604b --- /dev/null +++ b/app-emulation/libdsk/libdsk-1.3.3.bep @@ -0,0 +1,28 @@ +DESCRIPTION="LibDSK is a library for manipulating disk image files" +HOMEPAGE="http://www.seasip.demon.co.uk/Unix/LibDsk/" +SRC_URI="http://www.seasip.info/Unix/LibDsk/libdsk-1.3.3.tar.gz" +REVISION="1" +STATUS_HAIKU="untested" +DEPEND="" +#CHECKSUM_MD5="" + +BUILD { + cd libdsk-1.3.3 + # Need to update the libtools in the package to build shared libraries + libtoolize + # We need a makefile to run make distclean... + ./configure --prefix=/boot/common + # Make sure autotools know about the updated libtools... + make distclean + # ... and run configure again + ./configure --prefix=/boot/common + make +} + +INSTALL { + cd libdsk-1.3.3 + make install +} + +COPYRIGHT="2010 John Elliott" +LICENSE="GNU GPL v2" diff --git a/app-emulation/mednafen/mednafen-0.9.26.bep b/app-emulation/mednafen/mednafen-0.9.26.bep new file mode 100644 index 000000000..a273028a5 --- /dev/null +++ b/app-emulation/mednafen/mednafen-0.9.26.bep @@ -0,0 +1,29 @@ +DESCRIPTION="A portable, utilizing OpenGL and SDL, argument(command-line)-driven multi-system emulator" +HOMEPAGE="http://mednafen.sourceforge.net/" +SRC_URI="http://sourceforge.net/projects/mednafen/files/Mednafen/0.9.26-WIP/mednafen-0.9.26-wip.tar.bz2/download" +CHECKSUM_MD5="cf4eadb057e91c59b181d07bc12245f0" +REVISION="1" +STATUS_HAIKU="stable" +MESSAGE="This port builds only with gcc4. Use 'setgcc gcc4' before building." +DEPEND="media-libs/libsdl >= 1.2.15, + dev-libs/libcdio >= 0.82, + media-libs/libsndfile >= 1.0.21" + +BUILD { + cd mednafen + ./configure --prefix=`finddir B_COMMON_DIRECTORY` + make +} + +INSTALL { + cd mednafen + make install +} + +TEST { + cd mednafen + make check +} + +LICENSE="GNU GPL v2" +COPYRIGHT="2005-2012 Mednafen Team" diff --git a/app-emulation/mednafen/patches/mednafen-0.9.26.patch b/app-emulation/mednafen/patches/mednafen-0.9.26.patch new file mode 100644 index 000000000..64199c1fe --- /dev/null +++ b/app-emulation/mednafen/patches/mednafen-0.9.26.patch @@ -0,0 +1,13 @@ +diff -Naur mednafen/mednafen/tremor/misc.h mednafen-haiku/mednafen/tremor/misc.h +--- mednafen/mednafen/tremor/misc.h 2012-03-29 20:58:54.021757952 +0000 ++++ mednafen-haiku/mednafen/tremor/misc.h 2013-01-05 18:21:51.628883456 +0000 +@@ -15,6 +15,9 @@ + + ********************************************************************/ + ++//Haiku ++#include ++ + #ifndef _V_RANDOM_H_ + #define _V_RANDOM_H_ + #include "ivorbiscodec.h" diff --git a/app-emulation/oricutron/oricutron-0.9-svn.bep b/app-emulation/oricutron/oricutron-0.9-svn.bep new file mode 100644 index 000000000..702d1bf26 --- /dev/null +++ b/app-emulation/oricutron/oricutron-0.9-svn.bep @@ -0,0 +1,20 @@ +DESCRIPTION="Oricutron is an emulator for the Oric series of computers." +HOMEPAGE="http://code.google.com/p/oriculator/" +SRC_URI="svn://http://oriculator.googlecode.com/svn/trunk" +REVISION="1" +STATUS_HAIKU="untested" +DEPEND="media-libs/libsdl >= 1.2.10" +#CHECKSUM_MD5="" + +BUILD { + cd trunk + make +} + +INSTALL { + cd trunk + make install +} + +COPYRIGHT="2009-2012 Peter Gordon" +LICENSE="GNU GPL v2" diff --git a/app-emulation/pearpc/pearpc-0.5.0-cvs.bep b/app-emulation/pearpc/pearpc-0.5.0-cvs.bep new file mode 100644 index 000000000..e8b8f682f --- /dev/null +++ b/app-emulation/pearpc/pearpc-0.5.0-cvs.bep @@ -0,0 +1,22 @@ +DESCRIPTION="PearPC PowerPC Architecture Emulator." +HOMEPAGE="http://pearpc.sourceforge.net/" +SRC_URI="cvs://:pserver:anonymous@pearpc.cvs.sourceforge.net:/cvsroot/pearpc/pearpc" +REVISION="1" +STATUS_HAIKU="untested" +DEPEND="" +#CHECKSUM_MD5="" + +BUILD { + cd pearpc-0.5.0-cvs + ./autogen.sh >/dev/null + ./configure --prefix=`finddir B_COMMON_DIRECTORY` + make +} + +INSTALL { + cd pearpc-0.5.0-cvs + make install +} + +COPYRIGHT="2003-2011 Sebastian Biallas" +LICENSE="GNU GPL v2" diff --git a/app-emulation/qemu/qemu-0.12.4.bep b/app-emulation/qemu/qemu-0.12.4.bep index 65f565d02..e97a8f4f4 100644 --- a/app-emulation/qemu/qemu-0.12.4.bep +++ b/app-emulation/qemu/qemu-0.12.4.bep @@ -8,7 +8,7 @@ CHECKSUM_MD5="93e6b134dff89b2799f57b7d9e0e0fc5" BUILD { cd qemu-0.12.4 - ./configure --prefix=/boot/common + ./configure --prefix=`finddir B_COMMON_DIRECTORY` make } diff --git a/app-i18n/anthy/anthy-9100.bep b/app-i18n/anthy/anthy-9100.bep index c2e5977d2..58d79885e 100644 --- a/app-i18n/anthy/anthy-9100.bep +++ b/app-i18n/anthy/anthy-9100.bep @@ -10,7 +10,7 @@ BUILD { aclocal autoconf automake - ./configure --prefix=/boot/common + ./configure --prefix=`finddir B_COMMON_DIRECTORY` make } diff --git a/app-misc/colordiff/colordiff-1.0.10.bep b/app-misc/colordiff/colordiff-1.0.10.bep new file mode 100644 index 000000000..1f73f2885 --- /dev/null +++ b/app-misc/colordiff/colordiff-1.0.10.bep @@ -0,0 +1,23 @@ +DESCRIPTION="Colorizes output of diff" +HOMEPAGE="http://colordiff.sourceforge.net/" +SRC_URI="http://colordiff.sourceforge.net/colordiff-1.0.10.tar.gz" +CHECKSUM_MD5="e3e86e2837deb884e43eacdc96a67baa" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="dev-lang/perl >= 5.10.1 + sys-apps/diffutils >= 2.8.1" +BUILD { + # Nothing to see here + cd colordiff-1.0.10 +} + +INSTALL { + cd colordiff-1.0.10 + make INSTALL_DIR="$(finddir B_COMMON_BIN_DIRECTORY)" \ + MAN_DIR="$(finddir B_COMMON_DOCUMENTATION_DIRECTORY)/man/man1" \ + ETC_DIR="$(finddir B_USER_SETTINGS_DIRECTORY)" \ + install +} + +LICENSE="GNU GPL v2" +COPYRIGHT="2002-2012 Dave Ewart" diff --git a/app-misc/colordiff/patches/colordiff-1.0.10.patch b/app-misc/colordiff/patches/colordiff-1.0.10.patch new file mode 100644 index 000000000..b99900f2b --- /dev/null +++ b/app-misc/colordiff/patches/colordiff-1.0.10.patch @@ -0,0 +1,9 @@ +diff -up colordiff-1.0.10/colordiff.pl.orig colordiff-1.0.10/colordiff.pl +--- colordiff-1.0.10/colordiff.pl.orig 2012-08-05 14:43:30.500432896 -0600 ++++ colordiff-1.0.10/colordiff.pl 2012-08-05 14:43:41.898367488 -0600 +@@ -1,4 +1,4 @@ +-#!/usr/bin/perl -w ++#!/boot/common/bin/perl -w + + ######################################################################## + # # diff --git a/app-misc/getopt/getopt-1.1.4.bep b/app-misc/getopt/getopt-1.1.4.bep index 4690cfc05..2ae2b7510 100644 --- a/app-misc/getopt/getopt-1.1.4.bep +++ b/app-misc/getopt/getopt-1.1.4.bep @@ -12,7 +12,7 @@ BUILD { INSTALL { cd getopt-1.1.4 - make install prefix=/boot/common DESTDIR="${DESTDIR}" + make install prefix=`finddir B_COMMON_DIRECTORY` DESTDIR="${DESTDIR}" } LICENSE="GNU GPL v2" COPYRIGHT="1997-2005 Frodo Looijaard" diff --git a/app-misc/strigi/patches/strigi-0.7.8.patch b/app-misc/strigi/patches/strigi-0.7.8.patch new file mode 100644 index 000000000..8b6d07c7a --- /dev/null +++ b/app-misc/strigi/patches/strigi-0.7.8.patch @@ -0,0 +1,40 @@ +--- strigi-0.7.8-orig/strigidaemon/CMakeLists.txt 2013-01-25 17:49:35.005767168 +0000 ++++ strigi-0.7.8/strigidaemon/CMakeLists.txt 2013-02-13 00:55:35.019660800 +0000 +@@ -126,6 +126,6 @@ + DESTINATION ${LIB_DESTINATION}/cmake/LibSearchClient) + file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/dummy.cpp "") + add_executable(strigidaemon dummy.cpp) +-target_link_libraries(strigidaemon libstrigidaemon) ++target_link_libraries(strigidaemon libstrigidaemon network) + install(TARGETS strigidaemon + RUNTIME DESTINATION bin) + +--- strigi-0.7.8-orig/strigidaemon/bin/daemon/strigithread.cpp 2013-01-25 17:49:35.020971520 +0000 ++++ strigi-0.7.8/strigidaemon/bin/daemon/strigithread.cpp 2013-02-13 00:52:47.447741952 +0000 +@@ -30,7 +30,9 @@ + #include + #include + #include ++#ifndef __HAIKU__ + #include ++#endif + + // define two enums and a constant for use of ioprio + enum { +@@ -108,6 +110,7 @@ + StrigiThread* thread = static_cast(d); + + #ifndef __APPLE__ ++#ifndef __HAIKU__ + if (thread->getPriority() > 0) { + // renice the thread + int r = setpriority(PRIO_PROCESS, 0, thread->getPriority()); +@@ -139,7 +142,7 @@ + #endif + } + #endif +- ++#endif + // start the actual work + thread->run(0); + STRIGI_LOG_DEBUG(string("strigi.daemon.") + thread->name + ".threadstarter", "end of thread"); diff --git a/app-office/abiword/abiword-2.8.6.bep b/app-office/abiword/abiword-2.8.6.bep new file mode 100644 index 000000000..a973c4127 --- /dev/null +++ b/app-office/abiword/abiword-2.8.6.bep @@ -0,0 +1,29 @@ +DESCRIPTION="AbiWord" +HOMEPAGE="http://www.abisource.com" +SRC_URI="http://www.abisource.com/downloads/abiword/2.8.6/source/abiword-2.8.6.tar.gz" +REVISION="1" +STATUS_HAIKU="broken" +DEPEND="media-libs/jpeg >= 6b + media-libs/libpng >= 1.2" +CHECKSUM_MD5="f883b0a7f26229a9c66fd6a1a94381aa" +BUILD { + cd abiword-2.8.6 + autoconf + ./configure --prefix=`finddir B_COMMON_DIRECTORY` \ + --with-haiku + make +} + +INSTALL { + cd abiword-2.8.6 + make install +} + +TEST { + cd abiword-2.8.6 +# make test +# make check +} + +#LICENSE="" +#COPYRIGHT="" diff --git a/app-office/abiword/patches/abiword-2.8.6.patch b/app-office/abiword/patches/abiword-2.8.6.patch new file mode 100644 index 000000000..10796bf2b --- /dev/null +++ b/app-office/abiword/patches/abiword-2.8.6.patch @@ -0,0 +1,84 @@ +diff -urN abiword-2.8.6/configure.in abiword-2.8.6-haiku/configure.in +--- abiword-2.8.6/configure.in 2010-06-13 13:52:21.002883584 +0000 ++++ abiword-2.8.6-haiku/configure.in 2011-04-14 13:24:55.000000000 +0000 +@@ -84,6 +84,9 @@ + ${gsf_req} + ${wv_req} + " ++haiku_pkgs=" ++ ${fribidi_req} ++" + + # optional deps + enchant_req='enchant >= 1.2.0' +@@ -119,6 +122,9 @@ + # win32 deps + win_pkgs="$enchant_req" + ++#haiku deps ++haiku_pkgs="" ++ + # + # System tests + # +@@ -144,6 +150,10 @@ + PLATFORM="win" + TOOLKIT="win" + ;; ++ *haiku*) ++ PLATFORM="haiku" ++ TOOLKIT="haiku" ++ ;; + *) + PLATFORM="unix" + TOOLKIT="gtk" +@@ -408,6 +418,16 @@ + fi + ]) + ++AC_ARG_WITH([haiku], ++ [AS_HELP_STRING([--with-haiku], [(Haiku only) add `finddir B_COMMON_DIRECTORY' prefix to CPP/LDFLAGS])], ++[ ++ if test "x$withval" != "xno"; then ++ CPPFLAGS="$CPPFLAGS -I`finddir B_COMMON_DIRECTORY`/include" ++ LDFLAGS="$LDFLAGS -L`finddir B_COMMON_DIRECTORY`/lib" ++ CC=$CXX ++ fi ++]) ++ + AC_ARG_WITH([fink], + [AS_HELP_STRING([--with-fink], [(Mac OSX only) add `/sw' prefix to CPP/LDFLAGS])], + [ +@@ -514,11 +534,14 @@ + deps_pkgs="$deps_pkgs $cocoa_pkgs" + SYSTEM_LIBS="-framework Cocoa" + AC_CHECK_PROG([CONVERT], [convert], convert, AC_MSG_ERROR(Cannot find ImageMagick convert)) ++elif test "$TOOLKIT" = "haiku"; then ++ deps_pkgs="$haiku_pkgs" ++ SYSTEM_LIBS="-lbe -lroot -lnetwork" + else + deps_pkgs="$deps_pkgs $gtk_pkgs" + fi + +-PKG_CHECK_MODULES(DEPS,[$deps_pkgs]) ++#PKG_CHECK_MODULES(DEPS,[$deps_pkgs]) + dnl specific gtk214 test. + if test "$TOOLKIT" = "gtk"; then + PKG_CHECK_MODULES(GTK214, gtk+-2.0 > 2.14, [abi_cv_gtk214=yes], +@@ -647,6 +670,7 @@ + AM_CONDITIONAL([TOOLKIT_COCOA], test "$TOOLKIT" == "cocoa") + AM_CONDITIONAL([TOOLKIT_GTK], test "$TOOLKIT" == "gtk") + AM_CONDITIONAL([TOOLKIT_WIN], test "$TOOLKIT" == "win") ++AM_CONDITIONAL([TOOLKIT_HAIKU], test "$TOOLKIT" == "haiku") + + if test "$enable_dynamic" == ""; then + enable_dynamic="no" +@@ -783,7 +807,7 @@ + eval $(echo "enable_$plugin")="auto" + done + else +- default_plugins="opendocument" ++ default_plugins="" + + if test "$abi_cv_disable_default_plugins" != "yes"; then + PLUGINS="$default_plugins" diff --git a/app-shells/fish/fish-1.23.1-git.bep b/app-shells/fish/fish-1.23.1-git.bep new file mode 100644 index 000000000..db9e1bea1 --- /dev/null +++ b/app-shells/fish/fish-1.23.1-git.bep @@ -0,0 +1,29 @@ +DESCRIPTION="The friendly interactive shell" +HOMEPAGE="http://ridiculousfish.com/shell/" +SRC_URI="git://git.gitorious.org/fish-shell/fish-shell.git" +#CHECKSUM_MD5="" +REVISION="1" +STATUS_HAIKU="untested" +DEPEND="app-doc/doxygen >= 1.7.4 + sys-libs/ncurses >= 5.9" +MESSAGE="This port only builds with gcc4. Use 'setgcc gcc4' before building." +BUILD { + cd fish-1.23.1-git + libtoolize --force --copy --install + autoconf + ./configure --without-xsel --prefix=`finddir B_COMMON_DIRECTORY` + make +} + +INSTALL { + cd fish-1.23.1-git + make install DESTDIR=${DESTDIR} +} + +TEST { + cd fish-1.23.1-git + make test +} + +LICENSE="GNU GPL v2" +COPYRIGHT="2005-2009 Axel Liljencrantz" diff --git a/app-shells/fish/patches/fish-1.23.1-git.patch b/app-shells/fish/patches/fish-1.23.1-git.patch new file mode 100644 index 000000000..4548969ba --- /dev/null +++ b/app-shells/fish/patches/fish-1.23.1-git.patch @@ -0,0 +1,152 @@ +diff --git a/configure.ac fish-1.23.1-git/configure.ac +index 377ab5e..672d34b 100644 +--- a/configure.ac ++++ fish-1.23.1-git/configure.ac +@@ -105,7 +105,7 @@ fi + # tree and doesn't update CFLAGS. + # + +-for i in /usr/pkg /sw /opt /opt/local; do ++for i in /usr/pkg /sw /opt /opt/local /boot/common; do + + AC_MSG_CHECKING([for $i/include include directory]) + if test -d $i/include; then +@@ -119,7 +119,8 @@ for i in /usr/pkg /sw /opt /opt/local; do + AC_MSG_CHECKING([for $i/lib library directory]) + if test -d $i/lib; then + AC_MSG_RESULT(yes) +- LDFLAGS="$LDFLAGS -L$i/lib/ -R$i/lib/" ++ LDFLAGS="$LDFLAGS -L$i/lib/" ++ #LDFLAGS="$LDFLAGS -R$i/lib/" + else + AC_MSG_RESULT(no) + fi +@@ -142,6 +143,12 @@ AC_CONFIG_HEADERS(config.h) + + + # ++# Ask autoconf to detect the platform type ++# ++AC_CANONICAL_TARGET ++ ++ ++# + # This adds markup to the code that results in a few extra compile + # time checks on recent GCC versions. It helps stop a few common bugs. + # +@@ -306,7 +313,13 @@ if test "$GCC" = yes; then + # bug has been verified to not exist on Linux using GCC 3.3.3. + # + +- CFLAGS="$CFLAGS -fno-optimize-sibling-calls" ++ case $target_os in ++ beos*|haiku*) ++ ;; ++ *) ++ CFLAGS="$CFLAGS -fno-optimize-sibling-calls" ++ ;; ++ esac + + + # +@@ -319,7 +332,13 @@ if test "$GCC" = yes; then + # This is needed in order to get the really cool backtraces + # + +- LDFLAGS_FISH="$LDFLAGS_FISH -rdynamic" ++ case $target_os in ++ beos*|haiku*) ++ ;; ++ *) ++ LDFLAGS_FISH="$LDFLAGS_FISH -rdynamic" ++ ;; ++ esac + + fi + +@@ -378,8 +397,6 @@ fi + # seems that tputs is never really needed. + # + +-AC_CANONICAL_TARGET +- + if test $target_cpu = powerpc; then + AC_DEFINE([TPUTS_KLUDGE],[1],[Evil kludge to get Power based machines to work]) + fi +@@ -510,7 +527,7 @@ AC_DEFINE( + # Check for os dependant libraries for all binaries. + LIBS_COMMON=$LIBS + LIBS="" +-AC_SEARCH_LIBS( connect, socket, , [AC_MSG_ERROR([Cannot find the socket library, needed to build this package.] )] ) ++AC_SEARCH_LIBS( connect, network socket, , [AC_MSG_ERROR([Cannot find the socket library, needed to build this package.] )] ) + AC_SEARCH_LIBS( nanosleep, rt, , [AC_MSG_ERROR([Cannot find the rt library, needed to build this package.] )] ) + AC_SEARCH_LIBS( setupterm, [ncurses curses], , [AC_MSG_ERROR([Could not find a curses implementation, needed to build fish])] ) + AC_SEARCH_LIBS( [nan], [m], [AC_DEFINE( [HAVE_NAN], [1], [Define to 1 if you have the nan function])] ) +@@ -555,7 +572,7 @@ LIBS="$LIBS_SHARED" + if test x$local_gettext != xno; then + AC_SEARCH_LIBS( gettext, intl,,) + fi +-AC_SEARCH_LIBS( iconv_open, iconv, , [AC_MSG_ERROR([Could not find an iconv implementation, needed to build fish])] ) ++AC_SEARCH_LIBS( iconv_open, iconv, , [AC_SEARCH_LIBS( libiconv_open, iconv, , [AC_MSG_ERROR([Could not find an iconv implementation, needed to build fish])] )] ) + LIBS_FISH_PAGER=$LIBS + LIBS=$LIBS_COMMON + +@@ -568,7 +585,7 @@ LIBS="$LIBS_SHARED" + if test x$local_gettext != xno; then + AC_SEARCH_LIBS( gettext, intl,,) + fi +-AC_SEARCH_LIBS( iconv_open, iconv, , [AC_MSG_ERROR([Could not find an iconv implementation, needed to build fish])] ) ++AC_SEARCH_LIBS( iconv_open, iconv, , [AC_SEARCH_LIBS( libiconv_open, iconv, , [AC_MSG_ERROR([Could not find an iconv implementation, needed to build fish])] )] ) + LIBS_FISHD=$LIBS + LIBS=$LIBS_COMMON + +diff --git a/proc.c fish-1.23.1-git/proc.c +index edcc7c6..30dd96f 100644 +--- a/proc.c ++++ fish-1.23.1-git/proc.c +@@ -482,8 +482,11 @@ static void handle_child_status( pid_t pid, int status ) + return; + } + +- ++#ifdef SA_SIGINFO + void job_handle_signal ( int signal, siginfo_t *info, void *con ) ++#else ++void job_handle_signal ( int signal ) ++#endif + { + + int status; +diff --git a/proc.h fish-1.23.1-git/proc.h +index dd46bc0..3618956 100644 +--- a/proc.h ++++ fish-1.23.1-git/proc.h +@@ -427,7 +427,9 @@ int job_reap( int interactive ); + Signal handler for SIGCHLD. Mark any processes with relevant + information. + */ ++#ifdef SA_SIGINFO + void job_handle_signal( int signal, siginfo_t *info, void *con ); ++#endif + + /** + Send the specified signal to all processes in the specified job. +diff --git a/signal.c fish-1.23.1-git/signal.c +index 2ac38aa..3ff1d38 100644 +--- a/signal.c ++++ fish-1.23.1-git/signal.c +@@ -29,6 +29,14 @@ The library for various signal related issues + #include "reader.h" + #include "proc.h" + ++#ifdef __HAIKU__ ++#ifndef SA_SIGINFO ++#define SA_SIGINFO 0 ++typedef struct { ++} siginfo_t; ++#define sa_sigaction sa_handler ++#endif ++#endif + + /** + Struct describing an entry for the lookup table used to convert diff --git a/app-shells/zsh/patches/zsh-5.0.0.patch b/app-shells/zsh/patches/zsh-5.0.0.patch new file mode 100644 index 000000000..2d984f9a0 --- /dev/null +++ b/app-shells/zsh/patches/zsh-5.0.0.patch @@ -0,0 +1,55 @@ +diff -aur zsh-5.0.0.org/configure.ac zsh-5.0.0/configure.ac +--- zsh-5.0.0.org/configure.ac 2012-06-21 20:36:03.034865152 +0200 ++++ zsh-5.0.0/configure.ac 2012-11-04 20:38:45.770703360 +0100 +@@ -796,8 +796,8 @@ + AC_CHECK_LIB(cap, cap_get_proc) + fi + +-AC_CHECK_LIB(socket, socket) +-AC_SEARCH_LIBS(gethostbyname2, bind) ++AC_SEARCH_LIBS(socket, socket network) ++AC_SEARCH_LIBS(gethostbyname2, bind network) + + case $LIBS in + *-lbind*) +diff -aur zsh-5.0.0.org/Functions/Newuser/zsh-newuser-install zsh-5.0.0/Functions/Newuser/zsh-newuser-install +--- zsh-5.0.0.org/Functions/Newuser/zsh-newuser-install 2010-08-12 21:09:05.037224448 +0200 ++++ zsh-5.0.0/Functions/Newuser/zsh-newuser-install 2012-11-04 20:37:13.598736896 +0100 +@@ -10,14 +10,17 @@ + # How the function will be referred to. + local myname=zsh-newuser-install + +-# Quick test not requiring any setting up. +-# Don't run if we're root. (These variables are provided by the shell.) +-if (( EUID == 0 || UID == 0 )); then +- if [[ $1 = -f ]]; then +- print -r "$myname: won't run as root. Read the manual." >&2 +- fi +- return 1 +-fi ++# Haiku OS specific: We want to perform newuser configuration for ++# zero UID too! ;-) So we have to disable it by patch. ++## ++## Quick test not requiring any setting up. ++## Don't run if we're root. (These variables are provided by the shell.) ++#if (( EUID == 0 || UID == 0 )); then ++# if [[ $1 = -f ]]; then ++# print -r "$myname: won't run as root. Read the manual." >&2 ++# fi ++# return 1 ++#fi + + # clear is missing in some Cygwin configurations (lacking ncurses) + if ! ( clear >/dev/null 2>/dev/null ); then +diff -aur zsh-5.0.0.org/Src/prototypes.h zsh-5.0.0/Src/prototypes.h +--- zsh-5.0.0.org/Src/prototypes.h 2011-05-03 20:38:21.027000832 +0200 ++++ zsh-5.0.0/Src/prototypes.h 2012-11-04 21:07:23.734789632 +0100 +@@ -40,7 +40,7 @@ + * TBD: we'd much prefer to get hold of the header where + * these are defined. + */ +-#ifdef _AIX ++#if defined(_AIX) || defined(__HAIKU__) + #define TC_CONST const + #else + #define TC_CONST diff --git a/app-shells/zsh/zsh-4.3.10.bep b/app-shells/zsh/zsh-4.3.10.bep index 4f3349e3a..dda63358d 100644 --- a/app-shells/zsh/zsh-4.3.10.bep +++ b/app-shells/zsh/zsh-4.3.10.bep @@ -8,7 +8,7 @@ DEPEND="" BUILD { cd zsh-4.3.10 autoconf - ./configure --prefix=/boot/common + ./configure --prefix=`finddir B_COMMON_DIRECTORY` make } diff --git a/app-shells/zsh/zsh-5.0.0.bep b/app-shells/zsh/zsh-5.0.0.bep new file mode 100644 index 000000000..107a8d4ed --- /dev/null +++ b/app-shells/zsh/zsh-5.0.0.bep @@ -0,0 +1,25 @@ +DESCRIPTION="Zsh is a shell designed for interactive use, although it is also a powerful scripting language." +HOMEPAGE="http://www.zsh.org" +SRC_URI="http://sourceforge.net/projects/zsh/files/zsh/5.0.0/zsh-5.0.0.tar.bz2/download" +REVISION="1" +CHECKSUM_MD5="e8484468925cec8d9a84b8b04797e764" +STATUS_HAIKU="unstable" +DEPEND="" +BUILD { + cd zsh-5.0.0 + autoconf + COMMON_DOCS=`finddir B_COMMON_DOCUMENTATION_DIRECTORY` + ./configure --prefix=`finddir B_COMMON_DIRECTORY` \ + --datadir=`finddir B_COMMON_DATA_DIRECTORY` \ + --mandir=$COMMON_DOCS/man \ + --infodir=$COMMON_DOCS/info \ + LIBS="-lgnu" + make +} + +INSTALL { + cd zsh-5.0.0 + make install +} +LICENSE="ZSH" +COPYRIGHT="(c) 1992-2009 Paul Falstad, Richard Coleman, Zoltán Hidvégi, Andrew Main, Peter Stephenson, Sven Wishnowsky, and others." diff --git a/app-text/antiword/antiword-0.37.bep b/app-text/antiword/antiword-0.37.bep index 0ad1c9bf8..1f1fe561e 100644 --- a/app-text/antiword/antiword-0.37.bep +++ b/app-text/antiword/antiword-0.37.bep @@ -1,5 +1,5 @@ -DESCRIPTION="antiword is a free MS Word reader." -HOMEPAGE="http://www.winfield.demon.nl" +DESCRIPTION="Converts MS Word files to text and ps" +HOMEPAGE="http://www.winfield.demon.nl/#Programmer" SRC_URI="http://www.winfield.demon.nl/linux/antiword-0.37.tar.gz" REVISION="1" STATUS_HAIKU="stable" @@ -7,15 +7,13 @@ DEPEND="" CHECKSUM_MD5="f868e2a269edcbc06bf77e89a55898d1" BUILD { cd antiword-0.37 - make + make --makefile Makefile.haiku } INSTALL { cd antiword-0.37 - make global_install DESTDIR=${DESTDIR} \ - GLOBAL_INSTALL_DIR=`finddir B_COMMON_BIN_DIRECTORY` \ - GLOBAL_RESOURCES_DIR=`finddir B_COMMON_DATA_DIRECTORY`/antiword - + make --makefile Makefile.haiku global_install } + LICENSE="GNU GPL v2" COPYRIGHT="1998-2005 A.J. van Os" diff --git a/app-text/antiword/patches/antiword-0.37.patch b/app-text/antiword/patches/antiword-0.37.patch new file mode 100644 index 000000000..02cf41c35 --- /dev/null +++ b/app-text/antiword/patches/antiword-0.37.patch @@ -0,0 +1,116 @@ +diff -Naur antiword-0.37/antiword.h antiword-0.37-haiku/antiword.h +--- antiword-0.37/antiword.h 2005-07-06 17:46:22.000000000 +0000 ++++ antiword-0.37-haiku/antiword.h 2012-12-27 19:30:23.169607168 +0000 +@@ -211,6 +211,10 @@ + #define GLOBAL_ANTIWORD_DIR "/boot/home/config/apps/antiword" + #define ANTIWORD_DIR "antiword" + #define FONTNAMES_FILE "fontnames" ++#elif defined(__haiku) ++#define GLOBAL_ANTIWORD_DIR "/boot/common/data/antiword" ++#define ANTIWORD_DIR "antiword" ++#define FONTNAMES_FILE "fontnames" + #elif defined(__CYGMING__) + #define GLOBAL_ANTIWORD_DIR "C:\\antiword" + #define ANTIWORD_DIR "antiword" +diff -Naur antiword-0.37/Makefile.haiku antiword-0.37-haiku/Makefile.haiku +--- antiword-0.37/Makefile.haiku 1970-01-01 00:00:00.000000000 +0000 ++++ antiword-0.37-haiku/Makefile.haiku 2012-12-27 19:14:41.153092096 +0000 +@@ -0,0 +1,97 @@ ++# ++# Makefile for antiword (Haiku version) ++# ++ ++CC = gcc ++LD = gcc ++ ++INSTALL = cp -f ++INSTALL_PROGRAM = $(INSTALL) ++INSTALL_DATA = $(INSTALL) ++ ++# must be equal to DEBUG or NDEBUG ++DB = DEBUG ++# Optimization: -O or debugging: -g ++OPT = -O2 ++ ++LDLIBS = ++ ++CFLAGS = -Wall -pedantic $(OPT) -D$(DB) -D__haiku ++LDFLAGS = ++ ++OBJS =\ ++ main_u.o asc85enc.o blocklist.o chartrans.o datalist.o depot.o\ ++ dib2eps.o doclist.o fail.o finddata.o findtext.o fmt_text.o fontlist.o\ ++ fonts.o fonts_u.o hdrftrlist.o imgexam.o imgtrans.o jpeg2eps.o\ ++ listlist.o misc.o notes.o options.o out2window.o output.o pdf.o\ ++ pictlist.o png2eps.o postscript.o prop0.o prop2.o prop6.o prop8.o\ ++ properties.o propmod.o rowlist.o sectlist.o stylelist.o stylesheet.o\ ++ summary.o tabstop.o text.o unix.o utf8.o word2text.o worddos.o\ ++ wordlib.o wordmac.o wordole.o wordwin.o xmalloc.o xml.o ++ ++PROGS =\ ++ antiword\ ++ kantiword ++ ++LOCAL_INSTALL_DIR = $(HOME)/bin ++LOCAL_RESOURCES_DIR = $(HOME)/.antiword ++ ++GLOBAL_INSTALL_DIR = /boot/common/bin ++GLOBAL_RESOURCES_DIR = /boot/common/data/antiword ++ ++all: $(PROGS) ++ ++install: all ++ mkdir -p $(LOCAL_INSTALL_DIR) ++ cp -pf $(PROGS) $(LOCAL_INSTALL_DIR) ++ mkdir -p $(LOCAL_RESOURCES_DIR) ++# cp -pf Resources/* $(LOCAL_RESOURCES_DIR) ++ ++# NOTE: you might have to be root to do this ++global_install: all ++# @[ `id -u` -eq 0 ] || (echo "You must be root to do this" && false) ++ mkdir -p $(DESTDIR)$(GLOBAL_INSTALL_DIR) ++ $(INSTALL_PROGRAM) $(PROGS) $(DESTDIR)$(GLOBAL_INSTALL_DIR) ++ cd $(DESTDIR)$(GLOBAL_INSTALL_DIR); chmod 755 $(PROGS) ++ mkdir -p $(DESTDIR)$(GLOBAL_RESOURCES_DIR) ++ chmod 755 $(DESTDIR)$(GLOBAL_RESOURCES_DIR) ++ $(INSTALL_DATA) Resources/*.txt $(DESTDIR)$(GLOBAL_RESOURCES_DIR) ++ $(INSTALL_DATA) Resources/fontnames $(DESTDIR)$(GLOBAL_RESOURCES_DIR) ++ cd $(DESTDIR)$(GLOBAL_RESOURCES_DIR); chmod 644 *.txt fontnames ++ ++# NOTE: you might have to be root to do this ++global_uninstall: ++# @[ `id -u` -eq 0 ] || (echo "You must be root to do this" && false) ++ cd $(DESTDIR)$(GLOBAL_INSTALL_DIR); rm -f $(PROGS) ++ -rmdir $(DESTDIR)$(GLOBAL_INSTALL_DIR) ++ cd $(DESTDIR)$(GLOBAL_RESOURCES_DIR); rm -f *.txt fontnames ++ -rmdir $(DESTDIR)$(GLOBAL_RESOURCES_DIR) ++ ++clean: ++ rm -f $(OBJS) ++ rm -f $(PROGS) ++ ++antiword: $(OBJS) ++ @rm -f $@ ++ $(LD) $(LDFLAGS) $(OBJS) $(LDLIBS) -o $@ ++ @chmod 750 $@ ++ ++kantiword: Unix-only/KDE3-only/kantiword.sh ++ @rm -f $@ ++ echo "#!/bin/bash" > $@ ++ cat $? >> $@ ++ @chmod 750 $@ ++ ++.c.o: ++ $(CC) $(CFLAGS) -c $< ++ ++main_u.o: version.h ++postscript.o: version.h ++pdf.o: version.h ++fonts_u.o: fontinfo.h ++ ++fontinfo.h: Unix-only/fontinfo.h ++ cp -rp $? $@ ++ ++Unix-only/fontinfo.h: Unix-only/fontinfo.pl ++ Unix-only/fontinfo.pl > Unix-only/fontinfo.h + diff --git a/app-text/aspell/aspell-0.60.6.bep b/app-text/aspell/aspell-0.60.6.bep index 741c8ee9e..04b35f516 100644 --- a/app-text/aspell/aspell-0.60.6.bep +++ b/app-text/aspell/aspell-0.60.6.bep @@ -11,7 +11,7 @@ BUILD { aclocal -I m4 autoconf automake - ./configure --prefix=/boot/common + ./configure --prefix=`finddir B_COMMON_DIRECTORY` make } diff --git a/app-text/convmv/convmv-1.15.bep b/app-text/convmv/convmv-1.15.bep new file mode 100644 index 000000000..8846ecc96 --- /dev/null +++ b/app-text/convmv/convmv-1.15.bep @@ -0,0 +1,29 @@ +DESCRIPTION="converts filenames from one encoding to another" +HOMEPAGE="https://www.j3e.de/linux/convmv/" +SRC_URI="https://www.j3e.de/linux/convmv/convmv-1.15.tar.gz" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="dev-lang/perl >= 5.8" +CHECKSUM_MD5="b1bb703c08c6355868d15890ff193f7d" +BUILD { + cd convmv-1.15 + sed -i "s#/usr/bin/perl#`finddir B_COMMON_BIN_DIRECTORY`/perl#" convmv + make \ + PREFIX=`finddir B_COMMON_DIRECTORY` \ + MANDIR=`finddir B_COMMON_DOCUMENTATION_DIRECTORY`/man +} + +INSTALL { + cd convmv-1.15 + make install \ + PREFIX=`finddir B_COMMON_DIRECTORY` \ + MANDIR=`finddir B_COMMON_DOCUMENTATION_DIRECTORY`/man +} + +TEST { + cd convmv-1.15 + make test +} + +LICENSE="GNU GPL v2" +COPYRIGHT="2003-2011 Bjoern JACKE" diff --git a/app-text/convmv/patches/convmv-1.15.patch b/app-text/convmv/patches/convmv-1.15.patch new file mode 100644 index 000000000..a326e105d --- /dev/null +++ b/app-text/convmv/patches/convmv-1.15.patch @@ -0,0 +1,19 @@ +diff -ur convmv-1.15.org/Makefile convmv-1.15/Makefile +--- convmv-1.15.org/Makefile 2008-11-29 14:49:38.012845056 +0100 ++++ convmv-1.15/Makefile 2012-04-21 02:00:10.777519104 +0200 +@@ -6,6 +6,7 @@ + SED=sed + + all: manpage ++ sed -i "s#/usr/bin/perl#`which perl`#" convmv + + install: all + mkdir -p $(DESTDIR)$(MANDIR)/man1/ +@@ -22,6 +23,7 @@ + + test: + test -d suite || $(TAR) xf testsuite.tar ++ sed -i "s#/usr/bin/perl#`which perl`#" suite/parsable_tester.pl + cd suite ; ./dotests.sh + + dist: clean diff --git a/app-text/discount/discount-2.1.3.bep b/app-text/discount/discount-2.1.3.bep new file mode 100644 index 000000000..0dbba6cc7 --- /dev/null +++ b/app-text/discount/discount-2.1.3.bep @@ -0,0 +1,21 @@ +DESCRIPTION="An implementation of John Gruber's Markdown text to html language written in C" +HOMEPAGE="http://www.pell.portland.or.us/~orc/Code/discount/" +SRC_URI="http://www.pell.portland.or.us/~orc/Code/discount/discount-2.1.3.tar.bz2" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="" +CHECKSUM_MD5="a1a4eade44f8141e38f2be7f2ed56c98" +BUILD { + cd discount-2.1.3 + ./configure.sh --prefix=$(finddir B_COMMON_DIRECTORY) \ + --mandir=$(finddir B_COMMON_DOCUMENTATION_DIRECTORY)/man \ + --enable-all-features + make +} + +INSTALL { + cd discount-2.1.3 + make install.everything +} +LICENSE="BSD (4-clause)" +COPYRIGHT="2007-2012 David Loren Parsons" diff --git a/app-text/ebook-tools/ebook-tools-0.2.1.bep b/app-text/ebook-tools/ebook-tools-0.2.1.bep new file mode 100644 index 000000000..b991c058e --- /dev/null +++ b/app-text/ebook-tools/ebook-tools-0.2.1.bep @@ -0,0 +1,23 @@ +DESCRIPTION="Tools for accessing and converting various ebook file formats" +HOMEPAGE="http://sourceforge.net/projects/ebook-tools/" +SRC_URI="http://sourceforge.net/projects/ebook-tools/files/ebook-tools/0.2.1/ebook-tools-0.2.1.tar.gz" +CHECKSUM_MD5="cabbd2ef9148a61ca5f6e60ca63e6045" +REVISION="1" +STATUS_HAIKU="stable" +MESSAGE="This port only builds with gcc4. Use 'setgcc gcc4' before building." +DEPEND="libzip >= 0.10" + +BUILD { + cd ebook-tools-0.2.1 + sed -i 's/-Wmissing-format-attribute//' CMakeLists.txt + cmake . + make +} + +INSTALL { + cd ebook-tools-0.2.1 + make install +} + +LICENSE="MIT" +COPYRIGHT="2008 Ely Levy" diff --git a/app-text/gocr/gocr-0.49.bep b/app-text/gocr/gocr-0.49.bep new file mode 100644 index 000000000..cd25998ec --- /dev/null +++ b/app-text/gocr/gocr-0.49.bep @@ -0,0 +1,26 @@ +DESCRIPTION="An OCR (Octical Character Recognition) reader" +HOMEPAGE="http://jocr.sofrceforge.net" +SRC_URI="http://www-e.uni-magdeburg.de/jschulen/ocr/gocr-0.49.tar.gz" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="" +CHECKSUM_MD5="4e527bc4bdd97c2be15fdd818857507f" + +BUILD { + cd gocr-0.49 + libtoolize --force --copy --install + aclocal + autoconf + ./configure --prefix=`finddir B_COMMON_DIRECTORY` \ + --libdir=`finddir B_COMMON_LIB_DIRECTORY` \ + --bindir=`finddir B_COMMON_BIN_DIRECTORY` + make +} + +INSTALL { + cd gocr-0.49 + make install DESTDIR=${DESTDIR} +} + +LICENSE="GNU GPL v2" +COPYRIGHT="2000-2010 Joerg Schulenburg" diff --git a/app-text/gocr/patches/gocr-0.49.patch b/app-text/gocr/patches/gocr-0.49.patch new file mode 100644 index 000000000..d2be483be --- /dev/null +++ b/app-text/gocr/patches/gocr-0.49.patch @@ -0,0 +1,58 @@ +diff -urN gocr-0.49-orig/configure.in gocr-0.49/configure.in +--- gocr-0.49-orig/configure.in 2010-08-04 12:33:10.000000000 +0000 ++++ gocr-0.49/configure.in 2011-06-03 13:04:26.985137152 +0000 +@@ -41,8 +41,8 @@ + # netpbm-9 : libpnm + pnm.h (+ p[bgp]m.h) + # pnm_readpaminit (netpbm-10) + # pnm_readpnminit (netpbm-9,10) +-# ToDo: how to check that -lm is needed? +-LDFLAGS="-lm $LDFLAGS" ++AC_CHECK_LIBM ++LDFLAGS="$LIBM $LDFLAGS" + AC_SEARCH_LIBS(pnm_readpnminit,[netpbm pnm],[check_netpbm_h="pam.h pnm.h"], + [ echo " * * * try option --with-netpbm=PATH"]) + fi +diff -urN gocr-0.49-orig/src/barcode.c gocr-0.49/src/barcode.c +--- gocr-0.49-orig/src/barcode.c 2010-08-04 12:03:59.000000000 +0000 ++++ gocr-0.49/src/barcode.c 2011-06-03 13:05:00.909115392 +0000 +@@ -999,8 +999,10 @@ + /* j is the num of bars found above, some inner bars are not counted */ + /* ToDo: better iterative add next nearest bars from sorted list near bars? */ + { +- int row, col; ++ int row, col, nc, nr, dm_d; ++ int cpos=0; + char *dm_bitmap=NULL; ++ char *code=0; + + // store pattern without finder pattern into dm_bitmap + dm_bitmap=(char *)malloc(4*(bx1-regx)*(by1-regy)); +@@ -1016,6 +1018,7 @@ + + /* transport the info to the gocr-output (development) */ + if (JOB->cfg.verbose) { ++ + fprintf(stderr,"\n# "); + for (col=0;col<2*bx1;col++) + if (col<=8) fprintf(stderr," %1d",col); else +@@ -1048,7 +1051,6 @@ + } + } + +- char *code=0; int cpos=0; + box2->c=PICTURE; /* BARCODE */ + code=NULL; + code=(char *)malloc(6*4*bx1*by1/8+128); /* maxlen: &#%3d; = 6 */ +@@ -1070,9 +1072,10 @@ + /* ToDo: decode and print/store barcode bars=j */ + x = +0; // col += 2 + y = +4; // row -= 2 +- int nc=2*(bx1-regx), nr=2*(by1-regy), ++ nc=2*(bx1-regx); ++ nr=2*(by1-regy); + // dm_mode=0, // ECC200-mode: 0=ASCII+digitpair, 230=C40 +- dm_d=+1; // direction right/down ++ dm_d=+1; // direction right/down + for (j=0;j<(bx1-regx)*(by1-regy)/2;j++) { // each byte + int dm_byte=0; + const int *pp; /* pointer to (const int) */ diff --git a/app-text/gpp/gpp-2.4.bep b/app-text/gpp/gpp-2.4.bep new file mode 100644 index 000000000..24a5a82b8 --- /dev/null +++ b/app-text/gpp/gpp-2.4.bep @@ -0,0 +1,24 @@ +DESCRIPTION="GPP is a general-purpose preprocessor with customizable syntax, suitable for a wide range of preprocessing tasks. Its independence from any programming language makes it much more versatile than cpp, while its syntax is lighter and more flexible than that of m4." +HOMEPAGE="http://files.nothingisreal.com/software/gpp/gpp.html" +SRC_URI="http://files.nothingisreal.com/software/gpp/gpp-2.24.tar.bz2" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="" +CHECKSUM_MD5="f04c2a23312ab3d0c462c7972d1c6aa6" +BUILD { + cd gpp-2.24 + libtoolize --force --copy --install + aclocal + automake --add-missing -Wnone + autoconf + ./configure --prefix=`finddir B_COMMON_DIRECTORY` + make +} + +INSTALL { + cd gpp-2.24 + make install +} + +LICENSE="GPP" +COPYRIGHT="Copyright 1996–2001 Denis Auroux. Copyright 2003, 2004 Tristan Miller." diff --git a/app-text/gpp/licenses/GPP b/app-text/gpp/licenses/GPP new file mode 100644 index 000000000..1d8adb05a --- /dev/null +++ b/app-text/gpp/licenses/GPP @@ -0,0 +1,11 @@ +AUTHOR + +GPP was written by Denis Auroux . Since version 2.12 it has been maintained by Tristan Miller . + +COPYRIGHT + +Copyright © 1996–2001 Denis Auroux. +Copyright © 2003, 2004 Tristan Miller. +Permission is granted to anyone to make or distribute verbatim copies of this document as received, in any medium, provided that the copyright notice and this permission notice are preserved, thus giving the recipient permission to redistribute in turn. + +Permission is granted to distribute modified versions of this document, or of portions of it, under the above conditions, provided also that they carry prominent notices stating who last changed them. \ No newline at end of file diff --git a/app-text/htmldoc/htmldoc-1.8.27.bep b/app-text/htmldoc/htmldoc-1.8.27.bep new file mode 100644 index 000000000..617dbd975 --- /dev/null +++ b/app-text/htmldoc/htmldoc-1.8.27.bep @@ -0,0 +1,33 @@ +DESCRIPTION="HTMLDOC converts HTML files and web pages into index HTML, Adobe Postscript or Adobe Portable Documenrt Format files (pdf)." +HOMEPAGE="http://www.htmldoc.org" +SRC_URI="http://ftp.easysw.com/pub/htmldoc/1.8.27/htmldoc-1.8.27-source.zip" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="" +CHECKSUM_MD5="cb45c2823e282e3cd0cc05172e305072" +BUILD { + cd htmldoc-1.8.27 + autoconf + chmod 755 configure + COMMON_DOCS=`finddir B_COMMON_DOCUMENTATION_DIRECTORY` + ./configure --prefix=`finddir B_COMMON_DIRECTORY` \ + --bindir=`finddir B_COMMON_BIN_DIRECTORY` \ + --datadir=`finddir B_COMMON_DATA_DIRECTORY` \ + --docdir=$COMMON_DOCS \ + --mandir=$COMMON_DOCS/man + make +} + +INSTALL { + cd htmldoc-1.8.27 + make install +} + +TEST { + cd htmldoc-1.8.27 +# make test +# make check +} + +#LICENSE="" +#COPYRIGHT="" diff --git a/app-text/htmldoc/patches/htmldoc-1.8.27.patch b/app-text/htmldoc/patches/htmldoc-1.8.27.patch new file mode 100644 index 000000000..a0d81716c --- /dev/null +++ b/app-text/htmldoc/patches/htmldoc-1.8.27.patch @@ -0,0 +1,124 @@ +diff -urN htmldoc-1.8.27-orig/configure.in htmldoc-1.8.27/configure.in +--- htmldoc-1.8.27-orig/configure.in 2006-08-02 19:36:53.000000000 +0000 ++++ htmldoc-1.8.27/configure.in 2011-05-23 09:05:32.608174080 +0000 +@@ -109,7 +109,7 @@ + AC_SUBST(LDFLAGS) + + AC_CHECK_LIB(m,pow) +-AC_SEARCH_LIBS(socket, socket) ++AC_SEARCH_LIBS(socket, network socket) + AC_SEARCH_LIBS(gethostbyaddr, nsl) + AC_SEARCH_LIBS(getaddrinfo, nsl, AC_DEFINE(HAVE_GETADDRINFO)) + AC_SEARCH_LIBS(getnameinfo, nsl, AC_DEFINE(HAVE_GETNAMEINFO)) +@@ -316,8 +316,8 @@ + bindir="$exec_prefix/bin" + fi + +-AC_DEFINE_UNQUOTED(DOCUMENTATION, "$prefix/share/doc/htmldoc") +-AC_DEFINE_UNQUOTED(HTML_DATA, "$prefix/share/htmldoc") ++AC_DEFINE_UNQUOTED(DOCUMENTATION, "$prefix/data/doc/htmldoc") ++AC_DEFINE_UNQUOTED(HTML_DATA, "$prefix/data/htmldoc") + + dnl Update compiler options... + if test -n "$GXX"; then +diff -urN htmldoc-1.8.27-orig/data/Makefile htmldoc-1.8.27/data/Makefile +--- htmldoc-1.8.27-orig/data/Makefile 2004-05-10 01:14:53.000000000 +0000 ++++ htmldoc-1.8.27/data/Makefile 2011-05-23 09:03:53.007602176 +0000 +@@ -53,11 +53,11 @@ + # + + install: +- if [ ! -d $(datadir)/htmldoc/data ]; then\ +- $(MKDIR) $(datadir)/htmldoc/data;\ ++ if [ ! -d $(DESTDIR)$(datadir)/htmldoc/data ]; then\ ++ $(MKDIR) $(DESTDIR)$(datadir)/htmldoc/data;\ + fi +- $(CP) $(FILES) $(datadir)/htmldoc/data +- $(CHMOD) ugo+r $(datadir)/htmldoc/data/* ++ $(CP) $(FILES) $(DESTDIR)$(datadir)/htmldoc/data ++ $(CHMOD) ugo+r $(DESTDIR)$(datadir)/htmldoc/data/* + + + # +diff -urN htmldoc-1.8.27-orig/doc/Makefile htmldoc-1.8.27/doc/Makefile +--- htmldoc-1.8.27-orig/doc/Makefile 2005-10-28 20:32:59.000000000 +0000 ++++ htmldoc-1.8.27/doc/Makefile 2011-05-23 09:03:57.148897792 +0000 +@@ -57,16 +57,16 @@ + # + + install: $(DOCUMENTS) +- if [ ! -d $(datadir)/doc/htmldoc ]; then\ +- $(MKDIR) $(datadir)/doc/htmldoc;\ ++ if [ ! -d $(DESTDIR)$(mandir)/doc/htmldoc ]; then\ ++ $(MKDIR) $(DESTDIR)$(mandir)/doc/htmldoc;\ + fi +- $(CP) $(DOCFILES) $(datadir)/doc/htmldoc +- $(CHMOD) ugo+r $(datadir)/doc/htmldoc/* +- if [ ! -d $(mandir)/man1 ]; then\ +- $(MKDIR) $(mandir)/man1;\ ++ $(CP) $(DOCFILES) $(DESTDIR)/$(mandir)/doc/htmldoc ++ $(CHMOD) ugo+r $(DESTDIR)/$(mandir)/doc/htmldoc/* ++ if [ ! -d $(DESTDIR)$(mandir)/man1 ]; then\ ++ $(MKDIR) $(DESTDIR)/$(mandir)/man1;\ + fi +- $(CP) htmldoc.man $(mandir)/man1/htmldoc.1 +- $(CHMOD) ugo+r $(mandir)/man1/htmldoc.1 ++ $(CP) htmldoc.man $(DESTDIR)/$(mandir)/man1/htmldoc.1 ++ $(CHMOD) ugo+r $(DESTDIR)/$(mandir)/man1/htmldoc.1 + + + # +diff -urN htmldoc-1.8.27-orig/fonts/Makefile htmldoc-1.8.27/fonts/Makefile +--- htmldoc-1.8.27-orig/fonts/Makefile 2005-10-28 20:32:59.000000000 +0000 ++++ htmldoc-1.8.27/fonts/Makefile 2011-05-23 09:04:00.721682432 +0000 +@@ -75,14 +75,14 @@ + + install: + echo "Installing font files in $(datadir)/htmldoc/fonts..." +- if [ ! -d $(datadir)/htmldoc/fonts ]; then\ +- $(MKDIR) $(datadir)/htmldoc/fonts;\ ++ if [ ! -d $(DESTDIR)/$(datadir)/htmldoc/fonts ]; then\ ++ $(MKDIR) $(DESTDIR)/$(datadir)/htmldoc/fonts;\ + fi + for font in $(FONTS); do \ +- $(CP) $$font.afm $(datadir)/htmldoc/fonts; \ +- $(CP) $$font.pfa $(datadir)/htmldoc/fonts; \ ++ $(CP) $$font.afm $(DESTDIR)/$(datadir)/htmldoc/fonts; \ ++ $(CP) $$font.pfa $(DESTDIR)/$(datadir)/htmldoc/fonts; \ + done +- $(CHMOD) ugo+r $(datadir)/htmldoc/fonts/* ++ $(CHMOD) ugo+r $(DESTDIR)/$(datadir)/htmldoc/fonts/* + + + # +diff -urN htmldoc-1.8.27-orig/htmldoc/Makefile htmldoc-1.8.27/htmldoc/Makefile +--- htmldoc-1.8.27-orig/htmldoc/Makefile 2005-10-28 20:32:59.000000000 +0000 ++++ htmldoc-1.8.27/htmldoc/Makefile 2011-05-23 09:04:04.563609600 +0000 +@@ -50,11 +50,11 @@ + # + + install: all +- if [ ! -d $(bindir) ]; then\ +- $(MKDIR) $(bindir);\ ++ if [ ! -d $(DESTDIR)/$(bindir) ]; then\ ++ $(MKDIR) $(DESTDIR)/$(bindir);\ + fi +- cp htmldoc$(EXEEXT) $(bindir) +- chmod ugo+rx $(bindir)/htmldoc$(EXEEXT) ++ cp htmldoc$(EXEEXT) $(DESTDIR)/$(bindir) ++ chmod ugo+rx $(DESTDIR)/$(bindir)/htmldoc$(EXEEXT) + + + # +diff -urN htmldoc-1.8.27-orig/htmldoc/http.h htmldoc-1.8.27/htmldoc/http.h +--- htmldoc-1.8.27-orig/htmldoc/http.h 2006-04-03 15:41:08.000000000 +0000 ++++ htmldoc-1.8.27/htmldoc/http.h 2011-05-23 09:04:08.438304768 +0000 +@@ -102,6 +102,8 @@ + # define s6_addr32 _S6_un._S6_u32 + # elif defined(__FreeBSD__) || defined(__APPLE__) + # define s6_addr32 __u6_addr.__u6_addr32 ++# elif defined(__HAIKU__) ++# define s6_addr32 s6_addr + # elif defined(__osf__) + # define s6_addr32 s6_un.sa6_laddr + # elif defined(WIN32) diff --git a/app-text/hunspell/hunspell-1.3.2.bep b/app-text/hunspell/hunspell-1.3.2.bep new file mode 100644 index 000000000..39cc9e780 --- /dev/null +++ b/app-text/hunspell/hunspell-1.3.2.bep @@ -0,0 +1,33 @@ +DESCRIPTION="hunspell - spellchecker, forked from myspell" +HOMEPAGE="http://hunspell.sourceforge.net/" +SRC_URI="http://downloads.sourceforge.net/hunspell/hunspell-1.3.2.tar.gz" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="" +CHECKSUM_MD5="3121aaf3e13e5d88dfff13fb4a5f1ab8" +BUILD { + cd hunspell-1.3.2 + libtoolize --force --copy --install + aclocal -I m4 + autoconf + automake + touch po/t-hu.gmo + touch po/t-it.gmo + ./configure --prefix=`finddir B_COMMON_DIRECTORY` \ + --mandir=`finddir B_COMMON_DOCUMENTATION_DIRECTORY`/man \ + --localedir=`finddir B_COMMON_DATA_DIRECTORY`/locale + make +} + +INSTALL { + cd hunspell-1.3.2 + make install +} + +LICENSE="GNU GPL v2 + GNU LGPL v2.1 + MPL v1.1" + +COPYRIGHT="2007-2011 Hunspell developers et al. + 2002-2008 László Németh (Hunspell) + 2001-2002 Kevin Hendricks (MySpell)" diff --git a/app-text/libpaper/libpaper-1.1.23.bep b/app-text/libpaper/libpaper-1.1.23.bep index e83f34acc..b26f9c558 100644 --- a/app-text/libpaper/libpaper-1.1.23.bep +++ b/app-text/libpaper/libpaper-1.1.23.bep @@ -11,7 +11,7 @@ BUILD { aclocal # automake autoconf - ./configure --prefix=/boot/common + ./configure --prefix=`finddir B_COMMON_DIRECTORY` make } diff --git a/app-text/libpaper/libpaper-1.1.24.bep b/app-text/libpaper/libpaper-1.1.24.bep index fa65f83a9..fd1521d8f 100644 --- a/app-text/libpaper/libpaper-1.1.24.bep +++ b/app-text/libpaper/libpaper-1.1.24.bep @@ -1,5 +1,5 @@ -DESCRIPTION="Library for handling paper characteristics" -HOMEPAGE="http://packages.debian.org/unstable/source/libpaper" +DESCRIPTION="Library for handling paper characteristics" +HOMEPAGE="http://packages.debian.org/unstable/source/libpaper" SRC_URI="http://ftp.de.debian.org/debian/pool/main/libp/libpaper/libpaper_1.1.24.tar.gz" REVISION="1" STATUS_HAIKU="stable" @@ -10,25 +10,22 @@ BUILD { mkdir -p `finddir B_COMMON_DOCUMENTATION_DIRECTORY`/man echo 'AC_CONFIG_MACRO_DIR([m4])' >> configure.ac libtoolize --force --copy --install - aclocal -I m4 -# automake + aclocal --install -I m4 autoconf - MANDIR=`finddir B_COMMON_DOCUMENTATION_DIRECTORY`/man - if [ -n "$(setgcc | grep '2')" ]; then - LIBDIR=`finddir B_COMMON_LIB_DIRECTORY` - else - LIBDIR=`finddir B_COMMON_LIB_DIRECTORY`/gcc4 - fi + COMMON_DOCS=`finddir B_COMMON_DOCUMENTATION_DIRECTORY` + COMMON_BIN=`finddir B_COMMON_BIN_DIRECTORY` + LIBDIR=`finddir B_COMMON_LIB_DIRECTORY` ./configure --prefix=`finddir B_COMMON_DIRECTORY` \ --libdir=$LIBDIR \ - --mandir=$MANDIR \ - --sbindir=`finddir B_COMMON_DIRECTORY` + --mandir=$COMMON_DOCS/man \ + --sbindir=$COMMON_BIN make } INSTALL { cd libpaper-1.1.24 make install + } LICENSE="GNU GPL v2" COPYRIGHT="1996 Yves Arrouye diff --git a/app-text/libwpd/libwpd-0.9.6.bep b/app-text/libwpd/libwpd-0.9.6.bep new file mode 100644 index 000000000..bc7a7bfbb --- /dev/null +++ b/app-text/libwpd/libwpd-0.9.6.bep @@ -0,0 +1,25 @@ +DESCRIPTION="libwpd - a library for importing WordPerfect (tm) documents" +HOMEPAGE="libwpd.sourceforge.net" +SRC_URI="http://prdownloads.sourceforge.net/libwpd/libwpd-0.9.6.tar.gz?download" +MESSAGE="This port only builds with gcc4. Use 'setgcc gcc4' before building" +CHECKSUM_MD5="979fc276bcecb1f3220b529ffa68d52c" +REVISION="1" +DEPEND="glib >= 2.0.0 + libgsf >= 1.6.0" +BUILD { + cd libwpd-0.9.6 + libtoolize --force --copy --install + aclocal + autoconf + automake + ./configure --prefix=`finddir B_COMMON_DIRECTORY` + make +} + +INSTALL { + cd libwpd-0.9.6 + make install +} +LICENSE="GNU GPL v2" +COPYRIGHT="2002 William Lachance + 2002 Marc Maurer" diff --git a/app-text/libwpg/libwpg-0.2.1.bep b/app-text/libwpg/libwpg-0.2.1.bep new file mode 100644 index 000000000..972a5f7c4 --- /dev/null +++ b/app-text/libwpg/libwpg-0.2.1.bep @@ -0,0 +1,23 @@ +DESCRIPTION="Libwpg project is a collection of library and tools to work with graphics in WPG (WordPerfect Graphics) format." +HOMEPAGE="libwpg.sourceforge.net" +SRC_URI="http://sourceforge.net/projects/libwpg/files/libwpg/libwpg-0.2.1/libwpg-0.2.1.tar.gz/download" +MESSAGE="This port only builds with gcc4. Use 'setgcc gcc4' before building." +CHECKSUM_MD5="7f292980b5c458a58bf89ebba1ed07b6" +REVISION="1" +DEPEND="pkg-config >= 0.2 + libwpd >= 0.8" +BUILD { + cd libwpg-0.2.1 + libtoolize --force --copy --install + aclocal + autoconf + automake + ./configure --prefix=`finddir B_COMMON_DIRECTORY` + make +} +INSTALL { + cd libwpg-0.2.1 + make install +} +LICENSE="GNU GPL v2" +COPYRIGHT="2007 Ariya Hidayat" diff --git a/app-text/psiconv/psiconv-0.9.8.bep b/app-text/psiconv/psiconv-0.9.8.bep index f9f901144..349302576 100644 --- a/app-text/psiconv/psiconv-0.9.8.bep +++ b/app-text/psiconv/psiconv-0.9.8.bep @@ -10,7 +10,7 @@ BUILD { libtoolize --force --copy --install aclocal autoconf - ./configure --prefix=/boot/common + ./configure --prefix=`finddir B_COMMON_DIRECTORY` make } diff --git a/app-text/rman/rman-3.2.bep b/app-text/rman/rman-3.2.bep index ed42b37d8..5111df686 100644 --- a/app-text/rman/rman-3.2.bep +++ b/app-text/rman/rman-3.2.bep @@ -1,5 +1,5 @@ -DESCRIPTION="PolyGlotMan man page translator AKA RosettaMan" -HOMEPAGE="http://www.sourceforge.net/project/polyglotman" +DESCRIPTION="PolyGlotMan man page translator AKA RosettaMan" +HOMEPAGE="http://www.sourceforge.net/project/polyglotman" SRC_URI="http://downloads.sourceforge.net/project/polyglotman/polyglotman/3.2/rman-3.2.tar.gz" REVISION="1" STATUS_HAIKU="stable" @@ -7,14 +7,18 @@ DEPEND="" CHECKSUM_MD5="6d1d67641c6d042595a96a62340d3cc6" BUILD { cd rman-3.2 - make BINDIR=`finddir B_COMMON_BIN_DIRECTORY` MANDIR=`finddir B_COMMON_DOCUMENTATION_DIRECTORY` + COMMON_DOCS=`finddir B_COMMON_DOCUMENTATION_DIRECTORY` + COMMON_BIN=`finddir B_COMMON_BIN_DIRECTORY` + make BINDIR=$COMMON_BIN MANDIR=$COMMON_DOCS/man } INSTALL { cd rman-3.2 - mkdir -p ${DESTDIR}/`finddir B_COMMON_BIN_DIRECTORY` - mkdir -p ${DESTDIR}/`finddir B_COMMON_DOCUMENTATION_DIRECTORY` - make install BINDIR=${DESTDIR}/`finddir B_COMMON_BIN_DIRECTORY` MANDIR=${DESTDIR}/`finddir B_COMMON_DOCUMENTATION_DIRECTORY` + COMMON_DOCS=`finddir B_COMMON_DOCUMENTATION_DIRECTORY` + COMMON_BIN=`finddir B_COMMON_BIN_DIRECTORY` + mkdir -p ${DESTDIR}/$COMMON_BIN + mkdir -p ${DESTDIR}/$COMMON_DOCS/man + make install BINDIR=${DESTDIR}/$COMMON_BIN MANDIR=${DESTDIR}/$COMMON_DOCS/man } LICENSE="Artistic" COPYRIGHT="2003 Thomas A. Phelps" diff --git a/app-text/sablotron/sablotron-1.0.3.bep b/app-text/sablotron/sablotron-1.0.3.bep index 1eb592e97..bac92023e 100644 --- a/app-text/sablotron/sablotron-1.0.3.bep +++ b/app-text/sablotron/sablotron-1.0.3.bep @@ -15,7 +15,7 @@ BUILD { aclocal automake --add-missing -Wnone autoconf - ./configure --prefix=`finddir B_COMMON_BIN_DIRECTORY` + ./configure --prefix=`finddir B_COMMON_DIRECTORY` make } @@ -23,5 +23,6 @@ INSTALL { cd Sablot-1.0.3 make install } + LICENSE="MPL v1.1" COPYRIGHT="2000-2002 Ginger Alliance Ltd. All Rights Reserved." diff --git a/app-text/tesseract/tesseract-3.x-svn.bep b/app-text/tesseract/tesseract-3.x-svn.bep new file mode 100644 index 000000000..3b0cade1c --- /dev/null +++ b/app-text/tesseract/tesseract-3.x-svn.bep @@ -0,0 +1,29 @@ +DESCRIPTION="An OCR Engine that was developed at HP Labs between 1985 and 1995... now at Google." +HOMEPAGE="http://code.google.com/p/tesseract-ocr" +SRC_URI="svn+http://tesseract-ocr.googlecode.com/svn/trunk" +REVISION="1" +STATUS_HAIKU="broken" +DEPEND="" +#CHECKSUM_MD5="cc812a261088ea0c3d2da735be35d09f" +BUILD { + cd tesseract-3.x-svn + ./runautoconf + ./configure --prefix=`finddir B_COMMON_DIRECTORY` + make +} + +INSTALL { + cd tesseract-3.x-svn + make install +} + +TEST { + cd tesseract-ocr-3.x +# make test +# make check +} + +LICENSE="Apache v2 + GNU GPL v1" +COPYRIGHT="1985-1995 HP labs + 2011 Google Inc." diff --git a/app-text/tree/patches/tree-1.6.0.patch b/app-text/tree/patches/tree-1.6.0.patch new file mode 100644 index 000000000..56aaefc17 --- /dev/null +++ b/app-text/tree/patches/tree-1.6.0.patch @@ -0,0 +1,28 @@ +diff -Naur tree-1.6.0/Makefile tree-1.6.0-haiku/Makefile +--- tree-1.6.0/Makefile 2011-06-24 16:25:27.060030976 +0200 ++++ tree-1.6.0-haiku/Makefile 2011-12-18 01:40:48.786169856 +0100 +@@ -31,8 +31,8 @@ + + # Linux defaults: + #CFLAGS=-ggdb -Wall -DLINUX -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 +-CFLAGS=-O4 -Wall -DLINUX -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 +-LDFLAGS=-s ++#CFLAGS=-O4 -Wall -DLINUX -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 ++#LDFLAGS=-s + + # Uncomment for FreeBSD: + #CFLAGS=-O2 -Wall -fomit-frame-pointer +@@ -58,6 +58,13 @@ + #LDFLAGS= + #OBJS+=strverscmp.o + ++# Uncomment for Haiku: ++prefix=$(shell finddir B_COMMON_DIRECTORY) ++MANDIR=$(shell finddir B_COMMON_DOCUMENTATION_DIRECTORY)/man/man1 ++CFLAGS=-O2 -Wall -fomit-frame-pointer ++LDFLAGS= ++OBJS+=strverscmp.o ++ + # Uncomment for HP/UX: + #CC=cc + #CFLAGS=-O2 -DAportable -Wall diff --git a/app-text/tree/tree-1.6.0.bep b/app-text/tree/tree-1.6.0.bep new file mode 100644 index 000000000..fc016e3c0 --- /dev/null +++ b/app-text/tree/tree-1.6.0.bep @@ -0,0 +1,25 @@ +DESCRIPTION="Lists directories recursively, and produces an indented listing of files." +HOMEPAGE="http://mama.indstate.edu/users/ice/tree/" +SRC_URI="http://mama.indstate.edu/users/ice/tree/src/tree-1.6.0.tgz" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="" +CHECKSUM_MD5="04e967a3f4108d50cde3b4b0e89e970a" +BUILD { + cd tree-1.6.0 + make +} + +INSTALL { + cd tree-1.6.0 + make install \ + BINDIR=${DESTDIR}`finddir B_COMMON_BIN_DIRECTORY` \ + MANDIR=${DESTDIR}`finddir B_COMMON_DOCUMENTATION_DIRECTORY`/man +} + +TEST { + # none +} + +LICENSE="GNU GPL v2" +COPYRIGHT="1996-2011 Steve Baker" diff --git a/dev-cpp/eigen/eigen-3.1.2.bep b/dev-cpp/eigen/eigen-3.1.2.bep new file mode 100644 index 000000000..3f4bab9a0 --- /dev/null +++ b/dev-cpp/eigen/eigen-3.1.2.bep @@ -0,0 +1,28 @@ +DESCRIPTION="C++ template library for linear algebra: vectors, matrices, and related algorithms" +HOMEPAGE="http://bitbucket.org/eigen" +SRC_URI="http://bitbucket.org/eigen/eigen/get/3.1.2.tar.bz2" +CHECKSUM_MD5="e9c081360dde5e7dcb8eba3c8430fde2" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="" +BUILD { + cd eigen-eigen-5097c01bcdc4 + mkdir build + cd build + cmake .. + make +} + +INSTALL { + cd eigen-eigen-5097c01bcdc4/build + make install +} + +TEST { + cd eigen-eigen-5097c01bcdc4/build + make check +} + +LICENSE="MPL v2" +COPYRIGHT="2006-2011 Benoit Jacob + 2008-2012 Gael Guennebaud, et al." diff --git a/dev-cpp/eigen/licenses/MPL v2 b/dev-cpp/eigen/licenses/MPL v2 new file mode 100644 index 000000000..14e2f777f --- /dev/null +++ b/dev-cpp/eigen/licenses/MPL v2 @@ -0,0 +1,373 @@ +Mozilla Public License Version 2.0 +================================== + +1. Definitions +-------------- + +1.1. "Contributor" + means each individual or legal entity that creates, contributes to + the creation of, or owns Covered Software. + +1.2. "Contributor Version" + means the combination of the Contributions of others (if any) used + by a Contributor and that particular Contributor's Contribution. + +1.3. "Contribution" + means Covered Software of a particular Contributor. + +1.4. "Covered Software" + means Source Code Form to which the initial Contributor has attached + the notice in Exhibit A, the Executable Form of such Source Code + Form, and Modifications of such Source Code Form, in each case + including portions thereof. + +1.5. "Incompatible With Secondary Licenses" + means + + (a) that the initial Contributor has attached the notice described + in Exhibit B to the Covered Software; or + + (b) that the Covered Software was made available under the terms of + version 1.1 or earlier of the License, but not also under the + terms of a Secondary License. + +1.6. "Executable Form" + means any form of the work other than Source Code Form. + +1.7. "Larger Work" + means a work that combines Covered Software with other material, in + a separate file or files, that is not Covered Software. + +1.8. "License" + means this document. + +1.9. "Licensable" + means having the right to grant, to the maximum extent possible, + whether at the time of the initial grant or subsequently, any and + all of the rights conveyed by this License. + +1.10. "Modifications" + means any of the following: + + (a) any file in Source Code Form that results from an addition to, + deletion from, or modification of the contents of Covered + Software; or + + (b) any new file in Source Code Form that contains any Covered + Software. + +1.11. "Patent Claims" of a Contributor + means any patent claim(s), including without limitation, method, + process, and apparatus claims, in any patent Licensable by such + Contributor that would be infringed, but for the grant of the + License, by the making, using, selling, offering for sale, having + made, import, or transfer of either its Contributions or its + Contributor Version. + +1.12. "Secondary License" + means either the GNU General Public License, Version 2.0, the GNU + Lesser General Public License, Version 2.1, the GNU Affero General + Public License, Version 3.0, or any later versions of those + licenses. + +1.13. "Source Code Form" + means the form of the work preferred for making modifications. + +1.14. "You" (or "Your") + means an individual or a legal entity exercising rights under this + License. For legal entities, "You" includes any entity that + controls, is controlled by, or is under common control with You. For + purposes of this definition, "control" means (a) the power, direct + or indirect, to cause the direction or management of such entity, + whether by contract or otherwise, or (b) ownership of more than + fifty percent (50%) of the outstanding shares or beneficial + ownership of such entity. + +2. License Grants and Conditions +-------------------------------- + +2.1. Grants + +Each Contributor hereby grants You a world-wide, royalty-free, +non-exclusive license: + +(a) under intellectual property rights (other than patent or trademark) + Licensable by such Contributor to use, reproduce, make available, + modify, display, perform, distribute, and otherwise exploit its + Contributions, either on an unmodified basis, with Modifications, or + as part of a Larger Work; and + +(b) under Patent Claims of such Contributor to make, use, sell, offer + for sale, have made, import, and otherwise transfer either its + Contributions or its Contributor Version. + +2.2. Effective Date + +The licenses granted in Section 2.1 with respect to any Contribution +become effective for each Contribution on the date the Contributor first +distributes such Contribution. + +2.3. Limitations on Grant Scope + +The licenses granted in this Section 2 are the only rights granted under +this License. No additional rights or licenses will be implied from the +distribution or licensing of Covered Software under this License. +Notwithstanding Section 2.1(b) above, no patent license is granted by a +Contributor: + +(a) for any code that a Contributor has removed from Covered Software; + or + +(b) for infringements caused by: (i) Your and any other third party's + modifications of Covered Software, or (ii) the combination of its + Contributions with other software (except as part of its Contributor + Version); or + +(c) under Patent Claims infringed by Covered Software in the absence of + its Contributions. + +This License does not grant any rights in the trademarks, service marks, +or logos of any Contributor (except as may be necessary to comply with +the notice requirements in Section 3.4). + +2.4. Subsequent Licenses + +No Contributor makes additional grants as a result of Your choice to +distribute the Covered Software under a subsequent version of this +License (see Section 10.2) or under the terms of a Secondary License (if +permitted under the terms of Section 3.3). + +2.5. Representation + +Each Contributor represents that the Contributor believes its +Contributions are its original creation(s) or it has sufficient rights +to grant the rights to its Contributions conveyed by this License. + +2.6. Fair Use + +This License is not intended to limit any rights You have under +applicable copyright doctrines of fair use, fair dealing, or other +equivalents. + +2.7. Conditions + +Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted +in Section 2.1. + +3. Responsibilities +------------------- + +3.1. Distribution of Source Form + +All distribution of Covered Software in Source Code Form, including any +Modifications that You create or to which You contribute, must be under +the terms of this License. You must inform recipients that the Source +Code Form of the Covered Software is governed by the terms of this +License, and how they can obtain a copy of this License. You may not +attempt to alter or restrict the recipients' rights in the Source Code +Form. + +3.2. Distribution of Executable Form + +If You distribute Covered Software in Executable Form then: + +(a) such Covered Software must also be made available in Source Code + Form, as described in Section 3.1, and You must inform recipients of + the Executable Form how they can obtain a copy of such Source Code + Form by reasonable means in a timely manner, at a charge no more + than the cost of distribution to the recipient; and + +(b) You may distribute such Executable Form under the terms of this + License, or sublicense it under different terms, provided that the + license for the Executable Form does not attempt to limit or alter + the recipients' rights in the Source Code Form under this License. + +3.3. Distribution of a Larger Work + +You may create and distribute a Larger Work under terms of Your choice, +provided that You also comply with the requirements of this License for +the Covered Software. If the Larger Work is a combination of Covered +Software with a work governed by one or more Secondary Licenses, and the +Covered Software is not Incompatible With Secondary Licenses, this +License permits You to additionally distribute such Covered Software +under the terms of such Secondary License(s), so that the recipient of +the Larger Work may, at their option, further distribute the Covered +Software under the terms of either this License or such Secondary +License(s). + +3.4. Notices + +You may not remove or alter the substance of any license notices +(including copyright notices, patent notices, disclaimers of warranty, +or limitations of liability) contained within the Source Code Form of +the Covered Software, except that You may alter any license notices to +the extent required to remedy known factual inaccuracies. + +3.5. Application of Additional Terms + +You may choose to offer, and to charge a fee for, warranty, support, +indemnity or liability obligations to one or more recipients of Covered +Software. However, You may do so only on Your own behalf, and not on +behalf of any Contributor. You must make it absolutely clear that any +such warranty, support, indemnity, or liability obligation is offered by +You alone, and You hereby agree to indemnify every Contributor for any +liability incurred by such Contributor as a result of warranty, support, +indemnity or liability terms You offer. You may include additional +disclaimers of warranty and limitations of liability specific to any +jurisdiction. + +4. Inability to Comply Due to Statute or Regulation +--------------------------------------------------- + +If it is impossible for You to comply with any of the terms of this +License with respect to some or all of the Covered Software due to +statute, judicial order, or regulation then You must: (a) comply with +the terms of this License to the maximum extent possible; and (b) +describe the limitations and the code they affect. Such description must +be placed in a text file included with all distributions of the Covered +Software under this License. Except to the extent prohibited by statute +or regulation, such description must be sufficiently detailed for a +recipient of ordinary skill to be able to understand it. + +5. Termination +-------------- + +5.1. The rights granted under this License will terminate automatically +if You fail to comply with any of its terms. However, if You become +compliant, then the rights granted under this License from a particular +Contributor are reinstated (a) provisionally, unless and until such +Contributor explicitly and finally terminates Your grants, and (b) on an +ongoing basis, if such Contributor fails to notify You of the +non-compliance by some reasonable means prior to 60 days after You have +come back into compliance. Moreover, Your grants from a particular +Contributor are reinstated on an ongoing basis if such Contributor +notifies You of the non-compliance by some reasonable means, this is the +first time You have received notice of non-compliance with this License +from such Contributor, and You become compliant prior to 30 days after +Your receipt of the notice. + +5.2. If You initiate litigation against any entity by asserting a patent +infringement claim (excluding declaratory judgment actions, +counter-claims, and cross-claims) alleging that a Contributor Version +directly or indirectly infringes any patent, then the rights granted to +You by any and all Contributors for the Covered Software under Section +2.1 of this License shall terminate. + +5.3. In the event of termination under Sections 5.1 or 5.2 above, all +end user license agreements (excluding distributors and resellers) which +have been validly granted by You or Your distributors under this License +prior to termination shall survive termination. + +************************************************************************ +* * +* 6. Disclaimer of Warranty * +* ------------------------- * +* * +* Covered Software is provided under this License on an "as is" * +* basis, without warranty of any kind, either expressed, implied, or * +* statutory, including, without limitation, warranties that the * +* Covered Software is free of defects, merchantable, fit for a * +* particular purpose or non-infringing. The entire risk as to the * +* quality and performance of the Covered Software is with You. * +* Should any Covered Software prove defective in any respect, You * +* (not any Contributor) assume the cost of any necessary servicing, * +* repair, or correction. This disclaimer of warranty constitutes an * +* essential part of this License. No use of any Covered Software is * +* authorized under this License except under this disclaimer. * +* * +************************************************************************ + +************************************************************************ +* * +* 7. Limitation of Liability * +* -------------------------- * +* * +* Under no circumstances and under no legal theory, whether tort * +* (including negligence), contract, or otherwise, shall any * +* Contributor, or anyone who distributes Covered Software as * +* permitted above, be liable to You for any direct, indirect, * +* special, incidental, or consequential damages of any character * +* including, without limitation, damages for lost profits, loss of * +* goodwill, work stoppage, computer failure or malfunction, or any * +* and all other commercial damages or losses, even if such party * +* shall have been informed of the possibility of such damages. This * +* limitation of liability shall not apply to liability for death or * +* personal injury resulting from such party's negligence to the * +* extent applicable law prohibits such limitation. Some * +* jurisdictions do not allow the exclusion or limitation of * +* incidental or consequential damages, so this exclusion and * +* limitation may not apply to You. * +* * +************************************************************************ + +8. Litigation +------------- + +Any litigation relating to this License may be brought only in the +courts of a jurisdiction where the defendant maintains its principal +place of business and such litigation shall be governed by laws of that +jurisdiction, without reference to its conflict-of-law provisions. +Nothing in this Section shall prevent a party's ability to bring +cross-claims or counter-claims. + +9. Miscellaneous +---------------- + +This License represents the complete agreement concerning the subject +matter hereof. If any provision of this License is held to be +unenforceable, such provision shall be reformed only to the extent +necessary to make it enforceable. Any law or regulation which provides +that the language of a contract shall be construed against the drafter +shall not be used to construe this License against a Contributor. + +10. Versions of the License +--------------------------- + +10.1. New Versions + +Mozilla Foundation is the license steward. Except as provided in Section +10.3, no one other than the license steward has the right to modify or +publish new versions of this License. Each version will be given a +distinguishing version number. + +10.2. Effect of New Versions + +You may distribute the Covered Software under the terms of the version +of the License under which You originally received the Covered Software, +or under the terms of any subsequent version published by the license +steward. + +10.3. Modified Versions + +If you create software not governed by this License, and you want to +create a new license for such software, you may create and use a +modified version of this License if you rename the license and remove +any references to the name of the license steward (except to note that +such modified license differs from this License). + +10.4. Distributing Source Code Form that is Incompatible With Secondary +Licenses + +If You choose to distribute Source Code Form that is Incompatible With +Secondary Licenses under the terms of this version of the License, the +notice described in Exhibit B of this License must be attached. + +Exhibit A - Source Code Form License Notice +------------------------------------------- + + This Source Code Form is subject to the terms of the Mozilla Public + License, v. 2.0. If a copy of the MPL was not distributed with this + file, You can obtain one at http://mozilla.org/MPL/2.0/. + +If it is not possible or desirable to put the notice in a particular +file, then You may include the notice in a location (such as a LICENSE +file in a relevant directory) where a recipient would be likely to look +for such a notice. + +You may add additional accurate notices of copyright ownership. + +Exhibit B - "Incompatible With Secondary Licenses" Notice +--------------------------------------------------------- + + This Source Code Form is "Incompatible With Secondary Licenses", as + defined by the Mozilla Public License, v. 2.0. diff --git a/dev-cpp/glog/glog-0.3.3.bep b/dev-cpp/glog/glog-0.3.3.bep new file mode 100644 index 000000000..381e22ec0 --- /dev/null +++ b/dev-cpp/glog/glog-0.3.3.bep @@ -0,0 +1,28 @@ +DESCRIPTION="Google's C++ logging library" +HOMEPAGE="http://code.google.com/p/google-glog/" +SRC_URI="http://google-glog.googlecode.com/files/glog-0.3.3.tar.gz" +CHECKSUM_MD5="a6fd2c22f8996846e34c763422717c18" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="" +MESSAGE="This port only builds with gcc4. Use 'setgcc gcc4' before building." + +BUILD { + cd glog-0.3.3 + sed -i 's/docdir = $(prefix)\/share/docdir = \/boot\/common\/documentation/g' Makefile.am + libtoolize --force --copy --install + aclocal -I m4 + autoconf + DOCDIR=`finddir B_COMMON_DOCUMENTATION_DIRECTORY`/doc + ./configure --prefix=`finddir B_COMMON_DIRECTORY` \ + --docdir=${DOCDIR} + make +} + +INSTALL { + cd glog-0.3.3 + make install +} + +LICENSE="BSD (3-clause)" +COPYRIGHT="1999-2013 Google Inc." diff --git a/dev-cpp/mm-common/mm-common-0.9.2.bep b/dev-cpp/mm-common/mm-common-0.9.2.bep index 519b2c163..de0845cf9 100644 --- a/dev-cpp/mm-common/mm-common-0.9.2.bep +++ b/dev-cpp/mm-common/mm-common-0.9.2.bep @@ -8,7 +8,7 @@ CHECKSUM_MD5="87dedc889b8d642b616813f23ed8c9f9" BUILD { cd mm-common-0.9.2 autoreconf --force --install --verbose - ./configure --prefix=/boot/common + ./configure --prefix=`finddir B_COMMON_DIRECTORY` make } diff --git a/dev-cpp/mxml/mxml-2.6.bep b/dev-cpp/mxml/mxml-2.6.bep index 1ae13c577..eef7b918a 100644 --- a/dev-cpp/mxml/mxml-2.6.bep +++ b/dev-cpp/mxml/mxml-2.6.bep @@ -7,7 +7,7 @@ STATUS_HAIKU="stable" DEPEND="" BUILD { cd mxml-2.6 - ./configure --prefix=/boot/common --enable-shared + ./configure --prefix=`finddir B_COMMON_DIRECTORY` --enable-shared make } diff --git a/dev-db/mysql/mysql-5.0.83.bep b/dev-db/mysql/mysql-5.0.83.bep new file mode 100644 index 000000000..85a0b2dac --- /dev/null +++ b/dev-db/mysql/mysql-5.0.83.bep @@ -0,0 +1,23 @@ +DESCRIPTION="SQL database server." +HOMEPAGE="http://www.mysql.com" +SRC_URI="http://mirror.provenscaling.com/mysql/community/source/5.0/mysql-5.0.83.tar.gz" +CHECKSUM_MD5="051392064a1e32cca5c23a593908b10e" +REVISION="1" +STATUS_HAIKU="untested" +DEPEND="sys-libs/readline >= 5.2" + +BUILD { + cd mysql-5.0.83 + libtoolize --force --install --copy + aclocal + autoconf + ./configure --without-readline CFLAGS=-O2 --prefix=`finddir B_COMMON_DIRECTORY` + make +} + +INSTALL { + cd mysql-5.0.83 + make install +} +LICENSE="GNU GPL v2" +COPYRIGHT="2000, 2012, Oracle and/or its affiliates. All rights reserved." diff --git a/dev-db/mysql/patches/mysql-5.0.83.patch b/dev-db/mysql/patches/mysql-5.0.83.patch new file mode 100644 index 000000000..0978e69fe --- /dev/null +++ b/dev-db/mysql/patches/mysql-5.0.83.patch @@ -0,0 +1,101 @@ +diff -Naur mysql-5.0.83/configure.in mysql-5.0.83-haiku/configure.in +--- mysql-5.0.83/configure.in 2009-05-29 18:15:45.000000000 +0000 ++++ mysql-5.0.83-haiku/configure.in 2012-12-04 18:14:48.000000000 +0000 +@@ -884,7 +884,8 @@ + AC_CHECK_LIB(nsl, gethostbyname_r)) + AC_CHECK_FUNC(gethostbyname_r) + +-AC_CHECK_FUNC(setsockopt, , AC_CHECK_LIB(socket, setsockopt)) ++AC_SEARCH_LIBS(socket, [socket network]) ++AC_SEARCH_LIBS(setsockopt,[socket network]) + AC_CHECK_FUNC(yp_get_default_domain, , + AC_CHECK_LIB(nsl, yp_get_default_domain)) + AC_CHECK_FUNC(p2open, , AC_CHECK_LIB(gen, p2open)) +@@ -893,7 +894,7 @@ + # Check if crypt() exists in libc or libcrypt, sets LIBS if needed + AC_SEARCH_LIBS(crypt, crypt, AC_DEFINE(HAVE_CRYPT, 1, [crypt])) + # See if we need a library for address lookup. +-AC_SEARCH_LIBS(inet_aton, [socket nsl resolv]) ++AC_SEARCH_LIBS(inet_aton, [socket nsl resolv network]) + + # For the sched_yield() function on Solaris + AC_CHECK_FUNC(sched_yield, , AC_CHECK_LIB(posix4, sched_yield)) +@@ -1939,6 +1940,13 @@ + MYSQL_CHECK_TIME_T + + ++ ++AC_CHECK_MEMBERS([struct rusage.ru_maxrss, struct rusage.ru_idrss, struct rusage.ru_minflt, struct rusage.ru_majflt, ++struct rusage.ru_nswap, struct rusage.ru_inblock, struct rusage.ru_oublock, struct rusage.ru_msgsnd, struct rusage.ru_msgrcv, ++struct rusage.ru_nsignals, struct rusage.ru_nvcsw, struct rusage.ru_nivcsw ],[AC_DEFINE([ADDITIONAL_RUSAGE_MEMBERS],[1],[ ++Define 1 if structure have this members])],,) ++ ++ + # do we need #pragma interface/#pragma implementation ? + # yes if it's gcc 2.x, and not icc pretending to be gcc, and not cygwin + AC_MSG_CHECKING(the need for @%:@pragma interface/implementation) +diff -Naur mysql-5.0.83/dbug/dbug_analyze.c mysql-5.0.83-haiku/dbug/dbug_analyze.c +--- mysql-5.0.83/dbug/dbug_analyze.c 2009-05-29 18:15:46.000000000 +0000 ++++ mysql-5.0.83-haiku/dbug/dbug_analyze.c 2012-12-02 12:17:35.000000000 +0000 +@@ -100,13 +100,13 @@ + while(0) + + +-struct stack_t { ++struct my_stack_t { + unsigned int pos; /* which function? */ + unsigned long time; /* Time that this was entered */ + unsigned long children; /* Time spent in called funcs */ + }; + +-static struct stack_t fn_stack[STACKSIZ+1]; ++static struct my_stack_t fn_stack[STACKSIZ+1]; + + static unsigned int stacktop = 0; /* Lowest stack position is a dummy */ + +@@ -130,7 +130,7 @@ + register unsigned int name_pos; + register unsigned long time_entered; + { +- register struct stack_t *t; ++ register struct my_stack_t *t; + + DBUG_ENTER("push"); + if (++stacktop > STACKSIZ) { +@@ -157,7 +157,7 @@ + register unsigned long *time_entered; + register unsigned long *child_time; + { +- register struct stack_t *temp; ++ register struct my_stack_t *temp; + register unsigned int rtnval; + + DBUG_ENTER ("pop"); +@@ -313,7 +313,7 @@ + unsigned int oldpos; + unsigned long oldtime; + unsigned long oldchild; +- struct stack_t *t; ++ struct my_stack_t *t; + + DBUG_ENTER ("process"); + while (fgets (buf,BUFSIZ,inf) != NULL) { +diff -Naur mysql-5.0.83/mysys/my_init.c mysql-5.0.83-haiku/mysys/my_init.c +--- mysql-5.0.83/mysys/my_init.c 2009-05-29 18:18:19.000000000 +0000 ++++ mysql-5.0.83-haiku/mysys/my_init.c 2012-12-04 18:16:27.368050176 +0000 +@@ -162,6 +162,7 @@ + /* Purify assumes that rus is uninitialized after getrusage call */ + bzero((char*) &rus, sizeof(rus)); + #endif ++#ifdef ADDITIONAL_RUSAGE_MEMBERS + if (!getrusage(RUSAGE_SELF, &rus)) + fprintf(info_file,"\n\ + User time %.2f, System time %.2f\n\ +@@ -179,6 +180,7 @@ + rus.ru_msgsnd, rus.ru_msgrcv, rus.ru_nsignals, + rus.ru_nvcsw, rus.ru_nivcsw); + #endif ++#endif + #if ( defined(MSDOS) || defined(__NETWARE__) ) && !defined(__WIN__) + fprintf(info_file,"\nRun time: %.1f\n",(double) clock()/CLOCKS_PER_SEC); + #endif diff --git a/dev-db/postgresql/licenses/PostgreSQL b/dev-db/postgresql/licenses/PostgreSQL new file mode 100644 index 000000000..b773b4d9c --- /dev/null +++ b/dev-db/postgresql/licenses/PostgreSQL @@ -0,0 +1,23 @@ +PostgreSQL Database Management System +(formerly known as Postgres, then as Postgres95) + +Portions Copyright (c) 1996-2010, PostgreSQL Global Development Group + +Portions Copyright (c) 1994, The Regents of the University of California + +Permission to use, copy, modify, and distribute this software and its +documentation for any purpose, without fee, and without a written agreement +is hereby granted, provided that the above copyright notice and this +paragraph and the following two paragraphs appear in all copies. + +IN NO EVENT SHALL THE UNIVERSITY OF CALIFORNIA BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, INCLUDING +LOST PROFITS, ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS +DOCUMENTATION, EVEN IF THE UNIVERSITY OF CALIFORNIA HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. + +THE UNIVERSITY OF CALIFORNIA SPECIFICALLY DISCLAIMS ANY WARRANTIES, +INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY +AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE UNIVERSITY OF CALIFORNIA HAS NO OBLIGATIONS TO +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. diff --git a/dev-db/postgresql/patches/postgresql-9.0.4.patch b/dev-db/postgresql/patches/postgresql-9.0.4.patch new file mode 100644 index 000000000..651ad6111 --- /dev/null +++ b/dev-db/postgresql/patches/postgresql-9.0.4.patch @@ -0,0 +1,19 @@ +diff -urN postgresql-9.0.4/configure.in postgresql-9.0.4-haiku/configure.in +--- postgresql-9.0.4/configure.in 2011-04-15 03:15:53.000000000 +0000 ++++ postgresql-9.0.4-haiku/configure.in 2011-07-15 16:30:31.934543360 +0000 +@@ -861,7 +861,7 @@ + AC_CHECK_LIB(m, main) + AC_SEARCH_LIBS(setproctitle, util) + AC_SEARCH_LIBS(dlopen, dl) +-AC_SEARCH_LIBS(socket, [socket wsock32]) ++AC_SEARCH_LIBS(socket, [socket wsock32 network]) + AC_SEARCH_LIBS(shl_load, dld) + # We only use libld in port/dynloader/aix.c + case $host_os in +diff -urN postgresql-9.0.4/src/template/haiku postgresql-9.0.4-haiku/src/template/haiku +--- postgresql-9.0.4/src/template/haiku 1970-01-01 00:00:00.000000000 +0000 ++++ postgresql-9.0.4-haiku/src/template/haiku 2011-07-15 16:26:54.707264512 +0000 +@@ -0,0 +1,3 @@ ++case $host_os in ++ haiku*) ;; ++esac diff --git a/dev-db/postgresql/patches/postgresql-9.2.3.patch b/dev-db/postgresql/patches/postgresql-9.2.3.patch new file mode 100644 index 000000000..6bffb5c94 --- /dev/null +++ b/dev-db/postgresql/patches/postgresql-9.2.3.patch @@ -0,0 +1,19 @@ +diff -urN postgresql-9.2.3/configure.in postgresql-9.2.3-haiku/configure.in +--- postgresql-9.2.3/configure.in ++++ postgresql-9.2.3-haiku/configure.in +@@ -861,7 +861,7 @@ + AC_CHECK_LIB(m, main) + AC_SEARCH_LIBS(setproctitle, util) + AC_SEARCH_LIBS(dlopen, dl) +-AC_SEARCH_LIBS(socket, [socket wsock32]) ++AC_SEARCH_LIBS(socket, [socket wsock32 network]) + AC_SEARCH_LIBS(shl_load, dld) + # We only use libld in port/dynloader/aix.c + case $host_os in +diff -urN postgresql-9.2.3/src/template/haiku postgresql-9.2.3-haiku/src/template/haiku +--- postgresql-9.2.3/src/template/haiku ++++ postgresql-9.2.3-haiku/src/template/haiku +@@ -0,0 +1,3 @@ ++case $host_os in ++ haiku*) ;; ++esac diff --git a/dev-db/postgresql/postgresql-9.0.4.bep b/dev-db/postgresql/postgresql-9.0.4.bep new file mode 100644 index 000000000..dc88cb0b8 --- /dev/null +++ b/dev-db/postgresql/postgresql-9.0.4.bep @@ -0,0 +1,27 @@ +DESCRIPTION="PostgreSQL is a powerful, open source object-relational database system." +HOMEPAGE="http://www.postgresql.org/" +SRC_URI="http://wwwmaster.postgresql.org/redir/198/f/source/v9.0.4/postgresql-9.0.4.tar.bz2" +REVISION="1" +STATUS_HAIKU="broken" +DEPEND="dev-libs/libedit >= 20100424" +CHECKSUM_MD5="80390514d568a7af5ab61db1cda27e29" +BUILD { + cd postgresql-9.0.4 + ./configure --prefix=`finddir B_COMMON_DIRECTORY` --with-template=haiku + make +} + +INSTALL { + cd postgresql-9.0.4 + make install +} + +TEST { + cd postgresql-9.0.4 +# make test +# make check +} + +LICENSE="PostgreSQL" +COPYRIGHT="1996-2010, PostgreSQL Global Development Group + 1994, The Regents of the University of California" diff --git a/dev-db/postgresql/postgresql-9.2.3.bep b/dev-db/postgresql/postgresql-9.2.3.bep new file mode 100644 index 000000000..6f12c132d --- /dev/null +++ b/dev-db/postgresql/postgresql-9.2.3.bep @@ -0,0 +1,27 @@ +DESCRIPTION="PostgreSQL is a powerful, open source object-relational database system." +HOMEPAGE="http://www.postgresql.org/" +SRC_URI="http://ftp.postgresql.org/pub/source/v9.2.3/postgresql-9.2.3.tar.bz2" +REVISION="1" +STATUS_HAIKU="broken" +DEPEND="dev-libs/libedit >= 20100424" +CHECKSUM_MD5="59f42a93695b0186ed5eb03c2653a7d4" +BUILD { + cd postgresql-9.2.3 + ./configure --prefix=`finddir B_COMMON_DIRECTORY` --with-template=haiku + make +} + +INSTALL { + cd postgresql-9.2.3 + make install +} + +TEST { + cd postgresql-9.2.3 +# make test +# make check +} + +LICENSE="PostgreSQL" +COPYRIGHT="1996-2012, PostgreSQL Global Development Group + 1994, The Regents of the University of California" diff --git a/dev-db/redis/patches/redis-2.2.11.patch b/dev-db/redis/patches/redis-2.2.11.patch new file mode 100644 index 000000000..e67eccbc9 --- /dev/null +++ b/dev-db/redis/patches/redis-2.2.11.patch @@ -0,0 +1,82 @@ +diff --git redis-2.2.11/deps/hiredis/Makefile redis-2.2.11/deps/hiredis/Makefile +index b186e75..345a15d 100644 +diff --git redis-2.2.11/deps/hiredis/Makefile redis-2.2.11/deps/hiredis/Makefile +index 2a84b9b..9d50572 100644 +--- redis-2.2.11/deps/hiredis/Makefile ++++ redis-2.2.11/deps/hiredis/Makefile +@@ -26,6 +26,15 @@ ifeq ($(uname_S),Darwin) + STLIBNAME?=libhiredis.a + STLIB_MAKE_CMD?=libtool -static -o ${STLIBNAME} - ${OBJ} + else ++ifeq ($(uname_S),Haiku) ++ CFLAGS?=-std=c99 -pedantic $(OPTIMIZATION) -fPIC -Wall -W -Wstrict-prototypes -Wwrite-strings $(ARCH) $(PROF) ++ CCLINK?=-lroot -lnetwork ++ LDFLAGS?=-L. -Wl,-rpath,. ++ DYLIBNAME?=libhiredis.so ++ DYLIB_MAKE_CMD?=gcc -shared -Wl,-soname,${DYLIBNAME} -o ${DYLIBNAME} ${OBJ} ++ STLIBNAME?=libhiredis.a ++ STLIB_MAKE_CMD?=ar rcs ${STLIBNAME} ${OBJ} ++else + CFLAGS?=-std=c99 -pedantic $(OPTIMIZATION) -fPIC -Wall -W -Wstrict-prototypes -Wwrite-strings $(ARCH) $(PROF) + CCLINK?=-lm -pthread + LDFLAGS?=-L. -Wl,-rpath,. +diff --git redis-2.2.11/src/Makefile redis-2.2.11/src/Makefile +index 292255c..51d2910 100644 +--- redis-2.2.11/src/Makefile ++++ redis-2.2.11/src/Makefile +@@ -15,7 +15,12 @@ endif + ifeq ($(uname_S),SunOS) + CFLAGS?=-std=c99 -pedantic $(OPTIMIZATION) -Wall -W -D__EXTENSIONS__ -D_XPG6 + CCLINK?=-ldl -lnsl -lsocket -lm -lpthread +- DEBUG?=-g -ggdb ++ DEBUG?=-g -ggdb ++else ++ifeq ($(uname_S),Haiku) ++ CFLAGS?=-std=c99 -pedantic $(OPTIMIZATION) -Wall -W $(ARCH) $(PROF) ++ CCLINK?=-lroot -lnetwork ++ DEBUG?=-g -ggdb + else + CFLAGS?=-std=c99 -pedantic $(OPTIMIZATION) -Wall -W $(ARCH) $(PROF) + CCLINK?=-lm -pthread +-- + +diff --git redis-2.2.11/src/aof.c redis-2.2.11/src/aof.c +index e30c77f..2403e83 100644 +--- redis-2.2.11/src/aof.c ++++ redis-2.2.11/src/aof.c +@@ -23,7 +23,7 @@ void stopAppendOnly(void) { + int statloc; + + if (kill(server.bgsavechildpid,SIGKILL) != -1) +- wait3(&statloc,0,NULL); ++ waitpid(&statloc,0,NULL); + /* reset the buffer accumulating changes while the child saves */ + sdsfree(server.bgrewritebuf); + server.bgrewritebuf = sdsempty(); +diff --git redis-2.2.11/src/redis.c redis-2.2.11/src/redis.c +index 45be893..b7d1b0b 100644 +--- redis-2.2.11/src/redis.c ++++ redis-2.2.11/src/redis.c +@@ -589,7 +589,7 @@ int serverCron(struct aeEventLoop *eventLoop, long long id, void *clientData) { + int statloc; + pid_t pid; + +- if ((pid = wait3(&statloc,WNOHANG,NULL)) != 0) { ++ if ((pid = waitpid(&statloc,WNOHANG,NULL)) != 0) { + if (pid == server.bgsavechildpid) { + backgroundSaveDoneHandler(statloc); + } else { +diff --git redis-2.2.11/src/sha1.c redis-2.2.11/src/sha1.c +index 2c50433..312c777 100644 +--- redis-2.2.11/src/sha1.c ++++ redis-2.2.11/src/sha1.c +@@ -27,6 +27,9 @@ A million repetitions of "a" + #if defined(__sun) + #include "solarisfixes.h" + #endif ++#ifdef __HAIKU__ ++#include ++#endif + #include "sha1.h" + + #ifndef BYTE_ORDER diff --git a/dev-db/redis/patches/redis-2.9.0-git.patch b/dev-db/redis/patches/redis-2.9.0-git.patch new file mode 100644 index 000000000..3d0bb4f81 --- /dev/null +++ b/dev-db/redis/patches/redis-2.9.0-git.patch @@ -0,0 +1,105 @@ +diff --git redis-2.9.0-git/deps/hiredis/Makefile redis-2.9.0-git/deps/hiredis/Makefile +index 2a84b9b..1225539 100644 +--- redis-2.9.0-git/deps/hiredis/Makefile ++++ redis-2.9.0-git/deps/hiredis/Makefile +@@ -26,6 +26,15 @@ ifeq ($(uname_S),Darwin) + STLIBNAME?=libhiredis.a + STLIB_MAKE_CMD?=libtool -static -o ${STLIBNAME} - ${OBJ} + else ++ifeq ($(uname_S),Haiku) ++ CFLAGS?=-std=c99 -pedantic $(OPTIMIZATION) -fPIC -Wall -W -Wstrict-prototypes -Wwrite-strings $(ARCH) $(PROF) ++ CCLINK?=-lroot -lnetwork ++ LDFLAGS?=-L. -Wl,-rpath,. ++ DYLIBNAME?=libhiredis.so ++ DYLIB_MAKE_CMD?=gcc -shared -Wl,-soname,${DYLIBNAME} -o ${DYLIBNAME} ${OBJ} ++ STLIBNAME?=libhiredis.a ++ STLIB_MAKE_CMD?=ar rcs ${STLIBNAME} ${OBJ} ++else + CFLAGS?=-std=c99 -pedantic $(OPTIMIZATION) -fPIC -Wall -W -Wstrict-prototypes -Wwrite-strings $(ARCH) $(PROF) + CCLINK?=-lm -pthread + LDFLAGS?=-L. -Wl,-rpath,. +@@ -35,6 +44,7 @@ else + STLIB_MAKE_CMD?=ar rcs ${STLIBNAME} ${OBJ} + endif + endif ++endif + + CCOPT= $(CFLAGS) $(CCLINK) + DEBUG?= -g -ggdb +diff --git redis-2.9.0-git/src/Makefile redis-2.9.0-git/src/Makefile +index 292255c..e6a6d87 100644 +--- redis-2.9.0-git/src/Makefile ++++ redis-2.9.0-git/src/Makefile +@@ -15,12 +15,18 @@ endif + ifeq ($(uname_S),SunOS) + CFLAGS?=-std=c99 -pedantic $(OPTIMIZATION) -Wall -W -D__EXTENSIONS__ -D_XPG6 + CCLINK?=-ldl -lnsl -lsocket -lm -lpthread +- DEBUG?=-g -ggdb ++ DEBUG?=-g -ggdb ++else ++ifeq ($(uname_S),Haiku) ++ CFLAGS?=-std=c99 -pedantic $(OPTIMIZATION) -Wall -W $(ARCH) $(PROF) ++ CCLINK?=-lroot -lnetwork ++ DEBUG?=-g -ggdb + else + CFLAGS?=-std=c99 -pedantic $(OPTIMIZATION) -Wall -W $(ARCH) $(PROF) + CCLINK?=-lm -pthread + DEBUG?=-g -rdynamic -ggdb + endif ++endif + + ifeq ($(USE_TCMALLOC),yes) + ALLOD_DEPS= +diff --git redis-2.9.0-git/src/aof.c redis-2.9.0-git/src/aof.c +index dbd0468..7a5d21f 100644 +--- redis-2.9.0-git/src/aof.c ++++ redis-2.9.0-git/src/aof.c +@@ -25,7 +25,7 @@ void stopAppendOnly(void) { + int statloc; + + if (kill(server.bgrewritechildpid,SIGKILL) != -1) +- wait3(&statloc,0,NULL); ++ waitpid(&statloc,0,NULL); + /* reset the buffer accumulating changes while the child saves */ + sdsfree(server.bgrewritebuf); + server.bgrewritebuf = sdsempty(); +diff --git redis-2.9.0-git/src/redis.c redis-2.9.0-git/src/redis.c +index 1a1f84f..4ecc873 100644 +--- redis-2.9.0-git/src/redis.c ++++ redis-2.9.0-git/src/redis.c +@@ -646,7 +646,7 @@ int serverCron(struct aeEventLoop *eventLoop, long long id, void *clientData) { + int statloc; + pid_t pid; + +- if ((pid = wait3(&statloc,WNOHANG,NULL)) != 0) { ++ if ((pid = waitpid(&statloc,WNOHANG,NULL)) != 0) { + int exitcode = WEXITSTATUS(statloc); + int bysignal = 0; + +diff --git redis-2.9.0-git/src/sha1.c redis-2.9.0-git/src/sha1.c +index 26a5565..e90812e 100644 +--- redis-2.9.0-git/src/sha1.c ++++ redis-2.9.0-git/src/sha1.c +@@ -27,6 +27,9 @@ A million repetitions of "a" + #if defined(__sun) + #include "solarisfixes.h" + #endif ++#ifdef __HAIKU__ ++#include ++#endif + #include "sha1.h" + #include "config.h" + +diff --git redis-2.9.0-git/src/util.c redis-2.9.0-git/src/util.c +index f5a23af..2a6d18d 100644 +--- redis-2.9.0-git/src/util.c ++++ redis-2.9.0-git/src/util.c +@@ -317,7 +317,7 @@ int d2string(char *buf, size_t len, double value) { + * integer printing function that is much faster. */ + double min = -4503599627370495; /* (2^52)-1 */ + double max = 4503599627370496; /* -(2^52) */ +- if (val > min && val < max && value == ((double)((long long)value))) ++ if (value > min && value < max && value == ((double)((long long)value))) + len = ll2string(buf,len,(long long)value); + else + #endif diff --git a/dev-db/redis/redis-2.2.11.bep b/dev-db/redis/redis-2.2.11.bep new file mode 100644 index 000000000..86f637606 --- /dev/null +++ b/dev-db/redis/redis-2.2.11.bep @@ -0,0 +1,20 @@ +HOMEPAGE= "http://redis.io/" +DESCRIPTION="Redis is an open source, advanced key-value store. It is often referred to as a data structure server since keys can contain strings, hashes, lists, sets and sorted sets." +SRC_URI= "http://redis.googlecode.com/files/redis-2.2.11.tar.gz" +REVISION = "1" +DEPEND="" +CHECKSUM_MD5= "5501c90ca02ae7ea93c34f067b3e0619" +STATUS_HAIKU="broken" +MESSAGE="This port only builds with gcc4. Use 'setgcc gcc4' before building." +BUILD { + cd redis-2.2.11 + make PREFIX=`finddir B_COMMON_DIRECTORY` +} + +INSTALL { + cd redis-2.2.11 + make install PREFIX=`finddir B_COMMON_DIRECTORY` +} + +LICENSE="BSD (3-clause)" +COPYRIGHT="2006-2010 Salvatore Sanfilippo" \ No newline at end of file diff --git a/dev-db/redis/redis-2.9.0-git.bep b/dev-db/redis/redis-2.9.0-git.bep new file mode 100644 index 000000000..c4b1ac78a --- /dev/null +++ b/dev-db/redis/redis-2.9.0-git.bep @@ -0,0 +1,20 @@ +HOMEPAGE= "http://redis.io/" +DESCRIPTION="Redis is an open source, advanced key-value store. It is often referred to as a data structure server since keys can contain strings, hashes, lists, sets and sorted sets." +SRC_URI= "git://github.com/antirez/redis.git" +REVISION = "1" +DEPEND="" +STATUS_HAIKU="stable" +# CHECKSUM_MD5= "5501c90ca02ae7ea93c34f067b3e0619" +MESSAGE="This port only builds with gcc4. Use 'setgcc gcc4' before building." +BUILD { + cd redis-2.9.0-git + make PREFIX=`finddir B_COMMON_DIRECTORY` +} + +INSTALL { + cd redis-2.9.0-git + make install PREFIX=`finddir B_COMMON_DIRECTORY` +} + +LICENSE="BSD (3-clause)" +COPYRIGHT="2006-2010 Salvatore Sanfilippo" \ No newline at end of file diff --git a/dev-db/sqlite/patches/sqlite-3.7.13.patch b/dev-db/sqlite/patches/sqlite-3.7.13.patch new file mode 100644 index 000000000..f10fed2f8 --- /dev/null +++ b/dev-db/sqlite/patches/sqlite-3.7.13.patch @@ -0,0 +1,20 @@ +diff -urN sqlite-autoconf-3071300/shell.c sqlite-autoconf-3071300-haiku/shell.c +--- sqlite-autoconf-3071300/shell.c 2012-06-11 02:33:44.060817408 -0700 ++++ sqlite-autoconf-3071300-haiku/shell.c 2012-06-15 22:51:13.171704320 -0700 +@@ -2694,7 +2694,6 @@ + */ + static char *find_home_dir(void){ + static char *home_dir = NULL; +- if( home_dir ) return home_dir; + + #if !defined(_WIN32) && !defined(WIN32) && !defined(__OS2__) && !defined(_WIN32_WCE) && !defined(__RTP__) && !defined(_WRS_KERNEL) + struct passwd *pwent; +@@ -2704,6 +2703,8 @@ + } + #endif + ++ if( home_dir ) return home_dir; ++ + #if defined(_WIN32_WCE) + /* Windows CE (arm-wince-mingw32ce-gcc) does not provide getenv() + */ diff --git a/dev-db/sqlite/sqlite-3.6.22.bep b/dev-db/sqlite/sqlite-3.6.22.bep index e752e3a8e..5095f9226 100644 --- a/dev-db/sqlite/sqlite-3.6.22.bep +++ b/dev-db/sqlite/sqlite-3.6.22.bep @@ -11,7 +11,7 @@ BUILD { aclocal autoconf automake - ./configure --prefix=/boot/common + ./configure --prefix=`finddir B_COMMON_DIRECTORY` make } diff --git a/dev-db/sqlite/sqlite-3.6.23.bep b/dev-db/sqlite/sqlite-3.6.23.bep index 7138b6f73..407412de8 100644 --- a/dev-db/sqlite/sqlite-3.6.23.bep +++ b/dev-db/sqlite/sqlite-3.6.23.bep @@ -11,7 +11,7 @@ BUILD { aclocal autoconf automake - ./configure --prefix=/boot/common + ./configure --prefix=`finddir B_COMMON_DIRECTORY` make } diff --git a/dev-db/sqlite/sqlite-3.7.13.bep b/dev-db/sqlite/sqlite-3.7.13.bep new file mode 100644 index 000000000..f7a717d95 --- /dev/null +++ b/dev-db/sqlite/sqlite-3.7.13.bep @@ -0,0 +1,26 @@ +DESCRIPTION="SQLite is a software library that implements a self-contained, serverless, zero-configuration, transactional SQL database engine." +HOMEPAGE="http://www.sqlite.org/" +SRC_URI="http://www.sqlite.org/sqlite-autoconf-3071300.tar.gz" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="" +CHECKSUM_MD5="c97df403e8a3d5b67bb408fcd6aabd8e" +BUILD { + cd sqlite-autoconf-3071300 + libtoolize --force --copy --install + aclocal + autoconf + automake + COMMON_DOCS=`finddir B_COMMON_DOCUMENTATION_DIRECTORY` + ./configure --prefix=`finddir B_COMMON_DIRECTORY` \ + --mandir=$COMMON_DOCS/man + make +} + +INSTALL { + cd sqlite-autoconf-3071300 + make install +} + +LICENSE="SQLite" +COPYRIGHT="Public Domain" diff --git a/dev-db/sqlite/sqlite-3.7.15.1.bep b/dev-db/sqlite/sqlite-3.7.15.1.bep new file mode 100644 index 000000000..b8c740e4f --- /dev/null +++ b/dev-db/sqlite/sqlite-3.7.15.1.bep @@ -0,0 +1,26 @@ +DESCRIPTION="Software library that implements a self-contained, serverless, zero-configuration, transactional SQL database engine." +HOMEPAGE="http://www.sqlite.org/" +SRC_URI="http://www.sqlite.org/sqlite-autoconf-3071501.tar.gz" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="" +CHECKSUM_MD5="a67c25afa199a11f0a37aff7ed9d2c14" +BUILD { + cd sqlite-autoconf-3071501 + libtoolize --force --copy --install + aclocal + autoconf + automake + COMMON_DOCS=`finddir B_COMMON_DOCUMENTATION_DIRECTORY` + ./configure --prefix=`finddir B_COMMON_DIRECTORY` \ + --mandir=$COMMON_DOCS/man + make +} + +INSTALL { + cd sqlite-autoconf-3071501 + make install +} + +LICENSE="SQLite" +COPYRIGHT="Public Domain" diff --git a/dev-db/sqlite/sqlite-3.7.2.bep b/dev-db/sqlite/sqlite-3.7.2.bep index b86a25587..9741f2403 100644 --- a/dev-db/sqlite/sqlite-3.7.2.bep +++ b/dev-db/sqlite/sqlite-3.7.2.bep @@ -11,7 +11,7 @@ BUILD { aclocal autoconf automake - ./configure --prefix=/boot/common + ./configure --prefix=`finddir B_COMMON_DIRECTORY` make } diff --git a/dev-db/sqlite/sqlite-3.7.3.bep b/dev-db/sqlite/sqlite-3.7.3.bep index 43f867472..77252fc92 100644 --- a/dev-db/sqlite/sqlite-3.7.3.bep +++ b/dev-db/sqlite/sqlite-3.7.3.bep @@ -11,7 +11,7 @@ BUILD { aclocal autoconf automake - ./configure --prefix=/boot/common + ./configure --prefix=`finddir B_COMMON_DIRECTORY` make } diff --git a/dev-db/sqlite/sqlite-3.7.4.bep b/dev-db/sqlite/sqlite-3.7.4.bep index 0c0845152..81686d062 100644 --- a/dev-db/sqlite/sqlite-3.7.4.bep +++ b/dev-db/sqlite/sqlite-3.7.4.bep @@ -11,7 +11,7 @@ BUILD { aclocal autoconf automake - ./configure --prefix=/boot/common + ./configure --prefix=`finddir B_COMMON_DIRECTORY` make } diff --git a/dev-db/sqlite/sqlite-3.7.6.2.bep b/dev-db/sqlite/sqlite-3.7.6.2.bep new file mode 100644 index 000000000..55cf7dd3c --- /dev/null +++ b/dev-db/sqlite/sqlite-3.7.6.2.bep @@ -0,0 +1,26 @@ +DESCRIPTION="SQLite is a software library that implements a self-contained, serverless, zero-configuration, transactional SQL database engine." +HOMEPAGE="http://www.sqlite.org/" +SRC_URI="http://www.sqlite.org/sqlite-autoconf-3070602.tar.gz" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="" +CHECKSUM_MD5="f16c08617968b4087b3d591fd575f59f" +BUILD { + cd sqlite-autoconf-3070602 + libtoolize --force --copy --install + aclocal + autoconf + automake + COMMON_DOCS=`finddir B_COMMON_DOCUMENTATION_DIRECTORY` + ./configure --prefix=`finddir B_COMMON_DIRECTORY` \ + --mandir=$COMMON_DOCS/man + make +} + +INSTALL { + cd sqlite-autoconf-3070602 + make install +} + +LICENSE="SQLite" +COPYRIGHT="Public Domain" diff --git a/dev-db/sqlite/sqlite-3.7.7.1.bep b/dev-db/sqlite/sqlite-3.7.7.1.bep new file mode 100644 index 000000000..a46b764d7 --- /dev/null +++ b/dev-db/sqlite/sqlite-3.7.7.1.bep @@ -0,0 +1,26 @@ +DESCRIPTION="SQLite is a software library that implements a self-contained, serverless, zero-configuration, transactional SQL database engine." +HOMEPAGE="http://www.sqlite.org/" +SRC_URI="http://www.sqlite.org/sqlite-autoconf-3070701.tar.gz" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="" +CHECKSUM_MD5="554026fe7fac47b1cf61c18d5fe43419" +BUILD { + cd sqlite-autoconf-3070701 + libtoolize --force --copy --install + aclocal + autoconf + automake + COMMON_DOCS=`finddir B_COMMON_DOCUMENTATION_DIRECTORY` + ./configure --prefix=`finddir B_COMMON_DIRECTORY` \ + --mandir=$COMMON_DOCS/man + make +} + +INSTALL { + cd sqlite-autoconf-3070701 + make install +} + +LICENSE="SQLite" +COPYRIGHT="Public Domain" diff --git a/dev-embedded/u-boot-tools/patches/u-boot-tools-2012.10.patch b/dev-embedded/u-boot-tools/patches/u-boot-tools-2012.10.patch new file mode 100644 index 000000000..fc0aff4d6 --- /dev/null +++ b/dev-embedded/u-boot-tools/patches/u-boot-tools-2012.10.patch @@ -0,0 +1,120 @@ +diff -ur u-boot-2012.10/common/image.c tmp/u-boot-2012.10/common/image.c +--- u-boot-2012.10/common/image.c 2012-11-08 10:52:02.774111232 +0100 ++++ tmp/u-boot-2012.10/common/image.c 2012-10-15 17:14:08.046399488 +0200 +@@ -71,7 +71,7 @@ + #include "mkimage.h" + #include + #include +-#include ++#include + #endif /* !USE_HOSTCC*/ + + static const table_entry_t uimage_arch[] = { +diff -ur u-boot-2012.10/tools/aisimage.c tmp/u-boot-2012.10/tools/aisimage.c +--- u-boot-2012.10/tools/aisimage.c 2012-11-08 10:48:20.923271168 +0100 ++++ tmp/u-boot-2012.10/tools/aisimage.c 2012-10-15 17:14:08.063176704 +0200 +@@ -26,7 +26,7 @@ + + #include "mkimage.h" + #include "aisimage.h" +-#include ++#include + + #define IS_FNC_EXEC(c) (cmd_table[c].AIS_cmd == AIS_CMD_FNLOAD) + #define WORD_ALIGN0 4 +diff -ur u-boot-2012.10/tools/default_image.c tmp/u-boot-2012.10/tools/default_image.c +--- u-boot-2012.10/tools/default_image.c 2012-11-08 10:48:39.345505792 +0100 ++++ tmp/u-boot-2012.10/tools/default_image.c 2012-10-15 17:14:08.066060288 +0200 +@@ -28,7 +28,7 @@ + */ + + #include "mkimage.h" +-#include ++#include + #include + + static image_header_t header; +diff -ur u-boot-2012.10/tools/fit_image.c tmp/u-boot-2012.10/tools/fit_image.c +--- u-boot-2012.10/tools/fit_image.c 2012-11-08 10:48:56.498860032 +0100 ++++ tmp/u-boot-2012.10/tools/fit_image.c 2012-10-15 17:14:08.000786432 +0200 +@@ -28,7 +28,7 @@ + */ + + #include "mkimage.h" +-#include ++#include + #include + + static image_header_t header; +diff -ur u-boot-2012.10/tools/imximage.c tmp/u-boot-2012.10/tools/imximage.c +--- u-boot-2012.10/tools/imximage.c 2012-11-08 10:52:34.872677376 +0100 ++++ tmp/u-boot-2012.10/tools/imximage.c 2012-10-15 17:14:08.003145728 +0200 +@@ -29,7 +29,7 @@ + #define _GNU_SOURCE + + #include "mkimage.h" +-#include ++#include + #include "imximage.h" + + /* +diff -ur u-boot-2012.10/tools/kwbimage.c tmp/u-boot-2012.10/tools/kwbimage.c +--- u-boot-2012.10/tools/kwbimage.c 2012-11-08 10:52:53.073662464 +0100 ++++ tmp/u-boot-2012.10/tools/kwbimage.c 2012-10-15 17:14:08.003407872 +0200 +@@ -26,7 +26,7 @@ + #define _GNU_SOURCE + + #include "mkimage.h" +-#include ++#include + #include "kwbimage.h" + + /* +diff -ur u-boot-2012.10/tools/mkimage.c tmp/u-boot-2012.10/tools/mkimage.c +--- u-boot-2012.10/tools/mkimage.c 2012-11-08 10:55:06.533463040 +0100 ++++ tmp/u-boot-2012.10/tools/mkimage.c 2012-10-15 17:14:08.005505024 +0200 +@@ -22,7 +22,7 @@ + */ + + #include "mkimage.h" +-#include ++#include + #include + + static void copy_file(int, const char *, int); +diff -ur u-boot-2012.10/tools/omapimage.c tmp/u-boot-2012.10/tools/omapimage.c +--- u-boot-2012.10/tools/omapimage.c 2012-11-08 10:55:39.680525824 +0100 ++++ tmp/u-boot-2012.10/tools/omapimage.c 2012-10-15 17:14:08.006291456 +0200 +@@ -34,7 +34,7 @@ + #define _GNU_SOURCE + + #include "mkimage.h" +-#include ++#include + #include "omapimage.h" + + /* Header size is CH header rounded up to 512 bytes plus GP header */ +diff -ur u-boot-2012.10/tools/pblimage.c tmp/u-boot-2012.10/tools/pblimage.c +--- u-boot-2012.10/tools/pblimage.c 2012-11-08 10:53:09.547356672 +0100 ++++ tmp/u-boot-2012.10/tools/pblimage.c 2012-10-15 17:14:08.008126464 +0200 +@@ -22,7 +22,7 @@ + #define _GNU_SOURCE + + #include "mkimage.h" +-#include ++#include + #include "pblimage.h" + + /* +diff -ur u-boot-2012.10/tools/ublimage.c tmp/u-boot-2012.10/tools/ublimage.c +--- u-boot-2012.10/tools/ublimage.c 2012-11-08 10:55:59.951844864 +0100 ++++ tmp/u-boot-2012.10/tools/ublimage.c 2012-10-15 17:14:08.009175040 +0200 +@@ -33,7 +33,7 @@ + #define _GNU_SOURCE + + #include "mkimage.h" +-#include ++#include + #include "ublimage.h" + + /* diff --git a/dev-embedded/u-boot-tools/u-boot-tools-2012.10.bep b/dev-embedded/u-boot-tools/u-boot-tools-2012.10.bep new file mode 100644 index 000000000..5f038a90f --- /dev/null +++ b/dev-embedded/u-boot-tools/u-boot-tools-2012.10.bep @@ -0,0 +1,20 @@ +DESCRIPTION="utilities for working with Das U-Boot" +HOMEPAGE="http://www.denx.de/wiki/U-Boot/Documentation" +SRC_URI="http://ftp.denx.de/pub/u-boot/u-boot-2012.10.tar.bz2" +REVISION="1" +STATUS_HAIKU="stable" + +BUILD { + cd u-boot-2012.10 + mv include/image.h include/uimage.h + make tools +} + +INSTALL { + cd u-boot-2012.10 + cp -r /tools/mkimage /boot/common/bin/ + cp -r /tools/mkenvimage /boot/common/bin/ +} + +LICENSE="GNU GPL v2" +COPYRIGHT="2003 - 2012 U-Boot" diff --git a/dev-games/flatzebra/flatzebra-0.1.3.bep b/dev-games/flatzebra/flatzebra-0.1.3.bep index 3a4f7fafb..d65b12935 100644 --- a/dev-games/flatzebra/flatzebra-0.1.3.bep +++ b/dev-games/flatzebra/flatzebra-0.1.3.bep @@ -13,7 +13,7 @@ BUILD { aclocal -I macros autoconf automake - ./configure --prefix=/boot/common + ./configure --prefix=`finddir B_COMMON_DIRECTORY` make } diff --git a/dev-games/libggz/libggz-0.99.5.bep b/dev-games/libggz/libggz-0.99.5.bep new file mode 100644 index 000000000..894a5bb2f --- /dev/null +++ b/dev-games/libggz/libggz-0.99.5.bep @@ -0,0 +1,24 @@ +DESCRIPTION="GGZ Library libggz" +HOMEPAGE="http://dev.ggzgamingzone.org/libraries/libggz/" +SRC_URI="http://mirrors.ibiblio.org/pub/mirrors/ggzgamingzone/ggz/snapshots/ggz-base-libs-snapshot-0.99.5.tar.gz" +CHECKSUM_MD5="811d956fe082ee27c682c6d1c4d55142" +REVISION="1" +STATUS_HAIKU="broken" +DEPEND="dev-util/pkgconfig >= 0.23" + +BUILD { + cd ggz-base-libs-snapshot-0.99.5 + libtoolize -fci + aclocal -I m4 -I m4/ggz + autoconf + ./configure --prefix=`finddir B_COMMON_DIRECTORY` + make +} + +INSTALL { + cd ggz-base-libs-snapshot-0.99.5 + make install +} + +LICENSE="GNU LGPL v2.1" +COPYRIGHT="2003-2009 The GGZ Development Team" diff --git a/dev-games/libggz/patches/libggz-0.99.5.patch b/dev-games/libggz/patches/libggz-0.99.5.patch new file mode 100644 index 000000000..b3bd973cd --- /dev/null +++ b/dev-games/libggz/patches/libggz-0.99.5.patch @@ -0,0 +1,28 @@ +diff -Naur ggz-base-libs-snapshot-0.99.5/ggzcore/netxml.c ggz-base-libs-snapshot-0.99.5-haiku/ggzcore/netxml.c +--- ggz-base-libs-snapshot-0.99.5/ggzcore/netxml.c 2009-01-02 19:32:30.017825792 +0000 ++++ ggz-base-libs-snapshot-0.99.5/ggzcore/netxml.c 2011-06-08 19:17:54.251396096 +0000 +@@ -37,6 +37,11 @@ + #include + #include + ++#ifdef (__HAIKU__) ++#include ++#endif ++ ++ + #ifdef HAVE_WINSOCK2_H + # include + #endif + +--- ggz-base-libs-snapshot-0.99.5/m4/ggz/platform.m4 2012-12-22 15:35:37.236191744 +0000 ++++ ggz-base-libs-snapshot-0.99.5/m4/ggz/platform.m4 2012-12-22 15:26:06.672661504 +0000 +@@ -251,7 +251,9 @@ + # On some systems additional libraries may be needed. Simply include them + # if they're there. + AC_CHECK_LIB(socket, socket, [LIBS="$LIBS -lsocket"]) ++AC_CHECK_LIB(network, socket, [LIBS="$LIBS -lnetwork"]) + AC_CHECK_LIB(nsl, gethostbyname, [LIBS="$LIBS -lnsl"]) ++AC_CHECK_LIB(network, gethostbyname, [LIBS="$LIBS -lnetwork"]) + ]) + + dnl ------------------------------------------------------------------------ diff --git a/dev-games/ode/ode-0.12.bep b/dev-games/ode/ode-0.12.bep new file mode 100644 index 000000000..b6209a625 --- /dev/null +++ b/dev-games/ode/ode-0.12.bep @@ -0,0 +1,17 @@ +DESCRIPTION="ODE is an open source, high performance library for simulating rigid body dynamics." +HOMEPAGE="http://www.ode.org/" +SRC_URI="http://downloads.sourceforge.net/project/opende/ODE/0.12/ode-0.12.tar.bz2?r=http%3A%2F%2Fsourceforge.net%2Fprojects%2Fopende%2Ffiles%2F&ts=1356377654&use_mirror=freefr" +REVISION="1" +COPYRIGHT="2001-2004 Russell L. Smith" +LICENSE="GNU LGPL v3 + BSD (3-clause)" +CHECKSUM_MD5="48fdd41fae1a7e7831feeded09826599" +BUILD { + cd ode-0.12 + ./configure --prefix=`finddir B_COMMON_DIRECTORY` + make +} +INSTALL { + cd ode-0.12 + make install +} diff --git a/dev-games/ode/patches/ode-0.12.patch b/dev-games/ode/patches/ode-0.12.patch new file mode 100644 index 000000000..131dddd87 --- /dev/null +++ b/dev-games/ode/patches/ode-0.12.patch @@ -0,0 +1,24 @@ +diff -u ode-0.12/ode/src/joints/Makefile.in ode-0.12-haiku/ode/src/joints/Makefile.in +--- ode-0.12/ode/src/joints/Makefile.in 2012-05-28 23:26:01.017825792 +0000 ++++ ode-0.12-haiku/ode/src/joints/Makefile.in 2012-12-27 19:39:57.854327296 +0000 +@@ -53,7 +53,7 @@ + contact.lo universal.lo hinge2.lo fixed.lo null.lo amotor.lo \ + lmotor.lo plane2d.lo pu.lo pr.lo piston.lo + libjoints_la_OBJECTS = $(am_libjoints_la_OBJECTS) +-DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/ode/src ++DEFAULT_INCLUDES = -I.@am__isrc@ -I- -I$(top_builddir)/ode/src + depcomp = $(SHELL) $(top_srcdir)/depcomp + am__depfiles_maybe = depfiles + am__mv = mv -f +diff -u ode-0.12/include/ode/collision.h ode-0.12-haiku/include/ode/collision.h +--- ode-0.12/include/ode/collision.h 2012-12-27 19:39:13.484704256 +0000 ++++ ode-0.12-haiku/include/ode/collision.h 2012-12-27 19:39:01.685244416 +0000 +@@ -1081,7 +1081,7 @@ + ODE_API void dGeomRaySetClosestHit (dGeomID g, int closestHit); + ODE_API int dGeomRayGetClosestHit (dGeomID g); + +-#include "collision_trimesh.h" ++#include "ode/collision_trimesh.h" + + ODE_API dGeomID dCreateGeomTransform (dSpaceID space); + ODE_API void dGeomTransformSetGeom (dGeomID g, dGeomID obj); diff --git a/dev-games/physfs/physfs-2.0.1.bep b/dev-games/physfs/physfs-2.0.1.bep index 570b0cfb1..dfc030b5a 100644 --- a/dev-games/physfs/physfs-2.0.1.bep +++ b/dev-games/physfs/physfs-2.0.1.bep @@ -1,5 +1,5 @@ -DESCRIPTION="PhysicsFS is a library to provide abstract access to various archives" -HOMEPAGE="http://icculus.org/physfs" +DESCRIPTION="PhysicsFS is a library to provide abstract access to various archives" +HOMEPAGE="http://icculus.org/physfs" SRC_URI="hg+http://hg.icculus.org/icculus/physfs/#release-2.0.1" #SRC_URI="http://icculus.org/physfs/downloads/physfs-2.0.1.tar.gz" #CHECKSUM_MD5="df00465fcfa80e87f718961c6dd6b928" @@ -9,11 +9,7 @@ DEPEND="dev-util/cmake >= 2.8.0 dev-util/mercurial >= 1.4" BUILD { cd physfs-2.0.1 - if [ -n "$(setgcc | grep '2')" ]; then - cmake . -DLIBRARY_OUTPUT_PATH:=`finddir B_COMMON_LIB_DIRECTORY` - else - cmake . -DLIBRARY_OUTPUT_PATH:=`finddir B_COMMON_LIB_DIRECTORY`/gcc4 - fi + cmake . -DLIBRARY_OUTPUT_PATH:=`finddir B_COMMON_LIB_DIRECTORY` make } @@ -24,10 +20,10 @@ INSTALL { if [ -e "${DESTDIR}" ]; then mkdir -p ${DESTDIR}/tmp-phy mv -v ${DESTDIR}/boot/common/lib ${DESTDIR}/tmp-phy - mkdir -p ${DESTDIR}/boot/common/lib/gcc4 - mv -v ${DESTDIR}/tmp-phy/lib/* ${DESTDIR}/boot/common/lib/gcc4 + mkdir -p ${DESTDIR}/boot/common/lib + mv -v ${DESTDIR}/tmp-phy/lib/* ${DESTDIR}/boot/common/lib else - mv -v /boot/common/lib/libphysfs.* /boot/common/lib/gcc4 + mv -v /boot/common/lib/libphysfs.* /boot/common/lib fi fi } diff --git a/dev-java/gnu-classpath/gnu-classpath-0.98.bep b/dev-java/gnu-classpath/gnu-classpath-0.98.bep index 877bc4186..5c3ae52ea 100644 --- a/dev-java/gnu-classpath/gnu-classpath-0.98.bep +++ b/dev-java/gnu-classpath/gnu-classpath-0.98.bep @@ -1,5 +1,5 @@ -DESCRIPTION="Free core class libraries for use with virtual machines and compilers for the Java language" -HOMEPAGE="http://www.gnu.org/software/classpath" +DESCRIPTION="Free core class libraries for use with virtual machines and compilers for the Java language" +HOMEPAGE="http://www.gnu.org/software/classpath" SRC_URI="ftp://ftp.gnu.org/gnu/classpath/classpath-0.98.tar.gz" REVISION="1" STATUS_HAIKU="broken" @@ -10,9 +10,10 @@ BUILD { libtoolize --force --copy --install aclocal -I m4 autoconf + COMMON_DOCS=`finddir B_COMMON_DOCUMENTATION_DIRECTORY` ./configure --prefix=`finddir B_COMMON_DIRECTORY` \ - --mandir=`finddir B_COMMON_DOCUMENTATION_DIRECTORY`/man \ - --infodir=`finddir B_COMMON_DOCUMENTATION_DIRECTORY`/info \ + --mandir=$COMMON_DOCS/man \ + --infodir=$COMMON_DOCS/info \ --disable-gtk-peer \ --disable-alsa \ --disable-plugin \ diff --git a/dev-java/jamvm/jamvm-1.5.4.bep b/dev-java/jamvm/jamvm-1.5.4.bep index a83ebcad6..056ddf8a3 100644 --- a/dev-java/jamvm/jamvm-1.5.4.bep +++ b/dev-java/jamvm/jamvm-1.5.4.bep @@ -1,6 +1,6 @@ DESCRIPTION="JamVM" HOMEPAGE="http://jamvm.sourceforge.net" -SRC_URI="http://sourceforge.net/projects/jamvm/files/jamvm/JamVM 1.5.4/jamvm-1.5.4.tar.gz" +SRC_URI="http://sourceforge.net/projects/jamvm/files/jamvm/JamVM%201.5.4/jamvm-1.5.4.tar.gz/download" REVISION="1" STATUS_HAIKU="stable" DEPEND="" diff --git a/dev-lang/camlp5/camlp5-6.06.bep b/dev-lang/camlp5/camlp5-6.06.bep new file mode 100644 index 000000000..ec5a58d26 --- /dev/null +++ b/dev-lang/camlp5/camlp5-6.06.bep @@ -0,0 +1,24 @@ +DESCRIPTION="Preprocessor-pretty-printer of OCaml" +HOMEPAGE="http://pauillac.inria.fr/~ddr/camlp5/" +SRC_URI="http://pauillac.inria.fr/~ddr/camlp5/distrib/src/camlp5-6.06.tgz" +CHECKSUM_MD5="8de69094d73d24768844a5017a2bd04b" +REVISION="1" +STATUS_HAIKU="untested" +DEPEND="ocaml" +BUILD { + cd camlp5-6.06 + COMMON_DOCS=`finddir B_COMMON_DOCUMENTATION_DIRECTORY` + ./configure --strict --prefix `finddir B_COMMON_DIRECTORY` \ + --mandir $COMMON_DOCS/man + make world.opt +} + +INSTALL { + cd camlp5-6.06 + COMMON_DOCS=`finddir B_COMMON_DOCUMENTATION_DIRECTORY` + make install PREFIX=${DESTDIR}`finddir B_COMMON_DIRECTORY` \ + MANDIR=${DESTDIR}$COMMON_DOCS/man + +} +LICENSE="BSD (3-clause)" +COPYRIGHT="2007-2012 Institut National de Recherche en Informatique et en Automatique (INRIA)." diff --git a/dev-lang/dmd-bin/dmd-bin-1.064.bep b/dev-lang/dmd-bin/dmd-bin-1.064.bep index fb051c98d..f24e02ef8 100644 --- a/dev-lang/dmd-bin/dmd-bin-1.064.bep +++ b/dev-lang/dmd-bin/dmd-bin-1.064.bep @@ -13,8 +13,8 @@ BUILD { } INSTALL { - mkdir -p ${DESTDIR}/boot/common/bin - cp dmd/src/dmd/dmd ${DESTDIR}/boot/common/bin/dmd + mkdir -p ${DESTDIR}`finddir B_COMMON_BIN_DIRECTORY` + cp dmd/src/dmd/dmd ${DESTDIR}`finddir B_COMMON_BIN_DIRECTORY`/dmd } LICENSE="Digital Mars" diff --git a/dev-lang/fpc/fpc-2.6.0.bep b/dev-lang/fpc/fpc-2.6.0.bep new file mode 100644 index 000000000..6ef4f70bc --- /dev/null +++ b/dev-lang/fpc/fpc-2.6.0.bep @@ -0,0 +1,38 @@ +DESCRIPTION="Free Pascal Compiler - open source compiler for pascal and object pascal" +HOMEPAGE="http://www.freepascal.org" +SRC_URI="ftp://ftp.freepascal.org/pub/fpc/dist/2.6.0/source/fpc-2.6.0.source.tar.gz + http://fpc.planetmirror.com/pub/fpc/dist/2.6.0/source/fpc-2.6.0.source.tar.gz + ftp://gd.tuwien.ac.at/languages/pascal/fpc/dist/2.6.0/source/fpc-2.6.0.source.tar.gz + ftp://ftp.hu.freepascal.org/pub/fpc/dist/2.6.0/source/fpc-2.6.0.source.tar.gz + http://mirror.mirimar.net/freepascal/dist/2.6.0/source/fpc-2.6.0.source.tar.gz + ftp://freepascal.stack.nl/pub/fpc/dist/2.6.0/source/fpc-2.6.0.source.tar.gz + ftp://ftp.no.freepascal.org/pub/fpc/dist/2.6.0/source/fpc-2.6.0.source.tar.gz + ftp://ftp.chg.ru/pub/lang/pascal/fpc/dist/2.6.0/source/fpc-2.6.0.source.tar.gz" + +CHECKSUM_MD5="0edf0d6f52e1e3fd6ef6836431f4d13b" +REVISION="1" +STATUS_HAIKU="untested" +DEPEND="dev-lang/fpc" + +BUILD { + cd fpc-2.6.0 + make build +} + +INSTALL { + cd fpc-2.6.0 + make install INSTALL_PREFIX=${DESTDIR}`finddir B_USER_CONFIG_DIRECTORY` \ + FPCDIR=${DESTDIR}`finddir B_USER_LIB_DIRECTORY`/fpc/2.6.0 + # Make link to the ppc386 executable + ln -fs ${DESTDIR}`finddir B_USER_LIB_DIRECTORY`/fpc/2.6.0/ppc386 \ + ${DESTDIR}`finddir B_USER_CONFIG_DIRECTORY`/bin +} + +TEST { + cd fpc-2.6.0/tests + make full TEST_FPC=${DESTDIR}`finddir B_USER_CONFIG_DIRECTORY`/bin/fpc +} + +LICENSE="GNU LGPL v3 + GNU GPL v3" +COPYRIGHT="1993-2011 by Florian Klaempfl" diff --git a/dev-lang/lua/lua-5.1.4-3.bep b/dev-lang/lua/lua-5.1.4-3.bep new file mode 100644 index 000000000..525e47545 --- /dev/null +++ b/dev-lang/lua/lua-5.1.4-3.bep @@ -0,0 +1,21 @@ +DESCRIPTION="Lua is a powerful, fast, light-weight, embeddable scripting language." +HOMEPAGE="http://www.lua.org" +SRC_URI="http://www.lua.org/ftp/lua-5.1.4.tar.gz" +CHECKSUM_MD5="d0870f2de55d59c1c8419f36e8fac150" +REVISION="3" +STATUS_HAIKU="stable" +DEPEND="pkgconfig >= 0.25" +BUILD { + cd lua-5.1.4 + make haiku +} + +INSTALL { + cd lua-5.1.4 + make install INSTALL_TOP="${DESTDIR}`finddir B_COMMON_DIRECTORY`" \ + INSTALL_MAN="${DESTDIR}`finddir B_COMMON_DOCUMENTATION_DIRECTORY`/man" + mkdir -p ${DESTDIR}`finddir B_COMMON_LIB_DIRECTORY`/pkgconfig + cp etc/lua.pc ${DESTDIR}`finddir B_COMMON_LIB_DIRECTORY`/pkgconfig/lua.pc +} +LICENSE="MIT" +COPYRIGHT="1994-2009, Lua.org, PUC-Rio" diff --git a/dev-lang/lua/lua-5.1.4.bep b/dev-lang/lua/lua-5.1.4.bep index 30e3da7dd..525e47545 100644 --- a/dev-lang/lua/lua-5.1.4.bep +++ b/dev-lang/lua/lua-5.1.4.bep @@ -1,5 +1,5 @@ -DESCRIPTION="Lua is a powerful, fast, light-weight, embeddable scripting language." -HOMEPAGE="http://www.lua.org" +DESCRIPTION="Lua is a powerful, fast, light-weight, embeddable scripting language." +HOMEPAGE="http://www.lua.org" SRC_URI="http://www.lua.org/ftp/lua-5.1.4.tar.gz" CHECKSUM_MD5="d0870f2de55d59c1c8419f36e8fac150" REVISION="3" @@ -12,19 +12,10 @@ BUILD { INSTALL { cd lua-5.1.4 - if [ -n "$(setgcc | grep '4')" ]; then - make install INSTALL_TOP="${DESTDIR}`finddir B_COMMON_DIRECTORY`" \ - INSTALL_MAN="${DESTDIR}`finddir B_COMMON_DOCUMENTATION_DIRECTORY`/man" \ - INSTALL_LIB="${DESTDIR}`finddir B_COMMON_LIB_DIRECTORY`/gcc4" - mkdir -p ${DESTDIR}`finddir B_COMMON_LIB_DIRECTORY`/pkgconfig - cp etc/lua.pc ${DESTDIR}`finddir B_COMMON_LIB_DIRECTORY`/pkgconfig/lua.pc - else - make install INSTALL_TOP="${DESTDIR}`finddir B_COMMON_DIRECTORY`" \ - INSTALL_MAN="${DESTDIR}`finddir B_COMMON_DOCUMENTATION_DIRECTORY`/man" - mkdir -p ${DESTDIR}`finddir B_COMMON_LIB_DIRECTORY`/pkgconfig - cp etc/lua.pc ${DESTDIR}`finddir B_COMMON_LIB_DIRECTORY`/pkgconfig/lua.pc - fi - + make install INSTALL_TOP="${DESTDIR}`finddir B_COMMON_DIRECTORY`" \ + INSTALL_MAN="${DESTDIR}`finddir B_COMMON_DOCUMENTATION_DIRECTORY`/man" + mkdir -p ${DESTDIR}`finddir B_COMMON_LIB_DIRECTORY`/pkgconfig + cp etc/lua.pc ${DESTDIR}`finddir B_COMMON_LIB_DIRECTORY`/pkgconfig/lua.pc } LICENSE="MIT" COPYRIGHT="1994-2009, Lua.org, PUC-Rio" diff --git a/dev-lang/lua/lua-5.2.1.bep b/dev-lang/lua/lua-5.2.1.bep new file mode 100644 index 000000000..6e4dd9fcf --- /dev/null +++ b/dev-lang/lua/lua-5.2.1.bep @@ -0,0 +1,18 @@ +DESCRIPTION="Lua is a powerful, fast, light-weight, embeddable scripting language." +HOMEPAGE="http://www.lua.org" +SRC_URI="http://www.lua.org/ftp/lua-5.2.1.tar.gz" +CHECKSUM_MD5="ae08f641b45d737d12d30291a5e5f6e3" +REVISION="3" +STATUS_HAIKU="stable" +BUILD { + cd lua-5.2.1 + make haiku +} + +INSTALL { + cd lua-5.2.1 + make install INSTALL_TOP="${DESTDIR}`finddir B_COMMON_DIRECTORY`" \ + INSTALL_MAN="${DESTDIR}`finddir B_COMMON_DOCUMENTATION_DIRECTORY`/man" +} +LICENSE="MIT" +COPYRIGHT="1994-2012, Lua.org, PUC-Rio" diff --git a/dev-lang/lua/patches/lua-5.1.4-3.patch b/dev-lang/lua/patches/lua-5.1.4-3.patch new file mode 100644 index 000000000..38b6ddd2a --- /dev/null +++ b/dev-lang/lua/patches/lua-5.1.4-3.patch @@ -0,0 +1,276 @@ +diff -urN lua-5.1.4/Makefile lua-5.1.4-haiku/Makefile +--- lua-5.1.4/Makefile 2008-08-12 00:40:48.066322432 +0000 ++++ lua-5.1.4-haiku/Makefile 2011-05-03 22:29:07.568328192 +0000 +@@ -13,11 +13,11 @@ + INSTALL_BIN= $(INSTALL_TOP)/bin + INSTALL_INC= $(INSTALL_TOP)/include + INSTALL_LIB= $(INSTALL_TOP)/lib +-INSTALL_MAN= $(INSTALL_TOP)/man/man1 ++INSTALL_MAN= `finddir B_COMMON_DOCUMENTATION_DIRECTORY`/man/man1 + # + # You probably want to make INSTALL_LMOD and INSTALL_CMOD consistent with + # LUA_ROOT, LUA_LDIR, and LUA_CDIR in luaconf.h (and also with etc/lua.pc). +-INSTALL_LMOD= $(INSTALL_TOP)/share/lua/$V ++INSTALL_LMOD= `finddir B_COMMON_DATA_DIRECTORY`/lua/$V + INSTALL_CMOD= $(INSTALL_TOP)/lib/lua/$V + + # How to install. If your install program does not support "-p", then you +@@ -38,12 +38,12 @@ + # == END OF USER SETTINGS. NO NEED TO CHANGE ANYTHING BELOW THIS LINE ========= + + # Convenience platforms targets. +-PLATS= aix ansi bsd freebsd generic linux macosx mingw posix solaris ++PLATS= aix ansi bsd freebsd generic haiku linux macosx mingw posix solaris + + # What to install. + TO_BIN= lua luac + TO_INC= lua.h luaconf.h lualib.h lauxlib.h ../etc/lua.hpp +-TO_LIB= liblua.a ++TO_LIB= liblua.a liblua.so + TO_MAN= lua.1 luac.1 + + # Lua version and release. +diff -urN lua-5.1.4/src/Makefile lua-5.1.4-haiku/src/Makefile +--- lua-5.1.4/src/Makefile 2008-01-19 19:37:58.066584576 +0000 ++++ lua-5.1.4-haiku/src/Makefile 2011-05-03 22:08:17.191627264 +0000 +@@ -20,9 +20,10 @@ + + # == END OF USER SETTINGS. NO NEED TO CHANGE ANYTHING BELOW THIS LINE ========= + +-PLATS= aix ansi bsd freebsd generic linux macosx mingw posix solaris ++PLATS= aix ansi bsd freebsd generic haiku linux macosx mingw posix solaris + + LUA_A= liblua.a ++LUA_SO= liblua.so + CORE_O= lapi.o lcode.o ldebug.o ldo.o ldump.o lfunc.o lgc.o llex.o lmem.o \ + lobject.o lopcodes.o lparser.o lstate.o lstring.o ltable.o ltm.o \ + lundump.o lvm.o lzio.o +@@ -36,7 +37,7 @@ + LUAC_O= luac.o print.o + + ALL_O= $(CORE_O) $(LIB_O) $(LUA_O) $(LUAC_O) +-ALL_T= $(LUA_A) $(LUA_T) $(LUAC_T) ++ALL_T= $(LUA_A) $(LUA_T) $(LUAC_T) $(LUA_SO) + ALL_A= $(LUA_A) + + default: $(PLAT) +@@ -57,6 +58,9 @@ + $(LUAC_T): $(LUAC_O) $(LUA_A) + $(CC) -o $@ $(MYLDFLAGS) $(LUAC_O) $(LUA_A) $(LIBS) + ++$(LUA_SO): $(CORE_O) $(LIB_O) ++ $(CC) -o $@ -shared -fPIC $(MYLDFLAGS) $? $(LIBS) ++ + clean: + $(RM) $(ALL_T) $(ALL_O) + +@@ -95,6 +99,9 @@ + generic: + $(MAKE) all MYCFLAGS= + ++haiku: ++ $(MAKE) all MYCFLAGS=-DLUA_USE_HAIKU LIBS= ++ + linux: + $(MAKE) all MYCFLAGS=-DLUA_USE_LINUX MYLIBS="-Wl,-E -ldl -lreadline -lhistory -lncurses" + +diff -urN lua-5.1.4/src/lcode.c lua-5.1.4-haiku/src/lcode.c +--- lua-5.1.4/src/lcode.c 2007-12-28 15:32:23.000262144 +0000 ++++ lua-5.1.4-haiku/src/lcode.c 2011-05-03 22:06:13.312999936 +0000 +@@ -1,5 +1,5 @@ + /* +-** $Id: lcode.c,v 2.25.1.3 2007/12/28 15:32:23 roberto Exp $ ++** $Id: lcode.c,v 2.25.1.5 2011/01/31 14:53:16 roberto Exp $ + ** Code generator for Lua + ** See Copyright Notice in lua.h + */ +@@ -544,10 +544,6 @@ + pc = NO_JUMP; /* always true; do nothing */ + break; + } +- case VFALSE: { +- pc = luaK_jump(fs); /* always jump */ +- break; +- } + case VJMP: { + invertjump(fs, e); + pc = e->u.s.info; +@@ -572,10 +568,6 @@ + pc = NO_JUMP; /* always false; do nothing */ + break; + } +- case VTRUE: { +- pc = luaK_jump(fs); /* always jump */ +- break; +- } + case VJMP: { + pc = e->u.s.info; + break; +diff -urN lua-5.1.4/src/ldblib.c lua-5.1.4-haiku/src/ldblib.c +--- lua-5.1.4/src/ldblib.c 2008-01-21 13:11:21.000262144 +0000 ++++ lua-5.1.4-haiku/src/ldblib.c 2011-05-03 22:06:13.322699264 +0000 +@@ -1,5 +1,5 @@ + /* +-** $Id: ldblib.c,v 1.104.1.3 2008/01/21 13:11:21 roberto Exp $ ++** $Id: ldblib.c,v 1.104.1.4 2009/08/04 18:50:18 roberto Exp $ + ** Interface from Lua to its debug API + ** See Copyright Notice in lua.h + */ +@@ -45,6 +45,7 @@ + + + static int db_getfenv (lua_State *L) { ++ luaL_checkany(L, 1); + lua_getfenv(L, 1); + return 1; + } +diff -urN lua-5.1.4/src/liolib.c lua-5.1.4-haiku/src/liolib.c +--- lua-5.1.4/src/liolib.c 2008-01-18 17:47:43.001572864 +0000 ++++ lua-5.1.4-haiku/src/liolib.c 2011-05-03 22:06:13.346292224 +0000 +@@ -1,5 +1,5 @@ + /* +-** $Id: liolib.c,v 2.73.1.3 2008/01/18 17:47:43 roberto Exp $ ++** $Id: liolib.c,v 2.73.1.4 2010/05/14 15:33:51 roberto Exp $ + ** Standard I/O (and system) library + ** See Copyright Notice in lua.h + */ +@@ -276,7 +276,10 @@ + lua_pushnumber(L, d); + return 1; + } +- else return 0; /* read fails */ ++ else { ++ lua_pushnil(L); /* "result" to be removed */ ++ return 0; /* read fails */ ++ } + } + + +diff -urN lua-5.1.4/src/llex.c lua-5.1.4-haiku/src/llex.c +--- lua-5.1.4/src/llex.c 2007-12-27 13:02:25.001835008 +0000 ++++ lua-5.1.4-haiku/src/llex.c 2011-05-03 22:06:13.368050176 +0000 +@@ -1,5 +1,5 @@ + /* +-** $Id: llex.c,v 2.20.1.1 2007/12/27 13:02:25 roberto Exp $ ++** $Id: llex.c,v 2.20.1.2 2009/11/23 14:58:22 roberto Exp $ + ** Lexical Analyzer + ** See Copyright Notice in lua.h + */ +@@ -118,8 +118,10 @@ + lua_State *L = ls->L; + TString *ts = luaS_newlstr(L, str, l); + TValue *o = luaH_setstr(L, ls->fs->h, ts); /* entry for `str' */ +- if (ttisnil(o)) ++ if (ttisnil(o)) { + setbvalue(o, 1); /* make sure `str' will not be collected */ ++ luaC_checkGC(L); ++ } + return ts; + } + +diff -urN lua-5.1.4/src/loadlib.c lua-5.1.4-haiku/src/loadlib.c +--- lua-5.1.4/src/loadlib.c 2008-08-06 13:29:28.002621440 +0000 ++++ lua-5.1.4-haiku/src/loadlib.c 2011-05-03 22:06:13.391380992 +0000 +@@ -1,5 +1,5 @@ + /* +-** $Id: loadlib.c,v 1.52.1.3 2008/08/06 13:29:28 roberto Exp $ ++** $Id: loadlib.c,v 1.52.1.4 2009/09/09 13:17:16 roberto Exp $ + ** Dynamic library loader for Lua + ** See Copyright Notice in lua.h + ** +@@ -639,7 +639,7 @@ + lua_pushvalue(L, -1); + lua_replace(L, LUA_ENVIRONINDEX); + /* create `loaders' table */ +- lua_createtable(L, 0, sizeof(loaders)/sizeof(loaders[0]) - 1); ++ lua_createtable(L, sizeof(loaders)/sizeof(loaders[0]) - 1, 0); + /* fill it with pre-defined loaders */ + for (i=0; loaders[i] != NULL; i++) { + lua_pushcfunction(L, loaders[i]); +diff -urN lua-5.1.4/src/lstrlib.c lua-5.1.4-haiku/src/lstrlib.c +--- lua-5.1.4/src/lstrlib.c 2008-07-11 17:27:21.004194304 +0000 ++++ lua-5.1.4-haiku/src/lstrlib.c 2011-05-03 22:06:13.411303936 +0000 +@@ -1,5 +1,5 @@ + /* +-** $Id: lstrlib.c,v 1.132.1.4 2008/07/11 17:27:21 roberto Exp $ ++** $Id: lstrlib.c,v 1.132.1.5 2010/05/14 15:34:19 roberto Exp $ + ** Standard library for string operations and pattern-matching + ** See Copyright Notice in lua.h + */ +@@ -754,6 +754,7 @@ + + + static int str_format (lua_State *L) { ++ int top = lua_gettop(L); + int arg = 1; + size_t sfl; + const char *strfrmt = luaL_checklstring(L, arg, &sfl); +@@ -768,7 +769,8 @@ + else { /* format item */ + char form[MAX_FORMAT]; /* to store the format (`%...') */ + char buff[MAX_ITEM]; /* to store the formatted item */ +- arg++; ++ if (++arg > top) ++ luaL_argerror(L, arg, "no value"); + strfrmt = scanformat(L, strfrmt, form); + switch (*strfrmt++) { + case 'c': { +diff -urN lua-5.1.4/src/luaconf.h lua-5.1.4-haiku/src/luaconf.h +--- lua-5.1.4/src/luaconf.h 2008-02-11 16:25:08.004980736 +0000 ++++ lua-5.1.4-haiku/src/luaconf.h 2011-05-03 22:08:17.243793920 +0000 +@@ -33,6 +33,13 @@ + #define LUA_WIN + #endif + ++#if defined(LUA_USE_HAIKU) ++#define LUA_USE_MKSTEMP ++#define LUA_USE_ISATTY ++#define LUA_USE_POPEN ++#define LUA_USE_DLOPEN ++#endif ++ + #if defined(LUA_USE_LINUX) + #define LUA_USE_POSIX + #define LUA_USE_DLOPEN /* needs an extra library: -ldl */ +@@ -94,7 +101,11 @@ + ".\\?.dll;" LUA_CDIR"?.dll;" LUA_CDIR"loadall.dll" + + #else +-#define LUA_ROOT "/usr/local/" ++# if defined(LUA_USE_HAIKU) ++# define LUA_ROOT "/boot/common/" ++# else ++# define LUA_ROOT "/usr/local/" ++# endif + #define LUA_LDIR LUA_ROOT "share/lua/5.1/" + #define LUA_CDIR LUA_ROOT "lib/lua/5.1/" + #define LUA_PATH_DEFAULT \ +diff -urN lua-5.1.4/src/lvm.c lua-5.1.4-haiku/src/lvm.c +--- lua-5.1.4/src/lvm.c 2007-12-28 15:32:23.005242880 +0000 ++++ lua-5.1.4-haiku/src/lvm.c 2011-05-03 22:06:13.432537600 +0000 +@@ -1,5 +1,5 @@ + /* +-** $Id: lvm.c,v 2.63.1.3 2007/12/28 15:32:23 roberto Exp $ ++** $Id: lvm.c,v 2.63.1.4 2009/07/01 21:10:33 roberto Exp $ + ** Lua virtual machine + ** See Copyright Notice in lua.h + */ +@@ -133,6 +133,7 @@ + + void luaV_settable (lua_State *L, const TValue *t, TValue *key, StkId val) { + int loop; ++ TValue temp; + for (loop = 0; loop < MAXTAGLOOP; loop++) { + const TValue *tm; + if (ttistable(t)) { /* `t' is a table? */ +@@ -152,7 +153,9 @@ + callTM(L, tm, t, key, val); + return; + } +- t = tm; /* else repeat with `tm' */ ++ /* else repeat with `tm' */ ++ setobj(L, &temp, tm); /* avoid pointing inside table (may rehash) */ ++ t = &temp; + } + luaG_runerror(L, "loop in settable"); + } diff --git a/dev-lang/lua/patches/lua-5.2.1.patch b/dev-lang/lua/patches/lua-5.2.1.patch new file mode 100644 index 000000000..ea654fad3 --- /dev/null +++ b/dev-lang/lua/patches/lua-5.2.1.patch @@ -0,0 +1,91 @@ +diff -ru lua-5.2.1/Makefile lua-5.2.1.patched/Makefile +--- lua-5.2.1/Makefile 2012-05-17 16:05:54.032768000 +0200 ++++ lua-5.2.1.patched/Makefile 2012-08-12 16:50:24.994574336 +0200 +@@ -36,12 +36,12 @@ + # == END OF USER SETTINGS -- NO NEED TO CHANGE ANYTHING BELOW THIS LINE ======= + + # Convenience platforms targets. +-PLATS= aix ansi bsd freebsd generic linux macosx mingw posix solaris ++PLATS= aix ansi bsd freebsd generic haiku linux macosx mingw posix solaris + + # What to install. + TO_BIN= lua luac + TO_INC= lua.h luaconf.h lualib.h lauxlib.h lua.hpp +-TO_LIB= liblua.a ++TO_LIB= liblua.a liblua.so + TO_MAN= lua.1 luac.1 + + # Lua version and release. +diff -ru lua-5.2.1/src/luaconf.h lua-5.2.1.patched/src/luaconf.h +--- lua-5.2.1/src/luaconf.h 2012-05-11 16:14:42.025690112 +0200 ++++ lua-5.2.1.patched/src/luaconf.h 2012-08-12 16:56:30.385875968 +0200 +@@ -40,6 +40,13 @@ + + + ++#if defined(LUA_USE_HAIKU) ++#define LUA_USE_MKSTEMP ++#define LUA_USE_ISATTY ++#define LUA_USE_POPEN ++#define LUA_USE_DLOPEN ++#endif ++ + #if defined(LUA_USE_LINUX) + #define LUA_USE_POSIX + #define LUA_USE_DLOPEN /* needs an extra library: -ldl */ +@@ -100,7 +107,11 @@ + #else /* }{ */ + + #define LUA_VDIR LUA_VERSION_MAJOR "." LUA_VERSION_MINOR "/" ++#if defined(LUA_USE_HAIKU) ++#define LUA_ROOT "/boot/common/" ++#else + #define LUA_ROOT "/usr/local/" ++#endif + #define LUA_LDIR LUA_ROOT "share/lua/" LUA_VDIR + #define LUA_CDIR LUA_ROOT "lib/lua/" LUA_VDIR + #define LUA_PATH_DEFAULT \ +diff -ru lua-5.2.1/src/Makefile lua-5.2.1.patched/src/Makefile +--- lua-5.2.1/src/Makefile 2012-03-09 17:32:16.029884416 +0100 ++++ lua-5.2.1.patched/src/Makefile 2012-08-12 16:52:43.662437888 +0200 +@@ -26,9 +26,10 @@ + + # == END OF USER SETTINGS -- NO NEED TO CHANGE ANYTHING BELOW THIS LINE ======= + +-PLATS= aix ansi bsd freebsd generic linux macosx mingw posix solaris ++PLATS= aix ansi bsd freebsd generic haiku linux macosx mingw posix solaris + + LUA_A= liblua.a ++LUA_SO= liblua.so + CORE_O= lapi.o lcode.o lctype.o ldebug.o ldo.o ldump.o lfunc.o lgc.o llex.o \ + lmem.o lobject.o lopcodes.o lparser.o lstate.o lstring.o ltable.o \ + ltm.o lundump.o lvm.o lzio.o +@@ -43,7 +44,7 @@ + LUAC_O= luac.o + + ALL_O= $(BASE_O) $(LUA_O) $(LUAC_O) +-ALL_T= $(LUA_A) $(LUA_T) $(LUAC_T) ++ALL_T= $(LUA_A) $(LUA_T) $(LUAC_T) $(LUA_SO) + ALL_A= $(LUA_A) + + # Targets start here. +@@ -65,6 +66,9 @@ + $(LUAC_T): $(LUAC_O) $(LUA_A) + $(CC) -o $@ $(LDFLAGS) $(LUAC_O) $(LUA_A) $(LIBS) + ++$(LUA_SO): $(CORE_O) $(LIB_O) ++ $(CC) -o $@ -shared -fPIC $(LDFLAGS) $? $(LIBS) ++ + clean: + $(RM) $(ALL_T) $(ALL_O) + +@@ -102,6 +106,9 @@ + + generic: $(ALL) + ++haiku: ++ $(MAKE) all MUCFLAGS=-DLUA_USE_HAIKU LIBS= ++ + linux: + $(MAKE) $(ALL) SYSCFLAGS="-DLUA_USE_LINUX" SYSLIBS="-Wl,-E -ldl -lreadline -lncurses" + diff --git a/dev-lang/nasm/nasm-2.08.01.bep b/dev-lang/nasm/nasm-2.08.01.bep index c1e908a58..f1c59328d 100644 --- a/dev-lang/nasm/nasm-2.08.01.bep +++ b/dev-lang/nasm/nasm-2.08.01.bep @@ -7,7 +7,7 @@ STATUS_HAIKU="untested" DEPEND="" BUILD { cd nasm-2.08.01 - ./configure --prefix=/boot/common + ./configure --prefix=`finddir B_COMMON_DIRECTORY` make } diff --git a/dev-lang/ocaml/ocaml-4.00.0.bep b/dev-lang/ocaml/ocaml-4.00.0.bep new file mode 100644 index 000000000..5e462e5d4 --- /dev/null +++ b/dev-lang/ocaml/ocaml-4.00.0.bep @@ -0,0 +1,23 @@ +DESCRIPTION="Implementation of the Caml language" +HOMEPAGE="http://caml.inria.fr/index.en.html" +SRC_URI="http://caml.inria.fr/pub/distrib/ocaml-4.00/ocaml-4.00.0.tar.gz" +CHECKSUM_MD5="fa11560a45793bd9fa45c1295a6f4a91" +REVISION="1" +STATUS_HAIKU="untested" +DEPEND="" +BUILD { + cd ocaml-4.00.0 + COMMON_DOCS=`finddir B_COMMON_DOCUMENTATION_DIRECTORY` + ./configure --prefix `finddir B_COMMON_DIRECTORY` \ + --mandir $COMMON_DOCS/man + make world.opt +} + +INSTALL { + cd ocaml-4.00.0 + COMMON_DOCS=`finddir B_COMMON_DOCUMENTATION_DIRECTORY` + make install PREFIX=${DESTDIR}`finddir B_COMMON_DIRECTORY` \ + MANDIR=${DESTDIR}$COMMON_DOCS/man +} +LICENSE="GNU LGPL v2" +COPYRIGHT="1996-2012 Institut National de Recherche en Informatique et en Automatique (INRIA)." diff --git a/dev-lang/ocaml/patches/ocaml-4.00.0.patch b/dev-lang/ocaml/patches/ocaml-4.00.0.patch new file mode 100644 index 000000000..f73910779 --- /dev/null +++ b/dev-lang/ocaml/patches/ocaml-4.00.0.patch @@ -0,0 +1,59 @@ +diff -ruN ocaml-4.00.0/configure ocaml-4.00.0/configure +--- ocaml-4.00.0/configure 2012-06-26 15:33:50.060555264 +0000 ++++ ocaml-4.00.0/configure 2012-09-25 21:21:50.419168256 +0000 +@@ -285,6 +285,10 @@ + bytecccompopts="-fno-defer-pop $gcc_warnings" + # No -lm library + mathlib="";; ++ *,*-*-haiku*) ++ bytecccompopts="-fno-defer-pop $gcc_warnings" ++ # No -lm library ++ mathlib="";; + gcc,alpha*-*-osf*) + bytecccompopts="-fno-defer-pop $gcc_warnings" + if cc="$bytecc" sh ./hasgot -mieee; then +@@ -614,6 +618,9 @@ + byteccrpath="-Wl,-rpath," + mksharedlibrpath="-Wl,-rpath," + shared_libraries_supported=true;; ++ *-*haiku*) ++ mksharedlib="$bytecc -shared" ++ shared_libraries_supported=true;; + esac + fi + +@@ -679,6 +686,7 @@ + arch=i386; system=solaris + fi;; + i[3456]86-*-beos*) arch=i386; system=beos;; ++ i[3456]86-*-haiku*) arch=i386; system=beos;; + i[3456]86-*-cygwin*) arch=i386; system=cygwin;; + i[3456]86-*-darwin*) if $arch64; then + arch=amd64; system=macosx +@@ -901,6 +909,11 @@ + cclibs="$cclibs -lnsl -lsocket" + echo "#define HAS_SOCKETS" >> s.h + has_sockets=yes ++elif sh ./hasgot -lnetwork socket socketpair bind listen accept connect; then ++ echo "You have BSD sockets (with libraries '-lnetwork')" ++ cclibs="$cclibs -lnetwork" ++ echo "#define HAS_SOCKETS" >> s.h ++ has_sockets=yes + fi + + if sh ./hasgot -i sys/socket.h -t socklen_t; then +diff -uN ocaml-4.00.0/otherlibs/unix/nice.c ocaml-4.00.0/otherlibs/unix/nice.c +--- ocaml-4.00.0/otherlibs/unix/nice.c 2012-09-25 21:31:10.443809792 +0000 ++++ ocaml-4.00.0/otherlibs/unix/nice.c 2012-09-25 21:31:51.582221824 +0000 +@@ -24,7 +24,11 @@ + { + int ret; + errno = 0; ++#ifdef __HAIKU__ ++ ret = 0; ++#else + ret = nice(Int_val(incr)); ++#endif + if (ret == -1 && errno != 0) uerror("nice", Nothing); + return Val_int(ret); + } diff --git a/dev-lang/openjdk/openjdk-1.7.bep b/dev-lang/openjdk/openjdk-1.7.bep new file mode 100644 index 000000000..da068202f --- /dev/null +++ b/dev-lang/openjdk/openjdk-1.7.bep @@ -0,0 +1,99 @@ +DESCRIPTION="openjdk" +HOMEPAGE="http://openjdk.java.net/" +SRC_URI="http://ports-space.haiku-files.org/dev-lang/j2sdk-july-r2.tar.xz" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="app-arch/cpio >= 2.10 + media-libs/freetype >= 2.4.6" + +CHECKSUM_MD5="28b8630373769e1e897a75bf81f2e1eb" + +BUILD { + OPENJDK_DIR=`haikuporter -t`/dev-lang/openjdk/work + + # Get and build Apache Ant. + # Making a separate .bep file for it wasn't such a good idea. + + wget -nc http://archive.apache.org/dist/ant/source/apache-ant-1.8.4-src.tar.gz + tar xvfz apache-ant-1.8.4-src.tar.gz + export LIBRARY_PATH=${OPENJDK_DIR}/j2sdk-image/jre/lib/i386/:$LIBRARY_PATH + export JAVA_HOME=${OPENJDK_DIR}/j2sdk-image + export ANT_HOME=${OPENJDK_DIR}/ant + cd apache-ant-1.8.4 + sed -i 's/depends=\"jars,test-jar\"/depends=\"jars\"/' build.xml + sh build.sh install-lite + unset JAVA_HOME + cd .. + + # Clone latest JDK repositories. + + hg clone http://hg.openjdk.java.net/haiku/haiku jdk --debug + hg clone http://hg.openjdk.java.net/haiku/haiku/corba jdk/corba --debug + hg clone http://hg.openjdk.java.net/haiku/haiku/hotspot jdk/hotspot --debug + hg clone http://hg.openjdk.java.net/haiku/haiku/jaxp jdk/jaxp --debug + hg clone http://hg.openjdk.java.net/haiku/haiku/jaxws jdk/jaxws --debug + hg clone http://hg.openjdk.java.net/haiku/haiku/jdk jdk/jdk --debug + hg clone http://hg.openjdk.java.net/haiku/haiku/langtools jdk/langtools --debug + + export ALT_BOOTDIR=${OPENJDK_DIR}/j2sdk-image + export ALT_JDK_IMPORT_PATH=${OPENJDK_DIR}/j2sdk-image + export ANT=${OPENJDK_DIR}/ant + export ALT_OUTPUTDIR=${OPENJDK_DIR}/output + mkdir -p ${ALT_OUTPUTDIR} + export ALLOW_DOWNLOADS=true + + # Deploy certain headers, if they are missing. + + HEADERS_DIR=`finddir B_SYSTEM_HEADERS_DIRECTORY` + MEDIA_DIR=${HEADERS_DIR}/os/media + + if [ -e ${MEDIA_DIR}/SoundConsumer.h ] ; + then + echo SoundConsumer.h exists. + else + cp SoundConsumer.h ${MEDIA_DIR}/SoundConsumer.h + SOUND_CONSUMER_H=1 + echo SoundConsumer.h was not found. Deployed private file instead. + fi + + if [ -e ${MEDIA_DIR}/SoundUtils.h ] ; + then + echo SoundUtils.h exists. + else + cp SoundUtils.h ${MEDIA_DIR}/SoundUtils.h + declare SOUND_UTILS_H=1 + echo SoundUtils.h was not found. Deployed private file instead. + fi + + # Build. + + cd jdk + make NO_DOCS=true + + # Cleanup private files, if any were deployed. + # I don't really think it would harm anyone if we don't clean them up after compiling. + +# if [ ${SOUND_CONSUMER_H} == 1 ] ; +# then +# rm -f ${MEDIA_DIR}/SoundConsumer.h +# echo Removed private SoundConsumer.h +# fi +# +# if [ ${SOUND_UTILS_H} == 1 ] ; +# then +# rm -f ${MEDIA_DIR}/SoundUtils.h +# echo Removed private SoundUtils.h +# fi +} + +INSTALL { + export DESTDIR=`finddir B_COMMON_DIRECTORY` + cp -r -f -v output ${DESTDIR}/jdk +} + +TEST { + echo "OpenJDK tests are not yet ported to Haiku." +} + +LICENSE="GNU GPL v2" +COPYRIGHT="2005, 2006, Oracle and/or its affiliates" diff --git a/dev-lang/openjdk/patches/openjdk-1.7.patch b/dev-lang/openjdk/patches/openjdk-1.7.patch new file mode 100644 index 000000000..789216196 --- /dev/null +++ b/dev-lang/openjdk/patches/openjdk-1.7.patch @@ -0,0 +1,213 @@ +--- /dev/null 2012-12-19 09:59:04.122365000 +0200 ++++ SoundConsumer.h 2012-12-04 04:36:51.000000000 +0200 +@@ -0,0 +1,151 @@ ++/******************************************************************************* ++/ ++/ File: SoundConsumer.h ++/ ++/ Description: Record sound from some sound-producing Node. ++/ ++/ Copyright 1998, Be Incorporated, All Rights Reserved ++/ ++*******************************************************************************/ ++#ifndef SOUND_CONSUMER_H ++#define SOUND_CONSUMER_H ++ ++// To use this Consumer: ++// 1. Create Record and Notify hooks, or subclass SoundConsumer ++// if you'd rather use the inheritance hierarchy. ++// * The Record function should do whatever you want to do ++// when you receive a buffer. ++// * The Notify function should handle whatever events ++// you wish to handle (defined in SoundUtil.h). ++// 2: Create an instance of SoundConsumer, giving it the ++// appropriate hook functions. Or, create an instance of an ++// appropriate subclass if you've made one. ++// 3: Register your new Consumer with the MediaRoster. ++// 4: Connect your Consumer to some Producer. ++// 5: Start or Stop the Consumer if your hook functions ++// implement behavior for these kinds of events. ++// Seek the Consumer to set the offset of the timestamps that ++// your Record function will see. ++// 6: When you're done, disconnect the Consumer, then delete it. ++ ++#include ++#include "SoundUtils.h" ++ ++namespace BPrivate { ++ ++ ++class SoundConsumer : public BBufferConsumer { ++public: ++ SoundConsumer(const char* name, ++ SoundProcessFunc recordFunc = NULL, ++ SoundNotifyFunc notifyFunc = NULL, ++ void* cookie = NULL); ++ virtual ~SoundConsumer(); ++ ++ //This function is OK to call from any thread. ++ status_t SetHooks(SoundProcessFunc recordFunc = NULL, ++ SoundNotifyFunc notifyFunc = NULL, ++ void* cookie = NULL); ++ ++ // The MediaNode interface ++public: ++ virtual port_id ControlPort() const; ++ virtual BMediaAddOn* AddOn(int32* internalID) const; ++ // Who instantiated you -- or NULL for app class ++ ++ ++protected: ++ virtual void Start(bigtime_t performanceTime); ++ virtual void Stop(bigtime_t performanceTime, bool immediate); ++ virtual void Seek(bigtime_t mediaTime, ++ bigtime_t performanceTime); ++ virtual void SetRunMode(run_mode mode); ++ virtual void TimeWarp(bigtime_t atRealTime, ++ bigtime_t to_performanceTime); ++ virtual void Preroll(); ++ virtual void SetTimeSource(BTimeSource* timeSource); ++ virtual status_t HandleMessage(int32 message, const void* data, ++ size_t size); ++ ++ // The BufferConsumer interface ++ virtual status_t AcceptFormat(const media_destination& dest, ++ media_format* format); ++ virtual status_t GetNextInput(int32* cookie, ++ media_input* _input); ++ virtual void DisposeInputCookie(int32 cookie); ++ virtual void BufferReceived(BBuffer* buffer); ++ virtual void ProducerDataStatus( ++ const media_destination& forWhom, ++ int32 status, bigtime_t atMediaTime); ++ virtual status_t GetLatencyFor(const media_destination& forWhom, ++ bigtime_t* _latency, ++ media_node_id* _timesource); ++ virtual status_t Connected(const media_source& producer, ++ const media_destination& where, ++ const media_format& format, ++ media_input* _input); ++ virtual void Disconnected(const media_source& producer, ++ const media_destination& where); ++ virtual status_t FormatChanged(const media_source& producer, ++ const media_destination& consumer, ++ int32 fromChangeCount, ++ const media_format& format); ++ ++protected: ++ // Functions called when no hooks are installed. ++ // OK to override instead of installing hooks. ++ virtual void Record(bigtime_t time, const void* data, ++ size_t size, ++ const media_raw_audio_format& format); ++ virtual void Notify(int32 cause, ...); ++ ++private: ++ SoundProcessFunc m_recordHook; ++ SoundNotifyFunc m_notifyHook; ++ void* m_cookie; ++ media_input m_input; ++ thread_id m_thread; ++ port_id m_port; ++ ++ // The times we need to deal with ++ // My notation for times: tr = real time, ++ // tp = performance time, tm = media time. ++ bigtime_t m_trTimeout; ++ // how long to wait on the input port ++ bigtime_t m_tpSeekAt; ++ // when we Seek ++ bigtime_t m_tmSeekTo; ++ // target time for Seek ++ ++ // The transformation from media to peformance time. ++ // d = p - m, so m + d = p. ++ // Media time is generally governed by the Seek ++ // function. In our node, we simply use media time as ++ // the time that we report to the record hook function. ++ // If we were a producer node, we might use media time ++ // to track where we were in playing a certain piece ++ // of media. But we aren't. ++ bigtime_t m_delta; ++ ++ // State variables ++ bool m_seeking; ++ // a Seek is pending ++ ++ // Functions to calculate timing values. OK to override. ++ // ProcessingLatency is the time it takes to process a buffer; ++ // TotalLatency is returned to producer; Timeout is passed ++ // to call to read_port_etc() in service thread loop. ++ virtual bigtime_t Timeout(); ++ virtual bigtime_t ProcessingLatency(); ++ virtual bigtime_t TotalLatency(); ++ // The actual thread doing the work ++ static status_t ThreadEntry(void* cookie); ++ void ServiceThread(); ++ void DoHookChange(void* message); ++}; ++ ++ ++} ++ ++ ++#endif // SOUND_CONSUMER_H +--- /dev/null 2012-12-19 09:59:04.122365000 +0200 ++++ SoundUtils.h 2012-12-04 04:36:51.000000000 +0200 +@@ -0,0 +1,56 @@ ++/******************************************************************************* ++/ ++/ File: SoundUtils.h ++/ ++/ Description: Utility functions for handling audio data. ++/ ++/ Copyright 1998-1999, Be Incorporated, All Rights Reserved ++/ ++*******************************************************************************/ ++ ++#if ! defined( _SoundUtils_h ) ++#define _SoundUtils_h ++ ++#include ++ ++// Simple helper functions that come in handy when doing ++// buffer calculations. ++double us_to_s(bigtime_t usecs); ++bigtime_t s_to_us(double secs); ++ ++int bytes_per_frame(const media_raw_audio_format & format); ++int frames_per_buffer(const media_raw_audio_format & format); ++bigtime_t buffer_duration(const media_raw_audio_format & format); ++bigtime_t frames_duration(const media_raw_audio_format & format, ++ int64 num_frames); ++int64 frames_for_duration(const media_raw_audio_format & format, ++ bigtime_t duration); ++int buffers_for_duration(const media_raw_audio_format & format, ++ bigtime_t duration); ++ ++// This is a common hook function interface for ++// SoundConsumer and SoundProducer to use. ++typedef void (*SoundProcessFunc)(void * cookie, ++ bigtime_t timestamp, void * data, size_t datasize, ++ const media_raw_audio_format & format); ++typedef void (*SoundNotifyFunc)(void * cookie, ++ int32 code, ...); ++ ++// These are special codes that we use in the Notify ++// function hook. ++enum { ++ B_WILL_START = 1, // performance_time ++ B_WILL_STOP, // performance_time immediate ++ B_WILL_SEEK, // performance_time media_time ++ B_WILL_TIMEWARP, // real_time performance_time ++ B_CONNECTED, // name (char*) ++ B_DISCONNECTED, // ++ B_FORMAT_CHANGED, // media_raw_audio_format* ++ B_NODE_DIES, // node will die! ++ B_HOOKS_CHANGED, // ++ B_OP_TIMED_OUT, // timeout that expired -- Consumer only ++ B_PRODUCER_DATA_STATUS, // status performance_time -- Consumer only ++ B_LATE_NOTICE // how_much performance_time -- Producer only ++}; ++ ++#endif /* _SoundUtils_h */ diff --git a/dev-lang/orc/orc-0.4.16.bep b/dev-lang/orc/orc-0.4.16.bep new file mode 100644 index 000000000..d86af92c5 --- /dev/null +++ b/dev-lang/orc/orc-0.4.16.bep @@ -0,0 +1,24 @@ +DESCRIPTION="orc - The Oil Runtime Compiler" +HOMEPAGE="http://code.entropywave.com/orc/" +SRC_URI="http://code.entropywave.com/download/orc/orc-0.4.16.tar.gz" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="" +CHECKSUM_MD5="e482932e544c847761449b106ecbc483" +BUILD { + cd orc-0.4.16 + autoconf + COMMON_DOCS=`finddir B_COMMON_DOCUMENTATION_DIRECTORY` + ./configure --prefix=`finddir B_COMMON_DIRECTORY` \ + --datadir=`finddir B_COMMON_DATA_DIRECTORY` \ + --mandir=$COMMON_DOCS/man + make +} + +INSTALL { + cd orc-0.4.16 + make install +} + +LICENSE="BSD (2-clause)" +COPYRIGHT="2002 - 2009 David A. Schleef" \ No newline at end of file diff --git a/dev-lang/orc/patches/orc-0.4.16.patch b/dev-lang/orc/patches/orc-0.4.16.patch new file mode 100644 index 000000000..68a87ff5a --- /dev/null +++ b/dev-lang/orc/patches/orc-0.4.16.patch @@ -0,0 +1,11 @@ +--- orc-0.4.16/configure.ac 2011-10-03 03:34:22.054788096 +0000 ++++ orc-0.4.16-haiku/configure.ac 2012-04-08 21:58:47.729808896 +0000 +@@ -97,7 +97,7 @@ + mingw*|pw32*|cygwin*) + AC_DEFINE(HAVE_CODEMEM_VIRTUALALLOC, 1, [Use VirtualAlloc to allocate code for execution]) + ;; +- linux*|darwin*|solaris*|netbsd*|freebsd*|openbsd*|kfreebsd*|dragonfly*|gnu*) ++ linux*|darwin*|solaris*|netbsd*|freebsd*|openbsd*|kfreebsd*|dragonfly*|gnu*|haiku*) + AC_DEFINE(HAVE_CODEMEM_MMAP, 1, [Use mmap to allocate code for execution]) + ;; + *) diff --git a/dev-lang/perl/patches/perl-5.10.0.patch b/dev-lang/perl/patches/perl-5.10.0.patch index 17d91b08f..832efc29c 100644 --- a/dev-lang/perl/patches/perl-5.10.0.patch +++ b/dev-lang/perl/patches/perl-5.10.0.patch @@ -635,3 +635,25 @@ diff -urN perl-5.10.0.orig/t/io/fs.t perl-5.10.0/t/io/fs.t SKIP: { skip "atime not updated", 1; } +diff -urN perl-5.10.1/Configure perl-5.10.1-haiku/Configure +--- perl-5.10.1/Configure 2009-08-18 19:03:53.024117248 +0000 ++++ perl-5.10.1-haiku/Configure 2012-09-07 13:57:19.000000000 +0000 +@@ -5139,18 +5139,6 @@ + eval $checkccflag + ;; + esac +- +- # on x86_64 (at least) we require an extra library (libssp) in the +- # link command line. This library is not named, so I infer that it is +- # an implementation detail that may change. Hence the safest approach +- # is to add the flag to the flags passed to the compiler at link time, +- # as that way the compiler can do the right implementation dependant +- # thing. (NWC) +- case "$gccversion" in +- ?*) set stack-protector -fstack-protector +- eval $checkccflag +- ;; +- esac + ;; + esac + diff --git a/dev-lang/php/php-5.3.4.bep b/dev-lang/php/php-5.3.4.bep index 16a133e98..f2331a1d4 100644 --- a/dev-lang/php/php-5.3.4.bep +++ b/dev-lang/php/php-5.3.4.bep @@ -9,7 +9,7 @@ BUILD { cd php-5.3.4 cat $(aclocal --print-ac-dir)/libtool.m4 > build/libtool.m4 autoreconf - ./configure --prefix=/boot/common --enable-shared --enable-static + ./configure --prefix=`finddir B_COMMON_DIRECTORY` --enable-shared --enable-static make } diff --git a/dev-lang/python/patches/python-2.6.7.patch b/dev-lang/python/patches/python-2.6.7.patch new file mode 100644 index 000000000..2ae88818a --- /dev/null +++ b/dev-lang/python/patches/python-2.6.7.patch @@ -0,0 +1,568 @@ +diff -urN Python-2.6.7/Lib/plat-haiku1/IN.py Python-2.6.7-haiku/Lib/plat-haiku1/IN.py +--- Python-2.6.7/Lib/plat-haiku1/IN.py 1970-01-01 00:00:00.000000000 +0000 ++++ Python-2.6.7-haiku/Lib/plat-haiku1/IN.py 2010-08-30 04:52:27.223346688 +0000 +@@ -0,0 +1,327 @@ ++# Generated by h2py from /boot/develop/headers/be/net/netinet/in.h ++ ++# Included from socket.h ++ ++# Included from BeBuild.h ++B_BEOS_VERSION_4 = 0x0400 ++B_BEOS_VERSION_4_5 = 0x0450 ++B_BEOS_VERSION_5 = 0x0500 ++B_BEOS_VERSION = B_BEOS_VERSION_5 ++B_BEOS_VERSION_MAUI = B_BEOS_VERSION_5 ++_PR2_COMPATIBLE_ = 1 ++_PR3_COMPATIBLE_ = 1 ++_R4_COMPATIBLE_ = 1 ++_R4_5_COMPATIBLE_ = 1 ++_PR2_COMPATIBLE_ = 0 ++_PR3_COMPATIBLE_ = 0 ++_R4_COMPATIBLE_ = 1 ++_R4_5_COMPATIBLE_ = 1 ++def _UNUSED(x): return x ++ ++ ++# Included from sys/types.h ++ ++# Included from time.h ++ ++# Included from be_setup.h ++def __std(ref): return ref ++ ++__be_os = 2 ++__dest_os = __be_os ++__MSL__ = 0x4011 ++__GLIBC__ = -2 ++__GLIBC_MINOR__ = 1 ++ ++# Included from null.h ++NULL = (0) ++NULL = 0L ++ ++# Included from size_t.h ++ ++# Included from stddef.h ++ ++# Included from wchar_t.h ++CLOCKS_PER_SEC = 1000 ++CLK_TCK = CLOCKS_PER_SEC ++MAX_TIMESTR = 70 ++ ++# Included from sys/time.h ++ ++# Included from ByteOrder.h ++ ++# Included from endian.h ++__LITTLE_ENDIAN = 1234 ++LITTLE_ENDIAN = __LITTLE_ENDIAN ++__BYTE_ORDER = __LITTLE_ENDIAN ++BYTE_ORDER = __BYTE_ORDER ++__BIG_ENDIAN = 0 ++BIG_ENDIAN = 0 ++__BIG_ENDIAN = 4321 ++BIG_ENDIAN = __BIG_ENDIAN ++__BYTE_ORDER = __BIG_ENDIAN ++BYTE_ORDER = __BYTE_ORDER ++__LITTLE_ENDIAN = 0 ++LITTLE_ENDIAN = 0 ++__PDP_ENDIAN = 3412 ++PDP_ENDIAN = __PDP_ENDIAN ++ ++# Included from SupportDefs.h ++ ++# Included from Errors.h ++ ++# Included from limits.h ++ ++# Included from float.h ++FLT_ROUNDS = 1 ++FLT_RADIX = 2 ++FLT_MANT_DIG = 24 ++FLT_DIG = 6 ++FLT_MIN_EXP = (-125) ++FLT_MIN_10_EXP = (-37) ++FLT_MAX_EXP = 128 ++FLT_MAX_10_EXP = 38 ++DBL_MANT_DIG = 53 ++DBL_DIG = 15 ++DBL_MIN_EXP = (-1021) ++DBL_MIN_10_EXP = (-308) ++DBL_MAX_EXP = 1024 ++DBL_MAX_10_EXP = 308 ++LDBL_MANT_DIG = DBL_MANT_DIG ++LDBL_DIG = DBL_DIG ++LDBL_MIN_EXP = DBL_MIN_EXP ++LDBL_MIN_10_EXP = DBL_MIN_10_EXP ++LDBL_MAX_EXP = DBL_MAX_EXP ++LDBL_MAX_10_EXP = DBL_MAX_10_EXP ++CHAR_BIT = (8) ++SCHAR_MIN = (-127-1) ++SCHAR_MAX = (127) ++CHAR_MIN = SCHAR_MIN ++CHAR_MAX = SCHAR_MAX ++MB_LEN_MAX = (1) ++SHRT_MIN = (-32767-1) ++SHRT_MAX = (32767) ++LONG_MIN = (-2147483647L-1) ++LONG_MAX = (2147483647L) ++INT_MIN = LONG_MIN ++INT_MAX = LONG_MAX ++ARG_MAX = (32768) ++ATEXIT_MAX = (32) ++CHILD_MAX = (1024) ++IOV_MAX = (256) ++FILESIZEBITS = (64) ++LINK_MAX = (1) ++LOGIN_NAME_MAX = (32) ++MAX_CANON = (255) ++MAX_INPUT = (255) ++NAME_MAX = (256) ++NGROUPS_MAX = (32) ++OPEN_MAX = (128) ++PATH_MAX = (1024) ++PIPE_MAX = (512) ++SSIZE_MAX = (2147483647L) ++TTY_NAME_MAX = (256) ++TZNAME_MAX = (32) ++SYMLINKS_MAX = (16) ++_POSIX_ARG_MAX = (32768) ++_POSIX_CHILD_MAX = (1024) ++_POSIX_LINK_MAX = (1) ++_POSIX_LOGIN_NAME_MAX = (9) ++_POSIX_MAX_CANON = (255) ++_POSIX_MAX_INPUT = (255) ++_POSIX_NAME_MAX = (255) ++_POSIX_NGROUPS_MAX = (0) ++_POSIX_OPEN_MAX = (128) ++_POSIX_PATH_MAX = (1024) ++_POSIX_PIPE_BUF = (512) ++_POSIX_SSIZE_MAX = (2147483647L) ++_POSIX_STREAM_MAX = (8) ++_POSIX_TTY_NAME_MAX = (256) ++_POSIX_TZNAME_MAX = (3) ++B_GENERAL_ERROR_BASE = LONG_MIN ++B_OS_ERROR_BASE = B_GENERAL_ERROR_BASE + 0x1000 ++B_APP_ERROR_BASE = B_GENERAL_ERROR_BASE + 0x2000 ++B_INTERFACE_ERROR_BASE = B_GENERAL_ERROR_BASE + 0x3000 ++B_MEDIA_ERROR_BASE = B_GENERAL_ERROR_BASE + 0x4000 ++B_TRANSLATION_ERROR_BASE = B_GENERAL_ERROR_BASE + 0x4800 ++B_MIDI_ERROR_BASE = B_GENERAL_ERROR_BASE + 0x5000 ++B_STORAGE_ERROR_BASE = B_GENERAL_ERROR_BASE + 0x6000 ++B_POSIX_ERROR_BASE = B_GENERAL_ERROR_BASE + 0x7000 ++B_MAIL_ERROR_BASE = B_GENERAL_ERROR_BASE + 0x8000 ++B_PRINT_ERROR_BASE = B_GENERAL_ERROR_BASE + 0x9000 ++B_DEVICE_ERROR_BASE = B_GENERAL_ERROR_BASE + 0xa000 ++B_ERRORS_END = (B_GENERAL_ERROR_BASE + 0xffff) ++E2BIG = (B_POSIX_ERROR_BASE + 1) ++ECHILD = (B_POSIX_ERROR_BASE + 2) ++EDEADLK = (B_POSIX_ERROR_BASE + 3) ++EFBIG = (B_POSIX_ERROR_BASE + 4) ++EMLINK = (B_POSIX_ERROR_BASE + 5) ++ENFILE = (B_POSIX_ERROR_BASE + 6) ++ENODEV = (B_POSIX_ERROR_BASE + 7) ++ENOLCK = (B_POSIX_ERROR_BASE + 8) ++ENOSYS = (B_POSIX_ERROR_BASE + 9) ++ENOTTY = (B_POSIX_ERROR_BASE + 10) ++ENXIO = (B_POSIX_ERROR_BASE + 11) ++ESPIPE = (B_POSIX_ERROR_BASE + 12) ++ESRCH = (B_POSIX_ERROR_BASE + 13) ++EFPOS = (B_POSIX_ERROR_BASE + 14) ++ESIGPARM = (B_POSIX_ERROR_BASE + 15) ++EDOM = (B_POSIX_ERROR_BASE + 16) ++ERANGE = (B_POSIX_ERROR_BASE + 17) ++EPROTOTYPE = (B_POSIX_ERROR_BASE + 18) ++EPROTONOSUPPORT = (B_POSIX_ERROR_BASE + 19) ++EPFNOSUPPORT = (B_POSIX_ERROR_BASE + 20) ++EAFNOSUPPORT = (B_POSIX_ERROR_BASE + 21) ++EADDRINUSE = (B_POSIX_ERROR_BASE + 22) ++EADDRNOTAVAIL = (B_POSIX_ERROR_BASE + 23) ++ENETDOWN = (B_POSIX_ERROR_BASE + 24) ++ENETUNREACH = (B_POSIX_ERROR_BASE + 25) ++ENETRESET = (B_POSIX_ERROR_BASE + 26) ++ECONNABORTED = (B_POSIX_ERROR_BASE + 27) ++ECONNRESET = (B_POSIX_ERROR_BASE + 28) ++EISCONN = (B_POSIX_ERROR_BASE + 29) ++ENOTCONN = (B_POSIX_ERROR_BASE + 30) ++ESHUTDOWN = (B_POSIX_ERROR_BASE + 31) ++ECONNREFUSED = (B_POSIX_ERROR_BASE + 32) ++EHOSTUNREACH = (B_POSIX_ERROR_BASE + 33) ++ENOPROTOOPT = (B_POSIX_ERROR_BASE + 34) ++ENOBUFS = (B_POSIX_ERROR_BASE + 35) ++EINPROGRESS = (B_POSIX_ERROR_BASE + 36) ++EALREADY = (B_POSIX_ERROR_BASE + 37) ++EILSEQ = (B_POSIX_ERROR_BASE + 38) ++ENOMSG = (B_POSIX_ERROR_BASE + 39) ++ESTALE = (B_POSIX_ERROR_BASE + 40) ++EOVERFLOW = (B_POSIX_ERROR_BASE + 41) ++EMSGSIZE = (B_POSIX_ERROR_BASE + 42) ++EOPNOTSUPP = (B_POSIX_ERROR_BASE + 43) ++ENOTSOCK = (B_POSIX_ERROR_BASE + 44) ++false = 0 ++true = 1 ++NULL = (0) ++FALSE = 0 ++TRUE = 1 ++ ++# Included from TypeConstants.h ++B_HOST_IS_LENDIAN = 1 ++B_HOST_IS_BENDIAN = 0 ++def B_HOST_TO_LENDIAN_DOUBLE(arg): return (double)(arg) ++ ++def B_HOST_TO_LENDIAN_FLOAT(arg): return (float)(arg) ++ ++def B_HOST_TO_LENDIAN_INT64(arg): return (uint64)(arg) ++ ++def B_HOST_TO_LENDIAN_INT32(arg): return (uint32)(arg) ++ ++def B_HOST_TO_LENDIAN_INT16(arg): return (uint16)(arg) ++ ++def B_HOST_TO_BENDIAN_DOUBLE(arg): return __swap_double(arg) ++ ++def B_HOST_TO_BENDIAN_FLOAT(arg): return __swap_float(arg) ++ ++def B_HOST_TO_BENDIAN_INT64(arg): return __swap_int64(arg) ++ ++def B_HOST_TO_BENDIAN_INT32(arg): return __swap_int32(arg) ++ ++def B_HOST_TO_BENDIAN_INT16(arg): return __swap_int16(arg) ++ ++def B_LENDIAN_TO_HOST_DOUBLE(arg): return (double)(arg) ++ ++def B_LENDIAN_TO_HOST_FLOAT(arg): return (float)(arg) ++ ++def B_LENDIAN_TO_HOST_INT64(arg): return (uint64)(arg) ++ ++def B_LENDIAN_TO_HOST_INT32(arg): return (uint32)(arg) ++ ++def B_LENDIAN_TO_HOST_INT16(arg): return (uint16)(arg) ++ ++def B_BENDIAN_TO_HOST_DOUBLE(arg): return __swap_double(arg) ++ ++def B_BENDIAN_TO_HOST_FLOAT(arg): return __swap_float(arg) ++ ++def B_BENDIAN_TO_HOST_INT64(arg): return __swap_int64(arg) ++ ++def B_BENDIAN_TO_HOST_INT32(arg): return __swap_int32(arg) ++ ++def B_BENDIAN_TO_HOST_INT16(arg): return __swap_int16(arg) ++ ++B_HOST_IS_LENDIAN = 0 ++B_HOST_IS_BENDIAN = 1 ++def B_HOST_TO_LENDIAN_DOUBLE(arg): return __swap_double(arg) ++ ++def B_HOST_TO_LENDIAN_FLOAT(arg): return __swap_float(arg) ++ ++def B_HOST_TO_LENDIAN_INT64(arg): return __swap_int64(arg) ++ ++def B_HOST_TO_LENDIAN_INT32(arg): return __swap_int32(arg) ++ ++def B_HOST_TO_LENDIAN_INT16(arg): return __swap_int16(arg) ++ ++def B_HOST_TO_BENDIAN_DOUBLE(arg): return (double)(arg) ++ ++def B_HOST_TO_BENDIAN_FLOAT(arg): return (float)(arg) ++ ++def B_HOST_TO_BENDIAN_INT64(arg): return (uint64)(arg) ++ ++def B_HOST_TO_BENDIAN_INT32(arg): return (uint32)(arg) ++ ++def B_HOST_TO_BENDIAN_INT16(arg): return (uint16)(arg) ++ ++def B_LENDIAN_TO_HOST_DOUBLE(arg): return __swap_double(arg) ++ ++def B_LENDIAN_TO_HOST_FLOAT(arg): return __swap_float(arg) ++ ++def B_LENDIAN_TO_HOST_INT64(arg): return __swap_int64(arg) ++ ++def B_LENDIAN_TO_HOST_INT32(arg): return __swap_int32(arg) ++ ++def B_LENDIAN_TO_HOST_INT16(arg): return __swap_int16(arg) ++ ++def B_BENDIAN_TO_HOST_DOUBLE(arg): return (double)(arg) ++ ++def B_BENDIAN_TO_HOST_FLOAT(arg): return (float)(arg) ++ ++def B_BENDIAN_TO_HOST_INT64(arg): return (uint64)(arg) ++ ++def B_BENDIAN_TO_HOST_INT32(arg): return (uint32)(arg) ++ ++def B_BENDIAN_TO_HOST_INT16(arg): return (uint16)(arg) ++ ++def B_SWAP_DOUBLE(arg): return __swap_double(arg) ++ ++def B_SWAP_FLOAT(arg): return __swap_float(arg) ++ ++def B_SWAP_INT64(arg): return __swap_int64(arg) ++ ++def B_SWAP_INT32(arg): return __swap_int32(arg) ++ ++def B_SWAP_INT16(arg): return __swap_int16(arg) ++ ++def htonl(x): return B_HOST_TO_BENDIAN_INT32(x) ++ ++def ntohl(x): return B_BENDIAN_TO_HOST_INT32(x) ++ ++def htons(x): return B_HOST_TO_BENDIAN_INT16(x) ++ ++def ntohs(x): return B_BENDIAN_TO_HOST_INT16(x) ++ ++AF_INET = 1 ++INADDR_ANY = 0x00000000 ++INADDR_BROADCAST = 0xffffffff ++INADDR_LOOPBACK = 0x7f000001 ++SOL_SOCKET = 1 ++SO_DEBUG = 1 ++SO_REUSEADDR = 2 ++SO_NONBLOCK = 3 ++SO_REUSEPORT = 4 ++MSG_OOB = 0x1 ++SOCK_DGRAM = 1 ++SOCK_STREAM = 2 ++IPPROTO_UDP = 1 ++IPPROTO_TCP = 2 ++IPPROTO_ICMP = 3 ++B_UDP_MAX_SIZE = (65536 - 1024) ++FD_SETSIZE = 256 ++FDSETSIZE = FD_SETSIZE ++NFDBITS = 32 ++def _FDMSKNO(fd): return ((fd) / NFDBITS) ++ ++def _FDBITNO(fd): return ((fd) % NFDBITS) +diff -urN Python-2.6.7/Lib/plat-haiku1/regen Python-2.6.7-haiku/Lib/plat-haiku1/regen +--- Python-2.6.7/Lib/plat-haiku1/regen 1970-01-01 00:00:00.000000000 +0000 ++++ Python-2.6.7-haiku/Lib/plat-haiku1/regen 2010-08-30 04:52:27.237502464 +0000 +@@ -0,0 +1,7 @@ ++#! /bin/sh ++ ++H2PY=../../Tools/scripts/h2py.py ++HEADERS=/boot/develop/headers ++ ++set -v ++python $H2PY -i '(u_long)' $HEADERS/posix/netinet/in.h +diff -urN Python-2.6.7/Modules/resource.c Python-2.6.7-haiku/Modules/resource.c +--- Python-2.6.7/Modules/resource.c 2010-05-09 15:15:40.053739520 +0000 ++++ Python-2.6.7-haiku/Modules/resource.c 2010-08-30 04:52:24.666370048 +0000 +@@ -86,6 +86,7 @@ + PyFloat_FromDouble(doubletime(ru.ru_utime))); + PyStructSequence_SET_ITEM(result, 1, + PyFloat_FromDouble(doubletime(ru.ru_stime))); ++#ifndef __HAIKU__ + PyStructSequence_SET_ITEM(result, 2, PyInt_FromLong(ru.ru_maxrss)); + PyStructSequence_SET_ITEM(result, 3, PyInt_FromLong(ru.ru_ixrss)); + PyStructSequence_SET_ITEM(result, 4, PyInt_FromLong(ru.ru_idrss)); +@@ -100,7 +101,7 @@ + PyStructSequence_SET_ITEM(result, 13, PyInt_FromLong(ru.ru_nsignals)); + PyStructSequence_SET_ITEM(result, 14, PyInt_FromLong(ru.ru_nvcsw)); + PyStructSequence_SET_ITEM(result, 15, PyInt_FromLong(ru.ru_nivcsw)); +- ++#endif + if (PyErr_Occurred()) { + Py_DECREF(result); + return NULL; +diff -urN Python-2.6.7/Modules/socketmodule.c Python-2.6.7-haiku/Modules/socketmodule.c +--- Python-2.6.7/Modules/socketmodule.c 2010-05-23 15:22:08.054525952 +0000 ++++ Python-2.6.7-haiku/Modules/socketmodule.c 2010-08-30 04:53:35.429916160 +0000 +@@ -4661,7 +4661,9 @@ + #ifndef __BEOS__ + /* We have incomplete socket support. */ + PyModule_AddIntConstant(m, "SOCK_RAW", SOCK_RAW); +- PyModule_AddIntConstant(m, "SOCK_SEQPACKET", SOCK_SEQPACKET); ++#ifndef __HAIKU__ ++ PyModule_AddIntConstant(m, "SOCK_SEQPACKET", SOCK_SEQPACKET); ++#endif + #if defined(SOCK_RDM) + PyModule_AddIntConstant(m, "SOCK_RDM", SOCK_RDM); + #endif +diff -urN Python-2.6.7/Modules/socketmodule.h Python-2.6.7-haiku/Modules/socketmodule.h +--- Python-2.6.7/Modules/socketmodule.h 2010-05-09 15:15:40.053739520 +0000 ++++ Python-2.6.7-haiku/Modules/socketmodule.h 2010-08-30 04:52:24.667942912 +0000 +@@ -47,6 +47,10 @@ + # undef AF_NETLINK + #endif + ++#if defined(__HAIKU__) ++#undef HAVE_BLUETOOTH_BLUETOOTH_H ++#endif ++ + #ifdef HAVE_BLUETOOTH_BLUETOOTH_H + #include + #include +diff -urN Python-2.6.7/Modules/spwdmodule.c Python-2.6.7-haiku/Modules/spwdmodule.c +--- Python-2.6.7/Modules/spwdmodule.c 2010-05-09 15:15:40.030408704 +0000 ++++ Python-2.6.7-haiku/Modules/spwdmodule.c 2010-08-30 04:52:24.709623808 +0000 +@@ -79,7 +79,9 @@ + + SETS(setIndex++, p->sp_namp); + SETS(setIndex++, p->sp_pwdp); ++#ifndef __HAIKU__ + SETI(setIndex++, p->sp_lstchg); ++#endif + SETI(setIndex++, p->sp_min); + SETI(setIndex++, p->sp_max); + SETI(setIndex++, p->sp_warn); +diff -urN Python-2.6.7/Modules/timemodule.c Python-2.6.7-haiku/Modules/timemodule.c +--- Python-2.6.7/Modules/timemodule.c 2010-05-09 15:15:40.015204352 +0000 ++++ Python-2.6.7-haiku/Modules/timemodule.c 2010-08-30 04:52:24.721944576 +0000 +@@ -972,11 +972,11 @@ + return -1; + } + Py_END_ALLOW_THREADS +-#elif defined(__BEOS__) ++#elif defined(__BEOS__) || defined(__HAIKU__) + /* This sleep *CAN BE* interrupted. */ + { + if( secs <= 0.0 ) { +- return; ++ return 0; + } + + Py_BEGIN_ALLOW_THREADS +diff -urN Python-2.6.7/Parser/asdl_c.py Python-2.6.7-haiku/Parser/asdl_c.py +--- Python-2.6.7/Parser/asdl_c.py 2009-12-13 00:59:01.059768832 +0000 ++++ Python-2.6.7-haiku/Parser/asdl_c.py 2010-08-30 04:52:27.169607168 +0000 +@@ -1,4 +1,4 @@ +-#! /usr/bin/env python ++#! /bin/env python + """Generate C code from an ASDL description.""" + + # TO DO +diff -urN Python-2.6.7/Python/bltinmodule.c Python-2.6.7-haiku/Python/bltinmodule.c +--- Python-2.6.7/Python/bltinmodule.c 2010-05-09 15:15:40.065011712 +0000 ++++ Python-2.6.7-haiku/Python/bltinmodule.c 2010-08-30 04:52:27.186646528 +0000 +@@ -18,7 +18,7 @@ + */ + #if defined(MS_WINDOWS) && defined(HAVE_USABLE_WCHAR_T) + const char *Py_FileSystemDefaultEncoding = "mbcs"; +-#elif defined(__APPLE__) ++#elif defined(__APPLE__) || defined(__HAIKU__) + const char *Py_FileSystemDefaultEncoding = "utf-8"; + #else + const char *Py_FileSystemDefaultEncoding = NULL; /* use default */ +diff -urN Python-2.6.7/Tools/scripts/h2py.py Python-2.6.7-haiku/Tools/scripts/h2py.py +--- Python-2.6.7/Tools/scripts/h2py.py 2004-08-09 17:27:55.066584576 +0000 ++++ Python-2.6.7-haiku/Tools/scripts/h2py.py 2010-08-30 04:52:27.188219392 +0000 +@@ -1,4 +1,4 @@ +-#! /usr/bin/env python ++#! /bin/env python + + # Read #define's and translate to Python code. + # Handle #include statements. +@@ -50,7 +50,7 @@ + searchdirs=os.environ['INCLUDE'].split(';') + except KeyError: + try: +- if sys.platform.find("beos") == 0: ++ if sys.platform.find("beos") == 0 or sys.platform.find("haiku1") == 0: + searchdirs=os.environ['BEINCLUDES'].split(';') + elif sys.platform.startswith("atheos"): + searchdirs=os.environ['C_INCLUDE_PATH'].split(':') +diff -urN Python-2.6.7/configure.in Python-2.6.7-haiku/configure.in +--- Python-2.6.7/configure.in 2010-05-25 02:27:03.064225280 +0000 ++++ Python-2.6.7-haiku/configure.in 2010-08-30 04:52:27.207880192 +0000 +@@ -745,7 +745,7 @@ + RUNSHARED=LD_LIBRARY_PATH=`pwd`:${LD_LIBRARY_PATH} + INSTSONAME="$LDLIBRARY".$SOVERSION + ;; +- Linux*|GNU*|NetBSD*|FreeBSD*|DragonFly*) ++ Linux*|GNU*|NetBSD*|FreeBSD*|DragonFly*|Haiku*) + LDLIBRARY='libpython$(VERSION).so' + BLDLIBRARY='-L. -lpython$(VERSION)' + RUNSHARED=LD_LIBRARY_PATH=`pwd`:${LD_LIBRARY_PATH} +@@ -823,7 +823,7 @@ + AC_SUBST(LN) + if test -z "$LN" ; then + case $ac_sys_system in +- BeOS*) LN="ln -s";; ++ BeOS*|Haiku*) LN="ln -s";; + CYGWIN*) LN="ln -s";; + atheos*) LN="ln -s";; + *) LN=ln;; +@@ -1829,7 +1829,7 @@ + fi + fi + ;; +- Linux*|GNU*|QNX*) LDSHARED='$(CC) -shared';; ++ Linux*|GNU*|QNX*|Haiku*) LDSHARED='$(CC) -shared';; + BSD/OS*/4*) LDSHARED="gcc -shared";; + FreeBSD*) + if [[ "`$CC -dM -E - + #include +diff -urN Python-2.6.8/Modules/spwdmodule.c Python-2.6.8-haiku/Modules/spwdmodule.c +--- Python-2.6.8/Modules/spwdmodule.c 2010-05-09 15:15:40.030408704 +0000 ++++ Python-2.6.8-haiku/Modules/spwdmodule.c 2010-08-30 04:52:24.709623808 +0000 +@@ -79,7 +79,9 @@ + + SETS(setIndex++, p->sp_namp); + SETS(setIndex++, p->sp_pwdp); ++#ifndef __HAIKU__ + SETI(setIndex++, p->sp_lstchg); ++#endif + SETI(setIndex++, p->sp_min); + SETI(setIndex++, p->sp_max); + SETI(setIndex++, p->sp_warn); +diff -urN Python-2.6.8/Modules/timemodule.c Python-2.6.8-haiku/Modules/timemodule.c +--- Python-2.6.8/Modules/timemodule.c 2010-05-09 15:15:40.015204352 +0000 ++++ Python-2.6.8-haiku/Modules/timemodule.c 2010-08-30 04:52:24.721944576 +0000 +@@ -972,11 +972,11 @@ + return -1; + } + Py_END_ALLOW_THREADS +-#elif defined(__BEOS__) ++#elif defined(__BEOS__) || defined(__HAIKU__) + /* This sleep *CAN BE* interrupted. */ + { + if( secs <= 0.0 ) { +- return; ++ return 0; + } + + Py_BEGIN_ALLOW_THREADS +diff -urN Python-2.6.8/Parser/asdl_c.py Python-2.6.8-haiku/Parser/asdl_c.py +--- Python-2.6.8/Parser/asdl_c.py 2009-12-13 00:59:01.059768832 +0000 ++++ Python-2.6.8-haiku/Parser/asdl_c.py 2010-08-30 04:52:27.169607168 +0000 +@@ -1,4 +1,4 @@ +-#! /usr/bin/env python ++#! /bin/env python + """Generate C code from an ASDL description.""" + + # TO DO +diff -urN Python-2.6.8/Python/bltinmodule.c Python-2.6.8-haiku/Python/bltinmodule.c +--- Python-2.6.8/Python/bltinmodule.c 2010-05-09 15:15:40.065011712 +0000 ++++ Python-2.6.8-haiku/Python/bltinmodule.c 2010-08-30 04:52:27.186646528 +0000 +@@ -18,7 +18,7 @@ + */ + #if defined(MS_WINDOWS) && defined(HAVE_USABLE_WCHAR_T) + const char *Py_FileSystemDefaultEncoding = "mbcs"; +-#elif defined(__APPLE__) ++#elif defined(__APPLE__) || defined(__HAIKU__) + const char *Py_FileSystemDefaultEncoding = "utf-8"; + #else + const char *Py_FileSystemDefaultEncoding = NULL; /* use default */ +diff -urN Python-2.6.8/Tools/scripts/h2py.py Python-2.6.8-haiku/Tools/scripts/h2py.py +--- Python-2.6.8/Tools/scripts/h2py.py 2004-08-09 17:27:55.066584576 +0000 ++++ Python-2.6.8-haiku/Tools/scripts/h2py.py 2010-08-30 04:52:27.188219392 +0000 +@@ -1,4 +1,4 @@ +-#! /usr/bin/env python ++#! /bin/env python + + # Read #define's and translate to Python code. + # Handle #include statements. +@@ -50,7 +50,7 @@ + searchdirs=os.environ['INCLUDE'].split(';') + except KeyError: + try: +- if sys.platform.find("beos") == 0: ++ if sys.platform.find("beos") == 0 or sys.platform.find("haiku1") == 0: + searchdirs=os.environ['BEINCLUDES'].split(';') + elif sys.platform.startswith("atheos"): + searchdirs=os.environ['C_INCLUDE_PATH'].split(':') +diff -urN Python-2.6.8/configure.in Python-2.6.8-haiku/configure.in +--- Python-2.6.8/configure.in 2010-05-25 02:27:03.064225280 +0000 ++++ Python-2.6.8-haiku/configure.in 2010-08-30 04:52:27.207880192 +0000 +@@ -745,7 +745,7 @@ + RUNSHARED=LD_LIBRARY_PATH=`pwd`:${LD_LIBRARY_PATH} + INSTSONAME="$LDLIBRARY".$SOVERSION + ;; +- Linux*|GNU*|NetBSD*|FreeBSD*|DragonFly*) ++ Linux*|GNU*|NetBSD*|FreeBSD*|DragonFly*|Haiku*) + LDLIBRARY='libpython$(VERSION).so' + BLDLIBRARY='-L. -lpython$(VERSION)' + RUNSHARED=LD_LIBRARY_PATH=`pwd`:${LD_LIBRARY_PATH} +@@ -823,7 +823,7 @@ + AC_SUBST(LN) + if test -z "$LN" ; then + case $ac_sys_system in +- BeOS*) LN="ln -s";; ++ BeOS*|Haiku*) LN="ln -s";; + CYGWIN*) LN="ln -s";; + atheos*) LN="ln -s";; + *) LN=ln;; +@@ -1829,7 +1829,7 @@ + fi + fi + ;; +- Linux*|GNU*|QNX*) LDSHARED='$(CC) -shared';; ++ Linux*|GNU*|QNX*|Haiku*) LDSHARED='$(CC) -shared';; + BSD/OS*/4*) LDSHARED="gcc -shared";; + FreeBSD*) + if [[ "`$CC -dM -E - + #include +diff -urN Python-3.2/Modules/spwdmodule.c Python-3.2-haiku/Modules/spwdmodule.c +--- Python-3.2/Modules/spwdmodule.c 2010-05-15 16:27:27.011534336 +0000 ++++ Python-3.2-haiku/Modules/spwdmodule.c 2010-11-22 11:11:57.802422784 +0000 +@@ -80,7 +80,9 @@ + + SETS(setIndex++, p->sp_namp); + SETS(setIndex++, p->sp_pwdp); ++#ifndef __HAIKU__ + SETI(setIndex++, p->sp_lstchg); ++#endif + SETI(setIndex++, p->sp_min); + SETI(setIndex++, p->sp_max); + SETI(setIndex++, p->sp_warn); +diff -urN Python-3.2/Python/bltinmodule.c Python-3.2-haiku/Python/bltinmodule.c +--- Python-3.2/Python/bltinmodule.c 2010-10-17 20:54:53.028049408 +0000 ++++ Python-3.2-haiku/Python/bltinmodule.c 2010-11-22 11:11:57.832831488 +0000 +@@ -22,7 +22,7 @@ + #if defined(MS_WINDOWS) && defined(HAVE_USABLE_WCHAR_T) + const char *Py_FileSystemDefaultEncoding = "mbcs"; + int Py_HasFileSystemDefaultEncoding = 1; +-#elif defined(__APPLE__) ++#elif defined(__APPLE__) || defined(__HAIKU__) + const char *Py_FileSystemDefaultEncoding = "utf-8"; + int Py_HasFileSystemDefaultEncoding = 1; + #elif defined(HAVE_LANGINFO_H) && defined(CODESET) +diff -urN Python-3.2/configure.in Python-3.2-haiku/configure.in +--- Python-3.2/configure.in 2010-11-01 01:44:30.004980736 +0000 ++++ Python-3.2-haiku/configure.in 2010-11-22 11:14:04.316407808 +0000 +@@ -292,6 +292,7 @@ + case $MACHDEP in + cygwin*) MACHDEP="cygwin";; + darwin*) MACHDEP="darwin";; ++ haiku*) MACHDEP="haiku";; + irix646) MACHDEP="irix6";; + '') MACHDEP="unknown";; + esac +@@ -738,7 +739,7 @@ + RUNSHARED=LD_LIBRARY_PATH=`pwd`:${LD_LIBRARY_PATH} + INSTSONAME="$LDLIBRARY".$SOVERSION + ;; +- Linux*|GNU*|NetBSD*|FreeBSD*|DragonFly*) ++ Linux*|GNU*|NetBSD*|FreeBSD*|DragonFly*|Haiku*) + LDLIBRARY='libpython$(LDVERSION).so' + BLDLIBRARY='-L. -lpython$(LDVERSION)' + RUNSHARED=LD_LIBRARY_PATH=`pwd`:${LD_LIBRARY_PATH} +@@ -823,6 +824,7 @@ + if test -z "$LN" ; then + case $ac_sys_system in + CYGWIN*) LN="ln -s";; ++ Haiku*) LN="ln -s";; + *) LN=ln;; + esac + fi +@@ -1709,7 +1711,7 @@ + fi + fi + ;; +- Linux*|GNU*|QNX*) ++ Linux*|GNU*|QNX*|Haiku*) + LDSHARED='$(CC) -shared' + LDCXXSHARED='$(CXX) -shared';; + BSD/OS*/4*) +@@ -1778,7 +1780,7 @@ + then CCSHARED="-fPIC"; + else CCSHARED="+z"; + fi;; +- Linux*|GNU*) CCSHARED="-fPIC";; ++ Linux*|GNU*|Haiku*) CCSHARED="-fPIC";; + BSD/OS*/4*) CCSHARED="-fpic";; + FreeBSD*|NetBSD*|OpenBSD*|DragonFly*) CCSHARED="-fPIC";; + OpenUNIX*|UnixWare*) +@@ -1809,7 +1811,7 @@ + LINKFORSHARED="-Wl,-E -Wl,+s";; + # LINKFORSHARED="-Wl,-E -Wl,+s -Wl,+b\$(BINLIBDEST)/lib-dynload";; + BSD/OS/4*) LINKFORSHARED="-Xlinker -export-dynamic";; +- Linux*|GNU*) LINKFORSHARED="-Xlinker -export-dynamic";; ++ Linux*|GNU*|Haiku*) LINKFORSHARED="-Xlinker -export-dynamic";; + # -u libsys_s pulls in all symbols in libsys + Darwin/*) + LINKFORSHARED="$extra_undefs -framework CoreFoundation" +@@ -1920,6 +1922,8 @@ + AC_CHECK_LIB(nsl, t_open, [LIBS="-lnsl $LIBS"]) # SVR4 + AC_CHECK_LIB(socket, socket, [LIBS="-lsocket $LIBS"], [], $LIBS) # SVR4 sockets + ++AC_CHECK_LIB(network, socket, [LIBS="-lnetwork $LIBS"], [], $LIBS) # For Haiku ++ + AC_MSG_CHECKING(for --with-libs) + AC_ARG_WITH(libs, + AS_HELP_STRING([--with-libs='lib1 ...'], [link against additional libs]), +@@ -3192,7 +3196,7 @@ + # check for --with-libm=... + AC_SUBST(LIBM) + case $ac_sys_system in +-Darwin) ;; ++Darwin|Haiku*) ;; + *) LIBM=-lm + esac + AC_MSG_CHECKING(for --with-libm=STRING) +diff -urN Python-3.2/setup.py Python-3.2-haiku/setup.py +--- Python-3.2/setup.py 2010-10-31 17:11:02.000000000 +0000 ++++ Python-3.2-haiku/setup.py 2010-11-22 11:11:58.034603008 +0000 +@@ -429,6 +429,10 @@ + platform = self.get_platform() + srcdir = sysconfig.get_config_var('srcdir') + ++ if platform == 'haiku1': ++ inc_dirs += ['/boot/develop/headers/posix', '/boot/develop/headers/3rdparty', '/boot/common/include'] ++ lib_dirs += ['/boot/system/lib', '/boot/develop/lib/x86', '/boot/common/lib'] ++ + # OSF/1 and Unixware have some stuff in /usr/ccs/lib (like -ldb) + if platform in ['osf1', 'unixware7', 'openunix8']: + lib_dirs += ['/usr/ccs/lib'] +@@ -450,9 +454,9 @@ + if item.startswith('-L'): + lib_dirs.append(item[2:]) + +- # Check for MacOS X, which doesn't need libm.a at all ++ # Check for MacOS X or Haiku, which don't need libm.a at all + math_libs = ['m'] +- if platform == 'darwin': ++ if platform == 'darwin' or platform == 'haiku': + math_libs = [] + + # XXX Omitted modules: gl, pure, dl, SGI-specific modules +@@ -1110,7 +1114,7 @@ + exts.append( Extension('resource', ['resource.c']) ) + + # Sun yellow pages. Some systems have the functions in libc. +- if (platform not in ['cygwin', 'qnx6'] and ++ if (platform not in ['cygwin', 'qnx6', 'haiku'] and + find_file('rpcsvc/yp_prot.h', inc_dirs, []) is not None): + if (self.compiler.find_library_file(lib_dirs, 'nsl')): + libs = ['nsl'] diff --git a/dev-lang/python/python-2.5.4.bep b/dev-lang/python/python-2.5.4.bep index a3a0e2e45..90c98e358 100644 --- a/dev-lang/python/python-2.5.4.bep +++ b/dev-lang/python/python-2.5.4.bep @@ -16,7 +16,7 @@ BUILD { libtoolize --force --copy --install aclocal autoconf - ./configure --prefix=/boot/common --enable-shared LDFLAGS=-L/boot/common/lib CFLAGS=-I/boot/develop/headers/3rdparty + ./configure --prefix=`finddir B_COMMON_DIRECTORY` --enable-shared LDFLAGS=-L/boot/common/lib CFLAGS=-I/boot/develop/headers/3rdparty make } diff --git a/dev-lang/python/python-2.6.4.bep b/dev-lang/python/python-2.6.4.bep index bc81ee33e..b372618e3 100644 --- a/dev-lang/python/python-2.6.4.bep +++ b/dev-lang/python/python-2.6.4.bep @@ -13,7 +13,7 @@ BUILD { libtoolize --force --copy --install aclocal autoconf - ./configure --prefix=/boot/common --enable-shared CFLAGS=-I/boot/develop/headers/3rdparty + ./configure --prefix=`finddir B_COMMON_DIRECTORY` --enable-shared CFLAGS=-I/boot/develop/headers/3rdparty make } diff --git a/dev-lang/python/python-2.6.5.bep b/dev-lang/python/python-2.6.5.bep index 903d0804f..b1b1afb6d 100644 --- a/dev-lang/python/python-2.6.5.bep +++ b/dev-lang/python/python-2.6.5.bep @@ -13,7 +13,7 @@ BUILD { libtoolize --force --copy --install aclocal autoconf - ./configure --prefix=/boot/common --enable-shared LDFLAGS=-L/boot/common/lib CFLAGS=-I/boot/develop/headers/3rdparty + ./configure --prefix=`finddir B_COMMON_DIRECTORY` --enable-shared LDFLAGS=-L/boot/common/lib CFLAGS=-I/boot/develop/headers/3rdparty make } diff --git a/dev-lang/python/python-2.6.6.bep b/dev-lang/python/python-2.6.6.bep index 88f99fc38..172740f87 100644 --- a/dev-lang/python/python-2.6.6.bep +++ b/dev-lang/python/python-2.6.6.bep @@ -13,7 +13,10 @@ BUILD { libtoolize --force --copy --install aclocal autoconf - ./configure --prefix=/boot/common --enable-shared LDFLAGS=-L/boot/common/lib CFLAGS=-I/boot/develop/headers/3rdparty + ./configure --prefix=`finddir B_COMMON_DIRECTORY` \ + --enable-shared LDFLAGS=-L/boot/common/lib \ + --mandir=`finddir B_COMMON_DOCUMENTATION_DIRECTORY`/man \ + CFLAGS=-I/boot/develop/headers/3rdparty make } diff --git a/dev-lang/python/python-3.2a3.bep b/dev-lang/python/python-2.6.7.bep similarity index 65% rename from dev-lang/python/python-3.2a3.bep rename to dev-lang/python/python-2.6.7.bep index 24d33231c..f4bca719a 100644 --- a/dev-lang/python/python-3.2a3.bep +++ b/dev-lang/python/python-2.6.7.bep @@ -1,12 +1,12 @@ DESCRIPTION="python - An interpreted, interactive, object-oriented programming language" HOMEPAGE="http://www.python.org" -SRC_URI="http://www.python.org/ftp/python/3.2/Python-3.2a3.tar.bz2" -CHECKSUM_MD5="2c7f690e6de62691a0427328a9654290" +SRC_URI="http://www.python.org/ftp/python/2.6.7/Python-2.6.7.tar.bz2" +CHECKSUM_MD5="d40ef58ed88438a870bbeb0ac5d4217b" REVISION="1" STATUS_HAIKU="stable" DEPEND="sys-libs/readline >= 6.0" BUILD { - cd Python-3.2a3/Modules/_ctypes/libffi + cd Python-2.6.7/Modules/_ctypes/libffi libtoolize --force --copy --install cd ../../.. echo "AC_CONFIG_MACRO_DIR([m4])" >> configure.in @@ -14,19 +14,19 @@ BUILD { aclocal autoconf ./configure --prefix=`finddir B_COMMON_DIRECTORY` \ - --enable-shared \ - LDFLAGS=-L/boot/common/lib \ + --enable-shared LDFLAGS=-L/boot/common/lib \ + --mandir=`finddir B_COMMON_DOCUMENTATION_DIRECTORY`/man \ CFLAGS=-I/boot/develop/headers/3rdparty make } INSTALL { - cd Python-3.2a3 + cd Python-2.6.7 make install } TEST { - cd Python-3.2a3 + cd Python-2.6.7 cd Lib/test rm test_asynchat.py # this one stalls, so skip it for now rm test_multiprocessing.py # this one stalls, so skip it for now @@ -35,4 +35,4 @@ TEST { } LICENSE="Python" -COPYRIGHT="1990-2010, Python Software Foundation" +COPYRIGHT="1990-2011, Python Software Foundation" diff --git a/dev-lang/python/python-3.2a4.bep b/dev-lang/python/python-2.6.8.bep similarity index 65% rename from dev-lang/python/python-3.2a4.bep rename to dev-lang/python/python-2.6.8.bep index 94cc20c39..8fe22dd32 100644 --- a/dev-lang/python/python-3.2a4.bep +++ b/dev-lang/python/python-2.6.8.bep @@ -1,12 +1,12 @@ DESCRIPTION="python - An interpreted, interactive, object-oriented programming language" HOMEPAGE="http://www.python.org" -SRC_URI="http://www.python.org/ftp/python/3.2/Python-3.2a4.tar.bz2" -CHECKSUM_MD5="1f94db4c5e56454e3eec26eafae43e6e" +SRC_URI="http://www.python.org/ftp/python/2.6.8/Python-2.6.8.tar.bz2" +CHECKSUM_MD5="c6e0420a21d8b23dee8b0195c9b9a125" REVISION="1" STATUS_HAIKU="stable" DEPEND="sys-libs/readline >= 6.0" BUILD { - cd Python-3.2a4/Modules/_ctypes/libffi + cd Python-2.6.8/Modules/_ctypes/libffi libtoolize --force --copy --install cd ../../.. echo "AC_CONFIG_MACRO_DIR([m4])" >> configure.in @@ -14,19 +14,19 @@ BUILD { aclocal autoconf ./configure --prefix=`finddir B_COMMON_DIRECTORY` \ - --enable-shared \ - LDFLAGS=-L/boot/common/lib \ + --enable-shared LDFLAGS=-L/boot/common/lib \ + --mandir=`finddir B_COMMON_DOCUMENTATION_DIRECTORY`/man \ CFLAGS=-I/boot/develop/headers/3rdparty make } INSTALL { - cd Python-3.2a4 + cd Python-2.6.8 make install } TEST { - cd Python-3.2a4 + cd Python-2.6.8 cd Lib/test rm test_asynchat.py # this one stalls, so skip it for now rm test_multiprocessing.py # this one stalls, so skip it for now @@ -35,4 +35,4 @@ TEST { } LICENSE="Python" -COPYRIGHT="1990-2010, Python Software Foundation" +COPYRIGHT="1990-2012, Python Software Foundation" diff --git a/dev-lang/python/python-2.7a1.bep b/dev-lang/python/python-2.7a1.bep deleted file mode 100644 index 169df3a5d..000000000 --- a/dev-lang/python/python-2.7a1.bep +++ /dev/null @@ -1,25 +0,0 @@ -DESCRIPTION="python - An interpreted, interactive, object-oriented programming language" -HOMEPAGE="http://www.python.org" -SRC_URI="http://www.python.org/ftp/python/2.7/Python-2.7a1.tgz" -CHECKSUM_MD5="1dead8228f03928b69c123ef32ab36c0" -REVISION="1" -STATUS_HAIKU="stable" -DEPEND="" -BUILD { - cd Python-2.7a1/Modules/_ctypes/libffi - libtoolize --force --copy --install - cd ../../.. - echo "AC_CONFIG_MACRO_DIR([m4])" >> configure.in - libtoolize --force --copy --install - aclocal - autoconf - ./configure --prefix=/boot/common --enable-shared CFLAGS=-I/boot/develop/headers/3rdparty - make -} - -INSTALL { - cd Python-2.7a1 - make install -} -LICENSE="Python" -COPYRIGHT="1990-2010, Python Software Foundation" diff --git a/dev-lang/python/python-3.2b2.bep b/dev-lang/python/python-3.2.bep similarity index 61% rename from dev-lang/python/python-3.2b2.bep rename to dev-lang/python/python-3.2.bep index f51a73a36..fe7bb3ef1 100644 --- a/dev-lang/python/python-3.2b2.bep +++ b/dev-lang/python/python-3.2.bep @@ -1,12 +1,12 @@ DESCRIPTION="python - An interpreted, interactive, object-oriented programming language" HOMEPAGE="http://www.python.org" -SRC_URI="http://www.python.org/ftp/python/3.2/Python-3.2b2.tar.bz2" -CHECKSUM_MD5="45ab5ff5edfb73ec277b1c763f3d5a42" +SRC_URI="http://www.python.org/ftp/python/3.2/Python-3.2.tar.bz2" +CHECKSUM_MD5="92e94b5b6652b96349d6362b8337811d" REVISION="1" STATUS_HAIKU="stable" DEPEND="sys-libs/readline >= 6.0" BUILD { - cd Python-3.2b2/Modules/_ctypes/libffi + cd Python-3.2/Modules/_ctypes/libffi libtoolize --force --copy --install cd ../../.. echo "AC_CONFIG_MACRO_DIR([m4])" >> configure.in @@ -15,18 +15,19 @@ BUILD { autoconf ./configure --prefix=`finddir B_COMMON_DIRECTORY` \ --enable-shared \ - LDFLAGS=-L/boot/common/lib \ - CFLAGS=-I/boot/develop/headers/3rdparty + --mandir=`finddir B_COMMON_DOCUMENTATION_DIRECTORY/man` \ + CFLAGS=-I`finddir B_COMMON_DIRECTORY`/include + ln -sf `pwd`/libpython3.2m.so.1.0 /boot/common/lib/libpython3.2m.so.1.0 make } INSTALL { - cd Python-3.2b2 + cd Python-3.2 make install } TEST { - cd Python-3.2b2 + cd Python-3.2 cd Lib/test rm test_asynchat.py # this one stalls, so skip it for now rm test_multiprocessing.py # this one stalls, so skip it for now @@ -35,4 +36,4 @@ TEST { } LICENSE="Python" -COPYRIGHT="1990-2010, Python Software Foundation" +COPYRIGHT="1990-2011, Python Software Foundation" diff --git a/dev-lang/rebol/rebol-2.101.0.5.75.bep b/dev-lang/rebol/rebol-2.101.0.5.75.bep new file mode 100644 index 000000000..135c0d76a --- /dev/null +++ b/dev-lang/rebol/rebol-2.101.0.5.75.bep @@ -0,0 +1,33 @@ +DESCRIPTION="Language with lightweight domain-specific sublanguages and micro-formats" +HOMEPAGE="http://www.rebol.com/" +SRC_URI="https://github.com/rebol/r3/archive/master.zip" +CHECKSUM_MD5="b6dc765aa910ad7d7e4af649d5e35431" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="" + +BUILD { + cd r3-master/make + wget http://metaeducation.com/media/shared/haiku/r3-make.zip + unzip r3-make.zip + make make OS_ID=0.5.75 + make prep + make +} + +INSTALL { + cd r3-master/make + mkdir -p $DESTDIR`finddir B_COMMON_BIN_DIRECTORY` + install -m 0755 r3 $DESTDIR`finddir B_COMMON_BIN_DIRECTORY`/rebol +} + +TEST { + mkdir -p tests + cd tests + wget -N https://github.com/rebolsource/rebol-test/archive/master.zip + unzip -o master + ../r3-master/make/r3 rebol-test-master/run-safe.r +} + +LICENSE="Apache v2" +COPYRIGHT="2013 REBOL Technologies" diff --git a/dev-lang/ruby/ruby-1.9.1.bep b/dev-lang/ruby/ruby-1.9.1.bep index f702dd419..c8f874a77 100644 --- a/dev-lang/ruby/ruby-1.9.1.bep +++ b/dev-lang/ruby/ruby-1.9.1.bep @@ -4,11 +4,13 @@ SRC_URI="ftp://ftp.ruby-lang.org/pub/ruby/1.9/ruby-1.9.1-p243.tar.gz" CHECKSUM_MD5="515bfd965814e718c0943abf3dde5494" REVISION="2" STATUS_HAIKU="stable" -DEPEND="dev-lang/ruby >= 1.8.7" +DEPEND="dev-libs/libedit >= 20100424" BUILD { cd ruby-1.9.1-p243 autoconf - ./configure --prefix=/boot/common + ./configure --prefix=`finddir B_COMMON_DIRECTORY` \ + --mandir=`finddir B_COMMON_DOCUMENTATION_DIRECTORY`/man \ + --datarootdir=`finddir B_COMMON_DATA_DIRECTORY`/ruby make } @@ -16,6 +18,7 @@ INSTALL { cd ruby-1.9.1-p243 make install } + LICENSE="Ruby GNU GPL v2 GNU LGPL v2.1 diff --git a/dev-lang/swi-prolog/licenses/SWI-Prolog b/dev-lang/swi-prolog/licenses/SWI-Prolog new file mode 100644 index 000000000..1359a2de0 --- /dev/null +++ b/dev-lang/swi-prolog/licenses/SWI-Prolog @@ -0,0 +1,5 @@ +The SWI-Prolog Prolog libraries + +Lacking a satisfactory technical solution to handle article 6 of the LGPL, this license cannot be used for the Prolog source code that is part of the SWI-Prolog system (both libraries and kernel code). This situation is comparable to libgcc, the runtime library used with the GNU C-compiler. Therefore, we use the same proven license terms as this library. The libgcc license is the GPL, accompanied with a special exception. Below we rephrased this exception adjusted to our needs: + +As a special exception, if you link this library with other files, compiled with a Free Software compiler, to produce an executable, this library does not by itself cause the resulting executable to be covered by the GNU General Public License. This exception does not however invalidate any other reasons why the executable file might be covered by the GNU General Public License. diff --git a/dev-lang/swi-prolog/patches/swi-prolog-6.0.2.patch b/dev-lang/swi-prolog/patches/swi-prolog-6.0.2.patch new file mode 100644 index 000000000..9fe4959fd --- /dev/null +++ b/dev-lang/swi-prolog/patches/swi-prolog-6.0.2.patch @@ -0,0 +1,68 @@ +diff -Naur pl-6.0.2/src/configure.in pl-6.0.2-haiku/src/configure.in +--- pl-6.0.2/src/configure.in 2012-03-04 13:12:01.001835008 +0000 ++++ pl-6.0.2-haiku/src/configure.in 2012-08-20 21:39:21.649330688 +0100 +@@ -689,6 +689,10 @@ + AC_DEFINE(_THREAD_SAFE, 1, + [Required in FreeBSD for compiling thread-safe code]) + ;; ++ *haiku*) ++ pthread_ok=true ++ CFLAGS="$CFLAGS -lroot" ++ ;; + *-win32|*-win64) + pthread_ok=true + AC_CHECK_LIB(pthreadGC2, pthread_create) +diff -Naur pl-6.0.2/src/os/pl-files.c pl-6.0.2-haiku/src/os/pl-files.c +--- pl-6.0.2/src/os/pl-files.c 2012-03-04 13:12:01.011272192 +0000 ++++ pl-6.0.2-haiku/src/os/pl-files.c 2012-08-23 14:45:48.981204992 +0100 +@@ -239,7 +239,7 @@ + return TRUE; + } + +-#ifdef __unix__ /* doesn't work on most not Unix's */ ++#if defined(__unix__) || defined(__HAIKU__) /* doesn't work on most not Unix's */ + { statstruct buf1; + statstruct buf2; + char tmp[MAXPATHLEN]; +diff -Naur pl-6.0.2/src/os/pl-os.c pl-6.0.2-haiku/src/os/pl-os.c +--- pl-6.0.2/src/os/pl-os.c 2012-03-04 13:12:01.011796480 +0000 ++++ pl-6.0.2-haiku/src/os/pl-os.c 2012-08-23 16:02:11.794034176 +0100 +@@ -590,7 +590,7 @@ + } + + retry: +-#ifdef __unix__ ++#if defined(__unix__) || defined(__HAIKU__) + { static int MTOK_temp_counter = 0; + const char *sep = id[0] ? "_" : ""; + +@@ -732,7 +732,7 @@ + } + #endif /* O_HPFS */ + +-#ifdef __unix__ ++#if defined(__unix__) || defined(__HAIKU__) + char * + PrologPath(const char *p, char *buf, size_t len) + { strncpy(buf, p, len); +@@ -2436,7 +2436,7 @@ + return strcpy(buffer, file ? file : buf); + } + +-#ifdef __unix__ ++#if defined(__unix__) || defined(__HAIKU__) + static char * + okToExec(const char *s) + { statstruct stbuff; +diff -Naur pl-6.0.2/src/pl-term.c pl-6.0.2-haiku/src/pl-term.c +--- pl-6.0.2/src/pl-term.c 2012-03-04 13:12:01.023592960 +0000 ++++ pl-6.0.2-haiku/src/pl-term.c 2012-08-08 20:03:23.111673344 +0100 +@@ -296,7 +296,7 @@ + term_t r = A1; + term_t c = A2; + +-#ifdef __unix__ ++#if defined(__unix__) || defined(__HAIKU__) + int iorval; + + #ifdef TIOCGSIZE diff --git a/dev-lang/swi-prolog/patches/swi-prolog-6.2.0.patch b/dev-lang/swi-prolog/patches/swi-prolog-6.2.0.patch new file mode 100644 index 000000000..24003d3d5 --- /dev/null +++ b/dev-lang/swi-prolog/patches/swi-prolog-6.2.0.patch @@ -0,0 +1,67 @@ +diff -Naur pl-6.2.0/src/configure.in pl-6.2.0-haiku/src/configure.in +--- pl-6.2.0/src/configure.in 2012-08-21 13:12:53.016777216 +0100 ++++ pl-6.2.0-haiku/src/configure.in 2012-08-23 17:06:25.987758592 +0100 +@@ -728,6 +728,9 @@ + AC_DEFINE(_THREAD_SAFE, 1, + [Required in FreeBSD for compiling thread-safe code]) + ;; ++ *-haiku*) ++ pthread_ok=true ++ ;; + *-win32|*-win64) + pthread_ok=true + AC_CHECK_LIB(pthreadGC2, pthread_create) +diff -Naur pl-6.2.0/src/os/pl-files.c pl-6.2.0-haiku/src/os/pl-files.c +--- pl-6.2.0/src/os/pl-files.c 2012-08-21 13:12:53.026214400 +0100 ++++ pl-6.2.0-haiku/src/os/pl-files.c 2012-08-23 17:07:04.695992320 +0100 +@@ -302,7 +302,7 @@ + return TRUE; + } + +-#ifdef __unix__ /* doesn't work on most not Unix's */ ++#if defined(__unix__) || defined(__HAIKU__) /* doesn't work on most not Unix's */ + { statstruct buf1; + statstruct buf2; + char tmp[MAXPATHLEN]; +diff -Naur pl-6.2.0/src/os/pl-os.c pl-6.2.0-haiku/src/os/pl-os.c +--- pl-6.2.0/src/os/pl-os.c 2012-08-21 13:12:53.027000832 +0100 ++++ pl-6.2.0-haiku/src/os/pl-os.c 2012-08-23 17:09:14.962330624 +0100 +@@ -601,7 +601,7 @@ + } + + retry: +-#ifdef __unix__ ++#if defined(__unix__) || defined(__HAIKU__) + { static int MTOK_temp_counter = 0; + const char *sep = id[0] ? "_" : ""; + +@@ -743,7 +743,7 @@ + } + #endif /* O_HPFS */ + +-#ifdef __unix__ ++#if defined(__unix__) || defined(__HAIKU__) + char * + PrologPath(const char *p, char *buf, size_t len) + { strncpy(buf, p, len); +@@ -2507,7 +2507,7 @@ + return strcpy(buffer, file ? file : buf); + } + +-#ifdef __unix__ ++#if defined(__unix__) || defined(__HAIKU__) + static char * + okToExec(const char *s) + { statstruct stbuff; +diff -Naur pl-6.2.0/src/pl-term.c pl-6.2.0-haiku/src/pl-term.c +--- pl-6.2.0/src/pl-term.c 2012-08-21 13:12:53.038535168 +0100 ++++ pl-6.2.0-haiku/src/pl-term.c 2012-08-23 17:09:57.306708480 +0100 +@@ -296,7 +296,7 @@ + term_t r = A1; + term_t c = A2; + +-#ifdef __unix__ ++#if defined(__unix__) || defined(__HAIKU__) + int iorval; + + #ifdef TIOCGSIZE diff --git a/dev-lang/swi-prolog/swi-prolog-6.0.2.bep b/dev-lang/swi-prolog/swi-prolog-6.0.2.bep new file mode 100644 index 000000000..5e8b7c7e2 --- /dev/null +++ b/dev-lang/swi-prolog/swi-prolog-6.0.2.bep @@ -0,0 +1,29 @@ +DESCRIPTION="SWI Prolog. Stable and free standard Prolog implementation" +HOMEPAGE="http://www.swi-prolog.org/" +SRC_URI="http://www.swi-prolog.org/download/stable/src/pl-6.0.2.tar.gz" +CHECKSUM_MD5="dcde1c50713317d0f5093dd2dedc1bd0" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="dev-libs/gmp >= 5.0.5 + sys-libs/readline >= 6.2" +BUILD { + cd pl-6.0.2/src + libtoolize -fci + autoreconf + LDFLAGS=-L/boot/common/lib CFLAGS=-I/boot/common/include ./configure --prefix=$(finddir B_COMMON_DIRECTORY) + make +} + +INSTALL { + cd pl-6.0.2/src + make install +} + +TEST { + cd pl-6.0.2/src + make check +} + +LICENSE="GNU LGPL v2.1 + SWI-Prolog" +COPYRIGHT="1985-2010, University of Amsterdam, VU University Amsterdam" diff --git a/dev-lang/swi-prolog/swi-prolog-6.2.0.bep b/dev-lang/swi-prolog/swi-prolog-6.2.0.bep new file mode 100644 index 000000000..af37884a6 --- /dev/null +++ b/dev-lang/swi-prolog/swi-prolog-6.2.0.bep @@ -0,0 +1,29 @@ +DESCRIPTION="SWI Prolog. Stable and free standard Prolog implementation" +HOMEPAGE="http://www.swi-prolog.org/" +SRC_URI="http://www.swi-prolog.org/download/stable/src/pl-6.2.0.tar.gz" +CHECKSUM_MD5="969ed2e00b7afc1537fbf19d667333c5" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="dev-libs/gmp >= 5.0.5 + sys-libs/readline >= 6.2" +BUILD { + cd pl-6.2.0/src + libtoolize -fci + autoreconf + LDFLAGS=-L/boot/common/lib CFLAGS=-I/boot/common/include ./configure --prefix=$(finddir B_COMMON_DIRECTORY) + make +} + +INSTALL { + cd pl-6.2.0/src + make install +} + +TEST { + cd pl-6.2.0/src + make check +} + +LICENSE="GNU LGPL v2.1 + SWI-Prolog" +COPYRIGHT="1985-2012, University of Amsterdam, VU University Amsterdam" diff --git a/dev-lang/swig/swig-1.3.40.bep b/dev-lang/swig/swig-1.3.40.bep index 2c1200a25..2239e2fdb 100644 --- a/dev-lang/swig/swig-1.3.40.bep +++ b/dev-lang/swig/swig-1.3.40.bep @@ -8,7 +8,7 @@ DEPEND="" BUILD { cd swig-1.3.40 libtoolize -fci - ./configure --prefix=/boot/common + ./configure --prefix=`finddir B_COMMON_DIRECTORY` make } diff --git a/dev-lang/swig/swig-2.0.2.bep b/dev-lang/swig/swig-2.0.2.bep new file mode 100644 index 000000000..df8d4a24e --- /dev/null +++ b/dev-lang/swig/swig-2.0.2.bep @@ -0,0 +1,23 @@ +DESCRIPTION="Simplified Wrapper and Interface Generator" +HOMEPAGE="http://www.swig.org/" +SRC_URI="http://sourceforge.net/projects/swig/files/swig/swig-2.0.2/swig-2.0.2.tar.gz/download" +CHECKSUM_MD5="eaf619a4169886923e5f828349504a29" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="" +BUILD { + cd swig-2.0.2 + libtoolize -fci + ./configure --prefix=`finddir B_COMMON_DIRECTORY` + make +} + +INSTALL { + cd swig-2.0.2 + make install +} +LICENSE="SWIG" +COPYRIGHT="1995-1998 University of Utah and the Regents of the University of California + 1998-2005 University of Chicago + 2005-2006 Arizona Board of Regents (University of Arizona) + 1995-2010 The SWIG Developers" diff --git a/dev-lang/tcl/patches/tcl-8.5.9.patch b/dev-lang/tcl/patches/tcl-8.5.9.patch new file mode 100644 index 000000000..39c18f3f0 --- /dev/null +++ b/dev-lang/tcl/patches/tcl-8.5.9.patch @@ -0,0 +1,49 @@ +diff -up tcl8.5.9/tests/env.test.orig tcl8.5.9/tests/env.test +--- tcl8.5.9/tests/env.test.orig 2011-05-14 16:24:47.871366656 -0600 ++++ tcl8.5.9/tests/env.test 2011-05-14 16:26:18.149946368 -0600 +@@ -80,7 +80,7 @@ set printenvScript [makeFile { + TCL_LIBRARY PATH LD_LIBRARY_PATH LIBPATH PURE_PROG_NAME DISPLAY + SHLIB_PATH SYSTEMDRIVE SYSTEMROOT DYLD_LIBRARY_PATH DYLD_FRAMEWORK_PATH + DYLD_NEW_LOCAL_SHARED_REGIONS DYLD_NO_FIX_PREBINDING +- __CF_USER_TEXT_ENCODING SECURITYSESSIONID LANG WINDIR TERM ++ __CF_USER_TEXT_ENCODING SECURITYSESSIONID LANG WINDIR TERM LIBRARY_PATH + } { + lrem names $name + } +@@ -112,7 +112,7 @@ foreach name [array names env] { + TCL_LIBRARY PATH LD_LIBRARY_PATH LIBPATH DISPLAY SHLIB_PATH + SYSTEMDRIVE SYSTEMROOT DYLD_LIBRARY_PATH DYLD_FRAMEWORK_PATH + DYLD_NEW_LOCAL_SHARED_REGIONS DYLD_NO_FIX_PREBINDING +- SECURITYSESSIONID LANG WINDIR TERM ++ SECURITYSESSIONID LANG WINDIR TERM LIBRARY_PATH + }} { + unset env($name) + } +diff -up tcl8.5.9/unix/tcl.m4.orig tcl8.5.9/unix/tcl.m4 +--- tcl8.5.9/unix/tcl.m4.orig 2010-09-08 11:40:48.016515072 -0600 ++++ tcl8.5.9/unix/tcl.m4 2011-05-14 16:20:36.560201728 -0600 +@@ -669,9 +669,16 @@ AC_DEFUN([SC_ENABLE_THREADS], [ + # The space is needed + THREADS_LIBS=" -pthread" + else ++ AC_CHECK_LIB(root, pthread_mutex_init, ++ tcl_ok=yes, tcl_ok=no) ++ if test "$tcl_ok" = "yes"; then ++ # The space is needed ++ THREAD_LIBS=" " ++ else + TCL_THREADS=0 + AC_MSG_WARN([Don't know how to find pthread lib on your system - you must disable thread support or edit the LIBS in the Makefile...]) + fi ++ fi + fi + fi + fi +@@ -1276,6 +1283,7 @@ dnl AC_CHECK_TOOL(AR, ar) + SHLIB_LD='${CC} -shared ${CFLAGS} ${LDFLAGS}' + DL_OBJS="tclLoadDl.o" + DL_LIBS="-lroot" ++ LD_LIBRARY_PATH_VAR="LIBRARY_PATH" + AC_CHECK_LIB(network, inet_ntoa, [LIBS="$LIBS -lnetwork"]) + ;; + HP-UX-*.11.*) diff --git a/dev-lang/tcl/tcl-8.5.9.bep b/dev-lang/tcl/tcl-8.5.9.bep new file mode 100644 index 000000000..a95b225d0 --- /dev/null +++ b/dev-lang/tcl/tcl-8.5.9.bep @@ -0,0 +1,28 @@ +DESCRIPTION="Tcl (Tool Command Language) is a very powerful but easy to learn dynamic programming language, suitable for a very wide range of uses." +HOMEPAGE="http://www.tcl.tk" +SRC_URI="http://sourceforge.net/projects/tcl/files/Tcl/8.5.9/tcl8.5.9-src.tar.gz/download" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="" +CHECKSUM_MD5="8512d8db3233041dd68a81476906012a" +BUILD { + cd tcl8.5.9/unix + autoconf -f + ./configure --prefix=$(finddir B_COMMON_DIRECTORY) \ + --enable-threads --enable-man-symlinks + make +} + +INSTALL { + cd tcl8.5.9/unix + make install + ln -s tclsh8.5 "$(finddir B_COMMON_BIN_DIRECTORY)/tclsh" +} + +TEST { + cd tcl8.5.9/unix + make test +} + +LICENSE="BSD (2-clause)" +#COPYRIGHT="" diff --git a/dev-lang/tcl/tcl-8.6b1-1.build b/dev-lang/tcl/tcl-8.6b1-1.build new file mode 100644 index 000000000..57269204a --- /dev/null +++ b/dev-lang/tcl/tcl-8.6b1-1.build @@ -0,0 +1,7 @@ +cd tcl8.6b1/pkgs/tdbc1.0b1 +autoconf +cd ../../unix +autoconf +mkdir build && cd build +../configure --prefix=`finddir B_COMMON_DIRECTORY` --enable-man-symlinks +make diff --git a/dev-lang/tcl/tcl-8.6b1-1.install b/dev-lang/tcl/tcl-8.6b1-1.install new file mode 100644 index 000000000..fb692a7fd --- /dev/null +++ b/dev-lang/tcl/tcl-8.6b1-1.install @@ -0,0 +1,2 @@ +cd tcl8.6b1/unix/build +make install diff --git a/dev-lang/tcl/tcl-8.6b1-1.patch b/dev-lang/tcl/tcl-8.6b1-1.patch new file mode 100644 index 000000000..f25c6b5c6 --- /dev/null +++ b/dev-lang/tcl/tcl-8.6b1-1.patch @@ -0,0 +1,99 @@ +diff -Naur tcl8.6b1/generic/tclPosixStr.c tcl8.6b1-haiku/generic/tclPosixStr.c +--- tcl8.6b1/generic/tclPosixStr.c 2008-04-28 00:21:32.028049408 +0200 ++++ tcl8.6b1-haiku/generic/tclPosixStr.c 2011-06-11 21:57:53.249036800 +0200 +@@ -941,7 +941,9 @@ + case SIGALRM: return "SIGALRM"; + #endif + #ifdef SIGBUS +- case SIGBUS: return "SIGBUS"; ++# if !defined(SIGSEGV) || (SIGBUS != SIGSEGV) ++ case SIGBUS: return "SIGBUS"; ++# endif + #endif + #ifdef SIGCHLD + case SIGCHLD: return "SIGCHLD"; +@@ -1072,7 +1074,9 @@ + case SIGALRM: return "alarm clock"; + #endif + #ifdef SIGBUS +- case SIGBUS: return "bus error"; ++# if !defined(SIGSEGV) || (SIGBUS != SIGSEGV) ++ case SIGBUS: return "bus error"; ++# endif + #endif + #ifdef SIGCHLD + case SIGCHLD: return "child status changed"; +diff -Naur tcl8.6b1/pkgs/tdbc1.0b1/tclconfig/tcl.m4 tcl8.6b1-haiku/pkgs/tdbc1.0b1/tclconfig/tcl.m4 +--- tcl8.6b1/pkgs/tdbc1.0b1/tclconfig/tcl.m4 2008-12-22 18:45:06.004456448 +0100 ++++ tcl8.6b1-haiku/pkgs/tdbc1.0b1/tclconfig/tcl.m4 2011-06-11 21:58:19.403177472 +0200 +@@ -761,8 +761,15 @@ + # The space is needed + THREADS_LIBS=" -pthread" + else +- TCL_THREADS=0 +- AC_MSG_WARN([Do not know how to find pthread lib on your system - thread support disabled]) ++ # Haiku ++ AC_CHECK_LIB(root,pthread_mutex_init,tcl_ok=yes,tcl_ok=no) ++ if test "$tcl_ok" = "yes"; then ++ # The space is needed ++ THREADS_LIBS=" -lroot" ++ else ++ TCL_THREADS=0 ++ AC_MSG_WARN([Do not know how to find pthread lib on your system - thread support disabled]) ++ fi + fi + fi + fi +@@ -1459,6 +1466,15 @@ + CC_SEARCH_FLAGS="" + LD_SEARCH_FLAGS="" + ;; ++ Haiku*) ++ SHLIB_CFLAGS="-fPIC" ++ SHLIB_LD='${CC} -nostart' ++ SHLIB_LD_LIBS='${LIBS}' ++ SHLIB_SUFFIX=".so" ++ DL_OBJS="tclLoadDl.o" ++ DL_LIBS="-lroot" ++ LIBS="$LIBS -lnetwork" ++ ;; + HP-UX-*.11.*) + # Use updated header definitions where possible + AC_DEFINE(_XOPEN_SOURCE_EXTENDED, 1, [Do we want to use the XOPEN network library?]) +diff -Naur tcl8.6b1/unix/tcl.m4 tcl8.6b1-haiku/unix/tcl.m4 +--- tcl8.6b1/unix/tcl.m4 2008-12-22 18:45:06.034603008 +0100 ++++ tcl8.6b1-haiku/unix/tcl.m4 2011-06-11 22:04:12.228327424 +0200 +@@ -667,8 +667,15 @@ + # The space is needed + THREADS_LIBS=" -pthread" + else +- TCL_THREADS=0 +- AC_MSG_WARN([Don't know how to find pthread lib on your system - you must disable thread support or edit the LIBS in the Makefile...]) ++ # Haiku ++ AC_CHECK_LIB(root,pthread_mutex_init,tcl_ok=yes,tcl_ok=no) ++ if test "$tcl_ok" = "yes"; then ++ # The space is needed ++ THREADS_LIBS=" -lroot" ++ else ++ TCL_THREADS=0 ++ AC_MSG_WARN([Don't know how to find pthread lib on your system - you must disable thread support or edit the LIBS in the Makefile...]) ++ fi + fi + fi + fi +@@ -1252,6 +1259,15 @@ + CC_SEARCH_FLAGS="" + LD_SEARCH_FLAGS="" + ;; ++ Haiku*) ++ SHLIB_CFLAGS="-fPIC" ++ SHLIB_LD='${CC} -nostart' ++ SHLIB_LD_LIBS='${LIBS}' ++ SHLIB_SUFFIX=".so" ++ DL_OBJS="tclLoadDl.o" ++ DL_LIBS="-lroot" ++ LIBS="$LIBS -lnetwork" ++ ;; + HP-UX-*.11.*) + # Use updated header definitions where possible + AC_DEFINE(_XOPEN_SOURCE_EXTENDED, 1, [Do we want to use the XOPEN network library?]) diff --git a/dev-lang/tcl/tcl-8.6b1-1.test b/dev-lang/tcl/tcl-8.6b1-1.test new file mode 100644 index 000000000..65e892762 --- /dev/null +++ b/dev-lang/tcl/tcl-8.6b1-1.test @@ -0,0 +1,2 @@ +cd tcl8.6b1/unix/build +make test diff --git a/dev-lang/v8/patches/gyp-r1501.patch b/dev-lang/v8/patches/gyp-r1501.patch new file mode 100644 index 000000000..b078cdf7b --- /dev/null +++ b/dev-lang/v8/patches/gyp-r1501.patch @@ -0,0 +1,2460 @@ +diff -Naur gyp/buildbot/buildbot_run.py gyp-haiku/buildbot/buildbot_run.py +--- gyp/buildbot/buildbot_run.py 2012-12-24 00:54:08.000000000 +0000 ++++ gyp-haiku/buildbot/buildbot_run.py 2012-12-24 00:12:54.000000000 +0000 +@@ -1,4 +1,5 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python ++ + # Copyright (c) 2012 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be + # found in the LICENSE file. +diff -Naur gyp/gyp gyp-haiku/gyp +--- gyp/gyp 2012-12-24 00:54:08.000000000 +0000 ++++ gyp-haiku/gyp 2012-12-24 00:03:19.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2009 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/gyptest.py gyp-haiku/gyptest.py +--- gyp/gyptest.py 2012-12-24 00:54:08.000000000 +0000 ++++ gyp-haiku/gyptest.py 2012-12-24 00:06:12.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2012 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +@@ -217,6 +217,7 @@ + 'linux2': ['make', 'ninja'], + 'linux3': ['make', 'ninja'], + 'darwin': ['make', 'ninja', 'xcode'], ++ 'haiku1': ['make'], + }[sys.platform] + + for format in format_list: +diff -Naur gyp/pylib/gyp/__init__.py gyp-haiku/pylib/gyp/__init__.py +--- gyp/pylib/gyp/__init__.py 2012-12-24 00:53:36.000000000 +0000 ++++ gyp-haiku/pylib/gyp/__init__.py 2012-12-24 00:12:06.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2012 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/pylib/gyp/common_test.py gyp-haiku/pylib/gyp/common_test.py +--- gyp/pylib/gyp/common_test.py 2012-12-24 00:53:36.000000000 +0000 ++++ gyp-haiku/pylib/gyp/common_test.py 2012-12-24 00:12:12.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2012 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/pylib/gyp/common.py gyp-haiku/pylib/gyp/common.py +--- gyp/pylib/gyp/common.py 2012-12-24 00:53:36.000000000 +0000 ++++ gyp-haiku/pylib/gyp/common.py 2012-12-24 00:03:19.000000000 +0000 +@@ -378,14 +378,16 @@ + return 'solaris' + if sys.platform.startswith('freebsd'): + return 'freebsd' ++ if sys.platform.startswith('haiku'): ++ return 'haiku' + + return 'linux' + + + def CopyTool(flavor, out_path): +- """Finds (mac|sun|win)_tool.gyp in the gyp directory and copies it ++ """Finds (mac|sun|win|haiku)_tool.gyp in the gyp directory and copies it + to |out_path|.""" +- prefix = { 'solaris': 'sun', 'mac': 'mac', 'win': 'win' }.get(flavor, None) ++ prefix = { 'solaris': 'sun', 'mac': 'mac', 'win': 'win', 'haiku': 'haiku' }.get(flavor, None) + if not prefix: + return + +diff -Naur gyp/pylib/gyp/easy_xml_test.py gyp-haiku/pylib/gyp/easy_xml_test.py +--- gyp/pylib/gyp/easy_xml_test.py 2012-12-24 00:53:36.000000000 +0000 ++++ gyp-haiku/pylib/gyp/easy_xml_test.py 2012-12-24 00:12:18.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2011 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/pylib/gyp/generator/make.py gyp-haiku/pylib/gyp/generator/make.py +--- gyp/pylib/gyp/generator/make.py 2012-12-24 00:53:36.000000000 +0000 ++++ gyp-haiku/pylib/gyp/generator/make.py 2012-12-24 00:03:19.000000000 +0000 +@@ -491,6 +491,13 @@ + cmd_sun_tool = ./gyp-sun-tool $(4) $< "$@" + """ + ++SHARED_HEADER_HAIKU_COMMANDS = """ ++# gyp-haiku-tool is written next to the root Makefile by gyp. ++# Use $(4) for the command, since $(2) and $(3) are used as flag by do_cmd ++# already. ++quiet_cmd_haiku_tool = HAIKUTOOL $(4) $< ++cmd_haiku_tool = ./gyp-haiku-tool $(4) $< "$@" ++""" + + def WriteRootHeaderSuffixRules(writer): + extensions = sorted(COMPILABLE_EXTENSIONS.keys(), key=str.lower) +@@ -2027,6 +2034,13 @@ + header_params.update({ + 'flock': 'lockf', + }) ++ elif flavor == 'haiku': ++ header_params.update({ ++ 'flock': './gyp-haiku-tool flock', ++ 'flock_index': 2, ++ 'extra_commands': SHARED_HEADER_HAIKU_COMMANDS, ++ }) ++ + + header_params.update(RunSystemTests(flavor)) + header_params.update({ +diff -Naur gyp/pylib/gyp/generator/msvs_test.py gyp-haiku/pylib/gyp/generator/msvs_test.py +--- gyp/pylib/gyp/generator/msvs_test.py 2012-12-24 00:53:36.000000000 +0000 ++++ gyp-haiku/pylib/gyp/generator/msvs_test.py 2012-12-24 00:12:23.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2011 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/pylib/gyp/generator/ninja_test.py gyp-haiku/pylib/gyp/generator/ninja_test.py +--- gyp/pylib/gyp/generator/ninja_test.py 2012-12-24 00:53:36.000000000 +0000 ++++ gyp-haiku/pylib/gyp/generator/ninja_test.py 2012-12-24 00:11:52.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2012 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/pylib/gyp/haiku_tool.py gyp-haiku/pylib/gyp/haiku_tool.py +--- gyp/pylib/gyp/haiku_tool.py 1970-01-01 00:00:00.000000000 +0000 ++++ gyp-haiku/pylib/gyp/haiku_tool.py 2012-12-24 00:03:19.000000000 +0000 +@@ -0,0 +1,49 @@ ++#!/boot/common/bin/python ++# Copyright (c) 2011 Google Inc. All rights reserved. ++# Use of this source code is governed by a BSD-style license that can be ++# found in the LICENSE file. ++ ++"""These functions are executed via gyp-haiku-tool when using the Makefile ++generator.""" ++ ++import fcntl ++import os ++import struct ++import subprocess ++import sys ++ ++ ++def main(args): ++ executor = HaikuTool() ++ executor.Dispatch(args) ++ ++ ++class HaikuTool(object): ++ """This class performs all the Haiku tooling steps. The methods can either be ++ executed directly, or dispatched from an argument list.""" ++ ++ def Dispatch(self, args): ++ """Dispatches a string command to a method.""" ++ if len(args) < 1: ++ raise Exception("Not enough arguments") ++ ++ method = "Exec%s" % self._CommandifyName(args[0]) ++ getattr(self, method)(*args[1:]) ++ ++ def _CommandifyName(self, name_string): ++ """Transforms a tool name like copy-info-plist to CopyInfoPlist""" ++ return name_string.title().replace('-', '') ++ ++ def ExecFlock(self, lockfile, *cmd_list): ++ """Emulates the most basic behavior of Linux's flock(1).""" ++ # Rely on exception handling to report errors. ++ fd = os.open(lockfile, os.O_RDONLY|os.O_NOCTTY|os.O_CREAT, 0o666) ++ fcntl.flock(fd, fcntl.LOCK_EX) ++ ret = subprocess.call(cmd_list) ++ # Haiki bug -- lock is not released on file close? ++ fcntl.flock(fd, fcntl.LOCK_UN) ++ return ret ++ ++ ++if __name__ == '__main__': ++ sys.exit(main(sys.argv[1:])) +diff -Naur gyp/pylib/gyp/mac_tool.py gyp-haiku/pylib/gyp/mac_tool.py +--- gyp/pylib/gyp/mac_tool.py 2012-12-24 00:53:36.000000000 +0000 ++++ gyp-haiku/pylib/gyp/mac_tool.py 2012-12-24 00:12:33.000000000 +0000 +@@ -1,4 +1,5 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python ++ + # Copyright (c) 2012 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be + # found in the LICENSE file. +diff -Naur gyp/pylib/gyp/MSVSSettings_test.py gyp-haiku/pylib/gyp/MSVSSettings_test.py +--- gyp/pylib/gyp/MSVSSettings_test.py 2012-12-24 00:53:36.000000000 +0000 ++++ gyp-haiku/pylib/gyp/MSVSSettings_test.py 2012-12-24 00:05:51.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2012 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/pylib/gyp/sun_tool.py gyp-haiku/pylib/gyp/sun_tool.py +--- gyp/pylib/gyp/sun_tool.py 2012-12-24 00:53:36.000000000 +0000 ++++ gyp-haiku/pylib/gyp/sun_tool.py 2012-12-24 00:12:38.000000000 +0000 +@@ -1,4 +1,5 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python ++ + # Copyright (c) 2011 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be + # found in the LICENSE file. +diff -Naur gyp/pylib/gyp/system_test.py gyp-haiku/pylib/gyp/system_test.py +--- gyp/pylib/gyp/system_test.py 2012-12-24 00:53:36.000000000 +0000 ++++ gyp-haiku/pylib/gyp/system_test.py 2012-12-24 00:13:00.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2011 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/pylib/gyp/win_tool.py gyp-haiku/pylib/gyp/win_tool.py +--- gyp/pylib/gyp/win_tool.py 2012-12-24 00:53:36.000000000 +0000 ++++ gyp-haiku/pylib/gyp/win_tool.py 2012-12-24 00:12:01.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2012 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/setup.py gyp-haiku/setup.py +--- gyp/setup.py 2012-12-24 00:54:08.000000000 +0000 ++++ gyp-haiku/setup.py 2012-12-24 00:13:07.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2009 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/test/actions/gyptest-all.py gyp-haiku/test/actions/gyptest-all.py +--- gyp/test/actions/gyptest-all.py 2012-12-24 00:54:04.000000000 +0000 ++++ gyp-haiku/test/actions/gyptest-all.py 2012-12-24 00:13:12.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2012 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/test/actions/gyptest-default.py gyp-haiku/test/actions/gyptest-default.py +--- gyp/test/actions/gyptest-default.py 2012-12-24 00:54:04.000000000 +0000 ++++ gyp-haiku/test/actions/gyptest-default.py 2012-12-24 00:13:19.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2012 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/test/actions/gyptest-errors.py gyp-haiku/test/actions/gyptest-errors.py +--- gyp/test/actions/gyptest-errors.py 2012-12-24 00:54:04.000000000 +0000 ++++ gyp-haiku/test/actions/gyptest-errors.py 2012-12-24 00:13:24.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2009 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/test/actions/src/confirm-dep-files.py gyp-haiku/test/actions/src/confirm-dep-files.py +--- gyp/test/actions/src/confirm-dep-files.py 2012-12-24 00:54:04.000000000 +0000 ++++ gyp-haiku/test/actions/src/confirm-dep-files.py 2012-12-24 00:13:28.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2011 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/test/actions/src/subdir1/counter.py gyp-haiku/test/actions/src/subdir1/counter.py +--- gyp/test/actions/src/subdir1/counter.py 2012-12-24 00:54:04.000000000 +0000 ++++ gyp-haiku/test/actions/src/subdir1/counter.py 2012-12-24 00:13:33.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2010 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/test/actions/src/subdir1/make-prog1.py gyp-haiku/test/actions/src/subdir1/make-prog1.py +--- gyp/test/actions/src/subdir1/make-prog1.py 2012-12-24 00:54:04.000000000 +0000 ++++ gyp-haiku/test/actions/src/subdir1/make-prog1.py 2012-12-24 00:13:38.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2009 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/test/actions/src/subdir1/make-prog2.py gyp-haiku/test/actions/src/subdir1/make-prog2.py +--- gyp/test/actions/src/subdir1/make-prog2.py 2012-12-24 00:54:04.000000000 +0000 ++++ gyp-haiku/test/actions/src/subdir1/make-prog2.py 2012-12-24 00:13:44.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2009 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/test/actions/src/subdir2/make-file.py gyp-haiku/test/actions/src/subdir2/make-file.py +--- gyp/test/actions/src/subdir2/make-file.py 2012-12-24 00:54:04.000000000 +0000 ++++ gyp-haiku/test/actions/src/subdir2/make-file.py 2012-12-24 00:14:01.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2009 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/test/actions/src/subdir3/generate_main.py gyp-haiku/test/actions/src/subdir3/generate_main.py +--- gyp/test/actions/src/subdir3/generate_main.py 2012-12-24 00:54:04.000000000 +0000 ++++ gyp-haiku/test/actions/src/subdir3/generate_main.py 2012-12-24 00:14:06.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2009 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/test/actions-bare/gyptest-bare.py gyp-haiku/test/actions-bare/gyptest-bare.py +--- gyp/test/actions-bare/gyptest-bare.py 2012-12-24 00:53:46.000000000 +0000 ++++ gyp-haiku/test/actions-bare/gyptest-bare.py 2012-12-24 00:14:10.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2009 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/test/actions-bare/src/bare.py gyp-haiku/test/actions-bare/src/bare.py +--- gyp/test/actions-bare/src/bare.py 2012-12-24 00:53:46.000000000 +0000 ++++ gyp-haiku/test/actions-bare/src/bare.py 2012-12-24 00:14:17.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2009 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/test/actions-multiple/gyptest-all.py gyp-haiku/test/actions-multiple/gyptest-all.py +--- gyp/test/actions-multiple/gyptest-all.py 2012-12-24 00:53:48.000000000 +0000 ++++ gyp-haiku/test/actions-multiple/gyptest-all.py 2012-12-24 00:14:22.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2012 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/test/actions-multiple/src/copy.py gyp-haiku/test/actions-multiple/src/copy.py +--- gyp/test/actions-multiple/src/copy.py 2012-12-24 00:53:48.000000000 +0000 ++++ gyp-haiku/test/actions-multiple/src/copy.py 2012-12-24 00:14:27.000000000 +0000 +@@ -1,4 +1,5 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python ++ + # Copyright (c) 2011 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be + # found in the LICENSE file. +diff -Naur gyp/test/actions-multiple/src/filter.py gyp-haiku/test/actions-multiple/src/filter.py +--- gyp/test/actions-multiple/src/filter.py 2012-12-24 00:53:48.000000000 +0000 ++++ gyp-haiku/test/actions-multiple/src/filter.py 2012-12-24 00:14:33.000000000 +0000 +@@ -1,4 +1,5 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python ++ + # Copyright (c) 2011 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be + # found in the LICENSE file. +diff -Naur gyp/test/actions-none/gyptest-none.py gyp-haiku/test/actions-none/gyptest-none.py +--- gyp/test/actions-none/gyptest-none.py 2012-12-24 00:53:53.000000000 +0000 ++++ gyp-haiku/test/actions-none/gyptest-none.py 2012-12-24 00:14:38.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2012 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/test/actions-subdir/gyptest-action.py gyp-haiku/test/actions-subdir/gyptest-action.py +--- gyp/test/actions-subdir/gyptest-action.py 2012-12-24 00:53:36.000000000 +0000 ++++ gyp-haiku/test/actions-subdir/gyptest-action.py 2012-12-24 00:14:44.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2009 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/test/actions-subdir/src/make-file.py gyp-haiku/test/actions-subdir/src/make-file.py +--- gyp/test/actions-subdir/src/make-file.py 2012-12-24 00:53:36.000000000 +0000 ++++ gyp-haiku/test/actions-subdir/src/make-file.py 2012-12-24 00:14:50.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2009 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/test/actions-subdir/src/subdir/make-subdir-file.py gyp-haiku/test/actions-subdir/src/subdir/make-subdir-file.py +--- gyp/test/actions-subdir/src/subdir/make-subdir-file.py 2012-12-24 00:53:36.000000000 +0000 ++++ gyp-haiku/test/actions-subdir/src/subdir/make-subdir-file.py 2012-12-24 00:15:06.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2009 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/test/additional-targets/gyptest-additional.py gyp-haiku/test/additional-targets/gyptest-additional.py +--- gyp/test/additional-targets/gyptest-additional.py 2012-12-24 00:53:58.000000000 +0000 ++++ gyp-haiku/test/additional-targets/gyptest-additional.py 2012-12-24 00:15:11.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2012 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/test/additional-targets/src/dir1/emit.py gyp-haiku/test/additional-targets/src/dir1/emit.py +--- gyp/test/additional-targets/src/dir1/emit.py 2012-12-24 00:53:58.000000000 +0000 ++++ gyp-haiku/test/additional-targets/src/dir1/emit.py 2012-12-24 00:15:16.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2009 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/test/assembly/gyptest-assembly.py gyp-haiku/test/assembly/gyptest-assembly.py +--- gyp/test/assembly/gyptest-assembly.py 2012-12-24 00:53:58.000000000 +0000 ++++ gyp-haiku/test/assembly/gyptest-assembly.py 2012-12-24 00:15:21.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2012 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/test/build-option/gyptest-build.py gyp-haiku/test/build-option/gyptest-build.py +--- gyp/test/build-option/gyptest-build.py 2012-12-24 00:53:55.000000000 +0000 ++++ gyp-haiku/test/build-option/gyptest-build.py 2012-12-24 00:15:25.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2012 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/test/builddir/gyptest-all.py gyp-haiku/test/builddir/gyptest-all.py +--- gyp/test/builddir/gyptest-all.py 2012-12-24 00:53:38.000000000 +0000 ++++ gyp-haiku/test/builddir/gyptest-all.py 2012-12-24 00:15:30.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2012 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/test/builddir/gyptest-default.py gyp-haiku/test/builddir/gyptest-default.py +--- gyp/test/builddir/gyptest-default.py 2012-12-24 00:53:38.000000000 +0000 ++++ gyp-haiku/test/builddir/gyptest-default.py 2012-12-24 00:15:36.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2012 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/test/cflags/gyptest-cflags.py gyp-haiku/test/cflags/gyptest-cflags.py +--- gyp/test/cflags/gyptest-cflags.py 2012-12-24 00:54:04.000000000 +0000 ++++ gyp-haiku/test/cflags/gyptest-cflags.py 2012-12-24 00:15:40.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2012 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/test/compilable/gyptest-headers.py gyp-haiku/test/compilable/gyptest-headers.py +--- gyp/test/compilable/gyptest-headers.py 2012-12-24 00:54:03.000000000 +0000 ++++ gyp-haiku/test/compilable/gyptest-headers.py 2012-12-24 00:15:45.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2009 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/test/compiler-override/gyptest-compiler-env.py gyp-haiku/test/compiler-override/gyptest-compiler-env.py +--- gyp/test/compiler-override/gyptest-compiler-env.py 2012-12-24 00:53:37.000000000 +0000 ++++ gyp-haiku/test/compiler-override/gyptest-compiler-env.py 2012-12-24 00:15:51.000000000 +0000 +@@ -1,4 +1,5 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python ++ + # Copyright (c) 2012 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be + # found in the LICENSE file. +diff -Naur gyp/test/compiler-override/gyptest-compiler-global-settings.py gyp-haiku/test/compiler-override/gyptest-compiler-global-settings.py +--- gyp/test/compiler-override/gyptest-compiler-global-settings.py 2012-12-24 00:53:37.000000000 +0000 ++++ gyp-haiku/test/compiler-override/gyptest-compiler-global-settings.py 2012-12-24 00:16:13.000000000 +0000 +@@ -1,4 +1,5 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python ++ + # Copyright (c) 2012 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be + # found in the LICENSE file. +diff -Naur gyp/test/compiler-override/my_cc.py gyp-haiku/test/compiler-override/my_cc.py +--- gyp/test/compiler-override/my_cc.py 2012-12-24 00:53:37.000000000 +0000 ++++ gyp-haiku/test/compiler-override/my_cc.py 2012-12-24 00:16:19.000000000 +0000 +@@ -1,4 +1,5 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python ++ + # Copyright (c) 2012 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be + # found in the LICENSE file. +diff -Naur gyp/test/compiler-override/my_cxx.py gyp-haiku/test/compiler-override/my_cxx.py +--- gyp/test/compiler-override/my_cxx.py 2012-12-24 00:53:37.000000000 +0000 ++++ gyp-haiku/test/compiler-override/my_cxx.py 2012-12-24 00:16:25.000000000 +0000 +@@ -1,4 +1,5 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python ++ + # Copyright (c) 2012 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be + # found in the LICENSE file. +diff -Naur gyp/test/compiler-override/my_ld.py gyp-haiku/test/compiler-override/my_ld.py +--- gyp/test/compiler-override/my_ld.py 2012-12-24 00:53:37.000000000 +0000 ++++ gyp-haiku/test/compiler-override/my_ld.py 2012-12-24 00:16:30.000000000 +0000 +@@ -1,4 +1,5 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python ++ + # Copyright (c) 2012 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be + # found in the LICENSE file. +diff -Naur gyp/test/configurations/basics/gyptest-configurations.py gyp-haiku/test/configurations/basics/gyptest-configurations.py +--- gyp/test/configurations/basics/gyptest-configurations.py 2012-12-24 00:53:37.000000000 +0000 ++++ gyp-haiku/test/configurations/basics/gyptest-configurations.py 2012-12-24 00:16:36.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2009 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/test/configurations/inheritance/gyptest-inheritance.py gyp-haiku/test/configurations/inheritance/gyptest-inheritance.py +--- gyp/test/configurations/inheritance/gyptest-inheritance.py 2012-12-24 00:53:37.000000000 +0000 ++++ gyp-haiku/test/configurations/inheritance/gyptest-inheritance.py 2012-12-24 00:16:45.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2009 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/test/configurations/invalid/gyptest-configurations.py gyp-haiku/test/configurations/invalid/gyptest-configurations.py +--- gyp/test/configurations/invalid/gyptest-configurations.py 2012-12-24 00:53:37.000000000 +0000 ++++ gyp-haiku/test/configurations/invalid/gyptest-configurations.py 2012-12-24 00:16:50.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2010 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/test/configurations/target_platform/gyptest-target_platform.py gyp-haiku/test/configurations/target_platform/gyptest-target_platform.py +--- gyp/test/configurations/target_platform/gyptest-target_platform.py 2012-12-24 00:53:37.000000000 +0000 ++++ gyp-haiku/test/configurations/target_platform/gyptest-target_platform.py 2012-12-24 00:16:56.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2009 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/test/configurations/x64/gyptest-x86.py gyp-haiku/test/configurations/x64/gyptest-x86.py +--- gyp/test/configurations/x64/gyptest-x86.py 2012-12-24 00:53:37.000000000 +0000 ++++ gyp-haiku/test/configurations/x64/gyptest-x86.py 2012-12-24 00:17:00.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2012 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/test/copies/gyptest-all.py gyp-haiku/test/copies/gyptest-all.py +--- gyp/test/copies/gyptest-all.py 2012-12-24 00:53:58.000000000 +0000 ++++ gyp-haiku/test/copies/gyptest-all.py 2012-12-24 00:17:05.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2009 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/test/copies/gyptest-default.py gyp-haiku/test/copies/gyptest-default.py +--- gyp/test/copies/gyptest-default.py 2012-12-24 00:53:58.000000000 +0000 ++++ gyp-haiku/test/copies/gyptest-default.py 2012-12-24 00:17:27.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2009 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/test/copies/gyptest-slash.py gyp-haiku/test/copies/gyptest-slash.py +--- gyp/test/copies/gyptest-slash.py 2012-12-24 00:53:58.000000000 +0000 ++++ gyp-haiku/test/copies/gyptest-slash.py 2012-12-24 00:17:31.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2011 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/test/copies/gyptest-updir.py gyp-haiku/test/copies/gyptest-updir.py +--- gyp/test/copies/gyptest-updir.py 2012-12-24 00:53:58.000000000 +0000 ++++ gyp-haiku/test/copies/gyptest-updir.py 2012-12-24 00:17:36.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2012 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/test/custom-generator/gyptest-custom-generator.py gyp-haiku/test/custom-generator/gyptest-custom-generator.py +--- gyp/test/custom-generator/gyptest-custom-generator.py 2012-12-24 00:53:37.000000000 +0000 ++++ gyp-haiku/test/custom-generator/gyptest-custom-generator.py 2012-12-24 00:17:46.000000000 +0000 +@@ -1,4 +1,5 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python ++ + # Copyright (c) 2012 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be + # found in the LICENSE file. +diff -Naur gyp/test/cxxflags/gyptest-cxxflags.py gyp-haiku/test/cxxflags/gyptest-cxxflags.py +--- gyp/test/cxxflags/gyptest-cxxflags.py 2012-12-24 00:53:47.000000000 +0000 ++++ gyp-haiku/test/cxxflags/gyptest-cxxflags.py 2012-12-24 00:17:51.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2012 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/test/defines/gyptest-define-override.py gyp-haiku/test/defines/gyptest-define-override.py +--- gyp/test/defines/gyptest-define-override.py 2012-12-24 00:54:07.000000000 +0000 ++++ gyp-haiku/test/defines/gyptest-define-override.py 2012-12-24 00:17:56.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2009 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/test/defines/gyptest-defines-env-regyp.py gyp-haiku/test/defines/gyptest-defines-env-regyp.py +--- gyp/test/defines/gyptest-defines-env-regyp.py 2012-12-24 00:54:07.000000000 +0000 ++++ gyp-haiku/test/defines/gyptest-defines-env-regyp.py 2012-12-24 00:18:02.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2012 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/test/defines/gyptest-defines-env.py gyp-haiku/test/defines/gyptest-defines-env.py +--- gyp/test/defines/gyptest-defines-env.py 2012-12-24 00:54:07.000000000 +0000 ++++ gyp-haiku/test/defines/gyptest-defines-env.py 2012-12-24 00:18:06.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2009 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/test/defines/gyptest-defines.py gyp-haiku/test/defines/gyptest-defines.py +--- gyp/test/defines/gyptest-defines.py 2012-12-24 00:54:07.000000000 +0000 ++++ gyp-haiku/test/defines/gyptest-defines.py 2012-12-24 00:18:11.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2011 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/test/defines-escaping/gyptest-defines-escaping.py gyp-haiku/test/defines-escaping/gyptest-defines-escaping.py +--- gyp/test/defines-escaping/gyptest-defines-escaping.py 2012-12-24 00:53:55.000000000 +0000 ++++ gyp-haiku/test/defines-escaping/gyptest-defines-escaping.py 2012-12-24 00:18:16.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2010 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/test/dependencies/gyptest-double-dependency.py gyp-haiku/test/dependencies/gyptest-double-dependency.py +--- gyp/test/dependencies/gyptest-double-dependency.py 2012-12-24 00:53:37.000000000 +0000 ++++ gyp-haiku/test/dependencies/gyptest-double-dependency.py 2012-12-24 00:18:46.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2012 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/test/dependencies/gyptest-extra-targets.py gyp-haiku/test/dependencies/gyptest-extra-targets.py +--- gyp/test/dependencies/gyptest-extra-targets.py 2012-12-24 00:53:37.000000000 +0000 ++++ gyp-haiku/test/dependencies/gyptest-extra-targets.py 2012-12-24 00:18:50.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2009 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/test/dependencies/gyptest-lib-only.py gyp-haiku/test/dependencies/gyptest-lib-only.py +--- gyp/test/dependencies/gyptest-lib-only.py 2012-12-24 00:53:37.000000000 +0000 ++++ gyp-haiku/test/dependencies/gyptest-lib-only.py 2012-12-24 00:18:55.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2011 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/test/dependencies/gyptest-none-traversal.py gyp-haiku/test/dependencies/gyptest-none-traversal.py +--- gyp/test/dependencies/gyptest-none-traversal.py 2012-12-24 00:53:37.000000000 +0000 ++++ gyp-haiku/test/dependencies/gyptest-none-traversal.py 2012-12-24 00:18:59.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2011 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/test/dependency-copy/gyptest-copy.py gyp-haiku/test/dependency-copy/gyptest-copy.py +--- gyp/test/dependency-copy/gyptest-copy.py 2012-12-24 00:53:36.000000000 +0000 ++++ gyp-haiku/test/dependency-copy/gyptest-copy.py 2012-12-24 00:19:03.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2009 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/test/errors/gyptest-errors.py gyp-haiku/test/errors/gyptest-errors.py +--- gyp/test/errors/gyptest-errors.py 2012-12-24 00:54:07.000000000 +0000 ++++ gyp-haiku/test/errors/gyptest-errors.py 2012-12-24 00:19:07.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2012 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/test/escaping/gyptest-colon.py gyp-haiku/test/escaping/gyptest-colon.py +--- gyp/test/escaping/gyptest-colon.py 2012-12-24 00:54:01.000000000 +0000 ++++ gyp-haiku/test/escaping/gyptest-colon.py 2012-12-24 00:19:11.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2012 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/test/exclusion/gyptest-exclusion.py gyp-haiku/test/exclusion/gyptest-exclusion.py +--- gyp/test/exclusion/gyptest-exclusion.py 2012-12-24 00:54:03.000000000 +0000 ++++ gyp-haiku/test/exclusion/gyptest-exclusion.py 2012-12-24 00:19:16.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2010 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/test/external-cross-compile/gyptest-cross.py gyp-haiku/test/external-cross-compile/gyptest-cross.py +--- gyp/test/external-cross-compile/gyptest-cross.py 2012-12-24 00:53:38.000000000 +0000 ++++ gyp-haiku/test/external-cross-compile/gyptest-cross.py 2012-12-24 00:19:22.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2012 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/test/generator-output/actions/subdir1/make-prog1.py gyp-haiku/test/generator-output/actions/subdir1/make-prog1.py +--- gyp/test/generator-output/actions/subdir1/make-prog1.py 2012-12-24 00:53:58.000000000 +0000 ++++ gyp-haiku/test/generator-output/actions/subdir1/make-prog1.py 2012-12-24 00:19:28.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2009 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/test/generator-output/actions/subdir1/make-prog2.py gyp-haiku/test/generator-output/actions/subdir1/make-prog2.py +--- gyp/test/generator-output/actions/subdir1/make-prog2.py 2012-12-24 00:53:58.000000000 +0000 ++++ gyp-haiku/test/generator-output/actions/subdir1/make-prog2.py 2012-12-24 00:19:39.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2009 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/test/generator-output/actions/subdir2/make-file.py gyp-haiku/test/generator-output/actions/subdir2/make-file.py +--- gyp/test/generator-output/actions/subdir2/make-file.py 2012-12-24 00:53:59.000000000 +0000 ++++ gyp-haiku/test/generator-output/actions/subdir2/make-file.py 2012-12-24 00:19:44.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2009 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/test/generator-output/gyptest-actions.py gyp-haiku/test/generator-output/gyptest-actions.py +--- gyp/test/generator-output/gyptest-actions.py 2012-12-24 00:54:00.000000000 +0000 ++++ gyp-haiku/test/generator-output/gyptest-actions.py 2012-12-24 00:19:50.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2012 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/test/generator-output/gyptest-copies.py gyp-haiku/test/generator-output/gyptest-copies.py +--- gyp/test/generator-output/gyptest-copies.py 2012-12-24 00:54:00.000000000 +0000 ++++ gyp-haiku/test/generator-output/gyptest-copies.py 2012-12-24 00:20:01.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2012 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/test/generator-output/gyptest-mac-bundle.py gyp-haiku/test/generator-output/gyptest-mac-bundle.py +--- gyp/test/generator-output/gyptest-mac-bundle.py 2012-12-24 00:54:00.000000000 +0000 ++++ gyp-haiku/test/generator-output/gyptest-mac-bundle.py 2012-12-24 00:20:06.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2012 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/test/generator-output/gyptest-relocate.py gyp-haiku/test/generator-output/gyptest-relocate.py +--- gyp/test/generator-output/gyptest-relocate.py 2012-12-24 00:54:00.000000000 +0000 ++++ gyp-haiku/test/generator-output/gyptest-relocate.py 2012-12-24 00:20:11.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2012 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/test/generator-output/gyptest-rules.py gyp-haiku/test/generator-output/gyptest-rules.py +--- gyp/test/generator-output/gyptest-rules.py 2012-12-24 00:54:00.000000000 +0000 ++++ gyp-haiku/test/generator-output/gyptest-rules.py 2012-12-24 00:20:16.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2012 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/test/generator-output/gyptest-subdir2-deep.py gyp-haiku/test/generator-output/gyptest-subdir2-deep.py +--- gyp/test/generator-output/gyptest-subdir2-deep.py 2012-12-24 00:54:00.000000000 +0000 ++++ gyp-haiku/test/generator-output/gyptest-subdir2-deep.py 2012-12-24 00:20:23.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2012 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/test/generator-output/gyptest-top-all.py gyp-haiku/test/generator-output/gyptest-top-all.py +--- gyp/test/generator-output/gyptest-top-all.py 2012-12-24 00:54:00.000000000 +0000 ++++ gyp-haiku/test/generator-output/gyptest-top-all.py 2012-12-24 00:20:34.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2012 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/test/generator-output/rules/copy-file.py gyp-haiku/test/generator-output/rules/copy-file.py +--- gyp/test/generator-output/rules/copy-file.py 2012-12-24 00:54:00.000000000 +0000 ++++ gyp-haiku/test/generator-output/rules/copy-file.py 2012-12-24 00:21:54.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2009 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/test/gyp-defines/echo.py gyp-haiku/test/gyp-defines/echo.py +--- gyp/test/gyp-defines/echo.py 2012-12-24 00:53:55.000000000 +0000 ++++ gyp-haiku/test/gyp-defines/echo.py 2012-12-24 00:22:02.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2012 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/test/gyp-defines/gyptest-multiple-values.py gyp-haiku/test/gyp-defines/gyptest-multiple-values.py +--- gyp/test/gyp-defines/gyptest-multiple-values.py 2012-12-24 00:53:55.000000000 +0000 ++++ gyp-haiku/test/gyp-defines/gyptest-multiple-values.py 2012-12-24 00:22:07.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2012 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/test/gyp-defines/gyptest-regyp.py gyp-haiku/test/gyp-defines/gyptest-regyp.py +--- gyp/test/gyp-defines/gyptest-regyp.py 2012-12-24 00:53:55.000000000 +0000 ++++ gyp-haiku/test/gyp-defines/gyptest-regyp.py 2012-12-24 00:22:12.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2012 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/test/hard_dependency/gyptest-exported-hard-dependency.py gyp-haiku/test/hard_dependency/gyptest-exported-hard-dependency.py +--- gyp/test/hard_dependency/gyptest-exported-hard-dependency.py 2012-12-24 00:53:57.000000000 +0000 ++++ gyp-haiku/test/hard_dependency/gyptest-exported-hard-dependency.py 2012-12-24 00:22:17.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2009 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/test/hard_dependency/gyptest-no-exported-hard-dependency.py gyp-haiku/test/hard_dependency/gyptest-no-exported-hard-dependency.py +--- gyp/test/hard_dependency/gyptest-no-exported-hard-dependency.py 2012-12-24 00:53:57.000000000 +0000 ++++ gyp-haiku/test/hard_dependency/gyptest-no-exported-hard-dependency.py 2012-12-24 00:22:31.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2009 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/test/hard_dependency/src/emit.py gyp-haiku/test/hard_dependency/src/emit.py +--- gyp/test/hard_dependency/src/emit.py 2012-12-24 00:53:57.000000000 +0000 ++++ gyp-haiku/test/hard_dependency/src/emit.py 2012-12-24 00:22:41.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2011 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/test/hello/gyptest-all.py gyp-haiku/test/hello/gyptest-all.py +--- gyp/test/hello/gyptest-all.py 2012-12-24 00:54:05.000000000 +0000 ++++ gyp-haiku/test/hello/gyptest-all.py 2012-12-24 00:22:47.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2009 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/test/hello/gyptest-default.py gyp-haiku/test/hello/gyptest-default.py +--- gyp/test/hello/gyptest-default.py 2012-12-24 00:54:05.000000000 +0000 ++++ gyp-haiku/test/hello/gyptest-default.py 2012-12-24 00:22:54.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2009 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/test/hello/gyptest-disable-regyp.py gyp-haiku/test/hello/gyptest-disable-regyp.py +--- gyp/test/hello/gyptest-disable-regyp.py 2012-12-24 00:54:05.000000000 +0000 ++++ gyp-haiku/test/hello/gyptest-disable-regyp.py 2012-12-24 00:23:01.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2009 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/test/hello/gyptest-regyp.py gyp-haiku/test/hello/gyptest-regyp.py +--- gyp/test/hello/gyptest-regyp.py 2012-12-24 00:54:05.000000000 +0000 ++++ gyp-haiku/test/hello/gyptest-regyp.py 2012-12-24 00:23:08.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2012 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/test/hello/gyptest-target.py gyp-haiku/test/hello/gyptest-target.py +--- gyp/test/hello/gyptest-target.py 2012-12-24 00:54:05.000000000 +0000 ++++ gyp-haiku/test/hello/gyptest-target.py 2012-12-24 00:23:12.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2009 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/test/home_dot_gyp/gyptest-home-includes-regyp.py gyp-haiku/test/home_dot_gyp/gyptest-home-includes-regyp.py +--- gyp/test/home_dot_gyp/gyptest-home-includes-regyp.py 2012-12-24 00:54:03.000000000 +0000 ++++ gyp-haiku/test/home_dot_gyp/gyptest-home-includes-regyp.py 2012-12-24 00:23:22.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2012 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/test/home_dot_gyp/gyptest-home-includes.py gyp-haiku/test/home_dot_gyp/gyptest-home-includes.py +--- gyp/test/home_dot_gyp/gyptest-home-includes.py 2012-12-24 00:54:03.000000000 +0000 ++++ gyp-haiku/test/home_dot_gyp/gyptest-home-includes.py 2012-12-24 00:23:26.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2011 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/test/include_dirs/gyptest-all.py gyp-haiku/test/include_dirs/gyptest-all.py +--- gyp/test/include_dirs/gyptest-all.py 2012-12-24 00:53:54.000000000 +0000 ++++ gyp-haiku/test/include_dirs/gyptest-all.py 2012-12-24 00:23:31.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2009 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/test/include_dirs/gyptest-default.py gyp-haiku/test/include_dirs/gyptest-default.py +--- gyp/test/include_dirs/gyptest-default.py 2012-12-24 00:53:54.000000000 +0000 ++++ gyp-haiku/test/include_dirs/gyptest-default.py 2012-12-24 00:23:36.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2009 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/test/intermediate_dir/gyptest-intermediate-dir.py gyp-haiku/test/intermediate_dir/gyptest-intermediate-dir.py +--- gyp/test/intermediate_dir/gyptest-intermediate-dir.py 2012-12-24 00:54:07.000000000 +0000 ++++ gyp-haiku/test/intermediate_dir/gyptest-intermediate-dir.py 2012-12-24 00:23:45.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2012 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/test/intermediate_dir/src/script.py gyp-haiku/test/intermediate_dir/src/script.py +--- gyp/test/intermediate_dir/src/script.py 2012-12-24 00:54:07.000000000 +0000 ++++ gyp-haiku/test/intermediate_dir/src/script.py 2012-12-24 00:23:54.000000000 +0000 +@@ -1,4 +1,5 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python ++ + # Copyright (c) 2012 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be + # found in the LICENSE file. +diff -Naur gyp/test/library/gyptest-shared-obj-install-path.py gyp-haiku/test/library/gyptest-shared-obj-install-path.py +--- gyp/test/library/gyptest-shared-obj-install-path.py 2012-12-24 00:54:02.000000000 +0000 ++++ gyp-haiku/test/library/gyptest-shared-obj-install-path.py 2012-12-24 00:24:04.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2012 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/test/library/gyptest-shared.py gyp-haiku/test/library/gyptest-shared.py +--- gyp/test/library/gyptest-shared.py 2012-12-24 00:54:02.000000000 +0000 ++++ gyp-haiku/test/library/gyptest-shared.py 2012-12-24 00:24:14.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2009 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/test/library/gyptest-static.py gyp-haiku/test/library/gyptest-static.py +--- gyp/test/library/gyptest-static.py 2012-12-24 00:54:02.000000000 +0000 ++++ gyp-haiku/test/library/gyptest-static.py 2012-12-24 00:24:19.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2009 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/test/link-objects/gyptest-all.py gyp-haiku/test/link-objects/gyptest-all.py +--- gyp/test/link-objects/gyptest-all.py 2012-12-24 00:53:58.000000000 +0000 ++++ gyp-haiku/test/link-objects/gyptest-all.py 2012-12-24 00:24:23.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2011 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/test/mac/gyptest-action-envvars.py gyp-haiku/test/mac/gyptest-action-envvars.py +--- gyp/test/mac/gyptest-action-envvars.py 2012-12-24 00:53:43.000000000 +0000 ++++ gyp-haiku/test/mac/gyptest-action-envvars.py 2012-12-24 00:24:26.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2012 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/test/mac/gyptest-app.py gyp-haiku/test/mac/gyptest-app.py +--- gyp/test/mac/gyptest-app.py 2012-12-24 00:53:43.000000000 +0000 ++++ gyp-haiku/test/mac/gyptest-app.py 2012-12-24 00:24:30.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2012 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/test/mac/gyptest-archs.py gyp-haiku/test/mac/gyptest-archs.py +--- gyp/test/mac/gyptest-archs.py 2012-12-24 00:53:43.000000000 +0000 ++++ gyp-haiku/test/mac/gyptest-archs.py 2012-12-24 00:24:34.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2012 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/test/mac/gyptest-cflags.py gyp-haiku/test/mac/gyptest-cflags.py +--- gyp/test/mac/gyptest-cflags.py 2012-12-24 00:53:43.000000000 +0000 ++++ gyp-haiku/test/mac/gyptest-cflags.py 2012-12-24 00:24:42.000000000 +0000 +@@ -1,5 +1,4 @@ +- +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2012 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/test/mac/gyptest-copies.py gyp-haiku/test/mac/gyptest-copies.py +--- gyp/test/mac/gyptest-copies.py 2012-12-24 00:53:43.000000000 +0000 ++++ gyp-haiku/test/mac/gyptest-copies.py 2012-12-24 00:24:46.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2012 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/test/mac/gyptest-copy-dylib.py gyp-haiku/test/mac/gyptest-copy-dylib.py +--- gyp/test/mac/gyptest-copy-dylib.py 2012-12-24 00:53:43.000000000 +0000 ++++ gyp-haiku/test/mac/gyptest-copy-dylib.py 2012-12-24 00:24:50.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2012 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/test/mac/gyptest-debuginfo.py gyp-haiku/test/mac/gyptest-debuginfo.py +--- gyp/test/mac/gyptest-debuginfo.py 2012-12-24 00:53:43.000000000 +0000 ++++ gyp-haiku/test/mac/gyptest-debuginfo.py 2012-12-24 00:24:53.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2011 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/test/mac/gyptest-depend-on-bundle.py gyp-haiku/test/mac/gyptest-depend-on-bundle.py +--- gyp/test/mac/gyptest-depend-on-bundle.py 2012-12-24 00:53:43.000000000 +0000 ++++ gyp-haiku/test/mac/gyptest-depend-on-bundle.py 2012-12-24 00:24:55.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2012 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/test/mac/gyptest-framework-dirs.py gyp-haiku/test/mac/gyptest-framework-dirs.py +--- gyp/test/mac/gyptest-framework-dirs.py 2012-12-24 00:53:43.000000000 +0000 ++++ gyp-haiku/test/mac/gyptest-framework-dirs.py 2012-12-24 00:24:59.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2012 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/test/mac/gyptest-framework-headers.py gyp-haiku/test/mac/gyptest-framework-headers.py +--- gyp/test/mac/gyptest-framework-headers.py 2012-12-24 00:53:43.000000000 +0000 ++++ gyp-haiku/test/mac/gyptest-framework-headers.py 2012-12-24 00:25:04.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2012 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/test/mac/gyptest-framework.py gyp-haiku/test/mac/gyptest-framework.py +--- gyp/test/mac/gyptest-framework.py 2012-12-24 00:53:43.000000000 +0000 ++++ gyp-haiku/test/mac/gyptest-framework.py 2012-12-24 00:21:13.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2012 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/test/mac/gyptest-global-settings.py gyp-haiku/test/mac/gyptest-global-settings.py +--- gyp/test/mac/gyptest-global-settings.py 2012-12-24 00:53:43.000000000 +0000 ++++ gyp-haiku/test/mac/gyptest-global-settings.py 2012-12-24 00:21:03.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2012 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/test/mac/gyptest-infoplist-process.py gyp-haiku/test/mac/gyptest-infoplist-process.py +--- gyp/test/mac/gyptest-infoplist-process.py 2012-12-24 00:53:43.000000000 +0000 ++++ gyp-haiku/test/mac/gyptest-infoplist-process.py 2012-12-24 00:21:24.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2012 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/test/mac/gyptest-installname.py gyp-haiku/test/mac/gyptest-installname.py +--- gyp/test/mac/gyptest-installname.py 2012-12-24 00:53:43.000000000 +0000 ++++ gyp-haiku/test/mac/gyptest-installname.py 2012-12-24 00:25:07.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2012 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/test/mac/gyptest-ldflags-passed-to-libtool.py gyp-haiku/test/mac/gyptest-ldflags-passed-to-libtool.py +--- gyp/test/mac/gyptest-ldflags-passed-to-libtool.py 2012-12-24 00:53:43.000000000 +0000 ++++ gyp-haiku/test/mac/gyptest-ldflags-passed-to-libtool.py 2012-12-24 00:25:13.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2012 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/test/mac/gyptest-ldflags.py gyp-haiku/test/mac/gyptest-ldflags.py +--- gyp/test/mac/gyptest-ldflags.py 2012-12-24 00:53:43.000000000 +0000 ++++ gyp-haiku/test/mac/gyptest-ldflags.py 2012-12-24 00:25:19.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2012 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/test/mac/gyptest-libraries.py gyp-haiku/test/mac/gyptest-libraries.py +--- gyp/test/mac/gyptest-libraries.py 2012-12-24 00:53:43.000000000 +0000 ++++ gyp-haiku/test/mac/gyptest-libraries.py 2012-12-24 00:25:22.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2012 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/test/mac/gyptest-loadable-module.py gyp-haiku/test/mac/gyptest-loadable-module.py +--- gyp/test/mac/gyptest-loadable-module.py 2012-12-24 00:53:43.000000000 +0000 ++++ gyp-haiku/test/mac/gyptest-loadable-module.py 2012-12-24 00:25:25.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2012 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/test/mac/gyptest-missing-cfbundlesignature.py gyp-haiku/test/mac/gyptest-missing-cfbundlesignature.py +--- gyp/test/mac/gyptest-missing-cfbundlesignature.py 2012-12-24 00:53:43.000000000 +0000 ++++ gyp-haiku/test/mac/gyptest-missing-cfbundlesignature.py 2012-12-24 00:25:28.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2012 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/test/mac/gyptest-non-strs-flattened-to-env.py gyp-haiku/test/mac/gyptest-non-strs-flattened-to-env.py +--- gyp/test/mac/gyptest-non-strs-flattened-to-env.py 2012-12-24 00:53:43.000000000 +0000 ++++ gyp-haiku/test/mac/gyptest-non-strs-flattened-to-env.py 2012-12-24 00:25:30.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2012 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/test/mac/gyptest-objc-gc.py gyp-haiku/test/mac/gyptest-objc-gc.py +--- gyp/test/mac/gyptest-objc-gc.py 2012-12-24 00:53:43.000000000 +0000 ++++ gyp-haiku/test/mac/gyptest-objc-gc.py 2012-12-24 00:25:33.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2012 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/test/mac/gyptest-postbuild-copy-bundle.py gyp-haiku/test/mac/gyptest-postbuild-copy-bundle.py +--- gyp/test/mac/gyptest-postbuild-copy-bundle.py 2012-12-24 00:53:43.000000000 +0000 ++++ gyp-haiku/test/mac/gyptest-postbuild-copy-bundle.py 2012-12-24 00:25:36.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2012 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/test/mac/gyptest-postbuild-defaults.py gyp-haiku/test/mac/gyptest-postbuild-defaults.py +--- gyp/test/mac/gyptest-postbuild-defaults.py 2012-12-24 00:53:43.000000000 +0000 ++++ gyp-haiku/test/mac/gyptest-postbuild-defaults.py 2012-12-24 00:25:38.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2012 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/test/mac/gyptest-postbuild-fail.py gyp-haiku/test/mac/gyptest-postbuild-fail.py +--- gyp/test/mac/gyptest-postbuild-fail.py 2012-12-24 00:53:43.000000000 +0000 ++++ gyp-haiku/test/mac/gyptest-postbuild-fail.py 2012-12-24 00:25:41.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2011 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/test/mac/gyptest-postbuild-multiple-configurations.py gyp-haiku/test/mac/gyptest-postbuild-multiple-configurations.py +--- gyp/test/mac/gyptest-postbuild-multiple-configurations.py 2012-12-24 00:53:43.000000000 +0000 ++++ gyp-haiku/test/mac/gyptest-postbuild-multiple-configurations.py 2012-12-24 00:25:47.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2012 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/test/mac/gyptest-postbuild.py gyp-haiku/test/mac/gyptest-postbuild.py +--- gyp/test/mac/gyptest-postbuild.py 2012-12-24 00:53:43.000000000 +0000 ++++ gyp-haiku/test/mac/gyptest-postbuild.py 2012-12-24 00:26:33.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2011 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/test/mac/gyptest-prefixheader.py gyp-haiku/test/mac/gyptest-prefixheader.py +--- gyp/test/mac/gyptest-prefixheader.py 2012-12-24 00:53:43.000000000 +0000 ++++ gyp-haiku/test/mac/gyptest-prefixheader.py 2012-12-24 00:26:40.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2012 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/test/mac/gyptest-rebuild.py gyp-haiku/test/mac/gyptest-rebuild.py +--- gyp/test/mac/gyptest-rebuild.py 2012-12-24 00:53:43.000000000 +0000 ++++ gyp-haiku/test/mac/gyptest-rebuild.py 2012-12-24 00:26:43.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2012 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/test/mac/gyptest-rpath.py gyp-haiku/test/mac/gyptest-rpath.py +--- gyp/test/mac/gyptest-rpath.py 2012-12-24 00:53:43.000000000 +0000 ++++ gyp-haiku/test/mac/gyptest-rpath.py 2012-12-24 00:26:46.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2012 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/test/mac/gyptest-sdkroot.py gyp-haiku/test/mac/gyptest-sdkroot.py +--- gyp/test/mac/gyptest-sdkroot.py 2012-12-24 00:53:43.000000000 +0000 ++++ gyp-haiku/test/mac/gyptest-sdkroot.py 2012-12-24 00:26:48.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2012 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/test/mac/gyptest-strip.py gyp-haiku/test/mac/gyptest-strip.py +--- gyp/test/mac/gyptest-strip.py 2012-12-24 00:53:43.000000000 +0000 ++++ gyp-haiku/test/mac/gyptest-strip.py 2012-12-24 00:26:51.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2012 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/test/mac/gyptest-type-envvars.py gyp-haiku/test/mac/gyptest-type-envvars.py +--- gyp/test/mac/gyptest-type-envvars.py 2012-12-24 00:53:43.000000000 +0000 ++++ gyp-haiku/test/mac/gyptest-type-envvars.py 2012-12-24 00:26:56.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2012 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/test/mac/gyptest-xcode-env-order.py gyp-haiku/test/mac/gyptest-xcode-env-order.py +--- gyp/test/mac/gyptest-xcode-env-order.py 2012-12-24 00:53:43.000000000 +0000 ++++ gyp-haiku/test/mac/gyptest-xcode-env-order.py 2012-12-24 00:27:03.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2012 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/test/mac/gyptest-xcode-gcc.py gyp-haiku/test/mac/gyptest-xcode-gcc.py +--- gyp/test/mac/gyptest-xcode-gcc.py 2012-12-24 00:53:43.000000000 +0000 ++++ gyp-haiku/test/mac/gyptest-xcode-gcc.py 2012-12-24 00:27:05.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2012 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/test/make/gyptest-dependencies.py gyp-haiku/test/make/gyptest-dependencies.py +--- gyp/test/make/gyptest-dependencies.py 2012-12-24 00:53:47.000000000 +0000 ++++ gyp-haiku/test/make/gyptest-dependencies.py 2012-12-24 00:27:14.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2012 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/test/make/gyptest-noload.py gyp-haiku/test/make/gyptest-noload.py +--- gyp/test/make/gyptest-noload.py 2012-12-24 00:53:47.000000000 +0000 ++++ gyp-haiku/test/make/gyptest-noload.py 2012-12-24 00:27:53.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2010 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/test/many-actions/gyptest-many-actions-unsorted.py gyp-haiku/test/many-actions/gyptest-many-actions-unsorted.py +--- gyp/test/many-actions/gyptest-many-actions-unsorted.py 2012-12-24 00:53:44.000000000 +0000 ++++ gyp-haiku/test/many-actions/gyptest-many-actions-unsorted.py 2012-12-24 00:27:57.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2012 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/test/many-actions/gyptest-many-actions.py gyp-haiku/test/many-actions/gyptest-many-actions.py +--- gyp/test/many-actions/gyptest-many-actions.py 2012-12-24 00:53:44.000000000 +0000 ++++ gyp-haiku/test/many-actions/gyptest-many-actions.py 2012-12-24 00:28:01.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2012 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/test/module/gyptest-default.py gyp-haiku/test/module/gyptest-default.py +--- gyp/test/module/gyptest-default.py 2012-12-24 00:54:04.000000000 +0000 ++++ gyp-haiku/test/module/gyptest-default.py 2012-12-24 00:28:06.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2012 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/test/msvs/config_attrs/gyptest-config_attrs.py gyp-haiku/test/msvs/config_attrs/gyptest-config_attrs.py +--- gyp/test/msvs/config_attrs/gyptest-config_attrs.py 2012-12-24 00:53:48.000000000 +0000 ++++ gyp-haiku/test/msvs/config_attrs/gyptest-config_attrs.py 2012-12-24 00:28:09.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2012 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/test/msvs/express/gyptest-express.py gyp-haiku/test/msvs/express/gyptest-express.py +--- gyp/test/msvs/express/gyptest-express.py 2012-12-24 00:53:48.000000000 +0000 ++++ gyp-haiku/test/msvs/express/gyptest-express.py 2012-12-24 00:28:13.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2009 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/test/msvs/list_excluded/gyptest-all.py gyp-haiku/test/msvs/list_excluded/gyptest-all.py +--- gyp/test/msvs/list_excluded/gyptest-all.py 2012-12-24 00:53:48.000000000 +0000 ++++ gyp-haiku/test/msvs/list_excluded/gyptest-all.py 2012-12-24 00:28:17.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2012 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/test/msvs/missing_sources/gyptest-missing.py gyp-haiku/test/msvs/missing_sources/gyptest-missing.py +--- gyp/test/msvs/missing_sources/gyptest-missing.py 2012-12-24 00:53:48.000000000 +0000 ++++ gyp-haiku/test/msvs/missing_sources/gyptest-missing.py 2012-12-24 00:28:20.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2012 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +@@ -38,4 +38,4 @@ + test.must_contain_any_line(test.stderr(), + ["Missing input files:"]) + +-test.pass_test() +\ No newline at end of file ++test.pass_test() +diff -Naur gyp/test/msvs/props/gyptest-props.py gyp-haiku/test/msvs/props/gyptest-props.py +--- gyp/test/msvs/props/gyptest-props.py 2012-12-24 00:53:48.000000000 +0000 ++++ gyp-haiku/test/msvs/props/gyptest-props.py 2012-12-24 00:28:23.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2012 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/test/msvs/shared_output/gyptest-shared_output.py gyp-haiku/test/msvs/shared_output/gyptest-shared_output.py +--- gyp/test/msvs/shared_output/gyptest-shared_output.py 2012-12-24 00:53:48.000000000 +0000 ++++ gyp-haiku/test/msvs/shared_output/gyptest-shared_output.py 2012-12-24 00:28:27.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2012 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/test/msvs/uldi2010/gyptest-all.py gyp-haiku/test/msvs/uldi2010/gyptest-all.py +--- gyp/test/msvs/uldi2010/gyptest-all.py 2012-12-24 00:53:48.000000000 +0000 ++++ gyp-haiku/test/msvs/uldi2010/gyptest-all.py 2012-12-24 00:28:30.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2012 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/test/multiple-targets/gyptest-all.py gyp-haiku/test/multiple-targets/gyptest-all.py +--- gyp/test/multiple-targets/gyptest-all.py 2012-12-24 00:54:05.000000000 +0000 ++++ gyp-haiku/test/multiple-targets/gyptest-all.py 2012-12-24 00:28:33.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2009 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/test/multiple-targets/gyptest-default.py gyp-haiku/test/multiple-targets/gyptest-default.py +--- gyp/test/multiple-targets/gyptest-default.py 2012-12-24 00:54:05.000000000 +0000 ++++ gyp-haiku/test/multiple-targets/gyptest-default.py 2012-12-24 00:28:36.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2009 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/test/ninja/action_dependencies/gyptest-action-dependencies.py gyp-haiku/test/ninja/action_dependencies/gyptest-action-dependencies.py +--- gyp/test/ninja/action_dependencies/gyptest-action-dependencies.py 2012-12-24 00:53:54.000000000 +0000 ++++ gyp-haiku/test/ninja/action_dependencies/gyptest-action-dependencies.py 2012-12-24 00:28:39.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2012 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/test/ninja/action_dependencies/src/emit.py gyp-haiku/test/ninja/action_dependencies/src/emit.py +--- gyp/test/ninja/action_dependencies/src/emit.py 2012-12-24 00:53:54.000000000 +0000 ++++ gyp-haiku/test/ninja/action_dependencies/src/emit.py 2012-12-24 00:28:44.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2011 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/test/ninja/chained-dependency/gyptest-chained-dependency.py gyp-haiku/test/ninja/chained-dependency/gyptest-chained-dependency.py +--- gyp/test/ninja/chained-dependency/gyptest-chained-dependency.py 2012-12-24 00:53:54.000000000 +0000 ++++ gyp-haiku/test/ninja/chained-dependency/gyptest-chained-dependency.py 2012-12-24 00:28:47.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2012 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/test/ninja/normalize-paths-win/gyptest-normalize-paths.py gyp-haiku/test/ninja/normalize-paths-win/gyptest-normalize-paths.py +--- gyp/test/ninja/normalize-paths-win/gyptest-normalize-paths.py 2012-12-24 00:53:54.000000000 +0000 ++++ gyp-haiku/test/ninja/normalize-paths-win/gyptest-normalize-paths.py 2012-12-24 00:28:50.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2012 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/test/ninja/solibs_avoid_relinking/gyptest-solibs-avoid-relinking.py gyp-haiku/test/ninja/solibs_avoid_relinking/gyptest-solibs-avoid-relinking.py +--- gyp/test/ninja/solibs_avoid_relinking/gyptest-solibs-avoid-relinking.py 2012-12-24 00:53:53.000000000 +0000 ++++ gyp-haiku/test/ninja/solibs_avoid_relinking/gyptest-solibs-avoid-relinking.py 2012-12-24 00:28:53.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2012 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/test/no-output/gyptest-no-output.py gyp-haiku/test/no-output/gyptest-no-output.py +--- gyp/test/no-output/gyptest-no-output.py 2012-12-24 00:53:47.000000000 +0000 ++++ gyp-haiku/test/no-output/gyptest-no-output.py 2012-12-24 00:28:57.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2009 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/test/product/gyptest-product.py gyp-haiku/test/product/gyptest-product.py +--- gyp/test/product/gyptest-product.py 2012-12-24 00:54:04.000000000 +0000 ++++ gyp-haiku/test/product/gyptest-product.py 2012-12-24 00:29:01.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2012 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/test/relative/gyptest-default.py gyp-haiku/test/relative/gyptest-default.py +--- gyp/test/relative/gyptest-default.py 2012-12-24 00:54:03.000000000 +0000 ++++ gyp-haiku/test/relative/gyptest-default.py 2012-12-24 00:29:07.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2011 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/test/rename/gyptest-filecase.py gyp-haiku/test/rename/gyptest-filecase.py +--- gyp/test/rename/gyptest-filecase.py 2012-12-24 00:54:03.000000000 +0000 ++++ gyp-haiku/test/rename/gyptest-filecase.py 2012-12-24 00:29:12.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2012 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/test/restat/gyptest-restat.py gyp-haiku/test/restat/gyptest-restat.py +--- gyp/test/restat/gyptest-restat.py 2012-12-24 00:53:43.000000000 +0000 ++++ gyp-haiku/test/restat/gyptest-restat.py 2012-12-24 00:29:28.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2012 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/test/restat/src/create_intermediate.py gyp-haiku/test/restat/src/create_intermediate.py +--- gyp/test/restat/src/create_intermediate.py 2012-12-24 00:53:43.000000000 +0000 ++++ gyp-haiku/test/restat/src/create_intermediate.py 2012-12-24 00:29:32.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2012 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/test/restat/src/touch.py gyp-haiku/test/restat/src/touch.py +--- gyp/test/restat/src/touch.py 2012-12-24 00:53:43.000000000 +0000 ++++ gyp-haiku/test/restat/src/touch.py 2012-12-24 00:29:47.000000000 +0000 +@@ -1,5 +1,5 @@ +-#!/usr/bin/env python +-# ++#!/boot/common/bin/python ++ + # Copyright (c) 2012 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be + # found in the LICENSE file. +diff -Naur gyp/test/rules/gyptest-all.py gyp-haiku/test/rules/gyptest-all.py +--- gyp/test/rules/gyptest-all.py 2012-12-24 00:53:49.000000000 +0000 ++++ gyp-haiku/test/rules/gyptest-all.py 2012-12-24 00:29:52.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2011 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/test/rules/gyptest-default.py gyp-haiku/test/rules/gyptest-default.py +--- gyp/test/rules/gyptest-default.py 2012-12-24 00:53:49.000000000 +0000 ++++ gyp-haiku/test/rules/gyptest-default.py 2012-12-24 00:29:56.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2011 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/test/rules/gyptest-input-root.py gyp-haiku/test/rules/gyptest-input-root.py +--- gyp/test/rules/gyptest-input-root.py 2012-12-24 00:53:49.000000000 +0000 ++++ gyp-haiku/test/rules/gyptest-input-root.py 2012-12-24 00:29:59.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2011 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/test/rules/gyptest-special-variables.py gyp-haiku/test/rules/gyptest-special-variables.py +--- gyp/test/rules/gyptest-special-variables.py 2012-12-24 00:53:49.000000000 +0000 ++++ gyp-haiku/test/rules/gyptest-special-variables.py 2012-12-24 00:30:03.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2012 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/test/rules/src/copy-file.py gyp-haiku/test/rules/src/copy-file.py +--- gyp/test/rules/src/copy-file.py 2012-12-24 00:53:49.000000000 +0000 ++++ gyp-haiku/test/rules/src/copy-file.py 2012-12-24 00:30:06.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2009 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/test/rules/src/rule.py gyp-haiku/test/rules/src/rule.py +--- gyp/test/rules/src/rule.py 2012-12-24 00:53:49.000000000 +0000 ++++ gyp-haiku/test/rules/src/rule.py 2012-12-24 00:30:15.000000000 +0000 +@@ -1,4 +1,5 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python ++ + # Copyright (c) 2011 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be + # found in the LICENSE file. +diff -Naur gyp/test/rules-dirname/gyptest-dirname.py gyp-haiku/test/rules-dirname/gyptest-dirname.py +--- gyp/test/rules-dirname/gyptest-dirname.py 2012-12-24 00:54:02.000000000 +0000 ++++ gyp-haiku/test/rules-dirname/gyptest-dirname.py 2012-12-24 00:30:20.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2011 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/test/rules-dirname/src/copy-file.py gyp-haiku/test/rules-dirname/src/copy-file.py +--- gyp/test/rules-dirname/src/copy-file.py 2012-12-24 00:54:02.000000000 +0000 ++++ gyp-haiku/test/rules-dirname/src/copy-file.py 2012-12-24 00:30:24.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2011 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/test/rules-dirname/src/subdir/printvars.py gyp-haiku/test/rules-dirname/src/subdir/printvars.py +--- gyp/test/rules-dirname/src/subdir/printvars.py 2012-12-24 00:54:02.000000000 +0000 ++++ gyp-haiku/test/rules-dirname/src/subdir/printvars.py 2012-12-24 00:30:27.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2011 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/test/rules-rebuild/gyptest-all.py gyp-haiku/test/rules-rebuild/gyptest-all.py +--- gyp/test/rules-rebuild/gyptest-all.py 2012-12-24 00:54:04.000000000 +0000 ++++ gyp-haiku/test/rules-rebuild/gyptest-all.py 2012-12-24 00:30:29.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2009 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/test/rules-rebuild/gyptest-default.py gyp-haiku/test/rules-rebuild/gyptest-default.py +--- gyp/test/rules-rebuild/gyptest-default.py 2012-12-24 00:54:04.000000000 +0000 ++++ gyp-haiku/test/rules-rebuild/gyptest-default.py 2012-12-24 00:30:33.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2012 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/test/rules-rebuild/src/make-sources.py gyp-haiku/test/rules-rebuild/src/make-sources.py +--- gyp/test/rules-rebuild/src/make-sources.py 2012-12-24 00:54:04.000000000 +0000 ++++ gyp-haiku/test/rules-rebuild/src/make-sources.py 2012-12-24 00:30:38.000000000 +0000 +@@ -1,4 +1,5 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python ++ + # Copyright (c) 2011 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be + # found in the LICENSE file. +diff -Naur gyp/test/rules-variables/gyptest-rules-variables.py gyp-haiku/test/rules-variables/gyptest-rules-variables.py +--- gyp/test/rules-variables/gyptest-rules-variables.py 2012-12-24 00:54:02.000000000 +0000 ++++ gyp-haiku/test/rules-variables/gyptest-rules-variables.py 2012-12-24 00:30:42.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2011 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/test/same-gyp-name/gyptest-all.py gyp-haiku/test/same-gyp-name/gyptest-all.py +--- gyp/test/same-gyp-name/gyptest-all.py 2012-12-24 00:53:54.000000000 +0000 ++++ gyp-haiku/test/same-gyp-name/gyptest-all.py 2012-12-24 00:30:45.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2011 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/test/same-gyp-name/gyptest-default.py gyp-haiku/test/same-gyp-name/gyptest-default.py +--- gyp/test/same-gyp-name/gyptest-default.py 2012-12-24 00:53:54.000000000 +0000 ++++ gyp-haiku/test/same-gyp-name/gyptest-default.py 2012-12-24 00:30:48.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2011 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/test/same-rule-output-file-name/gyptest-all.py gyp-haiku/test/same-rule-output-file-name/gyptest-all.py +--- gyp/test/same-rule-output-file-name/gyptest-all.py 2012-12-24 00:53:47.000000000 +0000 ++++ gyp-haiku/test/same-rule-output-file-name/gyptest-all.py 2012-12-24 00:30:51.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2012 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/test/same-rule-output-file-name/src/touch.py gyp-haiku/test/same-rule-output-file-name/src/touch.py +--- gyp/test/same-rule-output-file-name/src/touch.py 2012-12-24 00:53:47.000000000 +0000 ++++ gyp-haiku/test/same-rule-output-file-name/src/touch.py 2012-12-24 00:30:56.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2012 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/test/same-source-file-name/gyptest-all.py gyp-haiku/test/same-source-file-name/gyptest-all.py +--- gyp/test/same-source-file-name/gyptest-all.py 2012-12-24 00:54:04.000000000 +0000 ++++ gyp-haiku/test/same-source-file-name/gyptest-all.py 2012-12-24 00:31:45.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2009 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/test/same-source-file-name/gyptest-default.py gyp-haiku/test/same-source-file-name/gyptest-default.py +--- gyp/test/same-source-file-name/gyptest-default.py 2012-12-24 00:54:04.000000000 +0000 ++++ gyp-haiku/test/same-source-file-name/gyptest-default.py 2012-12-24 00:31:49.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2009 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/test/same-target-name/gyptest-same-target-name.py gyp-haiku/test/same-target-name/gyptest-same-target-name.py +--- gyp/test/same-target-name/gyptest-same-target-name.py 2012-12-24 00:53:47.000000000 +0000 ++++ gyp-haiku/test/same-target-name/gyptest-same-target-name.py 2012-12-24 00:31:52.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2010 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/test/same-target-name-different-directory/gyptest-all.py gyp-haiku/test/same-target-name-different-directory/gyptest-all.py +--- gyp/test/same-target-name-different-directory/gyptest-all.py 2012-12-24 00:53:53.000000000 +0000 ++++ gyp-haiku/test/same-target-name-different-directory/gyptest-all.py 2012-12-24 00:31:55.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2012 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/test/same-target-name-different-directory/src/touch.py gyp-haiku/test/same-target-name-different-directory/src/touch.py +--- gyp/test/same-target-name-different-directory/src/touch.py 2012-12-24 00:53:53.000000000 +0000 ++++ gyp-haiku/test/same-target-name-different-directory/src/touch.py 2012-12-24 00:31:58.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2012 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/test/sanitize-rule-names/gyptest-sanitize-rule-names.py gyp-haiku/test/sanitize-rule-names/gyptest-sanitize-rule-names.py +--- gyp/test/sanitize-rule-names/gyptest-sanitize-rule-names.py 2012-12-24 00:54:04.000000000 +0000 ++++ gyp-haiku/test/sanitize-rule-names/gyptest-sanitize-rule-names.py 2012-12-24 00:32:01.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2012 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/test/sanitize-rule-names/script.py gyp-haiku/test/sanitize-rule-names/script.py +--- gyp/test/sanitize-rule-names/script.py 2012-12-24 00:54:04.000000000 +0000 ++++ gyp-haiku/test/sanitize-rule-names/script.py 2012-12-24 00:32:03.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2012 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/test/scons_tools/gyptest-tools.py gyp-haiku/test/scons_tools/gyptest-tools.py +--- gyp/test/scons_tools/gyptest-tools.py 2012-12-24 00:53:44.000000000 +0000 ++++ gyp-haiku/test/scons_tools/gyptest-tools.py 2012-12-24 00:32:06.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2009 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/test/sibling/gyptest-all.py gyp-haiku/test/sibling/gyptest-all.py +--- gyp/test/sibling/gyptest-all.py 2012-12-24 00:54:01.000000000 +0000 ++++ gyp-haiku/test/sibling/gyptest-all.py 2012-12-24 00:32:08.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2012 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/test/sibling/gyptest-relocate.py gyp-haiku/test/sibling/gyptest-relocate.py +--- gyp/test/sibling/gyptest-relocate.py 2012-12-24 00:54:01.000000000 +0000 ++++ gyp-haiku/test/sibling/gyptest-relocate.py 2012-12-24 00:32:11.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2012 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/test/small/gyptest-small.py gyp-haiku/test/small/gyptest-small.py +--- gyp/test/small/gyptest-small.py 2012-12-24 00:53:55.000000000 +0000 ++++ gyp-haiku/test/small/gyptest-small.py 2012-12-24 00:32:13.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2012 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/test/standalone/gyptest-standalone.py gyp-haiku/test/standalone/gyptest-standalone.py +--- gyp/test/standalone/gyptest-standalone.py 2012-12-24 00:54:04.000000000 +0000 ++++ gyp-haiku/test/standalone/gyptest-standalone.py 2012-12-24 00:32:15.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2012 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/test/subdirectory/gyptest-subdir-all.py gyp-haiku/test/subdirectory/gyptest-subdir-all.py +--- gyp/test/subdirectory/gyptest-subdir-all.py 2012-12-24 00:53:57.000000000 +0000 ++++ gyp-haiku/test/subdirectory/gyptest-subdir-all.py 2012-12-24 00:32:23.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2012 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/test/subdirectory/gyptest-subdir-default.py gyp-haiku/test/subdirectory/gyptest-subdir-default.py +--- gyp/test/subdirectory/gyptest-subdir-default.py 2012-12-24 00:53:57.000000000 +0000 ++++ gyp-haiku/test/subdirectory/gyptest-subdir-default.py 2012-12-24 00:32:26.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2012 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/test/subdirectory/gyptest-subdir2-deep.py gyp-haiku/test/subdirectory/gyptest-subdir2-deep.py +--- gyp/test/subdirectory/gyptest-subdir2-deep.py 2012-12-24 00:53:57.000000000 +0000 ++++ gyp-haiku/test/subdirectory/gyptest-subdir2-deep.py 2012-12-24 00:32:29.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2009 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/test/subdirectory/gyptest-SYMROOT-all.py gyp-haiku/test/subdirectory/gyptest-SYMROOT-all.py +--- gyp/test/subdirectory/gyptest-SYMROOT-all.py 2012-12-24 00:53:57.000000000 +0000 ++++ gyp-haiku/test/subdirectory/gyptest-SYMROOT-all.py 2012-12-24 00:32:18.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2009 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/test/subdirectory/gyptest-SYMROOT-default.py gyp-haiku/test/subdirectory/gyptest-SYMROOT-default.py +--- gyp/test/subdirectory/gyptest-SYMROOT-default.py 2012-12-24 00:53:57.000000000 +0000 ++++ gyp-haiku/test/subdirectory/gyptest-SYMROOT-default.py 2012-12-24 00:32:21.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2009 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/test/subdirectory/gyptest-top-all.py gyp-haiku/test/subdirectory/gyptest-top-all.py +--- gyp/test/subdirectory/gyptest-top-all.py 2012-12-24 00:53:57.000000000 +0000 ++++ gyp-haiku/test/subdirectory/gyptest-top-all.py 2012-12-24 00:32:32.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2009 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/test/subdirectory/gyptest-top-default.py gyp-haiku/test/subdirectory/gyptest-top-default.py +--- gyp/test/subdirectory/gyptest-top-default.py 2012-12-24 00:53:57.000000000 +0000 ++++ gyp-haiku/test/subdirectory/gyptest-top-default.py 2012-12-24 00:32:35.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2009 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/test/toolsets/gyptest-toolsets.py gyp-haiku/test/toolsets/gyptest-toolsets.py +--- gyp/test/toolsets/gyptest-toolsets.py 2012-12-24 00:54:07.000000000 +0000 ++++ gyp-haiku/test/toolsets/gyptest-toolsets.py 2012-12-24 00:32:38.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2009 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/test/toplevel-dir/gyptest-toplevel-dir.py gyp-haiku/test/toplevel-dir/gyptest-toplevel-dir.py +--- gyp/test/toplevel-dir/gyptest-toplevel-dir.py 2012-12-24 00:53:46.000000000 +0000 ++++ gyp-haiku/test/toplevel-dir/gyptest-toplevel-dir.py 2012-12-24 00:32:40.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2009 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/test/variables/commands/gyptest-commands-ignore-env.py gyp-haiku/test/variables/commands/gyptest-commands-ignore-env.py +--- gyp/test/variables/commands/gyptest-commands-ignore-env.py 2012-12-24 00:53:46.000000000 +0000 ++++ gyp-haiku/test/variables/commands/gyptest-commands-ignore-env.py 2012-12-24 00:32:43.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2012 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/test/variables/commands/gyptest-commands-repeated.py gyp-haiku/test/variables/commands/gyptest-commands-repeated.py +--- gyp/test/variables/commands/gyptest-commands-repeated.py 2012-12-24 00:53:46.000000000 +0000 ++++ gyp-haiku/test/variables/commands/gyptest-commands-repeated.py 2012-12-24 00:32:45.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2012 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/test/variables/commands/gyptest-commands.py gyp-haiku/test/variables/commands/gyptest-commands.py +--- gyp/test/variables/commands/gyptest-commands.py 2012-12-24 00:53:46.000000000 +0000 ++++ gyp-haiku/test/variables/commands/gyptest-commands.py 2012-12-24 00:32:48.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2012 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/test/variables/filelist/gyptest-filelist.py gyp-haiku/test/variables/filelist/gyptest-filelist.py +--- gyp/test/variables/filelist/gyptest-filelist.py 2012-12-24 00:53:47.000000000 +0000 ++++ gyp-haiku/test/variables/filelist/gyptest-filelist.py 2012-12-24 00:32:52.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2012 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/test/variables/latelate/gyptest-latelate.py gyp-haiku/test/variables/latelate/gyptest-latelate.py +--- gyp/test/variables/latelate/gyptest-latelate.py 2012-12-24 00:53:47.000000000 +0000 ++++ gyp-haiku/test/variables/latelate/gyptest-latelate.py 2012-12-24 00:34:21.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2012 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/test/variables/variable-in-path/gyptest-variable-in-path.py gyp-haiku/test/variables/variable-in-path/gyptest-variable-in-path.py +--- gyp/test/variables/variable-in-path/gyptest-variable-in-path.py 2012-12-24 00:53:46.000000000 +0000 ++++ gyp-haiku/test/variables/variable-in-path/gyptest-variable-in-path.py 2012-12-24 00:34:30.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2012 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/test/variants/gyptest-variants.py gyp-haiku/test/variants/gyptest-variants.py +--- gyp/test/variants/gyptest-variants.py 2012-12-24 00:53:37.000000000 +0000 ++++ gyp-haiku/test/variants/gyptest-variants.py 2012-12-24 00:34:35.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2009 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/test/win/gyptest-asm-files.py gyp-haiku/test/win/gyptest-asm-files.py +--- gyp/test/win/gyptest-asm-files.py 2012-12-24 00:53:53.000000000 +0000 ++++ gyp-haiku/test/win/gyptest-asm-files.py 2012-12-24 00:34:38.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2012 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/test/win/gyptest-cl-additional-include-dirs.py gyp-haiku/test/win/gyptest-cl-additional-include-dirs.py +--- gyp/test/win/gyptest-cl-additional-include-dirs.py 2012-12-24 00:53:53.000000000 +0000 ++++ gyp-haiku/test/win/gyptest-cl-additional-include-dirs.py 2012-12-24 00:34:41.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2012 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/test/win/gyptest-cl-additional-options.py gyp-haiku/test/win/gyptest-cl-additional-options.py +--- gyp/test/win/gyptest-cl-additional-options.py 2012-12-24 00:53:53.000000000 +0000 ++++ gyp-haiku/test/win/gyptest-cl-additional-options.py 2012-12-24 00:34:44.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2012 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/test/win/gyptest-cl-buffer-security-check.py gyp-haiku/test/win/gyptest-cl-buffer-security-check.py +--- gyp/test/win/gyptest-cl-buffer-security-check.py 2012-12-24 00:53:53.000000000 +0000 ++++ gyp-haiku/test/win/gyptest-cl-buffer-security-check.py 2012-12-24 00:34:46.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2012 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/test/win/gyptest-cl-character-set.py gyp-haiku/test/win/gyptest-cl-character-set.py +--- gyp/test/win/gyptest-cl-character-set.py 2012-12-24 00:53:53.000000000 +0000 ++++ gyp-haiku/test/win/gyptest-cl-character-set.py 2012-12-24 00:34:49.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2012 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/test/win/gyptest-cl-debug-format.py gyp-haiku/test/win/gyptest-cl-debug-format.py +--- gyp/test/win/gyptest-cl-debug-format.py 2012-12-24 00:53:53.000000000 +0000 ++++ gyp-haiku/test/win/gyptest-cl-debug-format.py 2012-12-24 00:34:51.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2012 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/test/win/gyptest-cl-exception-handling.py gyp-haiku/test/win/gyptest-cl-exception-handling.py +--- gyp/test/win/gyptest-cl-exception-handling.py 2012-12-24 00:53:53.000000000 +0000 ++++ gyp-haiku/test/win/gyptest-cl-exception-handling.py 2012-12-24 00:34:53.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2012 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/test/win/gyptest-cl-function-level-linking.py gyp-haiku/test/win/gyptest-cl-function-level-linking.py +--- gyp/test/win/gyptest-cl-function-level-linking.py 2012-12-24 00:53:53.000000000 +0000 ++++ gyp-haiku/test/win/gyptest-cl-function-level-linking.py 2012-12-24 00:34:56.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2012 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/test/win/gyptest-cl-optimizations.py gyp-haiku/test/win/gyptest-cl-optimizations.py +--- gyp/test/win/gyptest-cl-optimizations.py 2012-12-24 00:53:53.000000000 +0000 ++++ gyp-haiku/test/win/gyptest-cl-optimizations.py 2012-12-24 00:34:59.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2012 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/test/win/gyptest-cl-pdbname.py gyp-haiku/test/win/gyptest-cl-pdbname.py +--- gyp/test/win/gyptest-cl-pdbname.py 2012-12-24 00:53:53.000000000 +0000 ++++ gyp-haiku/test/win/gyptest-cl-pdbname.py 2012-12-24 00:35:01.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2012 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/test/win/gyptest-cl-rtti.py gyp-haiku/test/win/gyptest-cl-rtti.py +--- gyp/test/win/gyptest-cl-rtti.py 2012-12-24 00:53:53.000000000 +0000 ++++ gyp-haiku/test/win/gyptest-cl-rtti.py 2012-12-24 00:35:03.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2012 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/test/win/gyptest-cl-runtime-checks.py gyp-haiku/test/win/gyptest-cl-runtime-checks.py +--- gyp/test/win/gyptest-cl-runtime-checks.py 2012-12-24 00:53:53.000000000 +0000 ++++ gyp-haiku/test/win/gyptest-cl-runtime-checks.py 2012-12-24 00:35:06.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2012 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/test/win/gyptest-cl-runtime-library.py gyp-haiku/test/win/gyptest-cl-runtime-library.py +--- gyp/test/win/gyptest-cl-runtime-library.py 2012-12-24 00:53:53.000000000 +0000 ++++ gyp-haiku/test/win/gyptest-cl-runtime-library.py 2012-12-24 00:35:08.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2012 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/test/win/gyptest-cl-warning-as-error.py gyp-haiku/test/win/gyptest-cl-warning-as-error.py +--- gyp/test/win/gyptest-cl-warning-as-error.py 2012-12-24 00:53:53.000000000 +0000 ++++ gyp-haiku/test/win/gyptest-cl-warning-as-error.py 2012-12-24 00:35:10.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2012 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/test/win/gyptest-cl-warning-level.py gyp-haiku/test/win/gyptest-cl-warning-level.py +--- gyp/test/win/gyptest-cl-warning-level.py 2012-12-24 00:53:53.000000000 +0000 ++++ gyp-haiku/test/win/gyptest-cl-warning-level.py 2012-12-24 00:35:13.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2012 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/test/win/gyptest-command-quote.py gyp-haiku/test/win/gyptest-command-quote.py +--- gyp/test/win/gyptest-command-quote.py 2012-12-24 00:53:53.000000000 +0000 ++++ gyp-haiku/test/win/gyptest-command-quote.py 2012-12-24 00:35:15.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2012 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/test/win/gyptest-link-additional-deps.py gyp-haiku/test/win/gyptest-link-additional-deps.py +--- gyp/test/win/gyptest-link-additional-deps.py 2012-12-24 00:53:53.000000000 +0000 ++++ gyp-haiku/test/win/gyptest-link-additional-deps.py 2012-12-24 00:35:19.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2012 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/test/win/gyptest-link-additional-options.py gyp-haiku/test/win/gyptest-link-additional-options.py +--- gyp/test/win/gyptest-link-additional-options.py 2012-12-24 00:53:53.000000000 +0000 ++++ gyp-haiku/test/win/gyptest-link-additional-options.py 2012-12-24 00:35:21.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2012 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/test/win/gyptest-link-aslr.py gyp-haiku/test/win/gyptest-link-aslr.py +--- gyp/test/win/gyptest-link-aslr.py 2012-12-24 00:53:53.000000000 +0000 ++++ gyp-haiku/test/win/gyptest-link-aslr.py 2012-12-24 00:35:23.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2012 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/test/win/gyptest-link-debug-info.py gyp-haiku/test/win/gyptest-link-debug-info.py +--- gyp/test/win/gyptest-link-debug-info.py 2012-12-24 00:53:53.000000000 +0000 ++++ gyp-haiku/test/win/gyptest-link-debug-info.py 2012-12-24 00:35:26.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2012 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/test/win/gyptest-link-default-libs.py gyp-haiku/test/win/gyptest-link-default-libs.py +--- gyp/test/win/gyptest-link-default-libs.py 2012-12-24 00:53:53.000000000 +0000 ++++ gyp-haiku/test/win/gyptest-link-default-libs.py 2012-12-24 00:35:30.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2012 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/test/win/gyptest-link-deffile.py gyp-haiku/test/win/gyptest-link-deffile.py +--- gyp/test/win/gyptest-link-deffile.py 2012-12-24 00:53:53.000000000 +0000 ++++ gyp-haiku/test/win/gyptest-link-deffile.py 2012-12-24 00:35:32.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2012 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/test/win/gyptest-link-delay-load-dlls.py gyp-haiku/test/win/gyptest-link-delay-load-dlls.py +--- gyp/test/win/gyptest-link-delay-load-dlls.py 2012-12-24 00:53:53.000000000 +0000 ++++ gyp-haiku/test/win/gyptest-link-delay-load-dlls.py 2012-12-24 00:35:34.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2012 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/test/win/gyptest-link-entrypointsymbol.py gyp-haiku/test/win/gyptest-link-entrypointsymbol.py +--- gyp/test/win/gyptest-link-entrypointsymbol.py 2012-12-24 00:53:53.000000000 +0000 ++++ gyp-haiku/test/win/gyptest-link-entrypointsymbol.py 2012-12-24 00:35:37.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2012 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/test/win/gyptest-link-fixed-base.py gyp-haiku/test/win/gyptest-link-fixed-base.py +--- gyp/test/win/gyptest-link-fixed-base.py 2012-12-24 00:53:53.000000000 +0000 ++++ gyp-haiku/test/win/gyptest-link-fixed-base.py 2012-12-24 00:35:39.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2012 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/test/win/gyptest-link-generate-manifest.py gyp-haiku/test/win/gyptest-link-generate-manifest.py +--- gyp/test/win/gyptest-link-generate-manifest.py 2012-12-24 00:53:53.000000000 +0000 ++++ gyp-haiku/test/win/gyptest-link-generate-manifest.py 2012-12-24 00:35:42.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2012 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/test/win/gyptest-link-incremental.py gyp-haiku/test/win/gyptest-link-incremental.py +--- gyp/test/win/gyptest-link-incremental.py 2012-12-24 00:53:53.000000000 +0000 ++++ gyp-haiku/test/win/gyptest-link-incremental.py 2012-12-24 00:35:46.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2012 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/test/win/gyptest-link-library-adjust.py gyp-haiku/test/win/gyptest-link-library-adjust.py +--- gyp/test/win/gyptest-link-library-adjust.py 2012-12-24 00:53:53.000000000 +0000 ++++ gyp-haiku/test/win/gyptest-link-library-adjust.py 2012-12-24 00:35:49.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2012 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/test/win/gyptest-link-library-directories.py gyp-haiku/test/win/gyptest-link-library-directories.py +--- gyp/test/win/gyptest-link-library-directories.py 2012-12-24 00:53:53.000000000 +0000 ++++ gyp-haiku/test/win/gyptest-link-library-directories.py 2012-12-24 00:35:52.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2012 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/test/win/gyptest-link-nodefaultlib.py gyp-haiku/test/win/gyptest-link-nodefaultlib.py +--- gyp/test/win/gyptest-link-nodefaultlib.py 2012-12-24 00:53:53.000000000 +0000 ++++ gyp-haiku/test/win/gyptest-link-nodefaultlib.py 2012-12-24 00:35:55.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2012 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/test/win/gyptest-link-nxcompat.py gyp-haiku/test/win/gyptest-link-nxcompat.py +--- gyp/test/win/gyptest-link-nxcompat.py 2012-12-24 00:53:53.000000000 +0000 ++++ gyp-haiku/test/win/gyptest-link-nxcompat.py 2012-12-24 00:35:58.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2012 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/test/win/gyptest-link-opt-icf.py gyp-haiku/test/win/gyptest-link-opt-icf.py +--- gyp/test/win/gyptest-link-opt-icf.py 2012-12-24 00:53:53.000000000 +0000 ++++ gyp-haiku/test/win/gyptest-link-opt-icf.py 2012-12-24 00:36:01.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2012 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/test/win/gyptest-link-opt-ref.py gyp-haiku/test/win/gyptest-link-opt-ref.py +--- gyp/test/win/gyptest-link-opt-ref.py 2012-12-24 00:53:53.000000000 +0000 ++++ gyp-haiku/test/win/gyptest-link-opt-ref.py 2012-12-24 00:36:03.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2012 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/test/win/gyptest-link-outputfile.py gyp-haiku/test/win/gyptest-link-outputfile.py +--- gyp/test/win/gyptest-link-outputfile.py 2012-12-24 00:53:53.000000000 +0000 ++++ gyp-haiku/test/win/gyptest-link-outputfile.py 2012-12-24 00:36:14.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2012 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/test/win/gyptest-link-restat-importlib.py gyp-haiku/test/win/gyptest-link-restat-importlib.py +--- gyp/test/win/gyptest-link-restat-importlib.py 2012-12-24 00:53:53.000000000 +0000 ++++ gyp-haiku/test/win/gyptest-link-restat-importlib.py 2012-12-24 00:36:17.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2012 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/test/win/gyptest-link-subsystem.py gyp-haiku/test/win/gyptest-link-subsystem.py +--- gyp/test/win/gyptest-link-subsystem.py 2012-12-24 00:53:53.000000000 +0000 ++++ gyp-haiku/test/win/gyptest-link-subsystem.py 2012-12-24 00:36:20.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2012 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/test/win/gyptest-link-uldi.py gyp-haiku/test/win/gyptest-link-uldi.py +--- gyp/test/win/gyptest-link-uldi.py 2012-12-24 00:53:53.000000000 +0000 ++++ gyp-haiku/test/win/gyptest-link-uldi.py 2012-12-24 00:36:23.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2012 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/test/win/gyptest-long-command-line.py gyp-haiku/test/win/gyptest-long-command-line.py +--- gyp/test/win/gyptest-long-command-line.py 2012-12-24 00:53:53.000000000 +0000 ++++ gyp-haiku/test/win/gyptest-long-command-line.py 2012-12-24 00:37:44.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2012 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/test/win/gyptest-macro-projectname.py gyp-haiku/test/win/gyptest-macro-projectname.py +--- gyp/test/win/gyptest-macro-projectname.py 2012-12-24 00:53:53.000000000 +0000 ++++ gyp-haiku/test/win/gyptest-macro-projectname.py 2012-12-24 00:37:48.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2012 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/test/win/gyptest-macro-vcinstalldir.py gyp-haiku/test/win/gyptest-macro-vcinstalldir.py +--- gyp/test/win/gyptest-macro-vcinstalldir.py 2012-12-24 00:53:53.000000000 +0000 ++++ gyp-haiku/test/win/gyptest-macro-vcinstalldir.py 2012-12-24 00:37:53.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2012 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/test/win/gyptest-macros-containing-gyp.py gyp-haiku/test/win/gyptest-macros-containing-gyp.py +--- gyp/test/win/gyptest-macros-containing-gyp.py 2012-12-24 00:53:53.000000000 +0000 ++++ gyp-haiku/test/win/gyptest-macros-containing-gyp.py 2012-12-24 00:37:57.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2012 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/test/win/gyptest-macros-in-inputs-and-outputs.py gyp-haiku/test/win/gyptest-macros-in-inputs-and-outputs.py +--- gyp/test/win/gyptest-macros-in-inputs-and-outputs.py 2012-12-24 00:53:53.000000000 +0000 ++++ gyp-haiku/test/win/gyptest-macros-in-inputs-and-outputs.py 2012-12-24 00:38:00.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2012 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/test/win/gyptest-midl-rules.py gyp-haiku/test/win/gyptest-midl-rules.py +--- gyp/test/win/gyptest-midl-rules.py 2012-12-24 00:53:53.000000000 +0000 ++++ gyp-haiku/test/win/gyptest-midl-rules.py 2012-12-24 00:38:03.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2012 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/test/win/gyptest-quoting-commands.py gyp-haiku/test/win/gyptest-quoting-commands.py +--- gyp/test/win/gyptest-quoting-commands.py 2012-12-24 00:53:53.000000000 +0000 ++++ gyp-haiku/test/win/gyptest-quoting-commands.py 2012-12-24 00:38:06.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2012 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/test/win/gyptest-rc-build.py gyp-haiku/test/win/gyptest-rc-build.py +--- gyp/test/win/gyptest-rc-build.py 2012-12-24 00:53:53.000000000 +0000 ++++ gyp-haiku/test/win/gyptest-rc-build.py 2012-12-24 00:38:09.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2012 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/test/win/precompiled/gyptest-all.py gyp-haiku/test/win/precompiled/gyptest-all.py +--- gyp/test/win/precompiled/gyptest-all.py 2012-12-24 00:53:51.000000000 +0000 ++++ gyp-haiku/test/win/precompiled/gyptest-all.py 2012-12-24 00:38:11.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2011 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/test/win/vs-macros/as.py gyp-haiku/test/win/vs-macros/as.py +--- gyp/test/win/vs-macros/as.py 2012-12-24 00:53:52.000000000 +0000 ++++ gyp-haiku/test/win/vs-macros/as.py 2012-12-24 00:38:14.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2012 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/tools/graphviz.py gyp-haiku/tools/graphviz.py +--- gyp/tools/graphviz.py 2012-12-24 00:54:08.000000000 +0000 ++++ gyp-haiku/tools/graphviz.py 2012-12-24 00:38:17.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2011 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/tools/pretty_gyp.py gyp-haiku/tools/pretty_gyp.py +--- gyp/tools/pretty_gyp.py 2012-12-24 00:54:08.000000000 +0000 ++++ gyp-haiku/tools/pretty_gyp.py 2012-12-24 00:38:21.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2012 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/tools/pretty_sln.py gyp-haiku/tools/pretty_sln.py +--- gyp/tools/pretty_sln.py 2012-12-24 00:54:08.000000000 +0000 ++++ gyp-haiku/tools/pretty_sln.py 2012-12-24 00:38:24.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2012 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be +diff -Naur gyp/tools/pretty_vcproj.py gyp-haiku/tools/pretty_vcproj.py +--- gyp/tools/pretty_vcproj.py 2012-12-24 00:54:08.000000000 +0000 ++++ gyp-haiku/tools/pretty_vcproj.py 2012-12-24 00:38:26.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # Copyright (c) 2012 Google Inc. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be diff --git a/dev-lang/v8/patches/v8-r13067.patch b/dev-lang/v8/patches/v8-r13067.patch new file mode 100644 index 000000000..035b9ded4 --- /dev/null +++ b/dev-lang/v8/patches/v8-r13067.patch @@ -0,0 +1,1381 @@ +diff -Naur v8-r13067/build/common.gypi v8-r13067-haiku/build/common.gypi +--- v8-r13067/build/common.gypi 2012-12-24 04:17:35.255590400 +0000 ++++ v8-r13067-haiku/build/common.gypi 2012-12-24 04:10:09.000000000 +0000 +@@ -277,7 +277,7 @@ + }, + }], + ['OS=="linux" or OS=="freebsd" or OS=="openbsd" or OS=="solaris" \ +- or OS=="netbsd"', { ++ or OS=="netbsd" or OS=="haiku"', { + 'conditions': [ + [ 'v8_no_strict_aliasing==1', { + 'cflags': [ '-fno-strict-aliasing' ], +@@ -288,7 +288,7 @@ + 'defines': [ '__C99FEATURES__=1' ], # isinf() etc. + }], + ['(OS=="linux" or OS=="freebsd" or OS=="openbsd" or OS=="solaris" \ +- or OS=="netbsd" or OS=="mac" or OS=="android") and \ ++ or OS=="netbsd" or OS=="mac" or OS=="android" or OS=="haiku") and \ + (v8_target_arch=="arm" or v8_target_arch=="ia32" or \ + v8_target_arch=="mipsel")', { + # Check whether the host compiler and target compiler support the +@@ -360,7 +360,8 @@ + ['v8_enable_extra_checks==1', { + 'defines': ['ENABLE_EXTRA_CHECKS',], + }], +- ['OS=="linux" or OS=="freebsd" or OS=="openbsd" or OS=="netbsd"', { ++ ['OS=="linux" or OS=="freebsd" or OS=="openbsd" or OS=="netbsd" \ ++ or OS=="haiku"', { + 'cflags': [ '-Wall', '<(werror)', '-W', '-Wno-unused-parameter', + '-Wnon-virtual-dtor', '-Woverloaded-virtual' ], + }], +@@ -389,7 +390,7 @@ + 'defines': ['ENABLE_EXTRA_CHECKS',], + }], + ['OS=="linux" or OS=="freebsd" or OS=="openbsd" or OS=="netbsd" \ +- or OS=="android"', { ++ or OS=="android" or OS=="haiku"', { + 'cflags!': [ + '-O2', + '-Os', +diff -Naur v8-r13067/build/standalone.gypi v8-r13067-haiku/build/standalone.gypi +--- v8-r13067/build/standalone.gypi 2012-12-24 04:17:35.258473984 +0000 ++++ v8-r13067-haiku/build/standalone.gypi 2012-12-24 04:10:09.000000000 +0000 +@@ -90,7 +90,7 @@ + }, + 'conditions': [ + ['OS=="linux" or OS=="freebsd" or OS=="openbsd" or OS=="solaris" \ +- or OS=="netbsd"', { ++ or OS=="netbsd" or OS=="haiku"', { + 'target_defaults': { + 'cflags': [ '-Wall', '<(werror)', '-W', '-Wno-unused-parameter', + '-Wnon-virtual-dtor', '-pthread', '-fno-rtti', +@@ -100,6 +100,10 @@ + [ 'OS=="linux"', { + 'cflags': [ '-ansi' ], + }], ++ [ 'OS=="haiku"', { ++ 'cflags!': [ '-pthread' ], ++ 'ldflags!': [ '-pthread' ], ++ }], + [ 'visibility=="hidden"', { + 'cflags': [ '-fvisibility=hidden' ], + }], +diff -Naur v8-r13067/src/atomicops.h v8-r13067-haiku/src/atomicops.h +--- v8-r13067/src/atomicops.h 2012-12-24 04:17:34.352583680 +0000 ++++ v8-r13067-haiku/src/atomicops.h 2012-12-24 04:10:09.000000000 +0000 +@@ -69,7 +69,7 @@ + + // Use AtomicWord for a machine-sized pointer. It will use the Atomic32 or + // Atomic64 routines below, depending on your architecture. +-#if defined(__OpenBSD__) && defined(__i386__) ++#if (defined(__OpenBSD__) || defined(__HAIKU__)) && defined(__i386__) + typedef Atomic32 AtomicWord; + #else + typedef intptr_t AtomicWord; +diff -Naur v8-r13067/src/d8.gyp v8-r13067-haiku/src/d8.gyp +--- v8-r13067/src/d8.gyp 2012-12-24 04:17:34.042467328 +0000 ++++ v8-r13067-haiku/src/d8.gyp 2012-12-24 04:10:09.000000000 +0000 +@@ -62,7 +62,8 @@ + 'sources': [ 'd8-readline.cc' ], + }], + ['(OS=="linux" or OS=="mac" or OS=="freebsd" or OS=="netbsd" \ +- or OS=="openbsd" or OS=="solaris" or OS=="android")', { ++ or OS=="openbsd" or OS=="solaris" or OS=="android" \ ++ or OS=="haiku")', { + 'sources': [ 'd8-posix.cc', ] + }], + [ 'OS=="win"', { +diff -Naur v8-r13067/src/globals.h v8-r13067-haiku/src/globals.h +--- v8-r13067/src/globals.h 2012-12-24 04:17:34.246153216 +0000 ++++ v8-r13067-haiku/src/globals.h 2012-12-24 04:10:09.000000000 +0000 +@@ -178,7 +178,12 @@ + #endif + #else // V8_HOST_ARCH_64_BIT + #define V8_INTPTR_C(x) (x) ++#if defined(__HAIKU__) ++// (u)intptr_t is long on Haiku ++#define V8_PTR_PREFIX "l" ++#else + #define V8_PTR_PREFIX "" ++#endif + #endif // V8_HOST_ARCH_64_BIT + + // The following macro works on both 32 and 64-bit platforms. +diff -Naur v8-r13067/src/ia32/deoptimizer-ia32.cc v8-r13067-haiku/src/ia32/deoptimizer-ia32.cc +--- v8-r13067/src/ia32/deoptimizer-ia32.cc 2012-12-24 04:17:29.666632192 +0000 ++++ v8-r13067-haiku/src/ia32/deoptimizer-ia32.cc 2012-12-24 04:10:09.000000000 +0000 +@@ -354,7 +354,7 @@ + PrintF("[on-stack replacement: begin 0x%08" V8PRIxPTR " ", + reinterpret_cast(function_)); + function_->PrintName(); +- PrintF(" => node=%u, frame=%d->%d, ebp:esp=0x%08x:0x%08x]\n", ++ PrintF(" => node=%u, frame=%d->%d, ebp:esp=0x%08" V8PRIxPTR ":0x%08" V8PRIxPTR "]\n", + ast_id, + input_frame_size, + output_frame_size, +@@ -468,7 +468,7 @@ + ok ? "finished" : "aborted", + reinterpret_cast(function_)); + function_->PrintName(); +- PrintF(" => pc=0x%0x]\n", output_[0]->GetPc()); ++ PrintF(" => pc=0x%0" V8PRIxPTR "]\n", output_[0]->GetPc()); + } + } + +@@ -514,7 +514,7 @@ + intptr_t callers_pc = output_[frame_index - 1]->GetPc(); + output_frame->SetFrameSlot(output_offset, callers_pc); + if (FLAG_trace_deopt) { +- PrintF(" 0x%08x: [top + %d] <- 0x%08x ; caller's pc\n", ++ PrintF(" 0x%08x: [top + %d] <- 0x%08" V8PRIxPTR " ; caller's pc\n", + top_address + output_offset, output_offset, callers_pc); + } + +@@ -525,7 +525,7 @@ + intptr_t fp_value = top_address + output_offset; + output_frame->SetFp(fp_value); + if (FLAG_trace_deopt) { +- PrintF(" 0x%08x: [top + %d] <- 0x%08x ; caller's fp\n", ++ PrintF(" 0x%08" V8PRIxPTR ": [top + %d] <- 0x%08" V8PRIxPTR " ; caller's fp\n", + fp_value, output_offset, value); + } + +@@ -535,7 +535,7 @@ + Smi::FromInt(StackFrame::ARGUMENTS_ADAPTOR)); + output_frame->SetFrameSlot(output_offset, context); + if (FLAG_trace_deopt) { +- PrintF(" 0x%08x: [top + %d] <- 0x%08x ; context (adaptor sentinel)\n", ++ PrintF(" 0x%08x: [top + %d] <- 0x%08" V8PRIxPTR " ; context (adaptor sentinel)\n", + top_address + output_offset, output_offset, context); + } + +@@ -544,7 +544,7 @@ + value = reinterpret_cast(function); + output_frame->SetFrameSlot(output_offset, value); + if (FLAG_trace_deopt) { +- PrintF(" 0x%08x: [top + %d] <- 0x%08x ; function\n", ++ PrintF(" 0x%08x: [top + %d] <- 0x%08" V8PRIxPTR " ; function\n", + top_address + output_offset, output_offset, value); + } + +@@ -553,7 +553,7 @@ + value = reinterpret_cast(Smi::FromInt(height - 1)); + output_frame->SetFrameSlot(output_offset, value); + if (FLAG_trace_deopt) { +- PrintF(" 0x%08x: [top + %d] <- 0x%08x ; argc (%d)\n", ++ PrintF(" 0x%08x: [top + %d] <- 0x%08" V8PRIxPTR " ; argc (%d)\n", + top_address + output_offset, output_offset, value, height - 1); + } + +@@ -612,7 +612,7 @@ + intptr_t callers_pc = output_[frame_index - 1]->GetPc(); + output_frame->SetFrameSlot(output_offset, callers_pc); + if (FLAG_trace_deopt) { +- PrintF(" 0x%08x: [top + %d] <- 0x%08x ; caller's pc\n", ++ PrintF(" 0x%08x: [top + %d] <- 0x%08" V8PRIxPTR " ; caller's pc\n", + top_address + output_offset, output_offset, callers_pc); + } + +@@ -623,7 +623,7 @@ + intptr_t fp_value = top_address + output_offset; + output_frame->SetFp(fp_value); + if (FLAG_trace_deopt) { +- PrintF(" 0x%08x: [top + %d] <- 0x%08x ; caller's fp\n", ++ PrintF(" 0x%08" V8PRIxPTR ": [top + %d] <- 0x%08" V8PRIxPTR " ; caller's fp\n", + fp_value, output_offset, value); + } + +@@ -632,7 +632,7 @@ + value = output_[frame_index - 1]->GetContext(); + output_frame->SetFrameSlot(output_offset, value); + if (FLAG_trace_deopt) { +- PrintF(" 0x%08x: [top + %d] <- 0x%08x ; context\n", ++ PrintF(" 0x%08x: [top + %d] <- 0x%08" V8PRIxPTR " ; context\n", + top_address + output_offset, output_offset, value); + } + +@@ -641,7 +641,7 @@ + value = reinterpret_cast(Smi::FromInt(StackFrame::CONSTRUCT)); + output_frame->SetFrameSlot(output_offset, value); + if (FLAG_trace_deopt) { +- PrintF(" 0x%08x: [top + %d] <- 0x%08x ; function (construct sentinel)\n", ++ PrintF(" 0x%08x: [top + %d] <- 0x%08" V8PRIxPTR " ; function (construct sentinel)\n", + top_address + output_offset, output_offset, value); + } + +@@ -650,7 +650,7 @@ + value = reinterpret_cast(construct_stub); + output_frame->SetFrameSlot(output_offset, value); + if (FLAG_trace_deopt) { +- PrintF(" 0x%08x: [top + %d] <- 0x%08x ; code object\n", ++ PrintF(" 0x%08x: [top + %d] <- 0x%08" V8PRIxPTR " ; code object\n", + top_address + output_offset, output_offset, value); + } + +@@ -659,7 +659,7 @@ + value = reinterpret_cast(Smi::FromInt(height - 1)); + output_frame->SetFrameSlot(output_offset, value); + if (FLAG_trace_deopt) { +- PrintF(" 0x%08x: [top + %d] <- 0x%08x ; argc (%d)\n", ++ PrintF(" 0x%08x: [top + %d] <- 0x%08" V8PRIxPTR " ; argc (%d)\n", + top_address + output_offset, output_offset, value, height - 1); + } + +@@ -669,7 +669,7 @@ + value = output_frame->GetFrameSlot(output_frame_size - kPointerSize); + output_frame->SetFrameSlot(output_offset, value); + if (FLAG_trace_deopt) { +- PrintF(" 0x%08x: [top + %d] <- 0x%08x ; allocated receiver\n", ++ PrintF(" 0x%08x: [top + %d] <- 0x%08" V8PRIxPTR " ; allocated receiver\n", + top_address + output_offset, output_offset, value); + } + +@@ -894,7 +894,7 @@ + } + output_frame->SetFrameSlot(output_offset, value); + if (FLAG_trace_deopt) { +- PrintF(" 0x%08x: [top + %d] <- 0x%08x ; caller's pc\n", ++ PrintF(" 0x%08x: [top + %d] <- 0x%08" V8PRIxPTR " ; caller's pc\n", + top_address + output_offset, output_offset, value); + } + +@@ -917,7 +917,7 @@ + output_frame->SetFp(fp_value); + if (is_topmost) output_frame->SetRegister(ebp.code(), fp_value); + if (FLAG_trace_deopt) { +- PrintF(" 0x%08x: [top + %d] <- 0x%08x ; caller's fp\n", ++ PrintF(" 0x%08" V8PRIxPTR ": [top + %d] <- 0x%08" V8PRIxPTR " ; caller's fp\n", + fp_value, output_offset, value); + } + ASSERT(!is_bottommost || !has_alignment_padding_ || +@@ -937,7 +937,7 @@ + output_frame->SetContext(value); + if (is_topmost) output_frame->SetRegister(esi.code(), value); + if (FLAG_trace_deopt) { +- PrintF(" 0x%08x: [top + %d] <- 0x%08x ; context\n", ++ PrintF(" 0x%08x: [top + %d] <- 0x%08" V8PRIxPTR " ; context\n", + top_address + output_offset, output_offset, value); + } + +@@ -950,7 +950,7 @@ + ASSERT(!is_bottommost || input_->GetFrameSlot(input_offset) == value); + output_frame->SetFrameSlot(output_offset, value); + if (FLAG_trace_deopt) { +- PrintF(" 0x%08x: [top + %d] <- 0x%08x ; function\n", ++ PrintF(" 0x%08x: [top + %d] <- 0x%08" V8PRIxPTR " ; function\n", + top_address + output_offset, output_offset, value); + } + +diff -Naur v8-r13067/src/platform-haiku.cc v8-r13067-haiku/src/platform-haiku.cc +--- v8-r13067/src/platform-haiku.cc 1970-01-01 00:00:00.000000000 +0000 ++++ v8-r13067-haiku/src/platform-haiku.cc 2012-12-24 04:10:09.000000000 +0000 +@@ -0,0 +1,898 @@ ++// Copyright 2012 the V8 project authors. All rights reserved. ++// Redistribution and use in source and binary forms, with or without ++// modification, are permitted provided that the following conditions are ++// met: ++// ++// * Redistributions of source code must retain the above copyright ++// notice, this list of conditions and the following disclaimer. ++// * Redistributions in binary form must reproduce the above ++// copyright notice, this list of conditions and the following ++// disclaimer in the documentation and/or other materials provided ++// with the distribution. ++// * Neither the name of Google Inc. nor the names of its ++// contributors may be used to endorse or promote products derived ++// from this software without specific prior written permission. ++// ++// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ++// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ++// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ++// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ++// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ++// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ++// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ++// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ++// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ++// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ++// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ++ ++// Platform specific code for Haiku goes here. For the POSIX comaptible parts ++// the implementation is in platform-posix.cc. ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include // mmap & munmap ++#include // mmap & munmap ++#include // open ++#include // open ++#include // sysconf ++#include // index ++#include ++#include ++#include ++ ++#undef MAP_TYPE ++ ++#include "v8.h" ++ ++#include "platform-posix.h" ++#include "platform.h" ++#include "v8threads.h" ++#include "vm-state-inl.h" ++ ++ ++namespace v8 { ++namespace internal { ++ ++// pthread_t's are pointers to structs on Haiku ++static const pthread_t kNoThread = NULL; ++ ++ ++double ceiling(double x) { ++ return ceil(x); ++} ++ ++ ++static Mutex* limit_mutex = NULL; ++ ++ ++void OS::PostSetUp() { ++ POSIXPostSetUp(); ++} ++ ++ ++uint64_t OS::CpuFeaturesImpliedByPlatform() { ++ return 0; // Haiku runs on anything. ++} ++ ++ ++int OS::ActivationFrameAlignment() { ++ // With gcc 4.4 the tree vectorization optimizer can generate code ++ // that requires 16 byte alignment such as movdqa on x86. ++ return 16; ++} ++ ++ ++void OS::ReleaseStore(volatile AtomicWord* ptr, AtomicWord value) { ++#if (defined(V8_TARGET_ARCH_ARM) && defined(__arm__)) || \ ++ (defined(V8_TARGET_ARCH_MIPS) && defined(__mips__)) ++ // Only use on ARM or MIPS hardware. ++ MemoryBarrier(); ++#else ++ __asm__ __volatile__("" : : : "memory"); ++ // An x86 store acts as a release barrier. ++#endif ++ *ptr = value; ++} ++ ++ ++const char* OS::LocalTimezone(double time) { ++ if (isnan(time)) return ""; ++ time_t tv = static_cast(floor(time/msPerSecond)); ++ struct tm* t = localtime(&tv); ++ if (NULL == t) return ""; ++ return t->tm_zone; ++} ++ ++ ++double OS::LocalTimeOffset() { ++ time_t tv = time(NULL); ++ struct tm* t = localtime(&tv); ++ // tm_gmtoff includes any daylight savings offset, so subtract it. ++ return static_cast(t->tm_gmtoff * msPerSecond - ++ (t->tm_isdst > 0 ? 3600 * msPerSecond : 0)); ++} ++ ++ ++// We keep the lowest and highest addresses mapped as a quick way of ++// determining that pointers are outside the heap (used mostly in assertions ++// and verification). The estimate is conservative, i.e., not all addresses in ++// 'allocated' space are actually allocated to our heap. The range is ++// [lowest, highest), inclusive on the low and and exclusive on the high end. ++static void* lowest_ever_allocated = reinterpret_cast(-1); ++static void* highest_ever_allocated = reinterpret_cast(0); ++ ++ ++static void UpdateAllocatedSpaceLimits(void* address, int size) { ++ ASSERT(limit_mutex != NULL); ++ ScopedLock lock(limit_mutex); ++ ++ lowest_ever_allocated = Min(lowest_ever_allocated, address); ++ highest_ever_allocated = ++ Max(highest_ever_allocated, ++ reinterpret_cast(reinterpret_cast(address) + size)); ++} ++ ++ ++bool OS::IsOutsideAllocatedSpace(void* address) { ++ return address < lowest_ever_allocated || address >= highest_ever_allocated; ++} ++ ++ ++size_t OS::AllocateAlignment() { ++ return sysconf(_SC_PAGESIZE); ++} ++ ++ ++void* OS::Allocate(const size_t requested, ++ size_t* allocated, ++ bool is_executable) { ++ const size_t msize = RoundUp(requested, AllocateAlignment()); ++ int prot = PROT_READ | PROT_WRITE | (is_executable ? PROT_EXEC : 0); ++ void* addr = OS::GetRandomMmapAddr(); ++ void* mbase = mmap(addr, msize, prot, MAP_PRIVATE | MAP_ANONYMOUS, -1, 0); ++ if (mbase == MAP_FAILED) { ++ LOG(i::Isolate::Current(), ++ StringEvent("OS::Allocate", "mmap failed")); ++ return NULL; ++ } ++ *allocated = msize; ++ UpdateAllocatedSpaceLimits(mbase, msize); ++ return mbase; ++} ++ ++ ++void OS::Free(void* address, const size_t size) { ++ // TODO(1240712): munmap has a return value which is ignored here. ++ int result = munmap(address, size); ++ USE(result); ++ ASSERT(result == 0); ++} ++ ++ ++void OS::Sleep(int milliseconds) { ++ unsigned int ms = static_cast(milliseconds); ++ usleep(1000 * ms); ++} ++ ++ ++void OS::Abort() { ++ // Redirect to std abort to signal abnormal program termination. ++ if (FLAG_break_on_abort) { ++ DebugBreak(); ++ } ++ abort(); ++} ++ ++ ++void OS::DebugBreak() { ++// TODO(lrn): Introduce processor define for runtime system (!= V8_ARCH_x, ++// which is the architecture of generated code). ++#if (defined(__arm__) || defined(__thumb__)) ++# if defined(CAN_USE_ARMV5_INSTRUCTIONS) ++ asm("bkpt 0"); ++# endif ++#elif defined(__mips__) ++ asm("break"); ++#else ++ asm("int $3"); ++#endif ++} ++ ++ ++class PosixMemoryMappedFile : public OS::MemoryMappedFile { ++ public: ++ PosixMemoryMappedFile(FILE* file, void* memory, int size) ++ : file_(file), memory_(memory), size_(size) { } ++ virtual ~PosixMemoryMappedFile(); ++ virtual void* memory() { return memory_; } ++ virtual int size() { return size_; } ++ private: ++ FILE* file_; ++ void* memory_; ++ int size_; ++}; ++ ++ ++OS::MemoryMappedFile* OS::MemoryMappedFile::open(const char* name) { ++ FILE* file = fopen(name, "r+"); ++ if (file == NULL) return NULL; ++ ++ fseek(file, 0, SEEK_END); ++ int size = ftell(file); ++ ++ void* memory = ++ mmap(OS::GetRandomMmapAddr(), ++ size, ++ PROT_READ | PROT_WRITE, ++ MAP_SHARED, ++ fileno(file), ++ 0); ++ return new PosixMemoryMappedFile(file, memory, size); ++} ++ ++ ++OS::MemoryMappedFile* OS::MemoryMappedFile::create(const char* name, int size, ++ void* initial) { ++ FILE* file = fopen(name, "w+"); ++ if (file == NULL) return NULL; ++ int result = fwrite(initial, size, 1, file); ++ if (result < 1) { ++ fclose(file); ++ return NULL; ++ } ++ void* memory = ++ mmap(OS::GetRandomMmapAddr(), ++ size, ++ PROT_READ | PROT_WRITE, ++ MAP_SHARED, ++ fileno(file), ++ 0); ++ return new PosixMemoryMappedFile(file, memory, size); ++} ++ ++ ++PosixMemoryMappedFile::~PosixMemoryMappedFile() { ++ if (memory_) OS::Free(memory_, size_); ++ fclose(file_); ++} ++ ++ ++void OS::LogSharedLibraryAddresses() { ++ // TODO ++ // Loop through images (get_next_image_info()) and print data/text ++ // addresses. ++} ++ ++ ++void OS::SignalCodeMovingGC() { ++} ++ ++ ++int OS::StackWalk(Vector frames) { ++ // dladdr ++ return 0; ++} ++ ++// No MAP_NORESERVE on Haiku means we can't reserve without ++// committing or decommit at all. ++#define MAP_NORESERVE 0 ++ ++// Constants used for mmap. ++static const int kMmapFd = -1; ++static const int kMmapFdOffset = 0; ++ ++VirtualMemory::VirtualMemory() : address_(NULL), size_(0) { } ++ ++VirtualMemory::VirtualMemory(size_t size) { ++ address_ = ReserveRegion(size); ++ size_ = size; ++} ++ ++ ++VirtualMemory::VirtualMemory(size_t size, size_t alignment) ++ : address_(NULL), size_(0) { ++ ASSERT(IsAligned(alignment, static_cast(OS::AllocateAlignment()))); ++ size_t request_size = RoundUp(size + alignment, ++ static_cast(OS::AllocateAlignment())); ++ void* reservation = mmap(OS::GetRandomMmapAddr(), ++ request_size, ++ PROT_NONE, ++ MAP_PRIVATE | MAP_ANONYMOUS | MAP_NORESERVE, ++ kMmapFd, ++ kMmapFdOffset); ++ if (reservation == MAP_FAILED) return; ++ ++ Address base = static_cast
(reservation); ++ Address aligned_base = RoundUp(base, alignment); ++ ASSERT_LE(base, aligned_base); ++ ++ // Unmap extra memory reserved before and after the desired block. ++ if (aligned_base != base) { ++ size_t prefix_size = static_cast(aligned_base - base); ++ OS::Free(base, prefix_size); ++ request_size -= prefix_size; ++ } ++ ++ size_t aligned_size = RoundUp(size, OS::AllocateAlignment()); ++ ASSERT_LE(aligned_size, request_size); ++ ++ if (aligned_size != request_size) { ++ size_t suffix_size = request_size - aligned_size; ++ OS::Free(aligned_base + aligned_size, suffix_size); ++ request_size -= suffix_size; ++ } ++ ++ ASSERT(aligned_size == request_size); ++ ++ address_ = static_cast(aligned_base); ++ size_ = aligned_size; ++} ++ ++ ++VirtualMemory::~VirtualMemory() { ++ if (IsReserved()) { ++ bool result = ReleaseRegion(address(), size()); ++ ASSERT(result); ++ USE(result); ++ } ++} ++ ++ ++bool VirtualMemory::IsReserved() { ++ return address_ != NULL; ++} ++ ++ ++void VirtualMemory::Reset() { ++ address_ = NULL; ++ size_ = 0; ++} ++ ++ ++bool VirtualMemory::Commit(void* address, size_t size, bool is_executable) { ++ return CommitRegion(address, size, is_executable); ++} ++ ++ ++bool VirtualMemory::Uncommit(void* address, size_t size) { ++ return UncommitRegion(address, size); ++} ++ ++ ++bool VirtualMemory::Guard(void* address) { ++ OS::Guard(address, OS::CommitPageSize()); ++ return true; ++} ++ ++ ++void* VirtualMemory::ReserveRegion(size_t size) { ++ void* result = mmap(OS::GetRandomMmapAddr(), ++ size, ++ PROT_NONE, ++ MAP_PRIVATE | MAP_ANONYMOUS | MAP_NORESERVE, ++ kMmapFd, ++ kMmapFdOffset); ++ ++ if (result == MAP_FAILED) return NULL; ++ ++ return result; ++} ++ ++ ++bool VirtualMemory::CommitRegion(void* base, size_t size, bool is_executable) { ++ int prot = PROT_READ | PROT_WRITE | (is_executable ? PROT_EXEC : 0); ++ if (MAP_FAILED == mmap(base, ++ size, ++ prot, ++ MAP_PRIVATE | MAP_ANONYMOUS | MAP_FIXED, ++ kMmapFd, ++ kMmapFdOffset)) { ++ return false; ++ } ++ ++ UpdateAllocatedSpaceLimits(base, size); ++ return true; ++} ++ ++ ++bool VirtualMemory::UncommitRegion(void* base, size_t size) { ++ return mmap(base, ++ size, ++ PROT_NONE, ++ MAP_PRIVATE | MAP_ANONYMOUS | MAP_NORESERVE | MAP_FIXED, ++ kMmapFd, ++ kMmapFdOffset) != MAP_FAILED; ++} ++ ++ ++bool VirtualMemory::ReleaseRegion(void* base, size_t size) { ++ return munmap(base, size) == 0; ++} ++ ++ ++bool VirtualMemory::HasLazyCommits() { ++ return true; ++} ++ ++ ++class Thread::PlatformData : public Malloced { ++ public: ++ PlatformData() : thread_(kNoThread) {} ++ ++ pthread_t thread_; // Thread handle for pthread. ++}; ++ ++Thread::Thread(const Options& options) ++ : data_(new PlatformData()), ++ stack_size_(options.stack_size()) { ++ set_name(options.name()); ++} ++ ++ ++Thread::~Thread() { ++ delete data_; ++} ++ ++ ++static void* ThreadEntry(void* arg) { ++ Thread* thread = reinterpret_cast(arg); ++ thread->data()->thread_ = pthread_self(); ++ ASSERT(thread->data()->thread_ != kNoThread); ++ thread->Run(); ++ return NULL; ++} ++ ++ ++void Thread::set_name(const char* name) { ++ strncpy(name_, name, sizeof(name_)); ++ name_[sizeof(name_) - 1] = '\0'; ++} ++ ++ ++void Thread::Start() { ++ pthread_attr_t* attr_ptr = NULL; ++ pthread_attr_t attr; ++ if (stack_size_ > 0) { ++ pthread_attr_init(&attr); ++ pthread_attr_setstacksize(&attr, static_cast(stack_size_)); ++ attr_ptr = &attr; ++ } ++ int result = pthread_create(&data_->thread_, attr_ptr, ThreadEntry, this); ++ CHECK_EQ(0, result); ++ ASSERT(data_->thread_ != kNoThread); ++} ++ ++ ++void Thread::Join() { ++ pthread_join(data_->thread_, NULL); ++} ++ ++ ++Thread::LocalStorageKey Thread::CreateThreadLocalKey() { ++ pthread_key_t key; ++ int result = pthread_key_create(&key, NULL); ++ USE(result); ++ ASSERT(result == 0); ++ return static_cast(key); ++} ++ ++ ++void Thread::DeleteThreadLocalKey(LocalStorageKey key) { ++ pthread_key_t pthread_key = static_cast(key); ++ int result = pthread_key_delete(pthread_key); ++ USE(result); ++ ASSERT(result == 0); ++} ++ ++ ++void* Thread::GetThreadLocal(LocalStorageKey key) { ++ pthread_key_t pthread_key = static_cast(key); ++ return pthread_getspecific(pthread_key); ++} ++ ++ ++void Thread::SetThreadLocal(LocalStorageKey key, void* value) { ++ pthread_key_t pthread_key = static_cast(key); ++ pthread_setspecific(pthread_key, value); ++} ++ ++ ++void Thread::YieldCPU() { ++ sched_yield(); ++} ++ ++ ++class HaikuMutex : public Mutex { ++ public: ++ HaikuMutex() { ++ pthread_mutexattr_t attrs; ++ int result = pthread_mutexattr_init(&attrs); ++ ASSERT(result == 0); ++ result = pthread_mutexattr_settype(&attrs, PTHREAD_MUTEX_RECURSIVE); ++ ASSERT(result == 0); ++ result = pthread_mutex_init(&mutex_, &attrs); ++ ASSERT(result == 0); ++ USE(result); ++ } ++ ++ virtual ~HaikuMutex() { pthread_mutex_destroy(&mutex_); } ++ ++ virtual int Lock() { ++ int result = pthread_mutex_lock(&mutex_); ++ return result; ++ } ++ ++ virtual int Unlock() { ++ int result = pthread_mutex_unlock(&mutex_); ++ return result; ++ } ++ ++ virtual bool TryLock() { ++ int result = pthread_mutex_trylock(&mutex_); ++ // Return false if the lock is busy and locking failed. ++ if (result == EBUSY) { ++ return false; ++ } ++ ASSERT(result == 0); // Verify no other errors. ++ return true; ++ } ++ ++ private: ++ pthread_mutex_t mutex_; // Pthread mutex for POSIX platforms. ++}; ++ ++ ++Mutex* OS::CreateMutex() { ++ return new HaikuMutex(); ++} ++ ++ ++class HaikuSemaphore : public Semaphore { ++ public: ++ explicit HaikuSemaphore(int count) { sem_ = create_sem(count, ""); } ++ virtual ~HaikuSemaphore() { delete_sem(sem_); } ++ ++ virtual void Wait(); ++ virtual bool Wait(int timeout); ++ virtual void Signal() { release_sem(sem_); } ++ private: ++ sem_id sem_; ++}; ++ ++ ++void HaikuSemaphore::Wait() { ++ while (true) { ++ int result = acquire_sem(sem_); ++ if (result == B_NO_ERROR) return; // Successfully got semaphore. ++ CHECK(result == B_INTERRUPTED); // Signal caused spurious wakeup. ++ } ++} ++ ++ ++#ifndef TIMEVAL_TO_TIMESPEC ++#define TIMEVAL_TO_TIMESPEC(tv, ts) do { \ ++ (ts)->tv_sec = (tv)->tv_sec; \ ++ (ts)->tv_nsec = (tv)->tv_usec * 1000; \ ++} while (false) ++#endif ++ ++ ++bool HaikuSemaphore::Wait(int timeout) { ++ // Wait for semaphore signalled or timeout. ++ while (true) { ++ int result = acquire_sem_etc(sem_, 1, B_RELATIVE_TIMEOUT, timeout); ++ if (result == B_NO_ERROR) return true; // Successfully got semaphore. ++ if (result == B_TIMED_OUT || result == B_WOULD_BLOCK) return false; // Timeout. ++ CHECK(result == B_INTERRUPTED); // Signal caused spurious wakeup. ++ } ++} ++ ++ ++Semaphore* OS::CreateSemaphore(int count) { ++ return new HaikuSemaphore(count); ++} ++ ++ ++static pthread_t GetThreadID() { ++ return pthread_self(); ++} ++ ++ ++static void ProfilerSignalHandler(int signal, siginfo_t* info, void* context) { ++ USE(info); ++ if (signal != SIGPROF) return; ++ ++ Isolate* isolate = Isolate::UncheckedCurrent(); ++ if (isolate == NULL || !isolate->IsInitialized() || !isolate->IsInUse()) { ++ // We require a fully initialized and entered isolate. ++ return; ++ } ++ if (v8::Locker::IsActive() && ++ !isolate->thread_manager()->IsLockedByCurrentThread()) { ++ return; ++ } ++ ++ Sampler* sampler = isolate->logger()->sampler(); ++ if (sampler == NULL || !sampler->IsActive()) return; ++ ++ TickSample sample_obj; ++ TickSample* sample = CpuProfiler::StartTickSampleEvent(isolate); ++ if (sample == NULL) sample = &sample_obj; ++ ++ // Extracting the sample from the context is extremely machine dependent. ++ ucontext_t* ucontext = reinterpret_cast(context); ++ mcontext_t& mcontext = ucontext->uc_mcontext; ++ sample->state = isolate->current_vm_state(); ++#if V8_HOST_ARCH_IA32 ++ sample->pc = reinterpret_cast
(mcontext.eip); ++ sample->sp = reinterpret_cast
(mcontext.esp); ++ sample->fp = reinterpret_cast
(mcontext.ebp); ++#elif V8_HOST_ARCH_X64 ++ sample->pc = reinterpret_cast
(mcontext.rip); ++ sample->sp = reinterpret_cast
(mcontext.rsp); ++ sample->fp = reinterpret_cast
(mcontext.rbp); ++#elif V8_HOST_ARCH_ARM ++ sample->pc = reinterpret_cast
(mcontext.r15); ++ sample->sp = reinterpret_cast
(mcontext.r13); ++ sample->fp = reinterpret_cast
(mcontext.r11); ++#elif V8_HOST_ARCH_MIPS ++ #error TODO ++#endif // V8_HOST_ARCH_* ++ sampler->SampleStack(sample); ++ sampler->Tick(sample); ++ CpuProfiler::FinishTickSampleEvent(isolate); ++} ++ ++ ++class CpuProfilerSignalHandler { ++ public: ++ static void SetUp() { if (!mutex_) mutex_ = OS::CreateMutex(); } ++ static void TearDown() { delete mutex_; } ++ ++ static void InstallSignalHandler() { ++ struct sigaction sa; ++ ScopedLock lock(mutex_); ++ if (signal_handler_installed_counter_ > 0) { ++ signal_handler_installed_counter_++; ++ return; ++ } ++ sa.sa_sigaction = ProfilerSignalHandler; ++ sigemptyset(&sa.sa_mask); ++ sa.sa_flags = SA_RESTART | SA_SIGINFO; ++ if (sigaction(SIGPROF, &sa, &old_signal_handler_) == 0) { ++ signal_handler_installed_counter_++; ++ } ++ } ++ ++ static void RestoreSignalHandler() { ++ ScopedLock lock(mutex_); ++ if (signal_handler_installed_counter_ == 0) ++ return; ++ if (signal_handler_installed_counter_ == 1) { ++ sigaction(SIGPROF, &old_signal_handler_, 0); ++ } ++ signal_handler_installed_counter_--; ++ } ++ ++ static bool signal_handler_installed() { ++ return signal_handler_installed_counter_ > 0; ++ } ++ ++ private: ++ static int signal_handler_installed_counter_; ++ static struct sigaction old_signal_handler_; ++ static Mutex* mutex_; ++}; ++ ++ ++int CpuProfilerSignalHandler::signal_handler_installed_counter_ = 0; ++struct sigaction CpuProfilerSignalHandler::old_signal_handler_; ++Mutex* CpuProfilerSignalHandler::mutex_ = NULL; ++ ++ ++class Sampler::PlatformData : public Malloced { ++ public: ++ PlatformData() : vm_tid_(GetThreadID()) {} ++ ++ void SendProfilingSignal() { ++ if (!CpuProfilerSignalHandler::signal_handler_installed()) return; ++ pthread_kill(vm_tid_, SIGPROF); ++ } ++ ++ private: ++ const pthread_t vm_tid_; ++}; ++ ++ ++class SignalSender : public Thread { ++ public: ++ enum SleepInterval { ++ HALF_INTERVAL, ++ FULL_INTERVAL ++ }; ++ ++ static const int kSignalSenderStackSize = 64 * KB; ++ ++ explicit SignalSender(int interval) ++ : Thread(Thread::Options("SignalSender", kSignalSenderStackSize)), ++ interval_(interval) {} ++ ++ static void SetUp() { if (!mutex_) mutex_ = OS::CreateMutex(); } ++ static void TearDown() { delete mutex_; } ++ ++ static void AddActiveSampler(Sampler* sampler) { ++ ScopedLock lock(mutex_); ++ SamplerRegistry::AddActiveSampler(sampler); ++ if (instance_ == NULL) { ++ // Start a thread that will send SIGPROF signal to VM threads, ++ // when CPU profiling will be enabled. ++ instance_ = new SignalSender(sampler->interval()); ++ instance_->Start(); ++ } else { ++ ASSERT(instance_->interval_ == sampler->interval()); ++ } ++ } ++ ++ static void RemoveActiveSampler(Sampler* sampler) { ++ ScopedLock lock(mutex_); ++ SamplerRegistry::RemoveActiveSampler(sampler); ++ if (SamplerRegistry::GetState() == SamplerRegistry::HAS_NO_SAMPLERS) { ++ RuntimeProfiler::StopRuntimeProfilerThreadBeforeShutdown(instance_); ++ delete instance_; ++ instance_ = NULL; ++ } ++ } ++ ++ // Implement Thread::Run(). ++ virtual void Run() { ++ SamplerRegistry::State state; ++ while ((state = SamplerRegistry::GetState()) != ++ SamplerRegistry::HAS_NO_SAMPLERS) { ++ bool cpu_profiling_enabled = ++ (state == SamplerRegistry::HAS_CPU_PROFILING_SAMPLERS); ++ bool runtime_profiler_enabled = RuntimeProfiler::IsEnabled(); ++ // When CPU profiling is enabled both JavaScript and C++ code is ++ // profiled. We must not suspend. ++ if (!cpu_profiling_enabled) { ++ if (rate_limiter_.SuspendIfNecessary()) continue; ++ } ++ if (cpu_profiling_enabled && runtime_profiler_enabled) { ++ if (!SamplerRegistry::IterateActiveSamplers(&DoCpuProfile, NULL)) { ++ return; ++ } ++ Sleep(HALF_INTERVAL); ++ if (!SamplerRegistry::IterateActiveSamplers(&DoRuntimeProfile, NULL)) { ++ return; ++ } ++ Sleep(HALF_INTERVAL); ++ } else { ++ if (cpu_profiling_enabled) { ++ if (!SamplerRegistry::IterateActiveSamplers(&DoCpuProfile, NULL)) { ++ return; ++ } ++ } ++ if (runtime_profiler_enabled) { ++ if (!SamplerRegistry::IterateActiveSamplers(&DoRuntimeProfile, ++ NULL)) { ++ return; ++ } ++ } ++ Sleep(FULL_INTERVAL); ++ } ++ } ++ } ++ ++ static void DoCpuProfile(Sampler* sampler, void*) { ++ if (!sampler->IsProfiling()) return; ++ sampler->platform_data()->SendProfilingSignal(); ++ } ++ ++ static void DoRuntimeProfile(Sampler* sampler, void* ignored) { ++ if (!sampler->isolate()->IsInitialized()) return; ++ sampler->isolate()->runtime_profiler()->NotifyTick(); ++ } ++ ++ void Sleep(SleepInterval full_or_half) { ++ // Convert ms to us and subtract 100 us to compensate delays ++ // occuring during signal delivery. ++ useconds_t interval = interval_ * 1000 - 100; ++ if (full_or_half == HALF_INTERVAL) interval /= 2; ++ int result = usleep(interval); ++#ifdef DEBUG ++ if (result != 0 && errno != EINTR) { ++ fprintf(stderr, ++ "SignalSender usleep error; interval = %lu, errno = %d\n", ++ interval, ++ errno); ++ ASSERT(result == 0 || errno == EINTR); ++ } ++#endif ++ USE(result); ++ } ++ ++ const int interval_; ++ RuntimeProfilerRateLimiter rate_limiter_; ++ ++ // Protects the process wide state below. ++ static Mutex* mutex_; ++ static SignalSender* instance_; ++ ++ private: ++ DISALLOW_COPY_AND_ASSIGN(SignalSender); ++}; ++ ++ ++Mutex* SignalSender::mutex_ = NULL; ++SignalSender* SignalSender::instance_ = NULL; ++ ++ ++void OS::SetUp() { ++ // Seed the random number generator. We preserve microsecond resolution. ++ uint64_t seed = Ticks() ^ (getpid() << 16); ++ srandom(static_cast(seed)); ++ limit_mutex = CreateMutex(); ++ ++ SignalSender::SetUp(); ++ CpuProfilerSignalHandler::SetUp(); ++} ++ ++ ++void OS::TearDown() { ++ SignalSender::TearDown(); ++ CpuProfilerSignalHandler::TearDown(); ++ delete limit_mutex; ++} ++ ++ ++Sampler::Sampler(Isolate* isolate, int interval) ++ : isolate_(isolate), ++ interval_(interval), ++ profiling_(false), ++ active_(false), ++ has_processing_thread_(false), ++ samples_taken_(0) { ++ data_ = new PlatformData; ++} ++ ++ ++Sampler::~Sampler() { ++ ASSERT(!IsActive()); ++ delete data_; ++} ++ ++ ++void Sampler::DoSample() { ++ platform_data()->SendProfilingSignal(); ++} ++ ++ ++void Sampler::Start() { ++ ASSERT(!IsActive()); ++ SetActive(true); ++ SignalSender::AddActiveSampler(this); ++} ++ ++ ++void Sampler::Stop() { ++ ASSERT(IsActive()); ++ SignalSender::RemoveActiveSampler(this); ++ SetActive(false); ++} ++ ++ ++void Sampler::StartSampling() { ++ CpuProfilerSignalHandler::InstallSignalHandler(); ++} ++ ++ ++void Sampler::StopSampling() { ++ CpuProfilerSignalHandler::RestoreSignalHandler(); ++} ++ ++ ++} } // namespace v8::internal +diff -Naur v8-r13067/src/platform.h v8-r13067-haiku/src/platform.h +--- v8-r13067/src/platform.h 2012-12-24 04:17:34.145227776 +0000 ++++ v8-r13067-haiku/src/platform.h 2012-12-24 04:10:09.000000000 +0000 +@@ -96,6 +96,10 @@ + + #endif // WIN32 + ++#ifdef __HAIKU__ ++#define isless(x, y) __builtin_isless(x, y) ++#endif // __HAIKU__ ++ + #include "atomicops.h" + #include "lazy-instance.h" + #include "platform-tls.h" +@@ -107,7 +111,7 @@ + + // Use AtomicWord for a machine-sized pointer. It is assumed that + // reads and writes of naturally aligned values of this type are atomic. +-#if defined(__OpenBSD__) && defined(__i386__) ++#if (defined(__OpenBSD__) || defined(__HAIKU__)) && defined(__i386__) + typedef Atomic32 AtomicWord; + #else + typedef intptr_t AtomicWord; +diff -Naur v8-r13067/tools/android-run.py v8-r13067-haiku/tools/android-run.py +--- v8-r13067/tools/android-run.py 2012-12-24 04:17:38.883425280 +0000 ++++ v8-r13067-haiku/tools/android-run.py 2012-12-24 04:12:45.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + # + # Copyright 2012 the V8 project authors. All rights reserved. + # Redistribution and use in source and binary forms, with or without +diff -Naur v8-r13067/tools/disasm.py v8-r13067-haiku/tools/disasm.py +--- v8-r13067/tools/disasm.py 2012-12-24 04:17:38.872939520 +0000 ++++ v8-r13067-haiku/tools/disasm.py 2012-12-24 04:12:53.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + # + # Copyright 2011 the V8 project authors. All rights reserved. + # Redistribution and use in source and binary forms, with or without +diff -Naur v8-r13067/tools/gc-nvp-trace-processor.py v8-r13067-haiku/tools/gc-nvp-trace-processor.py +--- v8-r13067/tools/gc-nvp-trace-processor.py 2012-12-24 04:17:38.844103680 +0000 ++++ v8-r13067-haiku/tools/gc-nvp-trace-processor.py 2012-12-24 04:13:09.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + # + # Copyright 2010 the V8 project authors. All rights reserved. + # Redistribution and use in source and binary forms, with or without +diff -Naur v8-r13067/tools/gen-postmortem-metadata.py v8-r13067-haiku/tools/gen-postmortem-metadata.py +--- v8-r13067/tools/gen-postmortem-metadata.py 2012-12-24 04:17:38.834142208 +0000 ++++ v8-r13067-haiku/tools/gen-postmortem-metadata.py 2012-12-24 04:13:24.000000000 +0000 +@@ -1,5 +1,4 @@ +-#!/usr/bin/env python +- ++#!/boot/common/bin/python + # + # Copyright 2012 the V8 project authors. All rights reserved. + # Redistribution and use in source and binary forms, with or without +diff -Naur v8-r13067/tools/grokdump.py v8-r13067-haiku/tools/grokdump.py +--- v8-r13067/tools/grokdump.py 2012-12-24 04:17:38.750780416 +0000 ++++ v8-r13067-haiku/tools/grokdump.py 2012-12-24 04:13:35.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + # + # Copyright 2012 the V8 project authors. All rights reserved. + # Redistribution and use in source and binary forms, with or without +diff -Naur v8-r13067/tools/gyp/v8.gyp v8-r13067-haiku/tools/gyp/v8.gyp +--- v8-r13067/tools/gyp/v8.gyp 2012-12-24 04:17:38.516161536 +0000 ++++ v8-r13067-haiku/tools/gyp/v8.gyp 2012-12-24 04:10:09.000000000 +0000 +@@ -743,6 +743,17 @@ + 'libraries': [ '-lwinmm.lib', '-lws2_32.lib' ], + }, + }], ++ ['OS=="haiku"', { ++ 'link_settings': { ++ 'libraries': [ ++ '-lnetwork', ++ ]}, ++ 'sources': [ ++ '../../src/platform-haiku.cc', ++ '../../src/platform-posix.cc', ++ ], ++ } ++ ], + ['component=="shared_library"', { + 'defines': [ + 'BUILDING_V8_SHARED', +diff -Naur v8-r13067/tools/js2c.py v8-r13067-haiku/tools/js2c.py +--- v8-r13067/tools/js2c.py 2012-12-24 04:17:38.776470528 +0000 ++++ v8-r13067-haiku/tools/js2c.py 2012-12-24 04:13:42.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + # + # Copyright 2012 the V8 project authors. All rights reserved. + # Redistribution and use in source and binary forms, with or without +diff -Naur v8-r13067/tools/ll_prof.py v8-r13067-haiku/tools/ll_prof.py +--- v8-r13067/tools/ll_prof.py 2012-12-24 04:17:38.824442880 +0000 ++++ v8-r13067-haiku/tools/ll_prof.py 2012-12-24 04:15:04.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + # + # Copyright 2012 the V8 project authors. All rights reserved. + # Redistribution and use in source and binary forms, with or without +diff -Naur v8-r13067/tools/presubmit.py v8-r13067-haiku/tools/presubmit.py +--- v8-r13067/tools/presubmit.py 2012-12-24 04:17:38.800063488 +0000 ++++ v8-r13067-haiku/tools/presubmit.py 2012-12-24 04:15:09.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + # + # Copyright 2012 the V8 project authors. All rights reserved. + # Redistribution and use in source and binary forms, with or without +diff -Naur v8-r13067/tools/process-heap-prof.py v8-r13067-haiku/tools/process-heap-prof.py +--- v8-r13067/tools/process-heap-prof.py 2012-12-24 04:17:38.827588608 +0000 ++++ v8-r13067-haiku/tools/process-heap-prof.py 2012-12-24 04:15:13.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + # + # Copyright 2009 the V8 project authors. All rights reserved. + # Redistribution and use in source and binary forms, with or without +diff -Naur v8-r13067/tools/run-tests.py v8-r13067-haiku/tools/run-tests.py +--- v8-r13067/tools/run-tests.py 2012-12-24 04:17:38.779878400 +0000 ++++ v8-r13067-haiku/tools/run-tests.py 2012-12-24 04:15:19.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + # + # Copyright 2012 the V8 project authors. All rights reserved. + # Redistribution and use in source and binary forms, with or without +diff -Naur v8-r13067/tools/stats-viewer.py v8-r13067-haiku/tools/stats-viewer.py +--- v8-r13067/tools/stats-viewer.py 2012-12-24 04:17:38.831258624 +0000 ++++ v8-r13067-haiku/tools/stats-viewer.py 2012-12-24 04:15:24.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + # + # Copyright 2008 the V8 project authors. All rights reserved. + # Redistribution and use in source and binary forms, with or without +diff -Naur v8-r13067/tools/status-file-converter.py v8-r13067-haiku/tools/status-file-converter.py +--- v8-r13067/tools/status-file-converter.py 2012-12-24 04:17:38.783024128 +0000 ++++ v8-r13067-haiku/tools/status-file-converter.py 2012-12-24 04:15:29.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + # + # Copyright 2012 the V8 project authors. All rights reserved. + # Redistribution and use in source and binary forms, with or without +diff -Naur v8-r13067/tools/test-server.py v8-r13067-haiku/tools/test-server.py +--- v8-r13067/tools/test-server.py 2012-12-24 04:17:38.890503168 +0000 ++++ v8-r13067-haiku/tools/test-server.py 2012-12-24 04:15:37.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + # + # Copyright 2012 the V8 project authors. All rights reserved. + # Redistribution and use in source and binary forms, with or without +diff -Naur v8-r13067/tools/test-wrapper-gypbuild.py v8-r13067-haiku/tools/test-wrapper-gypbuild.py +--- v8-r13067/tools/test-wrapper-gypbuild.py 2012-12-24 04:17:38.796393472 +0000 ++++ v8-r13067-haiku/tools/test-wrapper-gypbuild.py 2012-12-24 04:15:43.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + # + # Copyright 2012 the V8 project authors. All rights reserved. + # Redistribution and use in source and binary forms, with or without +diff -Naur v8-r13067/tools/test.py v8-r13067-haiku/tools/test.py +--- v8-r13067/tools/test.py 2012-12-24 04:17:38.870318080 +0000 ++++ v8-r13067-haiku/tools/test.py 2012-12-24 04:15:49.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + # + # Copyright 2012 the V8 project authors. All rights reserved. + # Redistribution and use in source and binary forms, with or without +diff -Naur v8-r13067/tools/testrunner/server/daemon.py v8-r13067-haiku/tools/testrunner/server/daemon.py +--- v8-r13067/tools/testrunner/server/daemon.py 2012-12-24 04:17:37.866910208 +0000 ++++ v8-r13067-haiku/tools/testrunner/server/daemon.py 2012-12-24 04:15:57.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/boot/common/bin/python + + # This code has been written by Sander Marechal and published at: + # http://www.jejik.com/articles/2007/02/a_simple_unix_linux_daemon_in_python/ +diff -Naur v8-r13067/tools/utils.py v8-r13067-haiku/tools/utils.py +--- v8-r13067/tools/utils.py 2012-12-24 04:17:38.839647232 +0000 ++++ v8-r13067-haiku/tools/utils.py 2012-12-24 04:10:09.000000000 +0000 +@@ -63,6 +63,8 @@ + return 'solaris' + elif id == 'NetBSD': + return 'netbsd' ++ elif id == 'Haiku': ++ return 'haiku' + else: + return None + +@@ -83,6 +85,8 @@ + return 'ia32' + elif id == 'amd64': + return 'ia32' ++ elif id == 'BePC': ++ return 'ia32' + else: + return None + diff --git a/dev-lang/v8/v8-r13067.bep b/dev-lang/v8/v8-r13067.bep new file mode 100644 index 000000000..39ac947e2 --- /dev/null +++ b/dev-lang/v8/v8-r13067.bep @@ -0,0 +1,46 @@ +DESCRIPTION="V8 is Google's open source JavaScript engine." +HOMEPAGE="https://code.google.com/p/v8/" +SRC_URI="svn+http://v8.googlecode.com/svn/trunk/#13067" +REVISION="1" +STATUS_HAIKU="unstable" +DEPEND="" +#CHECKSUM_MD5="" +MESSAGE="This port only builds with gcc4. Use 'setgcc gcc4' before building." +BUILD { + gyp_patch_path=$(dirname ${PWD})/patches/gyp-r1501.patch + cd v8-r13067 + cd build + svn co http://gyp.googlecode.com/svn/trunk/@1501 gyp + cd gyp + patch -p1 -i $gyp_patch_path + cd ../.. + make library=shared ia32.debug +} + +TEST { + cd v8-r13067 + make ia32.debug.check +} + +INSTALL { + cd v8-r13067 + includedir=${DESTDIR}/`finddir B_COMMON_HEADERS_DIRECTORY`/v8 + mkdir -p ${includedir} + cp -R ./include/* ${includedir} + libdir=${DESTDIR}/`finddir B_COMMON_LIB_DIRECTORY` + mkdir -p ${libdir} + cp -R ./out/ia32.debug/obj.target/tools/gyp/*.a ${libdir} + cp -R ./out/ia32.debug/obj.target/tools/gyp/*.so ${libdir} + bindir=${DESTDIR}/`finddir B_COMMON_BIN_DIRECTORY`/v8 + mkdir -p ${bindir} + cp ./out/ia32.debug/cctest ${bindir} + cp ./out/ia32.debug/d8 ${bindir} + cp ./out/ia32.debug/lineprocessor ${bindir} + cp ./out/ia32.debug/mksnapshot ${bindir} + cp ./out/ia32.debug/preparser ${bindir} + cp ./out/ia32.debug/process ${bindir} + cp ./out/ia32.debug/shell ${bindir} +} + +LICENSE="BSD (3-clause)" +COPYRIGHT="2006-2012 The V8 Project Authors" diff --git a/dev-lang/yasm/patches/yasm-0.7.1.patch b/dev-lang/yasm/patches/yasm-0.7.1.patch deleted file mode 100644 index a108e7eb8..000000000 --- a/dev-lang/yasm/patches/yasm-0.7.1.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -urN yasm-0.7.1/util.h yasm-0.7.1-haiku/util.h ---- yasm-0.7.1/util.h 2008-05-15 01:35:11.000000000 +0000 -+++ yasm-0.7.1-haiku/util.h 2008-09-26 11:19:12.000000000 +0000 -@@ -116,7 +116,7 @@ - # define USE_OUR_OWN_STRCASECMP - #endif - --#if !defined(HAVE_TOASCII) || defined(lint) -+#if (!defined(HAVE_TOASCII) || defined(lint)) && !defined(__HAIKU__) - # define toascii(c) ((c) & 0x7F) - #endif - diff --git a/dev-lang/yasm/yasm-0.7.1.bep b/dev-lang/yasm/yasm-0.7.1.bep deleted file mode 100644 index 511f0eeb9..000000000 --- a/dev-lang/yasm/yasm-0.7.1.bep +++ /dev/null @@ -1,25 +0,0 @@ -DESCRIPTION="Yasm assembler" -HOMEPAGE="http://www.tortall.net/projects/yasm/" -SRC_URI="http://www.tortall.net/projects/yasm/releases/yasm-0.7.1.tar.gz" -CHECKSUM_MD5="fce21d066f4d04e3ec7f9318e6446e2b" -REVISION="1" -STATUS_HAIKU="stable" -DEPEND="" -BUILD { - cd yasm-0.7.1 - cp /boot/common/share/libtool/config/config.guess config/. - cp /boot/common/share/libtool/config/config.sub config/. - ./configure --prefix=/boot/common LDFLAGS=-L/boot/common/lib CPPFLAG=-I/boot/common/include - make -} - -INSTALL { - cd yasm-0.7.1 - make install -} -LICENSE="Artistic - BSD (2-clause) - BSD (3-clause) - GNU GPL v2 - GNU LGPL v2" -COPYRIGHT="2001-2009 Peter Johnson and other Yasm developers." diff --git a/dev-lang/yasm/yasm-0.8.0.bep b/dev-lang/yasm/yasm-0.8.0.bep deleted file mode 100644 index 7e395abba..000000000 --- a/dev-lang/yasm/yasm-0.8.0.bep +++ /dev/null @@ -1,27 +0,0 @@ -DESCRIPTION="Yasm assembler" -HOMEPAGE="http://www.tortall.net/projects/yasm/" -SRC_URI="http://www.tortall.net/projects/yasm/releases/yasm-0.8.0.tar.gz" -CHECKSUM_MD5="84a72204c9b452a00b39b1b00495163f" -REVISION="1" -STATUS_HAIKU="stable" -DEPEND="" -BUILD { - cd yasm-0.8.0 - cp /boot/common/share/libtool/config/config.guess config/. - cp /boot/common/share/libtool/config/config.sub config/. - ./configure --prefix=/boot/common \ - LDFLAGS=-L/boot/common/lib \ - CPPFLAG=-I/boot/common/include - make -} - -INSTALL { - cd yasm-0.8.0 - make install -} -LICENSE="Artistic - BSD (2-clause) - BSD (3-clause) - GNU GPL v2 - GNU LGPL v2" -COPYRIGHT="2001-2009 Peter Johnson and other Yasm developers." diff --git a/dev-lang/yasm/yasm-1.1.0.bep b/dev-lang/yasm/yasm-1.1.0.bep index fd399006c..d808cf8c5 100644 --- a/dev-lang/yasm/yasm-1.1.0.bep +++ b/dev-lang/yasm/yasm-1.1.0.bep @@ -1,5 +1,5 @@ -DESCRIPTION="Yasm assembler" -HOMEPAGE="http://www.tortall.net/projects/yasm/" +DESCRIPTION="Yasm assembler" +HOMEPAGE="http://www.tortall.net/projects/yasm/" SRC_URI="http://www.tortall.net/projects/yasm/releases/yasm-1.1.0.tar.gz" CHECKSUM_MD5="8392e5f2235c2c2a981e1a633f2698cb" REVISION="1" @@ -8,7 +8,10 @@ DEPEND="" BUILD { cd yasm-1.1.0 libtoolize --force --copy --install - ./configure --prefix=/boot/common + COMMON_DOCS=`finddir B_COMMON_DOCUMENTATION_DIRECTORY` + ./configure --prefix=`finddir B_COMMON_DIRECTORY` \ + --mandir=$COMMON_DOCS/man \ + --disable-nls make } @@ -16,6 +19,7 @@ INSTALL { cd yasm-1.1.0 make install } + LICENSE="Artistic BSD (2-clause) BSD (3-clause) diff --git a/dev-lang/yasm/yasm-1.2.0.bep b/dev-lang/yasm/yasm-1.2.0.bep new file mode 100644 index 000000000..4e556013f --- /dev/null +++ b/dev-lang/yasm/yasm-1.2.0.bep @@ -0,0 +1,28 @@ +DESCRIPTION="Yasm assembler" +HOMEPAGE="http://www.tortall.net/projects/yasm/" +SRC_URI="http://www.tortall.net/projects/yasm/releases/yasm-1.2.0.tar.gz" +CHECKSUM_MD5="4cfc0686cf5350dd1305c4d905eb55a6" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="" +BUILD { + cd yasm-1.2.0 + libtoolize --force --copy --install + COMMON_DOCS=`finddir B_COMMON_DOCUMENTATION_DIRECTORY` + ./configure --prefix=`finddir B_COMMON_DIRECTORY` \ + --mandir=$COMMON_DOCS/man \ + --disable-nls + make +} + +INSTALL { + cd yasm-1.2.0 + make install +} + +LICENSE="Artistic + BSD (2-clause) + BSD (3-clause) + GNU GPL v2 + GNU LGPL v2" +COPYRIGHT="2001-2011 Peter Johnson and other Yasm developers." diff --git a/dev-libs/apr-util/apr-util-1.3.11.bep b/dev-libs/apr-util/apr-util-1.3.11.bep new file mode 100644 index 000000000..0c3e85385 --- /dev/null +++ b/dev-libs/apr-util/apr-util-1.3.11.bep @@ -0,0 +1,49 @@ +DESCRIPTION="apr-util - Apache Portable Runtime Utility Library" +HOMEPAGE="http://apr.apache.org/" +SRC_URI="http://archive.apache.org/dist/apr/apr-util-1.3.11.tar.gz" +CHECKSUM_MD5="bfc16065a784785dd356dc4067fe2504" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="dev-libs/apr >= 1.3.9" +BUILD { + cd apr-util-1.3.11 + rm -rf aclocal.m4 + mkdir -p m4 + haikuporter -b apr-1.4.2 + libtoolize -fci + aclocal --install -I m4 + autoconf -f + cd xml/expat + mkdir -p m4 + echo `AM_INIT_AUTOMAKE` >> configure.in + libtoolize -fci + aclocal --install -I m4 + autoconf --force + autoheader + touch libtool.m4 + cd ../.. + sed -i 's/\/usr\/bin\/env/\/bin\/env/' `haikuporter -t`/dev-libs/apr/work/apr-1.4.2/build/gen-build.py + buildconf --with-apr=`haikuporter -t`/dev-libs/apr/work/apr-1.4.2 \ + --prefix=`finddir B_COMMON_DIRECTORY` + ln -sf `finddir B_COMMON_BIN_DIRECTORY`/libtool ./libtool + ./configure --prefix=`finddir B_COMMON_DIRECTORY` \ + --bindir=`finddir B_COMMON_BIN_DIRECTORY` \ + --sbindir=`finddir B_COMMON_BIN_DIRECTORY` \ + --libexecdir=`finddir B_COMMON_BIN_DIRECTORY` \ + --sysconfdir=`finddir B_COMMON_SETTINGS_DIRECTORY` \ + --localstatedir=`finddir B_COMMON_VAR_DIRECTORY` \ + --libdir=`finddir B_COMMON_LIB_DIRECTORY` \ + --datarootdir=`finddir B_COMMON_DATA_DIRECTORY` \ + --datadir=`finddir B_COMMON_DATA_DIRECTORY` \ + --mandir=`finddir B_COMMON_DOCUMENTATION_DIRECTORY`/man \ + --with-apr=`finddir B_COMMON_BIN_DIRECTORY`/apr-1-config + make +} + +INSTALL { + cd apr-util-1.3.11 + make install +} + +LICENSE="Apache v2" +COPYRIGHT="2010 The Apache Software Foundation." diff --git a/dev-libs/apr-util/apr-util-1.3.12.bep b/dev-libs/apr-util/apr-util-1.3.12.bep new file mode 100644 index 000000000..893bdaeff --- /dev/null +++ b/dev-libs/apr-util/apr-util-1.3.12.bep @@ -0,0 +1,49 @@ +DESCRIPTION="apr-util - Apache Portable Runtime Utility Library" +HOMEPAGE="http://apr.apache.org/" +SRC_URI="http://archive.apache.org/dist/apr/apr-util-1.3.12.tar.gz" +CHECKSUM_MD5="d1977289889592ef998e3f777f68efe4" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="dev-libs/apr >= 1.3.9" +BUILD { + cd apr-util-1.3.12 + rm -rf aclocal.m4 + mkdir -p m4 + haikuporter -b apr-1.4.5 + libtoolize -fci + aclocal --install -I m4 + autoconf -f + cd xml/expat + mkdir -p m4 + echo `AM_INIT_AUTOMAKE` >> configure.in + libtoolize -fci + aclocal --install -I m4 + autoconf --force + autoheader + touch libtool.m4 + cd ../.. + sed -i 's/\/usr\/bin\/env/\/bin\/env/' `haikuporter -t`/dev-libs/apr/work/apr-1.4.5/build/gen-build.py + buildconf --with-apr=`haikuporter -t`/dev-libs/apr/work/apr-1.4.5 \ + --prefix=`finddir B_COMMON_DIRECTORY` + ln -sf `finddir B_COMMON_BIN_DIRECTORY`/libtool ./libtool + ./configure --prefix=`finddir B_COMMON_DIRECTORY` \ + --bindir=`finddir B_COMMON_BIN_DIRECTORY` \ + --sbindir=`finddir B_COMMON_BIN_DIRECTORY` \ + --libexecdir=`finddir B_COMMON_BIN_DIRECTORY` \ + --sysconfdir=`finddir B_COMMON_SETTINGS_DIRECTORY` \ + --localstatedir=`finddir B_COMMON_VAR_DIRECTORY` \ + --libdir=`finddir B_COMMON_LIB_DIRECTORY` \ + --datarootdir=`finddir B_COMMON_DATA_DIRECTORY` \ + --datadir=`finddir B_COMMON_DATA_DIRECTORY` \ + --mandir=`finddir B_COMMON_DOCUMENTATION_DIRECTORY`/man \ + --with-apr=`finddir B_COMMON_BIN_DIRECTORY`/apr-1-config + make +} + +INSTALL { + cd apr-util-1.3.12 + make install +} + +LICENSE="Apache v2" +COPYRIGHT="2011 The Apache Software Foundation." diff --git a/dev-libs/apr-util/apr-util-1.3.9.bep b/dev-libs/apr-util/apr-util-1.3.9.bep index 2baa0d88e..a01e185fc 100644 --- a/dev-libs/apr-util/apr-util-1.3.9.bep +++ b/dev-libs/apr-util/apr-util-1.3.9.bep @@ -35,7 +35,7 @@ BUILD { autoconf --force autoheader cd ../.. - ./configure --prefix=/boot/common --with-apr=/boot/common/bin/apr-1-config + ./configure --prefix=`finddir B_COMMON_DIRECTORY` --with-apr=`finddir B_COMMON_BIN_DIRECTORY`/apr-1-config make } diff --git a/dev-libs/apr-util/apr-util-1.4.1.bep b/dev-libs/apr-util/apr-util-1.4.1.bep new file mode 100644 index 000000000..bd3695d4c --- /dev/null +++ b/dev-libs/apr-util/apr-util-1.4.1.bep @@ -0,0 +1,49 @@ +DESCRIPTION="apr-util - Apache Portable Runtime Utility Library" +HOMEPAGE="http://apr.apache.org/" +SRC_URI="http://archive.apache.org/dist/apr/apr-util-1.4.1.tar.gz" +CHECKSUM_MD5="666a5d56098a9debf998510e304c8095" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="dev-libs/apr == 1.4.6" +BUILD { + cd apr-util-1.4.1 + rm -rf aclocal.m4 + mkdir -p m4 + haikuporter -b apr-1.4.6 + libtoolize -fci + aclocal --install -I m4 + autoconf -f + cd xml/expat + mkdir -p m4 + echo `AM_INIT_AUTOMAKE` >> configure.in + libtoolize -fci + aclocal --install -I m4 + autoconf --force + autoheader + touch libtool.m4 + cd ../.. + sed -i 's/\/usr\/bin\/env/\/bin\/env/' `haikuporter -t`/dev-libs/apr/work/apr-1.4.6/build/gen-build.py + buildconf --with-apr=`haikuporter -t`/dev-libs/apr/work/apr-1.4.6 \ + --prefix=`finddir B_COMMON_DIRECTORY` + ln -sf `finddir B_COMMON_BIN_DIRECTORY`/libtool ./libtool + ./configure --prefix=`finddir B_COMMON_DIRECTORY` \ + --bindir=`finddir B_COMMON_BIN_DIRECTORY` \ + --sbindir=`finddir B_COMMON_BIN_DIRECTORY` \ + --libexecdir=`finddir B_COMMON_BIN_DIRECTORY` \ + --sysconfdir=`finddir B_COMMON_SETTINGS_DIRECTORY` \ + --localstatedir=`finddir B_COMMON_VAR_DIRECTORY` \ + --libdir=`finddir B_COMMON_LIB_DIRECTORY` \ + --datarootdir=`finddir B_COMMON_DATA_DIRECTORY` \ + --datadir=`finddir B_COMMON_DATA_DIRECTORY` \ + --mandir=`finddir B_COMMON_DOCUMENTATION_DIRECTORY`/man \ + --with-apr=`finddir B_COMMON_BIN_DIRECTORY`/apr-1-config + make +} + +INSTALL { + cd apr-util-1.4.1 + make install +} + +LICENSE="Apache v2" +COPYRIGHT="2011 The Apache Software Foundation." diff --git a/dev-libs/apr-util/patches/apr-util-1.3.10.patch b/dev-libs/apr-util/patches/apr-util-1.3.10.patch new file mode 100644 index 000000000..638694741 --- /dev/null +++ b/dev-libs/apr-util/patches/apr-util-1.3.10.patch @@ -0,0 +1,27 @@ +diff -urN apr-util-1.3.10/config.layout apr-util-1.3.10-haiku/config.layout +--- apr-util-1.3.10/config.layout 2005-02-09 12:18:43.049283072 +0000 ++++ apr-util-1.3.10-haiku/config.layout 2011-03-25 11:04:46.549453824 +0000 +@@ -60,6 +60,23 @@ + runtimedir: ${localstatedir}/run + + ++# Haiku Layout making use of finddir ++ ++ prefix: /boot/common ++ exec_prefix: /boot/common ++ bindir: /boot/common/bin ++ sbindir: /boot/common/servers ++ libdir: /boot/common/lib ++ libexecdir: /boot/common/servers ++ mandir: /boot/common/documentation/man ++ sysconfdir: /boot/common/settings ++ datadir: /boot/common/data ++ installbuilddir: /boot/develop/build ++ includedir: /boot/common/include ++ localstatedir: /boot/common/var ++ runtimedir: ${localstatedir}/log ++ ++ + # Mac OS X Server (Rhapsody) + + prefix: /Local/Library/WebServer diff --git a/dev-libs/apr-util/patches/apr-util-1.3.11.patch b/dev-libs/apr-util/patches/apr-util-1.3.11.patch new file mode 100644 index 000000000..26633b67c --- /dev/null +++ b/dev-libs/apr-util/patches/apr-util-1.3.11.patch @@ -0,0 +1,27 @@ +diff -urN apr-util-1.3.11/config.layout apr-util-1.3.11-haiku/config.layout +--- apr-util-1.3.11/config.layout 2005-02-09 12:18:43.049283072 +0000 ++++ apr-util-1.3.11-haiku/config.layout 2011-03-25 11:04:46.549453824 +0000 +@@ -60,6 +60,23 @@ + runtimedir: ${localstatedir}/run + + ++# Haiku Layout making use of finddir ++ ++ prefix: /boot/common ++ exec_prefix: /boot/common ++ bindir: /boot/common/bin ++ sbindir: /boot/common/servers ++ libdir: /boot/common/lib ++ libexecdir: /boot/common/servers ++ mandir: /boot/common/documentation/man ++ sysconfdir: /boot/common/settings ++ datadir: /boot/common/data ++ installbuilddir: /boot/develop/build ++ includedir: /boot/common/include ++ localstatedir: /boot/common/var ++ runtimedir: ${localstatedir}/log ++ ++ + # Mac OS X Server (Rhapsody) + + prefix: /Local/Library/WebServer diff --git a/dev-libs/apr-util/patches/apr-util-1.3.12.patch b/dev-libs/apr-util/patches/apr-util-1.3.12.patch new file mode 100644 index 000000000..c9873f4b3 --- /dev/null +++ b/dev-libs/apr-util/patches/apr-util-1.3.12.patch @@ -0,0 +1,27 @@ +diff -urN apr-util-1.3.12/config.layout apr-util-1.3.12-haiku/config.layout +--- apr-util-1.3.12/config.layout 2005-02-09 12:18:43.049283072 +0000 ++++ apr-util-1.3.12-haiku/config.layout 2011-03-25 11:04:46.549453824 +0000 +@@ -60,6 +60,23 @@ + runtimedir: ${localstatedir}/run + + ++# Haiku Layout making use of finddir ++ ++ prefix: /boot/common ++ exec_prefix: /boot/common ++ bindir: /boot/common/bin ++ sbindir: /boot/common/servers ++ libdir: /boot/common/lib ++ libexecdir: /boot/common/servers ++ mandir: /boot/common/documentation/man ++ sysconfdir: /boot/common/settings ++ datadir: /boot/common/data ++ installbuilddir: /boot/develop/build ++ includedir: /boot/common/include ++ localstatedir: /boot/common/var ++ runtimedir: ${localstatedir}/log ++ ++ + # Mac OS X Server (Rhapsody) + + prefix: /Local/Library/WebServer diff --git a/dev-libs/apr-util/patches/apr-util-1.4.1.patch b/dev-libs/apr-util/patches/apr-util-1.4.1.patch new file mode 100644 index 000000000..799676743 --- /dev/null +++ b/dev-libs/apr-util/patches/apr-util-1.4.1.patch @@ -0,0 +1,27 @@ +diff -urN apr-util-1.4.1/config.layout apr-util-1.4.1-haiku/config.layout +--- apr-util-1.4.1/config.layout 2005-02-09 12:18:43.049283072 +0000 ++++ apr-util-1.4.1-haiku/config.layout 2011-03-25 11:04:46.549453824 +0000 +@@ -60,6 +60,23 @@ + runtimedir: ${localstatedir}/run + + ++# Haiku Layout making use of finddir ++ ++ prefix: /boot/common ++ exec_prefix: /boot/common ++ bindir: /boot/common/bin ++ sbindir: /boot/common/servers ++ libdir: /boot/common/lib ++ libexecdir: /boot/common/servers ++ mandir: /boot/common/documentation/man ++ sysconfdir: /boot/common/settings ++ datadir: /boot/common/data ++ installbuilddir: /boot/develop/build ++ includedir: /boot/common/include ++ localstatedir: /boot/common/var ++ runtimedir: ${localstatedir}/log ++ ++ + # Mac OS X Server (Rhapsody) + + prefix: /Local/Library/WebServer diff --git a/dev-libs/apr/apr-1.3.8.bep b/dev-libs/apr/apr-1.3.8.bep index 11ee9c1cf..4b7ee85d2 100644 --- a/dev-libs/apr/apr-1.3.8.bep +++ b/dev-libs/apr/apr-1.3.8.bep @@ -8,7 +8,7 @@ BUILD { cd apr-1.3.8 libtoolize --force --copy --install buildconf - ./configure --prefix=/boot/common + ./configure --prefix=`finddir B_COMMON_DIRECTORY` make } diff --git a/dev-libs/apr/apr-1.3.9.bep b/dev-libs/apr/apr-1.3.9.bep index df48bb188..678bd894c 100644 --- a/dev-libs/apr/apr-1.3.9.bep +++ b/dev-libs/apr/apr-1.3.9.bep @@ -9,7 +9,7 @@ BUILD { cd apr-1.3.9 libtoolize --force --copy --install buildconf - ./configure --prefix=/boot/common + ./configure --prefix=`finddir B_COMMON_DIRECTORY` make } diff --git a/dev-libs/apr/apr-1.4.4.bep b/dev-libs/apr/apr-1.4.4.bep new file mode 100644 index 000000000..d4724c91e --- /dev/null +++ b/dev-libs/apr/apr-1.4.4.bep @@ -0,0 +1,39 @@ +DESCRIPTION="apr - Apache Portable Runtime Library" +HOMEPAGE="http://apr.apache.org/" +SRC_URI="http://www.apache.org/dist/apr/apr-1.4.4.tar.gz" +CHECKSUM_MD5="9d70b96d4d7f7449f9c3cc81a691c5bf" +REVISION="3" +STATUS_HAIKU="broken" +DEPEND="" +BUILD { + cd apr-1.4.4 + libtoolize -fci + touch libtool.m4 + aclocal -I build + autoconf + ln -sf `finddir B_COMMON_BIN_DIRECTORY`/libtool /libtool + ./configure --prefix=`finddir B_COMMON_DIRECTORY` \ + --bindir=`finddir B_COMMON_BIN_DIRECTORY` \ + --sbindir=`finddir B_COMMON_BIN_DIRECTORY` \ + --libexecdir=`finddir B_COMMON_BIN_DIRECTORY` \ + --sysconfdir=`finddir B_COMMON_SETTINGS_DIRECTORY` \ + --localstatedir=`finddir B_COMMON_VAR_DIRECTORY` \ + --libdir=`finddir B_COMMON_LIB_DIRECTORY` \ + --datarootdir=`finddir B_COMMON_DATA_DIRECTORY` \ + --datadir=`finddir B_COMMON_DATA_DIRECTORY` \ + --mandir=`finddir B_COMMON_DOCUMENTATION_DIRECTORY`/man + make +} + +INSTALL { + cd apr-1.4.4 + make install +} + +TEST { + cd apr-1.4.4 + make test +} + +LICENSE="Apache v2" +COPYRIGHT="2010 The Apache Software Foundation." diff --git a/dev-libs/apr/apr-1.4.5.bep b/dev-libs/apr/apr-1.4.5.bep new file mode 100644 index 000000000..6a86547d5 --- /dev/null +++ b/dev-libs/apr/apr-1.4.5.bep @@ -0,0 +1,39 @@ +DESCRIPTION="apr - Apache Portable Runtime Library" +HOMEPAGE="http://apr.apache.org/" +SRC_URI="http://www.apache.org/dist/apr/apr-1.4.5.tar.gz" +CHECKSUM_MD5="97262fe54dddaf583eaaee3497a426e1" +REVISION="4" +STATUS_HAIKU="stable" +DEPEND="" +BUILD { + cd apr-1.4.5 + libtoolize -fci + touch libtool.m4 + aclocal -I build + autoconf + ln -sf `finddir B_COMMON_BIN_DIRECTORY`/libtool /libtool + ./configure --prefix=`finddir B_COMMON_DIRECTORY` \ + --bindir=`finddir B_COMMON_BIN_DIRECTORY` \ + --sbindir=`finddir B_COMMON_BIN_DIRECTORY` \ + --libexecdir=`finddir B_COMMON_BIN_DIRECTORY` \ + --sysconfdir=`finddir B_COMMON_SETTINGS_DIRECTORY` \ + --localstatedir=`finddir B_COMMON_VAR_DIRECTORY` \ + --libdir=`finddir B_COMMON_LIB_DIRECTORY` \ + --datarootdir=`finddir B_COMMON_DATA_DIRECTORY` \ + --datadir=`finddir B_COMMON_DATA_DIRECTORY` \ + --mandir=`finddir B_COMMON_DOCUMENTATION_DIRECTORY`/man + make +} + +INSTALL { + cd apr-1.4.5 + make install +} + +TEST { + cd apr-1.4.5 + make test +} + +LICENSE="Apache v2" +COPYRIGHT="2011 The Apache Software Foundation." diff --git a/dev-libs/apr/apr-1.4.6.bep b/dev-libs/apr/apr-1.4.6.bep new file mode 100644 index 000000000..5256885db --- /dev/null +++ b/dev-libs/apr/apr-1.4.6.bep @@ -0,0 +1,39 @@ +DESCRIPTION="apr - Apache Portable Runtime Library" +HOMEPAGE="http://apr.apache.org/" +SRC_URI="http://www.apache.org/dist/apr/apr-1.4.6.tar.gz" +CHECKSUM_MD5="76cc4457fbb71eefdafa27dba8f511fb" +REVISION="4" +STATUS_HAIKU="stable" +DEPEND="" +BUILD { + cd apr-1.4.6 + libtoolize -fci + touch libtool.m4 + aclocal -I build + autoconf + ln -sf `finddir B_COMMON_BIN_DIRECTORY`/libtool /libtool + ./configure --prefix=`finddir B_COMMON_DIRECTORY` \ + --bindir=`finddir B_COMMON_BIN_DIRECTORY` \ + --sbindir=`finddir B_COMMON_BIN_DIRECTORY` \ + --libexecdir=`finddir B_COMMON_BIN_DIRECTORY` \ + --sysconfdir=`finddir B_COMMON_SETTINGS_DIRECTORY` \ + --localstatedir=`finddir B_COMMON_VAR_DIRECTORY` \ + --libdir=`finddir B_COMMON_LIB_DIRECTORY` \ + --datarootdir=`finddir B_COMMON_DATA_DIRECTORY` \ + --datadir=`finddir B_COMMON_DATA_DIRECTORY` \ + --mandir=`finddir B_COMMON_DOCUMENTATION_DIRECTORY`/man + make +} + +INSTALL { + cd apr-1.4.6 + make install +} + +TEST { + cd apr-1.4.6 + make test +} + +LICENSE="Apache v2" +COPYRIGHT="2012 The Apache Software Foundation." diff --git a/dev-libs/apr/patches/apr-1.4.2.patch b/dev-libs/apr/patches/apr-1.4.2.patch index cf34a3e64..3a6fcb6ce 100644 --- a/dev-libs/apr/patches/apr-1.4.2.patch +++ b/dev-libs/apr/patches/apr-1.4.2.patch @@ -1,115 +1,33 @@ -diff -urN apr-1.4.2/build/apr_hints.m4 apr-1.4.2-haiku/build/apr_hints.m4 ---- apr-1.4.2/build/apr_hints.m4 2009-11-17 14:28:12.036700160 +0000 -+++ apr-1.4.2-haiku/build/apr_hints.m4 2010-10-13 02:38:51.257687552 +0000 -@@ -35,7 +35,7 @@ - dnl Generally, we force the setting of CC, and add flags - dnl to CFLAGS, CPPFLAGS, LIBS and LDFLAGS. - dnl --AC_DEFUN(APR_PRELOAD, [ -+AC_DEFUN([APR_PRELOAD], [ - if test "x$apr_preload_done" != "xyes" ; then +diff -urN apr-1.4.2/config.layout apr-1.4.2-haiku/config.layout +--- apr-1.4.2/config.layout 2004-11-24 22:51:51.065798144 +0000 ++++ apr-1.4.2-haiku/config.layout 2011-03-24 11:36:30.742653952 +0000 +@@ -60,6 +60,23 @@ + runtimedir: ${localstatedir}/run + - apr_preload_done="yes" -@@ -457,6 +457,12 @@ - APR_SETIFNULL(have_proc_invoked, [1]) - APR_SETIFNULL(apr_cv_use_lfs64, [yes]) - ;; -+ *-haiku*) -+ APR_ADDTO(LIBS, [-lnetwork]) -+ APR_SETIFNULL(apr_lock_method, [USE_POSIXSEM_SERIALIZE]) -+ APR_SETIFNULL(apr_posixsem_is_global, [yes]) -+ APR_SETIFNULL(apr_process_lock_is_global, [yes]) -+ ;; - esac - - fi -@@ -467,7 +473,7 @@ - dnl - dnl Allows us to provide a default choice of compiler which - dnl the user can override. --AC_DEFUN(APR_CC_HINTS, [ -+AC_DEFUN([APR_CC_HINTS], [ - case "$host" in - *-apple-aux3*) - APR_SETIFNULL(CC, [gcc]) -diff -urN apr-1.4.2/build/apr_network.m4 apr-1.4.2-haiku/build/apr_network.m4 ---- apr-1.4.2/build/apr_network.m4 2008-06-16 21:15:24.035913728 +0000 -+++ apr-1.4.2-haiku/build/apr_network.m4 2010-10-13 02:38:51.267911168 +0000 -@@ -21,7 +21,7 @@ - dnl - dnl check for type in_addr - dnl --AC_DEFUN(APR_TYPE_IN_ADDR,[ -+AC_DEFUN([APR_TYPE_IN_ADDR],[ - AC_CACHE_CHECK(for type in_addr, ac_cv_type_in_addr,[ - AC_TRY_COMPILE([ - #ifdef HAVE_SYS_TYPES_H -diff -urN apr-1.4.2/build/apr_threads.m4 apr-1.4.2-haiku/build/apr_threads.m4 ---- apr-1.4.2/build/apr_threads.m4 2006-08-03 10:46:47.037748736 +0000 -+++ apr-1.4.2-haiku/build/apr_threads.m4 2010-10-13 02:38:51.269221888 +0000 -@@ -26,7 +26,7 @@ - dnl pthreads is not available. - dnl Turn off warnings if we're using gcc. - dnl --AC_DEFUN(APR_CHECK_PTHREADS_H, [ -+AC_DEFUN([APR_CHECK_PTHREADS_H], [ - if test "$GCC" = "yes"; then - SAVE_FL="$CPPFLAGS" - CPPFLAGS="$CPPFLAGS -w" -@@ -41,7 +41,7 @@ - dnl - dnl APR_CHECK_PTHREAD_GETSPECIFIC_TWO_ARGS - dnl --AC_DEFUN(APR_CHECK_PTHREAD_GETSPECIFIC_TWO_ARGS, [ -+AC_DEFUN([APR_CHECK_PTHREAD_GETSPECIFIC_TWO_ARGS], [ - AC_CACHE_CHECK(whether pthread_getspecific takes two arguments, ac_cv_pthread_getspecific_two_args,[ - AC_TRY_COMPILE([ - #include -@@ -65,7 +65,7 @@ - dnl - dnl APR_CHECK_PTHREAD_ATTR_GETDETACHSTATE_ONE_ARG - dnl --AC_DEFUN(APR_CHECK_PTHREAD_ATTR_GETDETACHSTATE_ONE_ARG, [ -+AC_DEFUN([APR_CHECK_PTHREAD_ATTR_GETDETACHSTATE_ONE_ARG], [ - AC_CACHE_CHECK(whether pthread_attr_getdetachstate takes one argument, ac_cv_pthread_attr_getdetachstate_one_arg,[ - AC_TRY_COMPILE([ - #include -@@ -91,7 +91,7 @@ - dnl Try running a program which uses pthreads, executing the - dnl actions-if-success commands on success. - dnl --AC_DEFUN(APR_PTHREADS_TRY_RUN, [ -+AC_DEFUN([APR_PTHREADS_TRY_RUN], [ - AC_TRY_RUN( [ - #include - #include -@@ -182,12 +182,12 @@ - dnl the checks for threading support so that they can restored if the - dnl result is not what the caller wanted. - dnl --AC_DEFUN(APR_PTHREADS_CHECK_SAVE, [ -+AC_DEFUN([APR_PTHREADS_CHECK_SAVE], [ - apr_pthsv_CFLAGS="$CFLAGS" - apr_pthsv_LIBS="$LIBS" - ])dnl - --AC_DEFUN(APR_PTHREADS_CHECK_RESTORE, [ -+AC_DEFUN([APR_PTHREADS_CHECK_RESTORE], [ - CFLAGS="$apr_pthsv_CFLAGS" - LIBS="$apr_pthsv_LIBS" - ])dnl -diff -urN apr-1.4.2/build/gen-build.py apr-1.4.2-haiku/build/gen-build.py ---- apr-1.4.2/build/gen-build.py 2007-02-28 12:44:52.034603008 +0000 -+++ apr-1.4.2-haiku/build/gen-build.py 2010-10-13 02:38:51.278659072 +0000 -@@ -1,4 +1,4 @@ --#!/usr/bin/env python -+#!/bin/env python - # - # USAGE: gen-build.py TYPE - # ++# Haiku Layout making use of finddir ++ ++ prefix: /boot/common ++ exec_prefix: /boot/common ++ bindir: /boot/common/bin ++ sbindir: /boot/common/servers ++ libdir: /boot/common/lib ++ libexecdir: /boot/common/servers ++ mandir: /boot/common/documentation/man ++ sysconfdir: /boot/common/settings ++ datadir: /boot/common/data ++ installbuilddir: /boot/develop/build ++ includedir: /boot/common/include ++ localstatedir: /boot/common/var ++ runtimedir: ${localstatedir}/log ++ ++ + # Mac OS X Server (Rhapsody) + + prefix: /Local/Library/WebServer diff -urN apr-1.4.2/configure.in apr-1.4.2-haiku/configure.in ---- apr-1.4.2/configure.in 2009-11-16 07:45:28.006291456 +0000 -+++ apr-1.4.2-haiku/configure.in 2010-10-13 02:36:44.000000000 +0000 +--- apr-1.4.2/configure.in 2009-11-16 07:45:28.064225280 +0000 ++++ apr-1.4.2-haiku/configure.in 2011-03-24 14:27:40.000000000 +0000 @@ -143,7 +143,7 @@ AC_PROG_CPP AC_PROG_AWK @@ -119,57 +37,3 @@ diff -urN apr-1.4.2/configure.in apr-1.4.2-haiku/configure.in AC_PROG_INSTALL AC_CHECK_PROG(RM, rm, rm) AC_CHECK_PROG(AS, as, as) -@@ -258,7 +258,7 @@ - dnl otherwise. - - case $host in -- *os390) -+ *os390|*haiku*) - if test "$ac_test_CFLAGS" != set; then - APR_REMOVEFROM(CFLAGS,-g) - fi -@@ -498,6 +498,13 @@ - OSDIR="unix" - eolstr="\\n" - ;; -+ *haiku*) -+ OSDIR="unix" -+ eolstr="\\n" -+ AC_CHECK_LIB(bsd, getpass) -+ AC_CHECK_LIB(network, socket) -+ LIBTOOL="libtool" -+ ;; - *) - OSDIR="unix" - eolstr="\\n" -@@ -1099,6 +1106,10 @@ - havemmapzero="0" - havemmapanon="0" - APR_BEGIN_DECISION([anonymous shared memory allocation method]) -+APR_IFALLYES(header:kernel/OS.h func:create_area, -+ [havebeosshm="1" -+ APR_DECIDE(USE_SHMEM_BEOS_ANON, -+ [BeOS areas])]) - APR_IFALLYES(header:sys/ipc.h header:sys/shm.h header:sys/file.h dnl - func:shmget func:shmat func:shmdt func:shmctl, - [haveshmgetanon="1" -@@ -1170,6 +1181,9 @@ - haveos2shm="0" - havewin32shm="0" - APR_BEGIN_DECISION([namebased memory allocation method]) -+APR_IFALLYES(header:kernel/OS.h func:create_area, -+ [havebeosshm="1" -+ APR_DECIDE(USE_SHMEM_BEOS, [BeOS areas])]) - APR_IFALLYES(header:sys/mman.h func:mmap func:munmap, - [havemmaptmp="1" - APR_DECIDE(USE_SHMEM_MMAP_TMP, -@@ -1183,9 +1197,6 @@ - func:shmget func:shmat func:shmdt func:shmctl, - [haveshmget="1" - APR_DECIDE(USE_SHMEM_SHMGET, [SysV IPC shmget()])]) --APR_IFALLYES(header:kernel/OS.h func:create_area, -- [havebeosshm="1" -- APR_DECIDE(USE_SHMEM_BEOS, [BeOS areas])]) - APR_IFALLYES(header:os2.h, - [haveos2shm="1" - APR_DECIDE(USE_SHMEM_OS2, [OS/2 DosAllocSharedMem()])]) diff --git a/dev-libs/apr/patches/apr-1.4.4.patch b/dev-libs/apr/patches/apr-1.4.4.patch new file mode 100644 index 000000000..86f9e8c76 --- /dev/null +++ b/dev-libs/apr/patches/apr-1.4.4.patch @@ -0,0 +1,39 @@ +diff -urN apr-1.4.4/config.layout apr-1.4.4-haiku/config.layout +--- apr-1.4.4/config.layout 2004-11-24 22:51:51.065798144 +0000 ++++ apr-1.4.4-haiku/config.layout 2011-03-24 11:36:30.742653952 +0000 +@@ -60,6 +60,23 @@ + runtimedir: ${localstatedir}/run + + ++# Haiku Layout making use of finddir ++ ++ prefix: /boot/common ++ exec_prefix: /boot/common ++ bindir: /boot/common/bin ++ sbindir: /boot/common/servers ++ libdir: /boot/common/lib ++ libexecdir: /boot/common/servers ++ mandir: /boot/common/documentation/man ++ sysconfdir: /boot/common/settings ++ datadir: /boot/common/data ++ installbuilddir: /boot/develop/build ++ includedir: /boot/common/include ++ localstatedir: /boot/common/var ++ runtimedir: ${localstatedir}/log ++ ++ + # Mac OS X Server (Rhapsody) + + prefix: /Local/Library/WebServer +diff -urN apr-1.4.4/configure.in apr-1.4.4-haiku/configure.in +--- apr-1.4.4/configure.in 2009-11-16 07:45:28.064225280 +0000 ++++ apr-1.4.4-haiku/configure.in 2011-03-24 14:27:40.000000000 +0000 +@@ -143,7 +143,7 @@ + AC_PROG_CPP + AC_PROG_AWK + AC_PROG_LN_S +-AC_PROG_RANLIB ++AC_PROG_LIBTOOL + AC_PROG_INSTALL + AC_CHECK_PROG(RM, rm, rm) + AC_CHECK_PROG(AS, as, as) diff --git a/dev-libs/apr/patches/apr-1.4.5.patch b/dev-libs/apr/patches/apr-1.4.5.patch new file mode 100644 index 000000000..1b713b281 --- /dev/null +++ b/dev-libs/apr/patches/apr-1.4.5.patch @@ -0,0 +1,50 @@ +diff -urN apr-1.4.5/config.layout apr-1.4.5-haiku/config.layout +--- apr-1.4.5/config.layout 2004-11-24 22:51:51.056360960 +0000 ++++ apr-1.4.5-haiku/config.layout 2011-07-12 10:34:27.155189248 +0000 +@@ -60,6 +60,23 @@ + runtimedir: ${localstatedir}/run + + ++# Haiku Layout making use of finddir ++ ++ prefix: /boot/common ++ exec_prefix: /boot/common ++ bindir: /boot/common/bin ++ sbindir: /boot/common/servers ++ libdir: /boot/common/lib ++ libexecdir: /boot/common/servers ++ mandir: /boot/common/documentation/man ++ sysconfdir: /boot/common/settings ++ datadir: /boot/common/data ++ installbuilddir: /boot/develop/build ++ includedir: /boot/common/include ++ localstatedir: /boot/common/var ++ runtimedir: ${localstatedir}/log ++ ++ + # Mac OS X Server (Rhapsody) + + prefix: /Local/Library/WebServer +diff -urN apr-1.4.5/configure.in apr-1.4.5-haiku/configure.in +--- apr-1.4.5/configure.in 2011-04-11 12:58:38.043253760 -0700 ++++ apr-1.4.5-haiku/configure.in 2011-08-02 12:49:33.801112064 -0700 +@@ -204,7 +204,7 @@ + AC_PROG_CPP + AC_PROG_AWK + AC_PROG_LN_S +-AC_PROG_RANLIB ++AC_PROG_LIBTOOL + AC_PROG_INSTALL + AC_CHECK_PROG(RM, rm, rm) + AC_CHECK_PROG(AS, as, as) +@@ -673,9 +673,9 @@ + ac_cv_func_CreateFileMapping=yes + ;; + *) ++ AC_SEARCH_LIBS(socket, socket network) + AC_SEARCH_LIBS(gethostbyname, nsl) + AC_SEARCH_LIBS(gethostname, nsl) +- AC_SEARCH_LIBS(socket, socket) + AC_SEARCH_LIBS(crypt, crypt ufc) + AC_CHECK_LIB(truerand, main) + AC_SEARCH_LIBS(modf, m) diff --git a/dev-libs/apr/patches/apr-1.4.6.patch b/dev-libs/apr/patches/apr-1.4.6.patch new file mode 100644 index 000000000..9f1a88d96 --- /dev/null +++ b/dev-libs/apr/patches/apr-1.4.6.patch @@ -0,0 +1,50 @@ +diff -urN apr-1.4.6/config.layout apr-1.4.6-haiku/config.layout +--- apr-1.4.6/config.layout 2004-11-24 22:51:51.056360960 +0000 ++++ apr-1.4.6-haiku/config.layout 2011-07-12 10:34:27.155189248 +0000 +@@ -60,6 +60,23 @@ + runtimedir: ${localstatedir}/run + + ++# Haiku Layout making use of finddir ++ ++ prefix: /boot/common ++ exec_prefix: /boot/common ++ bindir: /boot/common/bin ++ sbindir: /boot/common/servers ++ libdir: /boot/common/lib ++ libexecdir: /boot/common/servers ++ mandir: /boot/common/documentation/man ++ sysconfdir: /boot/common/settings ++ datadir: /boot/common/data ++ installbuilddir: /boot/develop/build ++ includedir: /boot/common/include ++ localstatedir: /boot/common/var ++ runtimedir: ${localstatedir}/log ++ ++ + # Mac OS X Server (Rhapsody) + + prefix: /Local/Library/WebServer +diff -urN apr-1.4.6/configure.in apr-1.4.6-haiku/configure.in +--- apr-1.4.6/configure.in 2011-04-11 12:58:38.043253760 -0700 ++++ apr-1.4.6-haiku/configure.in 2011-08-02 12:49:33.801112064 -0700 +@@ -203,7 +203,7 @@ + AC_PROG_CPP + AC_PROG_AWK + AC_PROG_LN_S +-AC_PROG_RANLIB ++AC_PROG_LIBTOOL + AC_PROG_INSTALL + AC_CHECK_PROG(RM, rm, rm) + AC_CHECK_PROG(AS, as, as) +@@ -672,9 +672,9 @@ + ac_cv_func_CreateFileMapping=yes + ;; + *) ++ AC_SEARCH_LIBS(socket, socket network) + AC_SEARCH_LIBS(gethostbyname, nsl) + AC_SEARCH_LIBS(gethostname, nsl) +- AC_SEARCH_LIBS(socket, socket) + AC_SEARCH_LIBS(crypt, crypt ufc) + AC_CHECK_LIB(truerand, main) + AC_SEARCH_LIBS(modf, m) diff --git a/dev-libs/atk/atk-1.29.2.bep b/dev-libs/atk/atk-1.29.2.bep index 6c99a703b..5fbeadeb8 100644 --- a/dev-libs/atk/atk-1.29.2.bep +++ b/dev-libs/atk/atk-1.29.2.bep @@ -12,7 +12,7 @@ BUILD { aclocal autoconf automake - ./configure --prefix=/boot/common + ./configure --prefix=`finddir B_COMMON_DIRECTORY` make } diff --git a/dev-libs/atk/atk-1.30.0.bep b/dev-libs/atk/atk-1.30.0.bep index c9888bc58..bdaa27b25 100644 --- a/dev-libs/atk/atk-1.30.0.bep +++ b/dev-libs/atk/atk-1.30.0.bep @@ -13,7 +13,7 @@ BUILD { aclocal autoconf automake - ./configure --prefix=/boot/common + ./configure --prefix=`finddir B_COMMON_DIRECTORY` make } diff --git a/dev-libs/boehm-gc/boehm-gc-7.2_alpha6.bep b/dev-libs/boehm-gc/boehm-gc-7.2_alpha6.bep new file mode 100644 index 000000000..7f20ba736 --- /dev/null +++ b/dev-libs/boehm-gc/boehm-gc-7.2_alpha6.bep @@ -0,0 +1,34 @@ +DESCRIPTION="The Boehm-Demers-Weiser conservative garbage collector" +HOMEPAGE="http://www.hpl.hp.com/personal/Hans_Boehm/gc/" +SRC_URI="http://www.hpl.hp.com/personal/Hans_Boehm/gc/gc_source/gc-7.2alpha6.tar.gz" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="" +CHECKSUM_MD5="319d0b18cc4eb735c8038ece9df055e4" + +BUILD { + cd gc-7.2alpha6 + libtoolize --force --copy --install + autoconf -f + ./configure --prefix=$(finddir B_COMMON_DIRECTORY) \ + --datadir=$(finddir B_COMMON_DOCUMENTATION_DIRECTORY) \ + --enable-threads=posix --enable-thread-local-alloc --enable-parallel-mark + make +} + +INSTALL { + cd gc-7.2alpha6 + make install +} + +TEST { + cd gc-7.2alpha6 + make check +} + +LICENSE="BOEHM" +COPYRIGHT="1988, 1989 Hans-J. Boehm, Alan J. Demers + 1991-1996 by Xerox Corporation. All rights reserved. + 1996-1999 by Silicon Graphics. All rights reserved. + 1999-2004 Hewlett-Packard Development Company, L.P." + diff --git a/dev-libs/boehm-gc/boehm-gc-7.2d.bep b/dev-libs/boehm-gc/boehm-gc-7.2d.bep new file mode 100644 index 000000000..b8f67af6f --- /dev/null +++ b/dev-libs/boehm-gc/boehm-gc-7.2d.bep @@ -0,0 +1,33 @@ +DESCRIPTION="The Boehm-Demers-Weiser conservative garbage collector" +HOMEPAGE="http://www.hpl.hp.com/personal/Hans_Boehm/gc/" +SRC_URI="http://www.hpl.hp.com/personal/Hans_Boehm/gc/gc_source/gc-7.2d.tar.gz" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="" +CHECKSUM_MD5="91340b28c61753a789eb6077675d87d2" + +BUILD { + cd gc-7.2 + libtoolize --force --copy --install + autoconf -f + ./configure --prefix=$(finddir B_COMMON_DIRECTORY) \ + --datadir=$(finddir B_COMMON_DOCUMENTATION_DIRECTORY) \ + --enable-threads=posix --enable-thread-local-alloc --enable-parallel-mark + make +} + +INSTALL { + cd gc-7.2 + make install +} + +TEST { + cd gc-7.2 + make check +} + +LICENSE="BOEHM" +COPYRIGHT="1988, 1989 Hans-J. Boehm, Alan J. Demers + 1991-1996 by Xerox Corporation. All rights reserved. + 1996-1999 by Silicon Graphics. All rights reserved. + 1999-2011 Hewlett-Packard Development Company, L.P." diff --git a/dev-libs/boehm-gc/licenses/BOEHM b/dev-libs/boehm-gc/licenses/BOEHM new file mode 100644 index 000000000..1a17075d4 --- /dev/null +++ b/dev-libs/boehm-gc/licenses/BOEHM @@ -0,0 +1,29 @@ +Copyright (c) 1988, 1989 Hans-J. Boehm, Alan J. Demers +Copyright (c) 1991-1996 by Xerox Corporation. All rights reserved. +Copyright (c) 1996-1999 by Silicon Graphics. All rights reserved. +Copyright (c) 1999-2004 Hewlett-Packard Development Company, L.P. + +The file linux_threads.c is also +Copyright (c) 1998 by Fergus Henderson. All rights reserved. + +The files Makefile.am, and configure.in are +Copyright (c) 2001 by Red Hat Inc. All rights reserved. + +Several files supporting GNU-style builds are copyrighted by the Free +Software Foundation, and carry a different license from that given +below. + +THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY EXPRESSED +OR IMPLIED. ANY USE IS AT YOUR OWN RISK. + +Permission is hereby granted to use or copy this program +for any purpose, provided the above notices are retained on all copies. +Permission to modify the code and to distribute modified code is granted, +provided the above notices are retained, and a notice that the code was +modified is included with the above copyright notice. + +A few of the files needed to use the GNU-style build procedure come with +slightly different licenses, though they are all similar in spirit. A few +are GPL'ed, but with an exception that should cover all uses in the +collector. (If you are concerned about such things, I recommend you look +at the notice in config.guess or ltmain.sh.) diff --git a/dev-libs/boehm-gc/patches/boehm-gc-7.2_alpha6.patch b/dev-libs/boehm-gc/patches/boehm-gc-7.2_alpha6.patch new file mode 100644 index 000000000..e5f093551 --- /dev/null +++ b/dev-libs/boehm-gc/patches/boehm-gc-7.2_alpha6.patch @@ -0,0 +1,247 @@ +diff -ru gc-7.2alpha6-orig/configure.ac gc-7.2alpha6/configure.ac +--- gc-7.2alpha6-orig/configure.ac 2011-06-14 12:34:55.000000000 +0000 ++++ gc-7.2alpha6/configure.ac 2012-03-16 00:46:16.500695040 +0000 +@@ -83,6 +83,7 @@ + AH_TEMPLATE([GC_DARWIN_THREADS], [Define to support Darwin pthreads.]) + AH_TEMPLATE([GC_FREEBSD_THREADS], [Define to support FreeBSD pthreads.]) + AH_TEMPLATE([GC_GNU_THREADS], [Define to support GNU pthreads.]) ++AH_TEMPLATE([GC_HAIKU_THREADS], [Define to support Haiku pthreads.]) + AH_TEMPLATE([GC_HPUX_THREADS], [Define to support HP/UX 11 pthreads.]) + AH_TEMPLATE([GC_IRIX_THREADS], [Define to support Irix pthreads.]) + AH_TEMPLATE([GC_LINUX_THREADS], [Define to support pthreads on Linux.]) +@@ -127,6 +128,10 @@ + AC_DEFINE(GC_AIX_THREADS) + AC_DEFINE(_REENTRANT) + ;; ++ *-*-haiku*) ++ AC_DEFINE(GC_HAIKU_THREADS) ++ AC_DEFINE(_REENTRANT) ++ ;; + *-*-hpux11*) + AC_MSG_WARN("Only HP/UX 11 POSIX threads are supported.") + AC_DEFINE(GC_HPUX_THREADS) +diff -ru gc-7.2alpha6-orig/dyn_load.c gc-7.2alpha6/dyn_load.c +--- gc-7.2alpha6-orig/dyn_load.c 2011-05-31 15:27:11.000000000 +0000 ++++ gc-7.2alpha6/dyn_load.c 2012-03-23 22:11:06.758906880 +0000 +@@ -63,7 +63,7 @@ + !(defined(FREEBSD) && defined(__ELF__)) && \ + !(defined(OPENBSD) && (defined(__ELF__) || defined(M68K))) && \ + !(defined(NETBSD) && defined(__ELF__)) && !defined(HURD) && \ +- !defined(DARWIN) && !defined(CYGWIN32) ++ !defined(DARWIN) && !defined(CYGWIN32) && !defined(HAIKU) + --> We only know how to find data segments of dynamic libraries for the + --> above. Additional SVR4 variants might not be too + --> hard to add. +@@ -1419,6 +1419,22 @@ + + #endif /* DARWIN */ + ++#ifdef HAIKU ++#include ++ ++GC_INNER void GC_register_dynamic_libraries() ++{ ++ image_info info; ++ int32 cookie = 0; ++ while (get_next_image_info(0, &cookie, &info) == B_OK) ++ { ++ void *data = info.data; ++ GC_add_roots_inner(data, data + info.data_size, TRUE); ++ } ++} ++ ++#endif /* HAIKU */ ++ + #elif defined(PCR) + + # include "il/PCR_IL.h" +diff -ru gc-7.2alpha6-orig/include/gc_config_macros.h gc-7.2alpha6/include/gc_config_macros.h +--- gc-7.2alpha6-orig/include/gc_config_macros.h 2011-04-24 13:09:21.000000000 +0000 ++++ gc-7.2alpha6/include/gc_config_macros.h 2012-03-16 00:44:30.556793856 +0000 +@@ -65,7 +65,7 @@ + || defined(GC_IRIX_THREADS) || defined(GC_LINUX_THREADS) \ + || defined(GC_NETBSD_THREADS) || defined(GC_OPENBSD_THREADS) \ + || defined(GC_OSF1_THREADS) || defined(GC_SOLARIS_THREADS) \ +- || defined(GC_WIN32_THREADS) ++ || defined(GC_WIN32_THREADS) || defined(GC_HAIKU_THREADS) + # ifndef GC_THREADS + # define GC_THREADS + # endif +diff -ru gc-7.2alpha6-orig/include/private/config.h.in gc-7.2alpha6/include/private/config.h.in +--- gc-7.2alpha6-orig/include/private/config.h.in 2010-09-11 11:27:06.000000000 +0000 ++++ gc-7.2alpha6/include/private/config.h.in 2012-03-16 00:49:30.038273024 +0000 +@@ -45,6 +45,9 @@ + /* Define to support GNU pthreads. */ + #undef GC_GNU_THREADS + ++/* Define to support Haiku pthreads. */ ++#undef GC_HAIKU_THREADS ++ + /* Define if backtrace information is supported. */ + #undef GC_HAVE_BUILTIN_BACKTRACE + +Only in gc-7.2alpha6/include/private: config.h.in~ +diff -ru gc-7.2alpha6-orig/include/private/gcconfig.h gc-7.2alpha6/include/private/gcconfig.h +--- gc-7.2alpha6-orig/include/private/gcconfig.h 2011-05-31 15:27:12.000000000 +0000 ++++ gc-7.2alpha6/include/private/gcconfig.h 2012-03-23 22:28:55.210501632 +0000 +@@ -234,6 +234,11 @@ + # define BEOS + # define mach_type_known + # endif ++# if defined(__HAIKU__) && defined(_X86_) ++# define I386 ++# define HAIKU ++# define mach_type_known ++# endif + # if defined(OPENBSD) && defined(__amd64__) + # define X86_64 + # define mach_type_known +@@ -1110,6 +1115,15 @@ + extern int etext[]; + # define DATASTART ((ptr_t)((((word) (etext)) + 0xfff) & ~0xfff)) + # endif ++# ifdef HAIKU ++# define OS_TYPE "HAIKU" ++# include ++# define GETPAGESIZE() B_PAGE_SIZE ++ extern int etext[]; ++# define DATASTART ((ptr_t)((((word) (etext)) + 0xfff) & ~0xfff)) ++# define DYNAMIC_LOADING ++# define MPROTECT_VDB ++# endif + # ifdef SOLARIS + # define OS_TYPE "SOLARIS" + extern int _etext[], _end[]; +@@ -2345,7 +2359,7 @@ + #if defined(SVR4) || defined(LINUX) || defined(IRIX5) || defined(HPUX) \ + || defined(OPENBSD) || defined(NETBSD) || defined(FREEBSD) \ + || defined(DGUX) || defined(BSD) || defined(HURD) \ +- || defined(AIX) || defined(DARWIN) || defined(OSF1) ++ || defined(AIX) || defined(DARWIN) || defined(OSF1) || defined(HAIKU) + # define UNIX_LIKE /* Basic Unix-like system calls work. */ + #endif + +@@ -2423,7 +2437,8 @@ + + #if ((defined(UNIX_LIKE) && (defined(DARWIN) || defined(HURD) \ + || defined(OPENBSD) || defined(ARM32) \ +- || defined(MIPS) || defined(AVR32))) \ ++ || defined(MIPS) || defined(AVR32) \ ++ || defined(HAIKU))) \ + || (defined(LINUX) && (defined(SPARC) || defined(M68K))) \ + || (defined(RTEMS) && defined(I386))) && !defined(NO_GETCONTEXT) + # define NO_GETCONTEXT +@@ -2721,6 +2736,9 @@ + # elif defined(SN_TARGET_PS3) + void *ps3_get_mem(size_t size); + # define GET_MEM(bytes) (struct hblk*)ps3_get_mem(bytes) ++# elif defined(HAIKU) ++ ptr_t GC_haiku_get_mem(GC_word bytes); ++# define GET_MEM(bytes) (struct hblk*)GC_haiku_get_mem(bytes) + # else + ptr_t GC_unix_get_mem(GC_word bytes); + # define GET_MEM(bytes) (struct hblk *)GC_unix_get_mem(bytes) +diff -ru gc-7.2alpha6-orig/include/private/thread_local_alloc.h gc-7.2alpha6/include/private/thread_local_alloc.h +--- gc-7.2alpha6-orig/include/private/thread_local_alloc.h 2011-05-13 14:40:31.000000000 +0000 ++++ gc-7.2alpha6/include/private/thread_local_alloc.h 2012-03-16 00:55:25.252706816 +0000 +@@ -47,7 +47,7 @@ + # define USE_COMPILER_TLS + # elif defined(GC_DGUX386_THREADS) || defined(GC_OSF1_THREADS) \ + || defined(GC_DARWIN_THREADS) || defined(GC_AIX_THREADS) \ +- || defined(GC_NETBSD_THREADS) ++ || defined(GC_NETBSD_THREADS) || defined(GC_HAIKU_THREADS) + # define USE_PTHREAD_SPECIFIC + # elif defined(GC_HPUX_THREADS) + # ifdef __GNUC__ +diff -ru gc-7.2alpha6-orig/os_dep.c gc-7.2alpha6/os_dep.c +--- gc-7.2alpha6-orig/os_dep.c 2011-05-31 15:27:11.000000000 +0000 ++++ gc-7.2alpha6/os_dep.c 2012-03-23 22:32:31.656932864 +0000 +@@ -790,7 +790,7 @@ + } + #endif /* !MSWIN32 */ + +-#ifdef BEOS ++#if defined(BEOS) || defined(HAIKU) + # include + + GC_API int GC_CALL GC_get_stack_base(struct GC_stack_base *sb) +@@ -801,7 +801,7 @@ + return GC_SUCCESS; + } + # define HAVE_GET_STACK_BASE +-#endif /* BEOS */ ++#endif /* BEOS || HAIKU */ + + #ifdef OS2 + GC_API int GC_CALL GC_get_stack_base(struct GC_stack_base *sb) +@@ -1127,7 +1127,7 @@ + # define GET_MAIN_STACKBASE_SPECIAL + #elif !defined(BEOS) && !defined(AMIGA) && !defined(OS2) \ + && !defined(MSWIN32) && !defined(MSWINCE) && !defined(CYGWIN32) \ +- && !defined(GC_OPENBSD_THREADS) \ ++ && !defined(GC_OPENBSD_THREADS) && !defined(HAIKU) \ + && (!defined(GC_SOLARIS_THREADS) || defined(_STRICT_STDC)) + + # if defined(LINUX) && defined(USE_GET_STACKBASE_FOR_MAIN) +@@ -1977,7 +1977,7 @@ + # if !defined(OS2) && !defined(PCR) && !defined(AMIGA) && !defined(MSWIN32) \ + && !defined(MSWINCE) && !defined(MACOS) && !defined(DOS4GW) \ + && !defined(NONSTOP) && !defined(SN_TARGET_PS3) && !defined(RTEMS) \ +- && !defined(__CC_ARM) ++ && !defined(__CC_ARM) && !defined(HAIKU) + + # define SBRK_ARG_T ptrdiff_t + +@@ -2302,6 +2302,19 @@ + } + #endif + ++#ifdef HAIKU ++#include ++ ++ptr_t GC_haiku_get_mem(word bytes) ++{ ++ void* mem; ++ if (posix_memalign(&mem, GC_page_size, bytes) == 0) ++ return mem; ++ else ++ return NULL; ++} ++#endif ++ + #ifdef USE_MUNMAP + + /* For now, this only works on Win32/WinCE and some Unix-like */ +@@ -2903,7 +2916,9 @@ + # elif !defined(MSWIN32) && !defined(MSWINCE) + # include + # include +-# include ++# if !defined(HAIKU) ++# include ++# endif + + # define PROTECT(addr, len) \ + if (mprotect((caddr_t)(addr), (size_t)(len), \ +@@ -3062,6 +3077,8 @@ + /* Empirically c.trapno == 14, on IA32, but is that useful? */ + /* Should probably consider alignment issues on other */ + /* architectures. */ ++# elif defined(HAIKU) ++# define CODE_OK TRUE + # elif defined(HPUX) + # define CODE_OK (si -> si_code == SEGV_ACCERR \ + || si -> si_code == BUS_ADRERR \ +diff -ru gc-7.2alpha6-orig/pthread_support.c gc-7.2alpha6/pthread_support.c +--- gc-7.2alpha6-orig/pthread_support.c 2011-05-31 15:27:11.000000000 +0000 ++++ gc-7.2alpha6/pthread_support.c 2012-03-16 00:39:06.171442176 +0000 +@@ -938,7 +938,8 @@ + GC_nprocs = pthread_num_processors_np(); + # elif defined(GC_OSF1_THREADS) || defined(GC_AIX_THREADS) \ + || defined(GC_SOLARIS_THREADS) || defined(GC_GNU_THREADS) \ +- || defined(PLATFORM_ANDROID) || defined(NACL) ++ || defined(PLATFORM_ANDROID) || defined(NACL) \ ++ || defined(GC_HAIKU_THREADS) + GC_nprocs = sysconf(_SC_NPROCESSORS_ONLN); + if (GC_nprocs <= 0) GC_nprocs = 1; + # elif defined(GC_IRIX_THREADS) diff --git a/dev-libs/boehm-gc/patches/boehm-gc-7.2d.patch b/dev-libs/boehm-gc/patches/boehm-gc-7.2d.patch new file mode 100644 index 000000000..4d2b35488 --- /dev/null +++ b/dev-libs/boehm-gc/patches/boehm-gc-7.2d.patch @@ -0,0 +1,248 @@ +diff -urN gc-7.2/configure.ac gc-7.2-haiku/configure.ac +--- gc-7.2/configure.ac 2012-08-09 13:25:13.047185920 -0700 ++++ gc-7.2-haiku/configure.ac 2013-03-27 00:43:42.665321472 -0700 +@@ -89,6 +89,7 @@ + AH_TEMPLATE([GC_DARWIN_THREADS], [Define to support Darwin pthreads.]) + AH_TEMPLATE([GC_FREEBSD_THREADS], [Define to support FreeBSD pthreads.]) + AH_TEMPLATE([GC_GNU_THREADS], [Define to support GNU pthreads.]) ++AH_TEMPLATE([GC_HAIKU_THREADS], [Define to support Haiku pthreads.]) + AH_TEMPLATE([GC_HPUX_THREADS], [Define to support HP/UX 11 pthreads.]) + AH_TEMPLATE([GC_IRIX_THREADS], [Define to support Irix pthreads.]) + AH_TEMPLATE([GC_LINUX_THREADS], [Define to support pthreads on Linux.]) +@@ -140,6 +141,10 @@ + AC_DEFINE(GC_AIX_THREADS) + AC_DEFINE(_REENTRANT) + ;; ++ *-*-haiku*) ++ AC_DEFINE(GC_HAIKU_THREADS) ++ AC_DEFINE(_REENTRANT) ++ ;; + *-*-hpux11*) + AC_MSG_WARN("Only HP/UX 11 POSIX threads are supported.") + AC_DEFINE(GC_HPUX_THREADS) +diff -urN gc-7.2/dyn_load.c gc-7.2-haiku/dyn_load.c +--- gc-7.2/dyn_load.c 2012-08-09 13:25:13.034603008 -0700 ++++ gc-7.2-haiku/dyn_load.c 2013-03-27 00:43:42.670564352 -0700 +@@ -63,7 +63,7 @@ + !(defined(FREEBSD) && defined(__ELF__)) && \ + !(defined(OPENBSD) && (defined(__ELF__) || defined(M68K))) && \ + !(defined(NETBSD) && defined(__ELF__)) && !defined(HURD) && \ +- !defined(DARWIN) && !defined(CYGWIN32) ++ !defined(DARWIN) && !defined(CYGWIN32) && !defined(HAIKU) + --> We only know how to find data segments of dynamic libraries for the + --> above. Additional SVR4 variants might not be too + --> hard to add. +@@ -1426,6 +1426,22 @@ + + #endif /* DARWIN */ + ++#ifdef HAIKU ++#include ++ ++GC_INNER void GC_register_dynamic_libraries() ++{ ++ image_info info; ++ int32 cookie = 0; ++ while (get_next_image_info(0, &cookie, &info) == B_OK) ++ { ++ void *data = info.data; ++ GC_add_roots_inner(data, data + info.data_size, TRUE); ++ } ++} ++ ++#endif /* HAIKU */ ++ + #elif defined(PCR) + + # include "il/PCR_IL.h" +diff -urN gc-7.2/include/gc_config_macros.h gc-7.2-haiku/include/gc_config_macros.h +--- gc-7.2/include/gc_config_macros.h 2012-08-09 13:25:13.028835840 -0700 ++++ gc-7.2-haiku/include/gc_config_macros.h 2013-03-27 00:51:21.900726784 -0700 +@@ -68,7 +68,8 @@ + || defined(GC_IRIX_THREADS) || defined(GC_LINUX_THREADS) \ + || defined(GC_NETBSD_THREADS) || defined(GC_OPENBSD_THREADS) \ + || defined(GC_OSF1_THREADS) || defined(GC_SOLARIS_THREADS) \ +- || defined(GC_WIN32_THREADS) || defined(GC_RTEMS_PTHREADS) ++ || defined(GC_WIN32_THREADS) || defined(GC_RTEMS_PTHREADS) \ ++ || defined(GC_HAIKU_THREADS) + # ifndef GC_THREADS + # define GC_THREADS + # endif +diff -urN gc-7.2/include/private/config.h.in gc-7.2-haiku/include/private/config.h.in +--- gc-7.2/include/private/config.h.in 2012-08-09 13:25:13.029884416 -0700 ++++ gc-7.2-haiku/include/private/config.h.in 2013-03-27 00:44:56.633602048 -0700 +@@ -48,6 +48,9 @@ + /* Define to support GNU pthreads. */ + #undef GC_GNU_THREADS + ++/* Define to support Haiku pthreads. */ ++#undef GC_HAIKU_THREADS ++ + /* Define if backtrace information is supported. */ + #undef GC_HAVE_BUILTIN_BACKTRACE + +diff -urN gc-7.2/include/private/gcconfig.h gc-7.2-haiku/include/private/gcconfig.h +--- gc-7.2/include/private/gcconfig.h 2012-08-09 13:25:13.030408704 -0700 ++++ gc-7.2-haiku/include/private/gcconfig.h 2013-03-27 00:45:52.350748672 -0700 +@@ -234,6 +234,11 @@ + # define BEOS + # define mach_type_known + # endif ++# if defined(__HAIKU__) && defined(_X86_) ++# define I386 ++# define HAIKU ++# define mach_type_known ++# endif + # if defined(OPENBSD) && defined(__amd64__) + # define X86_64 + # define mach_type_known +@@ -1115,6 +1120,15 @@ + extern int etext[]; + # define DATASTART ((ptr_t)((((word) (etext)) + 0xfff) & ~0xfff)) + # endif ++# ifdef HAIKU ++# define OS_TYPE "HAIKU" ++# include ++# define GETPAGESIZE() B_PAGE_SIZE ++ extern int etext[]; ++# define DATASTART ((ptr_t)((((word) (etext)) + 0xfff) & ~0xfff)) ++# define DYNAMIC_LOADING ++# define MPROTECT_VDB ++# endif + # ifdef SOLARIS + # define OS_TYPE "SOLARIS" + extern int _etext[], _end[]; +@@ -2404,7 +2418,7 @@ + #if defined(SVR4) || defined(LINUX) || defined(IRIX5) || defined(HPUX) \ + || defined(OPENBSD) || defined(NETBSD) || defined(FREEBSD) \ + || defined(DGUX) || defined(BSD) || defined(HURD) \ +- || defined(AIX) || defined(DARWIN) || defined(OSF1) ++ || defined(AIX) || defined(DARWIN) || defined(OSF1) || defined(HAIKU) + # define UNIX_LIKE /* Basic Unix-like system calls work. */ + #endif + +@@ -2482,7 +2496,8 @@ + + #if ((defined(UNIX_LIKE) && (defined(DARWIN) || defined(HURD) \ + || defined(OPENBSD) || defined(ARM32) \ +- || defined(MIPS) || defined(AVR32))) \ ++ || defined(MIPS) || defined(AVR32) \ ++ || defined(HAIKU))) \ + || (defined(LINUX) && (defined(SPARC) || defined(M68K))) \ + || (defined(RTEMS) && defined(I386))) && !defined(NO_GETCONTEXT) + # define NO_GETCONTEXT +@@ -2789,6 +2804,9 @@ + # elif defined(SN_TARGET_PS3) + void *ps3_get_mem(size_t size); + # define GET_MEM(bytes) (struct hblk*)ps3_get_mem(bytes) ++# elif defined(HAIKU) ++ ptr_t GC_haiku_get_mem(GC_word bytes); ++# define GET_MEM(bytes) (struct hblk*)GC_haiku_get_mem(bytes) + # else + ptr_t GC_unix_get_mem(GC_word bytes); + # define GET_MEM(bytes) (struct hblk *)GC_unix_get_mem(bytes) +diff -urN gc-7.2/include/private/thread_local_alloc.h gc-7.2-haiku/include/private/thread_local_alloc.h +--- gc-7.2/include/private/thread_local_alloc.h 2012-08-09 13:25:13.029884416 -0700 ++++ gc-7.2-haiku/include/private/thread_local_alloc.h 2013-03-27 00:49:11.605290496 -0700 +@@ -47,7 +47,8 @@ + # define USE_COMPILER_TLS + # elif defined(GC_DGUX386_THREADS) || defined(GC_OSF1_THREADS) \ + || defined(GC_DARWIN_THREADS) || defined(GC_AIX_THREADS) \ +- || defined(GC_NETBSD_THREADS) || defined(GC_RTEMS_PTHREADS) ++ || defined(GC_NETBSD_THREADS) || defined(GC_RTEMS_PTHREADS) \ ++ || || defined(GC_HAIKU_THREADS) + # define USE_PTHREAD_SPECIFIC + # elif defined(GC_HPUX_THREADS) + # ifdef __GNUC__ +diff -urN gc-7.2/os_dep.c gc-7.2-haiku/os_dep.c +--- gc-7.2/os_dep.c 2012-08-09 13:25:13.034340864 -0700 ++++ gc-7.2-haiku/os_dep.c 2013-03-27 00:46:12.884998144 -0700 +@@ -790,7 +790,7 @@ + } + #endif /* !MSWIN32 */ + +-#ifdef BEOS ++#if defined(BEOS) || defined(HAIKU) + # include + + GC_API int GC_CALL GC_get_stack_base(struct GC_stack_base *sb) +@@ -801,7 +801,7 @@ + return GC_SUCCESS; + } + # define HAVE_GET_STACK_BASE +-#endif /* BEOS */ ++#endif /* BEOS || HAIKU */ + + #ifdef OS2 + GC_API int GC_CALL GC_get_stack_base(struct GC_stack_base *sb) +@@ -1138,7 +1138,7 @@ + # define GET_MAIN_STACKBASE_SPECIAL + #elif !defined(BEOS) && !defined(AMIGA) && !defined(OS2) \ + && !defined(MSWIN32) && !defined(MSWINCE) && !defined(CYGWIN32) \ +- && !defined(GC_OPENBSD_THREADS) \ ++ && !defined(GC_OPENBSD_THREADS) && !defined(HAIKU) \ + && (!defined(GC_SOLARIS_THREADS) || defined(_STRICT_STDC)) + + # if defined(LINUX) && defined(USE_GET_STACKBASE_FOR_MAIN) +@@ -2001,7 +2001,7 @@ + # if !defined(OS2) && !defined(PCR) && !defined(AMIGA) && !defined(MSWIN32) \ + && !defined(MSWINCE) && !defined(MACOS) && !defined(DOS4GW) \ + && !defined(NONSTOP) && !defined(SN_TARGET_PS3) && !defined(RTEMS) \ +- && !defined(__CC_ARM) ++ && !defined(__CC_ARM) && !defined(HAIKU) + + # define SBRK_ARG_T ptrdiff_t + +@@ -2326,6 +2326,19 @@ + } + #endif + ++#ifdef HAIKU ++#include ++ ++ptr_t GC_haiku_get_mem(word bytes) ++{ ++ void* mem; ++ if (posix_memalign(&mem, GC_page_size, bytes) == 0) ++ return mem; ++ else ++ return NULL; ++} ++#endif ++ + #ifdef USE_MUNMAP + + /* For now, this only works on Win32/WinCE and some Unix-like */ +@@ -2927,7 +2940,9 @@ + # elif !defined(MSWIN32) && !defined(MSWINCE) + # include + # include +-# include ++# if !defined(HAIKU) ++# include ++# endif + + # define PROTECT(addr, len) \ + if (mprotect((caddr_t)(addr), (size_t)(len), \ +@@ -3086,6 +3101,8 @@ + /* Empirically c.trapno == 14, on IA32, but is that useful? */ + /* Should probably consider alignment issues on other */ + /* architectures. */ ++# elif defined(HAIKU) ++# define CODE_OK TRUE + # elif defined(HPUX) + # define CODE_OK (si -> si_code == SEGV_ACCERR \ + || si -> si_code == BUS_ADRERR \ +diff -urN gc-7.2/pthread_support.c gc-7.2-haiku/pthread_support.c +--- gc-7.2/pthread_support.c 2012-08-09 13:25:13.048234496 -0700 ++++ gc-7.2-haiku/pthread_support.c 2013-03-27 00:46:12.896794624 -0700 +@@ -999,7 +999,8 @@ + GC_nprocs = pthread_num_processors_np(); + # elif defined(GC_OSF1_THREADS) || defined(GC_AIX_THREADS) \ + || defined(GC_SOLARIS_THREADS) || defined(GC_GNU_THREADS) \ +- || defined(PLATFORM_ANDROID) || defined(NACL) ++ || defined(PLATFORM_ANDROID) || defined(NACL) \ ++ || defined(GC_HAIKU_THREADS) + GC_nprocs = sysconf(_SC_NPROCESSORS_ONLN); + if (GC_nprocs <= 0) GC_nprocs = 1; + # elif defined(GC_IRIX_THREADS) diff --git a/dev-libs/boost/boost-1.42.0.bep b/dev-libs/boost/boost-1.42.0.bep index 48b89b176..9884d876b 100644 --- a/dev-libs/boost/boost-1.42.0.bep +++ b/dev-libs/boost/boost-1.42.0.bep @@ -8,8 +8,8 @@ MESSAGE="This port only builds with gcc4. Use 'setgcc gcc4' before building." DEPEND="" BUILD { cd boost_1_42_0 - ./bootstrap.sh --prefix=/boot/common - ./bjam --prefix=/boot/common \ + ./bootstrap.sh --prefix=`finddir B_COMMON_DIRECTORY` + ./bjam --prefix=`finddir B_COMMON_DIRECTORY` \ --libdir=/boot/common/lib \ --includedir=/boot/common/include \ variant=release \ diff --git a/dev-libs/boost/boost-1.50.0.bep b/dev-libs/boost/boost-1.50.0.bep new file mode 100644 index 000000000..d0eef3144 --- /dev/null +++ b/dev-libs/boost/boost-1.50.0.bep @@ -0,0 +1,50 @@ +DESCRIPTION="boost" +HOMEPAGE="http://www.boost.org/" +SRC_URI="http://sourceforge.net/projects/boost/files/boost/1.50.0/boost_1_50_0.tar.bz2/download" +CHECKSUM_MD5="52dd00be775e689f55a987baebccc462" +REVISION="1" +STATUS_HAIKU="stable" +MESSAGE="This port only builds with gcc4. Use 'setgcc gcc4' before building." +DEPEND="boehm-gc" +BUILD { + cd boost_1_50_0 + ./bootstrap.sh \ + --without-icu \ + --prefix=`finddir B_COMMON_DIRECTORY` \ + --exec-prefix=`finddir B_COMMON_BIN_DIRECTORY` \ + --libdir=`finddir B_COMMON_LIB_DIRECTORY` \ + --includedir=`finddir B_COMMON_HEADERS_DIRECTORY` + ./bjam \ + -sICU_PATH=`finddir B_COMMON_DIRECTORY` \ + -sICONV_PATH=`finddir B_COMMON_DIRECTORY` \ + -d2 \ + --without-mpi \ + --prefix=`finddir B_COMMON_DIRECTORY` \ + --exec-prefix=`finddir B_COMMON_BIN_DIRECTORY` \ + --libdir=`finddir B_COMMON_LIB_DIRECTORY` \ + --includedir=`finddir B_COMMON_HEADERS_DIRECTORY` \ + --enable-threads=posix \ + --enable-thread-local-alloc \ + --enable-parallel-mark \ + inlining=on \ + linkflags=-L`finddir B_COMMON_LIB_DIRECTORY` \ + threading=multi \ + variant=release \ + link=shared \ + runtime-link=shared +} + +INSTALL { + cd boost_1_50_0 + ./bjam install \ + -d2 \ + --prefix=${DESTDIR}/`finddir B_COMMON_DIRECTORY` \ + #--exec-prefix=${DESTDIR}/`finddir B_COMMON_BIN_DIRECTORY` \ + #--libdir=${DESTDIR}/`finddir B_COMMON_LIB_DIRECTORY` \ + #--includedir=${DESTDIR}/`finddir B_COMMON_HEADERS_DIRECTORY` \ + inlining=on \ + --without-mpi +} + +LICENSE="Boost v1.0" +COPYRIGHT="1998-2011 Beman Dawes, David Abrahams, Rene Rivera, et al." diff --git a/dev-libs/boost/boost-1.53.0.bep b/dev-libs/boost/boost-1.53.0.bep new file mode 100644 index 000000000..65dfda630 --- /dev/null +++ b/dev-libs/boost/boost-1.53.0.bep @@ -0,0 +1,50 @@ +DESCRIPTION="boost" +HOMEPAGE="http://www.boost.org/" +SRC_URI="http://sourceforge.net/projects/boost/files/boost/1.53.0/boost_1_53_0.tar.bz2/download" +CHECKSUM_MD5="a00d22605d5dbcfb4c9936a9b35bc4c2" +REVISION="1" +STATUS_HAIKU="broken" +MESSAGE="This port only builds with gcc4. Use 'setgcc gcc4' before building." +DEPEND="boehm-gc" +BUILD { + cd boost_1_53_0 + ./bootstrap.sh \ + --without-icu \ + --prefix=`finddir B_COMMON_DIRECTORY` \ + --exec-prefix=`finddir B_COMMON_BIN_DIRECTORY` \ + --libdir=`finddir B_COMMON_LIB_DIRECTORY` \ + --includedir=`finddir B_COMMON_HEADERS_DIRECTORY` + ./bjam \ + -sICU_PATH=`finddir B_COMMON_DIRECTORY` \ + -sICONV_PATH=`finddir B_COMMON_DIRECTORY` \ + -d2 \ + --without-mpi \ + --prefix=`finddir B_COMMON_DIRECTORY` \ + --exec-prefix=`finddir B_COMMON_BIN_DIRECTORY` \ + --libdir=`finddir B_COMMON_LIB_DIRECTORY` \ + --includedir=`finddir B_COMMON_HEADERS_DIRECTORY` \ + --enable-threads=posix \ + --enable-thread-local-alloc \ + --enable-parallel-mark \ + inlining=on \ + linkflags=-L`finddir B_COMMON_LIB_DIRECTORY` \ + threading=multi \ + variant=release \ + link=shared \ + runtime-link=shared +} + +INSTALL { + cd boost_1_53_0 + ./bjam install \ + -d2 \ + --prefix=${DESTDIR}/`finddir B_COMMON_DIRECTORY` \ + #--exec-prefix=${DESTDIR}/`finddir B_COMMON_BIN_DIRECTORY` \ + #--libdir=${DESTDIR}/`finddir B_COMMON_LIB_DIRECTORY` \ + #--includedir=${DESTDIR}/`finddir B_COMMON_HEADERS_DIRECTORY` \ + inlining=on \ + --without-mpi +} + +LICENSE="Boost v1.0" +COPYRIGHT="1998-2013 Beman Dawes, David Abrahams, Rene Rivera, et al." diff --git a/dev-libs/boost/licenses/Boost v1.0 b/dev-libs/boost/licenses/Boost v1.0 new file mode 100644 index 000000000..36b7cd93c --- /dev/null +++ b/dev-libs/boost/licenses/Boost v1.0 @@ -0,0 +1,23 @@ +Boost Software License - Version 1.0 - August 17th, 2003 + +Permission is hereby granted, free of charge, to any person or organization +obtaining a copy of the software and accompanying documentation covered by +this license (the "Software") to use, reproduce, display, distribute, +execute, and transmit the Software, and to prepare derivative works of the +Software, and to permit third-parties to whom the Software is furnished to +do so, all subject to the following: + +The copyright notices in the Software and this entire statement, including +the above license grant, this restriction and the following disclaimer, +must be included in all copies of the Software, in whole or in part, and +all derivative works of the Software, unless such copies or derivative +works are solely in the form of machine-executable object code generated by +a source language processor. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT +SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE +FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, +ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. diff --git a/dev-libs/boost/patches/boost-1.50.0.patch b/dev-libs/boost/patches/boost-1.50.0.patch new file mode 100644 index 000000000..5a25a3870 --- /dev/null +++ b/dev-libs/boost/patches/boost-1.50.0.patch @@ -0,0 +1,337 @@ +diff -Naur boost_1_50_0/boost/config/platform/haiku.hpp boost_1_50_0-haiku/boost/config/platform/haiku.hpp +--- boost_1_50_0/boost/config/platform/haiku.hpp 1970-01-01 01:00:00.000000000 +0100 ++++ boost_1_50_0-haiku/boost/config/platform/haiku.hpp 2012-08-16 01:16:44.000000000 +0200 +@@ -0,0 +1,27 @@ ++//  (C) Copyright John Maddock 2001. ++//  Use, modification and distribution are subject to the ++//  Boost Software License, Version 1.0. (See accompanying file ++//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) ++ ++//  See http://www.boost.org for most recent version. ++ ++//  Haiku specific config options: ++ ++#define BOOST_PLATFORM "Haiku" ++ ++#define BOOST_NO_INTRINSIC_WCHAR_T ++#define BOOST_HAS_UNISTD_H ++ ++#define BOOST_HAS_BETHREADS ++ ++#ifndef BOOST_DISABLE_THREADS ++# define BOOST_HAS_THREADS ++#endif ++ ++// ++// thread API's not auto detected: ++// ++#define BOOST_HAS_GETTIMEOFDAY ++ ++// boilerplate code: ++#include +diff -Naur boost_1_50_0/boost/config/select_platform_config.hpp boost_1_50_0-haiku/boost/config/select_platform_config.hpp +--- boost_1_50_0/boost/config/select_platform_config.hpp 2011-10-10 13:50:55.047185920 +0200 ++++ boost_1_50_0-haiku/boost/config/select_platform_config.hpp 2012-08-16 13:32:04.000000000 +0200 +@@ -41,6 +41,10 @@ + // win32: + # define BOOST_PLATFORM_CONFIG "boost/config/platform/win32.hpp" + ++#elif defined(__HAIKU__) ++// Haiku ++# define BOOST_PLATFORM_CONFIG "boost/config/platform/haiku.hpp" ++ + #elif defined(__BEOS__) + // BeOS + # define BOOST_PLATFORM_CONFIG "boost/config/platform/beos.hpp" +diff -Naur boost_1_50_0/boost/config/stdlib/libstdcpp3.hpp boost_1_50_0-haiku/boost/config/stdlib/libstdcpp3.hpp +--- boost_1_50_0/boost/config/stdlib/libstdcpp3.hpp 2012-05-15 13:57:21.047972352 +0200 ++++ boost_1_50_0-haiku/boost/config/stdlib/libstdcpp3.hpp 2012-08-16 15:22:26.000000000 +0200 +@@ -35,7 +35,8 @@ + # if defined(_GLIBCXX_HAVE_GTHR_DEFAULT) \ + || defined(_GLIBCXX__PTHREADS) \ + || defined(_GLIBCXX_HAS_GTHREADS) \ +- || defined(_WIN32) ++ || defined(_WIN32) \ ++ || defined(__HAIKU__) + // + // If the std lib has thread support turned on, then turn it on in Boost + // as well. We do this because some gcc-3.4 std lib headers define _REENTANT +diff -Naur boost_1_50_0/boost/thread/detail/platform.hpp boost_1_50_0-haiku/boost/thread/detail/platform.hpp +--- boost_1_50_0/boost/thread/detail/platform.hpp 2012-05-22 19:03:15.043253760 +0200 ++++ boost_1_50_0-haiku/boost/thread/detail/platform.hpp 2012-08-16 23:24:30.135266304 +0200 +@@ -34,6 +34,8 @@ + # define BOOST_THREAD_WIN32 + #elif defined(__BEOS__) + # define BOOST_THREAD_BEOS ++#elif defined(__HAIKU__) ++# define BOOST_THREAD_BEOS + #elif defined(macintosh) || defined(__APPLE__) || defined(__APPLE_CC__) + # define BOOST_THREAD_MACOS + # define BOOST_THREAD_WAIT_BUG boost::posix_time::microseconds(1000) +diff -Naur boost_1_50_0/tools/build/v2/engine/boehm_gc/dyn_load.c boost_1_50_0-haiku/tools/build/v2/engine/boehm_gc/dyn_load.c +--- boost_1_50_0/tools/build/v2/engine/boehm_gc/dyn_load.c 2011-06-06 22:36:21.020185088 +0200 ++++ boost_1_50_0-haiku/tools/build/v2/engine/boehm_gc/dyn_load.c 2012-08-16 13:10:40.000000000 +0200 +@@ -64,7 +64,7 @@ + !defined(AIX) && !defined(SCO_ELF) && !defined(DGUX) && \ + !(defined(FREEBSD) && defined(__ELF__)) && \ + !(defined(NETBSD) && defined(__ELF__)) && !defined(HURD) && \ +- !defined(DARWIN) && !defined(CYGWIN32) ++ !defined(DARWIN) && !defined(CYGWIN32) !(defined(HAIKU) + --> We only know how to find data segments of dynamic libraries for the + --> above. Additional SVR4 variants might not be too + --> hard to add. +@@ -82,6 +82,10 @@ + # define ELFSIZE ARCH_ELFSIZE + #endif + ++#if defined(HAIKU) ++ ++#endif ++ + #if defined(LINUX) && defined(__ELF__) || defined(SCO_ELF) || \ + (defined(FREEBSD) && defined(__ELF__)) || defined(DGUX) || \ + (defined(NETBSD) && defined(__ELF__)) || defined(HURD) +@@ -216,7 +220,8 @@ + + #if defined(LINUX) && defined(__ELF__) || defined(SCO_ELF) || \ + (defined(FREEBSD) && defined(__ELF__)) || defined(DGUX) || \ +- (defined(NETBSD) && defined(__ELF__)) || defined(HURD) ++ (defined(NETBSD) && defined(__ELF__)) || defined(HURD) || \ ++ defined(HAIKU) + + + #ifdef USE_PROC_FOR_LIBRARIES +diff -Naur boost_1_50_0/tools/build/v2/engine/boehm_gc/include/gc_config_macros.h boost_1_50_0-haiku/tools/build/v2/engine/boehm_gc/include/gc_config_macros.h +--- boost_1_50_0/tools/build/v2/engine/boehm_gc/include/gc_config_macros.h 2011-06-06 22:36:21.022282240 +0200 ++++ boost_1_50_0-haiku/tools/build/v2/engine/boehm_gc/include/gc_config_macros.h 2012-08-16 13:17:27.000000000 +0200 +@@ -45,7 +45,8 @@ + || defined(GC_AIX_THREADS) \ + || defined(GC_LINUX_THREADS) \ + || defined(GC_NETBSD_THREADS) \ +- || defined(GC_GNU_THREADS)) ++ || defined(GC_GNU_THREADS)) \ ++ || defined(GC_HAIKU_THREADS) + # define _REENTRANT + /* Better late than never. This fails if system headers that */ + /* depend on this were previously included. */ +@@ -62,6 +63,7 @@ + # if defined(GC_SOLARIS_THREADS) || defined(GC_FREEBSD_THREADS) || \ + defined(GC_IRIX_THREADS) || defined(GC_LINUX_THREADS) || \ + defined(GC_HPUX_THREADS) || defined(GC_OSF1_THREADS) || \ ++ defined(GC_HAIKU_THREADS) || \ + defined(GC_DGUX386_THREADS) || defined(GC_DARWIN_THREADS) || \ + defined(GC_AIX_THREADS) || defined(GC_NETBSD_THREADS) || \ + (defined(GC_WIN32_THREADS) && defined(__CYGWIN32__)) || \ +diff -Naur boost_1_50_0/tools/build/v2/engine/boehm_gc/include/gc.h boost_1_50_0-haiku/tools/build/v2/engine/boehm_gc/include/gc.h +--- boost_1_50_0/tools/build/v2/engine/boehm_gc/include/gc.h 2011-06-06 22:36:21.022020096 +0200 ++++ boost_1_50_0-haiku/tools/build/v2/engine/boehm_gc/include/gc.h 2012-08-16 13:12:51.000000000 +0200 +@@ -494,7 +494,7 @@ + /* of compilers. */ + /* This may also be desirable if it is possible but expensive to */ + /* retrieve the call chain. */ +-#if (defined(__linux__) || defined(__NetBSD__) || defined(__OpenBSD__) \ ++#if (defined(__linux__) || defined(__NetBSD__) || defined(__OpenBSD__) || defined(__HAIKU__) \ + || defined(__FreeBSD__) || defined(__DragonFly__)) & !defined(GC_CAN_SAVE_CALL_STACKS) + # define GC_ADD_CALLER + # if __GNUC__ >= 3 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 95) +diff -Naur boost_1_50_0/tools/build/v2/engine/boehm_gc/include/private/gcconfig.h boost_1_50_0-haiku/tools/build/v2/engine/boehm_gc/include/private/gcconfig.h +--- boost_1_50_0/tools/build/v2/engine/boehm_gc/include/private/gcconfig.h 2011-06-06 22:36:21.024117248 +0200 ++++ boost_1_50_0-haiku/tools/build/v2/engine/boehm_gc/include/private/gcconfig.h 2012-08-16 13:49:16.000000000 +0200 +@@ -215,6 +215,11 @@ + # define BEOS + # define mach_type_known + # endif ++# if defined(__HAIKU__) && defined(_X86_) ++# define I386 ++# define HAIKU ++# define mach_type_known ++# endif + # if defined(LINUX) && (defined(i386) || defined(__i386__)) + # define I386 + # define mach_type_known +@@ -1014,6 +1019,13 @@ + extern int etext[]; + # define DATASTART ((ptr_t)((((word) (etext)) + 0xfff) & ~0xfff)) + # endif ++# ifdef HAIKU ++# define OS_TYPE "HAIKU" ++# include ++# define GETPAGESIZE() B_PAGE_SIZE ++ extern int etext[]; ++# define DATASTART ((ptr_t)((((word) (etext)) + 0xfff) & ~0xfff)) ++# endif + # ifdef SOLARIS + # define OS_TYPE "SOLARIS" + extern int _etext[], _end[]; +diff -Naur boost_1_50_0/tools/build/v2/engine/boehm_gc/os_dep.c boost_1_50_0-haiku/tools/build/v2/engine/boehm_gc/os_dep.c +--- boost_1_50_0/tools/build/v2/engine/boehm_gc/os_dep.c 2011-06-06 22:36:21.030408704 +0200 ++++ boost_1_50_0-haiku/tools/build/v2/engine/boehm_gc/os_dep.c 2012-08-16 13:52:23.000000000 +0200 +@@ -777,6 +777,16 @@ + # endif /* BEOS */ + + ++# ifdef HAIKU ++# include ++ptr_t GC_get_main_stack_base(void){ ++ thread_info th; ++ get_thread_info(find_thread(NULL),&th); ++ return th.stack_end; ++} ++# endif /* HAIKU */ ++ ++ + # ifdef OS2 + + ptr_t GC_get_main_stack_base(void) +@@ -1095,7 +1105,7 @@ + + #endif /* FREEBSD_STACKBOTTOM */ + +-#if !defined(BEOS) && !defined(AMIGA) && !defined(MSWIN32) \ ++#if !defined(BEOS) && !defined(HAIKU) && !defined(AMIGA) && !defined(MSWIN32) \ + && !defined(MSWINCE) && !defined(OS2) && !defined(NOSYS) && !defined(ECOS) \ + && !defined(CYGWIN32) + +@@ -1154,7 +1164,7 @@ + # endif /* STACKBOTTOM */ + } + +-# endif /* ! AMIGA, !OS 2, ! MS Windows, !BEOS, !NOSYS, !ECOS */ ++# endif /* ! AMIGA, !OS 2, ! MS Windows, !BEOS, !HAIKU, !NOSYS, !ECOS */ + + #if defined(GC_LINUX_THREADS) && !defined(HAVE_GET_STACK_BASE) + +diff -Naur boost_1_50_0/tools/build/v2/engine/fileunix.c boost_1_50_0-haiku/tools/build/v2/engine/fileunix.c +--- boost_1_50_0/tools/build/v2/engine/fileunix.c 2012-04-26 05:35:55.037224448 +0200 ++++ boost_1_50_0-haiku/tools/build/v2/engine/fileunix.c 2012-08-16 13:54:03.000000000 +0200 +@@ -81,6 +81,7 @@ + + # if defined( OS_QNX ) || \ + defined( OS_BEOS ) || \ ++ defined( OS_HAIKU ) || \ + defined( OS_MPEIX ) + # define NO_AR + # define HAVE_AR +diff -Naur boost_1_50_0/tools/build/v2/engine/jam.h boost_1_50_0-haiku/tools/build/v2/engine/jam.h +--- boost_1_50_0/tools/build/v2/engine/jam.h 2012-06-06 06:00:21.039059456 +0200 ++++ boost_1_50_0-haiku/tools/build/v2/engine/jam.h 2012-08-16 13:57:51.000000000 +0200 +@@ -151,6 +151,11 @@ + #define OS_BEOS + #define NO_VFORK + #endif ++#ifdef __HAIKU__ ++ #define unix ++ #define OSMINOR "OS=HAIKU" ++ #define OS_HAIKU ++#endif + #ifdef __bsdi__ + #define OSMINOR "OS=BSDI" + #define OS_BSDI +diff -Naur boost_1_50_0/tools/build/v2/engine/jambase.c boost_1_50_0-haiku/tools/build/v2/engine/jambase.c +--- boost_1_50_0/tools/build/v2/engine/jambase.c 2011-06-06 22:36:21.039321600 +0200 ++++ boost_1_50_0-haiku/tools/build/v2/engine/jambase.c 2012-08-16 14:03:05.000000000 +0200 +@@ -548,6 +548,18 @@ + "NOARSCAN ?= true ;\n", + "STDHDRS ?= /boot/develop/headers/posix ;\n", + "}\n", ++"else if $(OS) = HAIKU\n", ++"{\n", ++"BINDIR ?= /boot/common/bin ;\n", ++"CC ?= gcc ;\n", ++"C++ ?= $(CC) ;\n", ++"FORTRAN ?= \"\" ;\n", ++"LIBDIR ?= /boot/common/lib ;\n", ++"LINK ?= gcc ;\n", ++"LINKLIBS ?= -lnetwork ;\n", ++"NOARSCAN ?= true ;\n", ++"STDHDRS ?= /boot/develop/headers/posix ;\n", ++"}\n", + "else if $(OS) = BEOS\n", + "{\n", + "BINDIR ?= /boot/apps ;\n", +diff -Naur boost_1_50_0/tools/build/v2/tools/builtin.jam boost_1_50_0-haiku/tools/build/v2/tools/builtin.jam +--- boost_1_50_0/tools/build/v2/tools/builtin.jam 2011-06-06 22:36:21.022020096 +0200 ++++ boost_1_50_0-haiku/tools/build/v2/tools/builtin.jam 2012-08-16 15:57:04.000000000 +0200 +@@ -40,7 +40,7 @@ + + + .os-names = aix bsd cygwin darwin freebsd hpux iphone linux netbsd +- openbsd osf qnx qnxnto sgi solaris unix unixware windows ++ openbsd osf qnx qnxnto sgi solaris unix unixware windows haiku + elf # Not actually an OS -- used for targeting bare metal where + # object format is ELF. This catches both -elf and -eabi gcc + # targets and well as other compilers targeting ELF. It is not +@@ -75,6 +75,7 @@ + case COHERENT : host-os = unix ; + case DRAGONFLYBSD : host-os = bsd ; + case IRIX : host-os = sgi ; ++ case HAIKU : host-os = haiku ; + case MACOSX : host-os = darwin ; + case KFREEBSD : host-os = freebsd ; + case LINUX : host-os = linux ; +diff -Naur boost_1_50_0/tools/build/v2/tools/builtin.py boost_1_50_0-haiku/tools/build/v2/tools/builtin.py +--- boost_1_50_0/tools/build/v2/tools/builtin.py 2012-04-26 05:35:55.022020096 +0200 ++++ boost_1_50_0-haiku/tools/build/v2/tools/builtin.py 2012-08-16 15:59:13.000000000 +0200 +@@ -103,6 +103,7 @@ + elif host_os == 'MACOSX': host_os = 'darwin' + elif host_os == 'KFREEBSD': host_os = 'freebsd' + elif host_os == 'LINUX': host_os = 'linux' ++ elif host_os == 'HAIKU': host_os = 'haiku' + else: host_os = 'unix' + return host_os.lower() + +diff -Naur boost_1_50_0/tools/build/v2/tools/gcc.jam boost_1_50_0-haiku/tools/build/v2/tools/gcc.jam +--- boost_1_50_0/tools/build/v2/tools/gcc.jam 2012-04-26 05:35:55.025165824 +0200 ++++ boost_1_50_0-haiku/tools/build/v2/tools/gcc.jam 2012-08-16 13:40:12.000000000 +0200 +@@ -1050,6 +1050,10 @@ + case beos : + { + # BeOS has no threading options, so do not set anything here. ++ } ++ case haiku : ++ { ++ option = ; + } + case *bsd : + { +@@ -1067,7 +1071,7 @@ + } + case * : + { +- option = -pthread ; ++ option = -pthreads ; + libs = rt ; + } + } +diff -Naur boost_1_50_0/tools/build/v2/tools/gcc.py boost_1_50_0-haiku/tools/build/v2/tools/gcc.py +--- boost_1_50_0/tools/build/v2/tools/gcc.py 2012-04-26 05:35:55.025165824 +0200 ++++ boost_1_50_0-haiku/tools/build/v2/tools/gcc.py 2012-08-16 15:06:53.000000000 +0200 +@@ -675,6 +675,9 @@ + elif host_os_name == 'BeOS': + # BeOS has no threading options, don't set anything here. + pass ++ elif host_os_name == 'Haiku': ++ flags('gcc', 'OPTIONS', ['multi'], ['-lroot']) ++ # there is no -lrt on HAIKU + elif host_os_name.endswith('BSD'): + flags('gcc', 'OPTIONS', ['multi'], ['-pthread']) + # there is no -lrt on BSD +diff -Naur boost_1_50_0/tools/build/v2/tools/python.jam boost_1_50_0-haiku/tools/build/v2/tools/python.jam +--- boost_1_50_0/tools/build/v2/tools/python.jam 2012-04-26 05:35:55.029097984 +0200 ++++ boost_1_50_0-haiku/tools/build/v2/tools/python.jam 2012-08-16 15:52:51.000000000 +0200 +@@ -648,13 +648,14 @@ + case qnx* : return ; + case darwin : return ; + case windows : return ; ++ case haiku : return ; + + case hpux : return rt ; + case *bsd : return pthread gcc:util ; + + case aix : return pthread dl ; + +- case * : return pthread dl ++ case * : return ; pthread dl + gcc:util linux:util ; + } + } diff --git a/dev-libs/boost/patches/boost-1.53.0.patch b/dev-libs/boost/patches/boost-1.53.0.patch new file mode 100644 index 000000000..7210abc07 --- /dev/null +++ b/dev-libs/boost/patches/boost-1.53.0.patch @@ -0,0 +1,337 @@ +diff -urN boost_1_53_0/boost/config/platform/haiku.hpp boost_1_53_0-haiku/boost/config/platform/haiku.hpp +--- boost_1_53_0/boost/config/platform/haiku.hpp 1969-12-31 16:00:00.000000000 -0800 ++++ boost_1_53_0-haiku/boost/config/platform/haiku.hpp 2013-03-28 00:49:51.271056896 -0700 +@@ -0,0 +1,27 @@ ++//  (C) Copyright John Maddock 2001. ++//  Use, modification and distribution are subject to the ++//  Boost Software License, Version 1.0. (See accompanying file ++//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) ++ ++//  See http://www.boost.org for most recent version. ++ ++//  Haiku specific config options: ++ ++#define BOOST_PLATFORM "Haiku" ++ ++#define BOOST_NO_INTRINSIC_WCHAR_T ++#define BOOST_HAS_UNISTD_H ++ ++#define BOOST_HAS_BETHREADS ++ ++#ifndef BOOST_DISABLE_THREADS ++# define BOOST_HAS_THREADS ++#endif ++ ++// ++// thread API's not auto detected: ++// ++#define BOOST_HAS_GETTIMEOFDAY ++ ++// boilerplate code: ++#include +diff -urN boost_1_53_0/boost/config/select_platform_config.hpp boost_1_53_0-haiku/boost/config/select_platform_config.hpp +--- boost_1_53_0/boost/config/select_platform_config.hpp 2011-10-10 04:50:55.036175872 -0700 ++++ boost_1_53_0-haiku/boost/config/select_platform_config.hpp 2013-03-28 00:40:07.746586112 -0700 +@@ -41,6 +41,10 @@ + // win32: + # define BOOST_PLATFORM_CONFIG "boost/config/platform/win32.hpp" + ++#elif defined(__HAIKU__) ++// Haiku ++# define BOOST_PLATFORM_CONFIG "boost/config/platform/haiku.hpp" ++ + #elif defined(__BEOS__) + // BeOS + # define BOOST_PLATFORM_CONFIG "boost/config/platform/beos.hpp" +diff -urN boost_1_53_0/boost/config/stdlib/libstdcpp3.hpp boost_1_53_0-haiku/boost/config/stdlib/libstdcpp3.hpp +--- boost_1_53_0/boost/config/stdlib/libstdcpp3.hpp 2012-07-15 08:59:05.036700160 -0700 ++++ boost_1_53_0-haiku/boost/config/stdlib/libstdcpp3.hpp 2013-03-28 00:40:17.162267136 -0700 +@@ -35,7 +35,8 @@ + # if defined(_GLIBCXX_HAVE_GTHR_DEFAULT) \ + || defined(_GLIBCXX__PTHREADS) \ + || defined(_GLIBCXX_HAS_GTHREADS) \ +- || defined(_WIN32) ++ || defined(_WIN32) \ ++ || defined(__HAIKU__) + // + // If the std lib has thread support turned on, then turn it on in Boost + // as well. We do this because some gcc-3.4 std lib headers define _REENTANT +diff -urN boost_1_53_0/boost/thread/detail/platform.hpp boost_1_53_0-haiku/boost/thread/detail/platform.hpp +--- boost_1_53_0/boost/thread/detail/platform.hpp 2012-07-08 22:55:01.064225280 -0700 ++++ boost_1_53_0-haiku/boost/thread/detail/platform.hpp 2013-03-28 00:40:28.586153984 -0700 +@@ -34,6 +34,8 @@ + # define BOOST_THREAD_WIN32 + #elif defined(__BEOS__) + # define BOOST_THREAD_BEOS ++#elif defined(__HAIKU__) ++# define BOOST_THREAD_BEOS + #elif defined(macintosh) || defined(__APPLE__) || defined(__APPLE_CC__) + # define BOOST_THREAD_MACOS + //# define BOOST_THREAD_WAIT_BUG boost::posix_time::microseconds(1000) +diff -urN boost_1_53_0/tools/build/v2/engine/boehm_gc/dyn_load.c boost_1_53_0-haiku/tools/build/v2/engine/boehm_gc/dyn_load.c +--- boost_1_53_0/tools/build/v2/engine/boehm_gc/dyn_load.c 2011-06-06 13:36:21.029360128 -0700 ++++ boost_1_53_0-haiku/tools/build/v2/engine/boehm_gc/dyn_load.c 2013-03-28 00:40:38.863240192 -0700 +@@ -64,7 +64,7 @@ + !defined(AIX) && !defined(SCO_ELF) && !defined(DGUX) && \ + !(defined(FREEBSD) && defined(__ELF__)) && \ + !(defined(NETBSD) && defined(__ELF__)) && !defined(HURD) && \ +- !defined(DARWIN) && !defined(CYGWIN32) ++ !defined(DARWIN) && !defined(CYGWIN32) !(defined(HAIKU) + --> We only know how to find data segments of dynamic libraries for the + --> above. Additional SVR4 variants might not be too + --> hard to add. +@@ -82,6 +82,10 @@ + # define ELFSIZE ARCH_ELFSIZE + #endif + ++#if defined(HAIKU) ++ ++#endif ++ + #if defined(LINUX) && defined(__ELF__) || defined(SCO_ELF) || \ + (defined(FREEBSD) && defined(__ELF__)) || defined(DGUX) || \ + (defined(NETBSD) && defined(__ELF__)) || defined(HURD) +@@ -216,7 +220,8 @@ + + #if defined(LINUX) && defined(__ELF__) || defined(SCO_ELF) || \ + (defined(FREEBSD) && defined(__ELF__)) || defined(DGUX) || \ +- (defined(NETBSD) && defined(__ELF__)) || defined(HURD) ++ (defined(NETBSD) && defined(__ELF__)) || defined(HURD) || \ ++ defined(HAIKU) + + + #ifdef USE_PROC_FOR_LIBRARIES +diff -urN boost_1_53_0/tools/build/v2/engine/boehm_gc/include/gc_config_macros.h boost_1_53_0-haiku/tools/build/v2/engine/boehm_gc/include/gc_config_macros.h +--- boost_1_53_0/tools/build/v2/engine/boehm_gc/include/gc_config_macros.h 2011-06-06 13:36:21.031719424 -0700 ++++ boost_1_53_0-haiku/tools/build/v2/engine/boehm_gc/include/gc_config_macros.h 2013-03-28 00:40:49.546045952 -0700 +@@ -45,7 +45,8 @@ + || defined(GC_AIX_THREADS) \ + || defined(GC_LINUX_THREADS) \ + || defined(GC_NETBSD_THREADS) \ +- || defined(GC_GNU_THREADS)) ++ || defined(GC_GNU_THREADS)) \ ++ || defined(GC_HAIKU_THREADS) + # define _REENTRANT + /* Better late than never. This fails if system headers that */ + /* depend on this were previously included. */ +@@ -62,6 +63,7 @@ + # if defined(GC_SOLARIS_THREADS) || defined(GC_FREEBSD_THREADS) || \ + defined(GC_IRIX_THREADS) || defined(GC_LINUX_THREADS) || \ + defined(GC_HPUX_THREADS) || defined(GC_OSF1_THREADS) || \ ++ defined(GC_HAIKU_THREADS) || \ + defined(GC_DGUX386_THREADS) || defined(GC_DARWIN_THREADS) || \ + defined(GC_AIX_THREADS) || defined(GC_NETBSD_THREADS) || \ + (defined(GC_WIN32_THREADS) && defined(__CYGWIN32__)) || \ +diff -urN boost_1_53_0/tools/build/v2/engine/boehm_gc/include/gc.h boost_1_53_0-haiku/tools/build/v2/engine/boehm_gc/include/gc.h +--- boost_1_53_0/tools/build/v2/engine/boehm_gc/include/gc.h 2011-06-06 13:36:21.031195136 -0700 ++++ boost_1_53_0-haiku/tools/build/v2/engine/boehm_gc/include/gc.h 2013-03-28 00:40:57.427556864 -0700 +@@ -494,7 +494,7 @@ + /* of compilers. */ + /* This may also be desirable if it is possible but expensive to */ + /* retrieve the call chain. */ +-#if (defined(__linux__) || defined(__NetBSD__) || defined(__OpenBSD__) \ ++#if (defined(__linux__) || defined(__NetBSD__) || defined(__OpenBSD__) || defined(__HAIKU__) \ + || defined(__FreeBSD__) || defined(__DragonFly__)) & !defined(GC_CAN_SAVE_CALL_STACKS) + # define GC_ADD_CALLER + # if __GNUC__ >= 3 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 95) +diff -urN boost_1_53_0/tools/build/v2/engine/boehm_gc/include/private/gcconfig.h boost_1_53_0-haiku/tools/build/v2/engine/boehm_gc/include/private/gcconfig.h +--- boost_1_53_0/tools/build/v2/engine/boehm_gc/include/private/gcconfig.h 2011-06-06 13:36:21.034078720 -0700 ++++ boost_1_53_0-haiku/tools/build/v2/engine/boehm_gc/include/private/gcconfig.h 2013-03-28 00:41:08.074448896 -0700 +@@ -215,6 +215,11 @@ + # define BEOS + # define mach_type_known + # endif ++# if defined(__HAIKU__) && defined(_X86_) ++# define I386 ++# define HAIKU ++# define mach_type_known ++# endif + # if defined(LINUX) && (defined(i386) || defined(__i386__)) + # define I386 + # define mach_type_known +@@ -1014,6 +1019,13 @@ + extern int etext[]; + # define DATASTART ((ptr_t)((((word) (etext)) + 0xfff) & ~0xfff)) + # endif ++# ifdef HAIKU ++# define OS_TYPE "HAIKU" ++# include ++# define GETPAGESIZE() B_PAGE_SIZE ++ extern int etext[]; ++# define DATASTART ((ptr_t)((((word) (etext)) + 0xfff) & ~0xfff)) ++# endif + # ifdef SOLARIS + # define OS_TYPE "SOLARIS" + extern int _etext[], _end[]; +diff -urN boost_1_53_0/tools/build/v2/engine/boehm_gc/os_dep.c boost_1_53_0-haiku/tools/build/v2/engine/boehm_gc/os_dep.c +--- boost_1_53_0/tools/build/v2/engine/boehm_gc/os_dep.c 2011-06-06 13:36:21.039583744 -0700 ++++ boost_1_53_0-haiku/tools/build/v2/engine/boehm_gc/os_dep.c 2013-03-28 00:41:17.561774592 -0700 +@@ -777,6 +777,16 @@ + # endif /* BEOS */ + + ++# ifdef HAIKU ++# include ++ptr_t GC_get_main_stack_base(void){ ++ thread_info th; ++ get_thread_info(find_thread(NULL),&th); ++ return th.stack_end; ++} ++# endif /* HAIKU */ ++ ++ + # ifdef OS2 + + ptr_t GC_get_main_stack_base(void) +@@ -1095,7 +1105,7 @@ + + #endif /* FREEBSD_STACKBOTTOM */ + +-#if !defined(BEOS) && !defined(AMIGA) && !defined(MSWIN32) \ ++#if !defined(BEOS) && !defined(HAIKU) && !defined(AMIGA) && !defined(MSWIN32) \ + && !defined(MSWINCE) && !defined(OS2) && !defined(NOSYS) && !defined(ECOS) \ + && !defined(CYGWIN32) + +@@ -1154,7 +1164,7 @@ + # endif /* STACKBOTTOM */ + } + +-# endif /* ! AMIGA, !OS 2, ! MS Windows, !BEOS, !NOSYS, !ECOS */ ++# endif /* ! AMIGA, !OS 2, ! MS Windows, !BEOS, !HAIKU, !NOSYS, !ECOS */ + + #if defined(GC_LINUX_THREADS) && !defined(HAVE_GET_STACK_BASE) + +diff -urN boost_1_53_0/tools/build/v2/engine/fileunix.c boost_1_53_0-haiku/tools/build/v2/engine/fileunix.c +--- boost_1_53_0/tools/build/v2/engine/fileunix.c 2012-04-25 20:35:55.046399488 -0700 ++++ boost_1_53_0-haiku/tools/build/v2/engine/fileunix.c 2013-03-28 00:41:26.497549312 -0700 +@@ -81,6 +81,7 @@ + + # if defined( OS_QNX ) || \ + defined( OS_BEOS ) || \ ++ defined( OS_HAIKU ) || \ + defined( OS_MPEIX ) + # define NO_AR + # define HAVE_AR +diff -urN boost_1_53_0/tools/build/v2/engine/jam.h boost_1_53_0-haiku/tools/build/v2/engine/jam.h +--- boost_1_53_0/tools/build/v2/engine/jam.h 2012-06-05 21:00:21.048234496 -0700 ++++ boost_1_53_0-haiku/tools/build/v2/engine/jam.h 2013-03-28 00:41:36.127139840 -0700 +@@ -151,6 +151,11 @@ + #define OS_BEOS + #define NO_VFORK + #endif ++#ifdef __HAIKU__ ++ #define unix ++ #define OSMINOR "OS=HAIKU" ++ #define OS_HAIKU ++#endif + #ifdef __bsdi__ + #define OSMINOR "OS=BSDI" + #define OS_BSDI +diff -urN boost_1_53_0/tools/build/v2/engine/jambase.c boost_1_53_0-haiku/tools/build/v2/engine/jambase.c +--- boost_1_53_0/tools/build/v2/engine/jambase.c 2011-06-06 13:36:21.048496640 -0700 ++++ boost_1_53_0-haiku/tools/build/v2/engine/jambase.c 2013-03-28 00:41:44.670040064 -0700 +@@ -548,6 +548,18 @@ + "NOARSCAN ?= true ;\n", + "STDHDRS ?= /boot/develop/headers/posix ;\n", + "}\n", ++"else if $(OS) = HAIKU\n", ++"{\n", ++"BINDIR ?= /boot/common/bin ;\n", ++"CC ?= gcc ;\n", ++"C++ ?= $(CC) ;\n", ++"FORTRAN ?= \"\" ;\n", ++"LIBDIR ?= /boot/common/lib ;\n", ++"LINK ?= gcc ;\n", ++"LINKLIBS ?= -lnetwork ;\n", ++"NOARSCAN ?= true ;\n", ++"STDHDRS ?= /boot/develop/headers/posix ;\n", ++"}\n", + "else if $(OS) = BEOS\n", + "{\n", + "BINDIR ?= /boot/apps ;\n", +diff -urN boost_1_53_0/tools/build/v2/tools/builtin.jam boost_1_53_0-haiku/tools/build/v2/tools/builtin.jam +--- boost_1_53_0/tools/build/v2/tools/builtin.jam 2011-06-06 13:36:21.033816576 -0700 ++++ boost_1_53_0-haiku/tools/build/v2/tools/builtin.jam 2013-03-28 00:41:54.663748608 -0700 +@@ -40,7 +40,7 @@ + + + .os-names = aix bsd cygwin darwin freebsd hpux iphone linux netbsd +- openbsd osf qnx qnxnto sgi solaris unix unixware windows ++ openbsd osf qnx qnxnto sgi solaris unix unixware windows haiku + elf # Not actually an OS -- used for targeting bare metal where + # object format is ELF. This catches both -elf and -eabi gcc + # targets and well as other compilers targeting ELF. It is not +@@ -75,6 +75,7 @@ + case COHERENT : host-os = unix ; + case DRAGONFLYBSD : host-os = bsd ; + case IRIX : host-os = sgi ; ++ case HAIKU : host-os = haiku ; + case MACOSX : host-os = darwin ; + case KFREEBSD : host-os = freebsd ; + case LINUX : host-os = linux ; +diff -urN boost_1_53_0/tools/build/v2/tools/builtin.py boost_1_53_0-haiku/tools/build/v2/tools/builtin.py +--- boost_1_53_0/tools/build/v2/tools/builtin.py 2012-04-25 20:35:55.034078720 -0700 ++++ boost_1_53_0-haiku/tools/build/v2/tools/builtin.py 2013-03-28 00:42:04.759693312 -0700 +@@ -103,6 +103,7 @@ + elif host_os == 'MACOSX': host_os = 'darwin' + elif host_os == 'KFREEBSD': host_os = 'freebsd' + elif host_os == 'LINUX': host_os = 'linux' ++ elif host_os == 'HAIKU': host_os = 'haiku' + else: host_os = 'unix' + return host_os.lower() + +diff -urN boost_1_53_0/tools/build/v2/tools/gcc.jam boost_1_53_0-haiku/tools/build/v2/tools/gcc.jam +--- boost_1_53_0/tools/build/v2/tools/gcc.jam 2012-04-25 20:35:55.037224448 -0700 ++++ boost_1_53_0-haiku/tools/build/v2/tools/gcc.jam 2013-03-28 00:42:15.700710912 -0700 +@@ -1050,6 +1050,10 @@ + case beos : + { + # BeOS has no threading options, so do not set anything here. ++ } ++ case haiku : ++ { ++ option = ; + } + case *bsd : + { +@@ -1067,7 +1071,7 @@ + } + case * : + { +- option = -pthread ; ++ option = -pthreads ; + libs = rt ; + } + } +diff -urN boost_1_53_0/tools/build/v2/tools/gcc.py boost_1_53_0-haiku/tools/build/v2/tools/gcc.py +--- boost_1_53_0/tools/build/v2/tools/gcc.py 2012-04-25 20:35:55.037224448 -0700 ++++ boost_1_53_0-haiku/tools/build/v2/tools/gcc.py 2013-03-28 00:42:26.814219264 -0700 +@@ -675,6 +675,9 @@ + elif host_os_name == 'BeOS': + # BeOS has no threading options, don't set anything here. + pass ++ elif host_os_name == 'Haiku': ++ flags('gcc', 'OPTIONS', ['multi'], ['-lroot']) ++ # there is no -lrt on HAIKU + elif host_os_name.endswith('BSD'): + flags('gcc', 'OPTIONS', ['multi'], ['-pthread']) + # there is no -lrt on BSD +diff -urN boost_1_53_0/tools/build/v2/tools/python.jam boost_1_53_0-haiku/tools/build/v2/tools/python.jam +--- boost_1_53_0/tools/build/v2/tools/python.jam 2012-04-25 20:35:55.041156608 -0700 ++++ boost_1_53_0-haiku/tools/build/v2/tools/python.jam 2013-03-28 00:42:37.560463872 -0700 +@@ -648,13 +648,14 @@ + case qnx* : return ; + case darwin : return ; + case windows : return ; ++ case haiku : return ; + + case hpux : return rt ; + case *bsd : return pthread gcc:util ; + + case aix : return pthread dl ; + +- case * : return pthread dl ++ case * : return ; pthread dl + gcc:util linux:util ; + } + } diff --git a/dev-libs/chmlib/chmlib-0.40.bep b/dev-libs/chmlib/chmlib-0.40.bep new file mode 100644 index 000000000..b072d2c84 --- /dev/null +++ b/dev-libs/chmlib/chmlib-0.40.bep @@ -0,0 +1,28 @@ +DESCRIPTION="CHMLIB is a library for dealing with Microsoft ITSS/CHM format files." +HOMEPAGE="http://www.jedrea.com/chmlib/" +SRC_URI="http://www.jedrea.com/chmlib/chmlib-0.40.zip" +CHECKSUM_MD5="a20d86103b8ab369e5b93506d5ffa802" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="" +BUILD { + cd chmlib-0.40 + rm aclocal.m4 + rm acinclude.m4 + libtoolize --force --copy --install + aclocal + sed -i 's/lpthread//g' configure.in Makefile.in src/Makefile.in + autoconf + automake + chmod 777 configure + ./configure --prefix=`finddir B_COMMON_DIRECTORY` + make +} + +INSTALL { + cd chmlib-0.40 + make install +} + +LICENSE="GNU LGPL v2.1" +COPYRIGHT="2003 Jed Wing" diff --git a/dev-libs/cyassl/cyassl-2.0.2.bep b/dev-libs/cyassl/cyassl-2.0.2.bep new file mode 100644 index 000000000..9a45cb316 --- /dev/null +++ b/dev-libs/cyassl/cyassl-2.0.2.bep @@ -0,0 +1,36 @@ +DESCRIPTION="lightweight yet fully functional embedded SSL implementation" +HOMEPAGE="http://yassl.com" +SRC_URI="http://yassl.com/cyassl-2.0.2.zip" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="app-text/dos2unix >= 1.0" +CHECKSUM_MD5="2f51752207132c161155508eeb517e38" +BUILD { + cd cyassl-2.0.2 + dos2unix * + dos2unix include/* + dos2unix ctaocrypt/include/* + dos2unix ctaocrypt/src/* + libtoolize --force --copy --install + aclocal -I m4 + autoconf + chmod 755 configure + automake + ./configure --prefix=`finddir B_COMMON_DIRECTORY` --enable-shared + make +} + +INSTALL { + cd cyassl-2.0.2 + make install +} + +TEST { + cd cyassl-2.0.2 + make check + cd testsuite + testsuite +} + +LICENSE="GNU GPL v2" +COPYRIGHT="2006-2011 Sawtooth Consulting Ltd." diff --git a/dev-libs/cyassl/cyassl-2.5.0.bep b/dev-libs/cyassl/cyassl-2.5.0.bep new file mode 100644 index 000000000..cb0404bf6 --- /dev/null +++ b/dev-libs/cyassl/cyassl-2.5.0.bep @@ -0,0 +1,36 @@ +DESCRIPTION="lightweight yet fully functional embedded SSL implementation" +HOMEPAGE="http://yassl.com" +SRC_URI="http://yassl.com/cyassl-2.5.0.zip" +REVISION="1" +STATUS_HAIKU="broken" +DEPEND="app-text/dos2unix >= 1.0" +CHECKSUM_MD5="8965fb76f89af827ace53e423453b7cd" +BUILD { + cd cyassl-2.5.0 + dos2unix * + dos2unix include/* + dos2unix ctaocrypt/include/* + dos2unix ctaocrypt/src/* + libtoolize --force --copy --install + aclocal -I m4 + autoconf + chmod 755 configure + automake + ./configure --prefix=`finddir B_COMMON_DIRECTORY` --enable-shared + make +} + +INSTALL { + cd cyassl-2.5.0 + make install +} + +TEST { + cd cyassl-2.5.0 + make check + cd testsuite + testsuite +} + +LICENSE="GNU GPL v2" +COPYRIGHT="2006-2013 Sawtooth Consulting Ltd." diff --git a/dev-libs/fribidi/fribidi-0.19.2.bep b/dev-libs/fribidi/fribidi-0.19.2.bep index faed53582..2b145c184 100644 --- a/dev-libs/fribidi/fribidi-0.19.2.bep +++ b/dev-libs/fribidi/fribidi-0.19.2.bep @@ -1,5 +1,5 @@ -DESCRIPTION="fribidi - A free implementation of the unicode bidirectional algorithm" -HOMEPAGE="http://fribidi.org/" +DESCRIPTION="fribidi - A free implementation of the unicode bidirectional algorithm" +HOMEPAGE="http://fribidi.org/" SRC_URI="http://fribidi.org/download/fribidi-0.19.2.tar.gz" CHECKSUM_MD5="626db17d2d99b43615ad9d12500f568a" REVISION="1" @@ -9,24 +9,15 @@ BUILD { cd fribidi-0.19.2 rm -rf aclocal.m4 mkdir -p m4 - cp /boot/common/share/aclocal/libtool.m4 m4 - cp /boot/common/share/aclocal/ltoptions.m4 m4 - cp /boot/common/share/aclocal/ltversion.m4 m4 - cp /boot/common/share/aclocal/ltsugar.m4 m4 - cp /boot/common/share/aclocal/lt~obsolete.m4 m4 libtoolize --force --copy --install - aclocal -I m4 + aclocal --install -I m4 automake autoconf - MANDIR=`finddir B_COMMON_DOCUMENTATION_DIRECTORY`/man - if [ -n "$(setgcc | grep '2')" ]; then - LIBDIR=`finddir B_COMMON_LIB_DIRECTORY` - else - LIBDIR=`finddir B_COMMON_LIB_DIRECTORY`/gcc4 - fi + COMMON_DOCS=`finddir B_COMMON_DOCUMENTATION_DIRECTORY`/man + LIBDIR=`finddir B_COMMON_LIB_DIRECTORY` ./configure --prefix=`finddir B_COMMON_DIRECTORY` \ --libdir=$LIBDIR \ - --mandir=$MANDIR + --mandir=$COMMON_DOCS make } @@ -34,6 +25,7 @@ INSTALL { cd fribidi-0.19.2 make install } + LICENSE="GNU LGPL v2.1" COPYRIGHT="2004 Sharif FarsiWeb, Inc 2001,2002 Behdad Esfahbod diff --git a/dev-libs/glib/glib-2.22.2.bep b/dev-libs/glib/glib-2.22.2.bep index d6139ceac..2f27e322c 100644 --- a/dev-libs/glib/glib-2.22.2.bep +++ b/dev-libs/glib/glib-2.22.2.bep @@ -18,7 +18,7 @@ BUILD { aclocal -I m4 # automake autoconf - ./configure --prefix=/boot/common + ./configure --prefix=`finddir B_COMMON_DIRECTORY` make } diff --git a/dev-libs/glib/glib-2.24.1.bep b/dev-libs/glib/glib-2.24.1.bep index 4461b0032..91942f10f 100644 --- a/dev-libs/glib/glib-2.24.1.bep +++ b/dev-libs/glib/glib-2.24.1.bep @@ -2,7 +2,7 @@ DESCRIPTION="glib" HOMEPAGE="http://www.gtk.org/" SRC_URI="http://ftp.gnome.org/pub/gnome/sources/glib/2.24/glib-2.24.1.tar.gz" CHECKSUM_MD5="e61f2e9636f9d57067c4e3a690b9911a" -REVISION="1" +REVISION="2" STATUS_HAIKU="stable" DEPEND="" BUILD { @@ -10,15 +10,10 @@ BUILD { rm -rf aclocal.m4 mkdir -p m4 cp ../../gtk-doc.m4 m4 - cp /boot/common/share/aclocal/libtool.m4 m4 - cp /boot/common/share/aclocal/ltoptions.m4 m4 - cp /boot/common/share/aclocal/ltversion.m4 m4 - cp /boot/common/share/aclocal/ltsugar.m4 m4 - cp /boot/common/share/aclocal/lt~obsolete.m4 m4 libtoolize --force --copy --install - aclocal -I m4 + aclocal --install -I m4 autoconf - ./configure --prefix=/boot/common \ + ./configure --prefix=`finddir B_COMMON_DIRECTORY` \ --with-threads=posix \ LDFLAGS=-lnetwork make diff --git a/dev-libs/glib/glib-2.24.2.bep b/dev-libs/glib/glib-2.24.2.bep index bb1901f4a..4be365b05 100644 --- a/dev-libs/glib/glib-2.24.2.bep +++ b/dev-libs/glib/glib-2.24.2.bep @@ -2,24 +2,28 @@ DESCRIPTION="glib" HOMEPAGE="http://www.gtk.org/" SRC_URI="http://ftp.gnome.org/pub/gnome/sources/glib/2.24/glib-2.24.2.tar.gz" CHECKSUM_MD5="071b8e246197d334e20ab67956aef936" -REVISION="1" +REVISION="2" STATUS_HAIKU="stable" DEPEND="dev-libs/pkgconfig >= 0.23 - sys-devel/gettext >= 0.17" + sys-devel/gettext >= 0.17 + dev-libs/libpcre >= 8.00" BUILD { cd glib-2.24.2 rm -rf aclocal.m4 mkdir -p m4 cp ../../gtk-doc.m4 m4 - cp /boot/common/share/aclocal/libtool.m4 m4 - cp /boot/common/share/aclocal/ltoptions.m4 m4 - cp /boot/common/share/aclocal/ltversion.m4 m4 - cp /boot/common/share/aclocal/ltsugar.m4 m4 - cp /boot/common/share/aclocal/lt~obsolete.m4 m4 libtoolize --force --copy --install - aclocal -I m4 + aclocal --install -I m4 -I m4macros + autoheader + automake autoconf - ./configure --prefix=`finddir B_COMMON_DIRECTORY` + COMMON_DOCS=`finddir B_COMMON_DOCUMENTATION_DIRECTORY` + DATADIR=`finddir B_COMMON_DATA_DIRECTORY` + ./configure --prefix=`finddir B_COMMON_DIRECTORY` \ + --datadir=$DATADIR \ + --docdir=$COMMON_DOCS/doc/glib \ + --htmldir=$COMMON_DOCS/doc/gtk-doc/html \ + --mandir=$COMMON_DOCS/man make } diff --git a/dev-libs/glib/glib-2.26.1.bep b/dev-libs/glib/glib-2.26.1.bep index 948c958f5..a01e3eeec 100644 --- a/dev-libs/glib/glib-2.26.1.bep +++ b/dev-libs/glib/glib-2.26.1.bep @@ -11,15 +11,10 @@ BUILD { rm -rf aclocal.m4 mkdir -p m4 cp ../../gtk-doc.m4 m4 - cp /boot/common/share/aclocal/libtool.m4 m4 - cp /boot/common/share/aclocal/ltoptions.m4 m4 - cp /boot/common/share/aclocal/ltversion.m4 m4 - cp /boot/common/share/aclocal/ltsugar.m4 m4 - cp /boot/common/share/aclocal/lt~obsolete.m4 m4 libtoolize --force --copy --install - aclocal -I m4 + aclocal --install -I m4 autoconf - ./configure --prefix=`finddir B_COMMON_BIN_DIRECTORY` + ./configure --prefix=`finddir B_COMMON_DIRECTORY` make } diff --git a/dev-libs/gmp/gmp-4.3.1.bep b/dev-libs/gmp/gmp-4.3.1.bep index a82d3278d..a79acb26d 100644 --- a/dev-libs/gmp/gmp-4.3.1.bep +++ b/dev-libs/gmp/gmp-4.3.1.bep @@ -11,7 +11,7 @@ BUILD { aclocal autoconf automake --add-missing - ./configure --prefix=/boot/common + ./configure --prefix=`finddir B_COMMON_DIRECTORY` make } diff --git a/dev-libs/gmp/gmp-4.3.2.bep b/dev-libs/gmp/gmp-4.3.2.bep index f92d5f085..25053b62d 100644 --- a/dev-libs/gmp/gmp-4.3.2.bep +++ b/dev-libs/gmp/gmp-4.3.2.bep @@ -11,7 +11,7 @@ BUILD { aclocal autoconf automake --add-missing - ./configure --prefix=/boot/common + ./configure --prefix=`finddir B_COMMON_DIRECTORY` make } diff --git a/dev-libs/gmp/gmp-5.0.5.bep b/dev-libs/gmp/gmp-5.0.5.bep new file mode 100644 index 000000000..38f2da522 --- /dev/null +++ b/dev-libs/gmp/gmp-5.0.5.bep @@ -0,0 +1,30 @@ +DESCRIPTION="GMP - GNU Multiple Precision Arithmetic Library" +HOMEPAGE="http://gmplib.org/" +SRC_URI="ftp://ftp.gmplib.org/pub/gmp-5.0.5/gmp-5.0.5.tar.xz" +CHECKSUM_MD5="8aef50959acec2a1ad41d144ffe0f3b5" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="" +BUILD { + cd gmp-5.0.5 + libtoolize --force --copy --install + aclocal + autoconf + automake --add-missing + ./configure --prefix=`finddir B_COMMON_DIRECTORY` + make +} + +INSTALL { + cd gmp-5.0.5 + make install +} + +TEST { + cd gmp-5.0.5 + make check +} + +LICENSE="GNU GPL v3 + GNU LGPL v3" +COPYRIGHT="1991-2012 Free Software Foundation, Inc." diff --git a/dev-libs/gmp/gmp-5.1.1.bep b/dev-libs/gmp/gmp-5.1.1.bep new file mode 100644 index 000000000..a50602270 --- /dev/null +++ b/dev-libs/gmp/gmp-5.1.1.bep @@ -0,0 +1,30 @@ +DESCRIPTION="GMP - GNU Multiple Precision Arithmetic Library" +HOMEPAGE="http://gmplib.org/" +SRC_URI="ftp://ftp.gmplib.org/pub/gmp-5.1.1/gmp-5.1.1.tar.xz" +CHECKSUM_MD5="485b1296e6287fa381e6015b19767989" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="" +BUILD { + cd gmp-5.1.1 + libtoolize --force --copy --install + aclocal + autoconf + automake --add-missing + ./configure --prefix=`finddir B_COMMON_DIRECTORY` + make +} + +INSTALL { + cd gmp-5.1.1 + make install +} + +TEST { + cd gmp-5.1.1 + make check +} + +LICENSE="GNU GPL v3 + GNU LGPL v3" +COPYRIGHT="1991-2013 Free Software Foundation, Inc." diff --git a/dev-libs/icu/icu-4.4.1.bep b/dev-libs/icu/icu-4.4.1.bep index ebeb67534..3a3bdc891 100644 --- a/dev-libs/icu/icu-4.4.1.bep +++ b/dev-libs/icu/icu-4.4.1.bep @@ -7,7 +7,7 @@ STATUS_HAIKU="stable" DEPEND="" BUILD { cd icu/source - CPPFLAGS="-D__STDC_ISO_10646__ -DU_CHARSET_IS_UTF8=1" ./configure --prefix=/boot/common + CPPFLAGS="-D__STDC_ISO_10646__ -DU_CHARSET_IS_UTF8=1" ./configure --prefix=`finddir B_COMMON_DIRECTORY` make } diff --git a/dev-libs/icu/icu-4.8.1.bep b/dev-libs/icu/icu-4.8.1.bep new file mode 100644 index 000000000..423c57d5d --- /dev/null +++ b/dev-libs/icu/icu-4.8.1.bep @@ -0,0 +1,20 @@ +DESCRIPTION="icu" +HOMEPAGE="http://www.icu-project.org" +SRC_URI="http://download.icu-project.org/files/icu4c/4.8.1/icu4c-4_8_1-src.tgz" +CHECKSUM_MD5="af36f635271a239d76d038d6cf8da8df" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="" +BUILD { + cd icu/source + ./configure --prefix=`finddir B_COMMON_DIRECTORY` --disable-renaming --disable-samples --disable-extras + make +} + +INSTALL { + cd icu/source + make install +} + +LICENSE="ICU" +COPYRIGHT="1997-2011 IBM Corporation and others." diff --git a/dev-libs/icu/patches/icu-4.8.1.patch b/dev-libs/icu/patches/icu-4.8.1.patch new file mode 100644 index 000000000..0db0c4abe --- /dev/null +++ b/dev-libs/icu/patches/icu-4.8.1.patch @@ -0,0 +1,591 @@ +diff -ruN icu/source/common/messagepattern.cpp icu-haiku/source/common/messagepattern.cpp +--- icu/source/common/messagepattern.cpp 2011-07-19 23:16:28.046137344 +0200 ++++ icu-haiku/source/common/messagepattern.cpp 2011-08-19 15:48:48.211025920 +0200 +@@ -88,8 +88,12 @@ + int32_t length, + UErrorCode &errorCode); + UBool ensureCapacityForOneMore(int32_t oldLength, UErrorCode &errorCode); +- UBool memEquals(const MessagePatternList &other, int32_t length) const { +- return 0==uprv_memcmp(a.getAlias(), other.a.getAlias(), length*sizeof(T)); ++ UBool equals(const MessagePatternList &other, int32_t length) const { ++ for (int32_t i=0; i a; +@@ -309,7 +313,7 @@ + msg==other.msg && + // parts.equals(o.parts) + partsLength==other.partsLength && +- (partsLength==0 || partsList->memEquals(*other.partsList, partsLength)); ++ (partsLength==0 || partsList->equals(*other.partsList, partsLength)); + // No need to compare numericValues if msg and parts are the same. + } + +diff -ruN icu/source/common/normalizer2.cpp icu-haiku/source/common/normalizer2.cpp +--- icu/source/common/normalizer2.cpp 2011-07-19 23:16:24.008912896 +0200 ++++ icu-haiku/source/common/normalizer2.cpp 2011-08-19 15:46:55.276824064 +0200 +@@ -239,7 +239,7 @@ + ReorderingBuffer &buffer, UErrorCode &errorCode) const { + impl.decompose(src, limit, &buffer, errorCode); + } +- using Normalizer2WithImpl::normalize; // Avoid warning about hiding base class function. ++// using Normalizer2WithImpl::normalize; // Avoid warning about hiding base class function. + virtual void + normalizeAndAppend(const UChar *src, const UChar *limit, UBool doNormalize, + UnicodeString &safeMiddle, +@@ -250,7 +250,7 @@ + spanQuickCheckYes(const UChar *src, const UChar *limit, UErrorCode &errorCode) const { + return impl.decompose(src, limit, NULL, errorCode); + } +- using Normalizer2WithImpl::spanQuickCheckYes; // Avoid warning about hiding base class function. ++// using Normalizer2WithImpl::spanQuickCheckYes; // Avoid warning about hiding base class function. + virtual UNormalizationCheckResult getQuickCheck(UChar32 c) const { + return impl.isDecompYes(impl.getNorm16(c)) ? UNORM_YES : UNORM_NO; + } +@@ -270,7 +270,7 @@ + ReorderingBuffer &buffer, UErrorCode &errorCode) const { + impl.compose(src, limit, onlyContiguous, TRUE, buffer, errorCode); + } +- using Normalizer2WithImpl::normalize; // Avoid warning about hiding base class function. ++// using Normalizer2WithImpl::normalize; // Avoid warning about hiding base class function. + virtual void + normalizeAndAppend(const UChar *src, const UChar *limit, UBool doNormalize, + UnicodeString &safeMiddle, +@@ -313,7 +313,7 @@ + spanQuickCheckYes(const UChar *src, const UChar *limit, UErrorCode &) const { + return impl.composeQuickCheck(src, limit, onlyContiguous, NULL); + } +- using Normalizer2WithImpl::spanQuickCheckYes; // Avoid warning about hiding base class function. ++// using Normalizer2WithImpl::spanQuickCheckYes; // Avoid warning about hiding base class function. + virtual UNormalizationCheckResult getQuickCheck(UChar32 c) const { + return impl.getCompQuickCheck(impl.getNorm16(c)); + } +@@ -340,7 +340,7 @@ + ReorderingBuffer &buffer, UErrorCode &errorCode) const { + impl.makeFCD(src, limit, &buffer, errorCode); + } +- using Normalizer2WithImpl::normalize; // Avoid warning about hiding base class function. ++// using Normalizer2WithImpl::normalize; // Avoid warning about hiding base class function. + virtual void + normalizeAndAppend(const UChar *src, const UChar *limit, UBool doNormalize, + UnicodeString &safeMiddle, +@@ -351,7 +351,7 @@ + spanQuickCheckYes(const UChar *src, const UChar *limit, UErrorCode &errorCode) const { + return impl.makeFCD(src, limit, NULL, errorCode); + } +- using Normalizer2WithImpl::spanQuickCheckYes; // Avoid warning about hiding base class function. ++// using Normalizer2WithImpl::spanQuickCheckYes; // Avoid warning about hiding base class function. + virtual UBool hasBoundaryBefore(UChar32 c) const { return impl.hasFCDBoundaryBefore(c); } + virtual UBool hasBoundaryAfter(UChar32 c) const { return impl.hasFCDBoundaryAfter(c); } + virtual UBool isInert(UChar32 c) const { return impl.isFCDInert(c); } +diff -ruN icu/source/common/unicode/bytestrie.h icu-haiku/source/common/unicode/bytestrie.h +--- icu/source/common/unicode/bytestrie.h 2011-07-19 23:16:16.052953088 +0200 ++++ icu-haiku/source/common/unicode/bytestrie.h 2011-08-19 15:46:55.331874304 +0200 +@@ -338,6 +338,9 @@ + // but the code looks more confusing that way.) + UVector32 *stack_; + }; ++#if (__GNUC__ == 2) ++ friend class Iterator; ++#endif + + private: + friend class BytesTrieBuilder; +diff -ruN icu/source/common/unicode/bytestriebuilder.h icu-haiku/source/common/unicode/bytestriebuilder.h +--- icu/source/common/unicode/bytestriebuilder.h 2011-07-19 23:16:16.053477376 +0200 ++++ icu-haiku/source/common/unicode/bytestriebuilder.h 2011-08-19 15:46:55.333185024 +0200 +@@ -141,6 +141,9 @@ + private: + const char *s; + }; ++#if (__GNUC__ == 2) ++ friend class BTLinearMatchNode; ++#endif + + virtual Node *createLinearMatchNode(int32_t i, int32_t byteIndex, int32_t length, + Node *nextNode) const; +diff -ruN icu/source/common/unicode/platform.h.in icu-haiku/source/common/unicode/platform.h.in +--- icu/source/common/unicode/platform.h.in 2011-07-19 23:16:18.055574528 +0200 ++++ icu-haiku/source/common/unicode/platform.h.in 2011-08-19 15:46:55.346554368 +0200 +@@ -299,7 +299,7 @@ + + #ifdef U_STATIC_IMPLEMENTATION + #define U_EXPORT +-#elif @U_USE_GCC_VISIBILITY_ATTRIBUTE@ ++#elif (@U_USE_GCC_VISIBILITY_ATTRIBUTE@) && (__GNUC__ > 2) + #define U_EXPORT __attribute__((visibility("default"))) + #elif (defined(__SUNPRO_CC) && __SUNPRO_CC >= 0x550) \ + || (defined(__SUNPRO_C) && __SUNPRO_C >= 0x550) +diff -ruN icu/source/common/unicode/stringtriebuilder.h icu-haiku/source/common/unicode/stringtriebuilder.h +--- icu/source/common/unicode/stringtriebuilder.h 2011-07-19 23:16:18.056623104 +0200 ++++ icu-haiku/source/common/unicode/stringtriebuilder.h 2011-08-19 15:46:55.336068608 +0200 +@@ -245,6 +245,9 @@ + protected: + int32_t value; + }; ++#if (__GNUC__ == 2) ++ friend class FinalValueNode; ++#endif + + /** @internal */ + class ValueNode : public Node { +@@ -272,6 +275,9 @@ + protected: + Node *next; + }; ++#if (__GNUC__ == 2) ++ friend class IntermediateValueNode; ++#endif + + /** @internal */ + class LinearMatchNode : public ValueNode { +@@ -323,6 +329,9 @@ + int32_t values[kMaxBranchLinearSubNodeLength]; + UChar units[kMaxBranchLinearSubNodeLength]; + }; ++#if (__GNUC__ == 2) ++ friend class ListBranchNode; ++#endif + + /** @internal */ + class SplitBranchNode : public BranchNode { +@@ -339,6 +348,9 @@ + Node *lessThan; + Node *greaterOrEqual; + }; ++#if (__GNUC__ == 2) ++ friend class SplitBranchNode; ++#endif + + // Branch head node, for writing the actual node lead unit. + /** @internal */ +@@ -354,6 +366,9 @@ + int32_t length; + Node *next; // A branch sub-node. + }; ++#if (__GNUC__ == 2) ++ friend class BranchHeadNode; ++#endif + + /** @internal */ + virtual Node *createLinearMatchNode(int32_t i, int32_t unitIndex, int32_t length, +diff -ruN icu/source/common/unicode/ucharstrie.h icu-haiku/source/common/unicode/ucharstrie.h +--- icu/source/common/unicode/ucharstrie.h 2011-07-19 23:16:18.058720256 +0200 ++++ icu-haiku/source/common/unicode/ucharstrie.h 2011-08-19 15:46:55.338165760 +0200 +@@ -368,6 +368,9 @@ + // but the code looks more confusing that way.) + UVector32 *stack_; + }; ++#if (__GNUC__ == 2) ++ friend class Iterator; ++#endif + + private: + friend class UCharsTrieBuilder; +diff -ruN icu/source/common/unicode/ucharstriebuilder.h icu-haiku/source/common/unicode/ucharstriebuilder.h +--- icu/source/common/unicode/ucharstriebuilder.h 2011-07-19 23:16:18.059244544 +0200 ++++ icu-haiku/source/common/unicode/ucharstriebuilder.h 2011-08-19 15:46:55.339738624 +0200 +@@ -145,6 +145,9 @@ + private: + const UChar *s; + }; ++#if (__GNUC__ == 2) ++ friend class UCTLinearMatchNode; ++#endif + + virtual Node *createLinearMatchNode(int32_t i, int32_t unitIndex, int32_t length, + Node *nextNode) const; +diff -ruN icu/source/config/mh-haiku icu-haiku/source/config/mh-haiku +--- icu/source/config/mh-haiku 2011-07-19 23:16:46.026214400 +0200 ++++ icu-haiku/source/config/mh-haiku 2011-08-19 15:46:55.328990720 +0200 +@@ -17,6 +17,9 @@ + LIBCPPFLAGS = + THREADSCPPFLAGS = + ++# ++CPPFLAGS += -D__STDC_ISO_10646__ -DU_CHARSET_IS_UTF8=1 ++ + ## Compiler switch to embed a runtime search path + LD_RPATH= + LD_RPATH_PRE = -Wl,-rpath, +@@ -31,35 +34,35 @@ + + ## Compilation rules + %.$(STATIC_O): $(srcdir)/%.c +- $(COMPILE.c) $(STATICCPPFLAGS) $(STATICCFLAGS) -o $@ $< ++ $(COMPILE.c) $(STATICCPPFLAGS) $(STATICCFLAGS) -o $@ $< + %.o: $(srcdir)/%.c +- $(COMPILE.c) $(DYNAMICCPPFLAGS) $(DYNAMICCFLAGS) -o $@ $< ++ $(COMPILE.c) $(DYNAMICCPPFLAGS) $(DYNAMICCFLAGS) -o $@ $< + + %.$(STATIC_O): $(srcdir)/%.cpp +- $(COMPILE.cc) $(STATICCPPFLAGS) $(STATICCXXFLAGS) -o $@ $< ++ $(COMPILE.cc) $(STATICCPPFLAGS) $(STATICCXXFLAGS) -o $@ $< + %.o: $(srcdir)/%.cpp +- $(COMPILE.cc) $(DYNAMICCPPFLAGS) $(DYNAMICCXXFLAGS) -o $@ $< ++ $(COMPILE.cc) $(DYNAMICCPPFLAGS) $(DYNAMICCXXFLAGS) -o $@ $< + + + ## Dependency rules + %.d: $(srcdir)/%.c +- @echo "generating dependency information for $<" +- @$(SHELL) -ec '$(GEN_DEPS.c) $< \ +- | sed '\''s%\($*\)\.o[ :]*%\1.o $@ : %g'\'' > $@; \ +- [ -s $@ ] || rm -f $@' ++ @echo "generating dependency information for $<" ++ @$(SHELL) -ec '$(GEN_DEPS.c) $< \ ++ | sed '\''s%\($*\)\.o[ :]*%\1.o $@ : %g'\'' > $@; \ ++ [ -s $@ ] || rm -f $@' + + %.d: $(srcdir)/%.cpp +- @echo "generating dependency information for $<" +- @$(SHELL) -ec '$(GEN_DEPS.cc) $< \ +- | sed '\''s%\($*\)\.o[ :]*%\1.o $@ : %g'\'' > $@; \ +- [ -s $@ ] || rm -f $@' ++ @echo "generating dependency information for $<" ++ @$(SHELL) -ec '$(GEN_DEPS.cc) $< \ ++ | sed '\''s%\($*\)\.o[ :]*%\1.o $@ : %g'\'' > $@; \ ++ [ -s $@ ] || rm -f $@' + + ## Versioned libraries rules + + %.$(SO).$(SO_TARGET_VERSION_MAJOR): %.$(SO).$(SO_TARGET_VERSION) +- $(RM) $@ && ln -s ${(preferenceSorting.elementAt(psIndex)); ++ UnicodeString item = *static_cast(preferenceSorting.elementAt(psIndex)); + // TODO: Since preferenceSorting was originally populated from the contents of a UnicodeSet, + // is it even possible for duplicates to show up in this check? + if (labelSet.contains(item)) { +@@ -240,7 +240,7 @@ + int32_t count = 0; + int32_t old = -1; + for (int32_t srcIndex=0; srcIndexsize(); srcIndex++) { +- const UnicodeString *str = static_cast(labels_->elementAt(srcIndex)); ++ const UnicodeString *str = static_cast(labels_->elementAt(srcIndex)); + ++count; + const int32_t bump = count * maxLabelCount_ / size; + if (bump == old) { +@@ -528,7 +528,7 @@ + const UnicodeString &AlphabeticIndex::getOverflowComparisonString(const UnicodeString &lowerLimit, UErrorCode &/*status*/) { + for (int32_t i=0; isize(); i++) { + const UnicodeString *s = +- static_cast(firstScriptCharacters_->elementAt(i)); ++ const_cast(static_cast(firstScriptCharacters_->elementAt(i))); + if (collator_->compare(*s, lowerLimit) > 0) { + return *s; + } +@@ -735,8 +735,10 @@ + sortCollateComparator(const void *context, const void *left, const void *right) { + const UHashTok *leftTok = static_cast(left); + const UHashTok *rightTok = static_cast(right); +- const UnicodeString *leftString = static_cast(leftTok->pointer); +- const UnicodeString *rightString = static_cast(rightTok->pointer); ++ const UnicodeString *leftString ++ = const_cast(static_cast(leftTok->pointer)); ++ const UnicodeString *rightString ++ = const_cast(static_cast(rightTok->pointer)); + const Collator *col = static_cast(context); + + if (leftString == rightString) { +@@ -760,8 +762,10 @@ + recordCompareFn(const void *context, const void *left, const void *right) { + const UHashTok *leftTok = static_cast(left); + const UHashTok *rightTok = static_cast(right); +- const AlphabeticIndex::Record *leftRec = static_cast(leftTok->pointer); +- const AlphabeticIndex::Record *rightRec = static_cast(rightTok->pointer); ++ const AlphabeticIndex::Record *leftRec ++ = const_cast(static_cast(leftTok->pointer)); ++ const AlphabeticIndex::Record *rightRec ++ = const_cast(static_cast(rightTok->pointer)); + const Collator *col = static_cast(context); + + Collator::EComparisonResult r = col->compare(leftRec->sortingName_, rightRec->sortingName_); +@@ -1087,8 +1091,8 @@ + PreferenceComparator(const void *context, const void *left, const void *right) { + const UHashTok *leftTok = static_cast(left); + const UHashTok *rightTok = static_cast(right); +- const UnicodeString *s1 = static_cast(leftTok->pointer); +- const UnicodeString *s2 = static_cast(rightTok->pointer); ++ const UnicodeString *s1 = const_cast(static_cast(leftTok->pointer)); ++ const UnicodeString *s2 = const_cast(static_cast(rightTok->pointer)); + UErrorCode &status = *(UErrorCode *)(context); // Cast off both static and const. + if (s1 == s2) { + return 0; +diff -ruN icu/source/i18n/currfmt.h icu-haiku/source/i18n/currfmt.h +--- icu/source/i18n/currfmt.h 2011-07-19 23:16:00.058720256 +0200 ++++ icu-haiku/source/i18n/currfmt.h 2011-08-19 15:46:55.293339136 +0200 +@@ -63,7 +63,9 @@ + virtual Format* clone() const; + + ++#if (__GNUC__ > 2) + using MeasureFormat::format; ++#endif + + /** + * Override Format API. +diff -ruN icu/source/i18n/digitlst.cpp icu-haiku/source/i18n/digitlst.cpp +--- icu/source/i18n/digitlst.cpp 2011-07-19 23:16:00.050593792 +0200 ++++ icu-haiku/source/i18n/digitlst.cpp 2011-08-19 15:46:55.295698432 +0200 +@@ -37,7 +37,9 @@ + #include + #include + #include ++#if (__GNUC__ > 2) + #include ++#endif + + // *************************************************************************** + // class DigitList +@@ -423,11 +425,15 @@ + nonConstThis->fDouble /= -1; + } + } else if (isInfinite()) { ++#if (__GNUC__ > 2) + if (std::numeric_limits::has_infinity) { + nonConstThis->fDouble = std::numeric_limits::infinity(); + } else { + nonConstThis->fDouble = std::numeric_limits::max(); + } ++#else ++ nonConstThis->fDouble = DBL_MAX; ++#endif + if (!isPositive()) { + nonConstThis->fDouble = -fDouble; + } +diff -ruN icu/source/i18n/reldtfmt.h icu-haiku/source/i18n/reldtfmt.h +--- icu/source/i18n/reldtfmt.h 2011-07-19 23:16:06.034078720 +0200 ++++ icu-haiku/source/i18n/reldtfmt.h 2011-08-19 15:46:55.297533440 +0200 +@@ -79,7 +79,9 @@ + virtual UBool operator==(const Format& other) const; + + ++#if (__GNUC__ > 2) + using DateFormat::format; ++#endif + + /** + * Format a date or time, which is the standard millis since 24:00 GMT, Jan +diff -ruN icu/source/i18n/unicode/alphaindex.h icu-haiku/source/i18n/unicode/alphaindex.h +--- icu/source/i18n/unicode/alphaindex.h 2011-07-19 23:15:52.042467328 +0200 ++++ icu-haiku/source/i18n/unicode/alphaindex.h 2011-08-19 15:46:55.344719360 +0200 +@@ -588,6 +588,9 @@ + Record(AlphabeticIndex *alphaIndex, const UnicodeString &name, const void *data); + ~Record(); + }; ++#if (__GNUC__ == 2) ++ friend struct Record; ++#endif + + /** + * Holds all user records before they are distributed into buckets. +diff -ruN icu/source/i18n/unicode/choicfmt.h icu-haiku/source/i18n/unicode/choicfmt.h +--- icu/source/i18n/unicode/choicfmt.h 2011-07-19 23:15:52.038797312 +0200 ++++ icu-haiku/source/i18n/unicode/choicfmt.h 2011-08-19 15:46:55.300154880 +0200 +@@ -352,7 +352,9 @@ + virtual const UnicodeString* getFormats(int32_t& count) const; + + ++#if (__GNUC__ > 2) + using NumberFormat::format; ++#endif + + /** + * Formats a double number using this object's choices. +diff -ruN icu/source/i18n/unicode/datefmt.h icu-haiku/source/i18n/unicode/datefmt.h +--- icu/source/i18n/unicode/datefmt.h 2011-07-19 23:15:52.035389440 +0200 ++++ icu-haiku/source/i18n/unicode/datefmt.h 2011-08-19 15:46:55.302514176 +0200 +@@ -212,7 +212,9 @@ + virtual UBool operator==(const Format&) const; + + ++#if (__GNUC__ > 2) + using Format::format; ++#endif + + /** + * Format an object to produce a string. This method handles Formattable +diff -ruN icu/source/i18n/unicode/decimfmt.h icu-haiku/source/i18n/unicode/decimfmt.h +--- icu/source/i18n/unicode/decimfmt.h 2011-07-19 23:15:54.040370176 +0200 ++++ icu-haiku/source/i18n/unicode/decimfmt.h 2011-08-19 15:46:55.305397760 +0200 +@@ -834,7 +834,16 @@ + virtual UBool operator==(const Format& other) const; + + ++#if (__GNUC__ > 2) + using NumberFormat::format; ++#else ++ virtual UnicodeString& format(const Formattable& obj, ++ UnicodeString& appendTo, ++ FieldPositionIterator* posIter, ++ UErrorCode& status) const { ++ return NumberFormat::format(obj, appendTo, posIter, status); ++ } ++#endif + + /** + * Format a double or long number using base-10 representation. +diff -ruN icu/source/i18n/unicode/dtitvfmt.h icu-haiku/source/i18n/unicode/dtitvfmt.h +--- icu/source/i18n/unicode/dtitvfmt.h 2011-07-19 23:15:54.042467328 +0200 ++++ icu-haiku/source/i18n/unicode/dtitvfmt.h 2011-08-19 15:46:55.307757056 +0200 +@@ -363,7 +363,9 @@ + UBool operator!=(const Format& other) const; + + ++#if (__GNUC__ > 2) + using Format::format; ++#endif + + /** + * Format an object to produce a string. This method handles Formattable +diff -ruN icu/source/i18n/unicode/msgfmt.h icu-haiku/source/i18n/unicode/msgfmt.h +--- icu/source/i18n/unicode/msgfmt.h 2011-07-19 23:15:54.041156608 +0200 ++++ icu-haiku/source/i18n/unicode/msgfmt.h 2011-08-19 15:46:55.310116352 +0200 +@@ -615,7 +615,9 @@ + virtual const Format** getFormats(int32_t& count) const; + + ++#if (__GNUC__ > 2) + using Format::format; ++#endif + + /** + * Formats the given array of arguments into a user-readable string. +diff -ruN icu/source/i18n/unicode/numfmt.h icu-haiku/source/i18n/unicode/numfmt.h +--- icu/source/i18n/unicode/numfmt.h 2011-07-19 23:15:54.039059456 +0200 ++++ icu-haiku/source/i18n/unicode/numfmt.h 2011-08-19 15:46:55.312213504 +0200 +@@ -212,8 +212,9 @@ + */ + virtual UBool operator==(const Format& other) const; + +- ++#if (__GNUC__ > 2) + using Format::format; ++#endif + + /** + * Format an object to produce a string. This method handles +diff -ruN icu/source/i18n/unicode/plurfmt.h icu-haiku/source/i18n/unicode/plurfmt.h +--- icu/source/i18n/unicode/plurfmt.h 2011-07-19 23:15:52.044040192 +0200 ++++ icu-haiku/source/i18n/unicode/plurfmt.h 2011-08-19 15:46:55.314310656 +0200 +@@ -281,7 +281,9 @@ + void applyPattern(const UnicodeString& pattern, UErrorCode& status); + + ++#if (__GNUC__ > 2) + using Format::format; ++#endif + + /** + * Formats a plural message for a given number. +diff -ruN icu/source/i18n/unicode/rbnf.h icu-haiku/source/i18n/unicode/rbnf.h +--- icu/source/i18n/unicode/rbnf.h 2011-07-19 23:15:54.034340864 +0200 ++++ icu-haiku/source/i18n/unicode/rbnf.h 2011-08-19 15:46:55.316932096 +0200 +@@ -722,7 +722,9 @@ + const Locale& locale = Locale::getDefault()); + + ++#if (__GNUC__ > 2) + using NumberFormat::format; ++#endif + + /** + * Formats the specified 32-bit number using the default ruleset. +diff -ruN icu/source/i18n/unicode/selfmt.h icu-haiku/source/i18n/unicode/selfmt.h +--- icu/source/i18n/unicode/selfmt.h 2011-07-19 23:15:52.042991616 +0200 ++++ icu-haiku/source/i18n/unicode/selfmt.h 2011-08-19 15:46:55.318767104 +0200 +@@ -219,7 +219,9 @@ + void applyPattern(const UnicodeString& pattern, UErrorCode& status); + + ++#if (__GNUC__ > 2) + using Format::format; ++#endif + + /** + * Selects the phrase for the given keyword +diff -ruN icu/source/i18n/unicode/smpdtfmt.h icu-haiku/source/i18n/unicode/smpdtfmt.h +--- icu/source/i18n/unicode/smpdtfmt.h 2011-07-19 23:15:52.035127296 +0200 ++++ icu-haiku/source/i18n/unicode/smpdtfmt.h 2011-08-19 15:46:55.321126400 +0200 +@@ -369,7 +369,9 @@ + virtual UBool operator==(const Format& other) const; + + ++#if (__GNUC__ > 2) + using DateFormat::format; ++#endif + + /** + * Format a date or time, which is the standard millis since 24:00 GMT, Jan +diff -ruN icu/source/i18n/unicode/tmutfmt.h icu-haiku/source/i18n/unicode/tmutfmt.h +--- icu/source/i18n/unicode/tmutfmt.h 2011-07-19 23:15:54.039583744 +0200 ++++ icu-haiku/source/i18n/unicode/tmutfmt.h 2011-08-19 15:46:55.322961408 +0200 +@@ -162,7 +162,16 @@ + void setNumberFormat(const NumberFormat& format, UErrorCode& status); + + ++#if (__GNUC__ > 2) + using MeasureFormat::format; ++#else ++ virtual UnicodeString& format(const Formattable& obj, ++ UnicodeString& appendTo, ++ FieldPositionIterator* posIter, ++ UErrorCode& status) const { ++ return MeasureFormat::format(obj, appendTo, posIter, status); ++ } ++#endif + + /** + * Format a TimeUnitAmount. +diff -ruN icu/source/tools/pkgdata/pkgdata.cpp icu-haiku/source/tools/pkgdata/pkgdata.cpp +--- icu/source/tools/pkgdata/pkgdata.cpp 2011-07-19 23:16:36.003670016 +0200 ++++ icu-haiku/source/tools/pkgdata/pkgdata.cpp 2011-08-19 15:46:55.326107136 +0200 +@@ -476,7 +476,7 @@ + + static int runCommand(const char* command, UBool specialHandling) { + char *cmd = NULL; +- char cmdBuffer[SMALL_BUFFER_MAX_SIZE]; ++ char cmdBuffer[64000]; + int32_t len = strlen(command); + + if (len == 0) { diff --git a/dev-libs/jansson/jansson-2.4.bep b/dev-libs/jansson/jansson-2.4.bep new file mode 100644 index 000000000..ad46db01e --- /dev/null +++ b/dev-libs/jansson/jansson-2.4.bep @@ -0,0 +1,28 @@ +DESCRIPTION="C library for encoding, decoding and manipulating JSON data" +HOMEPAGE="http://www.digip.org/jansson/" +SRC_URI="http://www.digip.org/jansson/releases/jansson-2.4.tar.gz" +CHECKSUM_MD5="c4629b89bf0432f3158c461e88fe0113" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="" +BUILD { + cd jansson-2.4 + ./configure --prefix=`finddir B_COMMON_DIRECTORY` + make +} + +INSTALL { + cd jansson-2.4 + make install +} + +TEST { + cd jansson-2.4/test + run-suites +} + +LICENSE="MIT" +COPYRIGHT="2009-2012 Petri Lehtinen + 2011-2012 Basile Starynkevitch + 2011-2012 Graeme Smecher" + diff --git a/dev-libs/json-c/json-c-0.9.bep b/dev-libs/json-c/json-c-0.9.bep index 38e0bc653..2672551fb 100644 --- a/dev-libs/json-c/json-c-0.9.bep +++ b/dev-libs/json-c/json-c-0.9.bep @@ -11,7 +11,7 @@ BUILD { aclocal autoconf automake - ./configure --prefix=/boot/common + ./configure --prefix=`finddir B_COMMON_DIRECTORY` make } diff --git a/dev-libs/libattica/libattica-0.4.1.bep b/dev-libs/libattica/libattica-0.4.1.bep new file mode 100644 index 000000000..7652478be --- /dev/null +++ b/dev-libs/libattica/libattica-0.4.1.bep @@ -0,0 +1,20 @@ +DESCRIPTION="A library providing access to Open Collaboration Services" +HOMEPAGE="http://www.kde.org" +SRC_URI="ftp://ftp.kde.org/pub/kde/stable/attica/attica-0.4.1.tar.bz2" +CHECKSUM_MD5="b90983ec5d79e5ddcbc9146fa23cab72" +REVISION="1" +STATUS_HAIKU="untested" +DEPEND="" +BUILD { + cd attica-0.4.1 + cmake CMakeLists.txt + make +} + +INSTALL { + cd attica-0.4.1 + make install +} + +LICENSE="GNU LGPL v2.1" +COPYRIGHT="The KDE Project" diff --git a/dev-libs/libcdio/libcdio-0.82.bep b/dev-libs/libcdio/libcdio-0.82.bep index 6a295ac81..1fb34ef75 100644 --- a/dev-libs/libcdio/libcdio-0.82.bep +++ b/dev-libs/libcdio/libcdio-0.82.bep @@ -3,7 +3,7 @@ HOMEPAGE="http://www.gnu.org/software/libcdio" SRC_URI="ftp://ftp.gnu.org/gnu/libcdio/libcdio-0.82.tar.gz" REVISION="1" STATUS_HAIKU="stable" -DEPEND="" +DEPEND="dev-libs/libiconv >= 1.12" CHECKSUM_MD5="1c29b18e01ab2b966162bc727bf3c360" BUILD { cd libcdio-0.82 diff --git a/dev-libs/libcdio/libcdio-0.83.bep b/dev-libs/libcdio/libcdio-0.83.bep new file mode 100644 index 000000000..9c49fbacf --- /dev/null +++ b/dev-libs/libcdio/libcdio-0.83.bep @@ -0,0 +1,25 @@ +DESCRIPTION="A library to encapsulate CD-ROM reading and control" +HOMEPAGE="http://www.gnu.org/software/libcdio" +SRC_URI="ftp://ftp.gnu.org/gnu/libcdio/libcdio-0.83.tar.gz" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="dev-libs/libiconv >= 1.12" +CHECKSUM_MD5="b9e0f1bccb142e697cd834fe56b6e6fb" +BUILD { + cd libcdio-0.83 + libtoolize --force --copy --install + aclocal -I m4 + autoconf + automake + ./configure --prefix=`finddir B_COMMON_DIRECTORY` + make +} + +INSTALL { + cd libcdio-0.83 + make install +} + +LICENSE="GNU GPL v3" +COPYRIGHT="2003-2011 Rocky Bernstein + 1996-1998 Gerd Knorr and Heiko Eißfeldt" diff --git a/dev-libs/libcdio/libcdio-0.90.bep b/dev-libs/libcdio/libcdio-0.90.bep new file mode 100644 index 000000000..ccb9b0931 --- /dev/null +++ b/dev-libs/libcdio/libcdio-0.90.bep @@ -0,0 +1,26 @@ +DESCRIPTION="A library to encapsulate CD-ROM reading and control" +HOMEPAGE="http://www.gnu.org/software/libcdio" +SRC_URI="ftp://ftp.gnu.org/gnu/libcdio/libcdio-0.90.tar.gz" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="dev-libs/libiconv >= 1.12 + dev-util/pkgconfig" +CHECKSUM_MD5="1b245b023fb03a58d030fd2800db3247" +BUILD { + cd libcdio-0.90 + libtoolize --force --copy --install + aclocal -I m4 + autoconf + automake + ./configure --prefix=`finddir B_COMMON_DIRECTORY` + make +} + +INSTALL { + cd libcdio-0.90 + make install +} + +LICENSE="GNU GPL v3" +COPYRIGHT="2003-2011 Rocky Bernstein + 1996-1998 Gerd Knorr and Heiko Eißfeldt" diff --git a/dev-libs/libcdio/patches/libcdio-0.83.patch b/dev-libs/libcdio/patches/libcdio-0.83.patch new file mode 100644 index 000000000..4f1ed285f --- /dev/null +++ b/dev-libs/libcdio/patches/libcdio-0.83.patch @@ -0,0 +1,20 @@ +diff -urN libcdio-0.83/configure.ac libcdio-0.83-haiku/configure.ac +--- libcdio-0.83/configure.ac 2009-10-27 11:26:32.055574528 +0000 ++++ libcdio-0.83-haiku/configure.ac 2010-10-05 11:54:28.000000000 +0000 +@@ -246,7 +246,7 @@ + dnl empty_array_size + AC_MSG_CHECKING([how to create empty arrays]) + +-empty_array_size="xxxx" ++empty_array_size="xxx" + AC_TRY_COMPILE([],[struct { int foo; int bar[]; } doo;], empty_array_size="") + + if test "x$empty_array_size" = "xxxx";then +@@ -572,6 +572,7 @@ + [AC_MSG_WARN([new enough libcddb not found. CDDB access disabled. Get libcddb from http://libcddb.sourceforge.net]) + HAVE_CDDB=no]) + AC_CHECK_LIB(socket, connect) ++ AC_CHECK_LIB(network, connect) + AC_CHECK_FUNC(gethostbyname, , AC_CHECK_LIB(nsl, gethostbyname)) + fi + diff --git a/dev-libs/libcss/libcss-0.1.2.bep b/dev-libs/libcss/libcss-0.1.2.bep new file mode 100644 index 000000000..8a6a7596a --- /dev/null +++ b/dev-libs/libcss/libcss-0.1.2.bep @@ -0,0 +1,20 @@ +DESCRIPTION="LibCSS is a CSS (Cascading Style Sheet) parser and selection engine" +HOMEPAGE="http://www.netsurf-browser.org/projects/libcss/" +SRC_URI="http://download.netsurf-browser.org/libs/releases/libcss-0.1.2-src.tar.gz" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="dev-libs/libparserutils >= 0.1.1" + +BUILD { + cd libcss-0.1.2 + make +} + +INSTALL { + cd libcss-0.1.2 + make install +} + +LICENSE="MIT + GNU GPL v2" +COPYRIGHT="2003 - 2012 The NetSurf Developers" diff --git a/dev-libs/libdwarf/libdwarf-20120410.bep b/dev-libs/libdwarf/libdwarf-20120410.bep new file mode 100644 index 000000000..6ef959510 --- /dev/null +++ b/dev-libs/libdwarf/libdwarf-20120410.bep @@ -0,0 +1,28 @@ +DESCRIPTION="libdwarf and dwarfdump - library and utility for working with DWARF Debugging Information Format" +HOMEPAGE="http://reality.sgiweb.org/davea/dwarf.html" +SRC_URI="http://reality.sgiweb.org/davea/libdwarf-20120410.tar.gz" +CHECKSUM_MD5="77c8b351f11738bc9fa50474a69d5b36" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="dev-libs/libelf >= 0.8.13" +BUILD { + cd dwarf-20120410/libdwarf + ./configure --enable-shared --prefix=$(finddir B_COMMON_DIRECTORY) + make + cd ../dwarfdump + LDFLAGS="-L../libdwarf -L/boot/common/lib" ./configure --prefix=$(finddir B_COMMON_DIRECTORY) + LIBRARY_PATH=$LIBRARY_PATH:../libdwarf/ make +} + +INSTALL { + cd dwarf-20120410/libdwarf + make install + cd ../dwarfdump + make install +} + +LICENSE="GNU GPL v2 + GNU LGPL v2.1" +COPYRIGHT="2000,2002,2004,2005 Silicon Graphics, Inc. All Rights Reserved. + 2007-2010 David Anderson. All Rights Reserved. + 2007-2010 Sun Microsystems, Inc. All rights reserved" diff --git a/dev-libs/libdwarf/patches/libdwarf-20120410.patch b/dev-libs/libdwarf/patches/libdwarf-20120410.patch new file mode 100644 index 000000000..4cadb6777 --- /dev/null +++ b/dev-libs/libdwarf/patches/libdwarf-20120410.patch @@ -0,0 +1,67 @@ +diff -urN dwarf-20120410/dwarfdump/dwarfdump.c dwarf-20120410-c89/dwarfdump/dwarfdump.c +--- dwarf-20120410/dwarfdump/dwarfdump.c 2012-04-10 18:48:29.043515904 +0000 ++++ dwarf-20120410-c89/dwarfdump/dwarfdump.c 2012-09-04 21:36:54.000000000 +0000 +@@ -1320,9 +1320,9 @@ + case 'S': + /* -S option: strings for 'any' and 'match' */ + { ++ const char *tempstr = 0; + boolean err = TRUE; + search_is_on = TRUE; +- const char *tempstr = 0; + /* -S text */ + if (strncmp(optarg,"match=",6) == 0) { + +diff -urN dwarf-20120410/dwarfdump/print_die.c dwarf-20120410-c89/dwarfdump/print_die.c +--- dwarf-20120410/dwarfdump/print_die.c 2012-04-10 18:48:29.038010880 +0000 ++++ dwarf-20120410-c89/dwarfdump/print_die.c 2012-09-04 21:39:20.000000000 +0000 +@@ -2257,8 +2257,8 @@ + /* Follow reference chain, looking for self references */ + res = dwarf_offdie_b(dbg,ref_off,is_info,&ref_die,&err); + if (res == DW_DLV_OK) { +- ++die_indent_level; + struct esb_s copy_base; ++ ++die_indent_level; + if (dump_visited_info) { + Dwarf_Off off; + dwarf_die_CU_offset(die, &off, &err); +diff -urN dwarf-20120410/libdwarf/gennames.c dwarf-20120410-c89/libdwarf/gennames.c +--- dwarf-20120410/libdwarf/gennames.c 2012-04-10 18:48:29.002359296 +0000 ++++ dwarf-20120410-c89/libdwarf/gennames.c 2012-09-04 21:20:40.000000000 +0000 +@@ -486,8 +486,8 @@ + + /* Process each line from 'dwarf.h' */ + while (!feof(f_dwarf_in)) { +- errno = 0; + char *fgbad = fgets(line_in,sizeof(line_in),f_dwarf_in); ++ errno = 0; + if(!fgbad) { + if(feof(f_dwarf_in)) { + break; +diff -urN dwarf-20120410/libdwarf/Makefile.in dwarf-20120410-c89/libdwarf/Makefile.in +--- dwarf-20120410/libdwarf/Makefile.in 2012-04-10 18:48:29.002359296 +0000 ++++ dwarf-20120410-c89/libdwarf/Makefile.in 2012-09-04 21:28:30.000000000 +0000 +@@ -46,8 +46,9 @@ + + prefix = @prefix@ + exec_prefix = @exec_prefix@ +-bindir = $(exec_prefix)/bin +-libdir = $(exec_prefix)/lib ++bindir = $(DESTDIR)$(prefix)/bin ++libdir = $(DESTDIR)$(prefix)/lib ++incdir = $(DESTDIR)$(prefix)/include/libdwarf + + INSTALL = @INSTALL@ + INSTALL_PROGRAM = @INSTALL_PROGRAM@ +@@ -213,7 +214,10 @@ + rm -f dwarf_names_enum.h dwarf_names_new.h dwarf_names.c dwarf_names.h + + install: all +- echo "No install provided, see comments in the README" ++ install -m 0755 -d $(incdir) ++ install -m 0755 libdwarf.h $(incdir) ++ install -m 0755 dwarf.h $(incdir) ++ install -m 0755 libdwarf.so $(libdir) + + distclean: clean + rm -f config.status config.log config.cache config.h diff --git a/dev-libs/libedit/libedit-20090923.bep b/dev-libs/libedit/libedit-20090923.bep index 11bcf6282..ccc9f99fd 100644 --- a/dev-libs/libedit/libedit-20090923.bep +++ b/dev-libs/libedit/libedit-20090923.bep @@ -7,7 +7,7 @@ STATUS_HAIKU="stable" DEPEND="" BUILD { cd libedit-20090923-3.0 - ./configure --prefix=/boot/common + ./configure --prefix=`finddir B_COMMON_DIRECTORY` make } diff --git a/dev-libs/libedit/libedit-20100424.bep b/dev-libs/libedit/libedit-20100424.bep index d56cd0b0c..f48954ddd 100644 --- a/dev-libs/libedit/libedit-20100424.bep +++ b/dev-libs/libedit/libedit-20100424.bep @@ -10,7 +10,9 @@ COPYRIGHT="1992-2010 The NetBSD Foundation, Inc." BUILD { cd libedit-20100424-3.0 autoreconf --force --install - ./configure --prefix=/boot/common --disable-shared + ./configure --prefix=`finddir B_COMMON_DIRECTORY` \ + --disable-shared \ + --mandir=`finddir B_COMMON_DOCUMENTATION_DIRECTORY`/man make } diff --git a/dev-libs/libedit/libedit-20110802-3.0.bep b/dev-libs/libedit/libedit-20110802-3.0.bep new file mode 100644 index 000000000..441ef480a --- /dev/null +++ b/dev-libs/libedit/libedit-20110802-3.0.bep @@ -0,0 +1,22 @@ +DESCRIPTION="A BSD licensed replacement for the GNU readline library." +HOMEPAGE="http://www.thrysoee.dk/editline/" +SRC_URI="http://www.thrysoee.dk/editline/libedit-20110802-3.0.tar.gz" +CHECKSUM_MD5="0ea42e2c794da8ed32f6307b427f6590" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="" +LICENSE="BSD (3-clause)" +COPYRIGHT="1992-2011 The NetBSD Foundation, Inc." +BUILD { + cd libedit-20110802-3.0 + autoreconf --force --install + ./configure --prefix=`finddir B_COMMON_DIRECTORY` \ + --disable-shared \ + --mandir=`finddir B_COMMON_DOCUMENTATION_DIRECTORY`/man + make +} + +INSTALL { + cd libedit-20110802-3.0 + make install +} diff --git a/dev-libs/libedit/libedit-20120601-3.0.bep b/dev-libs/libedit/libedit-20120601-3.0.bep new file mode 100644 index 000000000..27c02f8ce --- /dev/null +++ b/dev-libs/libedit/libedit-20120601-3.0.bep @@ -0,0 +1,22 @@ +DESCRIPTION="A BSD licensed replacement for the GNU readline library." +HOMEPAGE="http://www.thrysoee.dk/editline/" +SRC_URI="http://www.thrysoee.dk/editline/libedit-20120601-3.0.tar.gz" +CHECKSUM_MD5="e50f6a7afb4de00c81650f7b1a0f5aea" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="" +LICENSE="BSD (3-clause)" +COPYRIGHT="1992-2012 The NetBSD Foundation, Inc." +BUILD { + cd libedit-20120601-3.0 + autoreconf --force --install + ./configure --prefix=`finddir B_COMMON_DIRECTORY` \ + --disable-shared \ + --mandir=`finddir B_COMMON_DOCUMENTATION_DIRECTORY`/man + make +} + +INSTALL { + cd libedit-20120601-3.0 + make install +} diff --git a/dev-libs/libedit/patches/libedit-20110802-3.0.patch b/dev-libs/libedit/patches/libedit-20110802-3.0.patch new file mode 100644 index 000000000..9fb782c91 --- /dev/null +++ b/dev-libs/libedit/patches/libedit-20110802-3.0.patch @@ -0,0 +1,66 @@ +diff -urN libedit-20110802-3.0/configure.ac libedit-20110802-3.0-haiku/configure.ac +--- libedit-20110802-3.0/configure.ac 2011-08-02 01:09:05.036962304 -0700 ++++ libedit-20110802-3.0-haiku/configure.ac 2012-06-16 10:41:31.579338240 -0700 +@@ -64,7 +64,7 @@ + AC_HEADER_DIRENT + AC_HEADER_STDC + AC_HEADER_SYS_WAIT +-AC_CHECK_HEADERS([fcntl.h limits.h malloc.h stdlib.h string.h sys/ioctl.h sys/param.h unistd.h curses.h ncurses.h sys/cdefs.h termcap.h]) ++AC_CHECK_HEADERS([fcntl.h limits.h malloc.h stdint.h stdlib.h string.h sys/errno.h errno.h sys/ioctl.h sys/param.h unistd.h curses.h ncurses.h sys/cdefs.h langinfo.h]) + + AC_CHECK_HEADER([termios.h], [], [AC_MSG_ERROR([termios.h is required!])],[]) + +diff -urN libedit-20110802-3.0/examples/fileman.c libedit-20110802-3.0-haiku/examples/fileman.c +--- libedit-20110802-3.0/examples/fileman.c 2010-04-22 12:13:17.046137344 -0700 ++++ libedit-20110802-3.0-haiku/examples/fileman.c 2012-06-16 10:41:31.721944576 -0700 +@@ -11,7 +11,11 @@ + #include + #include + #include ++#ifdef HAVE_SYS_ERRNO_H + #include ++#elif HAVE_ERRNO_H ++#include ++#endif + #include + #include + #include +diff -urN libedit-20110802-3.0/src/editline/readline.h libedit-20110802-3.0-haiku/src/editline/readline.h +--- libedit-20110802-3.0/src/editline/readline.h 2011-02-26 14:42:59.045088768 -0800 ++++ libedit-20110802-3.0-haiku/src/editline/readline.h 2012-06-16 10:41:32.068943872 -0700 +@@ -75,7 +75,7 @@ + + #ifndef CTRL + #include +-#if !defined(__sun) && !defined(__hpux) && !defined(_AIX) ++#if !defined(__sun) && !defined(__hpux) && !defined(_AIX) && !defined(__HAIKU__) + #include + #endif + #ifndef CTRL +diff -urN libedit-20110802-3.0/src/el.c libedit-20110802-3.0-haiku/src/el.c +--- libedit-20110802-3.0/src/el.c 2011-08-02 00:02:46.039583744 -0700 ++++ libedit-20110802-3.0-haiku/src/el.c 2012-06-16 10:41:31.823394304 -0700 +@@ -55,7 +55,9 @@ + #include + #include + #include ++#ifdef HAVE_LANGINFO_H + #include ++#endif + #include "el.h" + + /* el_init(): +diff -urN libedit-20110802-3.0/src/vis.c libedit-20110802-3.0-haiku/src/vis.c +--- libedit-20110802-3.0/src/vis.c 2011-07-08 23:39:42.044564480 -0700 ++++ libedit-20110802-3.0-haiku/src/vis.c 2012-06-16 10:41:31.985137152 -0700 +@@ -68,6 +68,10 @@ + #include + #include + ++#ifdef HAVE_STDINT_H ++#include ++#endif ++ + #ifdef __weak_alias + __weak_alias(strvisx,_strvisx) + #endif diff --git a/dev-libs/libedit/patches/libedit-20120601-3.0.patch b/dev-libs/libedit/patches/libedit-20120601-3.0.patch new file mode 100644 index 000000000..6c2bae550 --- /dev/null +++ b/dev-libs/libedit/patches/libedit-20120601-3.0.patch @@ -0,0 +1,66 @@ +diff -urN libedit-20120601-3.0/configure.ac libedit-20120601-3.0-haiku/configure.ac +--- libedit-20120601-3.0/configure.ac 2012-06-01 12:04:56.000000000 -0700 ++++ libedit-20120601-3.0-haiku/configure.ac 2012-06-16 15:01:10.749207552 -0700 +@@ -65,7 +65,7 @@ + AC_HEADER_DIRENT + AC_HEADER_STDC + AC_HEADER_SYS_WAIT +-AC_CHECK_HEADERS([fcntl.h limits.h malloc.h stdlib.h string.h sys/ioctl.h sys/param.h unistd.h curses.h ncurses.h sys/cdefs.h termcap.h]) ++AC_CHECK_HEADERS([fcntl.h limits.h malloc.h stdint.h stdlib.h string.h sys/errno.h errno.h sys/ioctl.h sys/param.h unistd.h curses.h ncurses.h sys/cdefs.h langinfo.h]) + + AC_CHECK_HEADER([termios.h], [], [AC_MSG_ERROR([termios.h is required!])],[]) + +diff -urN libedit-20120601-3.0/examples/fileman.c libedit-20120601-3.0-haiku/examples/fileman.c +--- libedit-20120601-3.0/examples/fileman.c 2010-04-22 12:13:17.000000000 -0700 ++++ libedit-20120601-3.0-haiku/examples/fileman.c 2012-06-16 15:01:10.911212544 -0700 +@@ -11,7 +11,11 @@ + #include + #include + #include ++#ifdef HAVE_SYS_ERRNO_H + #include ++#elif HAVE_ERRNO_H ++#include ++#endif + #include + #include + #include +diff -urN libedit-20120601-3.0/src/editline/readline.h libedit-20120601-3.0-haiku/src/editline/readline.h +--- libedit-20120601-3.0/src/editline/readline.h 2012-05-22 10:43:49.000000000 -0700 ++++ libedit-20120601-3.0-haiku/src/editline/readline.h 2012-06-16 15:01:10.947388416 -0700 +@@ -75,7 +75,7 @@ + + #ifndef CTRL + #include +-#if !defined(__sun) && !defined(__hpux) && !defined(_AIX) ++#if !defined(__sun) && !defined(__hpux) && !defined(_AIX) && !defined(__HAIKU__) + #include + #endif + #ifndef CTRL +diff -urN libedit-20120601-3.0/src/el.c libedit-20120601-3.0-haiku/src/el.c +--- libedit-20120601-3.0/src/el.c 2012-03-11 15:00:23.000000000 -0700 ++++ libedit-20120601-3.0-haiku/src/el.c 2012-06-16 15:01:11.013893632 -0700 +@@ -55,7 +55,9 @@ + #include + #include + #include ++#ifdef HAVE_LANGINFO_H + #include ++#endif + #include "el.h" + + /* el_init(): +diff -urN libedit-20120601-3.0/src/vis.c libedit-20120601-3.0-haiku/src/vis.c +--- libedit-20120601-3.0/src/vis.c 2011-07-08 23:39:42.000000000 -0700 ++++ libedit-20120601-3.0-haiku/src/vis.c 2012-06-16 15:01:11.063176704 -0700 +@@ -68,6 +68,10 @@ + #include + #include + ++#ifdef HAVE_STDINT_H ++#include ++#endif ++ + #ifdef __weak_alias + __weak_alias(strvisx,_strvisx) + #endif diff --git a/dev-libs/libelf/libelf-0.8.13.bep b/dev-libs/libelf/libelf-0.8.13.bep new file mode 100644 index 000000000..d1a0c7ebb --- /dev/null +++ b/dev-libs/libelf/libelf-0.8.13.bep @@ -0,0 +1,22 @@ +DESCRIPTION="libelf - ELF object file access library" +HOMEPAGE="http://www.mr511.de/software/english.html" +SRC_URI="http://www.mr511.de/software/libelf-0.8.13.tar.gz" +CHECKSUM_MD5="4136d7b4c04df68b686570afa26988ac" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="" +BUILD { + cd libelf-0.8.13 + libtoolize -fci + autoreconf + ./configure --enable-gnu-names --prefix=$(finddir B_COMMON_DIRECTORY) + make +} + +INSTALL { + cd libelf-0.8.13 + make install instroot=$DESTDIR + make install-compat instroot=$DESTDIR +} +LICENSE="GNU LGPL v2" +COPYRIGHT="1995-2008 Michael Riepe" diff --git a/dev-libs/libelf/patches/libelf-0.8.13.patch b/dev-libs/libelf/patches/libelf-0.8.13.patch new file mode 100644 index 000000000..3122add35 --- /dev/null +++ b/dev-libs/libelf/patches/libelf-0.8.13.patch @@ -0,0 +1,25 @@ +diff -Naur libelf-0.8.13/aclocal.m4 libelf-0.8.13-haiku/aclocal.m4 +--- libelf-0.8.13/aclocal.m4 2008-05-23 08:17:56.050593792 +0000 ++++ libelf-0.8.13-haiku/aclocal.m4 2012-08-21 14:55:07.622854144 +0000 +@@ -235,7 +235,7 @@ + AC_REQUIRE([AC_PROG_CC]) + AC_PATH_PROG(LD, ld, ld) + case "$host" in +- *-linux*|*-gnu*) ++ *-linux*|*-gnu*|*-haiku*) + if test "$GCC" = yes; then + mr_TARGET_ELF + if test "$mr_cv_target_elf" = yes; then +@@ -248,7 +248,11 @@ + SONAME_SFX='.so.$(MAJOR)' + LINK_SHLIB='$(CC) -shared -Wl,-soname,$(SONAME)' + INSTALL_SHLIB='$(INSTALL_PROGRAM)' +- DEPSHLIBS='-lc' ++ case "$host" in ++ *-linux*|*-gnu*) ++ DEPSHLIBS='-lc' ++ ;; ++ esac + else + AC_MSG_WARN([shared libraries not supported for $host]) + mr_enable_shared=no diff --git a/dev-libs/libevent/libevent-1.4.11.bep b/dev-libs/libevent/libevent-1.4.11.bep index f206689a4..6747e2dc5 100644 --- a/dev-libs/libevent/libevent-1.4.11.bep +++ b/dev-libs/libevent/libevent-1.4.11.bep @@ -9,7 +9,7 @@ DEPEND="" BUILD { cd libevent-1.4.11-stable autoreconf -vfi - ./configure --prefix=/boot/common + ./configure --prefix=`finddir B_COMMON_DIRECTORY` make } diff --git a/dev-libs/libevent/libevent-1.4.13.bep b/dev-libs/libevent/libevent-1.4.13.bep index 9761eb13a..a7975f433 100644 --- a/dev-libs/libevent/libevent-1.4.13.bep +++ b/dev-libs/libevent/libevent-1.4.13.bep @@ -9,7 +9,7 @@ DEPEND="" BUILD { cd libevent-1.4.13-stable autoreconf -vfi - ./configure --prefix=/boot/common + ./configure --prefix=`finddir B_COMMON_DIRECTORY` make } diff --git a/dev-libs/libevent/libevent-1.4.14b.bep b/dev-libs/libevent/libevent-1.4.14b.bep index 346703569..aff7ae9a7 100644 --- a/dev-libs/libevent/libevent-1.4.14b.bep +++ b/dev-libs/libevent/libevent-1.4.14b.bep @@ -9,15 +9,11 @@ DEPEND="" BUILD { cd libevent-1.4.14b-stable autoreconf -vfi - MANDIR=`finddir B_COMMON_DOCUMENTATION_DIRECTORY`/man - if [ -n "$(setgcc | grep '2')" ]; then - LIBDIR=`finddir B_COMMON_LIB_DIRECTORY` - else - LIBDIR=`finddir B_COMMON_LIB_DIRECTORY`/gcc4 - fi + COMMON_DOCS=`finddir B_COMMON_DOCUMENTATION_DIRECTORY`/man + LIBDIR=`finddir B_COMMON_LIB_DIRECTORY` ./configure --prefix=`finddir B_COMMON_DIRECTORY` \ --libdir=$LIBDIR \ - --mandir=$MANDIR + --mandir=$COMMON_DOCS make } diff --git a/dev-libs/libevent/libevent-2.0.10.bep b/dev-libs/libevent/libevent-2.0.10.bep index 9bafcdb2a..87dc63adc 100644 --- a/dev-libs/libevent/libevent-2.0.10.bep +++ b/dev-libs/libevent/libevent-2.0.10.bep @@ -9,15 +9,11 @@ DEPEND="" BUILD { cd libevent-2.0.10-stable autoreconf -vfi - MANDIR=`finddir B_COMMON_DOCUMENTATION_DIRECTORY`/man - if [ -n "$(setgcc | grep '2')" ]; then - LIBDIR=`finddir B_COMMON_LIB_DIRECTORY` - else - LIBDIR=`finddir B_COMMON_LIB_DIRECTORY`/gcc4 - fi + COMMON_DOCS=`finddir B_COMMON_DOCUMENTATION_DIRECTORY`/man + LIBDIR=`finddir B_COMMON_LIB_DIRECTORY` ./configure --prefix=`finddir B_COMMON_DIRECTORY` \ --libdir=$LIBDIR \ - --mandir=$MANDIR + --mandir=$COMMON_DOCS make } diff --git a/dev-libs/libffi/libffi-3.0.11.bep b/dev-libs/libffi/libffi-3.0.11.bep new file mode 100644 index 000000000..2b187d569 --- /dev/null +++ b/dev-libs/libffi/libffi-3.0.11.bep @@ -0,0 +1,21 @@ +DESCRIPTION="a portable, high level programming interface to various calling conventions." +HOMEPAGE="http://sourceware.org/libffi" +SRC_URI="ftp://sourceware.org/pub/libffi/libffi-3.0.11.tar.gz" +REVISION="1" +STATUS_HAIKU="stable" +CHECKSUM_MD5="f69b9693227d976835b4857b1ba7d0e3" +DEPEND="" +BUILD { + cd libffi-3.0.11 + ./configure --prefix=`finddir B_COMMON_DIRECTORY` \ + --datarootdir=`finddir B_COMMON_DOCUMENTATION_DIRECTORY` + make +} + +INSTALL { + cd libffi-3.0.11 + make install +} + +COPYRIGHT="1996-2012 Anthony Green, Red Hat, Inc and others." +LICENSE="MIT" diff --git a/dev-libs/libffi/libffi-3.0.9.bep b/dev-libs/libffi/libffi-3.0.9.bep index 13f509a02..1dfcf228a 100644 --- a/dev-libs/libffi/libffi-3.0.9.bep +++ b/dev-libs/libffi/libffi-3.0.9.bep @@ -12,7 +12,7 @@ BUILD { aclocal automake autoconf - ./configure --prefix=/boot/common + ./configure --prefix=`finddir B_COMMON_DIRECTORY` make } diff --git a/dev-libs/libgcrypt/libgcrypt-1.4.5.bep b/dev-libs/libgcrypt/libgcrypt-1.4.5.bep index 6aaa5dbe6..549933e7a 100644 --- a/dev-libs/libgcrypt/libgcrypt-1.4.5.bep +++ b/dev-libs/libgcrypt/libgcrypt-1.4.5.bep @@ -8,7 +8,7 @@ BUILD { cd libgcrypt-1.4.5 libtoolize --force --copy --install autogen.sh - ./configure --prefix=/boot/common + ./configure --prefix=`finddir B_COMMON_DIRECTORY` make } diff --git a/dev-libs/libgcrypt/libgcrypt-1.5.0.bep b/dev-libs/libgcrypt/libgcrypt-1.5.0.bep new file mode 100644 index 000000000..f22ea0cbf --- /dev/null +++ b/dev-libs/libgcrypt/libgcrypt-1.5.0.bep @@ -0,0 +1,24 @@ +DESCRIPTION="libgcrypt" +HOMEPAGE="http://directory.fsf.org/project/libgcrypt/" +SRC_URI="ftp://ftp.gnupg.org/gcrypt/libgcrypt/libgcrypt-1.5.0.tar.bz2" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="dev-libs/libgpg-error > 1.8" +CHECKSUM_MD5="693f9c64d50c908bc4d6e01da3ff76d8" +BUILD { + cd libgcrypt-1.5.0 + libtoolize --force --copy --install + autogen.sh + ./configure --prefix=`finddir B_COMMON_DIRECTORY` \ + --datadir=`finddir B_COMMON_DATA_DIRECTORY` \ + --datarootdir=`finddir B_COMMON_DATA_DIRECTORY` \ + --enable-shared --enable-static + make +} + +INSTALL { + cd libgcrypt-1.5.0 + make install +} +LICENSE="GNU LGPL v3" +COPYRIGHT="2000-2010 Free Software Foundation, Inc." diff --git a/dev-libs/libgcrypt/patches/libgcrypt-1.5.0.patch b/dev-libs/libgcrypt/patches/libgcrypt-1.5.0.patch new file mode 100644 index 000000000..27c4ea590 --- /dev/null +++ b/dev-libs/libgcrypt/patches/libgcrypt-1.5.0.patch @@ -0,0 +1,10 @@ +--- libgcrypt-1.5.0/configure.ac 2011-06-29 08:53:22.065011712 +0000 ++++ libgcrypt-1.5.0-haiku/configure.ac 2012-04-09 17:24:30.365690880 +0000 +@@ -619,6 +619,7 @@ + AC_SEARCH_LIBS(setsockopt, [socket], , + [AC_SEARCH_LIBS(setsockopt, [socket], , , [-lnsl])]) + AC_SEARCH_LIBS(setsockopt, [nsl]) ++AC_SEARCH_LIBS(socket, [network]) + + ################################## + #### Checks for header files. #### diff --git a/dev-libs/libgpg-error/libgpg-error-1.10.bep b/dev-libs/libgpg-error/libgpg-error-1.10.bep new file mode 100644 index 000000000..4b7149696 --- /dev/null +++ b/dev-libs/libgpg-error/libgpg-error-1.10.bep @@ -0,0 +1,26 @@ +DESCRIPTION="libgpg-error" +HOMEPAGE="http://www.gnupg.org/related_software/libraries.en.html#lib-libgpg-error" +SRC_URI="ftp://ftp.gnupg.org/gcrypt/libgpg-error/libgpg-error-1.10.tar.bz2" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="gettext = 0.18.1.1-dev" +CHECKSUM_MD5="736a03daa9dc5873047d4eb4a9c22a16" +BUILD { + cd libgpg-error-1.10 + cd po + touch t-cs.gmo t-de.gmo t-fr.gmo t-it.gmo t-nl.gmo \ + t-pl.gmo t-ro.gmo t-sv.gmo t-vi.gmo t-zh_CN.gmo + cd .. + ./configure --prefix=`finddir B_COMMON_DIRECTORY` \ + --datadir=`finddir B_COMMON_DATA_DIRECTORY` \ + --datarootdir=`finddir B_COMMON_DATA_DIRECTORY` + make +} + +INSTALL { + cd libgpg-error-1.10 + make install +} + +LICENSE="GNU LGPL v2.1" +COPYRIGHT="2003-2010 g10 Code GmbH" diff --git a/dev-libs/libgpg-error/libgpg-error-1.7.bep b/dev-libs/libgpg-error/libgpg-error-1.7.bep index 48ba5d391..d51596db0 100644 --- a/dev-libs/libgpg-error/libgpg-error-1.7.bep +++ b/dev-libs/libgpg-error/libgpg-error-1.7.bep @@ -8,7 +8,7 @@ CHECKSUM_MD5="62c0d09d1e76c5b6da8fff92314c4665" BUILD { cd libgpg-error-1.7 autoreconf -vfi -Im4 - ./configure --prefix=/boot/common + ./configure --prefix=`finddir B_COMMON_DIRECTORY` make } diff --git a/dev-libs/libgpg-error/patches/libgpg-error-1.10.patch b/dev-libs/libgpg-error/patches/libgpg-error-1.10.patch new file mode 100644 index 000000000..09e99ba4a --- /dev/null +++ b/dev-libs/libgpg-error/patches/libgpg-error-1.10.patch @@ -0,0 +1,11 @@ +--- libgpg-error-1.10/src/mkerrcodes2.awk 2008-08-26 12:45:58.010747904 +0000 ++++ libgpg-error-1.10-haiku/src/mkerrcodes2.awk 2012-04-09 16:59:18.363855872 +0000 +@@ -81,7 +81,7 @@ + /^#/ { next; } + + header { +- if ($1 ~ /^[0123456789]+$/) ++ if ($1 ~ /^-?[0123456789]+$/) + { + print "static const int err_code_from_index[] = {"; + header = 0; diff --git a/dev-libs/libiconv/libiconv-1.12.bep b/dev-libs/libiconv/libiconv-1.12.bep index 0bee0e74a..7b40e7808 100644 --- a/dev-libs/libiconv/libiconv-1.12.bep +++ b/dev-libs/libiconv/libiconv-1.12.bep @@ -7,11 +7,41 @@ STATUS_HAIKU="stable" DEPEND="" BUILD { cd libiconv-1.12 - ./configure --prefix=/boot/common + rm -rf aclocal.m4 + echo "AC_CONFIG_MACRO_DIR([m4]) >> configure.ac" + libtoolize -fci + aclocal --install -I m4 -I srcm4 + autoconf + autoheader + cd libcharset + echo "AC_CONFIG_MACRO_DIR([m4]) >> configure.ac" + libtoolize -fci + aclocal --install -I m4 + autoconf + autoheader + cd .. + COMMON_DOCS=`finddir B_COMMON_DOCUMENTATION_DIRECTORY` + ./configure --prefix=`finddir B_COMMON_DIRECTORY` \ + --datarootdir=`finddir B_COMMON_DATA_DIRECTORY` \ + --localedir=`finddir B_COMMON_DATA_DIRECTORY`/locale \ + --docdir=$COMMON_DOCS/doc/iconv \ + --mandir=$COMMON_DOCS/man \ + --enable-relocatable \ + --enable-shared \ + --enable-static \ + --disable-nls make } INSTALL { cd libiconv-1.12 + ACLOCALDIR=${DESTDIR}/`aclocal --print-ac-dir` + mkdir -p ${ACLOCALDIR} + cp -f srcm4/iconv.m4 ${ACLOCALDIR}/iconv.m4 make install } + +TEST{ + cd libiconv-1.12 + make check +} diff --git a/dev-libs/liboil/liboil-0.3.17.bep b/dev-libs/liboil/liboil-0.3.17.bep index 65dd13295..a54643c8d 100644 --- a/dev-libs/liboil/liboil-0.3.17.bep +++ b/dev-libs/liboil/liboil-0.3.17.bep @@ -11,7 +11,7 @@ BUILD { aclocal -I m4 autoconf automake - ./configure --prefix=/boot/common + ./configure --prefix=`finddir B_COMMON_DIRECTORY` make } diff --git a/dev-libs/liboil/patches/liboil-0.3.17.patch b/dev-libs/liboil/patches/liboil-0.3.17.patch new file mode 100644 index 000000000..e98a3d4bb --- /dev/null +++ b/dev-libs/liboil/patches/liboil-0.3.17.patch @@ -0,0 +1,8 @@ +--- liboil-0.3.17-orig/liboil/c/generate_clamp.pl 2007-11-16 02:53:47.006553600 +0000 ++++ liboil-0.3.17/liboil/c/generate_clamp.pl 2012-08-05 14:10:46.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/perl ++#!/boot/common/bin/perl + # + + diff --git a/dev-libs/libparserutils/libparserutils-0.1.1.bep b/dev-libs/libparserutils/libparserutils-0.1.1.bep new file mode 100644 index 000000000..28738cbe1 --- /dev/null +++ b/dev-libs/libparserutils/libparserutils-0.1.1.bep @@ -0,0 +1,19 @@ +DESCRIPTION="LibParserUtils is a library for building efficient parsers" +HOMEPAGE="http://www.netsurf-browser.org/projects/libparserutils/" +SRC_URI="http://download.netsurf-browser.org/libs/releases/libparserutils-0.1.1-src.tar.gz" +REVISION="1" +STATUS_HAIKU="stable" + +BUILD { + cd libparserutils-0.1.1 + make +} + +INSTALL { + cd libparserutils-0.1.1 + make install +} + +LICENSE="MIT + GNU GPL v2" +COPYRIGHT="2003 - 2012 The NetSurf Developers" diff --git a/dev-libs/libpcre/libpcre-8.00.bep b/dev-libs/libpcre/libpcre-8.00.bep index f6fa33ae4..802fb405a 100644 --- a/dev-libs/libpcre/libpcre-8.00.bep +++ b/dev-libs/libpcre/libpcre-8.00.bep @@ -11,7 +11,7 @@ BUILD { aclocal autoconf automake - ./configure --prefix=/boot/common --enable-utf8 --enable-unicode-properties --with-pic + ./configure --prefix=`finddir B_COMMON_DIRECTORY` --enable-utf8 --enable-unicode-properties --with-pic make make check } diff --git a/dev-libs/libpcre/libpcre-8.02.bep b/dev-libs/libpcre/libpcre-8.02.bep index 364d5096a..c5e5b701c 100644 --- a/dev-libs/libpcre/libpcre-8.02.bep +++ b/dev-libs/libpcre/libpcre-8.02.bep @@ -1,5 +1,5 @@ DESCRIPTION="libpcre - Perl Compatible Regular Expressions" -HOMEPAGE="http://www.xpcre.org/" +HOMEPAGE="http://www.xpcre.org/" SRC_URI="ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.02.tar.bz2" CHECKSUM_MD5="27948c1b5f5c1eabc23cba1ebe4c316f" REVISION="1" @@ -7,16 +7,12 @@ STATUS_HAIKU="stable" DEPEND="" BUILD { cd pcre-8.02 - if [ -n "$(setgcc | grep '2')" ]; then - LIBDIR=`finddir B_COMMON_LIB_DIRECTORY` - else - LIBDIR=`finddir B_COMMON_LIB_DIRECTORY`/gcc4 - fi + LIBDIR=`finddir B_COMMON_LIB_DIRECTORY` libtoolize --force --copy aclocal autoconf automake - ./configure --prefix=/boot/common --enable-utf8 --enable-unicode-properties --with-pic --libdir=${LIBDIR} + ./configure --prefix=`finddir B_COMMON_DIRECTORY` --enable-utf8 --enable-unicode-properties --with-pic --libdir=${LIBDIR} make make check } diff --git a/dev-libs/libpcre/libpcre-8.12.bep b/dev-libs/libpcre/libpcre-8.12.bep index b074e1bc5..1d1b9188d 100644 --- a/dev-libs/libpcre/libpcre-8.12.bep +++ b/dev-libs/libpcre/libpcre-8.12.bep @@ -1,5 +1,5 @@ DESCRIPTION="libpcre - Perl Compatible Regular Expressions" -HOMEPAGE="http://www.xpcre.org/" +HOMEPAGE="http://www.xpcre.org/" SRC_URI="ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.12.tar.bz2" CHECKSUM_MD5="f14a9fef3c92f3fc6c5ac92d7a2c7eb3" REVISION="1" @@ -7,22 +7,19 @@ STATUS_HAIKU="stable" DEPEND="" BUILD { cd pcre-8.12 -# if [ -n "$(setgcc | grep '2')" ]; then - LIBDIR=`finddir B_COMMON_LIB_DIRECTORY` -# else -# LIBDIR=`finddir B_COMMON_LIB_DIRECTORY`/gcc4 -# fi + LIBDIR=`finddir B_COMMON_LIB_DIRECTORY` libtoolize --force --copy aclocal autoconf automake + COMMON_DOCS=`finddir B_COMMON_DOCUMENTATION_DIRECTORY` ./configure --prefix=`finddir B_COMMON_DIRECTORY` \ --enable-utf8 \ --enable-unicode-properties \ --with-pic \ --libdir=${LIBDIR} \ - --mandir=`finddir B_COMMON_DOCUMENTATION_DIRECTORY`/man \ - --docdir=`finddir B_COMMON_DOCUMENTATION_DIRECTORY`/doc + --mandir=$COMMON_DOCS/man \ + --docdir=$COMMON_DOCS/doc/pcre make } diff --git a/dev-libs/libpcre/libpcre-8.21.bep b/dev-libs/libpcre/libpcre-8.21.bep new file mode 100644 index 000000000..429772017 --- /dev/null +++ b/dev-libs/libpcre/libpcre-8.21.bep @@ -0,0 +1,38 @@ +DESCRIPTION="libpcre - Perl Compatible Regular Expressions" +HOMEPAGE="http://www.pcre.org/" +SRC_URI="ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.21.tar.bz2" +CHECKSUM_MD5="0a7b592bea64b7aa7f4011fc7171a730" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="" +BUILD { + cd pcre-8.21 + LIBDIR=`finddir B_COMMON_LIB_DIRECTORY` + libtoolize --force --copy --install + aclocal + autoconf + automake + COMMON_DOCS=`finddir B_COMMON_DOCUMENTATION_DIRECTORY` + ./configure --prefix=`finddir B_COMMON_DIRECTORY` \ + --enable-utf8 \ + --enable-unicode-properties \ + --with-pic \ + --libdir=${LIBDIR} \ + --mandir=$COMMON_DOCS/man \ + --docdir=$COMMON_DOCS/doc/pcre + make +} + +INSTALL { + cd pcre-8.21 + make install +} + +TEST { + cd pcre-8.21 + make check +} + +LICENSE="PCRE" +COPYRIGHT="1997-2011 University of Cambridge + 2007-2011, Google Inc. All rights reserved." diff --git a/dev-libs/libpthread-stubs/libpthread-stubs-0.3.2.bep b/dev-libs/libpthread-stubs/libpthread-stubs-0.3.2.bep index a1d057af0..7c8343203 100644 --- a/dev-libs/libpthread-stubs/libpthread-stubs-0.3.2.bep +++ b/dev-libs/libpthread-stubs/libpthread-stubs-0.3.2.bep @@ -9,7 +9,7 @@ BUILD { cd libpthread-stubs-0.3 libtoolize --force --copy --install autoreconf -i - ./configure --prefix=/boot/common + ./configure --prefix=`finddir B_COMMON_DIRECTORY` make } diff --git a/dev-libs/libpthread-stubs/libpthread-stubs-0.3.bep b/dev-libs/libpthread-stubs/libpthread-stubs-0.3.bep index a1d057af0..7c8343203 100644 --- a/dev-libs/libpthread-stubs/libpthread-stubs-0.3.bep +++ b/dev-libs/libpthread-stubs/libpthread-stubs-0.3.bep @@ -9,7 +9,7 @@ BUILD { cd libpthread-stubs-0.3 libtoolize --force --copy --install autoreconf -i - ./configure --prefix=/boot/common + ./configure --prefix=`finddir B_COMMON_DIRECTORY` make } diff --git a/dev-libs/libsigc++/libsigc++-1.2.7.bep b/dev-libs/libsigc++/libsigc++-1.2.7.bep index e0ffdce84..1decbb7ed 100644 --- a/dev-libs/libsigc++/libsigc++-1.2.7.bep +++ b/dev-libs/libsigc++/libsigc++-1.2.7.bep @@ -12,7 +12,7 @@ BUILD { autoconf automake ./autogen.sh - ./configure --prefix=/boot/common + ./configure --prefix=`finddir B_COMMON_DIRECTORY` make -i # There's name make file for tests and examples directories so just ignore (-i) # those errors and we really don't need either one diff --git a/dev-libs/libsigc++/libsigc++-2.2.7.bep b/dev-libs/libsigc++/libsigc++-2.2.7.bep index 1d1aea380..9a4accac8 100644 --- a/dev-libs/libsigc++/libsigc++-2.2.7.bep +++ b/dev-libs/libsigc++/libsigc++-2.2.7.bep @@ -10,7 +10,7 @@ BUILD { libtoolize --force --copy aclocal sh autogen.sh - ./configure --prefix=/boot/common + ./configure --prefix=`finddir B_COMMON_DIRECTORY` make } diff --git a/dev-libs/libunistring/libunistring-0.9.1.1.bep b/dev-libs/libunistring/libunistring-0.9.1.1.bep index ab08efc41..0138a2f4e 100644 --- a/dev-libs/libunistring/libunistring-0.9.1.1.bep +++ b/dev-libs/libunistring/libunistring-0.9.1.1.bep @@ -9,7 +9,7 @@ BUILD { cd libunistring-0.9.1.1 libtoolize --copy --force --install ./autogen.sh - ./configure --prefix=/boot/common + ./configure --prefix=`finddir B_COMMON_DIRECTORY` make } diff --git a/dev-libs/libwapcaplet/libwapcaplet-0.1.1-HEAD.bep b/dev-libs/libwapcaplet/libwapcaplet-0.1.1-HEAD.bep new file mode 100644 index 000000000..8190c188a --- /dev/null +++ b/dev-libs/libwapcaplet/libwapcaplet-0.1.1-HEAD.bep @@ -0,0 +1,20 @@ +DESCRIPTION="LibWapcaplet is a string internment library" +HOMEPAGE="http://www.netsurf-browser.org/projects/libwapcaplet/" +SRC_URI="git://git.netsurf-browser.org/libwapcaplet.git" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="dev-util/buildsystem >= 0" + +BUILD { + cd libwapcaplet-0.1.1-HEAD + make PREFIX=/boot/common +} + +INSTALL { + cd libwapcaplet-0.1.1-HEAD + make install PREFIX=/boot/common +} + +LICENSE="MIT + GNU GPL v2" +COPYRIGHT="2003 - 2012 The NetSurf Developers" diff --git a/dev-libs/libwapcaplet/libwapcaplet-0.1.1.bep b/dev-libs/libwapcaplet/libwapcaplet-0.1.1.bep new file mode 100644 index 000000000..8d71ca25f --- /dev/null +++ b/dev-libs/libwapcaplet/libwapcaplet-0.1.1.bep @@ -0,0 +1,19 @@ +DESCRIPTION="LibWapcaplet is a string internment library" +HOMEPAGE="http://www.netsurf-browser.org/projects/libwapcaplet/" +SRC_URI="http://download.netsurf-browser.org/libs/releases/libwapcaplet-0.1.1-src.tar.gz" +REVISION="1" +STATUS_HAIKU="stable" + +BUILD { + cd libwapcaplet-0.1.1 + make +} + +INSTALL { + cd libwapcaplet-0.1.1 + make install +} + +LICENSE="MIT + GNU GPL v2" +COPYRIGHT="2003 - 2012 The NetSurf Developers" diff --git a/dev-libs/libxdg-basedir/libxdg-basedir-1.1.1.bep b/dev-libs/libxdg-basedir/libxdg-basedir-1.1.1.bep index 754d824a7..6e1d2a3c1 100644 --- a/dev-libs/libxdg-basedir/libxdg-basedir-1.1.1.bep +++ b/dev-libs/libxdg-basedir/libxdg-basedir-1.1.1.bep @@ -7,7 +7,7 @@ DEPEND="" CHECKSUM_MD5="7c64a28b08c8fdf6c8a95b0d5f1497b0" BUILD { cd libxdg-basedir-1.1.1 - ./configure --prefix=/boot/common + ./configure --prefix=`finddir B_COMMON_DIRECTORY` make } diff --git a/dev-libs/libxml2/libxml2-2.7.3.bep b/dev-libs/libxml2/libxml2-2.7.3.bep index afb8f8f5a..5a7a0d4df 100644 --- a/dev-libs/libxml2/libxml2-2.7.3.bep +++ b/dev-libs/libxml2/libxml2-2.7.3.bep @@ -11,7 +11,7 @@ BUILD { aclocal autoconf automake - ./configure --prefix=/boot/common --enable-ipv6=no LDFLAGS=-lnetwork + ./configure --prefix=`finddir B_COMMON_DIRECTORY` --enable-ipv6=no LDFLAGS=-lnetwork make } diff --git a/dev-libs/libxml2/libxml2-2.7.6.bep b/dev-libs/libxml2/libxml2-2.7.6.bep index bb3ed9016..aeb674eb8 100644 --- a/dev-libs/libxml2/libxml2-2.7.6.bep +++ b/dev-libs/libxml2/libxml2-2.7.6.bep @@ -11,7 +11,7 @@ BUILD { aclocal autoconf automake - ./configure --prefix=/boot/common --enable-ipv6=no LDFLAGS="-lnetwork -L/boot/common/lib" + ./configure --prefix=`finddir B_COMMON_DIRECTORY` --enable-ipv6=no LDFLAGS="-lnetwork -L/boot/common/lib" make } diff --git a/dev-libs/libxml2/libxml2-2.7.7.bep b/dev-libs/libxml2/libxml2-2.7.7.bep index 61772d902..f5205acd0 100644 --- a/dev-libs/libxml2/libxml2-2.7.7.bep +++ b/dev-libs/libxml2/libxml2-2.7.7.bep @@ -11,7 +11,7 @@ BUILD { aclocal autoconf automake - ./configure --prefix=/boot/common --enable-ipv6=no LDFLAGS="-lnetwork -L/boot/common/lib" + ./configure --prefix=`finddir B_COMMON_DIRECTORY` --enable-ipv6=no LDFLAGS="-lnetwork -L/boot/common/lib" make } diff --git a/dev-libs/libxml2/libxml2-2.8.0.bep b/dev-libs/libxml2/libxml2-2.8.0.bep new file mode 100644 index 000000000..49230b94f --- /dev/null +++ b/dev-libs/libxml2/libxml2-2.8.0.bep @@ -0,0 +1,35 @@ +DESCRIPTION="libxml2 - Version 2 of the library to manipulate XML files" +HOMEPAGE="http://www.xmlsoft.org/" +SRC_URI="ftp://xmlsoft.org/libxml2/libxml2-2.8.0.tar.gz" +CHECKSUM_MD5="c62106f02ee00b6437f0fb9d370c1093" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="" +BUILD { + cd libxml2-2.8.0 + libtoolize --force --copy --install + aclocal + autoconf + sed -i 's/$(datadir)\/aclocal/`finddir B_COMMON_DATA_DIRECTORY`\/aclocal/g' M* + automake + COMMON_DOCS=`finddir B_COMMON_DOCUMENTATION_DIRECTORY` + ./configure --prefix=`finddir B_COMMON_DIRECTORY` \ + --datarootdir=$COMMON_DOCS \ + --docdir=$COMMON_DOCS/doc \ + --mandir=$COMMON_DOCS/man + LDFLAGS="-lnetwork" + make +} + +INSTALL { + cd libxml2-2.8.0 + make install +} + +TEST { + cd libxml2-2.8.0 + make tests +} + +LICENSE="MIT" +COPYRIGHT="1998-2003 Daniel Veillard. All Rights Reserved." diff --git a/dev-libs/libxml2/libxml2-2.9.0.bep b/dev-libs/libxml2/libxml2-2.9.0.bep new file mode 100644 index 000000000..70bf22569 --- /dev/null +++ b/dev-libs/libxml2/libxml2-2.9.0.bep @@ -0,0 +1,36 @@ +DESCRIPTION="libxml2 - Version 2 of the library to manipulate XML files" +HOMEPAGE="http://www.xmlsoft.org/" +SRC_URI="ftp://xmlsoft.org/libxml2/libxml2-2.9.0.tar.gz" +CHECKSUM_MD5="5b9bebf4f5d2200ae2c4efe8fa6103f7" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="" +BUILD { + cd libxml2-2.9.0 + libtoolize --force --copy --install + aclocal + autoconf + sed -i 's/$(datadir)\/aclocal/`finddir B_COMMON_DATA_DIRECTORY`\/aclocal/g' M* + automake + COMMON_DOCS=`finddir B_COMMON_DOCUMENTATION_DIRECTORY` + ./configure --prefix=`finddir B_COMMON_DIRECTORY` \ + --datarootdir=$COMMON_DOCS \ + --docdir=$COMMON_DOCS/doc \ + --mandir=$COMMON_DOCS/man \ + --with-threads=yes + LDFLAGS="-lnetwork" + make +} + +INSTALL { + cd libxml2-2.9.0 + make install +} + +TEST { + cd libxml2-2.9.0 + make tests +} + +LICENSE="MIT" +COPYRIGHT="1998-2003 Daniel Veillard. All Rights Reserved." diff --git a/dev-libs/libxml2/patches/libxml2-2.9.0.patch b/dev-libs/libxml2/patches/libxml2-2.9.0.patch new file mode 100644 index 000000000..b5ca0e802 --- /dev/null +++ b/dev-libs/libxml2/patches/libxml2-2.9.0.patch @@ -0,0 +1,33 @@ +--- libxml2-2.9.0-orig/threads.c 2012-09-11 03:52:46.000000000 +0000 ++++ libxml2-2.9.0/threads.c 2013-02-12 20:44:23.000000000 +0000 +@@ -146,6 +146,7 @@ + static pthread_key_t globalkey; + static pthread_t mainthread; + static pthread_once_t once_control = PTHREAD_ONCE_INIT; ++static pthread_once_t once_control_init = PTHREAD_ONCE_INIT; + static pthread_mutex_t global_init_lock = PTHREAD_MUTEX_INITIALIZER; + #elif defined HAVE_WIN32_THREADS + #if defined(HAVE_COMPILER_TLS) +@@ -915,7 +916,7 @@ + #ifdef HAVE_PTHREAD_H + if ((libxml_is_threaded) && (pthread_key_delete != NULL)) + pthread_key_delete(globalkey); +- once_control = PTHREAD_ONCE_INIT; ++ once_control = once_control_init; + #elif defined(HAVE_WIN32_THREADS) && !defined(HAVE_COMPILER_TLS) && (!defined(LIBXML_STATIC) || defined(LIBXML_STATIC_FOR_DLL)) + if (globalkey != TLS_OUT_OF_INDEXES) { + xmlGlobalStateCleanupHelperParams *p; +--- libxml2-2.9.0-orig/configure.in 2012-09-11 03:52:46.053739520 +0000 ++++ libxml2-2.9.0/configure.in 2013-02-12 20:37:19.000000000 +0000 +@@ -988,6 +988,11 @@ + *beos*) WITH_THREADS="1" + THREAD_CFLAGS="$THREAD_CFLAGS -DHAVE_BEOS_THREADS" + ;; ++ *haiku*) WITH_THREADS="1" ++ THREAD_LIB="" ++ AC_DEFINE([HAVE_PTHREAD_H], [], [Define if is there]) ++ ;; ++ + *linux*) + if test "${GCC}" = "yes" ; then + GCC_VERSION=`${CC} --version | head -1 | awk '{print $3}'` diff --git a/dev-libs/libxslt/libxslt-1.1.26.bep b/dev-libs/libxslt/libxslt-1.1.26.bep index db8fc9fcb..2702fe367 100644 --- a/dev-libs/libxslt/libxslt-1.1.26.bep +++ b/dev-libs/libxslt/libxslt-1.1.26.bep @@ -10,8 +10,14 @@ BUILD { libtoolize --force --copy --install aclocal autoconf + sed -i 's/$(datadir)\/aclocal/`finddir B_COMMON_DATA_DIRECTORY`\/aclocal/' Makefile* automake - ./configure --prefix=/boot/common + + COMMON_DOCS=`finddir B_COMMON_DOCUMENTATION_DIRECTORY` + ./configure --prefix=`finddir B_COMMON_DIRECTORY` \ + --datarootdir=$COMMON_DOCS \ + --docdir=$COMMON_DOCS/doc \ + --mandir=$COMMON_DOCS/man make } @@ -19,5 +25,6 @@ INSTALL { cd libxslt-1.1.26 make install } + LICENSE="MIT" COPYRIGHT="2001-2002 Daniel Veillard. All Rights Reserved." diff --git a/dev-libs/libxslt/libxslt-1.1.28.bep b/dev-libs/libxslt/libxslt-1.1.28.bep new file mode 100644 index 000000000..759cc47f0 --- /dev/null +++ b/dev-libs/libxslt/libxslt-1.1.28.bep @@ -0,0 +1,30 @@ +DESCRIPTION="XSLT C library developed for the GNOME project" +HOMEPAGE="http://www.xmlsoft.org/" +SRC_URI="ftp://xmlsoft.org/libxml2/libxslt-1.1.28.tar.gz" +CHECKSUM_MD5="9667bf6f9310b957254fdcf6596600b7" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="" +BUILD { + cd libxslt-1.1.28 + libtoolize --force --copy --install + aclocal + autoconf + sed -i 's/$(datadir)\/aclocal/`finddir B_COMMON_DATA_DIRECTORY`\/aclocal/' Makefile* + automake + + COMMON_DOCS=`finddir B_COMMON_DOCUMENTATION_DIRECTORY` + ./configure --prefix=`finddir B_COMMON_DIRECTORY` \ + --datarootdir=$COMMON_DOCS \ + --docdir=$COMMON_DOCS/doc \ + --mandir=$COMMON_DOCS/man + make +} + +INSTALL { + cd libxslt-1.1.28 + make install +} + +LICENSE="MIT" +COPYRIGHT="2001-2002 Daniel Veillard. All Rights Reserved." diff --git a/dev-libs/libzip/libzip-0.10.1.bep b/dev-libs/libzip/libzip-0.10.1.bep new file mode 100644 index 000000000..f7500da45 --- /dev/null +++ b/dev-libs/libzip/libzip-0.10.1.bep @@ -0,0 +1,22 @@ +DESCRIPTION="libzip is a C library for reading, creating, and modifying zip archives." +HOMEPAGE="http://www.nih.at/libzip/" +SRC_URI="http://www.nih.at/libzip/libzip-0.10.1.tar.bz2" +CHECKSUM_MD5="d3e933ae049204badccf605f20aaecde" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="" +BUILD { + cd libzip-0.10.1 + sed -i 's/MAN_PATH man/MAN_PATH documentation\/man/' man/CMakeLists.txt + sed -i 's/DESTINATION lib\/libzip\/include/DESTINATION include/' CMakeLists.txt + cmake . + make +} + +INSTALL { + cd libzip-0.10.1 + make install +} + +LICENSE="BSD (3-clause)" +COPYRIGHT="1999-2012 Dieter Baron and Thomas Klausner" diff --git a/dev-libs/libzip/libzip-0.10.bep b/dev-libs/libzip/libzip-0.10.bep new file mode 100644 index 000000000..aa1f380ae --- /dev/null +++ b/dev-libs/libzip/libzip-0.10.bep @@ -0,0 +1,22 @@ +DESCRIPTION="libzip is a C library for reading, creating, and modifying zip archives." +HOMEPAGE="http://www.nih.at/libzip/" +SRC_URI="http://www.nih.at/libzip/libzip-0.10.tar.bz2" +CHECKSUM_MD5="663d79a9d299a61026d1860d52cdf6fc" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="" +BUILD { + cd libzip-0.10 + sed -i 's/MAN_PATH man/MAN_PATH documentation\/man/' man/CMakeLists.txt + sed -i 's/DESTINATION lib\/libzip\/include/DESTINATION include/' CMakeLists.txt + cmake . + make +} + +INSTALL { + cd libzip-0.10 + make install +} + +LICENSE="BSD (3-clause)" +COPYRIGHT="1999-2008 Dieter Baron and Thomas Klausner" diff --git a/dev-libs/lzo/lzo-2.06.bep b/dev-libs/lzo/lzo-2.06.bep new file mode 100644 index 000000000..487c7facc --- /dev/null +++ b/dev-libs/lzo/lzo-2.06.bep @@ -0,0 +1,25 @@ +DESCRIPTION="An extremely fast compression and decompression library" +HOMEPAGE="http://www.oberhumer.com/opensource/lzo/" +SRC_URI="http://www.oberhumer.com/opensource/lzo/download/lzo-2.06.tar.gz" +CHECKSUM_MD5="95380bd4081f85ef08c5209f4107e9f8" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="" +BUILD { + cd lzo-2.06 + ./configure --prefix=`finddir B_COMMON_DIRECTORY` + make +} + +INSTALL { + cd lzo-2.06 + make install +} + +TEST { + cd lzo-2.06 + make check +} + +LICENSE="GNU GPL v2" +COPYRIGHT="1996-2011 Markus F.X.J Oberhumer" diff --git a/dev-libs/mpc/mpc-1.0.1.bep b/dev-libs/mpc/mpc-1.0.1.bep new file mode 100644 index 000000000..b4dd82b82 --- /dev/null +++ b/dev-libs/mpc/mpc-1.0.1.bep @@ -0,0 +1,31 @@ +DESCRIPTION="library for multiple-precision complex arithmetics with exact rounding" +HOMEPAGE="mpc.multiprecision.org" +SRC_URI="http://www.multiprecision.org/mpc/download/mpc-1.0.1.tar.gz" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="dev-libs/gmp = 5.0.5" +CHECKSUM_SHA1="8c7e19ad0dd9b3b5cc652273403423d6cf0c5edf" +BUILD { + cd mpc-1.0.1 +# libtoolize --force --copy --install +# aclocal -I m4 +# automake --add-missing +# autoconf + ./configure --prefix=`finddir B_COMMON_DIRECTORY` \ + --datarootdir=`finddir B_COMMON_DOCUMENTATION_DIRECTORY` \ + --with-gmp=`finddir B_COMMON_DIRECTORY` + make +} + +INSTALL { + cd mpc-1.0.1 + make install +} + +TEST { + cd mpc-1.0.1 + make check +} + +LICENSE="GNU LGPL v3" +#COPYRIGHT="" diff --git a/dev-libs/mpfr/mpfr-3.1.1.bep b/dev-libs/mpfr/mpfr-3.1.1.bep new file mode 100644 index 000000000..791db9071 --- /dev/null +++ b/dev-libs/mpfr/mpfr-3.1.1.bep @@ -0,0 +1,31 @@ +DESCRIPTION="library for multiple-precision floating-point computations with exact rounding" +HOMEPAGE="www.mpfr.org" +SRC_URI="http://www.mpfr.org/mpfr-current/mpfr-3.1.1.tar.xz" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="dev-libs/gmp = 5.0.5" +CHECKSUM_MD5="91d51c41fcf2799e4ee7a7126fc95c17" +BUILD { + cd mpfr-3.1.1 +# libtoolize --force --copy --install +# aclocal -I m4 +# automake --add-missing +# autoconf + ./configure --prefix=`finddir B_COMMON_DIRECTORY` \ + --datarootdir=`finddir B_COMMON_DOCUMENTATION_DIRECTORY` \ + --with-gmp=`finddir B_COMMON_DIRECTORY` + make +} + +INSTALL { + cd mpfr-3.1.1 + make install +} + +TEST { + cd mpfr-3.1.1 + make check +} + +LICENSE="GNU LGPL v3" +#COPYRIGHT="" diff --git a/dev-libs/oniguruma/oniguruma-5.9.2.bep b/dev-libs/oniguruma/oniguruma-5.9.2.bep new file mode 100644 index 000000000..d55211dcc --- /dev/null +++ b/dev-libs/oniguruma/oniguruma-5.9.2.bep @@ -0,0 +1,28 @@ +DESCRIPTION="a regular expression library for different character encodings" +HOMEPAGE="http://www.geocities.jp/kosako3/oniguruma/" +SRC_URI="http://www.geocities.jp/kosako3/oniguruma/archive/onig-5.9.2.tar.gz" +CHECKSUM_MD5="0f4ad1b100a5f9a91623e04111707b84" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="" +BUILD { + cd onig-5.9.2 + libtoolize --force --copy --install + touch NEWS ChangeLog + autoreconf -i + ./configure --prefix=`finddir B_COMMON_DIRECTORY` + make +} + +INSTALL { + cd onig-5.9.2 + make install +} + +TEST { + cd onig-5.9.2 + make check +} + +LICENSE="BSD (2-clause)" +COPYRIGHT="K.Kosako" diff --git a/dev-libs/oniguruma/patches/oniguruma-5.9.2.patch b/dev-libs/oniguruma/patches/oniguruma-5.9.2.patch new file mode 100644 index 000000000..95a95e23f --- /dev/null +++ b/dev-libs/oniguruma/patches/oniguruma-5.9.2.patch @@ -0,0 +1,11 @@ +diff -Naur onig-5.9.2/configure.in onig-5.9.2-haiku/configure.in +--- onig-5.9.2/configure.in 2010-01-05 22:48:47.002097152 +0900 ++++ onig-5.9.2-haiku/configure.in 2011-05-06 23:43:40.378535936 +0900 +@@ -38,6 +38,7 @@ + + dnl Checks for programs. + AC_PROG_CC ++AM_PROG_CC_C_O + AM_PROG_LIBTOOL + LTVERSION="2:0:0" + AC_SUBST(LTVERSION) diff --git a/dev-libs/openssl/openssl-0.9.8l.bep b/dev-libs/openssl/openssl-0.9.8l.bep index 57fc1b13a..1e9cdad01 100644 --- a/dev-libs/openssl/openssl-0.9.8l.bep +++ b/dev-libs/openssl/openssl-0.9.8l.bep @@ -7,7 +7,7 @@ STATUS_HAIKU="stable" DEPEND="" BUILD { cd openssl-0.9.8l - config --prefix=/boot/common zlib shared + config --prefix=`finddir B_COMMON_DIRECTORY` zlib shared make } diff --git a/dev-libs/openssl/openssl-0.9.8m.bep b/dev-libs/openssl/openssl-0.9.8m.bep index b13a14a49..1048d6344 100644 --- a/dev-libs/openssl/openssl-0.9.8m.bep +++ b/dev-libs/openssl/openssl-0.9.8m.bep @@ -7,7 +7,7 @@ STATUS_HAIKU="stable" DEPEND="sys-libs/zlib >= 1.2.3" BUILD { cd openssl-0.9.8m - config --prefix=/boot/common zlib shared + config --prefix=`finddir B_COMMON_DIRECTORY` zlib shared make } diff --git a/dev-libs/openssl/openssl-1.0.0.bep b/dev-libs/openssl/openssl-1.0.0.bep index d99268620..79c4511c3 100644 --- a/dev-libs/openssl/openssl-1.0.0.bep +++ b/dev-libs/openssl/openssl-1.0.0.bep @@ -7,7 +7,7 @@ STATUS_HAIKU="stable" DEPEND="sys-libs/zlib >= 1.2.3" BUILD { cd openssl-1.0.0 - config --prefix=/boot/common zlib shared + config --prefix=`finddir B_COMMON_DIRECTORY` zlib shared make } diff --git a/dev-libs/openssl/openssl-1.0.0a.bep b/dev-libs/openssl/openssl-1.0.0a.bep index 831cba260..a0cd88932 100644 --- a/dev-libs/openssl/openssl-1.0.0a.bep +++ b/dev-libs/openssl/openssl-1.0.0a.bep @@ -7,7 +7,7 @@ STATUS_HAIKU="stable" DEPEND="sys-libs/zlib >= 1.2.3" BUILD { cd openssl-1.0.0a - config --prefix=/boot/common zlib shared + config --prefix=`finddir B_COMMON_DIRECTORY` zlib shared make } diff --git a/dev-libs/openssl/openssl-1.0.0c.bep b/dev-libs/openssl/openssl-1.0.0c.bep index 62f55d87c..81b78579e 100644 --- a/dev-libs/openssl/openssl-1.0.0c.bep +++ b/dev-libs/openssl/openssl-1.0.0c.bep @@ -7,7 +7,7 @@ STATUS_HAIKU="stable" DEPEND="sys-libs/zlib >= 1.2.3" BUILD { cd openssl-1.0.0c - config --prefix=/boot/common zlib shared + config --prefix=`finddir B_COMMON_DIRECTORY` zlib shared make } diff --git a/dev-libs/openssl/openssl-1.0.0e.bep b/dev-libs/openssl/openssl-1.0.0e.bep new file mode 100644 index 000000000..d84ffb104 --- /dev/null +++ b/dev-libs/openssl/openssl-1.0.0e.bep @@ -0,0 +1,28 @@ +DESCRIPTION="openssl" +HOMEPAGE="http://www.openssl.org/" +SRC_URI="http://www.openssl.org/source/openssl-1.0.0e.tar.gz" +CHECKSUM_MD5="7040b89c4c58c7a1016c0dfa6e821c86" +REVISION="2" +STATUS_HAIKU="stable" +DEPEND="sys-libs/zlib >= 1.2.3" +BUILD { + cd openssl-1.0.0e + sed -i 's/MANDIR=$(OPENSSLDIR)\/man/MANDIR=`finddir B_COMMON_DOCUMENTATION_DIRECTORY`\/man/g' Make* + config --prefix=`finddir B_COMMON_DIRECTORY` zlib shared \ + --openssldir=`finddir B_COMMON_DATA_DIRECTORY`/ssl + make +} + +INSTALL { + cd openssl-1.0.0e + make install INSTALL_PREFIX="${DESTDIR}" +} + +TEST { + cd openssl-1.0.0e + make test +} + +LICENSE="OpenSSL" +COPYRIGHT="1995-1998 Eric Young + 1998-2011 The OpenSSL Project." diff --git a/dev-libs/openssl/openssl-1.0.0g.bep b/dev-libs/openssl/openssl-1.0.0g.bep new file mode 100644 index 000000000..5797ec087 --- /dev/null +++ b/dev-libs/openssl/openssl-1.0.0g.bep @@ -0,0 +1,28 @@ +DESCRIPTION="openssl" +HOMEPAGE="http://www.openssl.org/" +SRC_URI="http://www.openssl.org/source/openssl-1.0.0g.tar.gz" +CHECKSUM_MD5="07ecbe4324f140d157478637d6beccf1" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="sys-libs/zlib >= 1.2.3" +BUILD { + cd openssl-1.0.0g + sed -i 's/MANDIR=$(OPENSSLDIR)\/man/MANDIR=`finddir B_COMMON_DOCUMENTATION_DIRECTORY`\/man/g' Make* + config --prefix=`finddir B_COMMON_DIRECTORY` zlib shared \ + --openssldir=`finddir B_COMMON_DATA_DIRECTORY`/ssl + make +} + +INSTALL { + cd openssl-1.0.0g + make install INSTALL_PREFIX="${DESTDIR}" +} + +TEST { + cd openssl-1.0.0g + make test +} + +LICENSE="OpenSSL" +COPYRIGHT="1995-1998 Eric Young + 1998-2012 The OpenSSL Project." diff --git a/dev-libs/openssl/openssl-1.0.0j.bep b/dev-libs/openssl/openssl-1.0.0j.bep new file mode 100644 index 000000000..a86acc668 --- /dev/null +++ b/dev-libs/openssl/openssl-1.0.0j.bep @@ -0,0 +1,28 @@ +DESCRIPTION="openssl" +HOMEPAGE="http://www.openssl.org/" +SRC_URI="http://www.openssl.org/source/openssl-1.0.0j.tar.gz" +CHECKSUM_MD5="cbe4ac0d8f598680f68a951e04b0996b" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="sys-libs/zlib >= 1.2.3" +BUILD { + cd openssl-1.0.0j + sed -i 's/MANDIR=$(OPENSSLDIR)\/man/MANDIR=`finddir B_COMMON_DOCUMENTATION_DIRECTORY`\/man/g' Make* + config --prefix=`finddir B_COMMON_DIRECTORY` zlib shared \ + --openssldir=`finddir B_COMMON_DATA_DIRECTORY`/ssl + make +} + +INSTALL { + cd openssl-1.0.0j + make install INSTALL_PREFIX="${DESTDIR}" +} + +TEST { + cd openssl-1.0.0j + make test +} + +LICENSE="OpenSSL" +COPYRIGHT="1995-1998 Eric Young + 1998-2012 The OpenSSL Project." diff --git a/dev-libs/openssl/patches/openssl-1.0.0e.patch b/dev-libs/openssl/patches/openssl-1.0.0e.patch new file mode 100644 index 000000000..92bb62dc2 --- /dev/null +++ b/dev-libs/openssl/patches/openssl-1.0.0e.patch @@ -0,0 +1,54 @@ +diff -urN openssl-1.0.0e/Configure openssl-1.0.0e-haiku/Configure +--- openssl-1.0.0e/Configure 2010-11-30 22:19:26.013631488 +0000 ++++ openssl-1.0.0e-haiku/Configure 2010-12-10 09:33:29.000000000 +0000 +@@ -582,6 +582,9 @@ + "uClinux-dist","$ENV{'CC'}:\$(CFLAGS)::-D_REENTRANT::\$(LDFLAGS) \$(LDLIBS):BN_LLONG:::::::::::::::$ENV{'LIBSSL_dlfcn'}:linux-shared:-fPIC:-shared:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR):$ENV{'RANLIB'}::", + "uClinux-dist64","$ENV{'CC'}:\$(CFLAGS)::-D_REENTRANT::\$(LDFLAGS) \$(LDLIBS):SIXTY_FOUR_BIT_LONG:::::::::::::::$ENV{'LIBSSL_dlfcn'}:linux-shared:-fPIC:-shared:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR):$ENV{'RANLIB'}::", + ++##### Haiku ++"haiku-x86", "gcc:-DL_ENDIAN -O2 -fomit-frame-pointer -Wall::-D_REENTRANT::-lnetwork:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:haiku-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", ++ + ); + + my @MK1MF_Builds=qw(VC-WIN64I VC-WIN64A +diff -urN openssl-1.0.0e/Makefile.shared openssl-1.0.0e-haiku/Makefile.shared +--- openssl-1.0.0e/Makefile.shared 2010-08-21 11:36:49.004456448 +0000 ++++ openssl-1.0.0e-haiku/Makefile.shared 2010-12-10 09:33:29.000000000 +0000 +@@ -594,10 +594,10 @@ + symlink.cygwin symlink.alpha-osf1 symlink.tru64 symlink.tru64-rpath symlink.beos: + + # Compatibility targets +-link_o.bsd-gcc-shared link_o.linux-shared link_o.gnu-shared: link_o.gnu +-link_a.bsd-gcc-shared link_a.linux-shared link_a.gnu-shared: link_a.gnu +-link_app.bsd-gcc-shared link_app.linux-shared link_app.gnu-shared: link_app.gnu +-symlink.bsd-gcc-shared symlink.bsd-shared symlink.linux-shared symlink.gnu-shared: symlink.gnu ++link_o.bsd-gcc-shared link_o.linux-shared link_o.gnu-shared link_o.haiku-shared: link_o.gnu ++link_a.bsd-gcc-shared link_a.linux-shared link_a.gnu-shared link_a.haiku-shared: link_a.gnu ++link_app.bsd-gcc-shared link_app.linux-shared link_app.gnu-shared link_app.haiku-shared: link_app.gnu ++symlink.bsd-gcc-shared symlink.bsd-shared symlink.linux-shared symlink.gnu-shared symlink.haiku-shared: symlink.gnu + link_o.bsd-shared: link_o.bsd + link_a.bsd-shared: link_a.bsd + link_app.bsd-shared: link_app.bsd +diff -urN openssl-1.0.0e/config openssl-1.0.0e-haiku/config +--- openssl-1.0.0e/config 2010-03-09 17:08:39.013369344 +0000 ++++ openssl-1.0.0e-haiku/config 2010-12-10 09:33:29.000000000 +0000 +@@ -134,6 +134,10 @@ + echo "${MACHINE}-dg-dgux"; exit 0 + ;; + ++ Haiku:*:BePC) ++ echo "i586-pc-haiku"; exit 0 ++ ;; ++ + HI-UX:*) + echo "${MACHINE}-hi-hiux"; exit 0 + ;; +@@ -799,6 +803,8 @@ + options="$options no-asm" + fi + ;; ++ i586-*-haiku) OUT="haiku-x86" ;; ++ + # these are all covered by the catchall below + # *-dgux) OUT="dgux" ;; + mips-sony-newsos4) OUT="newsos4-gcc" ;; diff --git a/dev-libs/openssl/patches/openssl-1.0.0g.patch b/dev-libs/openssl/patches/openssl-1.0.0g.patch new file mode 100644 index 000000000..a66237b5c --- /dev/null +++ b/dev-libs/openssl/patches/openssl-1.0.0g.patch @@ -0,0 +1,54 @@ +diff -urN openssl-1.0.0g/Configure openssl-1.0.0g-haiku/Configure +--- openssl-1.0.0g/Configure 2010-11-30 22:19:26.013631488 +0000 ++++ openssl-1.0.0g-haiku/Configure 2010-12-10 09:33:29.000000000 +0000 +@@ -582,6 +582,9 @@ + "uClinux-dist","$ENV{'CC'}:\$(CFLAGS)::-D_REENTRANT::\$(LDFLAGS) \$(LDLIBS):BN_LLONG:::::::::::::::$ENV{'LIBSSL_dlfcn'}:linux-shared:-fPIC:-shared:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR):$ENV{'RANLIB'}::", + "uClinux-dist64","$ENV{'CC'}:\$(CFLAGS)::-D_REENTRANT::\$(LDFLAGS) \$(LDLIBS):SIXTY_FOUR_BIT_LONG:::::::::::::::$ENV{'LIBSSL_dlfcn'}:linux-shared:-fPIC:-shared:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR):$ENV{'RANLIB'}::", + ++##### Haiku ++"haiku-x86", "gcc:-DL_ENDIAN -O2 -fomit-frame-pointer -Wall::-D_REENTRANT::-lnetwork:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:haiku-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", ++ + ); + + my @MK1MF_Builds=qw(VC-WIN64I VC-WIN64A +diff -urN openssl-1.0.0g/Makefile.shared openssl-1.0.0g-haiku/Makefile.shared +--- openssl-1.0.0g/Makefile.shared 2010-08-21 11:36:49.004456448 +0000 ++++ openssl-1.0.0g-haiku/Makefile.shared 2010-12-10 09:33:29.000000000 +0000 +@@ -594,10 +594,10 @@ + symlink.cygwin symlink.alpha-osf1 symlink.tru64 symlink.tru64-rpath symlink.beos: + + # Compatibility targets +-link_o.bsd-gcc-shared link_o.linux-shared link_o.gnu-shared: link_o.gnu +-link_a.bsd-gcc-shared link_a.linux-shared link_a.gnu-shared: link_a.gnu +-link_app.bsd-gcc-shared link_app.linux-shared link_app.gnu-shared: link_app.gnu +-symlink.bsd-gcc-shared symlink.bsd-shared symlink.linux-shared symlink.gnu-shared: symlink.gnu ++link_o.bsd-gcc-shared link_o.linux-shared link_o.gnu-shared link_o.haiku-shared: link_o.gnu ++link_a.bsd-gcc-shared link_a.linux-shared link_a.gnu-shared link_a.haiku-shared: link_a.gnu ++link_app.bsd-gcc-shared link_app.linux-shared link_app.gnu-shared link_app.haiku-shared: link_app.gnu ++symlink.bsd-gcc-shared symlink.bsd-shared symlink.linux-shared symlink.gnu-shared symlink.haiku-shared: symlink.gnu + link_o.bsd-shared: link_o.bsd + link_a.bsd-shared: link_a.bsd + link_app.bsd-shared: link_app.bsd +diff -urN openssl-1.0.0g/config openssl-1.0.0g-haiku/config +--- openssl-1.0.0g/config 2010-03-09 17:08:39.013369344 +0000 ++++ openssl-1.0.0g-haiku/config 2010-12-10 09:33:29.000000000 +0000 +@@ -134,6 +134,10 @@ + echo "${MACHINE}-dg-dgux"; exit 0 + ;; + ++ Haiku:*:BePC) ++ echo "i586-pc-haiku"; exit 0 ++ ;; ++ + HI-UX:*) + echo "${MACHINE}-hi-hiux"; exit 0 + ;; +@@ -799,6 +803,8 @@ + options="$options no-asm" + fi + ;; ++ i586-*-haiku) OUT="haiku-x86" ;; ++ + # these are all covered by the catchall below + # *-dgux) OUT="dgux" ;; + mips-sony-newsos4) OUT="newsos4-gcc" ;; diff --git a/dev-libs/openssl/patches/openssl-1.0.0j.patch b/dev-libs/openssl/patches/openssl-1.0.0j.patch new file mode 100644 index 000000000..7caa8475d --- /dev/null +++ b/dev-libs/openssl/patches/openssl-1.0.0j.patch @@ -0,0 +1,60 @@ +diff -urN openssl-1.0.0j.orig/Configure openssl-1.0.0j/Configure +--- openssl-1.0.0j.orig/Configure 2012-12-18 13:32:35.000000000 +0000 ++++ openssl-1.0.0j/Configure 2012-12-18 13:41:28.000000000 +0000 +@@ -582,6 +582,10 @@ + "uClinux-dist","$ENV{'CC'}:\$(CFLAGS)::-D_REENTRANT::\$(LDFLAGS) \$(LDLIBS):BN_LLONG:::::::::::::::$ENV{'LIBSSL_dlfcn'}:linux-shared:-fPIC:-shared:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR):$ENV{'RANLIB'}::", + "uClinux-dist64","$ENV{'CC'}:\$(CFLAGS)::-D_REENTRANT::\$(LDFLAGS) \$(LDLIBS):SIXTY_FOUR_BIT_LONG:::::::::::::::$ENV{'LIBSSL_dlfcn'}:linux-shared:-fPIC:-shared:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR):$ENV{'RANLIB'}::", + ++##### Haiku ++"haiku-x86", "gcc:-DL_ENDIAN -O2 -fomit-frame-pointer -Wall::-D_REENTRANT::-lnetwork:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:haiku-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", ++"haiku-x86_64", "gcc:-m64 -DL_ENDIAN -O2 -Wall -DMD32_REG_T=int::-D_REENTRANT::-lnetwork:SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_INT DES_UNROLL:${x86_64_asm}:elf:dlfcn:haiku-shared:-fPIC:-m64:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR):::64", ++ + ); + + my @MK1MF_Builds=qw(VC-WIN64I VC-WIN64A +diff -urN openssl-1.0.0j.orig/Makefile.shared openssl-1.0.0j/Makefile.shared +--- openssl-1.0.0j.orig/Makefile.shared 2012-12-18 13:32:35.000000000 +0000 ++++ openssl-1.0.0j/Makefile.shared 2012-12-18 13:33:02.000000000 +0000 +@@ -594,10 +594,10 @@ + symlink.cygwin symlink.alpha-osf1 symlink.tru64 symlink.tru64-rpath symlink.beos: + + # Compatibility targets +-link_o.bsd-gcc-shared link_o.linux-shared link_o.gnu-shared: link_o.gnu +-link_a.bsd-gcc-shared link_a.linux-shared link_a.gnu-shared: link_a.gnu +-link_app.bsd-gcc-shared link_app.linux-shared link_app.gnu-shared: link_app.gnu +-symlink.bsd-gcc-shared symlink.bsd-shared symlink.linux-shared symlink.gnu-shared: symlink.gnu ++link_o.bsd-gcc-shared link_o.linux-shared link_o.gnu-shared link_o.haiku-shared: link_o.gnu ++link_a.bsd-gcc-shared link_a.linux-shared link_a.gnu-shared link_a.haiku-shared: link_a.gnu ++link_app.bsd-gcc-shared link_app.linux-shared link_app.gnu-shared link_app.haiku-shared: link_app.gnu ++symlink.bsd-gcc-shared symlink.bsd-shared symlink.linux-shared symlink.gnu-shared symlink.haiku-shared: symlink.gnu + link_o.bsd-shared: link_o.bsd + link_a.bsd-shared: link_a.bsd + link_app.bsd-shared: link_app.bsd +diff -urN openssl-1.0.0j.orig/config openssl-1.0.0j/config +--- openssl-1.0.0j.orig/config 2012-12-18 13:32:35.000000000 +0000 ++++ openssl-1.0.0j/config 2012-12-18 13:36:39.000000000 +0000 +@@ -134,6 +134,14 @@ + echo "${MACHINE}-dg-dgux"; exit 0 + ;; + ++ Haiku:*:BePC) ++ echo "i586-pc-haiku"; exit 0 ++ ;; ++ ++ Haiku:*:*) ++ echo "${MACHINE}-unknown-haiku"; exit 0 ++ ;; ++ + HI-UX:*) + echo "${MACHINE}-hi-hiux"; exit 0 + ;; +@@ -799,6 +807,9 @@ + options="$options no-asm" + fi + ;; ++ i586-*-haiku) OUT="haiku-x86" ;; ++ x86_64-*-haiku) OUT="haiku-x86_64" ;; ++ + # these are all covered by the catchall below + # *-dgux) OUT="dgux" ;; + mips-sony-newsos4) OUT="newsos4-gcc" ;; diff --git a/dev-libs/popt/popt-1.16.bep b/dev-libs/popt/popt-1.16.bep index 8847c296d..1ff0dc764 100644 --- a/dev-libs/popt/popt-1.16.bep +++ b/dev-libs/popt/popt-1.16.bep @@ -12,7 +12,7 @@ BUILD { aclocal -I m4 autoconf automake - ./configure --prefix=/boot/common + ./configure --prefix=`finddir B_COMMON_DIRECTORY` make } diff --git a/dev-libs/protobuf/patches/protobuf-2.4.1.patch b/dev-libs/protobuf/patches/protobuf-2.4.1.patch new file mode 100644 index 000000000..3a972a8d1 --- /dev/null +++ b/dev-libs/protobuf/patches/protobuf-2.4.1.patch @@ -0,0 +1,30 @@ +diff -urN protobuf-2.4.1/gtest/include/gtest/internal/gtest-port.h protobuf-2.4.1-haiku/gtest/include/gtest/internal/gtest-port.h +--- protobuf-2.4.1/gtest/include/gtest/internal/gtest-port.h 2011-04-30 17:22:13.002359296 +0000 ++++ protobuf-2.4.1-haiku/gtest/include/gtest/internal/gtest-port.h 2012-12-31 00:03:23.593756160 +0000 +@@ -198,6 +198,8 @@ + #define GTEST_OS_MAC 1 + #elif defined __linux__ + #define GTEST_OS_LINUX 1 ++#elif defined __HAIKU__ ++#define GTEST_OS_HAIKU 1 + #elif defined __MVS__ + #define GTEST_OS_ZOS 1 + #elif defined(__sun) && defined(__SVR4) +@@ -205,7 +207,7 @@ + #endif // __CYGWIN__ + + #if GTEST_OS_CYGWIN || GTEST_OS_LINUX || GTEST_OS_MAC || GTEST_OS_SYMBIAN || \ +- GTEST_OS_SOLARIS ++ GTEST_OS_SOLARIS || GTEST_OS_HAIKU + + // On some platforms, needs someone to define size_t, and + // won't compile otherwise. We can #include it here as we already +@@ -236,7 +238,7 @@ + #define GTEST_USES_SIMPLE_RE 1 + + #endif // GTEST_OS_CYGWIN || GTEST_OS_LINUX || GTEST_OS_MAC || +- // GTEST_OS_SYMBIAN || GTEST_OS_SOLARIS ++ // GTEST_OS_SYMBIAN || GTEST_OS_SOLARIS || GTEST_OS_HAIKU + + // Defines GTEST_HAS_EXCEPTIONS to 1 if exceptions are enabled, or 0 + // otherwise. \ No newline at end of file diff --git a/dev-libs/protobuf/protobuf-2.4.1.bep b/dev-libs/protobuf/protobuf-2.4.1.bep new file mode 100644 index 000000000..c71c5f1cf --- /dev/null +++ b/dev-libs/protobuf/protobuf-2.4.1.bep @@ -0,0 +1,28 @@ +DESCRIPTION="Google's Protocol Buffers -- an efficient method of encoding structured data" +HOMEPAGE="http://code.google.com/p/protobuf/" +SRC_URI="http://protobuf.googlecode.com/files/protobuf-2.4.1.tar.bz2" +CHECKSUM_MD5="ed436802019c9e1f40cc750eaf78f318" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="" + +BUILD { + cd protobuf-2.4.1 + libtoolize --force --copy --install + ./autogen.sh + ./configure --prefix=`finddir B_COMMON_DIRECTORY` + make +} + +INSTALL { + cd protobuf-2.4.1 + make install +} + +TEST { + cd protobuf-2.4.1 + make check +} + +LICENSE="Apache v2" +COPYRIGHT="2008 Google" diff --git a/dev-libs/raptor2/raptor2-2.0.8.bep b/dev-libs/raptor2/raptor2-2.0.8.bep new file mode 100644 index 000000000..72941880d --- /dev/null +++ b/dev-libs/raptor2/raptor2-2.0.8.bep @@ -0,0 +1,30 @@ +DESCRIPTION="RDF Syntax Library" +HOMEPAGE="http://librdf.org/" +SRC_URI="http://download.librdf.org/source/raptor2-2.0.8.tar.gz" +CHECKSUM_MD5="ac60858b875aab8fa7917f21a1237aa9" +REVISION="1" +STATUS_HAIKU="untested" +DEPEND="dev-util/gtk-doc>=1.3" +BUILD { + cd raptor2-2.0.8 + ./configure --prefix=`finddir B_COMMON_DIRECTORY` \ + --mandir=`finddir B_COMMON_DOCUMENTATION_DIRECTORY`/man \ + --datarootdir=`finddir B_COMMON_DOCUMENTATION_DIRECTORY` \ + --datadir=`finddir B_COMMON_DOCUMENTATION_DIRECTORY`\ + /doc/raptor2 + make +} + +INSTALL { + cd raptor2-2.0.8 + make install +} + +TEST { + cd raptor2-2.0.8 + make check +} + +LICENSE="GNU LGPL v2.1" +COPYRIGHT="2000-2012 David Beckett + 2000-2005 University of Bristol" diff --git a/dev-libs/rasqal/patches/rasqal-0.9.29.patch b/dev-libs/rasqal/patches/rasqal-0.9.29.patch new file mode 100644 index 000000000..1c6cd9bb9 --- /dev/null +++ b/dev-libs/rasqal/patches/rasqal-0.9.29.patch @@ -0,0 +1,11 @@ +diff -Naur rasqal-0.9.29/src/rasqal_expr_numerics.c rasqal-0.9.29-haiku/src/rasqal_expr_numerics.c +--- rasqal-0.9.29/src/rasqal_expr_numerics.c 2012-05-14 02:37:45.000000000 +0000 ++++ rasqal-0.9.29-haiku/src/rasqal_expr_numerics.c 2012-12-11 15:24:37.000000000 +0000 +@@ -36,6 +36,7 @@ + #include + #endif + #include ++#include + + #include "rasqal.h" + #include "rasqal_internal.h" diff --git a/dev-libs/rasqal/rasqal-0.9.29.bep b/dev-libs/rasqal/rasqal-0.9.29.bep new file mode 100644 index 000000000..f8d4a3d38 --- /dev/null +++ b/dev-libs/rasqal/rasqal-0.9.29.bep @@ -0,0 +1,30 @@ +DESCRIPTION="RDF Query Library" +HOMEPAGE="http://librdf.org/" +SRC_URI="http://download.librdf.org/source/rasqal-0.9.29.tar.gz" +CHECKSUM_MD5="49e4b75a0c67465edf55dd20606715fa" +REVISION="1" +STATUS_HAIKU="untested" +DEPEND="dev-libs/raptor2>=2.0.8" +BUILD { + cd rasqal-0.9.29 + ./configure --prefix=`finddir B_COMMON_DIRECTORY` \ + --mandir=`finddir B_COMMON_DOCUMENTATION_DIRECTORY`/man \ + --datarootdir=`finddir B_COMMON_DOCUMENTATION_DIRECTORY` \ + --datadir=`finddir B_COMMON_DOCUMENTATION_DIRECTORY`\ + /doc/rasqal + make +} + +INSTALL { + cd rasqal-0.9.29 + make install +} + +TEST { + cd rasqal-0.9.29 + make check +} + +LICENSE="GNU LGPL v2.1" +COPYRIGHT="2000-2012 David Beckett + 2000-2005 University of Bristol" diff --git a/dev-libs/redland/redland-1.0.15.bep b/dev-libs/redland/redland-1.0.15.bep new file mode 100644 index 000000000..8aa04a56b --- /dev/null +++ b/dev-libs/redland/redland-1.0.15.bep @@ -0,0 +1,29 @@ +DESCRIPTION="librdf RDF API Library" +HOMEPAGE="http://librdf.org/" +SRC_URI="http://download.librdf.org/source/redland-1.0.15.tar.gz" +CHECKSUM_MD5="b0deb87f3c7d3237a3d587c1e0f2f266" +REVISION="1" +STATUS_HAIKU="untested" +DEPEND="rasqal>=0.9.29" +BUILD { + cd redland-1.0.15 + ./configure --prefix=`finddir B_COMMON_DIRECTORY` \ + --mandir=`finddir B_COMMON_DOCUMENTATION_DIRECTORY`/man \ + --datarootdir=`finddir B_COMMON_DOCUMENTATION_DIRECTORY` \ + --datadir=`finddir B_COMMON_DOCUMENTATION_DIRECTORY`\ + /doc/redland + make +} + +INSTALL { + cd redland-1.0.15 + make install +} + +TEST { + cd redland-1.0.15 + make check +} +LICENSE="GNU LGPL v2.1" +COPYRIGHT="2000-2011 Dave Beckett + 2000-2005 University of Bristol" diff --git a/dev-libs/serd/patches/serd-0.18.0.patch b/dev-libs/serd/patches/serd-0.18.0.patch new file mode 100644 index 000000000..aa4714252 --- /dev/null +++ b/dev-libs/serd/patches/serd-0.18.0.patch @@ -0,0 +1,25 @@ +--- serd-0.18.0/wscript 2012-08-23 04:13:45.002359296 +0000 ++++ serd-0.18.0-haiku/wscript 2012-12-12 15:55:31.292290560 +0000 +@@ -3,6 +3,7 @@ + import os + import shutil + import subprocess ++import sys + + from waflib.extras import autowaf as autowaf + import waflib.Logs as Logs, waflib.Options as Options +@@ -131,7 +132,12 @@ + {'SERD_MAJOR_VERSION' : SERD_MAJOR_VERSION}) + + libflags = ['-fvisibility=hidden'] +- libs = ['m'] ++ ++ ++ if sys.platform.startswith('haiku'): ++ libs = [] ++ else: ++ libs = ['m'] + defines = [] + if bld.env.MSVC_COMPILER: + libflags = [] + diff --git a/dev-libs/serd/serd-0.18.0.bep b/dev-libs/serd/serd-0.18.0.bep new file mode 100644 index 000000000..7ae46de27 --- /dev/null +++ b/dev-libs/serd/serd-0.18.0.bep @@ -0,0 +1,24 @@ +DESCRIPTION="Serd is a lightweight C library for RDF syntax which supports reading and writing Turtle and NTriples." +HOMEPAGE="http://drobilla.net/software/serd/" +SRC_URI="http://download.drobilla.net/serd-0.18.0.tar.bz2" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="" +CHECKSUM_MD5="96dbade2c81d6df8100a9ef605ce35f8" + +BUILD { + cd serd-0.18.0 + sed -i "s_#!/usr/bin/env python_#!/boot/common/bin/python_g" waf + sed -i "s_#!/usr/bin/env python_#!/boot/common/bin/python_g" wscript + ./waf configure --prefix=`finddir B_COMMON_DIRECTORY` \ + --mandir=`finddir B_COMMON_DOCUMENTATION_DIRECTORY`/man + ./waf +} + +INSTALL { + cd serd-0.18.0 + ./waf install +} + +COPYRIGHT="2011-2012 David Robillard" +LICENSE="MIT" diff --git a/dev-libs/tinyxml/tinyxml-2.6.2.bep b/dev-libs/tinyxml/tinyxml-2.6.2.bep new file mode 100644 index 000000000..76ea6f7f2 --- /dev/null +++ b/dev-libs/tinyxml/tinyxml-2.6.2.bep @@ -0,0 +1,27 @@ +DESCRIPTION="TinyXML is a simple, small, C++ XML parser that can be easily integrating into other programs" +HOMEPAGE="http://www.grinninglizard.com/tinyxml/index.html" +SRC_URI="http://en.sourceforge.jp/frs/g_redir.php?m=jaist&f=%2Ftinyxml%2Ftinyxml%2F2.6.2%2Ftinyxml_2_6_2.tar.gz" +CHECKSUM_MD5="c1b864c96804a10526540c664ade67f0" +REVISION="1" +STATUS_HAIKU="untested" +DEPEND="" + +BUILD { + cd tinyxml + rm xmltest.cpp + wget http://libtinyxml.googlecode.com/svn/trunk/CMakeLists.txt + cmake ./ + make +} + +INSTALL { + cd tinyxml + make install + mkdir -p ${DESTDIR}`finddir B_COMMON_DEVELOP_DIRECTORY`/tinyxml + cp ./*.cpp ${DESTDIR}`finddir B_COMMON_DEVELOP_DIRECTORY`/tinyxml + mkdir -p ${DESTDIR}`finddir B_COMMON_DOCUMENTATION_DIRECTORY`/doc/tinyxml + cp ./docs/* ${DESTDIR}`finddir B_COMMON_DOCUMENTATION_DIRECTORY`/doc/tinyxml +} + +LICENSE="Zlib" +COPYRIGHT="2001-2010 Lee Thomason" diff --git a/dev-libs/uriparser/uriparser-0.7.5.bep b/dev-libs/uriparser/uriparser-0.7.5.bep index aa5ff4692..c808642ab 100644 --- a/dev-libs/uriparser/uriparser-0.7.5.bep +++ b/dev-libs/uriparser/uriparser-0.7.5.bep @@ -11,7 +11,7 @@ BUILD { aclocal autoconf automake - ./configure --prefix=/boot/common -disable-test --disable-doc + ./configure --prefix=`finddir B_COMMON_DIRECTORY` -disable-test --disable-doc make } diff --git a/dev-libs/zziplib/zziplib-0.13.59.bep b/dev-libs/zziplib/zziplib-0.13.59.bep index 1b896a8eb..7812f068d 100644 --- a/dev-libs/zziplib/zziplib-0.13.59.bep +++ b/dev-libs/zziplib/zziplib-0.13.59.bep @@ -4,11 +4,16 @@ SRC_URI="http://sourceforge.net/projects/zziplib/files/zziplib13/0.13.59/zziplib REVISION="1" STATUS_HAIKU="stable" DEPEND="" +CHECKSUM_MD5="14b5a6fc229afe9916d48358479568d3" BUILD { cd zziplib-0.13.59 + sed -i 's/\--export-dynamic/\-export-dynamic/' configure.ac libtoolize --force --copy --install autoreconf -i - ./configure --prefix=/boot/common + ./configure --prefix=`finddir B_COMMON_DIRECTORY` \ + --datadir=`finddir B_COMMON_DATA_DIRECTORY` \ + --docdir=`finddir B_COMMON_DOCUMENTATION_DIRECTORY` \ + --mandir=`finddir B_COMMON_DOCUMENTATION_DIRECTORY`/man make } diff --git a/dev-lua/luarocks/luarocks-2.0.4.1.bep b/dev-lua/luarocks/luarocks-2.0.4.1.bep new file mode 100644 index 000000000..35715858a --- /dev/null +++ b/dev-lua/luarocks/luarocks-2.0.4.1.bep @@ -0,0 +1,20 @@ +DESCRIPTION="LuaRocks is a deployment and management system for Lua modules." +HOMEPAGE="http://luarocks.org" +SRC_URI="http://luarocks.org/releases/luarocks-2.0.4.1.tar.gz" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="dev-lang/lua >= 5.1" +CHECKSUM_MD5="2c7caccce3cdf236e6f9aca7bec9bdea" +BUILD { + cd luarocks-2.0.4.1 + configure --prefix=`finddir B_COMMON_DIRECTORY` + make +} + +INSTALL { + cd luarocks-2.0.4.1 + make install DESTDIR=${DESTDIR} +} + +LICENSE="MIT" +COPYRIGHT="2007-2010 Kepler Project" diff --git a/dev-python/cnf/cnf-1.0-git.bep b/dev-python/cnf/cnf-1.0-git.bep new file mode 100644 index 000000000..85971864e --- /dev/null +++ b/dev-python/cnf/cnf-1.0-git.bep @@ -0,0 +1,18 @@ +DESCRIPTION="A Script that hooks into command_not_found_handle to inform end users where to find an application if they don't have it. It can also check for typos (a feature of zsh)." +HOMEPAGE="https://github.com/jrabbit/haiku-cnf" +SRC_URI="git://github.com/jrabbit/haiku-cnf.git" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="dev-lang/python >= 2.6.4" + +BUILD { + echo "No build step" +} + +INSTALL { + cd cnf-1.0-git + python install_cnf.py +} +LICENSE="GNU GPL v3" +COPYRIGHT="2011 Jack Laxson" + diff --git a/dev-python/pylzma/pylzma-0.4.4.bep b/dev-python/pylzma/pylzma-0.4.4.bep new file mode 100644 index 000000000..72da8b4ea --- /dev/null +++ b/dev-python/pylzma/pylzma-0.4.4.bep @@ -0,0 +1,21 @@ +DESCRIPTION="Python bindings for the LZMA library by Igor Pavlov." +HOMEPAGE="http://www.joachim-bauch.de/projects/pylzma/" +SRC_URI="http://pypi.python.org/packages/source/p/pylzma/pylzma-0.4.4.tar.gz" +STATUS_HAIKU="untested" +DEPEND="dev-lang/python >= 2.6.4 + dev-python/setuptools >= 0.6" +REVISION="1" +CHECKSUM_MD5="a2be89cb2288174ebb18bec68fa559fb" + +BUILD { + cd pylzma-0.4.4 + python setup.py build +} + +INSTALL { + cd pylzma-0.4.4 + python setup.py install +} + +LICENSE="GNU LGPL v2.1" +COPYRIGHT="2004-2010 Joachim Bauch" diff --git a/dev-python/pyxml/licenses/PyXML b/dev-python/pyxml/licenses/PyXML new file mode 100644 index 000000000..9d0a1af49 --- /dev/null +++ b/dev-python/pyxml/licenses/PyXML @@ -0,0 +1,341 @@ +This file collects the licences for the various pieces of software +included in this package, sorted by the package name in alphabetical +order. Minor items (typically single-file contributions) appear at the end. + +4DOM: + +Copyright (c) 2000 Fourthought Inc, USA + + All Rights Reserved + +Permission to use, copy, modify, and distribute this software and its +documentation for any purpose and without fee is hereby granted, +provided that the above copyright notice appear in all copies and that +both that copyright notice and this permission notice appear in +supporting documentation, and that the name of FourThought LLC not be +used in advertising or publicity pertaining to distribution of the +software without specific, written prior permission. + +FOURTHOUGHT LLC DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, +INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, +IN NO EVENT SHALL FOURTHOUGHT BE LIABLE FOR ANY SPECIAL, INDIRECT OR +CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF +USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE +OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE +USE OR PERFORMANCE OF THIS SOFTWARE. + + +PyExpat, SAX libraries: +-------------------------------------------------------------------- +BEOPEN PYTHON OPEN SOURCE LICENSE AGREEMENT VERSION 1 +----------------------------------------------------- + +1. This LICENSE AGREEMENT is between BeOpen.com ("BeOpen"), having an +office at 160 Saratoga Avenue, Santa Clara, CA 95051, and the +Individual or Organization ("Licensee") accessing and otherwise using +this software in source or binary form and its associated +documentation ("the Software"). + +2. Subject to the terms and conditions of this BeOpen Python License +Agreement, BeOpen hereby grants Licensee a non-exclusive, +royalty-free, world-wide license to reproduce, analyze, test, perform +and/or display publicly, prepare derivative works, distribute, and +otherwise use the Software alone or in any derivative version, +provided, however, that the BeOpen Python License is retained in the +Software, alone or in any derivative version prepared by Licensee. + +3. BeOpen is making the Software available to Licensee on an "AS IS" +basis. BEOPEN MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR +IMPLIED. BY WAY OF EXAMPLE, BUT NOT LIMITATION, BEOPEN MAKES NO AND +DISCLAIMS ANY REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS +FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF THE SOFTWARE WILL NOT +INFRINGE ANY THIRD PARTY RIGHTS. + +4. BEOPEN SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF THE +SOFTWARE FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS +AS A RESULT OF USING, MODIFYING OR DISTRIBUTING THE SOFTWARE, OR ANY +DERIVATIVE THEREOF, EVEN IF ADVISED OF THE POSSIBILITY THEREOF. + +5. This License Agreement will automatically terminate upon a material +breach of its terms and conditions. + +6. This License Agreement shall be governed by and interpreted in all +respects by the law of the State of California, excluding conflict of +law provisions. Nothing in this License Agreement shall be deemed to +create any relationship of agency, partnership, or joint venture +between BeOpen and Licensee. This License Agreement does not grant +permission to use BeOpen trademarks or trade names in a trademark +sense to endorse or promote products or services of Licensee, or any +third party. As an exception, the "BeOpen Python" logos available at +http://www.pythonlabs.com/logos.html may be used according to the +permissions granted on that web page. + +7. By copying, installing or otherwise using the software, Licensee +agrees to be bound by the terms and conditions of this License +Agreement. + + +CNRI OPEN SOURCE LICENSE AGREEMENT +---------------------------------- + +Python 1.6 CNRI OPEN SOURCE LICENSE AGREEMENT + +IMPORTANT: PLEASE READ THE FOLLOWING AGREEMENT CAREFULLY. BY CLICKING +ON "ACCEPT" WHERE INDICATED BELOW, OR BY COPYING, INSTALLING OR +OTHERWISE USING PYTHON 1.6 SOFTWARE, YOU ARE DEEMED TO HAVE AGREED TO +THE TERMS AND CONDITIONS OF THIS LICENSE AGREEMENT. + +1. This LICENSE AGREEMENT is between the Corporation for National +Research Initiatives, having an office at 1895 Preston White Drive, +Reston, VA 20191 ("CNRI"), and the Individual or Organization +("Licensee") accessing and otherwise using Python 1.6 software in +source or binary form and its associated documentation, as released at +the www.python.org Internet site on September 5, 2000 ("Python 1.6"). + +2. Subject to the terms and conditions of this License Agreement, CNRI +hereby grants Licensee a nonexclusive, royalty-free, world-wide +license to reproduce, analyze, test, perform and/or display publicly, +prepare derivative works, distribute, and otherwise use Python 1.6 +alone or in any derivative version, provided, however, that CNRI's +License Agreement and CNRI's notice of copyright, i.e., "Copyright (c) +1995-2000 Corporation for National Research Initiatives; All Rights +Reserved" are retained in Python 1.6 alone or in any derivative +version prepared by + +Licensee. Alternately, in lieu of CNRI's License Agreement, Licensee +may substitute the following text (omitting the quotes): "Python 1.6 +is made available subject to the terms and conditions in CNRI's +License Agreement. This Agreement together with Python 1.6 may be +located on the Internet using the following unique, persistent +identifier (known as a handle): 1895.22/1012. This Agreement may also +be obtained from a proxy server on the Internet using the following +URL: http://hdl.handle.net/1895.22/1012". + +3. In the event Licensee prepares a derivative work that is based on +or incorporates Python 1.6 or any part thereof, and wants to make the +derivative work available to others as provided herein, then Licensee +hereby agrees to include in any such work a brief summary of the +changes made to Python 1.6. + +4. CNRI is making Python 1.6 available to Licensee on an "AS IS" +basis. CNRI MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR +IMPLIED. BY WAY OF EXAMPLE, BUT NOT LIMITATION, CNRI MAKES NO AND +DISCLAIMS ANY REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS +FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF PYTHON 1.6 WILL NOT +INFRINGE ANY THIRD PARTY RIGHTS. + +5. CNRI SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF PYTHON +1.6 FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS AS A +RESULT OF MODIFYING, DISTRIBUTING, OR OTHERWISE USING PYTHON 1.6, OR +ANY DERIVATIVE THEREOF, EVEN IF ADVISED OF THE POSSIBILITY THEREOF. + +6. This License Agreement will automatically terminate upon a material +breach of its terms and conditions. + +7. This License Agreement shall be governed by and interpreted in all +respects by the law of the State of Virginia, excluding conflict of +law provisions. Nothing in this License Agreement shall be deemed to +create any relationship of agency, partnership, or joint venture +between CNRI and Licensee. This License Agreement does not grant +permission to use CNRI trademarks or trade name in a trademark sense +to endorse or promote products or services of Licensee, or any third +party. + +8. By clicking on the "ACCEPT" button where indicated, or by copying, +installing or otherwise using Python 1.6, Licensee agrees to be bound +by the terms and conditions of this License Agreement. + +ACCEPT + + +CWI PERMISSIONS STATEMENT AND DISCLAIMER +---------------------------------------- + +Copyright (c) 1991 - 1995, Stichting Mathematisch Centrum Amsterdam, +The Netherlands. All rights reserved. + +Permission to use, copy, modify, and distribute this software and its +documentation for any purpose and without fee is hereby granted, +provided that the above copyright notice appear in all copies and that +both that copyright notice and this permission notice appear in +supporting documentation, and that the name of Stichting Mathematisch +Centrum or CWI not be used in advertising or publicity pertaining to +distribution of the software without specific, written prior +permission. + +STICHTING MATHEMATISCH CENTRUM DISCLAIMS ALL WARRANTIES WITH REGARD TO +THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS, IN NO EVENT SHALL STICHTING MATHEMATISCH CENTRUM BE LIABLE +FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT +OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. +-------------------------------------------------------------------- + +qp_xml: +-------------------------------------------------------------------- +Written by Greg Stein. Public Domain. +No Copyright, no Rights Reserved, and no Warranties. +-------------------------------------------------------------------- + +sgmlop.c: +-------------------------------------------------------------------- +Copyright (c) 1998 by Secret Labs AB. + +Permission to use, copy, modify, and distribute this software and +its associated documentation for any purpose and without fee is +hereby granted. This software is provided as is. +-------------------------------------------------------------------- + +xmlproc: + +xmlproc is free and you can do as you like with it. If you change it, +please let the author, Lars Marius Garshol, know about it. + +-------------------------------------------------------------------- + +setupext/install_data.py: + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be included +in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +-------------------------------------------------------------------- + +schema/trex.py + +Copyright (c) 2001, James Tauber +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + +* Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. +* Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. +* The name "James Tauber" may not be used to endorse or promote + products derived from this software without specific prior written + permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. + +test/domapi/ (and test/test_pyxmldom.py) + +-------------------------------------------------------------------- + +Zope Public License (ZPL) Version 1.0 +------------------------------------- + +Copyright (c) Digital Creations. All rights reserved. + +This license has been certified as Open Source(tm). + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + +1. Redistributions in source code must retain the above copyright + notice, this list of conditions, and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions, and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + +3. Digital Creations requests that attribution be given to Zope + in any manner possible. Zope includes a "Powered by Zope" + button that is installed by default. While it is not a license + violation to remove this button, it is requested that the + attribution remain. A significant investment has been put + into Zope, and this effort will continue if the Zope community + continues to grow. This is one way to assure that growth. + +4. All advertising materials and documentation mentioning + features derived from or use of this software must display + the following acknowledgement: + + "This product includes software developed by Digital Creations + for use in the Z Object Publishing Environment + (http://www.zope.org/)." + + In the event that the product being advertised includes an + intact Zope distribution (with copyright and license included) + then this clause is waived. + +5. Names associated with Zope or Digital Creations must not be used to + endorse or promote products derived from this software without + prior written permission from Digital Creations. + +6. Modified redistributions of any form whatsoever must retain + the following acknowledgment: + + "This product includes software developed by Digital Creations + for use in the Z Object Publishing Environment + (http://www.zope.org/)." + + Intact (re-)distributions of any official Zope release do not + require an external acknowledgement. + + 7. Modifications are encouraged but must be packaged separately as + patches to official Zope releases. Distributions that do not + clearly separate the patches from the original work must be clearly + labeled as unofficial distributions. Modifications which do not + carry the name Zope may be packaged in any form, as long as they + conform to all of the clauses above. + + + Disclaimer + + THIS SOFTWARE IS PROVIDED BY DIGITAL CREATIONS ``AS IS'' AND ANY + EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL DIGITAL CREATIONS OR ITS + CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF + USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + SUCH DAMAGE. + + + This software consists of contributions made by Digital Creations and + many individuals on behalf of Digital Creations. Specific + attributions are listed in the accompanying credits file. + +-------------------------------------------------------------------- + +Others: +xml/dom/ext/c14n.py is distributed under the terms of the Python 2.0 +copyright, or later. diff --git a/dev-python/pyxml/pyxml-0.8.4.bep b/dev-python/pyxml/pyxml-0.8.4.bep new file mode 100644 index 000000000..b833fc30f --- /dev/null +++ b/dev-python/pyxml/pyxml-0.8.4.bep @@ -0,0 +1,18 @@ +DESCRIPTION="Python XML package" +HOMEPAGE="http://pyxml.sourceforge.net/topics/index.html" +SRC_URI="http://sourceforge.net/projects/pyxml/files/latest/download?source=files" +CHECKSUM_MD5="1f7655050cebbb664db976405fdba209" +REVISION="1" +STATUS_HAIKU="untested" +DEPEND="dev-lang/python >= 2.6.4" +BUILD { + cd PyXML-0.8.4 + python setup.py build +} + +INSTALL { + cd PyXML-0.8.4 + python setup.py install --root=${DESTDIR} +} +LICENSE="PyXML" +COPYRIGHT="2000 Fourthought Inc, USA" diff --git a/dev-python/rdflib/rdflib-3.2.0.bep b/dev-python/rdflib/rdflib-3.2.0.bep new file mode 100644 index 000000000..60cadd742 --- /dev/null +++ b/dev-python/rdflib/rdflib-3.2.0.bep @@ -0,0 +1,18 @@ +DESCRIPTION="Python library for working with RDF" +HOMEPAGE="https://github.com/RDFLib/rdflib" +SRC_URI="http://rdflib.googlecode.com/files/rdflib-3.2.0.tar.gz" +CHECKSUM_MD5="ab3d3a5f71ebb6fe4fd33539f5d5768e" +REVISION="1" +STATUS_HAIKU="untested" +DEPEND="dev-lang/python >= 2.6.4" +BUILD { + cd rdflib-3.2.0 + python setup.py build +} + +INSTALL { + cd rdflib-3.2.0 + python setup.py install --root=${DESTDIR} +} +LICENSE="Public Domain" +COPYRIGHT="2002-2009, Daniel Krech" diff --git a/dev-python/setuptools/setuptools-0.6.bep b/dev-python/setuptools/setuptools-0.6.bep index e3d1d594e..6c6708db4 100644 --- a/dev-python/setuptools/setuptools-0.6.bep +++ b/dev-python/setuptools/setuptools-0.6.bep @@ -13,8 +13,11 @@ BUILD { INSTALL { cd setuptools-0.6c11 - python setup.py install --root=${DESTDIR} - + if [ -n "${DESTDIR}" ];then + python setup.py install --root=${DESTDIR} + else + python setup.py install + fi } LICENSE="Python" diff --git a/dev-qt/qtcore/patches/qt-4.7.3.patch b/dev-qt/qtcore/patches/qt-4.7.3.patch new file mode 100644 index 000000000..74615b5ac --- /dev/null +++ b/dev-qt/qtcore/patches/qt-4.7.3.patch @@ -0,0 +1,14261 @@ +diff -rupN qt-everywhere-opensource-src-4.7.3/configure qt-everywhere-opensource-src-4.7.3_haiku/configure +--- qt-everywhere-opensource-src-4.7.3/configure 2011-03-30 05:16:21.000262144 +0000 ++++ qt-everywhere-opensource-src-4.7.3_haiku/configure 2011-06-13 22:33:04.768868352 +0000 +@@ -187,6 +187,11 @@ fi + PLATFORM_X11=no + PLATFORM_MAC=no + PLATFORM_QWS=no ++PLATFORM_HAIKU=no ++ ++if [ $UNAME_SYSTEM = "Haiku" ]; then ++ PLATFORM_HAIKU=yes ++fi + + if [ -f "$relpath"/src/gui/kernel/qapplication_mac.mm ] && [ -d /System/Library/Frameworks/Carbon.framework ]; then + # Qt/Mac +@@ -2742,6 +2747,9 @@ if [ -z "$PLATFORM" ]; then + QNX:*) + PLATFORM=unsupported/qnx-g++ + ;; ++ Haiku:*) ++ PLATFORM=haiku-g++ ++ ;; + *) + if [ "$OPT_HELP" != "yes" ]; then + echo +@@ -3005,6 +3013,9 @@ if [ -z "${CFG_HOST_ARCH}" ]; then + ;; + esac + ;; ++ Haiku:*:*) ++ CFG_HOST_ARCH=i386 ++ ;; + *:*:*) + if [ "$OPT_VERBOSE" = "yes" ]; then + echo " Trying '$UNAME_MACHINE'..." +@@ -3172,7 +3183,7 @@ QMAKE_CONF_COMPILER=`getQMakeConf "$XQMA + TEST_COMPILER="$CXX" + + [ -z "$TEST_COMPILER" ] && TEST_COMPILER=$QMAKE_CONF_COMPILER +-if [ "$XPLATFORM" != "symbian-sbsv2" ]; then ++if [ "$XPLATFORM" != "symbian-sbsv2" ] && [ "$PLATFORM_HAIKU" = "no" ]; then + #for Symbian we don't need this checking + if [ -z "$TEST_COMPILER" ]; then + echo "ERROR: Cannot set the compiler for the configuration tests" +@@ -3342,6 +3353,8 @@ if [ -z "$QT_INSTALL_PREFIX" ]; then + elif [ -d "$EPOCROOT" ] && echo $XPLATFORM | grep symbian > /dev/null; then + QT_INSTALL_PREFIX="$EPOCROOT/epoc32/" + QT_INSTALL_LIBS="$EPOCROOT/epoc32/release/armv5/lib/" ++ elif [ "$PLATFORM_HAIKU" = "yes" ]; then ++ QT_INSTALL_PREFIX="/boot/common" + else + QT_INSTALL_PREFIX="/usr/local/Trolltech/Qt-${QT_VERSION}" # the default install prefix is /usr/local/Trolltech/Qt-$QT_VERSION + fi +@@ -3367,6 +3380,8 @@ else + if [ "$CFG_PREFIX_INSTALL" = "no" ]; then + if [ "$PLATFORM_MAC" = "yes" ]; then + QT_INSTALL_DOCS="/Developer/Documentation/Qt" ++ elif [ "$PLATFORM_HAIKU" = "yes" ]; then ++ QT_INSTALL_DOCS="/boot/common/documentation/doc/Qt" + fi + fi + [ -z "$QT_INSTALL_DOCS" ] && QT_INSTALL_DOCS="$QT_INSTALL_PREFIX/doc" #fallback +@@ -3395,6 +3410,12 @@ else + if [ "$CFG_FRAMEWORK" = "yes" ]; then + QT_INSTALL_LIBS="/Libraries/Frameworks" + fi ++ elif [ "$PLATFORM_HAIKU" = "yes" ]; then ++ if [ -f /boot/system/lib/libsupc++.so ] ; then ++ QT_INSTALL_LIBS="/boot/common/lib" ++ else ++ QT_INSTALL_LIBS="/boot/common/lib/gcc4" ++ fi + fi + fi + [ -z "$QT_INSTALL_LIBS" ] && QT_INSTALL_LIBS="$QT_INSTALL_PREFIX/lib" #fallback +@@ -3418,6 +3439,8 @@ else + if [ "$CFG_PREFIX_INSTALL" = "no" ]; then + if [ "$PLATFORM_MAC" = "yes" ]; then + QT_INSTALL_PLUGINS="/Developer/Applications/Qt/plugins" ++ elif [ "$PLATFORM_HAIKU" = "yes" ]; then ++ QT_INSTALL_PLUGINS="/boot/common/add-ons/Qt/plugins" + fi + fi + [ -z "$QT_INSTALL_PLUGINS" ] && QT_INSTALL_PLUGINS="$QT_INSTALL_PREFIX/plugins" #fallback +@@ -3429,6 +3452,8 @@ else + if [ "$CFG_PREFIX_INSTALL" = "no" ]; then + if [ "$PLATFORM_MAC" = "yes" ]; then + QT_INSTALL_IMPORTS="/Developer/Applications/Qt/imports" ++ elif [ "$PLATFORM_HAIKU" = "yes" ]; then ++ QT_INSTALL_IMPORTS="/boot/common/add-ons/Qt/imports" + fi + fi + [ -z "$QT_INSTALL_IMPORTS" ] && QT_INSTALL_IMPORTS="$QT_INSTALL_PREFIX/imports" #fallback +@@ -3437,13 +3462,21 @@ else + + #data + if [ -z "$QT_INSTALL_DATA" ]; then #default +- QT_INSTALL_DATA="$QT_INSTALL_PREFIX" ++ if [ "$PLATFORM_HAIKU" = "yes" ] && [ "$CFG_PREFIX_INSTALL" = "no" ]; then ++ QT_INSTALL_DATA="/boot/common/data/Qt" ++ else ++ QT_INSTALL_DATA="$QT_INSTALL_PREFIX" ++ fi + fi + QT_INSTALL_DATA=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_DATA"` + + #translations + if [ -z "$QT_INSTALL_TRANSLATIONS" ]; then #default +- QT_INSTALL_TRANSLATIONS="$QT_INSTALL_PREFIX/translations" ++ if [ "$PLATFORM_HAIKU" = "yes" ] && [ "$CFG_PREFIX_INSTALL" = "no" ]; then ++ QT_INSTALL_TRANSLATIONS="/boot/common/data/Qt/translations" ++ else ++ QT_INSTALL_TRANSLATIONS="$QT_INSTALL_PREFIX/translations" ++ fi + fi + QT_INSTALL_TRANSLATIONS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_TRANSLATIONS"` + +@@ -3451,6 +3484,8 @@ else + if [ -z "$QT_INSTALL_SETTINGS" ]; then #default + if [ "$PLATFORM_MAC" = "yes" ]; then + QT_INSTALL_SETTINGS=/Library/Preferences/Qt ++ elif [ "$PLATFORM_HAIKU" = "yes" ] && [ "$CFG_PREFIX_INSTALL" = "no" ]; then ++ QT_INSTALL_SETTINGS="/boot/common/settings/Qt" + else + QT_INSTALL_SETTINGS=/etc/xdg + fi +@@ -3462,6 +3497,8 @@ else + if [ "$CFG_PREFIX_INSTALL" = "no" ]; then + if [ "$PLATFORM_MAC" = "yes" ]; then + QT_INSTALL_EXAMPLES="/Developer/Examples/Qt" ++ elif [ "$PLATFORM_HAIKU" = "yes" ]; then ++ QT_INSTALL_EXAMPLES="/boot/apps/Qt/Examples" + fi + fi + [ -z "$QT_INSTALL_EXAMPLES" ] && QT_INSTALL_EXAMPLES="$QT_INSTALL_PREFIX/examples" #fallback +@@ -3473,6 +3510,8 @@ else + if [ "$CFG_PREFIX_INSTALL" = "no" ]; then + if [ "$PLATFORM_MAC" = "yes" ]; then + QT_INSTALL_DEMOS="/Developer/Examples/Qt/Demos" ++ elif [ "$PLATFORM_HAIKU" = "yes" ]; then ++ QT_INSTALL_DEMOS="/boot/apps/Qt/Demos" + fi + fi + [ -z "$QT_INSTALL_DEMOS" ] && QT_INSTALL_DEMOS="$QT_INSTALL_PREFIX/demos" +@@ -4238,6 +4277,8 @@ elif echo "$XPLATFORM" | grep "symbian" + Platform="Qt for Symbian" + elif [ "$XPLATFORM_MINGW" = "yes" ]; then + Platform="Qt for Windows" ++elif [ "$PLATFORM_HAIKU" = "yes" ]; then ++ Platform="Qt for Haiku" + elif [ '!' -z "`getQMakeConf \"$XQMAKESPEC\" | grep QMAKE_LIBS_X11 | awk '{print $3;}'`" ]; then + PLATFORM_X11=yes + Platform="Qt for Linux/X11" +@@ -5415,7 +5456,7 @@ if [ "$PLATFORM_MAC" = "yes" -a ! -z "$Q + fi + + # X11/QWS +-if [ "$PLATFORM_X11" = "yes" -o "$PLATFORM_QWS" = "yes" ]; then ++if [ "$PLATFORM_X11" = "yes" -o "$PLATFORM_QWS" = "yes" -o "$PLATFORM_HAIKU" = "yes" ]; then + + # auto-detect Glib support + if [ "$CFG_GLIB" != "no" ]; then +diff -rupN qt-everywhere-opensource-src-4.7.3/include/Qt/qhaikustyle.h qt-everywhere-opensource-src-4.7.3_haiku/include/Qt/qhaikustyle.h +--- qt-everywhere-opensource-src-4.7.3/include/Qt/qhaikustyle.h 1970-01-01 00:00:00.000000000 +0000 ++++ qt-everywhere-opensource-src-4.7.3_haiku/include/Qt/qhaikustyle.h 2011-06-02 22:56:26.000000000 +0000 +@@ -0,0 +1,9 @@ ++#ifndef QT_NO_QT_INCLUDE_WARN ++ #if defined(__GNUC__) ++ #warning "Inclusion of header files from include/Qt is deprecated." ++ #elif defined(_MSC_VER) ++ #pragma message("WARNING: Inclusion of header files from include/Qt is deprecated.") ++ #endif ++#endif ++ ++#include "../QtGui/qhaikustyle.h" +diff -rupN qt-everywhere-opensource-src-4.7.3/include/Qt/qsystemtrayicon_haiku.h qt-everywhere-opensource-src-4.7.3_haiku/include/Qt/qsystemtrayicon_haiku.h +--- qt-everywhere-opensource-src-4.7.3/include/Qt/qsystemtrayicon_haiku.h 1970-01-01 00:00:00.000000000 +0000 ++++ qt-everywhere-opensource-src-4.7.3_haiku/include/Qt/qsystemtrayicon_haiku.h 2011-06-02 22:56:26.000000000 +0000 +@@ -0,0 +1,9 @@ ++#ifndef QT_NO_QT_INCLUDE_WARN ++ #if defined(__GNUC__) ++ #warning "Inclusion of header files from include/Qt is deprecated." ++ #elif defined(_MSC_VER) ++ #pragma message("WARNING: Inclusion of header files from include/Qt is deprecated.") ++ #endif ++#endif ++ ++#include "../QtGui/qsystemtrayicon_haiku.h" +diff -rupN qt-everywhere-opensource-src-4.7.3/include/Qt/qwidget_haiku.h qt-everywhere-opensource-src-4.7.3_haiku/include/Qt/qwidget_haiku.h +--- qt-everywhere-opensource-src-4.7.3/include/Qt/qwidget_haiku.h 1970-01-01 00:00:00.000000000 +0000 ++++ qt-everywhere-opensource-src-4.7.3_haiku/include/Qt/qwidget_haiku.h 2011-06-02 22:56:25.000000000 +0000 +@@ -0,0 +1,9 @@ ++#ifndef QT_NO_QT_INCLUDE_WARN ++ #if defined(__GNUC__) ++ #warning "Inclusion of header files from include/Qt is deprecated." ++ #elif defined(_MSC_VER) ++ #pragma message("WARNING: Inclusion of header files from include/Qt is deprecated.") ++ #endif ++#endif ++ ++#include "../QtGui/qwidget_haiku.h" +diff -rupN qt-everywhere-opensource-src-4.7.3/include/Qt/qwindowdefs_haiku.h qt-everywhere-opensource-src-4.7.3_haiku/include/Qt/qwindowdefs_haiku.h +--- qt-everywhere-opensource-src-4.7.3/include/Qt/qwindowdefs_haiku.h 1970-01-01 00:00:00.000000000 +0000 ++++ qt-everywhere-opensource-src-4.7.3_haiku/include/Qt/qwindowdefs_haiku.h 2011-06-02 22:56:25.000000000 +0000 +@@ -0,0 +1,9 @@ ++#ifndef QT_NO_QT_INCLUDE_WARN ++ #if defined(__GNUC__) ++ #warning "Inclusion of header files from include/Qt is deprecated." ++ #elif defined(_MSC_VER) ++ #pragma message("WARNING: Inclusion of header files from include/Qt is deprecated.") ++ #endif ++#endif ++ ++#include "../QtGui/qwindowdefs_haiku.h" +diff -rupN qt-everywhere-opensource-src-4.7.3/include/QtGui/QHaikuStyle qt-everywhere-opensource-src-4.7.3_haiku/include/QtGui/QHaikuStyle +--- qt-everywhere-opensource-src-4.7.3/include/QtGui/QHaikuStyle 1970-01-01 00:00:00.000000000 +0000 ++++ qt-everywhere-opensource-src-4.7.3_haiku/include/QtGui/QHaikuStyle 2010-04-15 16:14:35.000000000 +0000 +@@ -0,0 +1 @@ ++#include "qhaikustyle.h" +diff -rupN qt-everywhere-opensource-src-4.7.3/include/QtGui/QtHaikuView qt-everywhere-opensource-src-4.7.3_haiku/include/QtGui/QtHaikuView +--- qt-everywhere-opensource-src-4.7.3/include/QtGui/QtHaikuView 1970-01-01 00:00:00.000000000 +0000 ++++ qt-everywhere-opensource-src-4.7.3_haiku/include/QtGui/QtHaikuView 2010-11-09 02:20:07.000000000 +0000 +@@ -0,0 +1 @@ ++#include "qwidget_haiku.h" +diff -rupN qt-everywhere-opensource-src-4.7.3/include/QtGui/QtHaikuWindow qt-everywhere-opensource-src-4.7.3_haiku/include/QtGui/QtHaikuWindow +--- qt-everywhere-opensource-src-4.7.3/include/QtGui/QtHaikuWindow 1970-01-01 00:00:00.000000000 +0000 ++++ qt-everywhere-opensource-src-4.7.3_haiku/include/QtGui/QtHaikuWindow 2010-11-09 02:20:07.000000000 +0000 +@@ -0,0 +1 @@ ++#include "qwidget_haiku.h" +diff -rupN qt-everywhere-opensource-src-4.7.3/include/QtGui/headers.pri qt-everywhere-opensource-src-4.7.3_haiku/include/QtGui/headers.pri +--- qt-everywhere-opensource-src-4.7.3/include/QtGui/headers.pri 2011-03-30 05:16:20.013893632 +0000 ++++ qt-everywhere-opensource-src-4.7.3_haiku/include/QtGui/headers.pri 2011-06-14 04:04:50.707264512 +0000 +@@ -1,3 +1,3 @@ +-SYNCQT.HEADER_FILES = ../gui/dialogs/qabstractpagesetupdialog.h ../gui/dialogs/qabstractprintdialog.h ../gui/dialogs/qcolordialog.h ../gui/dialogs/qdialog.h ../gui/dialogs/qerrormessage.h ../gui/dialogs/qfiledialog.h ../gui/dialogs/qfilesystemmodel.h ../gui/dialogs/qfontdialog.h ../gui/dialogs/qinputdialog.h ../gui/dialogs/qmessagebox.h ../gui/dialogs/qpagesetupdialog.h ../gui/dialogs/qprintdialog.h ../gui/dialogs/qprintpreviewdialog.h ../gui/dialogs/qprogressdialog.h ../gui/dialogs/qwizard.h ../gui/embedded/qcopchannel_qws.h ../gui/embedded/qdecoration_qws.h ../gui/embedded/qdecorationdefault_qws.h ../gui/embedded/qdecorationfactory_qws.h ../gui/embedded/qdecorationplugin_qws.h ../gui/embedded/qdecorationstyled_qws.h ../gui/embedded/qdecorationwindows_qws.h ../gui/embedded/qdirectpainter_qws.h ../gui/embedded/qkbd_qws.h ../gui/embedded/qkbddriverfactory_qws.h ../gui/embedded/qkbddriverplugin_qws.h ../gui/embedded/qkbdlinuxinput_qws.h ../gui/embedded/qkbdqnx_qws.h ../gui/embedded/qkbdtty_qws.h ../gui/embedded/qkbdum_qws.h ../gui/embedded/qkbdvfb_qws.h ../gui/embedded/qmouse_qws.h ../gui/embedded/qmousedriverfactory_qws.h ../gui/embedded/qmousedriverplugin_qws.h ../gui/embedded/qmouselinuxinput_qws.h ../gui/embedded/qmouselinuxtp_qws.h ../gui/embedded/qmousepc_qws.h ../gui/embedded/qmouseqnx_qws.h ../gui/embedded/qmousetslib_qws.h ../gui/embedded/qmousevfb_qws.h ../gui/embedded/qscreen_qws.h ../gui/embedded/qscreendriverfactory_qws.h ../gui/embedded/qscreendriverplugin_qws.h ../gui/embedded/qscreenlinuxfb_qws.h ../gui/embedded/qscreenproxy_qws.h ../gui/embedded/qscreenqnx_qws.h ../gui/embedded/qscreentransformed_qws.h ../gui/embedded/qscreenvfb_qws.h ../gui/embedded/qsoundqss_qws.h ../gui/embedded/qtransportauth_qws.h ../gui/embedded/qtransportauthdefs_qws.h ../gui/embedded/qvfbhdr.h ../gui/embedded/qwindowsystem_qws.h ../gui/embedded/qwscursor_qws.h ../gui/embedded/qwsdisplay_qws.h ../gui/embedded/qwsembedwidget.h ../gui/embedded/qwsevent_qws.h ../gui/embedded/qwsmanager_qws.h ../gui/embedded/qwsproperty_qws.h ../gui/embedded/qwsprotocolitem_qws.h ../gui/embedded/qwssocket_qws.h ../gui/embedded/qwsutils_qws.h ../gui/graphicsview/qgraphicsanchorlayout.h ../gui/graphicsview/qgraphicsgridlayout.h ../gui/graphicsview/qgraphicsitem.h ../gui/graphicsview/qgraphicsitemanimation.h ../gui/graphicsview/qgraphicslayout.h ../gui/graphicsview/qgraphicslayoutitem.h ../gui/graphicsview/qgraphicslinearlayout.h ../gui/graphicsview/qgraphicsproxywidget.h ../gui/graphicsview/qgraphicsscene.h ../gui/graphicsview/qgraphicssceneevent.h ../gui/graphicsview/qgraphicstransform.h ../gui/graphicsview/qgraphicsview.h ../gui/graphicsview/qgraphicswidget.h ../gui/kernel/qaction.h ../gui/kernel/qactiongroup.h ../gui/kernel/qapplication.h ../gui/kernel/qboxlayout.h ../gui/kernel/qclipboard.h ../gui/kernel/qcursor.h ../gui/kernel/qdesktopwidget.h ../gui/kernel/qdrag.h ../gui/kernel/qevent.h ../gui/kernel/qformlayout.h ../gui/kernel/qgesture.h ../gui/kernel/qgesturerecognizer.h ../gui/kernel/qgridlayout.h ../gui/kernel/qguifunctions_wince.h ../gui/kernel/qkeysequence.h ../gui/kernel/qlayout.h ../gui/kernel/qlayoutitem.h ../gui/kernel/qmacdefines_mac.h ../gui/kernel/qmime.h ../gui/kernel/qpalette.h ../gui/kernel/qsessionmanager.h ../gui/kernel/qshortcut.h ../gui/kernel/qsizepolicy.h ../gui/kernel/qsound.h ../gui/kernel/qstackedlayout.h ../gui/kernel/qtooltip.h ../gui/kernel/qwhatsthis.h ../gui/kernel/qwidget.h ../gui/kernel/qwidgetaction.h ../gui/kernel/qwindowdefs.h ../gui/kernel/qwindowdefs_win.h ../gui/kernel/qx11embed_x11.h ../gui/kernel/qx11info_x11.h ../gui/effects/qgraphicseffect.h ../gui/s60framework/qs60mainapplication.h ../gui/s60framework/qs60mainappui.h ../gui/s60framework/qs60maindocument.h ../gui/math3d/qgenericmatrix.h ../gui/math3d/qmatrix4x4.h ../gui/math3d/qquaternion.h ../gui/math3d/qvector2d.h ../gui/math3d/qvector3d.h ../gui/math3d/qvector4d.h ../gui/image/qbitmap.h ../gui/image/qicon.h ../gui/image/qiconengine.h ../gui/image/qiconengineplugin.h ../gui/image/qimage.h ../gui/image/qimageiohandler.h ../gui/image/qimagereader.h ../gui/image/qimagewriter.h ../gui/image/qmovie.h ../gui/image/qpicture.h ../gui/image/qpictureformatplugin.h ../gui/image/qpixmap.h ../gui/image/qpixmapcache.h ../gui/symbian/qsymbianevent.h ../gui/text/qabstractfontengine_qws.h ../gui/text/qabstracttextdocumentlayout.h ../gui/text/qfont.h ../gui/text/qfontdatabase.h ../gui/text/qfontinfo.h ../gui/text/qfontmetrics.h ../gui/text/qstatictext.h ../gui/text/qsyntaxhighlighter.h ../gui/text/qtextcursor.h ../gui/text/qtextdocument.h ../gui/text/qtextdocumentfragment.h ../gui/text/qtextdocumentwriter.h ../gui/text/qtextformat.h ../gui/text/qtextlayout.h ../gui/text/qtextlist.h ../gui/text/qtextobject.h ../gui/text/qtextoption.h ../gui/text/qtexttable.h ../gui/itemviews/qabstractitemdelegate.h ../gui/itemviews/qabstractitemview.h ../gui/itemviews/qabstractproxymodel.h ../gui/itemviews/qcolumnview.h ../gui/itemviews/qdatawidgetmapper.h ../gui/itemviews/qdirmodel.h ../gui/itemviews/qfileiconprovider.h ../gui/itemviews/qheaderview.h ../gui/itemviews/qitemdelegate.h ../gui/itemviews/qitemeditorfactory.h ../gui/itemviews/qitemselectionmodel.h ../gui/itemviews/qlistview.h ../gui/itemviews/qlistwidget.h ../gui/itemviews/qproxymodel.h ../gui/itemviews/qsortfilterproxymodel.h ../gui/itemviews/qstandarditemmodel.h ../gui/itemviews/qstringlistmodel.h ../gui/itemviews/qstyleditemdelegate.h ../gui/itemviews/qtableview.h ../gui/itemviews/qtablewidget.h ../gui/itemviews/qtreeview.h ../gui/itemviews/qtreewidget.h ../gui/itemviews/qtreewidgetitemiterator.h ../gui/widgets/qabstractbutton.h ../gui/widgets/qabstractscrollarea.h ../gui/widgets/qabstractslider.h ../gui/widgets/qabstractspinbox.h ../gui/widgets/qbuttongroup.h ../gui/widgets/qcalendarwidget.h ../gui/widgets/qcheckbox.h ../gui/widgets/qcombobox.h ../gui/widgets/qcommandlinkbutton.h ../gui/widgets/qdatetimeedit.h ../gui/widgets/qdial.h ../gui/widgets/qdialogbuttonbox.h ../gui/widgets/qdockwidget.h ../gui/widgets/qfocusframe.h ../gui/widgets/qfontcombobox.h ../gui/widgets/qframe.h ../gui/widgets/qgroupbox.h ../gui/widgets/qlabel.h ../gui/widgets/qlcdnumber.h ../gui/widgets/qlineedit.h ../gui/widgets/qmaccocoaviewcontainer_mac.h ../gui/widgets/qmacnativewidget_mac.h ../gui/widgets/qmainwindow.h ../gui/widgets/qmdiarea.h ../gui/widgets/qmdisubwindow.h ../gui/widgets/qmenu.h ../gui/widgets/qmenubar.h ../gui/widgets/qmenudata.h ../gui/widgets/qplaintextedit.h ../gui/widgets/qprintpreviewwidget.h ../gui/widgets/qprogressbar.h ../gui/widgets/qpushbutton.h ../gui/widgets/qradiobutton.h ../gui/widgets/qrubberband.h ../gui/widgets/qscrollarea.h ../gui/widgets/qscrollbar.h ../gui/widgets/qsizegrip.h ../gui/widgets/qslider.h ../gui/widgets/qspinbox.h ../gui/widgets/qsplashscreen.h ../gui/widgets/qsplitter.h ../gui/widgets/qstackedwidget.h ../gui/widgets/qstatusbar.h ../gui/widgets/qtabbar.h ../gui/widgets/qtabwidget.h ../gui/widgets/qtextbrowser.h ../gui/widgets/qtextedit.h ../gui/widgets/qtoolbar.h ../gui/widgets/qtoolbox.h ../gui/widgets/qtoolbutton.h ../gui/widgets/qvalidator.h ../gui/widgets/qworkspace.h ../gui/statemachine/qkeyeventtransition.h ../gui/statemachine/qmouseeventtransition.h ../gui/util/qcompleter.h ../gui/util/qdesktopservices.h ../gui/util/qsystemtrayicon.h ../gui/util/qundogroup.h ../gui/util/qundostack.h ../gui/util/qundoview.h ../gui/accessible/qaccessible.h ../gui/accessible/qaccessible2.h ../gui/accessible/qaccessiblebridge.h ../gui/accessible/qaccessibleobject.h ../gui/accessible/qaccessibleplugin.h ../gui/accessible/qaccessiblewidget.h ../gui/styles/qcdestyle.h ../gui/styles/qcleanlooksstyle.h ../gui/styles/qcommonstyle.h ../gui/styles/qgtkstyle.h ../gui/styles/qmacstyle_mac.h ../gui/styles/qmotifstyle.h ../gui/styles/qplastiquestyle.h ../gui/styles/qproxystyle.h ../gui/styles/qs60style.h ../gui/styles/qstyle.h ../gui/styles/qstylefactory.h ../gui/styles/qstyleoption.h ../gui/styles/qstyleplugin.h ../gui/styles/qwindowscestyle.h ../gui/styles/qwindowsmobilestyle.h ../gui/styles/qwindowsstyle.h ../gui/styles/qwindowsvistastyle.h ../gui/styles/qwindowsxpstyle.h ../gui/inputmethod/qinputcontext.h ../gui/inputmethod/qinputcontextfactory.h ../gui/inputmethod/qinputcontextplugin.h ../gui/painting/qbrush.h ../gui/painting/qcolor.h ../gui/painting/qcolormap.h ../gui/painting/qdrawutil.h ../gui/painting/qmatrix.h ../gui/painting/qpaintdevice.h ../gui/painting/qpaintengine.h ../gui/painting/qpainter.h ../gui/painting/qpainterpath.h ../gui/painting/qpen.h ../gui/painting/qpolygon.h ../gui/painting/qprintengine.h ../gui/painting/qprinter.h ../gui/painting/qprinterinfo.h ../gui/painting/qregion.h ../gui/painting/qrgb.h ../gui/painting/qstylepainter.h ../gui/painting/qtransform.h ../gui/painting/qwmatrix.h ../../include/QtGui/QtGui +-SYNCQT.HEADER_CLASSES = ../../include/QtGui/QAbstractPageSetupDialog ../../include/QtGui/QAbstractPrintDialog ../../include/QtGui/QColorDialog ../../include/QtGui/QDialog ../../include/QtGui/QErrorMessage ../../include/QtGui/QFileDialog ../../include/QtGui/QFileSystemModel ../../include/QtGui/QFontDialog ../../include/QtGui/QInputDialog ../../include/QtGui/QMessageBox ../../include/QtGui/QPageSetupDialog ../../include/QtGui/QUnixPrintWidget ../../include/QtGui/QPrintDialog ../../include/QtGui/QPrintPreviewDialog ../../include/QtGui/QProgressDialog ../../include/QtGui/QWizard ../../include/QtGui/QWizardPage ../../include/QtGui/QCopChannel ../../include/QtGui/QDecorationAction ../../include/QtGui/QDecoration ../../include/QtGui/QDecorationDefault ../../include/QtGui/QDecorationFactory ../../include/QtGui/QDecorationFactoryInterface ../../include/QtGui/QDecorationPlugin ../../include/QtGui/QDecorationStyled ../../include/QtGui/QDecorationWindows ../../include/QtGui/QDirectPainter ../../include/QtGui/QWSKeyboardHandler ../../include/QtGui/QKbdDriverFactory ../../include/QtGui/QWSKeyboardHandlerFactoryInterface ../../include/QtGui/QKbdDriverPlugin ../../include/QtGui/QWSLinuxInputKeyboardHandler ../../include/QtGui/QWSQnxKeyboardHandler ../../include/QtGui/QWSTtyKeyboardHandler ../../include/QtGui/QWSUmKeyboardHandler ../../include/QtGui/QVFbKeyboardHandler ../../include/QtGui/QWSPointerCalibrationData ../../include/QtGui/QWSMouseHandler ../../include/QtGui/QWSCalibratedMouseHandler ../../include/QtGui/QMouseDriverFactory ../../include/QtGui/QWSMouseHandlerFactoryInterface ../../include/QtGui/QMouseDriverPlugin ../../include/QtGui/QWSLinuxInputMouseHandler ../../include/QtGui/QWSLinuxTPMouseHandler ../../include/QtGui/QWSPcMouseHandler ../../include/QtGui/QQnxMouseHandler ../../include/QtGui/QWSTslibMouseHandler ../../include/QtGui/QVFbMouseHandler ../../include/QtGui/QScreenCursor ../../include/QtGui/QPoolEntry ../../include/QtGui/QScreen ../../include/QtGui/QScreenDriverFactory ../../include/QtGui/QScreenDriverFactoryInterface ../../include/QtGui/QScreenDriverPlugin ../../include/QtGui/QLinuxFb_Shared ../../include/QtGui/QLinuxFbScreen ../../include/QtGui/QProxyScreenCursor ../../include/QtGui/QProxyScreen ../../include/QtGui/QQnxScreen ../../include/QtGui/QTransformedScreen ../../include/QtGui/QVFbScreen ../../include/QtGui/QWSSoundServer ../../include/QtGui/QWSSoundClient ../../include/QtGui/QWSSoundServerSocket ../../include/QtGui/QTransportAuth ../../include/QtGui/QAuthDevice ../../include/QtGui/QVFbHeader ../../include/QtGui/QVFbKeyData ../../include/QtGui/QWSInternalWindowInfo ../../include/QtGui/QWSScreenSaver ../../include/QtGui/QWSWindow ../../include/QtGui/QWSServer ../../include/QtGui/QWSInputMethod ../../include/QtGui/QWSCursorMap ../../include/QtGui/QWSClient ../../include/QtGui/QWSCursor ../../include/QtGui/QWSWindowInfo ../../include/QtGui/QWSDisplay ../../include/QtGui/QWSEmbedWidget ../../include/QtGui/QWSEvent ../../include/QtGui/QWSManager ../../include/QtGui/QWSPropertyManager ../../include/QtGui/QWSProtocolItem ../../include/QtGui/QWSSocket ../../include/QtGui/QWSServerSocket ../../include/QtGui/QGraphicsAnchor ../../include/QtGui/QGraphicsAnchorLayout ../../include/QtGui/QGraphicsGridLayout ../../include/QtGui/QGraphicsItem ../../include/QtGui/QGraphicsObject ../../include/QtGui/QAbstractGraphicsShapeItem ../../include/QtGui/QGraphicsPathItem ../../include/QtGui/QGraphicsRectItem ../../include/QtGui/QGraphicsEllipseItem ../../include/QtGui/QGraphicsPolygonItem ../../include/QtGui/QGraphicsLineItem ../../include/QtGui/QGraphicsPixmapItem ../../include/QtGui/QGraphicsTextItem ../../include/QtGui/QGraphicsSimpleTextItem ../../include/QtGui/QGraphicsItemGroup ../../include/QtGui/QGraphicsItemAnimation ../../include/QtGui/QGraphicsLayout ../../include/QtGui/QGraphicsLayoutItem ../../include/QtGui/QGraphicsLinearLayout ../../include/QtGui/QGraphicsProxyWidget ../../include/QtGui/QGraphicsScene ../../include/QtGui/QGraphicsSceneEvent ../../include/QtGui/QGraphicsSceneMouseEvent ../../include/QtGui/QGraphicsSceneWheelEvent ../../include/QtGui/QGraphicsSceneContextMenuEvent ../../include/QtGui/QGraphicsSceneHoverEvent ../../include/QtGui/QGraphicsSceneHelpEvent ../../include/QtGui/QGraphicsSceneDragDropEvent ../../include/QtGui/QGraphicsSceneResizeEvent ../../include/QtGui/QGraphicsSceneMoveEvent ../../include/QtGui/QGraphicsTransform ../../include/QtGui/QGraphicsScale ../../include/QtGui/QGraphicsRotation ../../include/QtGui/QGraphicsView ../../include/QtGui/QGraphicsWidget ../../include/QtGui/QAction ../../include/QtGui/QActionGroup ../../include/QtGui/QApplication ../../include/QtGui/QBoxLayout ../../include/QtGui/QHBoxLayout ../../include/QtGui/QVBoxLayout ../../include/QtGui/QClipboard ../../include/QtGui/QCursor ../../include/QtGui/QCursorShape ../../include/QtGui/QDesktopWidget ../../include/QtGui/QDrag ../../include/QtGui/QtEvents ../../include/QtGui/QInputEvent ../../include/QtGui/QMouseEvent ../../include/QtGui/QHoverEvent ../../include/QtGui/QWheelEvent ../../include/QtGui/QTabletEvent ../../include/QtGui/QKeyEvent ../../include/QtGui/QFocusEvent ../../include/QtGui/QPaintEvent ../../include/QtGui/QUpdateLaterEvent ../../include/QtGui/QMoveEvent ../../include/QtGui/QResizeEvent ../../include/QtGui/QCloseEvent ../../include/QtGui/QIconDragEvent ../../include/QtGui/QShowEvent ../../include/QtGui/QHideEvent ../../include/QtGui/QContextMenuEvent ../../include/QtGui/QInputMethodEvent ../../include/QtGui/QDropEvent ../../include/QtGui/QDragMoveEvent ../../include/QtGui/QDragEnterEvent ../../include/QtGui/QDragResponseEvent ../../include/QtGui/QDragLeaveEvent ../../include/QtGui/QHelpEvent ../../include/QtGui/QStatusTipEvent ../../include/QtGui/QWhatsThisClickedEvent ../../include/QtGui/QActionEvent ../../include/QtGui/QFileOpenEvent ../../include/QtGui/QToolBarChangeEvent ../../include/QtGui/QShortcutEvent ../../include/QtGui/QClipboardEvent ../../include/QtGui/QWindowStateChangeEvent ../../include/QtGui/QMenubarUpdatedEvent ../../include/QtGui/QTouchEvent ../../include/QtGui/QGestureEvent ../../include/QtGui/QFormLayout ../../include/QtGui/QGesture ../../include/QtGui/QPanGesture ../../include/QtGui/QPinchGesture ../../include/QtGui/QSwipeGesture ../../include/QtGui/QTapGesture ../../include/QtGui/QTapAndHoldGesture ../../include/QtGui/QGestureRecognizer ../../include/QtGui/QGridLayout ../../include/QtGui/QKeySequence ../../include/QtGui/QLayoutIterator ../../include/QtGui/QLayout ../../include/QtGui/QLayoutItem ../../include/QtGui/QSpacerItem ../../include/QtGui/QWidgetItem ../../include/QtGui/QWidgetItemV2 ../../include/QtGui/QMimeSource ../../include/QtGui/QWindowsMime ../../include/QtGui/QMacMime ../../include/QtGui/QMacPasteboardMime ../../include/QtGui/QPalette ../../include/QtGui/QColorGroup ../../include/QtGui/QSessionManager ../../include/QtGui/QShortcut ../../include/QtGui/QSizePolicy ../../include/QtGui/QSound ../../include/QtGui/QStackedLayout ../../include/QtGui/QToolTip ../../include/QtGui/QWhatsThis ../../include/QtGui/QWidgetData ../../include/QtGui/QWidget ../../include/QtGui/QWidgetAction ../../include/QtGui/QWidgetList ../../include/QtGui/QWidgetMapper ../../include/QtGui/QWidgetSet ../../include/QtGui/QX11EmbedWidget ../../include/QtGui/QX11EmbedContainer ../../include/QtGui/QX11Info ../../include/QtGui/QGraphicsEffect ../../include/QtGui/QGraphicsColorizeEffect ../../include/QtGui/QGraphicsBlurEffect ../../include/QtGui/QGraphicsDropShadowEffect ../../include/QtGui/QGraphicsOpacityEffect ../../include/QtGui/QS60MainApplicationBase ../../include/QtGui/QS60MainApplication ../../include/QtGui/QS60MainAppUiBase ../../include/QtGui/QS60StubAknAppUiBase ../../include/QtGui/QS60StubMEikStatusPaneObserver ../../include/QtGui/QS60StubMAknTouchPaneObserver ../../include/QtGui/QS60StubAknAppUi ../../include/QtGui/QS60MainAppUi ../../include/QtGui/QS60MainDocumentBase ../../include/QtGui/QS60MainDocument ../../include/QtGui/QGenericMatrix ../../include/QtGui/QMatrix2x2 ../../include/QtGui/QMatrix2x3 ../../include/QtGui/QMatrix2x4 ../../include/QtGui/QMatrix3x2 ../../include/QtGui/QMatrix3x3 ../../include/QtGui/QMatrix3x4 ../../include/QtGui/QMatrix4x2 ../../include/QtGui/QMatrix4x3 ../../include/QtGui/QMatrix4x4 ../../include/QtGui/QQuaternion ../../include/QtGui/QVector2D ../../include/QtGui/QVector3D ../../include/QtGui/QVector4D ../../include/QtGui/QBitmap ../../include/QtGui/QIcon ../../include/QtGui/QIconSet ../../include/QtGui/QIconEngine ../../include/QtGui/QIconEngineV2 ../../include/QtGui/QIconEngineFactoryInterface ../../include/QtGui/QIconEnginePlugin ../../include/QtGui/QIconEngineFactoryInterfaceV2 ../../include/QtGui/QIconEnginePluginV2 ../../include/QtGui/QImageTextKeyLang ../../include/QtGui/QImage ../../include/QtGui/QImageIOHandler ../../include/QtGui/QImageIOHandlerFactoryInterface ../../include/QtGui/QImageIOPlugin ../../include/QtGui/QImageReader ../../include/QtGui/QImageWriter ../../include/QtGui/QMovie ../../include/QtGui/QPicture ../../include/QtGui/QPictureIO ../../include/QtGui/QPictureFormatInterface ../../include/QtGui/QPictureFormatPlugin ../../include/QtGui/QPixmap ../../include/QtGui/QPixmapCache ../../include/QtGui/QSymbianEvent ../../include/QtGui/QFontEngineInfo ../../include/QtGui/QFontEngineFactoryInterface ../../include/QtGui/QFontEnginePlugin ../../include/QtGui/QAbstractFontEngine ../../include/QtGui/QAbstractTextDocumentLayout ../../include/QtGui/QTextObjectInterface ../../include/QtGui/QFont ../../include/QtGui/QFontDatabase ../../include/QtGui/QFontInfo ../../include/QtGui/QFontMetrics ../../include/QtGui/QFontMetricsF ../../include/QtGui/QStaticText ../../include/QtGui/QSyntaxHighlighter ../../include/QtGui/QTextCursor ../../include/QtGui/QAbstractUndoItem ../../include/QtGui/QTextDocument ../../include/QtGui/QTextDocumentFragment ../../include/QtGui/QTextDocumentWriter ../../include/QtGui/QTextLength ../../include/QtGui/QTextFormat ../../include/QtGui/QTextCharFormat ../../include/QtGui/QTextBlockFormat ../../include/QtGui/QTextListFormat ../../include/QtGui/QTextImageFormat ../../include/QtGui/QTextFrameFormat ../../include/QtGui/QTextTableFormat ../../include/QtGui/QTextTableCellFormat ../../include/QtGui/QTextInlineObject ../../include/QtGui/QTextLayout ../../include/QtGui/QTextLine ../../include/QtGui/QTextList ../../include/QtGui/QTextObject ../../include/QtGui/QTextBlockGroup ../../include/QtGui/QTextFrameLayoutData ../../include/QtGui/QTextFrame ../../include/QtGui/QTextBlockUserData ../../include/QtGui/QTextBlock ../../include/QtGui/QTextFragment ../../include/QtGui/QTextOption ../../include/QtGui/QTextTableCell ../../include/QtGui/QTextTable ../../include/QtGui/QAbstractItemDelegate ../../include/QtGui/QAbstractItemView ../../include/QtGui/QAbstractProxyModel ../../include/QtGui/QColumnView ../../include/QtGui/QDataWidgetMapper ../../include/QtGui/QDirModel ../../include/QtGui/QFileIconProvider ../../include/QtGui/QHeaderView ../../include/QtGui/QItemDelegate ../../include/QtGui/QItemEditorCreatorBase ../../include/QtGui/QItemEditorCreator ../../include/QtGui/QStandardItemEditorCreator ../../include/QtGui/QItemEditorFactory ../../include/QtGui/QItemSelectionRange ../../include/QtGui/QItemSelectionModel ../../include/QtGui/QItemSelection ../../include/QtGui/QListView ../../include/QtGui/QListWidgetItem ../../include/QtGui/QListWidget ../../include/QtGui/QProxyModel ../../include/QtGui/QSortFilterProxyModel ../../include/QtGui/QStandardItem ../../include/QtGui/QStandardItemModel ../../include/QtGui/QStringListModel ../../include/QtGui/QStyledItemDelegate ../../include/QtGui/QTableView ../../include/QtGui/QTableWidgetSelectionRange ../../include/QtGui/QTableWidgetItem ../../include/QtGui/QTableWidget ../../include/QtGui/QTreeView ../../include/QtGui/QTreeWidgetItem ../../include/QtGui/QTreeWidget ../../include/QtGui/QTreeWidgetItemIterator ../../include/QtGui/QAbstractButton ../../include/QtGui/QAbstractScrollArea ../../include/QtGui/QAbstractSlider ../../include/QtGui/QAbstractSpinBox ../../include/QtGui/QButtonGroup ../../include/QtGui/QCalendarWidget ../../include/QtGui/QCheckBox ../../include/QtGui/QComboBox ../../include/QtGui/QCommandLinkButton ../../include/QtGui/QDateTimeEdit ../../include/QtGui/QTimeEdit ../../include/QtGui/QDateEdit ../../include/QtGui/QDial ../../include/QtGui/QDialogButtonBox ../../include/QtGui/QDockWidget ../../include/QtGui/QFocusFrame ../../include/QtGui/QFontComboBox ../../include/QtGui/QFrame ../../include/QtGui/QGroupBox ../../include/QtGui/QLabel ../../include/QtGui/QLCDNumber ../../include/QtGui/QLineEdit ../../include/QtGui/QMacCocoaViewContainer ../../include/QtGui/QMacNativeWidget ../../include/QtGui/QMainWindow ../../include/QtGui/QMdiArea ../../include/QtGui/QMdiSubWindow ../../include/QtGui/QMenu ../../include/QtGui/QMenuBar ../../include/QtGui/QMenuItem ../../include/QtGui/QPlainTextEdit ../../include/QtGui/QPlainTextDocumentLayout ../../include/QtGui/QPrintPreviewWidget ../../include/QtGui/QProgressBar ../../include/QtGui/QPushButton ../../include/QtGui/QRadioButton ../../include/QtGui/QRubberBand ../../include/QtGui/QScrollArea ../../include/QtGui/QScrollBar ../../include/QtGui/QSizeGrip ../../include/QtGui/QSlider ../../include/QtGui/QSpinBox ../../include/QtGui/QDoubleSpinBox ../../include/QtGui/QSplashScreen ../../include/QtGui/QSplitter ../../include/QtGui/QSplitterHandle ../../include/QtGui/QStackedWidget ../../include/QtGui/QStatusBar ../../include/QtGui/QTabBar ../../include/QtGui/QTabWidget ../../include/QtGui/QTextBrowser ../../include/QtGui/QTextEdit ../../include/QtGui/QToolBar ../../include/QtGui/QToolBox ../../include/QtGui/QToolButton ../../include/QtGui/QValidator ../../include/QtGui/QIntValidator ../../include/QtGui/QDoubleValidator ../../include/QtGui/QRegExpValidator ../../include/QtGui/QWorkspace ../../include/QtGui/QKeyEventTransition ../../include/QtGui/QMouseEventTransition ../../include/QtGui/QCompleter ../../include/QtGui/QDesktopServices ../../include/QtGui/QSystemTrayIcon ../../include/QtGui/QUndoGroup ../../include/QtGui/QUndoCommand ../../include/QtGui/QUndoStack ../../include/QtGui/QUndoView ../../include/QtGui/QAccessible ../../include/QtGui/QAccessibleInterface ../../include/QtGui/QAccessibleInterfaceEx ../../include/QtGui/QAccessibleEvent ../../include/QtGui/QAccessible2Interface ../../include/QtGui/QAccessibleTextInterface ../../include/QtGui/QAccessibleEditableTextInterface ../../include/QtGui/QAccessibleSimpleEditableTextInterface ../../include/QtGui/QAccessibleValueInterface ../../include/QtGui/QAccessibleTableInterface ../../include/QtGui/QAccessibleActionInterface ../../include/QtGui/QAccessibleImageInterface ../../include/QtGui/QAccessibleBridge ../../include/QtGui/QAccessibleBridgeFactoryInterface ../../include/QtGui/QAccessibleBridgePlugin ../../include/QtGui/QAccessibleObject ../../include/QtGui/QAccessibleObjectEx ../../include/QtGui/QAccessibleApplication ../../include/QtGui/QAccessibleFactoryInterface ../../include/QtGui/QAccessiblePlugin ../../include/QtGui/QAccessibleWidget ../../include/QtGui/QAccessibleWidgetEx ../../include/QtGui/QCDEStyle ../../include/QtGui/QCleanlooksStyle ../../include/QtGui/QCommonStyle ../../include/QtGui/QGtkStyle ../../include/QtGui/QMacStyle ../../include/QtGui/QMotifStyle ../../include/QtGui/QPlastiqueStyle ../../include/QtGui/QProxyStyle ../../include/QtGui/QS60Style ../../include/QtGui/QStyle ../../include/QtGui/QStyleFactory ../../include/QtGui/QStyleOption ../../include/QtGui/QStyleOptionFocusRect ../../include/QtGui/QStyleOptionFrame ../../include/QtGui/QStyleOptionFrameV2 ../../include/QtGui/QStyleOptionFrameV3 ../../include/QtGui/QStyleOptionTabWidgetFrame ../../include/QtGui/QStyleOptionTabWidgetFrameV2 ../../include/QtGui/QStyleOptionTabBarBase ../../include/QtGui/QStyleOptionTabBarBaseV2 ../../include/QtGui/QStyleOptionHeader ../../include/QtGui/QStyleOptionButton ../../include/QtGui/QStyleOptionTab ../../include/QtGui/QStyleOptionTabV2 ../../include/QtGui/QStyleOptionTabV3 ../../include/QtGui/QStyleOptionToolBar ../../include/QtGui/QStyleOptionProgressBar ../../include/QtGui/QStyleOptionProgressBarV2 ../../include/QtGui/QStyleOptionMenuItem ../../include/QtGui/QStyleOptionQ3ListViewItem ../../include/QtGui/QStyleOptionQ3DockWindow ../../include/QtGui/QStyleOptionDockWidget ../../include/QtGui/QStyleOptionDockWidgetV2 ../../include/QtGui/QStyleOptionViewItem ../../include/QtGui/QStyleOptionViewItemV2 ../../include/QtGui/QStyleOptionViewItemV3 ../../include/QtGui/QStyleOptionViewItemV4 ../../include/QtGui/QStyleOptionToolBox ../../include/QtGui/QStyleOptionToolBoxV2 ../../include/QtGui/QStyleOptionRubberBand ../../include/QtGui/QStyleOptionComplex ../../include/QtGui/QStyleOptionSlider ../../include/QtGui/QStyleOptionSpinBox ../../include/QtGui/QStyleOptionQ3ListView ../../include/QtGui/QStyleOptionToolButton ../../include/QtGui/QStyleOptionComboBox ../../include/QtGui/QStyleOptionTitleBar ../../include/QtGui/QStyleOptionGroupBox ../../include/QtGui/QStyleOptionSizeGrip ../../include/QtGui/QStyleOptionGraphicsItem ../../include/QtGui/QStyleHintReturn ../../include/QtGui/QStyleHintReturnMask ../../include/QtGui/QStyleHintReturnVariant ../../include/QtGui/QStyleFactoryInterface ../../include/QtGui/QStylePlugin ../../include/QtGui/QWindowsCEStyle ../../include/QtGui/QWindowsMobileStyle ../../include/QtGui/QWindowsStyle ../../include/QtGui/QWindowsVistaStyle ../../include/QtGui/QWindowsXPStyle ../../include/QtGui/QInputContext ../../include/QtGui/QInputContextFactory ../../include/QtGui/QInputContextFactoryInterface ../../include/QtGui/QInputContextPlugin ../../include/QtGui/QBrush ../../include/QtGui/QBrushData ../../include/QtGui/QGradientStop ../../include/QtGui/QGradientStops ../../include/QtGui/QGradient ../../include/QtGui/QLinearGradient ../../include/QtGui/QRadialGradient ../../include/QtGui/QConicalGradient ../../include/QtGui/QColor ../../include/QtGui/QColormap ../../include/QtGui/QTileRules ../../include/QtGui/QMatrix ../../include/QtGui/QPaintDevice ../../include/QtGui/QTextItem ../../include/QtGui/QPaintEngine ../../include/QtGui/QPaintEngineState ../../include/QtGui/QPainter ../../include/QtGui/QPainterPath ../../include/QtGui/QPainterPathPrivate ../../include/QtGui/QPainterPathStroker ../../include/QtGui/QPen ../../include/QtGui/QPolygon ../../include/QtGui/QPolygonF ../../include/QtGui/QPrintEngine ../../include/QtGui/QPrinter ../../include/QtGui/QPrinterInfo ../../include/QtGui/QRegion ../../include/QtGui/QRgb ../../include/QtGui/QStylePainter ../../include/QtGui/QTransform ../../include/QtGui/QWMatrix +-SYNCQT.PRIVATE_HEADER_FILES = ../gui/dialogs/qabstractpagesetupdialog_p.h ../gui/dialogs/qabstractprintdialog_p.h ../gui/dialogs/qcolordialog_p.h ../gui/dialogs/qdialog_p.h ../gui/dialogs/qfiledialog_p.h ../gui/dialogs/qfiledialog_win_p.h ../gui/dialogs/qfileinfogatherer_p.h ../gui/dialogs/qfilesystemmodel_p.h ../gui/dialogs/qfontdialog_p.h ../gui/dialogs/qfscompleter_p.h ../gui/dialogs/qpagesetupdialog_unix_p.h ../gui/dialogs/qsidebar_p.h ../gui/dialogs/qwizard_win_p.h ../gui/embedded/qkbd_defaultmap_qws_p.h ../gui/embedded/qkbd_qws_p.h ../gui/embedded/qlock_p.h ../gui/embedded/qscreenmulti_qws_p.h ../gui/embedded/qtransportauth_qws_p.h ../gui/embedded/qunixsocket_p.h ../gui/embedded/qunixsocketserver_p.h ../gui/embedded/qwindowsystem_p.h ../gui/embedded/qwscommand_qws_p.h ../gui/embedded/qwsdisplay_qws_p.h ../gui/embedded/qwslock_p.h ../gui/embedded/qwsmanager_p.h ../gui/embedded/qwssharedmemory_p.h ../gui/embedded/qwssignalhandler_p.h ../gui/graphicsview/qgraph_p.h ../gui/graphicsview/qgraphicsanchorlayout_p.h ../gui/graphicsview/qgraphicsitem_p.h ../gui/graphicsview/qgraphicslayout_p.h ../gui/graphicsview/qgraphicslayoutitem_p.h ../gui/graphicsview/qgraphicsproxywidget_p.h ../gui/graphicsview/qgraphicsscene_bsp_p.h ../gui/graphicsview/qgraphicsscene_p.h ../gui/graphicsview/qgraphicsscenebsptreeindex_p.h ../gui/graphicsview/qgraphicssceneindex_p.h ../gui/graphicsview/qgraphicsscenelinearindex_p.h ../gui/graphicsview/qgraphicstransform_p.h ../gui/graphicsview/qgraphicsview_p.h ../gui/graphicsview/qgraphicswidget_p.h ../gui/graphicsview/qgridlayoutengine_p.h ../gui/graphicsview/qsimplex_p.h ../gui/kernel/qaction_p.h ../gui/kernel/qapplication_p.h ../gui/kernel/qclipboard_p.h ../gui/kernel/qcocoaapplication_mac_p.h ../gui/kernel/qcocoaapplicationdelegate_mac_p.h ../gui/kernel/qcocoamenuloader_mac_p.h ../gui/kernel/qcocoapanel_mac_p.h ../gui/kernel/qcocoasharedwindowmethods_mac_p.h ../gui/kernel/qcocoaview_mac_p.h ../gui/kernel/qcocoawindow_mac_p.h ../gui/kernel/qcocoawindowcustomthemeframe_mac_p.h ../gui/kernel/qcocoawindowdelegate_mac_p.h ../gui/kernel/qcursor_p.h ../gui/kernel/qdesktopwidget_mac_p.h ../gui/kernel/qdnd_p.h ../gui/kernel/qevent_p.h ../gui/kernel/qeventdispatcher_glib_qws_p.h ../gui/kernel/qeventdispatcher_mac_p.h ../gui/kernel/qeventdispatcher_qws_p.h ../gui/kernel/qeventdispatcher_s60_p.h ../gui/kernel/qeventdispatcher_x11_p.h ../gui/kernel/qgesture_p.h ../gui/kernel/qgesturemanager_p.h ../gui/kernel/qguieventdispatcher_glib_p.h ../gui/kernel/qguiplatformplugin_p.h ../gui/kernel/qkde_p.h ../gui/kernel/qkeymapper_p.h ../gui/kernel/qkeysequence_p.h ../gui/kernel/qlayout_p.h ../gui/kernel/qlayoutengine_p.h ../gui/kernel/qmacgesturerecognizer_mac_p.h ../gui/kernel/qmultitouch_mac_p.h ../gui/kernel/qnsframeview_mac_p.h ../gui/kernel/qnsthemeframe_mac_p.h ../gui/kernel/qnstitledframe_mac_p.h ../gui/kernel/qshortcutmap_p.h ../gui/kernel/qsoftkeymanager_common_p.h ../gui/kernel/qsoftkeymanager_p.h ../gui/kernel/qsoftkeymanager_s60_p.h ../gui/kernel/qsound_p.h ../gui/kernel/qstandardgestures_p.h ../gui/kernel/qt_cocoa_helpers_mac_p.h ../gui/kernel/qt_gui_pch.h ../gui/kernel/qt_mac_p.h ../gui/kernel/qt_s60_p.h ../gui/kernel/qt_x11_p.h ../gui/kernel/qwidget_p.h ../gui/kernel/qwidgetaction_p.h ../gui/kernel/qwinnativepangesturerecognizer_win_p.h ../gui/effects/qgraphicseffect_p.h ../gui/s60framework/qs60mainapplication_p.h ../gui/image/qbmphandler_p.h ../gui/image/qgifhandler_p.h ../gui/image/qicon_p.h ../gui/image/qiconloader_p.h ../gui/image/qimage_p.h ../gui/image/qimagepixmapcleanuphooks_p.h ../gui/image/qjpeghandler_p.h ../gui/image/qmnghandler_p.h ../gui/image/qnativeimage_p.h ../gui/image/qpaintengine_pic_p.h ../gui/image/qpicture_p.h ../gui/image/qpixmap_mac_p.h ../gui/image/qpixmap_raster_p.h ../gui/image/qpixmap_s60_p.h ../gui/image/qpixmap_x11_p.h ../gui/image/qpixmapcache_p.h ../gui/image/qpixmapdata_p.h ../gui/image/qpixmapdatafactory_p.h ../gui/image/qpixmapfilter_p.h ../gui/image/qpnghandler_p.h ../gui/image/qppmhandler_p.h ../gui/image/qtiffhandler_p.h ../gui/image/qxbmhandler_p.h ../gui/image/qxpmhandler_p.h ../gui/text/qabstractfontengine_p.h ../gui/text/qabstracttextdocumentlayout_p.h ../gui/text/qcssparser_p.h ../gui/text/qfont_p.h ../gui/text/qfontengine_ft_p.h ../gui/text/qfontengine_p.h ../gui/text/qfontengine_qpf_p.h ../gui/text/qfontengine_s60_p.h ../gui/text/qfontengine_win_p.h ../gui/text/qfontengine_x11_p.h ../gui/text/qfontengineglyphcache_p.h ../gui/text/qfontsubset_p.h ../gui/text/qfragmentmap_p.h ../gui/text/qstatictext_p.h ../gui/text/qtextcontrol_p.h ../gui/text/qtextcontrol_p_p.h ../gui/text/qtextcursor_p.h ../gui/text/qtextdocument_p.h ../gui/text/qtextdocumentfragment_p.h ../gui/text/qtextdocumentlayout_p.h ../gui/text/qtextengine_p.h ../gui/text/qtextformat_p.h ../gui/text/qtexthtmlparser_p.h ../gui/text/qtextimagehandler_p.h ../gui/text/qtextobject_p.h ../gui/text/qtextodfwriter_p.h ../gui/text/qtexttable_p.h ../gui/text/qzipreader_p.h ../gui/text/qzipwriter_p.h ../gui/itemviews/qabstractitemview_p.h ../gui/itemviews/qabstractproxymodel_p.h ../gui/itemviews/qbsptree_p.h ../gui/itemviews/qcolumnview_p.h ../gui/itemviews/qcolumnviewgrip_p.h ../gui/itemviews/qheaderview_p.h ../gui/itemviews/qitemeditorfactory_p.h ../gui/itemviews/qitemselectionmodel_p.h ../gui/itemviews/qlistview_p.h ../gui/itemviews/qlistwidget_p.h ../gui/itemviews/qproxymodel_p.h ../gui/itemviews/qstandarditemmodel_p.h ../gui/itemviews/qtableview_p.h ../gui/itemviews/qtablewidget_p.h ../gui/itemviews/qtreeview_p.h ../gui/itemviews/qtreewidget_p.h ../gui/itemviews/qtreewidgetitemiterator_p.h ../gui/itemviews/qwidgetitemdata_p.h ../gui/widgets/qabstractbutton_p.h ../gui/widgets/qabstractscrollarea_p.h ../gui/widgets/qabstractslider_p.h ../gui/widgets/qabstractspinbox_p.h ../gui/widgets/qcalendartextnavigator_p.h ../gui/widgets/qcocoamenu_mac_p.h ../gui/widgets/qcocoatoolbardelegate_mac_p.h ../gui/widgets/qcombobox_p.h ../gui/widgets/qdatetimeedit_p.h ../gui/widgets/qdockarealayout_p.h ../gui/widgets/qdockwidget_p.h ../gui/widgets/qeffects_p.h ../gui/widgets/qframe_p.h ../gui/widgets/qlabel_p.h ../gui/widgets/qlinecontrol_p.h ../gui/widgets/qlineedit_p.h ../gui/widgets/qmainwindowlayout_p.h ../gui/widgets/qmdiarea_p.h ../gui/widgets/qmdisubwindow_p.h ../gui/widgets/qmenu_p.h ../gui/widgets/qmenu_wince_resource_p.h ../gui/widgets/qmenubar_p.h ../gui/widgets/qplaintextedit_p.h ../gui/widgets/qpushbutton_p.h ../gui/widgets/qscrollarea_p.h ../gui/widgets/qsplitter_p.h ../gui/widgets/qtabbar_p.h ../gui/widgets/qtextedit_p.h ../gui/widgets/qtoolbar_p.h ../gui/widgets/qtoolbararealayout_p.h ../gui/widgets/qtoolbarextension_p.h ../gui/widgets/qtoolbarlayout_p.h ../gui/widgets/qtoolbarseparator_p.h ../gui/widgets/qwidgetanimator_p.h ../gui/widgets/qwidgetresizehandler_p.h ../gui/statemachine/qbasickeyeventtransition_p.h ../gui/statemachine/qbasicmouseeventtransition_p.h ../gui/util/qcompleter_p.h ../gui/util/qsystemtrayicon_p.h ../gui/util/qundostack_p.h ../gui/accessible/qaccessible_mac_p.h ../gui/styles/qcleanlooksstyle_p.h ../gui/styles/qcommonstyle_p.h ../gui/styles/qcommonstylepixmaps_p.h ../gui/styles/qgtkpainter_p.h ../gui/styles/qgtkstyle_p.h ../gui/styles/qmacstyle_mac_p.h ../gui/styles/qmacstylepixmaps_mac_p.h ../gui/styles/qmotifstyle_p.h ../gui/styles/qproxystyle_p.h ../gui/styles/qs60style_p.h ../gui/styles/qstyle_p.h ../gui/styles/qstylehelper_p.h ../gui/styles/qstylesheetstyle_p.h ../gui/styles/qwindowscestyle_p.h ../gui/styles/qwindowsmobilestyle_p.h ../gui/styles/qwindowsstyle_p.h ../gui/styles/qwindowsvistastyle_p.h ../gui/styles/qwindowsxpstyle_p.h ../gui/egl/qegl_p.h ../gui/egl/qeglcontext_p.h ../gui/egl/qeglproperties_p.h ../gui/inputmethod/qcoefepinputcontext_p.h ../gui/inputmethod/qinputcontext_p.h ../gui/inputmethod/qmacinputcontext_p.h ../gui/inputmethod/qwininputcontext_p.h ../gui/inputmethod/qwsinputcontext_p.h ../gui/inputmethod/qximinputcontext_p.h ../gui/painting/qbackingstore_p.h ../gui/painting/qbezier_p.h ../gui/painting/qblendfunctions_p.h ../gui/painting/qcolor_p.h ../gui/painting/qcssutil_p.h ../gui/painting/qcups_p.h ../gui/painting/qdatabuffer_p.h ../gui/painting/qdrawhelper_arm_simd_p.h ../gui/painting/qdrawhelper_mmx_p.h ../gui/painting/qdrawhelper_neon_p.h ../gui/painting/qdrawhelper_p.h ../gui/painting/qdrawhelper_sse_p.h ../gui/painting/qdrawhelper_x86_p.h ../gui/painting/qdrawingprimitive_sse2_p.h ../gui/painting/qemulationpaintengine_p.h ../gui/painting/qfixed_p.h ../gui/painting/qgraphicssystem_mac_p.h ../gui/painting/qgraphicssystem_p.h ../gui/painting/qgraphicssystem_qws_p.h ../gui/painting/qgraphicssystem_raster_p.h ../gui/painting/qgraphicssystem_runtime_p.h ../gui/painting/qgraphicssystemfactory_p.h ../gui/painting/qgraphicssystemplugin_p.h ../gui/painting/qgrayraster_p.h ../gui/painting/qimagescale_p.h ../gui/painting/qmath_p.h ../gui/painting/qmemrotate_p.h ../gui/painting/qoutlinemapper_p.h ../gui/painting/qpaintbuffer_p.h ../gui/painting/qpaintengine_alpha_p.h ../gui/painting/qpaintengine_mac_p.h ../gui/painting/qpaintengine_p.h ../gui/painting/qpaintengine_preview_p.h ../gui/painting/qpaintengine_raster_p.h ../gui/painting/qpaintengine_s60_p.h ../gui/painting/qpaintengine_x11_p.h ../gui/painting/qpaintengineex_p.h ../gui/painting/qpainter_p.h ../gui/painting/qpainterpath_p.h ../gui/painting/qpathclipper_p.h ../gui/painting/qpdf_p.h ../gui/painting/qpen_p.h ../gui/painting/qpolygonclipper_p.h ../gui/painting/qprintengine_mac_p.h ../gui/painting/qprintengine_pdf_p.h ../gui/painting/qprintengine_ps_p.h ../gui/painting/qprintengine_qws_p.h ../gui/painting/qprintengine_win_p.h ../gui/painting/qprinter_p.h ../gui/painting/qprinterinfo_unix_p.h ../gui/painting/qrasterdefs_p.h ../gui/painting/qrasterizer_p.h ../gui/painting/qstroker_p.h ../gui/painting/qtessellator_p.h ../gui/painting/qtextureglyphcache_p.h ../gui/painting/qvectorpath_p.h ../gui/painting/qwindowsurface_mac_p.h ../gui/painting/qwindowsurface_p.h ../gui/painting/qwindowsurface_qws_p.h ../gui/painting/qwindowsurface_raster_p.h ../gui/painting/qwindowsurface_s60_p.h ../gui/painting/qwindowsurface_x11_p.h ++SYNCQT.HEADER_FILES = ../gui/dialogs/qabstractpagesetupdialog.h ../gui/dialogs/qabstractprintdialog.h ../gui/dialogs/qcolordialog.h ../gui/dialogs/qdialog.h ../gui/dialogs/qerrormessage.h ../gui/dialogs/qfiledialog.h ../gui/dialogs/qfilesystemmodel.h ../gui/dialogs/qfontdialog.h ../gui/dialogs/qinputdialog.h ../gui/dialogs/qmessagebox.h ../gui/dialogs/qpagesetupdialog.h ../gui/dialogs/qprintdialog.h ../gui/dialogs/qprintpreviewdialog.h ../gui/dialogs/qprogressdialog.h ../gui/dialogs/qwizard.h ../gui/embedded/qcopchannel_qws.h ../gui/embedded/qdecoration_qws.h ../gui/embedded/qdecorationdefault_qws.h ../gui/embedded/qdecorationfactory_qws.h ../gui/embedded/qdecorationplugin_qws.h ../gui/embedded/qdecorationstyled_qws.h ../gui/embedded/qdecorationwindows_qws.h ../gui/embedded/qdirectpainter_qws.h ../gui/embedded/qkbd_qws.h ../gui/embedded/qkbddriverfactory_qws.h ../gui/embedded/qkbddriverplugin_qws.h ../gui/embedded/qkbdlinuxinput_qws.h ../gui/embedded/qkbdqnx_qws.h ../gui/embedded/qkbdtty_qws.h ../gui/embedded/qkbdum_qws.h ../gui/embedded/qkbdvfb_qws.h ../gui/embedded/qmouse_qws.h ../gui/embedded/qmousedriverfactory_qws.h ../gui/embedded/qmousedriverplugin_qws.h ../gui/embedded/qmouselinuxinput_qws.h ../gui/embedded/qmouselinuxtp_qws.h ../gui/embedded/qmousepc_qws.h ../gui/embedded/qmouseqnx_qws.h ../gui/embedded/qmousetslib_qws.h ../gui/embedded/qmousevfb_qws.h ../gui/embedded/qscreen_qws.h ../gui/embedded/qscreendriverfactory_qws.h ../gui/embedded/qscreendriverplugin_qws.h ../gui/embedded/qscreenlinuxfb_qws.h ../gui/embedded/qscreenproxy_qws.h ../gui/embedded/qscreenqnx_qws.h ../gui/embedded/qscreentransformed_qws.h ../gui/embedded/qscreenvfb_qws.h ../gui/embedded/qsoundqss_qws.h ../gui/embedded/qtransportauth_qws.h ../gui/embedded/qtransportauthdefs_qws.h ../gui/embedded/qvfbhdr.h ../gui/embedded/qwindowsystem_qws.h ../gui/embedded/qwscursor_qws.h ../gui/embedded/qwsdisplay_qws.h ../gui/embedded/qwsembedwidget.h ../gui/embedded/qwsevent_qws.h ../gui/embedded/qwsmanager_qws.h ../gui/embedded/qwsproperty_qws.h ../gui/embedded/qwsprotocolitem_qws.h ../gui/embedded/qwssocket_qws.h ../gui/embedded/qwsutils_qws.h ../gui/graphicsview/qgraphicsanchorlayout.h ../gui/graphicsview/qgraphicsgridlayout.h ../gui/graphicsview/qgraphicsitem.h ../gui/graphicsview/qgraphicsitemanimation.h ../gui/graphicsview/qgraphicslayout.h ../gui/graphicsview/qgraphicslayoutitem.h ../gui/graphicsview/qgraphicslinearlayout.h ../gui/graphicsview/qgraphicsproxywidget.h ../gui/graphicsview/qgraphicsscene.h ../gui/graphicsview/qgraphicssceneevent.h ../gui/graphicsview/qgraphicstransform.h ../gui/graphicsview/qgraphicsview.h ../gui/graphicsview/qgraphicswidget.h ../gui/kernel/qaction.h ../gui/kernel/qactiongroup.h ../gui/kernel/qapplication.h ../gui/kernel/qboxlayout.h ../gui/kernel/qclipboard.h ../gui/kernel/qcursor.h ../gui/kernel/qdesktopwidget.h ../gui/kernel/qdrag.h ../gui/kernel/qevent.h ../gui/kernel/qformlayout.h ../gui/kernel/qgesture.h ../gui/kernel/qgesturerecognizer.h ../gui/kernel/qgridlayout.h ../gui/kernel/qguifunctions_wince.h ../gui/kernel/qkeysequence.h ../gui/kernel/qlayout.h ../gui/kernel/qlayoutitem.h ../gui/kernel/qmacdefines_mac.h ../gui/kernel/qmime.h ../gui/kernel/qpalette.h ../gui/kernel/qsessionmanager.h ../gui/kernel/qshortcut.h ../gui/kernel/qsizepolicy.h ../gui/kernel/qsound.h ../gui/kernel/qstackedlayout.h ../gui/kernel/qtooltip.h ../gui/kernel/qwhatsthis.h ../gui/kernel/qwidget.h ../gui/kernel/qwidgetaction.h ../gui/kernel/qwindowdefs.h ../gui/kernel/qwindowdefs_win.h ../gui/kernel/qx11embed_x11.h ../gui/kernel/qx11info_x11.h ../gui/effects/qgraphicseffect.h ../gui/s60framework/qs60mainapplication.h ../gui/s60framework/qs60mainappui.h ../gui/s60framework/qs60maindocument.h ../gui/math3d/qgenericmatrix.h ../gui/math3d/qmatrix4x4.h ../gui/math3d/qquaternion.h ../gui/math3d/qvector2d.h ../gui/math3d/qvector3d.h ../gui/math3d/qvector4d.h ../gui/image/qbitmap.h ../gui/image/qicon.h ../gui/image/qiconengine.h ../gui/image/qiconengineplugin.h ../gui/image/qimage.h ../gui/image/qimageiohandler.h ../gui/image/qimagereader.h ../gui/image/qimagewriter.h ../gui/image/qmovie.h ../gui/image/qpicture.h ../gui/image/qpictureformatplugin.h ../gui/image/qpixmap.h ../gui/image/qpixmapcache.h ../gui/symbian/qsymbianevent.h ../gui/text/qabstractfontengine_qws.h ../gui/text/qabstracttextdocumentlayout.h ../gui/text/qfont.h ../gui/text/qfontdatabase.h ../gui/text/qfontinfo.h ../gui/text/qfontmetrics.h ../gui/text/qstatictext.h ../gui/text/qsyntaxhighlighter.h ../gui/text/qtextcursor.h ../gui/text/qtextdocument.h ../gui/text/qtextdocumentfragment.h ../gui/text/qtextdocumentwriter.h ../gui/text/qtextformat.h ../gui/text/qtextlayout.h ../gui/text/qtextlist.h ../gui/text/qtextobject.h ../gui/text/qtextoption.h ../gui/text/qtexttable.h ../gui/itemviews/qabstractitemdelegate.h ../gui/itemviews/qabstractitemview.h ../gui/itemviews/qabstractproxymodel.h ../gui/itemviews/qcolumnview.h ../gui/itemviews/qdatawidgetmapper.h ../gui/itemviews/qdirmodel.h ../gui/itemviews/qfileiconprovider.h ../gui/itemviews/qheaderview.h ../gui/itemviews/qitemdelegate.h ../gui/itemviews/qitemeditorfactory.h ../gui/itemviews/qitemselectionmodel.h ../gui/itemviews/qlistview.h ../gui/itemviews/qlistwidget.h ../gui/itemviews/qproxymodel.h ../gui/itemviews/qsortfilterproxymodel.h ../gui/itemviews/qstandarditemmodel.h ../gui/itemviews/qstringlistmodel.h ../gui/itemviews/qstyleditemdelegate.h ../gui/itemviews/qtableview.h ../gui/itemviews/qtablewidget.h ../gui/itemviews/qtreeview.h ../gui/itemviews/qtreewidget.h ../gui/itemviews/qtreewidgetitemiterator.h ../gui/widgets/qabstractbutton.h ../gui/widgets/qabstractscrollarea.h ../gui/widgets/qabstractslider.h ../gui/widgets/qabstractspinbox.h ../gui/widgets/qbuttongroup.h ../gui/widgets/qcalendarwidget.h ../gui/widgets/qcheckbox.h ../gui/widgets/qcombobox.h ../gui/widgets/qcommandlinkbutton.h ../gui/widgets/qdatetimeedit.h ../gui/widgets/qdial.h ../gui/widgets/qdialogbuttonbox.h ../gui/widgets/qdockwidget.h ../gui/widgets/qfocusframe.h ../gui/widgets/qfontcombobox.h ../gui/widgets/qframe.h ../gui/widgets/qgroupbox.h ../gui/widgets/qlabel.h ../gui/widgets/qlcdnumber.h ../gui/widgets/qlineedit.h ../gui/widgets/qmaccocoaviewcontainer_mac.h ../gui/widgets/qmacnativewidget_mac.h ../gui/widgets/qmainwindow.h ../gui/widgets/qmdiarea.h ../gui/widgets/qmdisubwindow.h ../gui/widgets/qmenu.h ../gui/widgets/qmenubar.h ../gui/widgets/qmenudata.h ../gui/widgets/qplaintextedit.h ../gui/widgets/qprintpreviewwidget.h ../gui/widgets/qprogressbar.h ../gui/widgets/qpushbutton.h ../gui/widgets/qradiobutton.h ../gui/widgets/qrubberband.h ../gui/widgets/qscrollarea.h ../gui/widgets/qscrollbar.h ../gui/widgets/qsizegrip.h ../gui/widgets/qslider.h ../gui/widgets/qspinbox.h ../gui/widgets/qsplashscreen.h ../gui/widgets/qsplitter.h ../gui/widgets/qstackedwidget.h ../gui/widgets/qstatusbar.h ../gui/widgets/qtabbar.h ../gui/widgets/qtabwidget.h ../gui/widgets/qtextbrowser.h ../gui/widgets/qtextedit.h ../gui/widgets/qtoolbar.h ../gui/widgets/qtoolbox.h ../gui/widgets/qtoolbutton.h ../gui/widgets/qvalidator.h ../gui/widgets/qworkspace.h ../gui/statemachine/qkeyeventtransition.h ../gui/statemachine/qmouseeventtransition.h ../gui/util/qcompleter.h ../gui/util/qdesktopservices.h ../gui/util/qsystemtrayicon.h ../gui/util/qundogroup.h ../gui/util/qundostack.h ../gui/util/qundoview.h ../gui/accessible/qaccessible.h ../gui/accessible/qaccessible2.h ../gui/accessible/qaccessiblebridge.h ../gui/accessible/qaccessibleobject.h ../gui/accessible/qaccessibleplugin.h ../gui/accessible/qaccessiblewidget.h ../gui/styles/qcdestyle.h ../gui/styles/qcleanlooksstyle.h ../gui/styles/qcommonstyle.h ../gui/styles/qgtkstyle.h ../gui/styles/qmacstyle_mac.h ../gui/styles/qmotifstyle.h ../gui/styles/qplastiquestyle.h ../gui/styles/qproxystyle.h ../gui/styles/qs60style.h ../gui/styles/qstyle.h ../gui/styles/qstylefactory.h ../gui/styles/qstyleoption.h ../gui/styles/qstyleplugin.h ../gui/styles/qwindowscestyle.h ../gui/styles/qwindowsmobilestyle.h ../gui/styles/qwindowsstyle.h ../gui/styles/qwindowsvistastyle.h ../gui/styles/qwindowsxpstyle.h ../gui/inputmethod/qinputcontext.h ../gui/inputmethod/qinputcontextfactory.h ../gui/inputmethod/qinputcontextplugin.h ../gui/painting/qbrush.h ../gui/painting/qcolor.h ../gui/painting/qcolormap.h ../gui/painting/qdrawutil.h ../gui/painting/qmatrix.h ../gui/painting/qpaintdevice.h ../gui/painting/qpaintengine.h ../gui/painting/qpainter.h ../gui/painting/qpainterpath.h ../gui/painting/qpen.h ../gui/painting/qpolygon.h ../gui/painting/qprintengine.h ../gui/painting/qprinter.h ../gui/painting/qprinterinfo.h ../gui/painting/qregion.h ../gui/painting/qrgb.h ../gui/painting/qstylepainter.h ../gui/painting/qtransform.h ../gui/painting/qwmatrix.h ../../include/QtGui/QtGui ../gui/kernel/qwindowdefs_haiku.h ../gui/kernel/qwidget_haiku.h ../gui/util/qsystemtrayicon_haiku.h ++SYNCQT.HEADER_CLASSES = ../../include/QtGui/QAbstractPageSetupDialog ../../include/QtGui/QAbstractPrintDialog ../../include/QtGui/QColorDialog ../../include/QtGui/QDialog ../../include/QtGui/QErrorMessage ../../include/QtGui/QFileDialog ../../include/QtGui/QFileSystemModel ../../include/QtGui/QFontDialog ../../include/QtGui/QInputDialog ../../include/QtGui/QMessageBox ../../include/QtGui/QPageSetupDialog ../../include/QtGui/QUnixPrintWidget ../../include/QtGui/QPrintDialog ../../include/QtGui/QPrintPreviewDialog ../../include/QtGui/QProgressDialog ../../include/QtGui/QWizard ../../include/QtGui/QWizardPage ../../include/QtGui/QCopChannel ../../include/QtGui/QDecorationAction ../../include/QtGui/QDecoration ../../include/QtGui/QDecorationDefault ../../include/QtGui/QDecorationFactory ../../include/QtGui/QDecorationFactoryInterface ../../include/QtGui/QDecorationPlugin ../../include/QtGui/QDecorationStyled ../../include/QtGui/QDecorationWindows ../../include/QtGui/QDirectPainter ../../include/QtGui/QWSKeyboardHandler ../../include/QtGui/QKbdDriverFactory ../../include/QtGui/QWSKeyboardHandlerFactoryInterface ../../include/QtGui/QKbdDriverPlugin ../../include/QtGui/QWSLinuxInputKeyboardHandler ../../include/QtGui/QWSQnxKeyboardHandler ../../include/QtGui/QWSTtyKeyboardHandler ../../include/QtGui/QWSUmKeyboardHandler ../../include/QtGui/QVFbKeyboardHandler ../../include/QtGui/QWSPointerCalibrationData ../../include/QtGui/QWSMouseHandler ../../include/QtGui/QWSCalibratedMouseHandler ../../include/QtGui/QMouseDriverFactory ../../include/QtGui/QWSMouseHandlerFactoryInterface ../../include/QtGui/QMouseDriverPlugin ../../include/QtGui/QWSLinuxInputMouseHandler ../../include/QtGui/QWSLinuxTPMouseHandler ../../include/QtGui/QWSPcMouseHandler ../../include/QtGui/QQnxMouseHandler ../../include/QtGui/QWSTslibMouseHandler ../../include/QtGui/QVFbMouseHandler ../../include/QtGui/QScreenCursor ../../include/QtGui/QPoolEntry ../../include/QtGui/QScreen ../../include/QtGui/QScreenDriverFactory ../../include/QtGui/QScreenDriverFactoryInterface ../../include/QtGui/QScreenDriverPlugin ../../include/QtGui/QLinuxFb_Shared ../../include/QtGui/QLinuxFbScreen ../../include/QtGui/QProxyScreenCursor ../../include/QtGui/QProxyScreen ../../include/QtGui/QQnxScreen ../../include/QtGui/QTransformedScreen ../../include/QtGui/QVFbScreen ../../include/QtGui/QWSSoundServer ../../include/QtGui/QWSSoundClient ../../include/QtGui/QWSSoundServerSocket ../../include/QtGui/QTransportAuth ../../include/QtGui/QAuthDevice ../../include/QtGui/QVFbHeader ../../include/QtGui/QVFbKeyData ../../include/QtGui/QWSInternalWindowInfo ../../include/QtGui/QWSScreenSaver ../../include/QtGui/QWSWindow ../../include/QtGui/QWSServer ../../include/QtGui/QWSInputMethod ../../include/QtGui/QWSCursorMap ../../include/QtGui/QWSClient ../../include/QtGui/QWSCursor ../../include/QtGui/QWSWindowInfo ../../include/QtGui/QWSDisplay ../../include/QtGui/QWSEmbedWidget ../../include/QtGui/QWSEvent ../../include/QtGui/QWSManager ../../include/QtGui/QWSPropertyManager ../../include/QtGui/QWSProtocolItem ../../include/QtGui/QWSSocket ../../include/QtGui/QWSServerSocket ../../include/QtGui/QGraphicsAnchor ../../include/QtGui/QGraphicsAnchorLayout ../../include/QtGui/QGraphicsGridLayout ../../include/QtGui/QGraphicsItem ../../include/QtGui/QGraphicsObject ../../include/QtGui/QAbstractGraphicsShapeItem ../../include/QtGui/QGraphicsPathItem ../../include/QtGui/QGraphicsRectItem ../../include/QtGui/QGraphicsEllipseItem ../../include/QtGui/QGraphicsPolygonItem ../../include/QtGui/QGraphicsLineItem ../../include/QtGui/QGraphicsPixmapItem ../../include/QtGui/QGraphicsTextItem ../../include/QtGui/QGraphicsSimpleTextItem ../../include/QtGui/QGraphicsItemGroup ../../include/QtGui/QGraphicsItemAnimation ../../include/QtGui/QGraphicsLayout ../../include/QtGui/QGraphicsLayoutItem ../../include/QtGui/QGraphicsLinearLayout ../../include/QtGui/QGraphicsProxyWidget ../../include/QtGui/QGraphicsScene ../../include/QtGui/QGraphicsSceneEvent ../../include/QtGui/QGraphicsSceneMouseEvent ../../include/QtGui/QGraphicsSceneWheelEvent ../../include/QtGui/QGraphicsSceneContextMenuEvent ../../include/QtGui/QGraphicsSceneHoverEvent ../../include/QtGui/QGraphicsSceneHelpEvent ../../include/QtGui/QGraphicsSceneDragDropEvent ../../include/QtGui/QGraphicsSceneResizeEvent ../../include/QtGui/QGraphicsSceneMoveEvent ../../include/QtGui/QGraphicsTransform ../../include/QtGui/QGraphicsScale ../../include/QtGui/QGraphicsRotation ../../include/QtGui/QGraphicsView ../../include/QtGui/QGraphicsWidget ../../include/QtGui/QAction ../../include/QtGui/QActionGroup ../../include/QtGui/QApplication ../../include/QtGui/QBoxLayout ../../include/QtGui/QHBoxLayout ../../include/QtGui/QVBoxLayout ../../include/QtGui/QClipboard ../../include/QtGui/QCursor ../../include/QtGui/QCursorShape ../../include/QtGui/QDesktopWidget ../../include/QtGui/QDrag ../../include/QtGui/QtEvents ../../include/QtGui/QInputEvent ../../include/QtGui/QMouseEvent ../../include/QtGui/QHoverEvent ../../include/QtGui/QWheelEvent ../../include/QtGui/QTabletEvent ../../include/QtGui/QKeyEvent ../../include/QtGui/QFocusEvent ../../include/QtGui/QPaintEvent ../../include/QtGui/QUpdateLaterEvent ../../include/QtGui/QMoveEvent ../../include/QtGui/QResizeEvent ../../include/QtGui/QCloseEvent ../../include/QtGui/QIconDragEvent ../../include/QtGui/QShowEvent ../../include/QtGui/QHideEvent ../../include/QtGui/QContextMenuEvent ../../include/QtGui/QInputMethodEvent ../../include/QtGui/QDropEvent ../../include/QtGui/QDragMoveEvent ../../include/QtGui/QDragEnterEvent ../../include/QtGui/QDragResponseEvent ../../include/QtGui/QDragLeaveEvent ../../include/QtGui/QHelpEvent ../../include/QtGui/QStatusTipEvent ../../include/QtGui/QWhatsThisClickedEvent ../../include/QtGui/QActionEvent ../../include/QtGui/QFileOpenEvent ../../include/QtGui/QToolBarChangeEvent ../../include/QtGui/QShortcutEvent ../../include/QtGui/QClipboardEvent ../../include/QtGui/QWindowStateChangeEvent ../../include/QtGui/QMenubarUpdatedEvent ../../include/QtGui/QTouchEvent ../../include/QtGui/QGestureEvent ../../include/QtGui/QFormLayout ../../include/QtGui/QGesture ../../include/QtGui/QPanGesture ../../include/QtGui/QPinchGesture ../../include/QtGui/QSwipeGesture ../../include/QtGui/QTapGesture ../../include/QtGui/QTapAndHoldGesture ../../include/QtGui/QGestureRecognizer ../../include/QtGui/QGridLayout ../../include/QtGui/QKeySequence ../../include/QtGui/QLayoutIterator ../../include/QtGui/QLayout ../../include/QtGui/QLayoutItem ../../include/QtGui/QSpacerItem ../../include/QtGui/QWidgetItem ../../include/QtGui/QWidgetItemV2 ../../include/QtGui/QMimeSource ../../include/QtGui/QWindowsMime ../../include/QtGui/QMacMime ../../include/QtGui/QMacPasteboardMime ../../include/QtGui/QPalette ../../include/QtGui/QColorGroup ../../include/QtGui/QSessionManager ../../include/QtGui/QShortcut ../../include/QtGui/QSizePolicy ../../include/QtGui/QSound ../../include/QtGui/QStackedLayout ../../include/QtGui/QToolTip ../../include/QtGui/QWhatsThis ../../include/QtGui/QWidgetData ../../include/QtGui/QWidget ../../include/QtGui/QWidgetAction ../../include/QtGui/QWidgetList ../../include/QtGui/QWidgetMapper ../../include/QtGui/QWidgetSet ../../include/QtGui/QX11EmbedWidget ../../include/QtGui/QX11EmbedContainer ../../include/QtGui/QX11Info ../../include/QtGui/QGraphicsEffect ../../include/QtGui/QGraphicsColorizeEffect ../../include/QtGui/QGraphicsBlurEffect ../../include/QtGui/QGraphicsDropShadowEffect ../../include/QtGui/QGraphicsOpacityEffect ../../include/QtGui/QS60MainApplicationBase ../../include/QtGui/QS60MainApplication ../../include/QtGui/QS60MainAppUiBase ../../include/QtGui/QS60StubAknAppUiBase ../../include/QtGui/QS60StubMEikStatusPaneObserver ../../include/QtGui/QS60StubMAknTouchPaneObserver ../../include/QtGui/QS60StubAknAppUi ../../include/QtGui/QS60MainAppUi ../../include/QtGui/QS60MainDocumentBase ../../include/QtGui/QS60MainDocument ../../include/QtGui/QGenericMatrix ../../include/QtGui/QMatrix2x2 ../../include/QtGui/QMatrix2x3 ../../include/QtGui/QMatrix2x4 ../../include/QtGui/QMatrix3x2 ../../include/QtGui/QMatrix3x3 ../../include/QtGui/QMatrix3x4 ../../include/QtGui/QMatrix4x2 ../../include/QtGui/QMatrix4x3 ../../include/QtGui/QMatrix4x4 ../../include/QtGui/QQuaternion ../../include/QtGui/QVector2D ../../include/QtGui/QVector3D ../../include/QtGui/QVector4D ../../include/QtGui/QBitmap ../../include/QtGui/QIcon ../../include/QtGui/QIconSet ../../include/QtGui/QIconEngine ../../include/QtGui/QIconEngineV2 ../../include/QtGui/QIconEngineFactoryInterface ../../include/QtGui/QIconEnginePlugin ../../include/QtGui/QIconEngineFactoryInterfaceV2 ../../include/QtGui/QIconEnginePluginV2 ../../include/QtGui/QImageTextKeyLang ../../include/QtGui/QImage ../../include/QtGui/QImageIOHandler ../../include/QtGui/QImageIOHandlerFactoryInterface ../../include/QtGui/QImageIOPlugin ../../include/QtGui/QImageReader ../../include/QtGui/QImageWriter ../../include/QtGui/QMovie ../../include/QtGui/QPicture ../../include/QtGui/QPictureIO ../../include/QtGui/QPictureFormatInterface ../../include/QtGui/QPictureFormatPlugin ../../include/QtGui/QPixmap ../../include/QtGui/QPixmapCache ../../include/QtGui/QSymbianEvent ../../include/QtGui/QFontEngineInfo ../../include/QtGui/QFontEngineFactoryInterface ../../include/QtGui/QFontEnginePlugin ../../include/QtGui/QAbstractFontEngine ../../include/QtGui/QAbstractTextDocumentLayout ../../include/QtGui/QTextObjectInterface ../../include/QtGui/QFont ../../include/QtGui/QFontDatabase ../../include/QtGui/QFontInfo ../../include/QtGui/QFontMetrics ../../include/QtGui/QFontMetricsF ../../include/QtGui/QStaticText ../../include/QtGui/QSyntaxHighlighter ../../include/QtGui/QTextCursor ../../include/QtGui/QAbstractUndoItem ../../include/QtGui/QTextDocument ../../include/QtGui/QTextDocumentFragment ../../include/QtGui/QTextDocumentWriter ../../include/QtGui/QTextLength ../../include/QtGui/QTextFormat ../../include/QtGui/QTextCharFormat ../../include/QtGui/QTextBlockFormat ../../include/QtGui/QTextListFormat ../../include/QtGui/QTextImageFormat ../../include/QtGui/QTextFrameFormat ../../include/QtGui/QTextTableFormat ../../include/QtGui/QTextTableCellFormat ../../include/QtGui/QTextInlineObject ../../include/QtGui/QTextLayout ../../include/QtGui/QTextLine ../../include/QtGui/QTextList ../../include/QtGui/QTextObject ../../include/QtGui/QTextBlockGroup ../../include/QtGui/QTextFrameLayoutData ../../include/QtGui/QTextFrame ../../include/QtGui/QTextBlockUserData ../../include/QtGui/QTextBlock ../../include/QtGui/QTextFragment ../../include/QtGui/QTextOption ../../include/QtGui/QTextTableCell ../../include/QtGui/QTextTable ../../include/QtGui/QAbstractItemDelegate ../../include/QtGui/QAbstractItemView ../../include/QtGui/QAbstractProxyModel ../../include/QtGui/QColumnView ../../include/QtGui/QDataWidgetMapper ../../include/QtGui/QDirModel ../../include/QtGui/QFileIconProvider ../../include/QtGui/QHeaderView ../../include/QtGui/QItemDelegate ../../include/QtGui/QItemEditorCreatorBase ../../include/QtGui/QItemEditorCreator ../../include/QtGui/QStandardItemEditorCreator ../../include/QtGui/QItemEditorFactory ../../include/QtGui/QItemSelectionRange ../../include/QtGui/QItemSelectionModel ../../include/QtGui/QItemSelection ../../include/QtGui/QListView ../../include/QtGui/QListWidgetItem ../../include/QtGui/QListWidget ../../include/QtGui/QProxyModel ../../include/QtGui/QSortFilterProxyModel ../../include/QtGui/QStandardItem ../../include/QtGui/QStandardItemModel ../../include/QtGui/QStringListModel ../../include/QtGui/QStyledItemDelegate ../../include/QtGui/QTableView ../../include/QtGui/QTableWidgetSelectionRange ../../include/QtGui/QTableWidgetItem ../../include/QtGui/QTableWidget ../../include/QtGui/QTreeView ../../include/QtGui/QTreeWidgetItem ../../include/QtGui/QTreeWidget ../../include/QtGui/QTreeWidgetItemIterator ../../include/QtGui/QAbstractButton ../../include/QtGui/QAbstractScrollArea ../../include/QtGui/QAbstractSlider ../../include/QtGui/QAbstractSpinBox ../../include/QtGui/QButtonGroup ../../include/QtGui/QCalendarWidget ../../include/QtGui/QCheckBox ../../include/QtGui/QComboBox ../../include/QtGui/QCommandLinkButton ../../include/QtGui/QDateTimeEdit ../../include/QtGui/QTimeEdit ../../include/QtGui/QDateEdit ../../include/QtGui/QDial ../../include/QtGui/QDialogButtonBox ../../include/QtGui/QDockWidget ../../include/QtGui/QFocusFrame ../../include/QtGui/QFontComboBox ../../include/QtGui/QFrame ../../include/QtGui/QGroupBox ../../include/QtGui/QLabel ../../include/QtGui/QLCDNumber ../../include/QtGui/QLineEdit ../../include/QtGui/QMacCocoaViewContainer ../../include/QtGui/QMacNativeWidget ../../include/QtGui/QMainWindow ../../include/QtGui/QMdiArea ../../include/QtGui/QMdiSubWindow ../../include/QtGui/QMenu ../../include/QtGui/QMenuBar ../../include/QtGui/QMenuItem ../../include/QtGui/QPlainTextEdit ../../include/QtGui/QPlainTextDocumentLayout ../../include/QtGui/QPrintPreviewWidget ../../include/QtGui/QProgressBar ../../include/QtGui/QPushButton ../../include/QtGui/QRadioButton ../../include/QtGui/QRubberBand ../../include/QtGui/QScrollArea ../../include/QtGui/QScrollBar ../../include/QtGui/QSizeGrip ../../include/QtGui/QSlider ../../include/QtGui/QSpinBox ../../include/QtGui/QDoubleSpinBox ../../include/QtGui/QSplashScreen ../../include/QtGui/QSplitter ../../include/QtGui/QSplitterHandle ../../include/QtGui/QStackedWidget ../../include/QtGui/QStatusBar ../../include/QtGui/QTabBar ../../include/QtGui/QTabWidget ../../include/QtGui/QTextBrowser ../../include/QtGui/QTextEdit ../../include/QtGui/QToolBar ../../include/QtGui/QToolBox ../../include/QtGui/QToolButton ../../include/QtGui/QValidator ../../include/QtGui/QIntValidator ../../include/QtGui/QDoubleValidator ../../include/QtGui/QRegExpValidator ../../include/QtGui/QWorkspace ../../include/QtGui/QKeyEventTransition ../../include/QtGui/QMouseEventTransition ../../include/QtGui/QCompleter ../../include/QtGui/QDesktopServices ../../include/QtGui/QSystemTrayIcon ../../include/QtGui/QUndoGroup ../../include/QtGui/QUndoCommand ../../include/QtGui/QUndoStack ../../include/QtGui/QUndoView ../../include/QtGui/QAccessible ../../include/QtGui/QAccessibleInterface ../../include/QtGui/QAccessibleInterfaceEx ../../include/QtGui/QAccessibleEvent ../../include/QtGui/QAccessible2Interface ../../include/QtGui/QAccessibleTextInterface ../../include/QtGui/QAccessibleEditableTextInterface ../../include/QtGui/QAccessibleSimpleEditableTextInterface ../../include/QtGui/QAccessibleValueInterface ../../include/QtGui/QAccessibleTableInterface ../../include/QtGui/QAccessibleActionInterface ../../include/QtGui/QAccessibleImageInterface ../../include/QtGui/QAccessibleBridge ../../include/QtGui/QAccessibleBridgeFactoryInterface ../../include/QtGui/QAccessibleBridgePlugin ../../include/QtGui/QAccessibleObject ../../include/QtGui/QAccessibleObjectEx ../../include/QtGui/QAccessibleApplication ../../include/QtGui/QAccessibleFactoryInterface ../../include/QtGui/QAccessiblePlugin ../../include/QtGui/QAccessibleWidget ../../include/QtGui/QAccessibleWidgetEx ../../include/QtGui/QCDEStyle ../../include/QtGui/QCleanlooksStyle ../../include/QtGui/QCommonStyle ../../include/QtGui/QGtkStyle ../../include/QtGui/QMacStyle ../../include/QtGui/QMotifStyle ../../include/QtGui/QPlastiqueStyle ../../include/QtGui/QProxyStyle ../../include/QtGui/QS60Style ../../include/QtGui/QStyle ../../include/QtGui/QStyleFactory ../../include/QtGui/QStyleOption ../../include/QtGui/QStyleOptionFocusRect ../../include/QtGui/QStyleOptionFrame ../../include/QtGui/QStyleOptionFrameV2 ../../include/QtGui/QStyleOptionFrameV3 ../../include/QtGui/QStyleOptionTabWidgetFrame ../../include/QtGui/QStyleOptionTabWidgetFrameV2 ../../include/QtGui/QStyleOptionTabBarBase ../../include/QtGui/QStyleOptionTabBarBaseV2 ../../include/QtGui/QStyleOptionHeader ../../include/QtGui/QStyleOptionButton ../../include/QtGui/QStyleOptionTab ../../include/QtGui/QStyleOptionTabV2 ../../include/QtGui/QStyleOptionTabV3 ../../include/QtGui/QStyleOptionToolBar ../../include/QtGui/QStyleOptionProgressBar ../../include/QtGui/QStyleOptionProgressBarV2 ../../include/QtGui/QStyleOptionMenuItem ../../include/QtGui/QStyleOptionQ3ListViewItem ../../include/QtGui/QStyleOptionQ3DockWindow ../../include/QtGui/QStyleOptionDockWidget ../../include/QtGui/QStyleOptionDockWidgetV2 ../../include/QtGui/QStyleOptionViewItem ../../include/QtGui/QStyleOptionViewItemV2 ../../include/QtGui/QStyleOptionViewItemV3 ../../include/QtGui/QStyleOptionViewItemV4 ../../include/QtGui/QStyleOptionToolBox ../../include/QtGui/QStyleOptionToolBoxV2 ../../include/QtGui/QStyleOptionRubberBand ../../include/QtGui/QStyleOptionComplex ../../include/QtGui/QStyleOptionSlider ../../include/QtGui/QStyleOptionSpinBox ../../include/QtGui/QStyleOptionQ3ListView ../../include/QtGui/QStyleOptionToolButton ../../include/QtGui/QStyleOptionComboBox ../../include/QtGui/QStyleOptionTitleBar ../../include/QtGui/QStyleOptionGroupBox ../../include/QtGui/QStyleOptionSizeGrip ../../include/QtGui/QStyleOptionGraphicsItem ../../include/QtGui/QStyleHintReturn ../../include/QtGui/QStyleHintReturnMask ../../include/QtGui/QStyleHintReturnVariant ../../include/QtGui/QStyleFactoryInterface ../../include/QtGui/QStylePlugin ../../include/QtGui/QWindowsCEStyle ../../include/QtGui/QWindowsMobileStyle ../../include/QtGui/QWindowsStyle ../../include/QtGui/QWindowsVistaStyle ../../include/QtGui/QWindowsXPStyle ../../include/QtGui/QInputContext ../../include/QtGui/QInputContextFactory ../../include/QtGui/QInputContextFactoryInterface ../../include/QtGui/QInputContextPlugin ../../include/QtGui/QBrush ../../include/QtGui/QBrushData ../../include/QtGui/QGradientStop ../../include/QtGui/QGradientStops ../../include/QtGui/QGradient ../../include/QtGui/QLinearGradient ../../include/QtGui/QRadialGradient ../../include/QtGui/QConicalGradient ../../include/QtGui/QColor ../../include/QtGui/QColormap ../../include/QtGui/QTileRules ../../include/QtGui/QMatrix ../../include/QtGui/QPaintDevice ../../include/QtGui/QTextItem ../../include/QtGui/QPaintEngine ../../include/QtGui/QPaintEngineState ../../include/QtGui/QPainter ../../include/QtGui/QPainterPath ../../include/QtGui/QPainterPathPrivate ../../include/QtGui/QPainterPathStroker ../../include/QtGui/QPen ../../include/QtGui/QPolygon ../../include/QtGui/QPolygonF ../../include/QtGui/QPrintEngine ../../include/QtGui/QPrinter ../../include/QtGui/QPrinterInfo ../../include/QtGui/QRegion ../../include/QtGui/QRgb ../../include/QtGui/QStylePainter ../../include/QtGui/QTransform ../../include/QtGui/QWMatrix ../../include/QtGui/QHaikuStyle ../../include/QtGui/QtHaikuView ../../include/QtGui/QtHaikuWindow ++SYNCQT.PRIVATE_HEADER_FILES = ../gui/dialogs/qabstractpagesetupdialog_p.h ../gui/dialogs/qabstractprintdialog_p.h ../gui/dialogs/qcolordialog_p.h ../gui/dialogs/qdialog_p.h ../gui/dialogs/qfiledialog_p.h ../gui/dialogs/qfiledialog_win_p.h ../gui/dialogs/qfileinfogatherer_p.h ../gui/dialogs/qfilesystemmodel_p.h ../gui/dialogs/qfontdialog_p.h ../gui/dialogs/qfscompleter_p.h ../gui/dialogs/qpagesetupdialog_unix_p.h ../gui/dialogs/qsidebar_p.h ../gui/dialogs/qwizard_win_p.h ../gui/embedded/qkbd_defaultmap_qws_p.h ../gui/embedded/qkbd_qws_p.h ../gui/embedded/qlock_p.h ../gui/embedded/qscreenmulti_qws_p.h ../gui/embedded/qtransportauth_qws_p.h ../gui/embedded/qunixsocket_p.h ../gui/embedded/qunixsocketserver_p.h ../gui/embedded/qwindowsystem_p.h ../gui/embedded/qwscommand_qws_p.h ../gui/embedded/qwsdisplay_qws_p.h ../gui/embedded/qwslock_p.h ../gui/embedded/qwsmanager_p.h ../gui/embedded/qwssharedmemory_p.h ../gui/embedded/qwssignalhandler_p.h ../gui/graphicsview/qgraph_p.h ../gui/graphicsview/qgraphicsanchorlayout_p.h ../gui/graphicsview/qgraphicsitem_p.h ../gui/graphicsview/qgraphicslayout_p.h ../gui/graphicsview/qgraphicslayoutitem_p.h ../gui/graphicsview/qgraphicsproxywidget_p.h ../gui/graphicsview/qgraphicsscene_bsp_p.h ../gui/graphicsview/qgraphicsscene_p.h ../gui/graphicsview/qgraphicsscenebsptreeindex_p.h ../gui/graphicsview/qgraphicssceneindex_p.h ../gui/graphicsview/qgraphicsscenelinearindex_p.h ../gui/graphicsview/qgraphicstransform_p.h ../gui/graphicsview/qgraphicsview_p.h ../gui/graphicsview/qgraphicswidget_p.h ../gui/graphicsview/qgridlayoutengine_p.h ../gui/graphicsview/qsimplex_p.h ../gui/kernel/qaction_p.h ../gui/kernel/qapplication_p.h ../gui/kernel/qclipboard_p.h ../gui/kernel/qcocoaapplication_mac_p.h ../gui/kernel/qcocoaapplicationdelegate_mac_p.h ../gui/kernel/qcocoamenuloader_mac_p.h ../gui/kernel/qcocoapanel_mac_p.h ../gui/kernel/qcocoasharedwindowmethods_mac_p.h ../gui/kernel/qcocoaview_mac_p.h ../gui/kernel/qcocoawindow_mac_p.h ../gui/kernel/qcocoawindowcustomthemeframe_mac_p.h ../gui/kernel/qcocoawindowdelegate_mac_p.h ../gui/kernel/qcursor_p.h ../gui/kernel/qdesktopwidget_mac_p.h ../gui/kernel/qdnd_p.h ../gui/kernel/qevent_p.h ../gui/kernel/qeventdispatcher_glib_qws_p.h ../gui/kernel/qeventdispatcher_mac_p.h ../gui/kernel/qeventdispatcher_qws_p.h ../gui/kernel/qeventdispatcher_s60_p.h ../gui/kernel/qeventdispatcher_x11_p.h ../gui/kernel/qgesture_p.h ../gui/kernel/qgesturemanager_p.h ../gui/kernel/qguieventdispatcher_glib_p.h ../gui/kernel/qguiplatformplugin_p.h ../gui/kernel/qkde_p.h ../gui/kernel/qkeymapper_p.h ../gui/kernel/qkeysequence_p.h ../gui/kernel/qlayout_p.h ../gui/kernel/qlayoutengine_p.h ../gui/kernel/qmacgesturerecognizer_mac_p.h ../gui/kernel/qmultitouch_mac_p.h ../gui/kernel/qnsframeview_mac_p.h ../gui/kernel/qnsthemeframe_mac_p.h ../gui/kernel/qnstitledframe_mac_p.h ../gui/kernel/qshortcutmap_p.h ../gui/kernel/qsoftkeymanager_common_p.h ../gui/kernel/qsoftkeymanager_p.h ../gui/kernel/qsoftkeymanager_s60_p.h ../gui/kernel/qsound_p.h ../gui/kernel/qstandardgestures_p.h ../gui/kernel/qt_cocoa_helpers_mac_p.h ../gui/kernel/qt_gui_pch.h ../gui/kernel/qt_mac_p.h ../gui/kernel/qt_s60_p.h ../gui/kernel/qt_x11_p.h ../gui/kernel/qwidget_p.h ../gui/kernel/qwidgetaction_p.h ../gui/kernel/qwinnativepangesturerecognizer_win_p.h ../gui/effects/qgraphicseffect_p.h ../gui/s60framework/qs60mainapplication_p.h ../gui/image/qbmphandler_p.h ../gui/image/qgifhandler_p.h ../gui/image/qicon_p.h ../gui/image/qiconloader_p.h ../gui/image/qimage_p.h ../gui/image/qimagepixmapcleanuphooks_p.h ../gui/image/qjpeghandler_p.h ../gui/image/qmnghandler_p.h ../gui/image/qnativeimage_p.h ../gui/image/qpaintengine_pic_p.h ../gui/image/qpicture_p.h ../gui/image/qpixmap_mac_p.h ../gui/image/qpixmap_raster_p.h ../gui/image/qpixmap_s60_p.h ../gui/image/qpixmap_x11_p.h ../gui/image/qpixmapcache_p.h ../gui/image/qpixmapdata_p.h ../gui/image/qpixmapdatafactory_p.h ../gui/image/qpixmapfilter_p.h ../gui/image/qpnghandler_p.h ../gui/image/qppmhandler_p.h ../gui/image/qtiffhandler_p.h ../gui/image/qxbmhandler_p.h ../gui/image/qxpmhandler_p.h ../gui/text/qabstractfontengine_p.h ../gui/text/qabstracttextdocumentlayout_p.h ../gui/text/qcssparser_p.h ../gui/text/qfont_p.h ../gui/text/qfontengine_ft_p.h ../gui/text/qfontengine_p.h ../gui/text/qfontengine_qpf_p.h ../gui/text/qfontengine_s60_p.h ../gui/text/qfontengine_win_p.h ../gui/text/qfontengine_x11_p.h ../gui/text/qfontengineglyphcache_p.h ../gui/text/qfontsubset_p.h ../gui/text/qfragmentmap_p.h ../gui/text/qstatictext_p.h ../gui/text/qtextcontrol_p.h ../gui/text/qtextcontrol_p_p.h ../gui/text/qtextcursor_p.h ../gui/text/qtextdocument_p.h ../gui/text/qtextdocumentfragment_p.h ../gui/text/qtextdocumentlayout_p.h ../gui/text/qtextengine_p.h ../gui/text/qtextformat_p.h ../gui/text/qtexthtmlparser_p.h ../gui/text/qtextimagehandler_p.h ../gui/text/qtextobject_p.h ../gui/text/qtextodfwriter_p.h ../gui/text/qtexttable_p.h ../gui/text/qzipreader_p.h ../gui/text/qzipwriter_p.h ../gui/itemviews/qabstractitemview_p.h ../gui/itemviews/qabstractproxymodel_p.h ../gui/itemviews/qbsptree_p.h ../gui/itemviews/qcolumnview_p.h ../gui/itemviews/qcolumnviewgrip_p.h ../gui/itemviews/qheaderview_p.h ../gui/itemviews/qitemeditorfactory_p.h ../gui/itemviews/qitemselectionmodel_p.h ../gui/itemviews/qlistview_p.h ../gui/itemviews/qlistwidget_p.h ../gui/itemviews/qproxymodel_p.h ../gui/itemviews/qstandarditemmodel_p.h ../gui/itemviews/qtableview_p.h ../gui/itemviews/qtablewidget_p.h ../gui/itemviews/qtreeview_p.h ../gui/itemviews/qtreewidget_p.h ../gui/itemviews/qtreewidgetitemiterator_p.h ../gui/itemviews/qwidgetitemdata_p.h ../gui/widgets/qabstractbutton_p.h ../gui/widgets/qabstractscrollarea_p.h ../gui/widgets/qabstractslider_p.h ../gui/widgets/qabstractspinbox_p.h ../gui/widgets/qcalendartextnavigator_p.h ../gui/widgets/qcocoamenu_mac_p.h ../gui/widgets/qcocoatoolbardelegate_mac_p.h ../gui/widgets/qcombobox_p.h ../gui/widgets/qdatetimeedit_p.h ../gui/widgets/qdockarealayout_p.h ../gui/widgets/qdockwidget_p.h ../gui/widgets/qeffects_p.h ../gui/widgets/qframe_p.h ../gui/widgets/qlabel_p.h ../gui/widgets/qlinecontrol_p.h ../gui/widgets/qlineedit_p.h ../gui/widgets/qmainwindowlayout_p.h ../gui/widgets/qmdiarea_p.h ../gui/widgets/qmdisubwindow_p.h ../gui/widgets/qmenu_p.h ../gui/widgets/qmenu_wince_resource_p.h ../gui/widgets/qmenubar_p.h ../gui/widgets/qplaintextedit_p.h ../gui/widgets/qpushbutton_p.h ../gui/widgets/qscrollarea_p.h ../gui/widgets/qsplitter_p.h ../gui/widgets/qtabbar_p.h ../gui/widgets/qtextedit_p.h ../gui/widgets/qtoolbar_p.h ../gui/widgets/qtoolbararealayout_p.h ../gui/widgets/qtoolbarextension_p.h ../gui/widgets/qtoolbarlayout_p.h ../gui/widgets/qtoolbarseparator_p.h ../gui/widgets/qwidgetanimator_p.h ../gui/widgets/qwidgetresizehandler_p.h ../gui/statemachine/qbasickeyeventtransition_p.h ../gui/statemachine/qbasicmouseeventtransition_p.h ../gui/util/qcompleter_p.h ../gui/util/qsystemtrayicon_p.h ../gui/util/qundostack_p.h ../gui/accessible/qaccessible_mac_p.h ../gui/styles/qcleanlooksstyle_p.h ../gui/styles/qcommonstyle_p.h ../gui/styles/qcommonstylepixmaps_p.h ../gui/styles/qgtkpainter_p.h ../gui/styles/qgtkstyle_p.h ../gui/styles/qmacstyle_mac_p.h ../gui/styles/qmacstylepixmaps_mac_p.h ../gui/styles/qmotifstyle_p.h ../gui/styles/qproxystyle_p.h ../gui/styles/qs60style_p.h ../gui/styles/qstyle_p.h ../gui/styles/qstylehelper_p.h ../gui/styles/qstylesheetstyle_p.h ../gui/styles/qwindowscestyle_p.h ../gui/styles/qwindowsmobilestyle_p.h ../gui/styles/qwindowsstyle_p.h ../gui/styles/qwindowsvistastyle_p.h ../gui/styles/qwindowsxpstyle_p.h ../gui/egl/qegl_p.h ../gui/egl/qeglcontext_p.h ../gui/egl/qeglproperties_p.h ../gui/inputmethod/qcoefepinputcontext_p.h ../gui/inputmethod/qinputcontext_p.h ../gui/inputmethod/qmacinputcontext_p.h ../gui/inputmethod/qwininputcontext_p.h ../gui/inputmethod/qwsinputcontext_p.h ../gui/inputmethod/qximinputcontext_p.h ../gui/painting/qbackingstore_p.h ../gui/painting/qbezier_p.h ../gui/painting/qblendfunctions_p.h ../gui/painting/qcolor_p.h ../gui/painting/qcssutil_p.h ../gui/painting/qcups_p.h ../gui/painting/qdatabuffer_p.h ../gui/painting/qdrawhelper_arm_simd_p.h ../gui/painting/qdrawhelper_mmx_p.h ../gui/painting/qdrawhelper_neon_p.h ../gui/painting/qdrawhelper_p.h ../gui/painting/qdrawhelper_sse_p.h ../gui/painting/qdrawhelper_x86_p.h ../gui/painting/qdrawingprimitive_sse2_p.h ../gui/painting/qemulationpaintengine_p.h ../gui/painting/qfixed_p.h ../gui/painting/qgraphicssystem_mac_p.h ../gui/painting/qgraphicssystem_p.h ../gui/painting/qgraphicssystem_qws_p.h ../gui/painting/qgraphicssystem_raster_p.h ../gui/painting/qgraphicssystem_runtime_p.h ../gui/painting/qgraphicssystemfactory_p.h ../gui/painting/qgraphicssystemplugin_p.h ../gui/painting/qgrayraster_p.h ../gui/painting/qimagescale_p.h ../gui/painting/qmath_p.h ../gui/painting/qmemrotate_p.h ../gui/painting/qoutlinemapper_p.h ../gui/painting/qpaintbuffer_p.h ../gui/painting/qpaintengine_alpha_p.h ../gui/painting/qpaintengine_mac_p.h ../gui/painting/qpaintengine_p.h ../gui/painting/qpaintengine_preview_p.h ../gui/painting/qpaintengine_raster_p.h ../gui/painting/qpaintengine_s60_p.h ../gui/painting/qpaintengine_x11_p.h ../gui/painting/qpaintengineex_p.h ../gui/painting/qpainter_p.h ../gui/painting/qpainterpath_p.h ../gui/painting/qpathclipper_p.h ../gui/painting/qpdf_p.h ../gui/painting/qpen_p.h ../gui/painting/qpolygonclipper_p.h ../gui/painting/qprintengine_mac_p.h ../gui/painting/qprintengine_pdf_p.h ../gui/painting/qprintengine_ps_p.h ../gui/painting/qprintengine_qws_p.h ../gui/painting/qprintengine_win_p.h ../gui/painting/qprinter_p.h ../gui/painting/qprinterinfo_unix_p.h ../gui/painting/qrasterdefs_p.h ../gui/painting/qrasterizer_p.h ../gui/painting/qstroker_p.h ../gui/painting/qtessellator_p.h ../gui/painting/qtextureglyphcache_p.h ../gui/painting/qvectorpath_p.h ../gui/painting/qwindowsurface_mac_p.h ../gui/painting/qwindowsurface_p.h ../gui/painting/qwindowsurface_qws_p.h ../gui/painting/qwindowsurface_raster_p.h ../gui/painting/qwindowsurface_s60_p.h ../gui/painting/qwindowsurface_x11_p.h ../gui/image/qpixmap_haiku_p.h ../gui/styles/qhaikustyle_p.h ../gui/kernel/qeventdispatcher_haiku_p.h +diff -rupN qt-everywhere-opensource-src-4.7.3/include/QtGui/private/qeventdispatcher_haiku_p.h qt-everywhere-opensource-src-4.7.3_haiku/include/QtGui/private/qeventdispatcher_haiku_p.h +--- qt-everywhere-opensource-src-4.7.3/include/QtGui/private/qeventdispatcher_haiku_p.h 1970-01-01 00:00:00.000000000 +0000 ++++ qt-everywhere-opensource-src-4.7.3_haiku/include/QtGui/private/qeventdispatcher_haiku_p.h 2011-06-14 03:50:02.157024256 +0000 +@@ -0,0 +1 @@ ++#include "../../../src/gui/kernel/qeventdispatcher_haiku_p.h" +diff -rupN qt-everywhere-opensource-src-4.7.3/include/QtGui/private/qhaikustyle_p.h qt-everywhere-opensource-src-4.7.3_haiku/include/QtGui/private/qhaikustyle_p.h +--- qt-everywhere-opensource-src-4.7.3/include/QtGui/private/qhaikustyle_p.h 1970-01-01 00:00:00.000000000 +0000 ++++ qt-everywhere-opensource-src-4.7.3_haiku/include/QtGui/private/qhaikustyle_p.h 2011-06-14 03:49:44.729284608 +0000 +@@ -0,0 +1 @@ ++#include "../../../src/gui/styles/qhaikustyle_p.h" +diff -rupN qt-everywhere-opensource-src-4.7.3/include/QtGui/private/qpixmap_haiku_p.h qt-everywhere-opensource-src-4.7.3_haiku/include/QtGui/private/qpixmap_haiku_p.h +--- qt-everywhere-opensource-src-4.7.3/include/QtGui/private/qpixmap_haiku_p.h 1970-01-01 00:00:00.000000000 +0000 ++++ qt-everywhere-opensource-src-4.7.3_haiku/include/QtGui/private/qpixmap_haiku_p.h 2011-06-13 22:06:43.089653248 +0000 +@@ -0,0 +1 @@ ++#include "../../../src/gui/image/qpixmap_haiku_p.h" +diff -rupN qt-everywhere-opensource-src-4.7.3/include/QtGui/qhaikustyle.h qt-everywhere-opensource-src-4.7.3_haiku/include/QtGui/qhaikustyle.h +--- qt-everywhere-opensource-src-4.7.3/include/QtGui/qhaikustyle.h 1970-01-01 00:00:00.000000000 +0000 ++++ qt-everywhere-opensource-src-4.7.3_haiku/include/QtGui/qhaikustyle.h 2010-04-15 16:14:35.000000000 +0000 +@@ -0,0 +1 @@ ++#include "../../src/gui/styles/qhaikustyle.h" +diff -rupN qt-everywhere-opensource-src-4.7.3/include/QtGui/qsystemtrayicon_haiku.h qt-everywhere-opensource-src-4.7.3_haiku/include/QtGui/qsystemtrayicon_haiku.h +--- qt-everywhere-opensource-src-4.7.3/include/QtGui/qsystemtrayicon_haiku.h 1970-01-01 00:00:00.000000000 +0000 ++++ qt-everywhere-opensource-src-4.7.3_haiku/include/QtGui/qsystemtrayicon_haiku.h 2010-07-02 03:02:00.000000000 +0000 +@@ -0,0 +1 @@ ++#include "../../src/gui/util/qsystemtrayicon_haiku.h" +diff -rupN qt-everywhere-opensource-src-4.7.3/include/QtGui/qwidget_haiku.h qt-everywhere-opensource-src-4.7.3_haiku/include/QtGui/qwidget_haiku.h +--- qt-everywhere-opensource-src-4.7.3/include/QtGui/qwidget_haiku.h 1970-01-01 00:00:00.000000000 +0000 ++++ qt-everywhere-opensource-src-4.7.3_haiku/include/QtGui/qwidget_haiku.h 2010-11-09 02:20:07.000000000 +0000 +@@ -0,0 +1 @@ ++#include "../../src/gui/kernel/qwidget_haiku.h" +diff -rupN qt-everywhere-opensource-src-4.7.3/include/QtGui/qwindowdefs_haiku.h qt-everywhere-opensource-src-4.7.3_haiku/include/QtGui/qwindowdefs_haiku.h +--- qt-everywhere-opensource-src-4.7.3/include/QtGui/qwindowdefs_haiku.h 1970-01-01 00:00:00.000000000 +0000 ++++ qt-everywhere-opensource-src-4.7.3_haiku/include/QtGui/qwindowdefs_haiku.h 2011-06-13 22:06:43.090963968 +0000 +@@ -0,0 +1 @@ ++#include "../../src/gui/kernel/qwindowdefs_haiku.h" +diff -rupN qt-everywhere-opensource-src-4.7.3/makehaikupkg.sh qt-everywhere-opensource-src-4.7.3_haiku/makehaikupkg.sh +--- qt-everywhere-opensource-src-4.7.3/makehaikupkg.sh 1970-01-01 00:00:00.000000000 +0000 ++++ qt-everywhere-opensource-src-4.7.3_haiku/makehaikupkg.sh 2011-06-13 22:42:41.748945408 +0000 +@@ -0,0 +1,1853 @@ ++#!/bin/sh ++ ++QTROOT=../qtbuild ++QTROOT=`readlink -f $QTROOT` ++ ++###################################################################### ++echo "Install Qt into sandbox :$QTROOT" ++###################################################################### ++echo " Prepare" ++mkdir -p $QTROOT ++rm -rf $QTROOT/boot ++echo " Install Qt" ++INSTALL_ROOT=$QTROOT make install ++echo " Install documentation" ++INSTALL_ROOT=$QTROOT make install_qchdocs ++ ++###################################################################### ++echo "Remove debug info" ++###################################################################### ++echo " Delete *.debug files" ++find "$QTROOT/boot/common/" -name "*.debug" -delete ++echo " Strip debug info from *.so files" ++find "$QTROOT/boot/common/" -name "*.so*" -exec strip -s {} \; ++echo " Strip debug info from binary files" ++find "$QTROOT/boot/common/bin/" -name "*" -exec strip -s {} \; ++ ++###################################################################### ++echo "Make qsystray utility" ++###################################################################### ++echo " Make" ++cd ./src/3rdparty/haiku-tools/qsystray ++make ++echo " Install" ++cp -f ./qsystray $QTROOT/boot/common/bin ++cp -f ./qsystray_gcc2 $QTROOT/boot/common/bin ++mimeset -f $QTROOT/boot/common/bin/qsystray ++mimeset -f $QTROOT/boot/common/bin/qsystray_gcc2 ++ ++###################################################################### ++echo "Remove useless files" ++###################################################################### ++echo " HTML docs" ++rm -rf $QTROOT/boot/common/documentation/doc/Qt/html ++echo " Images" ++rm -rf $QTROOT/boot/common/documentation/doc/Qt/src ++ ++###################################################################### ++echo "Check for hybrid build" ++###################################################################### ++if [ -f /boot/system/lib/libsupc++.so ] ; then ++ echo "gcc4 build - install libs into /common/lib folder" ++else ++ echo "gcc2 build - install libs into /common/lib/gcc4 folder" ++ echo "Move pkgconfig files from lib/gcc4 to parent folder" ++ mkdir $QTROOT/boot/common/lib/pkgconfig ++ mv $QTROOT/boot/common/lib/gcc4/pkgconfig $QTROOT/boot/common/lib ++fi ++ ++###################################################################### ++echo "Add Resources for binaries" ++###################################################################### ++ ++###################################################################### ++echo " Qt Assistant" ++###################################################################### ++echo 'resource app_signature "application/x-vnd.assistant"; ++resource app_flags B_SINGLE_LAUNCH; ++resource app_version { ++ major = 4, ++ middle = 7, ++ minor = 0, ++ variety = 0, ++ internal = 0, ++ short_info = "Qt Assistant", ++ long_info = "Qt Assistant" ++}; ++resource vector_icon { ++ $"6E6369660A030062250380C34205FF04003303663333020106023DDD49000000" ++ $"0000003DDD4949EEA449EEA400B00000FF993300020106043DA9380000000000" ++ $"003DA93849EEA449EEA400FFFFFF2FFF93936CFF0000FFCF000004FF7F04FF66" ++ $"04614C1E060AEFE707B93AB30DB93AB30DB8EB20B852B302B89DB2FCB852B302" ++ $"B852B302B639B327B650B325B464B34D20B6E320B4CE20B6E3CF6BB50DD154C9" ++ $"ABCDDDC9ABCDDDCB16CD9ECC35CA23CC35CBF2CC35CA23B6290606EF0BCC35CA" ++ $"23CC35CA23CC35CBF2C9ABCDDDCB16CD9EC9ABCDDDB50DD154B50DB6C2B50DB6" ++ $"C2B50DB457B93AB30DB6FBB2AEB93AB30DCC35B62906149AF9FFFF99C5DBB9A3" ++ $"C785B9D1BCBDC965BCDFBEB4C785BE9EC785C551C785C551C785C5E6C7B7C671" ++ $"C796C646C7D4C699C840C6ACC803C6ACC846C6ACC853C6ACC84CC6ACC8B1C6A6" ++ $"C987C656C918C689C987C656C987C805C987C805C8C9C859C758C89AC80FC88B" ++ $"C73DC89CC70BC89DC723C89DC665C89DC58FC80CC5E6C86DC52AC79BC4F8C5ED" ++ $"C4F8C6E5C4F8C5EDBE80C412BE75BC7EC52ABC930A04C965BEB4C785BE9EC785" ++ $"BEA8C886BEB40205C7E9C69BC826C68CC802C6A7C840C6AC55C6ACC846C6ACC8" ++ $"53C6ACC84CC6ACC8B1C6A6C987C656C918C689C987C656C8A9C656C8A9C656C8" ++ $"65C675060D9FF1FE03C58FC80CC5E6C86DC52AC79BC4F8C5EDC4F8C6E5C4F8C5" ++ $"EDBE80C412BE75BC7EC333C333BCEFC333BCEFC353BD68C37FBE79C36CBDEBC3" ++ $"7FBE79C419BE80C419C5EDC419C5EDC419C6E5C4B1C80CC44CC79BC507C86DC6" ++ $"2CC89DC586C89DC62CC89DC70BC89DC70BC89DC665C89D0A04C5DBB9A3C4FCB9" ++ $"A3C450BC83C52ABC93000BC02DC624C02DC624C084C544C0AFC0FEC0AFC38DC0" ++ $"AFBEB2C02EBC40C085BD1EBFD8BB60BEA9BAD9BF57BAE8BE9CBAD8BE82BAD7BE" ++ $"8FBAD7BDE1BAD7BD0FBBF1BD66BB35BCB2BCBEBC83C0ECBC83BE68BC83C35ABD" ++ $"0DC617BCB1C514BD65C70EBE92C789BDE7C789BE9AC789BEA9C788BEA1C788BF" ++ $"55C77DC02DC624BFD6C706C02DC6240211C2C7C6AFC35DC54DC22EC817C008C9" ++ $"6FC146C902C028CA13C099CABCC0595BC0CBCAE9C17FCB00C118CB00C19DCB00" ++ $"C1DFCAFAC1BDCAFEC1DFCAFAC1DFCCE0C1DFCCE0C1DFCCE0C103CCFDC103CCFD" ++ $"C0C2CD05C049CD09C084CD09BF88CD09BE76CC7CBEECCCDBBDDBCBFFBD1EC9A9" ++ $"BD68CB0EBBCCC961BA0EC721BAC4C88AB955C5B2B8F6C0DDB8F6C39AB8F6BDE8" ++ $"BA75BA58B977BBBABB4BB92EBDEEB89BBC76B89BBE2BB89BBEA9B8A6BE69B89F" ++ $"C064B8D9C275BB14C1A4B9AAC342BC75C3A7C10BC3A7BE71C3A7C36D0203C17F" ++ $"CB00C162CB00C19DCB00C1DFCAFAC1BDCAFEC1DFCAFAC12CCAFAC12CCAFAC145" ++ $"CAFE020DBF44BC40BEFCBB85BF9BBD1EBFC5C0FEBFC5BEB2BFC5C38DBF43C624" ++ $"BF9AC544BEFDC6D9BE20C774BE9CC749BE44C782BE92C789BE6AC789BE9AC789" ++ $"BEA9C788BEA1C788BF55C77DC02DC624BFD6C706C084C544C0AFC0FEC0AFC38D" ++ $"C0AFBEB2C02EBC40C085BD1EBFD8BB60BEA9BAD9BF57BAE8BE9CBAD8BE82BAD7" ++ $"BE8FBAD7BE5ABAD7BE10BAE9BE34BADDBE10BAE9BE10BAE9BE10BAE9BE95BB12" ++ $"0222BEEDCCC5BEEECCC6BEE9CCC4BEE1CCC0BEE5CCC2BEE1CCBFBEE0CCBFBEE0" ++ $"CCBFBEDCCCBDBED4CCB9BED8CCBBBED4CCB9BED2CCB8BED3CCB8BECFCCB6BEC8" ++ $"CCB3BECBCCB4BEC7CCB2BEC5CCB1BEC6CCB1BEC2CCAFBEBCCCACBEBFCCADBEBA" ++ $"CCABBEB8CCA9BEB9CCAABEB5CCA8BEB0CCA4BEB2CCA6BEAECCA3BEAACCA1BEAC" ++ $"CCA2BEA8CCA0BEA4CC9DBEA6CC9EBEA2CC9BBE9ECC99BEA0CC9ABE9CCC97BE98" ++ $"CC95BE9ACC96BE96CC93BE91CC90BE93CC92BE90CC8FBE8DCC8D3DCC8EBE8ACC" ++ $"8BBE84CC87BE87CC89BE83CC86BE81CC85BE82CC85BE7ECC82BE76CC7CBE7ACC" ++ $"7FBDDBCBFFBD1EC9A9BD68CB0EBBCCC961BA0EC721BAC4C88AB955C5B2B8F6C0" ++ $"DDB8F6C39AB8F6BDE8BA75BA58B977BBBABB4BB92EBDEEB89BBC76B89BBDF0B8" ++ $"9BBD03B89BBD03B89BBB8CB89BB98BBA58BA61B92EB88DBBBAB80CC0DDB80CBD" ++ $"E8B80CC39AB924C721B86AC5B2B9DAC88ABC34C9A9BAE2C961BC7ECB0EBD8CCC" ++ $"7CBCF0CBFFBE02CCDBBF5FCD09BE9ECD09BF63CD09BF6ACD09BF67CD09BF6ACD" ++ $"09C037CD09C037CD09BFB9CD07BEEECCC6BF4BCCF1BEEECCC60204B3A5BFF7B3" ++ $"A5B92CB3A5C6C2BFF7CC48B92CCC48C6C2CC48CC48BFF7CC48C6C2CC48B92CBF" ++ $"F7B3A5C6C2B3A5B92CB3A50204BB6DBFF7BB6DC277BB6DBD76BFF7BB6DBD76BB" ++ $"6DC277BB6DC481BFF7C481BD76C481C277BFF7C481C277C481BD76C481020420" ++ $"BF8820B89F20C671BF88CC11B89FCC11C671CC11CC11BF88CC11C671CC11B89F" ++ $"BF8820C67120B89F200204BB36BF88BB36C1EABB36BD26BF88BB36BD26BB36C1" ++ $"EABB36C3DBBF88C3DBBD26C3DBC1EABF88C3DBC1EAC3DBBD26C3DB0204B337BF" ++ $"88B337B8BDB337C653BF88CBDAB8BDCBDAC653CBDACBDABF88CBDAC653CBDAB8" ++ $"BDBF88B337C653B337B8BDB3370204BAFEBF88BAFEC209BAFEBD08BF88BAFEBD" ++ $"08BAFEC209BAFEC412BF88C412BD08C412C209BF88C412C209C412BD08C41202" ++ $"04BF88B3DDC5FAB3DDB916B3DDB3DDBF88B3DDB916B3DDC5FABF88CB34B916CB" ++ $"34C5FACB34CB34BF88CB34C5FACB34B9160204BF88C4B8C264C4B8BCACC4B8BA" ++ $"58BF88BA58C264BA58BCACBF88BA58BCACBA58C264BA58C4B8BF88C4B8BCACC4" ++ $"B8C2640206BF88B63DB9D4B63DC53CB63DCA4FC04AC9EBBAAFCA53C00ACA56BF" ++ $"88CA56BFC9CA56B993BF88B4BAC57DB4BAB993B4BAB4BABF88B4BAB993B4BABF" ++ $"C9B4C2C04AB4BDC00AB525BAAF0206BF88C718BC32C718C2DEC718C595C10BC5" ++ $"95C462C595C0CAC589C04AC591C089C529C345BF88C595C29DC595BC74C595B9" ++ $"88C04AB9E7C345B980C089B97BC10BB97BC0CAB97BC4620206BF88CB34BD68CB" ++ $"34C1A8CB34C55EC9A3C3A6CAA1C55EC9A3C220C405C220C405C15CC477BF88C4" ++ $"B8C07AC4B8BE97C4B8BCF1C405BDB4C477BCF1C405B9B3C9A3B9B3C9A3BB6ACA" ++ $"A10206BF88B3DDC1A8B3DDBD68B3DDB9B3B56DBB6AB46FB9B3B56DBCF1BB0BBC" ++ $"F1BB0BBDB4BA9ABF88BA58BE97BA58C07ABA58C220BB0BC15CBA9AC220BB0BC5" ++ $"5EB56DC55EB56DC3A6B46F0206C4B8BF88C4B8BE97C4B8C07AC405C220C477C1" ++ $"5CC405C220C9A3C55EC9A3C55ECAA1C3A6CB34BF88CB34C1A8CB34BD68C9A3B9" ++ $"B3CAA1BB6AC9A3B9B3C405BCF1C405BCF1C477BDB40206BA58BF88BA58C07ABA" ++ $"58BE97BB0BBCF1BA9ABDB4BB0BBCF1B56DB9B3B56DB9B3B46FBB6AB3DDBF88B3" ++ $"DDBD68B3DDC1A8B56DC55EB46FC3A6B56DC55EBB0BC220BB0BC220BA9AC15C02" ++ $"06BF88B90DC264B90DBCACB90DBA58BE3CBA58BB60BA58BE75BA63BEE2BA5CBE" ++ $"ACBAB5BC54BF88BA58BCE4BA58C22CBA58C4ADBEE2C45BBC54C4B4BEACC4B8BE" ++ $"3CC4B8BE75C4B8BB600206BF88C9E8C5C2C9E8B94EC9E8B3E2BEE2B438C507B3" ++ $"DFBF19B3DDBF88B3DDBF50B3DDC5FABF88CB34B916CB34C5FACB34CB34BF88CB" ++ $"34C5FACB34BF50CB2FBEE2CB32BF19CAD9C5070206BF88CB34B93ECB34C5D2CB" ++ $"34CB31BFFECAF2C639CB30BFE9CB2F40CB30BFD4CAD9C5E4BF88CAC5C5C2CAC5" ++ $"B94ECAC5B3E240B438C5E4B3E0BFD4B3E0BFFEB3E1BFE9B41EC6390206BA58BF" ++ $"1ABA58BC3DBA58BF2ABA5ABF49BA59BF39BA7BBC8ABF88BA58BCC1BA58C24FBA" ++ $"58C4B6BF49C495BC8AC4B7BF39C4B8BF1AC4B8BF2AC4B8BC3DBF88B9EAC264B9" ++ $"EABCACB9EA150A000100023F6E570000000000003F0079920DF9AFA7960A0101" ++ $"01023F6E570000000000003F0079920DF9AFA7960A020102023F6E5700000000" ++ $"00003F0079920DF9AFA7960A000103023F6E570000000000003F0079920DF9AF" ++ $"A7960A000104023F6E570000000000003F0079920DF9AFA7960A00020506023F" ++ $"6E570000000000003F0079920DF9AFA7960A02020708023F6E57000000000000" ++ $"3F0079920DF9AFA7960A000109023F6E570000000000003F0079920DF9AFA796" ++ $"0A00020A0B023D6A390000000000003D3C934A3EB74A17E90A03020C0D023DD6" ++ $"F90000000000003DF73F4A20004A10000A04020E0F023DD6F90000000000003D" ++ $"F73F4A20004A10000A05021011023DD6F90000000000003DF73F4A20004A1000" ++ $"0A06021213023DD6F90000000000003DF73F4A20004A10000A070114023DD6F9" ++ $"0000000000003DF73F4A20004A10000A080115023DD6F90000000000003DF73F" ++ $"4A20004A10000A020116023DD6F90000000000003DF73F4A20004A10000A0201" ++ $"17023DD6F90000000000003DF73F4A20004A10000A020118023DD6F900000000" ++ $"00003DF73F4A20004A10000A020119023DD6F90000000000003DF73F4A20004A" ++ $"10000A09021A1B023DD6F90000000000003DF73F4A20004A10000A09021C1D02" ++ $"3DD6F90000000000003DF73F4A20004A1000" ++};' >/tmp/assistent.rdef ++rc /tmp/assistent.rdef ++xres -o "$QTROOT/boot/common/bin/assistant" /tmp/assistent.rsrc ++mimeset -f "$QTROOT/boot/common/bin/assistant" ++ ++ ++###################################################################### ++echo " Qt Designer" ++###################################################################### ++echo 'resource app_signature "application/x-vnd.designer"; ++ ++resource app_flags B_SINGLE_LAUNCH; ++ ++resource app_version { ++ major = 4, ++ middle = 7, ++ minor = 0, ++ variety = 0, ++ internal = 0, ++ short_info = "Qt Designer", ++ long_info = "Qt Designer" ++}; ++ ++resource vector_icon { ++ $"6E63696613030062250380C34205FF04003303663333020106023DDD49000000" ++ $"0000003DDD4949EEA449EEA400B00000FF993300020106043DA9380000000000" ++ $"003DA93849EEA449EEA400FFFFFF2FFF93936CFF0000FFCF000004FF7F04FF66" ++ $"04614C050002001602BC612BBC6F8A3C6F8ABC612B4B0EBF4768A700E4FFFE02" ++ $"0016023C68F73C78F1BC78F13C68F74652864B378800E4FFFE04002302000603" ++ $"38BB01B81D04381D0438BB014A2F8B4A6CC900EFF0CE7FFFFFFFFFEFF0CE03E0" ++ $"C35D03C8AF5303F7E46E02000603343E6CB2D79432D794343E6C486F84489C71" ++ $"000000007F616061FF0000002B060AEFE707B93AB30DB93AB30DB8EB20B852B3" ++ $"02B89DB2FCB852B302B852B302B639B327B650B325B464B34D20B6E320B4CE20" ++ $"B6E3CF6BB50DD154C9ABCDDDC9ABCDDDCB16CD9ECC35CA23CC35CBF2CC35CA23" ++ $"B6290606EF0BCC35CA23CC35CA23CC35CBF2C9ABCDDDCB16CD9EC9ABCDDDB50D" ++ $"D154B50DB6C2B50DB6C2B50DB457B93AB30DB6FBB2AEB93AB30DCC35B6290614" ++ $"9AF9FFFF99C5DBB9A3C785B9D1BCBDC965BCDFBEB4C785BE9EC785C551C785C5" ++ $"51C785C5E6C7B7C671C796C646C7D4C699C840C6ACC803C6ACC846C6ACC853C6" ++ $"ACC84CC6ACC8B1C6A6C987C656C918C689C987C656C987C805C987C805C8C9C8" ++ $"59C758C89AC80FC88BC73DC89CC70BC89DC723C89DC665C89DC58FC80CC5E6C8" ++ $"6DC52AC79BC4F8C5EDC4F8C6E5C4F8C5EDBE80C412BE75BC7EC52ABC930A04C9" ++ $"65BEB4C785BE9EC785BEA8C886BEB40205C7E9C69BC826C68CC802C6A7C840C6" ++ $"AC55C6ACC846C6ACC853C6ACC84CC6ACC8B1C6A6C987C656C918C689C987C656" ++ $"C8A9C656C8A9C656C865C675060D9FF1FE03C58FC80CC5E6C86DC52AC79BC4F8" ++ $"C5EDC4F8C6E5C4F8C5EDBE80C412BE75BC7EC333C333BCEFC333BCEFC353BD68" ++ $"C37FBE79C36CBDEBC37FBE79C419BE80C419C5EDC419C5EDC419C6E5C4B1C80C" ++ $"C44CC79BC507C86DC62CC89DC586C89DC62CC89DC70BC89DC70BC89DC665C89D" ++ $"0A04C5DBB9A3C4FCB9A3C450BC83C52ABC93000BC02DC624C02DC624C084C544" ++ $"C0AFC0FEC0AFC38DC0AFBEB2C02EBC40C085BD1EBFD8BB60BEA9BAD9BF57BAE8" ++ $"BE9CBAD8BE82BAD7BE8FBAD7BDE1BAD7BD0FBBF1BD66BB35BCB2BCBEBC83C0EC" ++ $"BC83BE68BC83C35ABD0DC617BCB1C514BD65C70EBE92C789BDE7C789BE9AC789" ++ $"BEA9C788BEA1C788BF55C77DC02DC624BFD6C706C02DC6240211C2C7C6AFC35D" ++ $"C54DC22EC817C008C96FC146C902C028CA13C099CABCC0595BC0CBCAE9C17FCB" ++ $"00C118CB00C19DCB00C1DFCAFAC1BDCAFEC1DFCAFAC1DFCCE0C1DFCCE0C1DFCC" ++ $"E0C103CCFDC103CCFDC0C2CD05C049CD09C084CD09BF88CD09BE76CC7CBEECCC" ++ $"DBBDDBCBFFBD1EC9A9BD68CB0EBBCCC961BA0EC721BAC4C88AB955C5B2B8F6C0" ++ $"DDB8F6C39AB8F6BDE8BA75BA58B977BBBABB4BB92EBDEEB89BBC76B89BBE2BB8" ++ $"9BBEA9B8A6BE69B89FC064B8D9C275BB14C1A4B9AAC342BC75C3A7C10BC3A7BE" ++ $"71C3A7C36D0203C17FCB00C162CB00C19DCB00C1DFCAFAC1BDCAFEC1DFCAFAC1" ++ $"2CCAFAC12CCAFAC145CAFE020DBF44BC40BEFCBB85BF9BBD1EBFC5C0FEBFC5BE" ++ $"B2BFC5C38DBF43C624BF9AC544BEFDC6D9BE20C774BE9CC749BE44C782BE92C7" ++ $"89BE6AC789BE9AC789BEA9C788BEA1C788BF55C77DC02DC624BFD6C706C084C5" ++ $"44C0AFC0FEC0AFC38DC0AFBEB2C02EBC40C085BD1EBFD8BB60BEA9BAD9BF57BA" ++ $"E8BE9CBAD8BE82BAD7BE8FBAD7BE5ABAD7BE10BAE9BE34BADDBE10BAE9BE10BA" ++ $"E9BE10BAE9BE95BB120222BEEDCCC5BEEECCC6BEE9CCC4BEE1CCC0BEE5CCC2BE" ++ $"E1CCBFBEE0CCBFBEE0CCBFBEDCCCBDBED4CCB9BED8CCBBBED4CCB9BED2CCB8BE" ++ $"D3CCB8BECFCCB6BEC8CCB3BECBCCB4BEC7CCB2BEC5CCB1BEC6CCB1BEC2CCAFBE" ++ $"BCCCACBEBFCCADBEBACCABBEB8CCA9BEB9CCAABEB5CCA8BEB0CCA4BEB2CCA6BE" ++ $"AECCA3BEAACCA1BEACCCA2BEA8CCA0BEA4CC9DBEA6CC9EBEA2CC9BBE9ECC99BE" ++ $"A0CC9ABE9CCC97BE98CC95BE9ACC96BE96CC93BE91CC90BE93CC92BE90CC8FBE" ++ $"8DCC8D3DCC8EBE8ACC8BBE84CC87BE87CC89BE83CC86BE81CC85BE82CC85BE7E" ++ $"CC82BE76CC7CBE7ACC7FBDDBCBFFBD1EC9A9BD68CB0EBBCCC961BA0EC721BAC4" ++ $"C88AB955C5B2B8F6C0DDB8F6C39AB8F6BDE8BA75BA58B977BBBABB4BB92EBDEE" ++ $"B89BBC76B89BBDF0B89BBD03B89BBD03B89BBB8CB89BB98BBA58BA61B92EB88D" ++ $"BBBAB80CC0DDB80CBDE8B80CC39AB924C721B86AC5B2B9DAC88ABC34C9A9BAE2" ++ $"C961BC7ECB0EBD8CCC7CBCF0CBFFBE02CCDBBF5FCD09BE9ECD09BF63CD09BF6A" ++ $"CD09BF67CD09BF6ACD09C037CD09C037CD09BFB9CD07BEEECCC6BF4BCCF1BEEE" ++ $"CCC60204B3A5BFF7B3A5B92CB3A5C6C2BFF7CC48B92CCC48C6C2CC48CC48BFF7" ++ $"CC48C6C2CC48B92CBFF7B3A5C6C2B3A5B92CB3A50204BB6DBFF7BB6DC277BB6D" ++ $"BD76BFF7BB6DBD76BB6DC277BB6DC481BFF7C481BD76C481C277BFF7C481C277" ++ $"C481BD76C481020420BF8820B89F20C671BF88CC11B89FCC11C671CC11CC11BF" ++ $"88CC11C671CC11B89FBF8820C67120B89F200204BB36BF88BB36C1EABB36BD26" ++ $"BF88BB36BD26BB36C1EABB36C3DBBF88C3DBBD26C3DBC1EABF88C3DBC1EAC3DB" ++ $"BD26C3DB0204B337BF88B337B8BDB337C653BF88CBDAB8BDCBDAC653CBDACBDA" ++ $"BF88CBDAC653CBDAB8BDBF88B337C653B337B8BDB3370204BAFEBF88BAFEC209" ++ $"BAFEBD08BF88BAFEBD08BAFEC209BAFEC412BF88C412BD08C412C209BF88C412" ++ $"C209C412BD08C4120204BF88B3DDC5FAB3DDB916B3DDB3DDBF88B3DDB916B3DD" ++ $"C5FABF88CB34B916CB34C5FACB34CB34BF88CB34C5FACB34B9160204BF88C4B8" ++ $"C264C4B8BCACC4B8BA58BF88BA58C264BA58BCACBF88BA58BCACBA58C264BA58" ++ $"C4B8BF88C4B8BCACC4B8C2640206BF88B63DB9D4B63DC53CB63DCA4FC04AC9EB" ++ $"BAAFCA53C00ACA56BF88CA56BFC9CA56B993BF88B4BAC57DB4BAB993B4BAB4BA" ++ $"BF88B4BAB993B4BABFC9B4C2C04AB4BDC00AB525BAAF0206BF88C718BC32C718" ++ $"C2DEC718C595C10BC595C462C595C0CAC589C04AC591C089C529C345BF88C595" ++ $"C29DC595BC74C595B988C04AB9E7C345B980C089B97BC10BB97BC0CAB97BC462" ++ $"0206BF88CB34BD68CB34C1A8CB34C55EC9A3C3A6CAA1C55EC9A3C220C405C220" ++ $"C405C15CC477BF88C4B8C07AC4B8BE97C4B8BCF1C405BDB4C477BCF1C405B9B3" ++ $"C9A3B9B3C9A3BB6ACAA10206BF88B3DDC1A8B3DDBD68B3DDB9B3B56DBB6AB46F" ++ $"B9B3B56DBCF1BB0BBCF1BB0BBDB4BA9ABF88BA58BE97BA58C07ABA58C220BB0B" ++ $"C15CBA9AC220BB0BC55EB56DC55EB56DC3A6B46F0206C4B8BF88C4B8BE97C4B8" ++ $"C07AC405C220C477C15CC405C220C9A3C55EC9A3C55ECAA1C3A6CB34BF88CB34" ++ $"C1A8CB34BD68C9A3B9B3CAA1BB6AC9A3B9B3C405BCF1C405BCF1C477BDB40206" ++ $"BA58BF88BA58C07ABA58BE97BB0BBCF1BA9ABDB4BB0BBCF1B56DB9B3B56DB9B3" ++ $"B46FBB6AB3DDBF88B3DDBD68B3DDC1A8B56DC55EB46FC3A6B56DC55EBB0BC220" ++ $"BB0BC220BA9AC15C0206BF88B90DC264B90DBCACB90DBA58BE3CBA58BB60BA58" ++ $"BE75BA63BEE2BA5CBEACBAB5BC54BF88BA58BCE4BA58C22CBA58C4ADBEE2C45B" ++ $"BC54C4B4BEACC4B8BE3CC4B8BE75C4B8BB600206BF88C9E8C5C2C9E8B94EC9E8" ++ $"B3E2BEE2B438C507B3DFBF19B3DDBF88B3DDBF50B3DDC5FABF88CB34B916CB34" ++ $"C5FACB34CB34BF88CB34C5FACB34BF50CB2FBEE2CB32BF19CAD9C5070206BF88" ++ $"CB34B93ECB34C5D2CB34CB31BFFECAF2C639CB30BFE9CB2F40CB30BFD4CAD9C5" ++ $"E4BF88CAC5C5C2CAC5B94ECAC5B3E240B438C5E4B3E0BFD4B3E0BFFEB3E1BFE9" ++ $"B41EC6390206BA58BF1ABA58BC3DBA58BF2ABA5ABF49BA59BF39BA7BBC8ABF88" ++ $"BA58BCC1BA58C24FBA58C4B6BF49C495BC8AC4B7BF39C4B8BF1AC4B8BF2AC4B8" ++ $"BC3DBF88B9EAC264B9EABCACB9EA020AB691B41FB691B41FB5C1B41FB524B58C" ++ $"B524B4BBB524B58CB524C93CB524C93CB524C9F3B677CA8FB5A6CA8FB677CA8F" ++ $"C851CA8FC851CA8FC908CA8FC9A4C93CC9A4C9F3C9A4C93CC9A4B89CC9A4B89C" ++ $"C9A4B7FFC922B72EC970B77CC922B72EC6C9B4D6C6C9B4D6C661B46DC50DB41F" ++ $"C5AAB41FC50DB41F020AB691B41FB691B41FB5C1B41FB524B58CB524B4BBB524" ++ $"B58CB524C93CB524C93CB524C9F3B677CA8FB5A6CA8FB677CA8FC851CA8FC851" ++ $"CA8FC908CA8FC9A4C93CC9A4C9F3C9A4C93CC9A4B89CC9A4B89CC9A4B7FFC922" ++ $"B72EC970B77CC922B72EC6C9B4D6C6C9B4D6C661B46DC50DB41FC5AAB41FC50D" ++ $"B41F020AC4F3B50AC55CB50AC4F3B50AB691B50AB691B50AB629B50AB60FB58C" ++ $"B60FB53EB60FB58CB60FC93CB60FC93CB60FC98AB691C9A4B629C9A4B691C9A4" ++ $"C86BC9A4C86BC9A4C89FC9A4C8D3C93CC8D3C970C8D3C93CC8D3B89CC8D3B89C" ++ $"C8D3B833C885B7CBC8B9B7E5C885B7CBC62DB572C62DB572C5DEB5240206B6E0" ++ $"B5DBB6E0B5DBB6E02BB6E0C8D3B6E0C74CB867C8D3C7E8C8D3C661C8D3C7E8C7" ++ $"4CC7E8B867C7E8B91EC780B819C55CB5DBC5AAB643C4BFB5DBB6FAB5DBB882B5" ++ $"DBB6FAB5DB0A04B904C3BAC5AAC3BAC5AAC661B904C6610A04B904B904C5AAB9" ++ $"04C5AABBABB904BBAB0A04B904BE6CC5AABE6CC5AAC113B904C1130A07B987B9" ++ $"BBBF3DBCCAC55CC50DC542C661C3D4C7CEC24CC79ABBDF400A07B987B9BBBF3D" ++ $"BCCAC55CC50DC542C661C3D4C7CEC24CC79ABBDF400A04BDCFC042C3BAC7B4C2" ++ $"4CC79ABBDF400A05BF71BEBAC542C647C3D4C7B4BDCFC042BF57BEBA0A04BF23" ++ $"BCCAC542C50DC527C661BF57BED406032FBC13BB0EBC13BB0EBC13BBF9BAA6BC" ++ $"7CBB91BC7CBAA6BC7CB987B9BB0E0A000100023F6E570000000000003F007992" ++ $"0DF9AFA7960A010101023F6E570000000000003F0079920DF9AFA7960A020102" ++ $"023F6E570000000000003F0079920DF9AFA7960A000103023F6E570000000000" ++ $"003F0079920DF9AFA7960A000104023F6E570000000000003F0079920DF9AFA7" ++ $"960A00020506023F6E570000000000003F0079920DF9AFA7960A02020708023F" ++ $"6E570000000000003F0079920DF9AFA7960A000109023E0AB60000000000003D" ++ $"2781493ACE49C5AC0A0A01251233B4D6BFA5C03F7D5C32C38F4788D04C593E01" ++ $"178422040A0E01260233B4D6BFA5C03F7D5C32C38F4788D04C593E0A0F012702" ++ $"33B4D6BFA5C03F7D5C32C38F4788D04C593E0A1001280233B4D6BFA5C03F7D5C" ++ $"32C38F4788D04C593E0A1101290233B4D6BFA5C03F7D5C32C38F4788D04C593E" ++ $"0A12012A0233B4D6BFA5C03F7D5C32C38F4788D04C593E" ++};' >/tmp/designer.rdef ++rc /tmp/designer.rdef ++xres -o "$QTROOT/boot/common/bin/designer" /tmp/designer.rsrc ++mimeset -f "$QTROOT/boot/common/bin/designer" ++ ++###################################################################### ++echo " Qt Linguist" ++###################################################################### ++echo 'resource app_signature "application/x-vnd.linguist"; ++ ++resource app_flags B_SINGLE_LAUNCH; ++ ++resource app_version { ++ major = 4, ++ middle = 7, ++ minor = 0, ++ variety = 0, ++ internal = 0, ++ short_info = "Qt Linguist", ++ long_info = "Qt Linguist" ++}; ++ ++resource vector_icon { ++ $"6E63696618030062250380C34205FF04003303663333020106023DDD49000000" ++ $"0000003DDD4949EEA449EEA400B00000FF993300020106043DA9380000000000" ++ $"003DA93849EEA449EEA400FFFFFF2FFF93936CFF0000FFCF000004FF7F04FF66" ++ $"04614C02000602000000BDC8803DC8800000004BD3074987D3000035EDFF0000" ++ $"8D020106063EFBB90000000000003EFBB949F0D94BC42D00FFFFFF53DEFFFFBF" ++ $"94CAFFDD499BFFF3147AFFFF006DFF020106023EAC420000000000003EAC424A" ++ $"2B784BC42D00FFFFFFFF00339902000602000000BCA3653CA3650000004A62E4" ++ $"49D43C00FFFFFFFFB3CAFF020006080000003B1FAABB1FAA0000004841E7484E" ++ $"3D00FFFFFF26FBFDFF4DEEF7FF75DAEDFF9EBDDFFFC697CCFFEF6AB6FFFF57AD" ++ $"FF020006053B84A70000000000003B84A749DF004B668300428AFF442969F88E" ++ $"124DF2CF053BEEFF0035ED020006053B84A70000000000003B84A749DF004B6A" ++ $"5900428AFF442969F88E124DF2CF053BEEFF0035ED020016063AF08600000000" ++ $"00003AF08649DEE04B3FE800E604E74CF980FFC3FAFFF0050003B1B1C5020006" ++ $"0238270AB103BF3103BF38270A48A9A849875A00FFFFFFFFCECEDB020016022F" ++ $"032F3626A4B626A42F032F4872BB48FFBD00FFFF0002000602B82720B103DDB1" ++ $"03DD3827204A7CE349876200FFFFFFFFCECEDB02001602AF0317362693362693" ++ $"2F03174A985648FFC600FFFF0036060AEFE707B93AB30DB93AB30DB8EB20B852" ++ $"B302B89DB2FCB852B302B852B302B639B327B650B325B464B34D20B6E320B4CE" ++ $"20B6E3CF6BB50DD154C9ABCDDDC9ABCDDDCB16CD9ECC35CA23CC35CBF2CC35CA" ++ $"23B6290606EF0BCC35CA23CC35CA23CC35CBF2C9ABCDDDCB16CD9EC9ABCDDDB5" ++ $"0DD154B50DB6C2B50DB6C2B50DB457B93AB30DB6FBB2AEB93AB30DCC35B62906" ++ $"149AF9FFFF99C5DBB9A3C785B9D1BCBDC965BCDFBEB4C785BE9EC785C551C785" ++ $"C551C785C5E6C7B7C671C796C646C7D4C699C840C6ACC803C6ACC846C6ACC853" ++ $"C6ACC84CC6ACC8B1C6A6C987C656C918C689C987C656C987C805C987C805C8C9" ++ $"C859C758C89AC80FC88BC73DC89CC70BC89DC723C89DC665C89DC58FC80CC5E6" ++ $"C86DC52AC79BC4F8C5EDC4F8C6E5C4F8C5EDBE80C412BE75BC7EC52ABC930A04" ++ $"C965BEB4C785BE9EC785BEA8C886BEB40205C7E9C69BC826C68CC802C6A7C840" ++ $"C6AC55C6ACC846C6ACC853C6ACC84CC6ACC8B1C6A6C987C656C918C689C987C6" ++ $"56C8A9C656C8A9C656C865C675060D9FF1FE03C58FC80CC5E6C86DC52AC79BC4" ++ $"F8C5EDC4F8C6E5C4F8C5EDBE80C412BE75BC7EC333C333BCEFC333BCEFC353BD" ++ $"68C37FBE79C36CBDEBC37FBE79C419BE80C419C5EDC419C5EDC419C6E5C4B1C8" ++ $"0CC44CC79BC507C86DC62CC89DC586C89DC62CC89DC70BC89DC70BC89DC665C8" ++ $"9D0A04C5DBB9A3C4FCB9A3C450BC83C52ABC93000BC02DC624C02DC624C084C5" ++ $"44C0AFC0FEC0AFC38DC0AFBEB2C02EBC40C085BD1EBFD8BB60BEA9BAD9BF57BA" ++ $"E8BE9CBAD8BE82BAD7BE8FBAD7BDE1BAD7BD0FBBF1BD66BB35BCB2BCBEBC83C0" ++ $"ECBC83BE68BC83C35ABD0DC617BCB1C514BD65C70EBE92C789BDE7C789BE9AC7" ++ $"89BEA9C788BEA1C788BF55C77DC02DC624BFD6C706C02DC6240211C2C7C6AFC3" ++ $"5DC54DC22EC817C008C96FC146C902C028CA13C099CABCC0595BC0CBCAE9C17F" ++ $"CB00C118CB00C19DCB00C1DFCAFAC1BDCAFEC1DFCAFAC1DFCCE0C1DFCCE0C1DF" ++ $"CCE0C103CCFDC103CCFDC0C2CD05C049CD09C084CD09BF88CD09BE76CC7CBEEC" ++ $"CCDBBDDBCBFFBD1EC9A9BD68CB0EBBCCC961BA0EC721BAC4C88AB955C5B2B8F6" ++ $"C0DDB8F6C39AB8F6BDE8BA75BA58B977BBBABB4BB92EBDEEB89BBC76B89BBE2B" ++ $"B89BBEA9B8A6BE69B89FC064B8D9C275BB14C1A4B9AAC342BC75C3A7C10BC3A7" ++ $"BE71C3A7C36D0203C17FCB00C162CB00C19DCB00C1DFCAFAC1BDCAFEC1DFCAFA" ++ $"C12CCAFAC12CCAFAC145CAFE020DBF44BC40BEFCBB85BF9BBD1EBFC5C0FEBFC5" ++ $"BEB2BFC5C38DBF43C624BF9AC544BEFDC6D9BE20C774BE9CC749BE44C782BE92" ++ $"C789BE6AC789BE9AC789BEA9C788BEA1C788BF55C77DC02DC624BFD6C706C084" ++ $"C544C0AFC0FEC0AFC38DC0AFBEB2C02EBC40C085BD1EBFD8BB60BEA9BAD9BF57" ++ $"BAE8BE9CBAD8BE82BAD7BE8FBAD7BE5ABAD7BE10BAE9BE34BADDBE10BAE9BE10" ++ $"BAE9BE10BAE9BE95BB120222BEEDCCC5BEEECCC6BEE9CCC4BEE1CCC0BEE5CCC2" ++ $"BEE1CCBFBEE0CCBFBEE0CCBFBEDCCCBDBED4CCB9BED8CCBBBED4CCB9BED2CCB8" ++ $"BED3CCB8BECFCCB6BEC8CCB3BECBCCB4BEC7CCB2BEC5CCB1BEC6CCB1BEC2CCAF" ++ $"BEBCCCACBEBFCCADBEBACCABBEB8CCA9BEB9CCAABEB5CCA8BEB0CCA4BEB2CCA6" ++ $"BEAECCA3BEAACCA1BEACCCA2BEA8CCA0BEA4CC9DBEA6CC9EBEA2CC9BBE9ECC99" ++ $"BEA0CC9ABE9CCC97BE98CC95BE9ACC96BE96CC93BE91CC90BE93CC92BE90CC8F" ++ $"BE8DCC8D3DCC8EBE8ACC8BBE84CC87BE87CC89BE83CC86BE81CC85BE82CC85BE" ++ $"7ECC82BE76CC7CBE7ACC7FBDDBCBFFBD1EC9A9BD68CB0EBBCCC961BA0EC721BA" ++ $"C4C88AB955C5B2B8F6C0DDB8F6C39AB8F6BDE8BA75BA58B977BBBABB4BB92EBD" ++ $"EEB89BBC76B89BBDF0B89BBD03B89BBD03B89BBB8CB89BB98BBA58BA61B92EB8" ++ $"8DBBBAB80CC0DDB80CBDE8B80CC39AB924C721B86AC5B2B9DAC88ABC34C9A9BA" ++ $"E2C961BC7ECB0EBD8CCC7CBCF0CBFFBE02CCDBBF5FCD09BE9ECD09BF63CD09BF" ++ $"6ACD09BF67CD09BF6ACD09C037CD09C037CD09BFB9CD07BEEECCC6BF4BCCF1BE" ++ $"EECCC60204B3A5BFF7B3A5B92CB3A5C6C2BFF7CC48B92CCC48C6C2CC48CC48BF" ++ $"F7CC48C6C2CC48B92CBFF7B3A5C6C2B3A5B92CB3A50204BB6DBFF7BB6DC277BB" ++ $"6DBD76BFF7BB6DBD76BB6DC277BB6DC481BFF7C481BD76C481C277BFF7C481C2" ++ $"77C481BD76C481020420BF8820B89F20C671BF88CC11B89FCC11C671CC11CC11" ++ $"BF88CC11C671CC11B89FBF8820C67120B89F200204BB36BF88BB36C1EABB36BD" ++ $"26BF88BB36BD26BB36C1EABB36C3DBBF88C3DBBD26C3DBC1EABF88C3DBC1EAC3" ++ $"DBBD26C3DB0204B337BF88B337B8BDB337C653BF88CBDAB8BDCBDAC653CBDACB" ++ $"DABF88CBDAC653CBDAB8BDBF88B337C653B337B8BDB3370204BAFEBF88BAFEC2" ++ $"09BAFEBD08BF88BAFEBD08BAFEC209BAFEC412BF88C412BD08C412C209BF88C4" ++ $"12C209C412BD08C4120204BF88B3DDC5FAB3DDB916B3DDB3DDBF88B3DDB916B3" ++ $"DDC5FABF88CB34B916CB34C5FACB34CB34BF88CB34C5FACB34B9160204BF88C4" ++ $"B8C264C4B8BCACC4B8BA58BF88BA58C264BA58BCACBF88BA58BCACBA58C264BA" ++ $"58C4B8BF88C4B8BCACC4B8C2640206BF88B63DB9D4B63DC53CB63DCA4FC04AC9" ++ $"EBBAAFCA53C00ACA56BF88CA56BFC9CA56B993BF88B4BAC57DB4BAB993B4BAB4" ++ $"BABF88B4BAB993B4BABFC9B4C2C04AB4BDC00AB525BAAF0206BF88C718BC32C7" ++ $"18C2DEC718C595C10BC595C462C595C0CAC589C04AC591C089C529C345BF88C5" ++ $"95C29DC595BC74C595B988C04AB9E7C345B980C089B97BC10BB97BC0CAB97BC4" ++ $"620206BF88CB34BD68CB34C1A8CB34C55EC9A3C3A6CAA1C55EC9A3C220C405C2" ++ $"20C405C15CC477BF88C4B8C07AC4B8BE97C4B8BCF1C405BDB4C477BCF1C405B9" ++ $"B3C9A3B9B3C9A3BB6ACAA10206BF88B3DDC1A8B3DDBD68B3DDB9B3B56DBB6AB4" ++ $"6FB9B3B56DBCF1BB0BBCF1BB0BBDB4BA9ABF88BA58BE97BA58C07ABA58C220BB" ++ $"0BC15CBA9AC220BB0BC55EB56DC55EB56DC3A6B46F0206C4B8BF88C4B8BE97C4" ++ $"B8C07AC405C220C477C15CC405C220C9A3C55EC9A3C55ECAA1C3A6CB34BF88CB" ++ $"34C1A8CB34BD68C9A3B9B3CAA1BB6AC9A3B9B3C405BCF1C405BCF1C477BDB402" ++ $"06BA58BF88BA58C07ABA58BE97BB0BBCF1BA9ABDB4BB0BBCF1B56DB9B3B56DB9" ++ $"B3B46FBB6AB3DDBF88B3DDBD68B3DDC1A8B56DC55EB46FC3A6B56DC55EBB0BC2" ++ $"20BB0BC220BA9AC15C0206BF88B90DC264B90DBCACB90DBA58BE3CBA58BB60BA" ++ $"58BE75BA63BEE2BA5CBEACBAB5BC54BF88BA58BCE4BA58C22CBA58C4ADBEE2C4" ++ $"5BBC54C4B4BEACC4B8BE3CC4B8BE75C4B8BB600206BF88C9E8C5C2C9E8B94EC9" ++ $"E8B3E2BEE2B438C507B3DFBF19B3DDBF88B3DDBF50B3DDC5FABF88CB34B916CB" ++ $"34C5FACB34CB34BF88CB34C5FACB34BF50CB2FBEE2CB32BF19CAD9C5070206BF" ++ $"88CB34B93ECB34C5D2CB34CB31BFFECAF2C639CB30BFE9CB2F40CB30BFD4CAD9" ++ $"C5E4BF88CAC5C5C2CAC5B94ECAC5B3E240B438C5E4B3E0BFD4B3E0BFFEB3E1BF" ++ $"E9B41EC6390206BA58BF1ABA58BC3DBA58BF2ABA5ABF49BA59BF39BA7BBC8ABF" ++ $"88BA58BCC1BA58C24FBA58C4B6BF49C495BC8AC4B7BF39C4B8BF1AC4B8BF2AC4" ++ $"B8BC3DBF88B9EAC264B9EABCACB9EA0209B3C1BF37B3C1BA88B3C1C1D2B846C5" ++ $"E1B56EC447B79FC6B5B68DC7ABB6FEC74DB68DC7ABB544C8BCB544C8BCB544C8" ++ $"BCB6EFC8A4B6EFC8A4B93156BC86C768BB12C819BD8CC79BBFA8C7B6BE99C7B6" ++ $"C639C7B6CB90BF37CB90C3E6CB90BA88BFA8B6B9C639B6B9B918B6B80209B3A8" ++ $"BEEEB3A8BA3FB3A8C1892DC598B556C3FDB787C66CB674C761B6E5C703B674C7" ++ $"61B52BC872B52BC872B52BC872B6D6C85BB6D6C85BB919C83BBC6DC71EBAF9C7" ++ $"D0BD7353BF90C76CBE81C76C50C76CCB77BEEECB77C39DCB77BA3EBF90B66F50" ++ $"B66FB8FFB66F0209B36ABEBDB36ABA0DB36A44B7EFC567B517C3CCB748C63BB6" ++ $"36C730B6A7C6D2B636C730B4EDC842B4EDC842B4EDC842B698C82AB698C82AB8" ++ $"DBC80ABC2FC6EEBABBC79FBD35C721BF52C73BBE42C73BC5E2C73BCB39BEBDCB" ++ $"39C36CCB39BA0EBF52B63EC5E2B63EB8C1B63E0207BF52B6CBC594B6CBB90FB6" ++ $"CBB3F7BEBDB3F7BA5BB3F7C169B8C4C537B5DDC3C7B7FEC64DB690C79DB733C7" ++ $"16B935C777BC1DC65BBAF6C6EFBD21C691BF52C6AEBE35C6AEC595C6AECAACBE" ++ $"BDCAACC31ECAACBA5B0204BB64C65BBB90C664BA5CC6E0B6A2C78EB8D7C75BB6" ++ $"9CC793B690C79D29C798B90FC779BBE9C674BAC3C6FEBBBDC66C0206BF52B6CB" ++ $"C594B6CBBF33B6CBBEF6B6CCBF14B6CCC50EB6EEC9F4BEBDC9F4BA71C9F4C308" ++ $"BEF7C6ADC50EC68ABF15C6AEBF52C6AEBF33C6AEC594C6AECAACBEBDCAACC31E" ++ $"CAACBA5B0204BCAFC65BBDA0C68DBCA2C662BC86C66FBC94C668BD6BC698BF52" ++ $"C6AEBE5BC6AEBF6DC6AEBFA3C6ADBF88C6AEBE9DC6A90208B690C79DB733C716" ++ $"B6C7C79AB731C7912AC796B7D1C70BB957C537B896C646B670C3C7B48ABEBDB4" ++ $"8AC169B48ABA6CBF9BB6CCB97AB6E7BF83B6CBBF52B6CBBF6AB6CBB90FB6CBB3" ++ $"F7BEBDB3F7BA5BB3F7C169B8C4C537B5DDC3C7B7FEC64D0205B6F4BAE5B869B8" ++ $"B3BA4FBCC5C20BBC36BE22BD3BC2DABBFCC477BB73C3ACBBB6C56CBB22C764BA" ++ $"8FC667BACFC5D3B88ABF4DB73FC2BDB73FBBB2B73F0207C459C0ACC48EC0A1C4" ++ $"59C0ACBA53C0ACBA53C0ACBA1EC0A1B9C1C0CAB9E9C0ABB99CC0E8B986C142B9" ++ $"86C113B986C396BF56C57BBC22C57B47C57BC526C142C526C396C526C113C4EB" ++ $"C0CAC511C0E8C4C4C0AB0207C459C0C5C48EC0B9C459C0C5BA53C0C5BA53C0C5" ++ $"BA1EC0B9B9C1C0E3B9E9C0C4B99CC100B986C15AB986C12CB986C3AFBF56C594" ++ $"BC22C59447C594C526C15AC526C3AFC526C12CC4EBC0E3C511C100C4C4C0C402" ++ $"05BA53C105BA53C105BA29C105BA07C141BA07C120BA07C358BF56C50ABC69C5" ++ $"0AC244C50AC4A6C141C4A6C358C4A6C120C45AC105C484C105C45AC1050204BB" ++ $"43B95BBA1BB95BBC6CB95BBD55BC63BD55BAB0BD55BE15BB43BF6BBC6CBF6BBA" ++ $"1BBF6BB931BC63B931BE15B931BAB00204BB4431BA4131BC4731BD12BC6BBD12" ++ $"BAF0BD12BDE5BB44BF0FBC47BF0FBA41BF0FB976BC6BB976BDE5B976BAF00204" ++ $"BB56BA02BA5FBA02BC4DBA02BD0FBC88BD0FBB1EBD0FBDF1BB56BF0DBC4DBF0D" ++ $"BA5FBF0DB99DBC88B99DBDF1B99DBB1E0205BA50BC7FBA30BD15BA8CBB5DBC1A" ++ $"BA9ABB54BA8EBBD7BA62BB38BA4CBB89BA45BA62BA5FB9E6BCA6B9CABB6CB9F3" ++ $"BD38BA6ABE19BA24BDB9BA3DBDA60204BBC2BC51BB41BC51BC43BC51BCA9BD37" ++ $"BCA9BCB6BCA9BDB9BBC2BE1EBC43BE1EBB41BE1EBADBBD37BADBBDB9BADBBCB6" ++ $"0204BBB6BC65BB52BC65BC1BBC65BC6BBD1ABC6BBCB5BC6BBD7FBBB6BDCEBC1B" ++ $"BDCEBB52BDCEBB02BD1ABB02BD7FBB02BCB50204C315B95BC1ECB95BC43EB95B" ++ $"C527BC63C527BAB0C527BE15C315BF6BC43EBF6BC1ECBF6BC103BC63C103BE15" ++ $"C103BAB00204C31431C21131C41731C4E2BC6BC4E2BAF0C4E2BDE5C314BF0FC4" ++ $"17BF0FC211BF0FC146BC6BC146BDE5C146BAF00204C302BA02C20BBA02C3F9BA" ++ $"02C4BBBC88C4BBBB1EC4BBBDF1C302BF0DC3F9BF0DC20BBF0DC149BC88C149BD" ++ $"F1C149BB1E0205C408BC7FC428BD15C3CCBB5DC23EBA9AC305BA8EC281BA62C3" ++ $"1FBA4CC2CFBA45C3F6BA5FC472BCA6C48EBB6CC465BD38C3EEBE19C434BDB9C4" ++ $"1BBDA60204C296BC50C215BC50C317BC50C37DBD37C37DBCB6C37DBDB9C296BE" ++ $"1FC317BE1FC215BE1FC1AFBD37C1AFBDB9C1AFBCB60204C2A1BC65C23CBC65C3" ++ $"06BC6549BD1A49BCB549BD7FC2A1BDCEC306BDCEC23CBDCEC1EDBD1AC1EDBD7F" ++ $"C1EDBCB50F0A000100023F6E570000000000003F0079920DF9AFA7960A010101" ++ $"023F6E570000000000003F0079920DF9AFA7960A020102023F6E570000000000" ++ $"003F0079920DF9AFA7960A000103023F6E570000000000003F0079920DF9AFA7" ++ $"960A000104023F6E570000000000003F0079920DF9AFA7960A00020506023F6E" ++ $"570000000000003F0079920DF9AFA7960A02020708023F6E570000000000003F" ++ $"0079920DF9AFA7960A000109023F6E570000000000003F0079920DF9AFA7960A" ++ $"03011E000A03011F000A0A0120023EBA690000000000003E684D48AAA149C7C1" ++ $"0A0B0121023EBA690000000000003E684D48AAA149C7C10A0C022223023EBA69" ++ $"0000000000003E684D48AAA149C7C10A0D022425023EBA690000000000003E68" ++ $"4D48AAA149C7C10A0E0126023EBA690000000000003E684D48AAA149C7C1" ++};' >/tmp/linguist.rdef ++rc /tmp/linguist.rdef ++xres -o "$QTROOT/boot/common/bin/linguist" /tmp/linguist.rsrc ++mimeset -f "$QTROOT/boot/common/bin/linguist" ++ ++###################################################################### ++echo " Qt Help Conversion Wizard" ++###################################################################### ++ ++echo 'resource app_signature "application/x-vnd.qhelpconverter"; ++ ++resource app_flags B_SINGLE_LAUNCH; ++ ++resource app_version { ++ major = 4, ++ middle = 7, ++ minor = 0, ++ variety = 0, ++ internal = 0, ++ short_info = "Qt Help Conversion Wizard", ++ long_info = "Qt Help Conversion Wizard" ++}; ++ ++resource vector_icon { ++$"6E6369660A030062250380C34205FF04003303663333020106023DDD49000000" ++ $"0000003DDD4949EEA449EEA400B00000FF993300020106043DA9380000000000" ++ $"003DA93849EEA449EEA400FFFFFF2FFF93936CFF0000FFCF000004FF7F04FF66" ++ $"04614C1E060AEFE707B93AB30DB93AB30DB8EB20B852B302B89DB2FCB852B302" ++ $"B852B302B639B327B650B325B464B34D20B6E320B4CE20B6E3CF6BB50DD154C9" ++ $"ABCDDDC9ABCDDDCB16CD9ECC35CA23CC35CBF2CC35CA23B6290606EF0BCC35CA" ++ $"23CC35CA23CC35CBF2C9ABCDDDCB16CD9EC9ABCDDDB50DD154B50DB6C2B50DB6" ++ $"C2B50DB457B93AB30DB6FBB2AEB93AB30DCC35B62906149AF9FFFF99C5DBB9A3" ++ $"C785B9D1BCBDC965BCDFBEB4C785BE9EC785C551C785C551C785C5E6C7B7C671" ++ $"C796C646C7D4C699C840C6ACC803C6ACC846C6ACC853C6ACC84CC6ACC8B1C6A6" ++ $"C987C656C918C689C987C656C987C805C987C805C8C9C859C758C89AC80FC88B" ++ $"C73DC89CC70BC89DC723C89DC665C89DC58FC80CC5E6C86DC52AC79BC4F8C5ED" ++ $"C4F8C6E5C4F8C5EDBE80C412BE75BC7EC52ABC930A04C965BEB4C785BE9EC785" ++ $"BEA8C886BEB40205C7E9C69BC826C68CC802C6A7C840C6AC55C6ACC846C6ACC8" ++ $"53C6ACC84CC6ACC8B1C6A6C987C656C918C689C987C656C8A9C656C8A9C656C8" ++ $"65C675060D9FF1FE03C58FC80CC5E6C86DC52AC79BC4F8C5EDC4F8C6E5C4F8C5" ++ $"EDBE80C412BE75BC7EC333C333BCEFC333BCEFC353BD68C37FBE79C36CBDEBC3" ++ $"7FBE79C419BE80C419C5EDC419C5EDC419C6E5C4B1C80CC44CC79BC507C86DC6" ++ $"2CC89DC586C89DC62CC89DC70BC89DC70BC89DC665C89D0A04C5DBB9A3C4FCB9" ++ $"A3C450BC83C52ABC93000BC02DC624C02DC624C084C544C0AFC0FEC0AFC38DC0" ++ $"AFBEB2C02EBC40C085BD1EBFD8BB60BEA9BAD9BF57BAE8BE9CBAD8BE82BAD7BE" ++ $"8FBAD7BDE1BAD7BD0FBBF1BD66BB35BCB2BCBEBC83C0ECBC83BE68BC83C35ABD" ++ $"0DC617BCB1C514BD65C70EBE92C789BDE7C789BE9AC789BEA9C788BEA1C788BF" ++ $"55C77DC02DC624BFD6C706C02DC6240211C2C7C6AFC35DC54DC22EC817C008C9" ++ $"6FC146C902C028CA13C099CABCC0595BC0CBCAE9C17FCB00C118CB00C19DCB00" ++ $"C1DFCAFAC1BDCAFEC1DFCAFAC1DFCCE0C1DFCCE0C1DFCCE0C103CCFDC103CCFD" ++ $"C0C2CD05C049CD09C084CD09BF88CD09BE76CC7CBEECCCDBBDDBCBFFBD1EC9A9" ++ $"BD68CB0EBBCCC961BA0EC721BAC4C88AB955C5B2B8F6C0DDB8F6C39AB8F6BDE8" ++ $"BA75BA58B977BBBABB4BB92EBDEEB89BBC76B89BBE2BB89BBEA9B8A6BE69B89F" ++ $"C064B8D9C275BB14C1A4B9AAC342BC75C3A7C10BC3A7BE71C3A7C36D0203C17F" ++ $"CB00C162CB00C19DCB00C1DFCAFAC1BDCAFEC1DFCAFAC12CCAFAC12CCAFAC145" ++ $"CAFE020DBF44BC40BEFCBB85BF9BBD1EBFC5C0FEBFC5BEB2BFC5C38DBF43C624" ++ $"BF9AC544BEFDC6D9BE20C774BE9CC749BE44C782BE92C789BE6AC789BE9AC789" ++ $"BEA9C788BEA1C788BF55C77DC02DC624BFD6C706C084C544C0AFC0FEC0AFC38D" ++ $"C0AFBEB2C02EBC40C085BD1EBFD8BB60BEA9BAD9BF57BAE8BE9CBAD8BE82BAD7" ++ $"BE8FBAD7BE5ABAD7BE10BAE9BE34BADDBE10BAE9BE10BAE9BE10BAE9BE95BB12" ++ $"0222BEEDCCC5BEEECCC6BEE9CCC4BEE1CCC0BEE5CCC2BEE1CCBFBEE0CCBFBEE0" ++ $"CCBFBEDCCCBDBED4CCB9BED8CCBBBED4CCB9BED2CCB8BED3CCB8BECFCCB6BEC8" ++ $"CCB3BECBCCB4BEC7CCB2BEC5CCB1BEC6CCB1BEC2CCAFBEBCCCACBEBFCCADBEBA" ++ $"CCABBEB8CCA9BEB9CCAABEB5CCA8BEB0CCA4BEB2CCA6BEAECCA3BEAACCA1BEAC" ++ $"CCA2BEA8CCA0BEA4CC9DBEA6CC9EBEA2CC9BBE9ECC99BEA0CC9ABE9CCC97BE98" ++ $"CC95BE9ACC96BE96CC93BE91CC90BE93CC92BE90CC8FBE8DCC8D3DCC8EBE8ACC" ++ $"8BBE84CC87BE87CC89BE83CC86BE81CC85BE82CC85BE7ECC82BE76CC7CBE7ACC" ++ $"7FBDDBCBFFBD1EC9A9BD68CB0EBBCCC961BA0EC721BAC4C88AB955C5B2B8F6C0" ++ $"DDB8F6C39AB8F6BDE8BA75BA58B977BBBABB4BB92EBDEEB89BBC76B89BBDF0B8" ++ $"9BBD03B89BBD03B89BBB8CB89BB98BBA58BA61B92EB88DBBBAB80CC0DDB80CBD" ++ $"E8B80CC39AB924C721B86AC5B2B9DAC88ABC34C9A9BAE2C961BC7ECB0EBD8CCC" ++ $"7CBCF0CBFFBE02CCDBBF5FCD09BE9ECD09BF63CD09BF6ACD09BF67CD09BF6ACD" ++ $"09C037CD09C037CD09BFB9CD07BEEECCC6BF4BCCF1BEEECCC60204B3A5BFF7B3" ++ $"A5B92CB3A5C6C2BFF7CC48B92CCC48C6C2CC48CC48BFF7CC48C6C2CC48B92CBF" ++ $"F7B3A5C6C2B3A5B92CB3A50204BB6DBFF7BB6DC277BB6DBD76BFF7BB6DBD76BB" ++ $"6DC277BB6DC481BFF7C481BD76C481C277BFF7C481C277C481BD76C481020420" ++ $"BF8820B89F20C671BF88CC11B89FCC11C671CC11CC11BF88CC11C671CC11B89F" ++ $"BF8820C67120B89F200204BB36BF88BB36C1EABB36BD26BF88BB36BD26BB36C1" ++ $"EABB36C3DBBF88C3DBBD26C3DBC1EABF88C3DBC1EAC3DBBD26C3DB0204B337BF" ++ $"88B337B8BDB337C653BF88CBDAB8BDCBDAC653CBDACBDABF88CBDAC653CBDAB8" ++ $"BDBF88B337C653B337B8BDB3370204BAFEBF88BAFEC209BAFEBD08BF88BAFEBD" ++ $"08BAFEC209BAFEC412BF88C412BD08C412C209BF88C412C209C412BD08C41202" ++ $"04BF88B3DDC5FAB3DDB916B3DDB3DDBF88B3DDB916B3DDC5FABF88CB34B916CB" ++ $"34C5FACB34CB34BF88CB34C5FACB34B9160204BF88C4B8C264C4B8BCACC4B8BA" ++ $"58BF88BA58C264BA58BCACBF88BA58BCACBA58C264BA58C4B8BF88C4B8BCACC4" ++ $"B8C2640206BF88B63DB9D4B63DC53CB63DCA4FC04AC9EBBAAFCA53C00ACA56BF" ++ $"88CA56BFC9CA56B993BF88B4BAC57DB4BAB993B4BAB4BABF88B4BAB993B4BABF" ++ $"C9B4C2C04AB4BDC00AB525BAAF0206BF88C718BC32C718C2DEC718C595C10BC5" ++ $"95C462C595C0CAC589C04AC591C089C529C345BF88C595C29DC595BC74C595B9" ++ $"88C04AB9E7C345B980C089B97BC10BB97BC0CAB97BC4620206BF88CB34BD68CB" ++ $"34C1A8CB34C55EC9A3C3A6CAA1C55EC9A3C220C405C220C405C15CC477BF88C4" ++ $"B8C07AC4B8BE97C4B8BCF1C405BDB4C477BCF1C405B9B3C9A3B9B3C9A3BB6ACA" ++ $"A10206BF88B3DDC1A8B3DDBD68B3DDB9B3B56DBB6AB46FB9B3B56DBCF1BB0BBC" ++ $"F1BB0BBDB4BA9ABF88BA58BE97BA58C07ABA58C220BB0BC15CBA9AC220BB0BC5" ++ $"5EB56DC55EB56DC3A6B46F0206C4B8BF88C4B8BE97C4B8C07AC405C220C477C1" ++ $"5CC405C220C9A3C55EC9A3C55ECAA1C3A6CB34BF88CB34C1A8CB34BD68C9A3B9" ++ $"B3CAA1BB6AC9A3B9B3C405BCF1C405BCF1C477BDB40206BA58BF88BA58C07ABA" ++ $"58BE97BB0BBCF1BA9ABDB4BB0BBCF1B56DB9B3B56DB9B3B46FBB6AB3DDBF88B3" ++ $"DDBD68B3DDC1A8B56DC55EB46FC3A6B56DC55EBB0BC220BB0BC220BA9AC15C02" ++ $"06BF88B90DC264B90DBCACB90DBA58BE3CBA58BB60BA58BE75BA63BEE2BA5CBE" ++ $"ACBAB5BC54BF88BA58BCE4BA58C22CBA58C4ADBEE2C45BBC54C4B4BEACC4B8BE" ++ $"3CC4B8BE75C4B8BB600206BF88C9E8C5C2C9E8B94EC9E8B3E2BEE2B438C507B3" ++ $"DFBF19B3DDBF88B3DDBF50B3DDC5FABF88CB34B916CB34C5FACB34CB34BF88CB" ++ $"34C5FACB34BF50CB2FBEE2CB32BF19CAD9C5070206BF88CB34B93ECB34C5D2CB" ++ $"34CB31BFFECAF2C639CB30BFE9CB2F40CB30BFD4CAD9C5E4BF88CAC5C5C2CAC5" ++ $"B94ECAC5B3E240B438C5E4B3E0BFD4B3E0BFFEB3E1BFE9B41EC6390206BA58BF" ++ $"1ABA58BC3DBA58BF2ABA5ABF49BA59BF39BA7BBC8ABF88BA58BCC1BA58C24FBA" ++ $"58C4B6BF49C495BC8AC4B7BF39C4B8BF1AC4B8BF2AC4B8BC3DBF88B9EAC264B9" ++ $"EABCACB9EA150A000100023F6E570000000000003F0079920DF9AFA7960A0101" ++ $"01023F6E570000000000003F0079920DF9AFA7960A020102023F6E5700000000" ++ $"00003F0079920DF9AFA7960A000103023F6E570000000000003F0079920DF9AF" ++ $"A7960A000104023F6E570000000000003F0079920DF9AFA7960A00020506023F" ++ $"6E570000000000003F0079920DF9AFA7960A02020708023F6E57000000000000" ++ $"3F0079920DF9AFA7960A000109023F6E570000000000003F0079920DF9AFA796" ++ $"0A00020A0B023D6A390000000000003D3C934A3EB74A17E90A03020C0D023DD6" ++ $"F90000000000003DF73F4A20004A10000A04020E0F023DD6F90000000000003D" ++ $"F73F4A20004A10000A05021011023DD6F90000000000003DF73F4A20004A1000" ++ $"0A06021213023DD6F90000000000003DF73F4A20004A10000A070114023DD6F9" ++ $"0000000000003DF73F4A20004A10000A080115023DD6F90000000000003DF73F" ++ $"4A20004A10000A020116023DD6F90000000000003DF73F4A20004A10000A0201" ++ $"17023DD6F90000000000003DF73F4A20004A10000A020118023DD6F900000000" ++ $"00003DF73F4A20004A10000A020119023DD6F90000000000003DF73F4A20004A" ++ $"10000A09021A1B023DD6F90000000000003DF73F4A20004A10000A09021C1D02" ++ $"3DD6F90000000000003DF73F4A20004A1000" ++};' >/tmp/qhelpconverter.rdef ++rc /tmp/qhelpconverter.rdef ++xres -o "$QTROOT/boot/common/bin/qhelpconverter" /tmp/qhelpconverter.rsrc ++mimeset -f "$QTROOT/boot/common/bin/qhelpconverter" ++ ++###################################################################### ++echo " Qt QML Viewer" ++###################################################################### ++ ++echo 'resource app_signature "application/x-vnd.qmlviewer"; ++ ++resource app_flags B_MULTIPLE_LAUNCH; ++ ++resource app_version { ++ major = 4, ++ middle = 7, ++ minor = 0, ++ variety = 0, ++ internal = 0, ++ short_info = "Qt QML Viewer", ++ long_info = "Qt QML Viewer" ++}; ++ ++resource file_types message { ++ "types" = "text/x-qml", ++ "types" = "application/x-qml" ++}; ++ ++resource vector_icon { ++ $"6E63696603030062250380C34205FF0C060AEFE707B93AB30DB93AB30DB8EB20" ++ $"B852B302B89DB2FCB852B302B852B302B639B327B650B325B464B34D20B6E320" ++ $"B4CE20B6E3CF6BB50DD154C9ABCDDDC9ABCDDDCB16CD9ECC35CA23CC35CBF2CC" ++ $"35CA23B6290606EF0BCC35CA23CC35CA23CC35CBF2C9ABCDDDCB16CD9EC9ABCD" ++ $"DDB50DD154B50DB6C2B50DB6C2B50DB457B93AB30DB6FBB2AEB93AB30DCC35B6" ++ $"2906149AF9FFFF99C5DBB9A3C785B9D1BCBDC965BCDFBEB4C785BE9EC785C551" ++ $"C785C551C785C5E6C7B7C671C796C646C7D4C699C840C6ACC803C6ACC846C6AC" ++ $"C853C6ACC84CC6ACC8B1C6A6C987C656C918C689C987C656C987C805C987C805" ++ $"C8C9C859C758C89AC80FC88BC73DC89CC70BC89DC723C89DC665C89DC58FC80C" ++ $"C5E6C86DC52AC79BC4F8C5EDC4F8C6E5C4F8C5EDBE80C412BE75BC7EC52ABC93" ++ $"0A04C965BEB4C785BE9EC785BEA8C886BEB40205C7E9C69BC826C68CC802C6A7" ++ $"C840C6AC55C6ACC846C6ACC853C6ACC84CC6ACC8B1C6A6C987C656C918C689C9" ++ $"87C656C8A9C656C8A9C656C865C675060D9FF1FE03C58FC80CC5E6C86DC52AC7" ++ $"9BC4F8C5EDC4F8C6E5C4F8C5EDBE80C412BE75BC7EC333C333BCEFC333BCEFC3" ++ $"53BD68C37FBE79C36CBDEBC37FBE79C419BE80C419C5EDC419C5EDC419C6E5C4" ++ $"B1C80CC44CC79BC507C86DC62CC89DC586C89DC62CC89DC70BC89DC70BC89DC6" ++ $"65C89D0A04C5DBB9A3C4FCB9A3C450BC83C52ABC93000BC02DC624C02DC624C0" ++ $"84C544C0AFC0FEC0AFC38DC0AFBEB2C02EBC40C085BD1EBFD8BB60BEA9BAD9BF" ++ $"57BAE8BE9CBAD8BE82BAD7BE8FBAD7BDE1BAD7BD0FBBF1BD66BB35BCB2BCBEBC" ++ $"83C0ECBC83BE68BC83C35ABD0DC617BCB1C514BD65C70EBE92C789BDE7C789BE" ++ $"9AC789BEA9C788BEA1C788BF55C77DC02DC624BFD6C706C02DC6240211C2C7C6" ++ $"AFC35DC54DC22EC817C008C96FC146C902C028CA13C099CABCC0595BC0CBCAE9" ++ $"C17FCB00C118CB00C19DCB00C1DFCAFAC1BDCAFEC1DFCAFAC1DFCCE0C1DFCCE0" ++ $"C1DFCCE0C103CCFDC103CCFDC0C2CD05C049CD09C084CD09BF88CD09BE76CC7C" ++ $"BEECCCDBBDDBCBFFBD1EC9A9BD68CB0EBBCCC961BA0EC721BAC4C88AB955C5B2" ++ $"B8F6C0DDB8F6C39AB8F6BDE8BA75BA58B977BBBABB4BB92EBDEEB89BBC76B89B" ++ $"BE2BB89BBEA9B8A6BE69B89FC064B8D9C275BB14C1A4B9AAC342BC75C3A7C10B" ++ $"C3A7BE71C3A7C36D0203C17FCB00C162CB00C19DCB00C1DFCAFAC1BDCAFEC1DF" ++ $"CAFAC12CCAFAC12CCAFAC145CAFE020DBF44BC40BEFCBB85BF9BBD1EBFC5C0FE" ++ $"BFC5BEB2BFC5C38DBF43C624BF9AC544BEFDC6D9BE20C774BE9CC749BE44C782" ++ $"BE92C789BE6AC789BE9AC789BEA9C788BEA1C788BF55C77DC02DC624BFD6C706" ++ $"C084C544C0AFC0FEC0AFC38DC0AFBEB2C02EBC40C085BD1EBFD8BB60BEA9BAD9" ++ $"BF57BAE8BE9CBAD8BE82BAD7BE8FBAD7BE5ABAD7BE10BAE9BE34BADDBE10BAE9" ++ $"BE10BAE9BE10BAE9BE95BB120222BEEDCCC5BEEECCC6BEE9CCC4BEE1CCC0BEE5" ++ $"CCC2BEE1CCBFBEE0CCBFBEE0CCBFBEDCCCBDBED4CCB9BED8CCBBBED4CCB9BED2" ++ $"CCB8BED3CCB8BECFCCB6BEC8CCB3BECBCCB4BEC7CCB2BEC5CCB1BEC6CCB1BEC2" ++ $"CCAFBEBCCCACBEBFCCADBEBACCABBEB8CCA9BEB9CCAABEB5CCA8BEB0CCA4BEB2" ++ $"CCA6BEAECCA3BEAACCA1BEACCCA2BEA8CCA0BEA4CC9DBEA6CC9EBEA2CC9BBE9E" ++ $"CC99BEA0CC9ABE9CCC97BE98CC95BE9ACC96BE96CC93BE91CC90BE93CC92BE90" ++ $"CC8FBE8DCC8D3DCC8EBE8ACC8BBE84CC87BE87CC89BE83CC86BE81CC85BE82CC" ++ $"85BE7ECC82BE76CC7CBE7ACC7FBDDBCBFFBD1EC9A9BD68CB0EBBCCC961BA0EC7" ++ $"21BAC4C88AB955C5B2B8F6C0DDB8F6C39AB8F6BDE8BA75BA58B977BBBABB4BB9" ++ $"2EBDEEB89BBC76B89BBDF0B89BBD03B89BBD03B89BBB8CB89BB98BBA58BA61B9" ++ $"2EB88DBBBAB80CC0DDB80CBDE8B80CC39AB924C721B86AC5B2B9DAC88ABC34C9" ++ $"A9BAE2C961BC7ECB0EBD8CCC7CBCF0CBFFBE02CCDBBF5FCD09BE9ECD09BF63CD" ++ $"09BF6ACD09BF67CD09BF6ACD09C037CD09C037CD09BFB9CD07BEEECCC6BF4BCC" ++ $"F1BEEECCC6090A000100023F8EB50000000000003F43B74400003FFD4E0A0101" ++ $"01023F8EB50000000000003F43B74400003FFD4E0A020102023F8EB500000000" ++ $"00003F43B74400003FFD4E0A000103023F8EB50000000000003F43B74400003F" ++ $"FD4E0A000104023F8EB50000000000003F43B74400003FFD4E0A00020506023F" ++ $"8EB50000000000003F43B74400003FFD4E0A02020708023F8EB5000000000000" ++ $"3F43B74400003FFD4E0A000109023F8EB50000000000003F43B74400003FFD4E" ++ $"0A00020A0B023F8EB50000000000003F43B74400003FFD4E" ++};' >/tmp/qmlviewer.rdef ++rc /tmp/qmlviewer.rdef ++xres -o "$QTROOT/boot/common/bin/qmlviewer" /tmp/qmlviewer.rsrc ++mimeset -f "$QTROOT/boot/common/bin/qmlviewer" ++ ++###################################################################### ++echo " Qt Config" ++###################################################################### ++ ++echo 'resource app_signature "application/x-vnd.qtconfig"; ++ ++resource app_flags B_SINGLE_LAUNCH; ++ ++resource app_version { ++ major = 4, ++ middle = 7, ++ minor = 0, ++ variety = 0, ++ internal = 0, ++ short_info = "Qt Config", ++ long_info = "Qt Configuration" ++}; ++ ++resource vector_icon { ++ $"6E6369660503076324037FC24105FF03FFC96903FFB23D120206B5BEB707B536" ++ $"2CB633B636B808B600B73BB634B74CB695B69AB859B683B751B68BBD18B68CC6" ++ $"98B6B0C1D8B611C63CB55AC544B53DC604B549C162B552B99BB55CBD7EB55AB8" ++ $"BE0206B84DBEAAB86CC012B83FBCDFB9F1B97DB827BA84B9F1B97DB9D031B9D0" ++ $"31B95DBAB7B8D7BCBFB8E7BBAFB8B7BE98BA29C21EB8CBC0B5BA29C21EBA5DC2" ++ $"5FBA5DC25FB8B3C2070204BF62BB21BF62BB21BF16BA7FC007B981BF98B9EAC0" ++ $"07B981BFF9B9DABFF9B9DABFE3BA57BF9BBB4ABFCDBAD5BF9BBB4A0203BC34BA" ++ $"5FBCD4BCAFBD21BB14BD2DBD61BD2CBC51BD27BEC2BC4EC16FBD5AC059BCB5BF" ++ $"180207BE8FBB35BE8FBB35BEACBB56BF01BBBBBEE5BB99BF45BC41BF88BD65BF" ++ $"91BCCBBF88BEE8BFCEC1ECBF8EC06DBFCEC1ECBFD8C237BFD8C237BE6DC0B2BE" ++ $"D5BCAABF6ABE7BBEC4BC49BE9EBB89BEB2BBE9BE9EBB890204C71DBD22C736BD" ++ $"A4C767BCD4C7EDBC2DC7ACBC81C7EABD15C816BEE3C7FCBDFCC7ECBED4C76FBE" ++ $"A8C799BEB6C754BE250204CC18BCAFCC3DBCCBCC35BCA2CC88BC7BCC6CBC88CC" ++ $"99BC97CCCDBCEDCCBBBCD0CCCDBCEDCCA9BD1CCCA9BD1CCC84BD010203BA8AC2" ++ $"60BAB9C313BB18C2A3BB94C3BDBB55C337BB94C3BDBBBAC414BBBAC414BAFBC3" ++ $"CD0204C139C355C166C38EC189C2FAC22CC246C1DAC29FC229C277C21FC30AC2" ++ $"22C2D9C20DC370C1EAC43BC1FDC3D645C4010203C630C65CC650C678C6A2C63C" ++ $"C790C627C719C631C7BEC694C6B1C6CDC70BC6E1C691C6B1000CB808B600B808" ++ $"B600BBE6B67FC399B7CCBFBCB740C3BFBA8DC3E2C011C34DBD5BC335C100C21F" ++ $"C30AC297C1FDC222C2D9C22CC246C229C277C1DAC29FC139C355C189C2FAC128" ++ $"C33FC0F3C2FDC104C313BFDDC3BEBE23C5C1BEE0C4A7BB94C5CAB689C6DBB90F" ++ $"C674B689C6DBB68CC698B68CC698B6B0C1D8B69AB859B68BBD18B683B751B808" ++ $"B600B74CB695B808B600021CB9D031BAB9B96FB9D031B9F1B97DB9F1B97DB827" ++ $"BA84B84DBEAAB83FBCDFB86CC012BA5DC25FB8B3C207BA5DC25FBA29C21EBA29" ++ $"C21EBA41C22EBA8AC260BA72C24FBAB9C313BBBAC414BAFBC3CDBBBAC414BB94" ++ $"C3BDBB94C3BDBC18C464BDC4C45DBCFDC485BE0FC38FBCC8C29ABD34C323BEDA" ++ $"C169BED5BCAABEF2BEC6BF6ABE7BBFD8C237BE6DC0B2BFD8C237BFCEC1ECBFCE" ++ $"C1ECC091C1E5C210C19FC152C1CDC1BAC13FC10EC07DC156C0E9C0EFBF38C0FE" ++ $"BCACC108BDF2C15738C209BC57C1B0BC73C209BC27C205BB96C207BBC6C1AEBB" ++ $"85C0FFBB63C156BB74C0FDBADEC0F7B9D3C0FBBA58C0B7B9D4BFF9B9DAC038B9" ++ $"D8BFF9B9DAC007B981C007B981BF98B9EABF62BB21BF16BA7FBF62BB21BF9BBB" ++ $"4ABF9BBB4ABF75BB66BF01BBBBBF28BB9FBEE5BB99BE8FBB35BEACBB56BE8FBB" ++ $"35BE9EBB89BE9EBB89BE4ABA9ABCB1B957BDB1B9A5BBB7B8ED0205BACDBE05BA" ++ $"DCBF5CBAD4BC9EBC25BA18BAAABAD6BC25BA18BC34BA5FBC34BA5FBCD4BCAFBC" ++ $"4EC16FBCB5BF18BC4EC16FBC45C1B1BC45C1B1BAC2C11C000BB9D031B9D031BA" ++ $"B9B96FBCB1B957BBB7B8EDBDB1B9A5BE9EBB89BE4ABA9ABEB2BBE9BED5BCAABE" ++ $"C4BC49BEF2BEC6BCC8C29ABEDAC169BD34C323BDC4C45DBE0FC38FBCFDC485BB" ++ $"94C3BDBC18C464BB55C337BA8AC260BB18C2A3BA72C24FBA29C21EBA41C22EB8" ++ $"CBC0B5B8D7BCBFB8B7BE98B8E7BBAFB9D031B95DBAB7B9D0310206BACDBE05BA" ++ $"D4BC9EBADCBF5CBC45C1B1BAC2C11CBC45C1B1BC4EC16FBC4EC16FBD5AC059BD" ++ $"2DBD61BD27BEC2BD2CBC51BC34BA5FBD21BB14BC34BA5FBC25BA18BC25BA18BA" ++ $"AABAD6020CBFF9B9DABFE3BA57C038B9D8C0F7B9D3C0B7B9D4C0FBBA58C0FFBB" ++ $"63C0FDBADEC156BB74C205BB96C1AEBB85C207BBC6C209BC57C209BC27C1B0BC" ++ $"73C0FEBCACC15738C108BDF2C10EC07DC0EFBF38C156C0E9C210C19FC1BAC13F" ++ $"C152C1CDBFCEC1ECC091C1E5BF8EC06DBF88BD65BF88BEE8BF91BCCBBF01BBBB" ++ $"BF45BC41BF28BB9FBF9BBB4ABF75BB66BFCDBAD50212C7EDBC2DC7EABD15C9C2" ++ $"BB14CDE2BA16CBBCBA3ECD99BAD4CD0EBC54CD4FBB93CCEDBC5ECC88BC7BCCA9" ++ $"BC71CC6CBC88CC18BCAFCC35BCA2CC3DBCCBCCA9BD1CCC84BD01CCA9BD1CCCF1" ++ $"BD33CCF1BD33CC7DBE87CBA3C136CC5BBFFDCB2AC222C93FC2D3CA15C25BC9B5" ++ $"C2EACAA2C31BCA2CC302CA24C47DC790C627C935C613C719C631C630C65CC6A2" ++ $"C63CC650C678C6B1C6CDC691C6B1C6B1C6CDC704C711C704C711C53AC85DC0CD" ++ $"C835C2ED56C330C72BC6C1C347C567C589C795C1E5C76FBEA8C7ACC037C799BE" ++ $"B6C816BEE3C7ECBED4C7FCBDFC020EC3E2C011C335C100C4E3BF09C71DBD22C5" ++ $"C2BDB8C736BDA4C76FBEA8C754BE25C7ACC037C6C1C347C795C1E5C567C589C0" ++ $"CDC835C330C72BBFD7C808BE02C755BEEAC7B0BBDFC875B712C8DFB96DC89CB6" ++ $"FAC8A4B6B2C7F5B6CAC82FB8C4C812BCD6C728BAE0C7D8BD88C6FEBE23C5C1BD" ++ $"C1C644BEE0C4A7C0F3C2FDBFDDC3BEC104C313C139C355C128C33FC166C38EC1" ++ $"EAC43B45C401C1FDC3D6C21FC30AC20DC370C297C1FD100A000100201B210A00" ++ $"0101201B210A000102201B210A000103201B210A000104201B210A000105201B" ++ $"210A000106201B210A000107201B210A000108201B210A000109201B210A0102" ++ $"0A0B201B210A01010C201B210A02020D0E201B210A02010F201B210A03011020" ++ $"1B210A040111201B21" ++};' >/tmp/qtconfig.rdef ++rc /tmp/qtconfig.rdef ++xres -o "$QTROOT/boot/common/bin/qtconfig" /tmp/qtconfig.rsrc ++mimeset -f "$QTROOT/boot/common/bin/qtconfig" ++ ++ ++###################################################################### ++echo "Make menu items" ++###################################################################### ++mkdir -p "$QTROOT/boot/home/config/be/Preferences" ++mkdir -p "$QTROOT/boot/home/config/be/Qt/Development" ++ln -s -f "/boot/common/data/licenses/LGPL v2.1" "$QTROOT/boot/home/config/be/Qt/LGPL v2.1" ++ln -s -f "/boot/common/bin/qtconfig" "$QTROOT/boot/home/config/be/Preferences/Qt Config" ++ln -s -f "/boot/common/bin/assistant" "$QTROOT/boot/home/config/be/Qt/Development/Qt Assistant" ++ln -s -f "/boot/common/bin/designer" "$QTROOT/boot/home/config/be/Qt/Development/Qt Designer" ++ln -s -f "/boot/common/bin/qhelpconverter" "$QTROOT/boot/home/config/be/Qt/Development/Qt Help Conversion Wizard" ++ln -s -f "/boot/common/bin/linguist" "$QTROOT/boot/home/config/be/Qt/Development/Qt Linguist" ++ln -s -f "/boot/common/bin/qmlviewer" "$QTROOT/boot/home/config/be/Qt/Development/Qt QML Viewer" ++ ++ ++###################################################################### ++# create GNU Free Documentation License file ++###################################################################### ++mkdir -p "$QTROOT/boot/common/data/licenses" ++echo " ++ GNU Free Documentation License ++ Version 1.3, 3 November 2008 ++ ++ ++ Copyright (C) 2000, 2001, 2002, 2007, 2008 Free Software Foundation, Inc. ++ ++ Everyone is permitted to copy and distribute verbatim copies ++ of this license document, but changing it is not allowed. ++ ++0. PREAMBLE ++ ++The purpose of this License is to make a manual, textbook, or other ++functional and useful document \"free\" in the sense of freedom: to ++assure everyone the effective freedom to copy and redistribute it, ++with or without modifying it, either commercially or noncommercially. ++Secondarily, this License preserves for the author and publisher a way ++to get credit for their work, while not being considered responsible ++for modifications made by others. ++ ++This License is a kind of \"copyleft\", which means that derivative ++works of the document must themselves be free in the same sense. It ++complements the GNU General Public License, which is a copyleft ++license designed for free software. ++ ++We have designed this License in order to use it for manuals for free ++software, because free software needs free documentation: a free ++program should come with manuals providing the same freedoms that the ++software does. But this License is not limited to software manuals; ++it can be used for any textual work, regardless of subject matter or ++whether it is published as a printed book. We recommend this License ++principally for works whose purpose is instruction or reference. ++ ++ ++1. APPLICABILITY AND DEFINITIONS ++ ++This License applies to any manual or other work, in any medium, that ++contains a notice placed by the copyright holder saying it can be ++distributed under the terms of this License. Such a notice grants a ++world-wide, royalty-free license, unlimited in duration, to use that ++work under the conditions stated herein. The \"Document\", below, ++refers to any such manual or work. Any member of the public is a ++licensee, and is addressed as \"you\". You accept the license if you ++copy, modify or distribute the work in a way requiring permission ++under copyright law. ++ ++A \"Modified Version\" of the Document means any work containing the ++Document or a portion of it, either copied verbatim, or with ++modifications and/or translated into another language. ++ ++A \"Secondary Section\" is a named appendix or a front-matter section of ++the Document that deals exclusively with the relationship of the ++publishers or authors of the Document to the Document's overall ++subject (or to related matters) and contains nothing that could fall ++directly within that overall subject. (Thus, if the Document is in ++part a textbook of mathematics, a Secondary Section may not explain ++any mathematics.) The relationship could be a matter of historical ++connection with the subject or with related matters, or of legal, ++commercial, philosophical, ethical or political position regarding ++them. ++ ++The \"Invariant Sections\" are certain Secondary Sections whose titles ++are designated, as being those of Invariant Sections, in the notice ++that says that the Document is released under this License. If a ++section does not fit the above definition of Secondary then it is not ++allowed to be designated as Invariant. The Document may contain zero ++Invariant Sections. If the Document does not identify any Invariant ++Sections then there are none. ++ ++The \"Cover Texts\" are certain short passages of text that are listed, ++as Front-Cover Texts or Back-Cover Texts, in the notice that says that ++the Document is released under this License. A Front-Cover Text may ++be at most 5 words, and a Back-Cover Text may be at most 25 words. ++ ++A \"Transparent\" copy of the Document means a machine-readable copy, ++represented in a format whose specification is available to the ++general public, that is suitable for revising the document ++straightforwardly with generic text editors or (for images composed of ++pixels) generic paint programs or (for drawings) some widely available ++drawing editor, and that is suitable for input to text formatters or ++for automatic translation to a variety of formats suitable for input ++to text formatters. A copy made in an otherwise Transparent file ++format whose markup, or absence of markup, has been arranged to thwart ++or discourage subsequent modification by readers is not Transparent. ++An image format is not Transparent if used for any substantial amount ++of text. A copy that is not \"Transparent\" is called \"Opaque\". ++ ++Examples of suitable formats for Transparent copies include plain ++ASCII without markup, Texinfo input format, LaTeX input format, SGML ++or XML using a publicly available DTD, and standard-conforming simple ++HTML, PostScript or PDF designed for human modification. Examples of ++transparent image formats include PNG, XCF and JPG. Opaque formats ++include proprietary formats that can be read and edited only by ++proprietary word processors, SGML or XML for which the DTD and/or ++processing tools are not generally available, and the ++machine-generated HTML, PostScript or PDF produced by some word ++processors for output purposes only. ++ ++The \"Title Page\" means, for a printed book, the title page itself, ++plus such following pages as are needed to hold, legibly, the material ++this License requires to appear in the title page. For works in ++formats which do not have any title page as such, \"Title Page\" means ++the text near the most prominent appearance of the work's title, ++preceding the beginning of the body of the text. ++ ++The \"publisher\" means any person or entity that distributes copies of ++the Document to the public. ++ ++A section \"Entitled XYZ\" means a named subunit of the Document whose ++title either is precisely XYZ or contains XYZ in parentheses following ++text that translates XYZ in another language. (Here XYZ stands for a ++specific section name mentioned below, such as \"Acknowledgements\", ++\"Dedications\", \"Endorsements\", or \"History\".) To \"Preserve the Title\" ++of such a section when you modify the Document means that it remains a ++section \"Entitled XYZ\" according to this definition. ++ ++The Document may include Warranty Disclaimers next to the notice which ++states that this License applies to the Document. These Warranty ++Disclaimers are considered to be included by reference in this ++License, but only as regards disclaiming warranties: any other ++implication that these Warranty Disclaimers may have is void and has ++no effect on the meaning of this License. ++ ++2. VERBATIM COPYING ++ ++You may copy and distribute the Document in any medium, either ++commercially or noncommercially, provided that this License, the ++copyright notices, and the license notice saying this License applies ++to the Document are reproduced in all copies, and that you add no ++other conditions whatsoever to those of this License. You may not use ++technical measures to obstruct or control the reading or further ++copying of the copies you make or distribute. However, you may accept ++compensation in exchange for copies. If you distribute a large enough ++number of copies you must also follow the conditions in section 3. ++ ++You may also lend copies, under the same conditions stated above, and ++you may publicly display copies. ++ ++ ++3. COPYING IN QUANTITY ++ ++If you publish printed copies (or copies in media that commonly have ++printed covers) of the Document, numbering more than 100, and the ++Document's license notice requires Cover Texts, you must enclose the ++copies in covers that carry, clearly and legibly, all these Cover ++Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on ++the back cover. Both covers must also clearly and legibly identify ++you as the publisher of these copies. The front cover must present ++the full title with all words of the title equally prominent and ++visible. You may add other material on the covers in addition. ++Copying with changes limited to the covers, as long as they preserve ++the title of the Document and satisfy these conditions, can be treated ++as verbatim copying in other respects. ++ ++If the required texts for either cover are too voluminous to fit ++legibly, you should put the first ones listed (as many as fit ++reasonably) on the actual cover, and continue the rest onto adjacent ++pages. ++ ++If you publish or distribute Opaque copies of the Document numbering ++more than 100, you must either include a machine-readable Transparent ++copy along with each Opaque copy, or state in or with each Opaque copy ++a computer-network location from which the general network-using ++public has access to download using public-standard network protocols ++a complete Transparent copy of the Document, free of added material. ++If you use the latter option, you must take reasonably prudent steps, ++when you begin distribution of Opaque copies in quantity, to ensure ++that this Transparent copy will remain thus accessible at the stated ++location until at least one year after the last time you distribute an ++Opaque copy (directly or through your agents or retailers) of that ++edition to the public. ++ ++It is requested, but not required, that you contact the authors of the ++Document well before redistributing any large number of copies, to ++give them a chance to provide you with an updated version of the ++Document. ++ ++ ++4. MODIFICATIONS ++ ++You may copy and distribute a Modified Version of the Document under ++the conditions of sections 2 and 3 above, provided that you release ++the Modified Version under precisely this License, with the Modified ++Version filling the role of the Document, thus licensing distribution ++and modification of the Modified Version to whoever possesses a copy ++of it. In addition, you must do these things in the Modified Version: ++ ++A. Use in the Title Page (and on the covers, if any) a title distinct ++ from that of the Document, and from those of previous versions ++ (which should, if there were any, be listed in the History section ++ of the Document). You may use the same title as a previous version ++ if the original publisher of that version gives permission. ++B. List on the Title Page, as authors, one or more persons or entities ++ responsible for authorship of the modifications in the Modified ++ Version, together with at least five of the principal authors of the ++ Document (all of its principal authors, if it has fewer than five), ++ unless they release you from this requirement. ++C. State on the Title page the name of the publisher of the ++ Modified Version, as the publisher. ++D. Preserve all the copyright notices of the Document. ++E. Add an appropriate copyright notice for your modifications ++ adjacent to the other copyright notices. ++F. Include, immediately after the copyright notices, a license notice ++ giving the public permission to use the Modified Version under the ++ terms of this License, in the form shown in the Addendum below. ++G. Preserve in that license notice the full lists of Invariant Sections ++ and required Cover Texts given in the Document's license notice. ++H. Include an unaltered copy of this License. ++I. Preserve the section Entitled \"History\", Preserve its Title, and add ++ to it an item stating at least the title, year, new authors, and ++ publisher of the Modified Version as given on the Title Page. If ++ there is no section Entitled \"History\" in the Document, create one ++ stating the title, year, authors, and publisher of the Document as ++ given on its Title Page, then add an item describing the Modified ++ Version as stated in the previous sentence. ++J. Preserve the network location, if any, given in the Document for ++ public access to a Transparent copy of the Document, and likewise ++ the network locations given in the Document for previous versions ++ it was based on. These may be placed in the \"History\" section. ++ You may omit a network location for a work that was published at ++ least four years before the Document itself, or if the original ++ publisher of the version it refers to gives permission. ++K. For any section Entitled \"Acknowledgements\" or \"Dedications\", ++ Preserve the Title of the section, and preserve in the section all ++ the substance and tone of each of the contributor acknowledgements ++ and/or dedications given therein. ++L. Preserve all the Invariant Sections of the Document, ++ unaltered in their text and in their titles. Section numbers ++ or the equivalent are not considered part of the section titles. ++M. Delete any section Entitled \"Endorsements\". Such a section ++ may not be included in the Modified Version. ++N. Do not retitle any existing section to be Entitled \"Endorsements\" ++ or to conflict in title with any Invariant Section. ++O. Preserve any Warranty Disclaimers. ++ ++If the Modified Version includes new front-matter sections or ++appendices that qualify as Secondary Sections and contain no material ++copied from the Document, you may at your option designate some or all ++of these sections as invariant. To do this, add their titles to the ++list of Invariant Sections in the Modified Version's license notice. ++These titles must be distinct from any other section titles. ++ ++You may add a section Entitled \"Endorsements\", provided it contains ++nothing but endorsements of your Modified Version by various ++parties--for example, statements of peer review or that the text has ++been approved by an organization as the authoritative definition of a ++standard. ++ ++You may add a passage of up to five words as a Front-Cover Text, and a ++passage of up to 25 words as a Back-Cover Text, to the end of the list ++of Cover Texts in the Modified Version. Only one passage of ++Front-Cover Text and one of Back-Cover Text may be added by (or ++through arrangements made by) any one entity. If the Document already ++includes a cover text for the same cover, previously added by you or ++by arrangement made by the same entity you are acting on behalf of, ++you may not add another; but you may replace the old one, on explicit ++permission from the previous publisher that added the old one. ++ ++The author(s) and publisher(s) of the Document do not by this License ++give permission to use their names for publicity for or to assert or ++imply endorsement of any Modified Version. ++ ++ ++5. COMBINING DOCUMENTS ++ ++You may combine the Document with other documents released under this ++License, under the terms defined in section 4 above for modified ++versions, provided that you include in the combination all of the ++Invariant Sections of all of the original documents, unmodified, and ++list them all as Invariant Sections of your combined work in its ++license notice, and that you preserve all their Warranty Disclaimers. ++ ++The combined work need only contain one copy of this License, and ++multiple identical Invariant Sections may be replaced with a single ++copy. If there are multiple Invariant Sections with the same name but ++different contents, make the title of each such section unique by ++adding at the end of it, in parentheses, the name of the original ++author or publisher of that section if known, or else a unique number. ++Make the same adjustment to the section titles in the list of ++Invariant Sections in the license notice of the combined work. ++ ++In the combination, you must combine any sections Entitled \"History\" ++in the various original documents, forming one section Entitled ++\"History\"; likewise combine any sections Entitled \"Acknowledgements\", ++and any sections Entitled \"Dedications\". You must delete all sections ++Entitled \"Endorsements\". ++ ++ ++6. COLLECTIONS OF DOCUMENTS ++ ++You may make a collection consisting of the Document and other ++documents released under this License, and replace the individual ++copies of this License in the various documents with a single copy ++that is included in the collection, provided that you follow the rules ++of this License for verbatim copying of each of the documents in all ++other respects. ++ ++You may extract a single document from such a collection, and ++distribute it individually under this License, provided you insert a ++copy of this License into the extracted document, and follow this ++License in all other respects regarding verbatim copying of that ++document. ++ ++ ++7. AGGREGATION WITH INDEPENDENT WORKS ++ ++A compilation of the Document or its derivatives with other separate ++and independent documents or works, in or on a volume of a storage or ++distribution medium, is called an \"aggregate\" if the copyright ++resulting from the compilation is not used to limit the legal rights ++of the compilation's users beyond what the individual works permit. ++When the Document is included in an aggregate, this License does not ++apply to the other works in the aggregate which are not themselves ++derivative works of the Document. ++ ++If the Cover Text requirement of section 3 is applicable to these ++copies of the Document, then if the Document is less than one half of ++the entire aggregate, the Document's Cover Texts may be placed on ++covers that bracket the Document within the aggregate, or the ++electronic equivalent of covers if the Document is in electronic form. ++Otherwise they must appear on printed covers that bracket the whole ++aggregate. ++ ++ ++8. TRANSLATION ++ ++Translation is considered a kind of modification, so you may ++distribute translations of the Document under the terms of section 4. ++Replacing Invariant Sections with translations requires special ++permission from their copyright holders, but you may include ++translations of some or all Invariant Sections in addition to the ++original versions of these Invariant Sections. You may include a ++translation of this License, and all the license notices in the ++Document, and any Warranty Disclaimers, provided that you also include ++the original English version of this License and the original versions ++of those notices and disclaimers. In case of a disagreement between ++the translation and the original version of this License or a notice ++or disclaimer, the original version will prevail. ++ ++If a section in the Document is Entitled \"Acknowledgements\", ++\"Dedications\", or \"History\", the requirement (section 4) to Preserve ++its Title (section 1) will typically require changing the actual ++title. ++ ++ ++9. TERMINATION ++ ++You may not copy, modify, sublicense, or distribute the Document ++except as expressly provided under this License. Any attempt ++otherwise to copy, modify, sublicense, or distribute it is void, and ++will automatically terminate your rights under this License. ++ ++However, if you cease all violation of this License, then your license ++from a particular copyright holder is reinstated (a) provisionally, ++unless and until the copyright holder explicitly and finally ++terminates your license, and (b) permanently, if the copyright holder ++fails to notify you of the violation by some reasonable means prior to ++60 days after the cessation. ++ ++Moreover, your license from a particular copyright holder is ++reinstated permanently if the copyright holder notifies you of the ++violation by some reasonable means, this is the first time you have ++received notice of violation of this License (for any work) from that ++copyright holder, and you cure the violation prior to 30 days after ++your receipt of the notice. ++ ++Termination of your rights under this section does not terminate the ++licenses of parties who have received copies or rights from you under ++this License. If your rights have been terminated and not permanently ++reinstated, receipt of a copy of some or all of the same material does ++not give you any rights to use it. ++ ++ ++10. FUTURE REVISIONS OF THIS LICENSE ++ ++The Free Software Foundation may publish new, revised versions of the ++GNU Free Documentation License from time to time. Such new versions ++will be similar in spirit to the present version, but may differ in ++detail to address new problems or concerns. See ++http://www.gnu.org/copyleft/. ++ ++Each version of the License is given a distinguishing version number. ++If the Document specifies that a particular numbered version of this ++License \"or any later version\" applies to it, you have the option of ++following the terms and conditions either of that specified version or ++of any later version that has been published (not as a draft) by the ++Free Software Foundation. If the Document does not specify a version ++number of this License, you may choose any version ever published (not ++as a draft) by the Free Software Foundation. If the Document ++specifies that a proxy can decide which future versions of this ++License can be used, that proxy's public statement of acceptance of a ++version permanently authorizes you to choose that version for the ++Document. ++ ++11. RELICENSING ++ ++\"Massive Multiauthor Collaboration Site\" (or \"MMC Site\") means any ++World Wide Web server that publishes copyrightable works and also ++provides prominent facilities for anybody to edit those works. A ++public wiki that anybody can edit is an example of such a server. A ++\"Massive Multiauthor Collaboration\" (or \"MMC\") contained in the site ++means any set of copyrightable works thus published on the MMC site. ++ ++\"CC-BY-SA\" means the Creative Commons Attribution-Share Alike 3.0 ++license published by Creative Commons Corporation, a not-for-profit ++corporation with a principal place of business in San Francisco, ++California, as well as future copyleft versions of that license ++published by that same organization. ++ ++\"Incorporate\" means to publish or republish a Document, in whole or in ++part, as part of another Document. ++ ++An MMC is \"eligible for relicensing\" if it is licensed under this ++License, and if all works that were first published under this License ++somewhere other than this MMC, and subsequently incorporated in whole or ++in part into the MMC, (1) had no cover texts or invariant sections, and ++(2) were thus incorporated prior to November 1, 2008. ++ ++The operator of an MMC Site may republish an MMC contained in the site ++under CC-BY-SA on the same site at any time before August 1, 2009, ++provided the MMC is eligible for relicensing. ++ ++ ++ADDENDUM: How to use this License for your documents ++ ++To use this License in a document you have written, include a copy of ++the License in the document and put the following copyright and ++license notices just after the title page: ++ ++ Copyright (c) YEAR YOUR NAME. ++ Permission is granted to copy, distribute and/or modify this document ++ under the terms of the GNU Free Documentation License, Version 1.3 ++ or any later version published by the Free Software Foundation; ++ with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. ++ A copy of the license is included in the section entitled \"GNU ++ Free Documentation License\". ++ ++If you have Invariant Sections, Front-Cover Texts and Back-Cover Texts, ++replace the \"with...Texts.\" line with this: ++ ++ with the Invariant Sections being LIST THEIR TITLES, with the ++ Front-Cover Texts being LIST, and with the Back-Cover Texts being LIST. ++ ++If you have Invariant Sections without Cover Texts, or some other ++combination of the three, merge those two alternatives to suit the ++situation. ++ ++If your document contains nontrivial examples of program code, we ++recommend releasing these examples in parallel under your choice of ++free software license, such as the GNU General Public License, ++to permit their use in free software. ++" >"$QTROOT/boot/common/data/licenses/FDL v1.3" ++mimeset -f "$QTROOT/boot/common/data/licenses/FDL v1.3" ++ ++###################################################################### ++# create GNU Free Documentation License file ++###################################################################### ++mkdir -p "$QTROOT/boot/common/data/licenses" ++echo " ++ GNU LESSER GENERAL PUBLIC LICENSE ++ Version 2.1, February 1999 ++ ++ Copyright (C) 1991, 1999 Free Software Foundation, Inc. ++ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA ++ Everyone is permitted to copy and distribute verbatim copies ++ of this license document, but changing it is not allowed. ++ ++[This is the first released version of the Lesser GPL. It also counts ++ as the successor of the GNU Library Public License, version 2, hence ++ the version number 2.1.] ++ ++ Preamble ++ ++ The licenses for most software are designed to take away your ++freedom to share and change it. By contrast, the GNU General Public ++Licenses are intended to guarantee your freedom to share and change ++free software--to make sure the software is free for all its users. ++ ++ This license, the Lesser General Public License, applies to some ++specially designated software packages--typically libraries--of the ++Free Software Foundation and other authors who decide to use it. You ++can use it too, but we suggest you first think carefully about whether ++this license or the ordinary General Public License is the better ++strategy to use in any particular case, based on the explanations below. ++ ++ When we speak of free software, we are referring to freedom of use, ++not price. Our General Public Licenses are designed to make sure that ++you have the freedom to distribute copies of free software (and charge ++for this service if you wish); that you receive source code or can get ++it if you want it; that you can change the software and use pieces of ++it in new free programs; and that you are informed that you can do ++these things. ++ ++ To protect your rights, we need to make restrictions that forbid ++distributors to deny you these rights or to ask you to surrender these ++rights. These restrictions translate to certain responsibilities for ++you if you distribute copies of the library or if you modify it. ++ ++ For example, if you distribute copies of the library, whether gratis ++or for a fee, you must give the recipients all the rights that we gave ++you. You must make sure that they, too, receive or can get the source ++code. If you link other code with the library, you must provide ++complete object files to the recipients, so that they can relink them ++with the library after making changes to the library and recompiling ++it. And you must show them these terms so they know their rights. ++ ++ We protect your rights with a two-step method: (1) we copyright the ++library, and (2) we offer you this license, which gives you legal ++permission to copy, distribute and/or modify the library. ++ ++ To protect each distributor, we want to make it very clear that ++there is no warranty for the free library. Also, if the library is ++modified by someone else and passed on, the recipients should know ++that what they have is not the original version, so that the original ++author's reputation will not be affected by problems that might be ++introduced by others. ++ ++ Finally, software patents pose a constant threat to the existence of ++any free program. We wish to make sure that a company cannot ++effectively restrict the users of a free program by obtaining a ++restrictive license from a patent holder. Therefore, we insist that ++any patent license obtained for a version of the library must be ++consistent with the full freedom of use specified in this license. ++ ++ Most GNU software, including some libraries, is covered by the ++ordinary GNU General Public License. This license, the GNU Lesser ++General Public License, applies to certain designated libraries, and ++is quite different from the ordinary General Public License. We use ++this license for certain libraries in order to permit linking those ++libraries into non-free programs. ++ ++ When a program is linked with a library, whether statically or using ++a shared library, the combination of the two is legally speaking a ++combined work, a derivative of the original library. The ordinary ++General Public License therefore permits such linking only if the ++entire combination fits its criteria of freedom. The Lesser General ++Public License permits more lax criteria for linking other code with ++the library. ++ ++ We call this license the \"Lesser\" General Public License because it ++does Less to protect the user's freedom than the ordinary General ++Public License. It also provides other free software developers Less ++of an advantage over competing non-free programs. These disadvantages ++are the reason we use the ordinary General Public License for many ++libraries. However, the Lesser license provides advantages in certain ++special circumstances. ++ ++ For example, on rare occasions, there may be a special need to ++encourage the widest possible use of a certain library, so that it becomes ++a de-facto standard. To achieve this, non-free programs must be ++allowed to use the library. A more frequent case is that a free ++library does the same job as widely used non-free libraries. In this ++case, there is little to gain by limiting the free library to free ++software only, so we use the Lesser General Public License. ++ ++ In other cases, permission to use a particular library in non-free ++programs enables a greater number of people to use a large body of ++free software. For example, permission to use the GNU C Library in ++non-free programs enables many more people to use the whole GNU ++operating system, as well as its variant, the GNU/Linux operating ++system. ++ ++ Although the Lesser General Public License is Less protective of the ++users' freedom, it does ensure that the user of a program that is ++linked with the Library has the freedom and the wherewithal to run ++that program using a modified version of the Library. ++ ++ The precise terms and conditions for copying, distribution and ++modification follow. Pay close attention to the difference between a ++\"work based on the library\" and a \"work that uses the library\". The ++former contains code derived from the library, whereas the latter must ++be combined with the library in order to run. ++ ++ GNU LESSER GENERAL PUBLIC LICENSE ++ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION ++ ++ 0. This License Agreement applies to any software library or other ++program which contains a notice placed by the copyright holder or ++other authorized party saying it may be distributed under the terms of ++this Lesser General Public License (also called \"this License\"). ++Each licensee is addressed as \"you\". ++ ++ A \"library\" means a collection of software functions and/or data ++prepared so as to be conveniently linked with application programs ++(which use some of those functions and data) to form executables. ++ ++ The \"Library\", below, refers to any such software library or work ++which has been distributed under these terms. A \"work based on the ++Library\" means either the Library or any derivative work under ++copyright law: that is to say, a work containing the Library or a ++portion of it, either verbatim or with modifications and/or translated ++straightforwardly into another language. (Hereinafter, translation is ++included without limitation in the term \"modification\".) ++ ++ \"Source code\" for a work means the preferred form of the work for ++making modifications to it. For a library, complete source code means ++all the source code for all modules it contains, plus any associated ++interface definition files, plus the scripts used to control compilation ++and installation of the library. ++ ++ Activities other than copying, distribution and modification are not ++covered by this License; they are outside its scope. The act of ++running a program using the Library is not restricted, and output from ++such a program is covered only if its contents constitute a work based ++on the Library (independent of the use of the Library in a tool for ++writing it). Whether that is true depends on what the Library does ++and what the program that uses the Library does. ++ ++ 1. You may copy and distribute verbatim copies of the Library's ++complete source code as you receive it, in any medium, provided that ++you conspicuously and appropriately publish on each copy an ++appropriate copyright notice and disclaimer of warranty; keep intact ++all the notices that refer to this License and to the absence of any ++warranty; and distribute a copy of this License along with the ++Library. ++ ++ You may charge a fee for the physical act of transferring a copy, ++and you may at your option offer warranty protection in exchange for a ++fee. ++ ++ 2. You may modify your copy or copies of the Library or any portion ++of it, thus forming a work based on the Library, and copy and ++distribute such modifications or work under the terms of Section 1 ++above, provided that you also meet all of these conditions: ++ ++ a) The modified work must itself be a software library. ++ ++ b) You must cause the files modified to carry prominent notices ++ stating that you changed the files and the date of any change. ++ ++ c) You must cause the whole of the work to be licensed at no ++ charge to all third parties under the terms of this License. ++ ++ d) If a facility in the modified Library refers to a function or a ++ table of data to be supplied by an application program that uses ++ the facility, other than as an argument passed when the facility ++ is invoked, then you must make a good faith effort to ensure that, ++ in the event an application does not supply such function or ++ table, the facility still operates, and performs whatever part of ++ its purpose remains meaningful. ++ ++ (For example, a function in a library to compute square roots has ++ a purpose that is entirely well-defined independent of the ++ application. Therefore, Subsection 2d requires that any ++ application-supplied function or table used by this function must ++ be optional: if the application does not supply it, the square ++ root function must still compute square roots.) ++ ++These requirements apply to the modified work as a whole. If ++identifiable sections of that work are not derived from the Library, ++and can be reasonably considered independent and separate works in ++themselves, then this License, and its terms, do not apply to those ++sections when you distribute them as separate works. But when you ++distribute the same sections as part of a whole which is a work based ++on the Library, the distribution of the whole must be on the terms of ++this License, whose permissions for other licensees extend to the ++entire whole, and thus to each and every part regardless of who wrote ++it. ++ ++Thus, it is not the intent of this section to claim rights or contest ++your rights to work written entirely by you; rather, the intent is to ++exercise the right to control the distribution of derivative or ++collective works based on the Library. ++ ++In addition, mere aggregation of another work not based on the Library ++with the Library (or with a work based on the Library) on a volume of ++a storage or distribution medium does not bring the other work under ++the scope of this License. ++ ++ 3. You may opt to apply the terms of the ordinary GNU General Public ++License instead of this License to a given copy of the Library. To do ++this, you must alter all the notices that refer to this License, so ++that they refer to the ordinary GNU General Public License, version 2, ++instead of to this License. (If a newer version than version 2 of the ++ordinary GNU General Public License has appeared, then you can specify ++that version instead if you wish.) Do not make any other change in ++these notices. ++ ++ Once this change is made in a given copy, it is irreversible for ++that copy, so the ordinary GNU General Public License applies to all ++subsequent copies and derivative works made from that copy. ++ ++ This option is useful when you wish to copy part of the code of ++the Library into a program that is not a library. ++ ++ 4. You may copy and distribute the Library (or a portion or ++derivative of it, under Section 2) in object code or executable form ++under the terms of Sections 1 and 2 above provided that you accompany ++it with the complete corresponding machine-readable source code, which ++must be distributed under the terms of Sections 1 and 2 above on a ++medium customarily used for software interchange. ++ ++ If distribution of object code is made by offering access to copy ++from a designated place, then offering equivalent access to copy the ++source code from the same place satisfies the requirement to ++distribute the source code, even though third parties are not ++compelled to copy the source along with the object code. ++ ++ 5. A program that contains no derivative of any portion of the ++Library, but is designed to work with the Library by being compiled or ++linked with it, is called a \"work that uses the Library\". Such a ++work, in isolation, is not a derivative work of the Library, and ++therefore falls outside the scope of this License. ++ ++ However, linking a \"work that uses the Library\" with the Library ++creates an executable that is a derivative of the Library (because it ++contains portions of the Library), rather than a \"work that uses the ++library\". The executable is therefore covered by this License. ++Section 6 states terms for distribution of such executables. ++ ++ When a \"work that uses the Library\" uses material from a header file ++that is part of the Library, the object code for the work may be a ++derivative work of the Library even though the source code is not. ++Whether this is true is especially significant if the work can be ++linked without the Library, or if the work is itself a library. The ++threshold for this to be true is not precisely defined by law. ++ ++ If such an object file uses only numerical parameters, data ++structure layouts and accessors, and small macros and small inline ++functions (ten lines or less in length), then the use of the object ++file is unrestricted, regardless of whether it is legally a derivative ++work. (Executables containing this object code plus portions of the ++Library will still fall under Section 6.) ++ ++ Otherwise, if the work is a derivative of the Library, you may ++distribute the object code for the work under the terms of Section 6. ++Any executables containing that work also fall under Section 6, ++whether or not they are linked directly with the Library itself. ++ ++ 6. As an exception to the Sections above, you may also combine or ++link a \"work that uses the Library\" with the Library to produce a ++work containing portions of the Library, and distribute that work ++under terms of your choice, provided that the terms permit ++modification of the work for the customer's own use and reverse ++engineering for debugging such modifications. ++ ++ You must give prominent notice with each copy of the work that the ++Library is used in it and that the Library and its use are covered by ++this License. You must supply a copy of this License. If the work ++during execution displays copyright notices, you must include the ++copyright notice for the Library among them, as well as a reference ++directing the user to the copy of this License. Also, you must do one ++of these things: ++ ++ a) Accompany the work with the complete corresponding ++ machine-readable source code for the Library including whatever ++ changes were used in the work (which must be distributed under ++ Sections 1 and 2 above); and, if the work is an executable linked ++ with the Library, with the complete machine-readable \"work that ++ uses the Library\", as object code and/or source code, so that the ++ user can modify the Library and then relink to produce a modified ++ executable containing the modified Library. (It is understood ++ that the user who changes the contents of definitions files in the ++ Library will not necessarily be able to recompile the application ++ to use the modified definitions.) ++ ++ b) Use a suitable shared library mechanism for linking with the ++ Library. A suitable mechanism is one that (1) uses at run time a ++ copy of the library already present on the user's computer system, ++ rather than copying library functions into the executable, and (2) ++ will operate properly with a modified version of the library, if ++ the user installs one, as long as the modified version is ++ interface-compatible with the version that the work was made with. ++ ++ c) Accompany the work with a written offer, valid for at ++ least three years, to give the same user the materials ++ specified in Subsection 6a, above, for a charge no more ++ than the cost of performing this distribution. ++ ++ d) If distribution of the work is made by offering access to copy ++ from a designated place, offer equivalent access to copy the above ++ specified materials from the same place. ++ ++ e) Verify that the user has already received a copy of these ++ materials or that you have already sent this user a copy. ++ ++ For an executable, the required form of the \"work that uses the ++Library\" must include any data and utility programs needed for ++reproducing the executable from it. However, as a special exception, ++the materials to be distributed need not include anything that is ++normally distributed (in either source or binary form) with the major ++components (compiler, kernel, and so on) of the operating system on ++which the executable runs, unless that component itself accompanies ++the executable. ++ ++ It may happen that this requirement contradicts the license ++restrictions of other proprietary libraries that do not normally ++accompany the operating system. Such a contradiction means you cannot ++use both them and the Library together in an executable that you ++distribute. ++ ++ 7. You may place library facilities that are a work based on the ++Library side-by-side in a single library together with other library ++facilities not covered by this License, and distribute such a combined ++library, provided that the separate distribution of the work based on ++the Library and of the other library facilities is otherwise ++permitted, and provided that you do these two things: ++ ++ a) Accompany the combined library with a copy of the same work ++ based on the Library, uncombined with any other library ++ facilities. This must be distributed under the terms of the ++ Sections above. ++ ++ b) Give prominent notice with the combined library of the fact ++ that part of it is a work based on the Library, and explaining ++ where to find the accompanying uncombined form of the same work. ++ ++ 8. You may not copy, modify, sublicense, link with, or distribute ++the Library except as expressly provided under this License. Any ++attempt otherwise to copy, modify, sublicense, link with, or ++distribute the Library is void, and will automatically terminate your ++rights under this License. However, parties who have received copies, ++or rights, from you under this License will not have their licenses ++terminated so long as such parties remain in full compliance. ++ ++ 9. You are not required to accept this License, since you have not ++signed it. However, nothing else grants you permission to modify or ++distribute the Library or its derivative works. These actions are ++prohibited by law if you do not accept this License. Therefore, by ++modifying or distributing the Library (or any work based on the ++Library), you indicate your acceptance of this License to do so, and ++all its terms and conditions for copying, distributing or modifying ++the Library or works based on it. ++ ++ 10. Each time you redistribute the Library (or any work based on the ++Library), the recipient automatically receives a license from the ++original licensor to copy, distribute, link with or modify the Library ++subject to these terms and conditions. You may not impose any further ++restrictions on the recipients' exercise of the rights granted herein. ++You are not responsible for enforcing compliance by third parties with ++this License. ++ ++ 11. If, as a consequence of a court judgment or allegation of patent ++infringement or for any other reason (not limited to patent issues), ++conditions are imposed on you (whether by court order, agreement or ++otherwise) that contradict the conditions of this License, they do not ++excuse you from the conditions of this License. If you cannot ++distribute so as to satisfy simultaneously your obligations under this ++License and any other pertinent obligations, then as a consequence you ++may not distribute the Library at all. For example, if a patent ++license would not permit royalty-free redistribution of the Library by ++all those who receive copies directly or indirectly through you, then ++the only way you could satisfy both it and this License would be to ++refrain entirely from distribution of the Library. ++ ++If any portion of this section is held invalid or unenforceable under any ++particular circumstance, the balance of the section is intended to apply, ++and the section as a whole is intended to apply in other circumstances. ++ ++It is not the purpose of this section to induce you to infringe any ++patents or other property right claims or to contest validity of any ++such claims; this section has the sole purpose of protecting the ++integrity of the free software distribution system which is ++implemented by public license practices. Many people have made ++generous contributions to the wide range of software distributed ++through that system in reliance on consistent application of that ++system; it is up to the author/donor to decide if he or she is willing ++to distribute software through any other system and a licensee cannot ++impose that choice. ++ ++This section is intended to make thoroughly clear what is believed to ++be a consequence of the rest of this License. ++ ++ 12. If the distribution and/or use of the Library is restricted in ++certain countries either by patents or by copyrighted interfaces, the ++original copyright holder who places the Library under this License may add ++an explicit geographical distribution limitation excluding those countries, ++so that distribution is permitted only in or among countries not thus ++excluded. In such case, this License incorporates the limitation as if ++written in the body of this License. ++ ++ 13. The Free Software Foundation may publish revised and/or new ++versions of the Lesser General Public License from time to time. ++Such new versions will be similar in spirit to the present version, ++but may differ in detail to address new problems or concerns. ++ ++Each version is given a distinguishing version number. If the Library ++specifies a version number of this License which applies to it and ++\"any later version\", you have the option of following the terms and ++conditions either of that version or of any later version published by ++the Free Software Foundation. If the Library does not specify a ++license version number, you may choose any version ever published by ++the Free Software Foundation. ++ ++ 14. If you wish to incorporate parts of the Library into other free ++programs whose distribution conditions are incompatible with these, ++write to the author to ask for permission. For software which is ++copyrighted by the Free Software Foundation, write to the Free ++Software Foundation; we sometimes make exceptions for this. Our ++decision will be guided by the two goals of preserving the free status ++of all derivatives of our free software and of promoting the sharing ++and reuse of software generally. ++ ++ NO WARRANTY ++ ++ 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO ++WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. ++EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR ++OTHER PARTIES PROVIDE THE LIBRARY \"AS IS\" WITHOUT WARRANTY OF ANY ++KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE ++IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR ++PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE ++LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME ++THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. ++ ++ 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN ++WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY ++AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU ++FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR ++CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE ++LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING ++RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A ++FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF ++SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH ++DAMAGES. ++ ++ END OF TERMS AND CONDITIONS ++ ++ How to Apply These Terms to Your New Libraries ++ ++ If you develop a new library, and you want it to be of the greatest ++possible use to the public, we recommend making it free software that ++everyone can redistribute and change. You can do so by permitting ++redistribution under these terms (or, alternatively, under the terms of the ++ordinary General Public License). ++ ++ To apply these terms, attach the following notices to the library. It is ++safest to attach them to the start of each source file to most effectively ++convey the exclusion of warranty; and each file should have at least the ++\"copyright\" line and a pointer to where the full notice is found. ++ ++ ++ Copyright (C) ++ ++ This library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ This library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with this library; if not, write to the Free Software ++ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA ++ ++Also add information on how to contact you by electronic and paper mail. ++ ++You should also get your employer (if you work as a programmer) or your ++school, if any, to sign a \"copyright disclaimer\" for the library, if ++necessary. Here is a sample; alter the names: ++ ++ Yoyodyne, Inc., hereby disclaims all copyright interest in the ++ library 'Frob' (a library for tweaking knobs) written by James Random Hacker. ++ ++ , 1 April 1990 ++ Ty Coon, President of Vice ++ ++That's all there is to it! ++" >"$QTROOT/boot/common/data/licenses/LGPL v2.1" ++mimeset -f "$QTROOT/boot/common/data/licenses/LGPL v2.1" ++ ++###################################################################### ++echo "Make full pack" ++###################################################################### ++cd $QTROOT/boot ++zip -ry9 ../qt_4.7.3_haiku_r1a3_$(date +%d%b%Y)_dev.zip * >/dev/null ++cd .. ++ ++###################################################################### ++echo "Remove files for minimal pack" ++###################################################################### ++echo " documantation" ++rm -rf $QTROOT/boot/common/documentation/doc/Qt ++echo " mkspecs" ++rm -rf $QTROOT/boot/common/data/Qt/mkspecs ++echo " include" ++rm -rf $QTROOT/boot/common/include ++echo " assistant" ++rm -f $QTROOT/boot/common/bin/assistant ++echo " designer" ++rm -f $QTROOT/boot/common/bin/designer ++echo " linguist" ++rm -f $QTROOT/boot/common/bin/linguist ++echo " qhelpconverter" ++rm -f $QTROOT/boot/common/bin/qhelpconverter ++echo " qhelpgenerator" ++rm -f $QTROOT/boot/common/bin/qhelpgenerator ++echo " qt3to4" ++rm -f $QTROOT/boot/common/bin/qt3to4 ++echo " pixeltool" ++rm -f $QTROOT/boot/common/bin/pixeltool ++echo " moc" ++rm -f $QTROOT/boot/common/bin/moc ++echo " qmake" ++rm -f $QTROOT/boot/common/bin/qmake ++echo " rcc" ++rm -f $QTROOT/boot/common/bin/rcc ++echo " qdoc3" ++rm -f $QTROOT/boot/common/bin/qdoc3 ++echo " rcc" ++rm -f $QTROOT/boot/common/bin/rcc ++echo " uic" ++rm -f $QTROOT/boot/common/bin/uic ++echo " uic3" ++rm -f $QTROOT/boot/common/bin/uic3 ++echo " libQtUiTools.a" ++rm -f $QTROOT/boot/common/lib/gcc4/libQtUiTools.a ++echo " *.la" ++rm -f $QTROOT/boot/common/lib/gcc4/*.la ++echo " *.prl" ++rm -f $QTROOT/boot/common/lib/gcc4/*.prl ++ ++echo " symlinks from menu" ++rm -f "$QTROOT/boot/home/config/be/Qt/Development/Qt Assistant" ++rm -f "$QTROOT/boot/home/config/be/Qt/Development/Qt Help Conversion Wizard" ++rm -f "$QTROOT/boot/home/config/be/Qt/Development/Qt Designer" ++rm -f "$QTROOT/boot/home/config/be/Qt/Development/Qt Linguist" ++ ++###################################################################### ++echo "Make min pack" ++###################################################################### ++cd $QTROOT/boot ++zip -ry9 ../qt_4.7.3_haiku_r1a3_$(date +%d%b%Y)_min.zip * >/dev/null ++cd .. ++ ++###################################################################### ++echo "Clean sandbox" ++###################################################################### ++rm -rf $QTROOT/boot ++ ++###################################################################### ++echo "Done" ++###################################################################### ++ +diff -rupN qt-everywhere-opensource-src-4.7.3/mkspecs/haiku-g++/qmake.conf qt-everywhere-opensource-src-4.7.3_haiku/mkspecs/haiku-g++/qmake.conf +--- qt-everywhere-opensource-src-4.7.3/mkspecs/haiku-g++/qmake.conf 1970-01-01 00:00:00.000000000 +0000 ++++ qt-everywhere-opensource-src-4.7.3_haiku/mkspecs/haiku-g++/qmake.conf 2011-06-13 22:06:43.097255424 +0000 +@@ -0,0 +1,37 @@ ++# ++# qmake configuration for Haiku-g++ ++# ++ ++MAKEFILE_GENERATOR = UNIX ++TARGET_PLATFORM = haiku ++TEMPLATE = app ++CONFIG += qt warn_on release link_prl ++QT += core gui ++ ++QMAKE_LIBS = -lroot ++QMAKE_INCDIR = ++QMAKE_LIBDIR = ++QMAKE_INCDIR_QT = $$[QT_INSTALL_HEADERS] ++QMAKE_LIBDIR_QT = $$[QT_INSTALL_LIBS] ++QMAKE_LIBS_NETWORK = -lnetwork ++ ++QMAKE_MOC = $$[QT_INSTALL_BINS]/moc ++QMAKE_UIC = $$[QT_INSTALL_BINS]/uic ++ ++QMAKE_AR = ar cqs ++QMAKE_OBJCOPY = objcopy ++QMAKE_RANLIB = ++ ++QMAKE_TAR = tar -cf ++QMAKE_GZIP = gzip -9f ++ ++QMAKE_COPY = cp -f ++QMAKE_MOVE = mv -f ++QMAKE_DEL_FILE = rm -f ++QMAKE_DEL_DIR = rmdir ++QMAKE_CHK_DIR_EXISTS = test -d ++QMAKE_MKDIR = mkdir -p ++ ++include(../common/g++.conf) ++include(../common/unix.conf) ++load(qt_config) +diff -rupN qt-everywhere-opensource-src-4.7.3/mkspecs/haiku-g++/qplatformdefs.h qt-everywhere-opensource-src-4.7.3_haiku/mkspecs/haiku-g++/qplatformdefs.h +--- qt-everywhere-opensource-src-4.7.3/mkspecs/haiku-g++/qplatformdefs.h 1970-01-01 00:00:00.000000000 +0000 ++++ qt-everywhere-opensource-src-4.7.3_haiku/mkspecs/haiku-g++/qplatformdefs.h 2011-06-13 22:06:43.106168320 +0000 +@@ -0,0 +1,43 @@ ++#ifndef QPLATFORMDEFS_H ++#define QPLATFORMDEFS_H ++ ++// Get Qt defines/settings ++ ++#include "qglobal.h" ++ ++// Set any POSIX/XOPEN defines at the top of this file to turn on specific APIs ++ ++#include ++ ++ ++// We are hot - unistd.h should have turned on the specific APIs we requested ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#include ++#include ++#include ++#include ++//#include ++#include ++#include ++#include ++#include ++#ifndef QT_NO_IPV6IFNAME ++#include ++#endif ++ ++#include "../common/posix/qplatformdefs.h" ++ ++#define QT_SOCKLEN_T socklen_t ++ ++#define QT_SNPRINTF ::snprintf ++#define QT_VSNPRINTF ::vsnprintf ++ ++#endif // QPLATFORMDEFS_H +diff -rupN qt-everywhere-opensource-src-4.7.3/qmake/generators/makefile.cpp qt-everywhere-opensource-src-4.7.3_haiku/qmake/generators/makefile.cpp +--- qt-everywhere-opensource-src-4.7.3/qmake/generators/makefile.cpp 2011-03-30 05:15:42.028835840 +0000 ++++ qt-everywhere-opensource-src-4.7.3_haiku/qmake/generators/makefile.cpp 2011-06-13 22:06:43.110624768 +0000 +@@ -2202,6 +2202,8 @@ QString MakefileGenerator::buildArgs(con + ret += " -unix"; + else if (Option::target_mode == Option::TARG_WIN_MODE) + ret += " -win32"; ++ else if(Option::target_mode == Option::TARG_HAIKU_MODE) ++ ret += " -haiku"; + } + + //configs +diff -rupN qt-everywhere-opensource-src-4.7.3/qmake/generators/metamakefile.cpp qt-everywhere-opensource-src-4.7.3_haiku/qmake/generators/metamakefile.cpp +--- qt-everywhere-opensource-src-4.7.3/qmake/generators/metamakefile.cpp 2011-03-30 05:15:42.022806528 +0000 ++++ qt-everywhere-opensource-src-4.7.3_haiku/qmake/generators/metamakefile.cpp 2011-06-13 22:06:43.112721920 +0000 +@@ -525,6 +525,9 @@ MetaMakefileGenerator::modesForGenerator + #ifdef Q_OS_MAC + *host_mode = Option::HOST_MACX_MODE; + *target_mode = Option::TARG_MACX_MODE; ++#elif defined(Q_OS_HAIKU) ++ *host_mode = Option::HOST_HAIKU_MODE; ++ *target_mode = Option::TARG_HAIKU_MODE; + #else + *host_mode = Option::HOST_UNIX_MODE; + *target_mode = Option::TARG_UNIX_MODE; +diff -rupN qt-everywhere-opensource-src-4.7.3/qmake/generators/unix/unixmake.cpp qt-everywhere-opensource-src-4.7.3_haiku/qmake/generators/unix/unixmake.cpp +--- qt-everywhere-opensource-src-4.7.3/qmake/generators/unix/unixmake.cpp 2011-03-30 05:15:42.025427968 +0000 ++++ qt-everywhere-opensource-src-4.7.3_haiku/qmake/generators/unix/unixmake.cpp 2011-06-13 22:06:43.115343360 +0000 +@@ -811,6 +811,7 @@ UnixMakefileGenerator::defaultInstall(co + if(!links.isEmpty()) { + for(int i = 0; i < links.size(); ++i) { + if(Option::target_mode == Option::TARG_UNIX_MODE || ++ Option::target_mode == Option::TARG_HAIKU_MODE || + Option::target_mode == Option::TARG_MACX_MODE) { + QString link = Option::fixPathToTargetOS(destdir + links[i], false); + int lslash = link.lastIndexOf(Option::dir_sep); +diff -rupN qt-everywhere-opensource-src-4.7.3/qmake/option.cpp qt-everywhere-opensource-src-4.7.3_haiku/qmake/option.cpp +--- qt-everywhere-opensource-src-4.7.3/qmake/option.cpp 2011-03-30 05:15:42.029360128 +0000 ++++ qt-everywhere-opensource-src-4.7.3_haiku/qmake/option.cpp 2011-06-13 22:06:43.117702656 +0000 +@@ -260,6 +260,11 @@ Option::parseCommandLine(int argc, char + Option::host_mode = HOST_WIN_MODE; + Option::target_mode = TARG_WIN_MODE; + Option::target_mode_overridden = true; ++ } else if(opt == "haiku") { ++ fprintf(stderr, "-haiku is deprecated.\n"); ++ Option::host_mode = HOST_HAIKU_MODE; ++ Option::target_mode = TARG_HAIKU_MODE; ++ Option::target_mode_overridden = true; + } else if(opt == "d") { + Option::debug_level++; + } else if(opt == "version" || opt == "v" || opt == "-version") { +@@ -535,6 +540,9 @@ Option::init(int argc, char **argv) + #if defined(Q_OS_MAC) + Option::host_mode = Option::HOST_MACX_MODE; + Option::target_mode = Option::TARG_MACX_MODE; ++#elif defined(Q_OS_HAIKU) ++ Option::host_mode = Option::HOST_HAIKU_MODE; ++ Option::target_mode = Option::TARG_HAIKU_MODE; + #elif defined(Q_OS_UNIX) + Option::host_mode = Option::HOST_UNIX_MODE; + Option::target_mode = Option::TARG_UNIX_MODE; +diff -rupN qt-everywhere-opensource-src-4.7.3/qmake/option.h qt-everywhere-opensource-src-4.7.3_haiku/qmake/option.h +--- qt-everywhere-opensource-src-4.7.3/qmake/option.h 2011-03-30 05:15:42.030146560 +0000 ++++ qt-everywhere-opensource-src-4.7.3_haiku/qmake/option.h 2011-06-13 22:06:43.119799808 +0000 +@@ -153,10 +153,10 @@ struct Option + enum QMAKE_RECURSIVE { QMAKE_RECURSIVE_DEFAULT, QMAKE_RECURSIVE_YES, QMAKE_RECURSIVE_NO }; + static QMAKE_RECURSIVE recursive; + static QStringList before_user_vars, after_user_vars, user_configs, after_user_configs; +- enum HOST_MODE { HOST_UNKNOWN_MODE, HOST_UNIX_MODE, HOST_WIN_MODE, HOST_MACX_MODE }; ++ enum HOST_MODE { HOST_UNKNOWN_MODE, HOST_UNIX_MODE, HOST_WIN_MODE, HOST_MACX_MODE, HOST_HAIKU_MODE }; + static HOST_MODE host_mode; + enum TARG_MODE { TARG_UNKNOWN_MODE, TARG_UNIX_MODE, TARG_WIN_MODE, TARG_MACX_MODE, +- TARG_SYMBIAN_MODE }; ++ TARG_SYMBIAN_MODE, TARG_HAIKU_MODE }; + static TARG_MODE target_mode; + static bool target_mode_overridden; + static QString user_template, user_template_prefix; +diff -rupN qt-everywhere-opensource-src-4.7.3/qmake/project.cpp qt-everywhere-opensource-src-4.7.3_haiku/qmake/project.cpp +--- qt-everywhere-opensource-src-4.7.3/qmake/project.cpp 2011-03-30 05:15:42.030408704 +0000 ++++ qt-everywhere-opensource-src-4.7.3_haiku/qmake/project.cpp 2011-06-13 22:06:43.123994112 +0000 +@@ -541,6 +541,10 @@ QStringList qmake_feature_paths(QMakePro + case Option::TARG_UNIX_MODE: + concat << base_concat + QDir::separator() + "unix"; + break; ++ case Option::TARG_HAIKU_MODE: ++ concat << base_concat + QDir::separator() + "haiku"; ++ concat << base_concat + QDir::separator() + "unix"; ++ break; + case Option::TARG_WIN_MODE: + concat << base_concat + QDir::separator() + "win32"; + break; +@@ -1505,6 +1509,8 @@ void QMakeProject::validateModes() + const QString &os = tgt.first(); + if (os == "unix") + Option::target_mode = Option::TARG_UNIX_MODE; ++ else if (os == "haiku") ++ Option::target_mode = Option::TARG_HAIKU_MODE; + else if (os == "macx") + Option::target_mode = Option::TARG_MACX_MODE; + else if (os == "symbian") +@@ -1538,6 +1544,7 @@ QMakeProject::isActiveConfig(const QStri + validateModes(); + return Option::target_mode == Option::TARG_UNIX_MODE + || Option::target_mode == Option::TARG_MACX_MODE ++ || Option::target_mode == Option::TARG_HAIKU_MODE + || Option::target_mode == Option::TARG_SYMBIAN_MODE; + } else if (x == "macx" || x == "mac") { + validateModes(); +@@ -1548,6 +1555,9 @@ QMakeProject::isActiveConfig(const QStri + } else if (x == "win32") { + validateModes(); + return Option::target_mode == Option::TARG_WIN_MODE; ++ } else if (x == "haiku") { ++ validateModes(); ++ return Option::target_mode == Option::TARG_HAIKU_MODE; + } + + //mkspecs +diff -rupN qt-everywhere-opensource-src-4.7.3/src/3rdparty/clucene/src/CLucene/config/compiler.h qt-everywhere-opensource-src-4.7.3_haiku/src/3rdparty/clucene/src/CLucene/config/compiler.h +--- qt-everywhere-opensource-src-4.7.3/src/3rdparty/clucene/src/CLucene/config/compiler.h 2011-03-30 05:18:56.033030144 +0000 ++++ qt-everywhere-opensource-src-4.7.3_haiku/src/3rdparty/clucene/src/CLucene/config/compiler.h 2011-06-13 22:06:43.126091264 +0000 +@@ -65,7 +65,7 @@ + //////////////////////////////////////////////////////////////////// + + /* Operating system recognition (basic) */ +-#if defined (__unix) || defined (__linux__) || defined (__QNX__) || defined (_AIX) || defined (__NetBSD__) || defined (__OpenBSD__) || defined (__Lynx__) || defined(hpux) || defined(__hpux) ++#if defined (__unix) || defined (__linux__) || defined (__QNX__) || defined (_AIX) || defined (__NetBSD__) || defined (__OpenBSD__) || defined (__Lynx__) || defined(hpux) || defined(__hpux) || defined (__HAIKU__) + #undef _UNIX + #define _UNIX 1 + #include "CLucene/config/PlatformUnix.h" +diff -rupN qt-everywhere-opensource-src-4.7.3/src/3rdparty/haiku-tools/qsystray/Makefile qt-everywhere-opensource-src-4.7.3_haiku/src/3rdparty/haiku-tools/qsystray/Makefile +--- qt-everywhere-opensource-src-4.7.3/src/3rdparty/haiku-tools/qsystray/Makefile 1970-01-01 00:00:00.000000000 +0000 ++++ qt-everywhere-opensource-src-4.7.3_haiku/src/3rdparty/haiku-tools/qsystray/Makefile 2011-06-13 22:06:43.127926272 +0000 +@@ -0,0 +1,25 @@ ++all: clean qsystray qsystray_gcc2 ++ ++qsystray: ++ setgcc gcc4 ++ sleep 1 ++ make -f Makefile.gcc4 ++ ++qsystray_gcc2: ++ setgcc gcc2 ++ sleep 1 ++ make -f Makefile.gcc2 ++ setgcc gcc4 ++ sleep 1 ++ ++clean: ++ make -f Makefile.gcc4 clean ++ make -f Makefile.gcc2 clean ++ ++install: ++ make -f Makefile.gcc4 install ++ make -f Makefile.gcc2 install ++ ++ make -f Makefile.gcc4 clean ++ make -f Makefile.gcc2 clean ++ +diff -rupN qt-everywhere-opensource-src-4.7.3/src/3rdparty/haiku-tools/qsystray/Makefile.gcc2 qt-everywhere-opensource-src-4.7.3_haiku/src/3rdparty/haiku-tools/qsystray/Makefile.gcc2 +--- qt-everywhere-opensource-src-4.7.3/src/3rdparty/haiku-tools/qsystray/Makefile.gcc2 1970-01-01 00:00:00.000000000 +0000 ++++ qt-everywhere-opensource-src-4.7.3_haiku/src/3rdparty/haiku-tools/qsystray/Makefile.gcc2 2011-06-13 22:06:43.142082048 +0000 +@@ -0,0 +1,24 @@ ++CC=g++ ++SIGNATURE="application/x-vnd.QtSystrayManager_gcc2" ++ ++all: qsystray ++ ++qsystray: qsystray_gcc2.o ++ $(CC) -g qsystray_gcc2.o -ltracker -lroot -lbe -oqsystray_gcc2 ++ rc qsystray_gcc2.rdef ++ xres -o ./qsystray_gcc2 qsystray_gcc2.rsrc ++ mimeset -f ./qsystray_gcc2 ++ ++qsystray_gcc2.o: ++ $(CC) -g -oqsystray_gcc2.o -DGCC2BUILD=1 -DAPP_SIGNATURE="\"$(SIGNATURE)\"" -c qsystray.cpp ++ ++clean: ++ rm -f ./qsystray_gcc2.o ++ rm -f ./qsystray_gcc2.rsrc ++ rm -f ./qsystray_gcc2 ++ ++install: ++ cp -f ./qsystray_gcc2 /boot/common/bin/qsystray_gcc2 ++ rm -f ./qsystray_gcc2.o ++ rm -f ./qsystray_gcc2.rsrc ++ rm -f ./qsystray_gcc2 +diff -rupN qt-everywhere-opensource-src-4.7.3/src/3rdparty/haiku-tools/qsystray/Makefile.gcc4 qt-everywhere-opensource-src-4.7.3_haiku/src/3rdparty/haiku-tools/qsystray/Makefile.gcc4 +--- qt-everywhere-opensource-src-4.7.3/src/3rdparty/haiku-tools/qsystray/Makefile.gcc4 1970-01-01 00:00:00.000000000 +0000 ++++ qt-everywhere-opensource-src-4.7.3_haiku/src/3rdparty/haiku-tools/qsystray/Makefile.gcc4 2011-06-13 22:06:43.143392768 +0000 +@@ -0,0 +1,24 @@ ++CC=g++ ++SIGNATURE="application/x-vnd.QtSystrayManager_gcc4" ++ ++all: qsystray ++ ++qsystray: qsystray_gcc4.o ++ $(CC) -g qsystray_gcc4.o -ltracker -lroot -lbe -oqsystray ++ rc qsystray_gcc4.rdef ++ xres -o ./qsystray qsystray_gcc4.rsrc ++ mimeset -f ./qsystray ++ ++qsystray_gcc4.o: ++ $(CC) -g -oqsystray_gcc4.o -DGCC4BUILD=1 -DAPP_SIGNATURE="\"$(SIGNATURE)\"" -c qsystray.cpp ++ ++clean: ++ rm -f ./qsystray_gcc4.o ++ rm -f ./qsystray_gcc4.rsrc ++ rm -f ./qsystray ++ ++install: ++ cp -f ./qsystray /boot/common/bin/qsystray ++ rm -f ./qsystray_gcc4.o ++ rm -f ./qsystray_gcc4.rsrc ++ rm -f ./qsystray +diff -rupN qt-everywhere-opensource-src-4.7.3/src/3rdparty/haiku-tools/qsystray/qsystray.cpp qt-everywhere-opensource-src-4.7.3_haiku/src/3rdparty/haiku-tools/qsystray/qsystray.cpp +--- qt-everywhere-opensource-src-4.7.3/src/3rdparty/haiku-tools/qsystray/qsystray.cpp 1970-01-01 00:00:00.000000000 +0000 ++++ qt-everywhere-opensource-src-4.7.3_haiku/src/3rdparty/haiku-tools/qsystray/qsystray.cpp 2011-06-13 22:06:43.145489920 +0000 +@@ -0,0 +1,303 @@ ++#include ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#include "qsystray.h" ++ ++#ifndef APP_SIGNATURE ++#define APP_SIGNATURE "application/x-vnd.QtSystrayManager" ++#endif ++ ++#define REPL_NAME "QtTrayItem" ++#define DBAR_SIGNATURE "application/x-vnd.Be-TSKB" ++ ++ ++DeskbarView::DeskbarView(team_id tid) : BView(BRect(0,0,15,15), REPL_NAME,B_FOLLOW_NONE,B_WILL_DRAW) ++{ ++ id = -1; ++ team = tid; ++ ticks = 0; ++ icon = NULL; ++ traysysobject = NULL; ++ lastButtons = 0; ++} ++ ++DeskbarView::DeskbarView(BMessage *message) : BView(message) ++{ ++ const void* data; ++ ssize_t numBytes; ++ message->FindData("color",B_ANY_TYPE,&data,&numBytes); ++ color = *((rgb_color*)data); ++ message->FindData("team",B_ANY_TYPE,&data,&numBytes); ++ team = *((team_id*)data); ++ id = -1; ++ ticks = 0; ++ icon = NULL; ++ traysysobject = NULL; ++ lastButtons = 0; ++} ++ ++DeskbarView *DeskbarView::Instantiate(BMessage *data) { ++ if (!validate_instantiation(data, REPL_NAME)) return NULL; ++ return new DeskbarView(data); ++} ++ ++status_t DeskbarView::Archive(BMessage *data, bool deep) const { ++ BView::Archive(data, deep); ++ data->AddString("add_on", APP_SIGNATURE); ++ data->AddString("class", REPL_NAME); ++ ++ data->AddData("color",B_ANY_TYPE,&color,sizeof(rgb_color)); ++ data->AddData("team",B_ANY_TYPE,&team,sizeof(team_id)); ++ return B_OK; ++} ++ ++void DeskbarView::AttachedToWindow() ++{ ++ ticks = 0; ++ BMessage* tickMsg = new BMessage('LIVE'); ++ BMessageRunner *runner = new BMessageRunner( this, tickMsg, 1000000 ); ++ color = Parent()->ViewColor(); ++ BView::AttachedToWindow(); ++} ++ ++void DeskbarView::Draw(BRect r) ++{ ++ SetDrawingMode(B_OP_COPY); ++ SetHighColor(Parent()->ViewColor()); ++ FillRect(Bounds()); ++ if(ticks>3 && !icon) { ++ SetHighColor(32,32,32,100); ++ SetDrawingMode(B_OP_ALPHA); ++ DrawChar('?',BPoint(4,12)); ++ } ++ if(icon) { ++ float dx = (Bounds().Width() - icon->Bounds().Width())/2; ++ float dy = (Bounds().Height() - icon->Bounds().Height())/2; ++ SetDrawingMode(B_OP_ALPHA); ++ DrawBitmap(icon,BPoint(dx,dy)); ++ } ++} ++ ++void DeskbarView::MouseMoved(BPoint point, uint32 transit,const BMessage *message) ++{ ++} ++ ++void DeskbarView::MouseUp(BPoint point) ++{ ++ uint32 buttons = lastButtons; ++ ++ BMessage *mes = new BMessage('TRAY'); ++ mes->AddInt32("event",TRAY_MOUSEUP); ++ mes->AddPoint("point",ConvertToScreen(point)); ++ mes->AddInt32("buttons",buttons); ++ mes->AddInt32("clicks",1); ++ mes->AddData("qtrayobject",B_ANY_TYPE,&traysysobject,sizeof(void*)); ++ ReplyMessenger.SendMessage(mes); ++ ++} ++ ++void DeskbarView::MouseDown(BPoint point) ++{ ++ uint32 buttons = Window()->CurrentMessage()->FindInt32("buttons"); ++ int32 clicks = Window()->CurrentMessage()->FindInt32("clicks"); ++ lastButtons = buttons; ++ ++ BMessage *mes = new BMessage('TRAY'); ++ mes->AddInt32("event",TRAY_MOUSEDOWN); ++ mes->AddPoint("point",ConvertToScreen(point)); ++ mes->AddInt32("buttons",buttons); ++ mes->AddInt32("clicks",clicks); ++ mes->AddData("qtrayobject",B_ANY_TYPE,&traysysobject,sizeof(void*)); ++ ReplyMessenger.SendMessage(mes); ++ ++} ++ ++void DeskbarView::MessageReceived(BMessage *message) { ++// message->PrintToStream(); ++ switch (message->what) ++ { ++ case 'LIVE': ++ { ++ ticks++; ++ Invalidate(); ++ team_info teamInfo; ++ status_t error = get_team_info(team, &teamInfo); ++ if (error != B_OK && id>0) { ++ BDeskbar deskbar; ++ deskbar.RemoveItem(id); ++ } else { ++ BMessage *mes=new BMessage(*message); ++ mes->AddRect("rect",ConvertToScreen(Bounds())); ++ ReplyMessenger.SendMessage(mes); ++ } ++ break; ++ } ++ case B_SET_PROPERTY: ++ { ++ switch( message->FindInt32("what2") ) { ++ case 'TTIP': ++ { ++ const char *tip=NULL; ++ status_t res = message->FindString("tooltip",&tip); ++ ++ if(!tip || res!=B_OK) ++ tip = applicationName.String(); ++ if(strlen(tip)==0) ++ tip = applicationName.String(); ++ if(strlen(tip)!=0) ++ SetToolTip(tip); ++ ++ break; ++ } ++ case 'BITS': ++ { ++ BBitmap *oldicon=icon; ++ icon=NULL; ++ delete oldicon; ++ BMessage bits; ++ message->FindMessage("icon", &bits); ++ icon = new BBitmap(&bits); ++ bits.MakeEmpty(); ++ Invalidate(); ++ break; ++ } ++ case '_ID_': ++ { ++ message->FindInt32("ReplicantID",&id); ++ break; ++ } ++ case 'MSGR': ++ { ++ ssize_t numBytes; ++ const char *name=NULL; ++ message->FindMessenger("messenger", &ReplyMessenger); ++ message->FindData("qtrayobject",B_ANY_TYPE,&traysysobject,&numBytes); ++ if(message->FindString("application_name",&name)==B_OK) ++ applicationName.SetTo(name); ++ break; ++ } ++ } ++ } ++ break; ++ default: ++ BView::MessageReceived(message); ++ break; ++ } ++} ++ ++DeskbarView::~DeskbarView() ++{ ++ ++} ++ ++BMessenger GetMessenger(void) ++{ ++ BMessenger aResult; ++ status_t aErr = B_OK; ++ BMessenger aDeskbar(DBAR_SIGNATURE, -1, &aErr); ++ if (aErr != B_OK)return aResult; ++ ++ BMessage aMessage(B_GET_PROPERTY); ++ ++ aMessage.AddSpecifier("Messenger"); ++ aMessage.AddSpecifier("Shelf"); ++ aMessage.AddSpecifier("View", "Status"); ++ aMessage.AddSpecifier("Window", "Deskbar"); ++ ++ BMessage aReply; ++ ++ if (aDeskbar.SendMessage(&aMessage, &aReply, 1000000, 1000000) == B_OK) ++ aReply.FindMessenger("result", &aResult); ++ return aResult; ++} ++ ++ ++status_t SendMessageToReplicant(int32 index, BMessage *msg) ++{ ++ BMessage aReply; ++ status_t aErr = B_OK; ++ ++ msg->AddInt32( "what2", msg->what ); ++ msg->what = B_SET_PROPERTY; ++ ++ BMessage uid_specifier(B_ID_SPECIFIER); ++ ++ msg->AddSpecifier("View"); ++ uid_specifier.AddInt32("id", index); ++ uid_specifier.AddString("property", "Replicant"); ++ msg->AddSpecifier(&uid_specifier); ++ ++ aErr = GetMessenger().SendMessage( msg, (BHandler*)NULL, 1000000 ); ++ return aErr; ++} ++ ++int32 LoadIcon(team_id tid) ++{ ++ BDeskbar deskbar; ++ int32 id=-1; ++ ++ deskbar.AddItem(new DeskbarView(tid),&id); ++ ++ if(id>0) { ++ BMessage msg('_ID_'); ++ msg.AddInt32("ReplicantID",id); ++ SendMessageToReplicant(id,&msg); ++ } ++ ++ return id; ++} ++ ++int32 LoadIcon(void) ++{ ++ thread_info threadInfo; ++ status_t error = get_thread_info(find_thread(NULL), &threadInfo); ++ if (error != B_OK) { ++ return 0; ++ } ++ team_id sTeam = threadInfo.team; ++ ++ return LoadIcon(sTeam); ++} ++ ++void RemoveIcon(int32 id) ++{ ++ BDeskbar deskbar; ++ deskbar.RemoveItem(id); ++} ++ ++int main(int argc, char *argv[]) ++{ ++ BApplication(APP_SIGNATURE); ++ ++ if(argc<2) { ++#ifdef GCC4BUILD ++ printf("QtSystrayManager for Haiku v0.1\n\tqsystray [team_id]\n\n"); ++#else ++ printf("QtSystrayManager for Haiku v0.1 (gcc2 loader)\n\tqsystray_gcc2 [team_id]\n\n"); ++#endif ++ exit(0); ++ } ++ ++ int32 team_id = atoi(argv[1]); ++ int32 id = LoadIcon(team_id); ++#ifdef GCC4BUILD ++ if(id<=0) { ++ char cmd[128]; ++ sprintf(cmd,"qsystray_gcc2 %d",team_id); ++ return system(cmd); ++ } ++#endif ++ printf("%d\n",id); ++ ++ return id; ++} +diff -rupN qt-everywhere-opensource-src-4.7.3/src/3rdparty/haiku-tools/qsystray/qsystray.h qt-everywhere-opensource-src-4.7.3_haiku/src/3rdparty/haiku-tools/qsystray/qsystray.h +--- qt-everywhere-opensource-src-4.7.3/src/3rdparty/haiku-tools/qsystray/qsystray.h 1970-01-01 00:00:00.000000000 +0000 ++++ qt-everywhere-opensource-src-4.7.3_haiku/src/3rdparty/haiku-tools/qsystray/qsystray.h 2011-06-13 22:06:43.147324928 +0000 +@@ -0,0 +1,45 @@ ++#ifndef DESKBARVIEW_H ++#define DESKBARVIEW_H ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#define TRAY_MOUSEDOWN 1 ++#define TRAY_MOUSEUP 2 ++ ++class DeskbarView : public BView { ++ public: ++ DeskbarView(team_id tid); ++ ~DeskbarView(); ++ void MouseDown(BPoint point); ++ void MouseUp(BPoint point); ++ void MouseMoved(BPoint point, uint32 transit,const BMessage *message); ++ void Draw(BRect r); ++ void MessageReceived(BMessage *message); ++ void AttachedToWindow(); ++ DeskbarView(BMessage *message); ++ static DeskbarView *Instantiate(BMessage *data); ++ virtual status_t Archive(BMessage *data, bool deep = true) const; ++ ++ private: ++ BPopUpMenu *RightClickPopUp; ++ BBitmap *fBitmap; ++ int32 lastButtons; ++ entry_ref appref; ++ rgb_color color; ++ team_id team; ++ int32 id; ++ unsigned int ticks; ++ BBitmap *icon; ++ BMessenger ReplyMessenger; ++ const void *traysysobject; ++ BString applicationName; ++}; ++ ++#endif +diff -rupN qt-everywhere-opensource-src-4.7.3/src/3rdparty/haiku-tools/qsystray/qsystray_gcc2.rdef qt-everywhere-opensource-src-4.7.3_haiku/src/3rdparty/haiku-tools/qsystray/qsystray_gcc2.rdef +--- qt-everywhere-opensource-src-4.7.3/src/3rdparty/haiku-tools/qsystray/qsystray_gcc2.rdef 1970-01-01 00:00:00.000000000 +0000 ++++ qt-everywhere-opensource-src-4.7.3_haiku/src/3rdparty/haiku-tools/qsystray/qsystray_gcc2.rdef 2011-06-13 22:06:43.148897792 +0000 +@@ -0,0 +1,13 @@ ++resource app_signature "application/x-vnd.QtSystrayManager_gcc2"; ++ ++resource app_flags B_MULTIPLE_LAUNCH | B_BACKGROUND_APP; ++ ++resource app_version { ++ major = 0, ++ middle = 1, ++ minor = 0, ++ variety = 0, ++ internal = 0, ++ short_info = "QtSystrayManager", ++ long_info = "QtSystrayManager (gcc2 loader)" ++}; +diff -rupN qt-everywhere-opensource-src-4.7.3/src/3rdparty/haiku-tools/qsystray/qsystray_gcc4.rdef qt-everywhere-opensource-src-4.7.3_haiku/src/3rdparty/haiku-tools/qsystray/qsystray_gcc4.rdef +--- qt-everywhere-opensource-src-4.7.3/src/3rdparty/haiku-tools/qsystray/qsystray_gcc4.rdef 1970-01-01 00:00:00.000000000 +0000 ++++ qt-everywhere-opensource-src-4.7.3_haiku/src/3rdparty/haiku-tools/qsystray/qsystray_gcc4.rdef 2011-06-13 22:06:43.150208512 +0000 +@@ -0,0 +1,13 @@ ++resource app_signature "application/x-vnd.QtSystrayManager_gcc4"; ++ ++resource app_flags B_MULTIPLE_LAUNCH | B_BACKGROUND_APP; ++ ++resource app_version { ++ major = 0, ++ middle = 1, ++ minor = 0, ++ variety = 0, ++ internal = 0, ++ short_info = "QtSystrayManager", ++ long_info = "QtSystrayManager" ++}; +diff -rupN qt-everywhere-opensource-src-4.7.3/src/3rdparty/webkit/JavaScriptCore/wtf/MathExtras.h qt-everywhere-opensource-src-4.7.3_haiku/src/3rdparty/webkit/JavaScriptCore/wtf/MathExtras.h +--- qt-everywhere-opensource-src-4.7.3/src/3rdparty/webkit/JavaScriptCore/wtf/MathExtras.h 2011-03-30 05:18:55.028573696 +0000 ++++ qt-everywhere-opensource-src-4.7.3_haiku/src/3rdparty/webkit/JavaScriptCore/wtf/MathExtras.h 2011-06-13 22:06:43.152043520 +0000 +@@ -190,7 +190,7 @@ inline float deg2turn(float d) { return + inline float rad2grad(float r) { return r * 200.0f / piFloat; } + inline float grad2rad(float g) { return g * piFloat / 200.0f; } + +-#if !COMPILER(MSVC) && !COMPILER(RVCT) && !OS(ANDROID) && !COMPILER(WINSCW) ++#if !COMPILER(MSVC) && !COMPILER(RVCT) && !OS(ANDROID) && !COMPILER(WINSCW) && !OS(HAIKU) + using std::isfinite; + using std::isinf; + using std::isnan; +diff -rupN qt-everywhere-opensource-src-4.7.3/src/3rdparty/webkit/WebCore/WebCore.pri qt-everywhere-opensource-src-4.7.3_haiku/src/3rdparty/webkit/WebCore/WebCore.pri +--- qt-everywhere-opensource-src-4.7.3/src/3rdparty/webkit/WebCore/WebCore.pri 2011-03-30 05:18:48.014155776 +0000 ++++ qt-everywhere-opensource-src-4.7.3_haiku/src/3rdparty/webkit/WebCore/WebCore.pri 2011-06-13 22:06:43.154927104 +0000 +@@ -86,7 +86,7 @@ greaterThan(QT_MINOR_VERSION, 5) { + + # Nescape plugins support (NPAPI) + !contains(DEFINES, ENABLE_NETSCAPE_PLUGIN_API=.) { +- unix|win32-*:!embedded:!wince*: { ++ unix|win32-*:!embedded:!wince*:!haiku: { + DEFINES += ENABLE_NETSCAPE_PLUGIN_API=1 + } else { + DEFINES += ENABLE_NETSCAPE_PLUGIN_API=0 +diff -rupN qt-everywhere-opensource-src-4.7.3/src/3rdparty/webkit/WebCore/websockets/WebSocketHandshake.cpp qt-everywhere-opensource-src-4.7.3_haiku/src/3rdparty/webkit/WebCore/websockets/WebSocketHandshake.cpp +--- qt-everywhere-opensource-src-4.7.3/src/3rdparty/webkit/WebCore/websockets/WebSocketHandshake.cpp 2011-03-30 05:18:51.049545216 +0000 ++++ qt-everywhere-opensource-src-4.7.3_haiku/src/3rdparty/webkit/WebCore/websockets/WebSocketHandshake.cpp 2011-06-13 22:06:43.157548544 +0000 +@@ -54,6 +54,29 @@ const char webSocketServerHandshakeHeade + const char webSocketUpgradeHeader[] = "Upgrade: WebSocket\r\n"; + const char webSocketConnectionHeader[] = "Connection: Upgrade\r\n"; + ++#if !defined(strnstr) && defined(__HAIKU__) ++static char * ++strnstr(const char *s, const char *find, size_t slen) ++{ ++ char c, sc; ++ size_t len; ++ ++ if ((c = *find++) != '\0') { ++ len = strlen(find); ++ do { ++ do { ++ if (slen-- < 1 || (sc = *s++) == '\0') ++ return (NULL); ++ } while (sc != c); ++ if (len > slen) ++ return (NULL); ++ } while (strncmp(s, find, len) != 0); ++ s--; ++ } ++ return ((char *)s); ++} ++#endif ++ + static String extractResponseCode(const char* header, int len) + { + const char* space1 = 0; +diff -rupN qt-everywhere-opensource-src-4.7.3/src/3rdparty/webkit/include/QtWebKit/libdummy.prl qt-everywhere-opensource-src-4.7.3_haiku/src/3rdparty/webkit/include/QtWebKit/libdummy.prl +--- qt-everywhere-opensource-src-4.7.3/src/3rdparty/webkit/include/QtWebKit/libdummy.prl 1970-01-01 00:00:00.000000000 +0000 ++++ qt-everywhere-opensource-src-4.7.3_haiku/src/3rdparty/webkit/include/QtWebKit/libdummy.prl 2011-06-13 22:06:43.159383552 +0000 +@@ -0,0 +1,5 @@ ++QMAKE_PRL_BUILD_DIR = /HaikuStorage/NewQt/qt-everywhere-opensource-src-4.7.3/./src/3rdparty/webkit/WebKit/qt/Api ++QMAKE_PRO_INPUT = DerivedSources.pro ++QMAKE_PRL_TARGET = libdummy.so.1.0.0 ++QMAKE_PRL_CONFIG = lex yacc warn_on uic resources qt warn_on release link_prl def_files_disabled exceptions no_mocdepend release stl qt_no_framework release shared dll stl mmx 3dnow sse sse2 sse3 ssse3 sse4_1 sse4_2 avx dylib create_prl link_prl depend_includepath fix_output_dirs QTDIR_build shared dll moc thread ++QMAKE_PRL_VERSION = 1.0.0 +diff -rupN qt-everywhere-opensource-src-4.7.3/src/corelib/animation/qvariantanimation.cpp qt-everywhere-opensource-src-4.7.3_haiku/src/corelib/animation/qvariantanimation.cpp +--- qt-everywhere-opensource-src-4.7.3/src/corelib/animation/qvariantanimation.cpp 2011-03-30 05:19:08.061079552 +0000 ++++ qt-everywhere-opensource-src-4.7.3_haiku/src/corelib/animation/qvariantanimation.cpp 2011-06-13 22:06:43.186384384 +0000 +@@ -434,9 +434,15 @@ void QVariantAnimation::registerInterpol + #ifndef QT_NO_THREAD + QMutexLocker locker(QMutexPool::globalInstanceGet(interpolators)); + #endif ++#if defined(Q_OS_HAIKU) //temporary dirty hack ++if(interpolators) { ++#endif + if (int(interpolationType) >= interpolators->count()) + interpolators->resize(int(interpolationType) + 1); + interpolators->replace(interpolationType, func); ++#if defined(Q_OS_HAIKU) ++} ++#endif + } + + +diff -rupN qt-everywhere-opensource-src-4.7.3/src/corelib/concurrent/qtconcurrentiteratekernel.cpp qt-everywhere-opensource-src-4.7.3_haiku/src/corelib/concurrent/qtconcurrentiteratekernel.cpp +--- qt-everywhere-opensource-src-4.7.3/src/corelib/concurrent/qtconcurrentiteratekernel.cpp 2011-03-30 05:19:08.058458112 +0000 ++++ qt-everywhere-opensource-src-4.7.3_haiku/src/corelib/concurrent/qtconcurrentiteratekernel.cpp 2011-06-13 22:06:43.188219392 +0000 +@@ -54,6 +54,9 @@ + #elif defined(Q_OS_WIN) + #include + #endif ++#if defined(Q_OS_HAIKU) ++#include ++#endif + + #include "private/qfunctions_p.h" + +@@ -67,7 +70,14 @@ enum { + MedianSize = 7 + }; + +-#if defined(Q_OS_MAC) ++#if defined(Q_OS_HAIKU) ++ ++static qint64 getticks() ++{ ++ return system_time(); ++} ++ ++#elif defined(Q_OS_MAC) + + static qint64 getticks() + { +diff -rupN qt-everywhere-opensource-src-4.7.3/src/corelib/corelib.pro qt-everywhere-opensource-src-4.7.3_haiku/src/corelib/corelib.pro +--- qt-everywhere-opensource-src-4.7.3/src/corelib/corelib.pro 2011-03-30 05:19:08.013369344 +0000 ++++ qt-everywhere-opensource-src-4.7.3_haiku/src/corelib/corelib.pro 2011-06-13 22:06:43.190578688 +0000 +@@ -23,6 +23,7 @@ mac|darwin:LIBS_PRIVATE += -framework Ap + + mac:lib_bundle:DEFINES += QT_NO_DEBUG_PLUGIN_CHECK + win32:DEFINES-=QT_NO_CAST_TO_ASCII ++haiku:DEFINES += QT_NO_SHAREDMEMORY + + QMAKE_LIBS += $$QMAKE_LIBS_CORE + +@@ -40,3 +41,7 @@ symbian: { + "$${LITERAL_HASH}endif" + MMP_RULES += pagingBlock + } ++ ++haiku: { ++ LIBS_PRIVATE += -lbe ++} +diff -rupN qt-everywhere-opensource-src-4.7.3/src/corelib/global/qconfig.cpp qt-everywhere-opensource-src-4.7.3_haiku/src/corelib/global/qconfig.cpp +--- qt-everywhere-opensource-src-4.7.3/src/corelib/global/qconfig.cpp 1970-01-01 00:00:00.000000000 +0000 ++++ qt-everywhere-opensource-src-4.7.3_haiku/src/corelib/global/qconfig.cpp 2011-06-13 22:06:43.192937984 +0000 +@@ -0,0 +1,34 @@ ++/* License Info */ ++static const char qt_configure_licensee_str [256 + 12] = "qt_lcnsuser=Open Source\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"; ++static const char qt_configure_licensed_products_str [256 + 12] = "qt_lcnsprod=OpenSource\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"; ++ ++/* Installation date */ ++static const char qt_configure_installation [12+11] = "qt_instdate=2011-06-13"; ++/* Installation Info */ ++static const char qt_configure_prefix_path_str [256 + 12] = "qt_prfxpath=/boot/common\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"; ++static const char qt_configure_documentation_path_str[256 + 12] = "qt_docspath=/boot/common/documentation/doc/Qt\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"; ++static const char qt_configure_headers_path_str [256 + 12] = "qt_hdrspath=/boot/common/include\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"; ++static const char qt_configure_libraries_path_str [256 + 12] = "qt_libspath=/boot/common/lib\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"; ++static const char qt_configure_binaries_path_str [256 + 12] = "qt_binspath=/boot/common/bin\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"; ++static const char qt_configure_plugins_path_str [256 + 12] = "qt_plugpath=/boot/common/add-ons/Qt/plugins\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"; ++static const char qt_configure_imports_path_str [256 + 12] = "qt_impspath=/boot/common/add-ons/Qt/imports\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"; ++static const char qt_configure_data_path_str [256 + 12] = "qt_datapath=/boot/common/data/Qt\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"; ++static const char qt_configure_translations_path_str [256 + 12] = "qt_trnspath=/boot/common/data/Qt/translations\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"; ++static const char qt_configure_settings_path_str [256 + 12] = "qt_stngpath=/boot/common/settings/Qt\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"; ++static const char qt_configure_examples_path_str [256 + 12] = "qt_xmplpath=/boot/apps/Qt/Examples\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"; ++static const char qt_configure_demos_path_str [256 + 12] = "qt_demopath=/boot/apps/Qt/Demos\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"; ++/* strlen( "qt_lcnsxxxx" ) == 12 */ ++#define QT_CONFIGURE_LICENSEE qt_configure_licensee_str + 12; ++#define QT_CONFIGURE_LICENSED_PRODUCTS qt_configure_licensed_products_str + 12; ++#define QT_CONFIGURE_PREFIX_PATH qt_configure_prefix_path_str + 12; ++#define QT_CONFIGURE_DOCUMENTATION_PATH qt_configure_documentation_path_str + 12; ++#define QT_CONFIGURE_HEADERS_PATH qt_configure_headers_path_str + 12; ++#define QT_CONFIGURE_LIBRARIES_PATH qt_configure_libraries_path_str + 12; ++#define QT_CONFIGURE_BINARIES_PATH qt_configure_binaries_path_str + 12; ++#define QT_CONFIGURE_PLUGINS_PATH qt_configure_plugins_path_str + 12; ++#define QT_CONFIGURE_IMPORTS_PATH qt_configure_imports_path_str + 12; ++#define QT_CONFIGURE_DATA_PATH qt_configure_data_path_str + 12; ++#define QT_CONFIGURE_TRANSLATIONS_PATH qt_configure_translations_path_str + 12; ++#define QT_CONFIGURE_SETTINGS_PATH qt_configure_settings_path_str + 12; ++#define QT_CONFIGURE_EXAMPLES_PATH qt_configure_examples_path_str + 12; ++#define QT_CONFIGURE_DEMOS_PATH qt_configure_demos_path_str + 12; +diff -rupN qt-everywhere-opensource-src-4.7.3/src/corelib/global/qconfig.h qt-everywhere-opensource-src-4.7.3_haiku/src/corelib/global/qconfig.h +--- qt-everywhere-opensource-src-4.7.3/src/corelib/global/qconfig.h 1970-01-01 00:00:00.000000000 +0000 ++++ qt-everywhere-opensource-src-4.7.3_haiku/src/corelib/global/qconfig.h 2011-06-13 22:06:43.194510848 +0000 +@@ -0,0 +1,225 @@ ++/* Everything */ ++ ++/* Qt Edition */ ++#ifndef QT_EDITION ++# define QT_EDITION QT_EDITION_OPENSOURCE ++#endif ++ ++/* Machine byte-order */ ++#define Q_BIG_ENDIAN 4321 ++#define Q_LITTLE_ENDIAN 1234 ++#define QT_BUILD_KEY "i386 haiku g++-4 full-config" ++#define QT_BUILD_KEY_COMPAT "BePC Haiku g++-4 full-config" ++ ++#ifdef QT_BOOTSTRAPPED ++#define Q_BYTE_ORDER Q_LITTLE_ENDIAN ++#else ++#define Q_BYTE_ORDER Q_LITTLE_ENDIAN ++#endif ++/* Machine Architecture */ ++#ifndef QT_BOOTSTRAPPED ++# define QT_ARCH_I386 ++#else ++# define QT_ARCH_I386 ++#endif ++/* Compile time features */ ++#define QT_POINTER_SIZE 4 ++ ++#ifndef QT_BOOTSTRAPPED ++ ++#if defined(QT_NO_ALSA) && defined(QT_ALSA) ++# undef QT_NO_ALSA ++#elif !defined(QT_NO_ALSA) && !defined(QT_ALSA) ++# define QT_NO_ALSA ++#endif ++ ++#if defined(QT_NO_CLOCK_MONOTONIC) && defined(QT_CLOCK_MONOTONIC) ++# undef QT_NO_CLOCK_MONOTONIC ++#elif !defined(QT_NO_CLOCK_MONOTONIC) && !defined(QT_CLOCK_MONOTONIC) ++# define QT_NO_CLOCK_MONOTONIC ++#endif ++ ++#if defined(QT_NO_CUPS) && defined(QT_CUPS) ++# undef QT_NO_CUPS ++#elif !defined(QT_NO_CUPS) && !defined(QT_CUPS) ++# define QT_NO_CUPS ++#endif ++ ++#if defined(QT_NO_DBUS) && defined(QT_DBUS) ++# undef QT_NO_DBUS ++#elif !defined(QT_NO_DBUS) && !defined(QT_DBUS) ++# define QT_NO_DBUS ++#endif ++ ++#if defined(QT_NO_EGL) && defined(QT_EGL) ++# undef QT_NO_EGL ++#elif !defined(QT_NO_EGL) && !defined(QT_EGL) ++# define QT_NO_EGL ++#endif ++ ++#if defined(QT_NO_GETIFADDRS) && defined(QT_GETIFADDRS) ++# undef QT_NO_GETIFADDRS ++#elif !defined(QT_NO_GETIFADDRS) && !defined(QT_GETIFADDRS) ++# define QT_NO_GETIFADDRS ++#endif ++ ++#if defined(QT_NO_GLIB) && defined(QT_GLIB) ++# undef QT_NO_GLIB ++#elif !defined(QT_NO_GLIB) && !defined(QT_GLIB) ++# define QT_NO_GLIB ++#endif ++ ++#if defined(QT_NO_GSTREAMER) && defined(QT_GSTREAMER) ++# undef QT_NO_GSTREAMER ++#elif !defined(QT_NO_GSTREAMER) && !defined(QT_GSTREAMER) ++# define QT_NO_GSTREAMER ++#endif ++ ++#if defined(QT_NO_GUI) && defined(QT_GUI) ++# undef QT_NO_GUI ++#elif !defined(QT_NO_GUI) && !defined(QT_GUI) ++# define QT_NO_GUI ++#endif ++ ++#if defined(QT_NO_ICD) && defined(QT_ICD) ++# undef QT_NO_ICD ++#elif !defined(QT_NO_ICD) && !defined(QT_ICD) ++# define QT_NO_ICD ++#endif ++ ++#if defined(QT_NO_ICONV) && defined(QT_ICONV) ++# undef QT_NO_ICONV ++#elif !defined(QT_NO_ICONV) && !defined(QT_ICONV) ++# define QT_NO_ICONV ++#endif ++ ++#if defined(QT_NO_IMAGEFORMAT_JPEG) && defined(QT_IMAGEFORMAT_JPEG) ++# undef QT_NO_IMAGEFORMAT_JPEG ++#elif !defined(QT_NO_IMAGEFORMAT_JPEG) && !defined(QT_IMAGEFORMAT_JPEG) ++# define QT_NO_IMAGEFORMAT_JPEG ++#endif ++ ++#if defined(QT_NO_IMAGEFORMAT_MNG) && defined(QT_IMAGEFORMAT_MNG) ++# undef QT_NO_IMAGEFORMAT_MNG ++#elif !defined(QT_NO_IMAGEFORMAT_MNG) && !defined(QT_IMAGEFORMAT_MNG) ++# define QT_NO_IMAGEFORMAT_MNG ++#endif ++ ++#if defined(QT_NO_IMAGEFORMAT_TIFF) && defined(QT_IMAGEFORMAT_TIFF) ++# undef QT_NO_IMAGEFORMAT_TIFF ++#elif !defined(QT_NO_IMAGEFORMAT_TIFF) && !defined(QT_IMAGEFORMAT_TIFF) ++# define QT_NO_IMAGEFORMAT_TIFF ++#endif ++ ++#if defined(QT_NO_INOTIFY) && defined(QT_INOTIFY) ++# undef QT_NO_INOTIFY ++#elif !defined(QT_NO_INOTIFY) && !defined(QT_INOTIFY) ++# define QT_NO_INOTIFY ++#endif ++ ++#if defined(QT_NO_MREMAP) && defined(QT_MREMAP) ++# undef QT_NO_MREMAP ++#elif !defined(QT_NO_MREMAP) && !defined(QT_MREMAP) ++# define QT_NO_MREMAP ++#endif ++ ++#if defined(QT_NO_NAS) && defined(QT_NAS) ++# undef QT_NO_NAS ++#elif !defined(QT_NO_NAS) && !defined(QT_NAS) ++# define QT_NO_NAS ++#endif ++ ++#if defined(QT_NO_NIS) && defined(QT_NIS) ++# undef QT_NO_NIS ++#elif !defined(QT_NO_NIS) && !defined(QT_NIS) ++# define QT_NO_NIS ++#endif ++ ++#if defined(QT_NO_OPENGL) && defined(QT_OPENGL) ++# undef QT_NO_OPENGL ++#elif !defined(QT_NO_OPENGL) && !defined(QT_OPENGL) ++# define QT_NO_OPENGL ++#endif ++ ++#if defined(QT_NO_OPENVG) && defined(QT_OPENVG) ++# undef QT_NO_OPENVG ++#elif !defined(QT_NO_OPENVG) && !defined(QT_OPENVG) ++# define QT_NO_OPENVG ++#endif ++ ++#if defined(QT_NO_PULSEAUDIO) && defined(QT_PULSEAUDIO) ++# undef QT_NO_PULSEAUDIO ++#elif !defined(QT_NO_PULSEAUDIO) && !defined(QT_PULSEAUDIO) ++# define QT_NO_PULSEAUDIO ++#endif ++ ++#if defined(QT_NO_S60) && defined(QT_S60) ++# undef QT_NO_S60 ++#elif !defined(QT_NO_S60) && !defined(QT_S60) ++# define QT_NO_S60 ++#endif ++ ++#if defined(QT_NO_STYLE_GTK) && defined(QT_STYLE_GTK) ++# undef QT_NO_STYLE_GTK ++#elif !defined(QT_NO_STYLE_GTK) && !defined(QT_STYLE_GTK) ++# define QT_NO_STYLE_GTK ++#endif ++ ++#if defined(QT_NO_STYLE_S60) && defined(QT_STYLE_S60) ++# undef QT_NO_STYLE_S60 ++#elif !defined(QT_NO_STYLE_S60) && !defined(QT_STYLE_S60) ++# define QT_NO_STYLE_S60 ++#endif ++ ++#if defined(QT_NO_SXE) && defined(QT_SXE) ++# undef QT_NO_SXE ++#elif !defined(QT_NO_SXE) && !defined(QT_SXE) ++# define QT_NO_SXE ++#endif ++ ++#if defined(QT_NO_ZLIB) && defined(QT_ZLIB) ++# undef QT_NO_ZLIB ++#elif !defined(QT_NO_ZLIB) && !defined(QT_ZLIB) ++# define QT_NO_ZLIB ++#endif ++ ++#if defined(QT_RUNTIME_XCURSOR) && defined(QT_NO_RUNTIME_XCURSOR) ++# undef QT_RUNTIME_XCURSOR ++#elif !defined(QT_RUNTIME_XCURSOR) && !defined(QT_NO_RUNTIME_XCURSOR) ++# define QT_RUNTIME_XCURSOR ++#endif ++ ++#if defined(QT_RUNTIME_XFIXES) && defined(QT_NO_RUNTIME_XFIXES) ++# undef QT_RUNTIME_XFIXES ++#elif !defined(QT_RUNTIME_XFIXES) && !defined(QT_NO_RUNTIME_XFIXES) ++# define QT_RUNTIME_XFIXES ++#endif ++ ++#if defined(QT_RUNTIME_XINERAMA) && defined(QT_NO_RUNTIME_XINERAMA) ++# undef QT_RUNTIME_XINERAMA ++#elif !defined(QT_RUNTIME_XINERAMA) && !defined(QT_NO_RUNTIME_XINERAMA) ++# define QT_RUNTIME_XINERAMA ++#endif ++ ++#if defined(QT_RUNTIME_XINPUT) && defined(QT_NO_RUNTIME_XINPUT) ++# undef QT_RUNTIME_XINPUT ++#elif !defined(QT_RUNTIME_XINPUT) && !defined(QT_NO_RUNTIME_XINPUT) ++# define QT_RUNTIME_XINPUT ++#endif ++ ++#if defined(QT_RUNTIME_XRANDR) && defined(QT_NO_RUNTIME_XRANDR) ++# undef QT_RUNTIME_XRANDR ++#elif !defined(QT_RUNTIME_XRANDR) && !defined(QT_NO_RUNTIME_XRANDR) ++# define QT_RUNTIME_XRANDR ++#endif ++ ++#if defined(QT_USE_MATH_H_FLOATS) && defined(QT_NO_USE_MATH_H_FLOATS) ++# undef QT_USE_MATH_H_FLOATS ++#elif !defined(QT_USE_MATH_H_FLOATS) && !defined(QT_NO_USE_MATH_H_FLOATS) ++# define QT_USE_MATH_H_FLOATS ++#endif ++ ++#endif // QT_BOOTSTRAPPED ++ ++#define QT_VISIBILITY_AVAILABLE ++ +diff -rupN qt-everywhere-opensource-src-4.7.3/src/corelib/global/qconfig.h.qmake qt-everywhere-opensource-src-4.7.3_haiku/src/corelib/global/qconfig.h.qmake +--- qt-everywhere-opensource-src-4.7.3/src/corelib/global/qconfig.h.qmake 1970-01-01 00:00:00.000000000 +0000 ++++ qt-everywhere-opensource-src-4.7.3_haiku/src/corelib/global/qconfig.h.qmake 2011-06-13 22:06:43.196345856 +0000 +@@ -0,0 +1 @@ ++/* All features enabled while building qmake */ +diff -rupN qt-everywhere-opensource-src-4.7.3/src/corelib/global/qglobal.h qt-everywhere-opensource-src-4.7.3_haiku/src/corelib/global/qglobal.h +--- qt-everywhere-opensource-src-4.7.3/src/corelib/global/qglobal.h 2011-03-30 05:19:08.006553600 +0000 ++++ qt-everywhere-opensource-src-4.7.3_haiku/src/corelib/global/qglobal.h 2011-06-13 22:06:43.213385216 +0000 +@@ -173,6 +173,7 @@ namespace QT_NAMESPACE {} + LYNX - LynxOS + BSD4 - Any BSD 4.4 system + UNIX - Any UNIX BSD/SYSV system ++ HAIKU - Haiku + */ + + #if defined(__APPLE__) && (defined(__GNUC__) || defined(__xlC__) || defined(__xlc__)) +@@ -256,6 +257,8 @@ namespace QT_NAMESPACE {} + # define Q_OS_INTEGRITY + #elif defined(VXWORKS) /* there is no "real" VxWorks define - this has to be set in the mkspec! */ + # define Q_OS_VXWORKS ++#elif defined(__HAIKU__) ++# define Q_OS_HAIKU + #elif defined(__MAKEDEPEND__) + #else + # error "Qt has not been ported to this OS - talk to qt-bugs@trolltech.com" +@@ -781,6 +784,7 @@ namespace QT_NAMESPACE {} + S60 - Symbian S60 + PM - unsupported + WIN16 - unsupported ++ HAIKU - Haiku, Application Server + */ + + #if defined(Q_OS_MSDOS) +@@ -788,6 +792,8 @@ namespace QT_NAMESPACE {} + # error "Qt requires Win32 and does not work with Windows 3.x" + #elif defined(_WIN32_X11_) + # define Q_WS_X11 ++#elif defined(Q_OS_HAIKU) ++# define Q_WS_HAIKU + #elif defined(Q_OS_WIN32) + # define Q_WS_WIN32 + # if defined(Q_OS_WIN64) +@@ -820,6 +826,10 @@ namespace QT_NAMESPACE {} + # endif + #endif + ++#if defined(Q_OS_HAIKU) && defined (Q_WS_X11) ++#undef Q_WS_X11 ++#endif ++ + #if defined(Q_WS_WIN16) || defined(Q_WS_WIN32) || defined(Q_WS_WINCE) + # define Q_WS_WIN + #endif +diff -rupN qt-everywhere-opensource-src-4.7.3/src/corelib/global/qnamespace.h qt-everywhere-opensource-src-4.7.3_haiku/src/corelib/global/qnamespace.h +--- qt-everywhere-opensource-src-4.7.3/src/corelib/global/qnamespace.h 2011-03-30 05:19:08.006291456 +0000 ++++ qt-everywhere-opensource-src-4.7.3_haiku/src/corelib/global/qnamespace.h 2011-06-13 22:06:43.216006656 +0000 +@@ -1670,6 +1670,8 @@ public: + typedef void * HANDLE; + #elif defined(Q_OS_SYMBIAN) + typedef unsigned long int HANDLE; // equivalent to TUint32 ++#elif defined(Q_OS_HAIKU) ++ typedef unsigned long HANDLE; + #endif + typedef WindowFlags WFlags; + +diff -rupN qt-everywhere-opensource-src-4.7.3/src/corelib/io/qfsfileengine_unix.cpp qt-everywhere-opensource-src-4.7.3_haiku/src/corelib/io/qfsfileengine_unix.cpp +--- qt-everywhere-opensource-src-4.7.3/src/corelib/io/qfsfileengine_unix.cpp 2011-03-30 05:19:08.055312384 +0000 ++++ qt-everywhere-opensource-src-4.7.3_haiku/src/corelib/io/qfsfileengine_unix.cpp 2011-06-13 22:06:43.218628096 +0000 +@@ -625,6 +625,9 @@ QString QFSFileEngine::homePath() + QString home = rootPath(); + #else + QString home = QFile::decodeName(qgetenv("HOME")); ++#ifdef Q_OS_HAIKU ++ home += QLatin1String("/config/settings/Qt"); ++#endif + if (home.isNull()) + home = rootPath(); + #endif +diff -rupN qt-everywhere-opensource-src-4.7.3/src/corelib/io/qprocess_unix.cpp qt-everywhere-opensource-src-4.7.3_haiku/src/corelib/io/qprocess_unix.cpp +--- qt-everywhere-opensource-src-4.7.3/src/corelib/io/qprocess_unix.cpp 2011-03-30 05:19:08.050331648 +0000 ++++ qt-everywhere-opensource-src-4.7.3_haiku/src/corelib/io/qprocess_unix.cpp 2011-06-13 22:06:43.221249536 +0000 +@@ -792,8 +792,12 @@ qint64 QProcessPrivate::bytesAvailableFr + { + int nbytes = 0; + qint64 available = 0; ++#ifdef Q_OS_HAIKU ++ available = 1024; ++#else + if (::ioctl(stdoutChannel.pipe[0], FIONREAD, (char *) &nbytes) >= 0) + available = (qint64) nbytes; ++#endif + #if defined (QPROCESS_DEBUG) + qDebug("QProcessPrivate::bytesAvailableFromStdout() == %lld", available); + #endif +@@ -804,8 +808,12 @@ qint64 QProcessPrivate::bytesAvailableFr + { + int nbytes = 0; + qint64 available = 0; ++#ifdef Q_OS_HAIKU ++ available = 1024; ++#else + if (::ioctl(stderrChannel.pipe[0], FIONREAD, (char *) &nbytes) >= 0) + available = (qint64) nbytes; ++#endif + #if defined (QPROCESS_DEBUG) + qDebug("QProcessPrivate::bytesAvailableFromStderr() == %lld", available); + #endif +diff -rupN qt-everywhere-opensource-src-4.7.3/src/corelib/kernel/qsystemsemaphore_unix.cpp qt-everywhere-opensource-src-4.7.3_haiku/src/corelib/kernel/qsystemsemaphore_unix.cpp +--- qt-everywhere-opensource-src-4.7.3/src/corelib/kernel/qsystemsemaphore_unix.cpp 2011-03-30 05:19:08.063438848 +0000 ++++ qt-everywhere-opensource-src-4.7.3_haiku/src/corelib/kernel/qsystemsemaphore_unix.cpp 2011-06-13 22:06:43.223346688 +0000 +@@ -52,7 +52,9 @@ + #include + #include + #include ++#if !defined(Q_OS_HAIKU) + #include ++#endif + + #include + +diff -rupN qt-everywhere-opensource-src-4.7.3/src/corelib/thread/qthread_p.h qt-everywhere-opensource-src-4.7.3_haiku/src/corelib/thread/qthread_p.h +--- qt-everywhere-opensource-src-4.7.3/src/corelib/thread/qthread_p.h 2011-03-30 05:19:08.008650752 +0000 ++++ qt-everywhere-opensource-src-4.7.3_haiku/src/corelib/thread/qthread_p.h 2011-06-13 22:06:43.225443840 +0000 +@@ -140,7 +140,7 @@ public: + QWaitCondition thread_done; + + static void *start(void *arg); +-#if defined(Q_OS_SYMBIAN) ++#if defined(Q_OS_SYMBIAN) || defined(Q_OS_HAIKU) + static void finish(void *arg, bool lockAnyway=true, bool closeNativeHandle=true); + #else + static void finish(void *); +@@ -156,7 +156,7 @@ public: + static void finish(void *, bool lockAnyway=true); + #endif // Q_OS_WIN32 + +-#if defined(Q_OS_WIN32) || defined(Q_OS_WINCE) || defined (Q_OS_SYMBIAN) ++#if defined(Q_OS_WIN32) || defined(Q_OS_WINCE) || defined (Q_OS_SYMBIAN) || defined (Q_OS_HAIKU) + bool terminationEnabled, terminatePending; + # endif + QThreadData *data; +diff -rupN qt-everywhere-opensource-src-4.7.3/src/corelib/thread/qthread_unix.cpp qt-everywhere-opensource-src-4.7.3_haiku/src/corelib/thread/qthread_unix.cpp +--- qt-everywhere-opensource-src-4.7.3/src/corelib/thread/qthread_unix.cpp 2011-03-30 05:19:08.009699328 +0000 ++++ qt-everywhere-opensource-src-4.7.3_haiku/src/corelib/thread/qthread_unix.cpp 2011-06-13 22:06:43.228327424 +0000 +@@ -274,7 +274,7 @@ void QThreadPrivate::createEventDispatch + void *QThreadPrivate::start(void *arg) + { + // Symbian Open C supports neither thread cancellation nor cleanup_push. +-#ifndef Q_OS_SYMBIAN ++#if !defined(Q_OS_SYMBIAN) && !defined(Q_OS_HAIKU) + pthread_setcancelstate(PTHREAD_CANCEL_DISABLE, NULL); + pthread_cleanup_push(QThreadPrivate::finish, arg); + #endif +@@ -319,7 +319,7 @@ void *QThreadPrivate::start(void *arg) + #endif + thr->run(); + +-#ifdef Q_OS_SYMBIAN ++#if defined(Q_OS_SYMBIAN) || defined(Q_OS_HAIKU) + QThreadPrivate::finish(arg); + #else + pthread_cleanup_pop(1); +@@ -328,7 +328,7 @@ void *QThreadPrivate::start(void *arg) + return 0; + } + +-#ifdef Q_OS_SYMBIAN ++#if defined(Q_OS_SYMBIAN) || defined(Q_OS_HAIKU) + void QThreadPrivate::finish(void *arg, bool lockAnyway, bool closeNativeHandle) + #else + void QThreadPrivate::finish(void *arg) +@@ -336,7 +336,7 @@ void QThreadPrivate::finish(void *arg) + { + QThread *thr = reinterpret_cast(arg); + QThreadPrivate *d = thr->d_func(); +-#ifdef Q_OS_SYMBIAN ++#if defined(Q_OS_SYMBIAN) || defined(Q_OS_HAIKU) + if (lockAnyway) + #endif + d->mutex.lock(); +@@ -365,7 +365,7 @@ void QThreadPrivate::finish(void *arg) + d->data->symbian_thread_handle.Close(); + #endif + d->thread_done.wakeAll(); +-#ifdef Q_OS_SYMBIAN ++#if defined(Q_OS_SYMBIAN) || defined(Q_OS_HAIKU) + if (lockAnyway) + #endif + d->mutex.unlock(); +@@ -634,7 +634,7 @@ void QThread::start(Priority priority) + if (code == EPERM) { + // caller does not have permission to set the scheduling + // parameters/policy +-#ifndef Q_OS_SYMBIAN ++#if !defined(Q_OS_SYMBIAN) && !defined(Q_OS_HAIKU) + pthread_attr_setinheritsched(&attr, PTHREAD_INHERIT_SCHED); + #endif + code = +@@ -663,7 +663,7 @@ void QThread::terminate() + if (!d->thread_id) + return; + +-#ifndef Q_OS_SYMBIAN ++#if !defined(Q_OS_SYMBIAN) && !defined(Q_OS_HAIKU) + int code = pthread_cancel(d->thread_id); + if (code) { + qWarning("QThread::start: Thread termination error: %s", +@@ -686,11 +686,14 @@ void QThread::terminate() + // 2. closeNativeSymbianHandle = false. We don't want to close the thread handle, + // because we need it here to terminate the thread. + QThreadPrivate::finish(this, false, false); ++#ifdef Q_OS_SYMBIAN + d->data->symbian_thread_handle.Terminate(KErrNone); + d->data->symbian_thread_handle.Close(); + #endif +- +- ++#ifdef Q_OS_HAIKU ++ pthread_kill(d->thread_id,0); ++#endif ++#endif + } + + bool QThread::wait(unsigned long time) +diff -rupN qt-everywhere-opensource-src-4.7.3/src/corelib/tools/qlocale.cpp qt-everywhere-opensource-src-4.7.3_haiku/src/corelib/tools/qlocale.cpp +--- qt-everywhere-opensource-src-4.7.3/src/corelib/tools/qlocale.cpp 2011-03-30 05:19:08.013893632 +0000 ++++ qt-everywhere-opensource-src-4.7.3_haiku/src/corelib/tools/qlocale.cpp 2011-06-13 22:06:43.234356736 +0000 +@@ -63,6 +63,9 @@ QT_END_NAMESPACE + # include "qt_windows.h" + # include + #endif ++#if defined(Q_OS_HAIKU) ++#include ++#endif + #if !defined(QWS) && defined(Q_OS_MAC) + # include "private/qcore_mac_p.h" + # include +@@ -1249,6 +1252,78 @@ QVariant QSystemLocale::query(QueryType + return QVariant(); + } + ++#elif defined(Q_OS_HAIKU) && !defined(QT_BUILD_QMAKE) ++ ++QLocale QSystemLocale::fallbackLocale() const ++{ ++ BLanguage lang; ++ BLocale::Default()->GetLanguage(&lang); ++ return QLocale(QLatin1String(lang.ID())); ++} ++ ++QVariant QSystemLocale::query(QueryType type, QVariant in = QVariant()) const ++{ ++ BLanguage lang; ++ BLocale::Default()->GetLanguage(&lang); ++ ++ switch(type) { ++ case DecimalPoint: { ++ BString test, unitest; ++ BLocale::Default()->FormatNumber(&test,1.1); ++ BLocale::Default()->FormatNumber(&unitest,(int32)1); ++ QString result = QString().fromLocal8Bit(test.String()); ++ result.remove(QString().fromLocal8Bit(unitest.String())); ++ if(!result.isEmpty() && result.size()<=2) { ++ return result; ++ } ++ return QVariant(); ++ } ++ case GroupSeparator: { ++ BString test, unitest; ++ BLocale::Default()->FormatNumber(&test,(int32)11111); ++ BLocale::Default()->FormatNumber(&unitest,(int32)1); ++ QString result = QString().fromLocal8Bit(test.String()); ++ result.remove(QString().fromLocal8Bit(unitest.String())); ++ if(!result.isEmpty() && result.size()<=3) { ++ return result; ++ } ++ return QVariant(); ++ } ++ case LanguageId: ++ case CountryId: { ++ QString preferredLanguage = QString().fromLocal8Bit(lang.Code()); ++ QString preferredCountry(3, QChar()); ++ preferredCountry = QString().fromLocal8Bit(lang.CountryCode()); ++ QLocale::Language languageCode = (preferredLanguage.isEmpty() ? QLocale::C : codeToLanguage(preferredLanguage.data())); ++ QLocale::Country countryCode = (preferredCountry.isEmpty() ? QLocale::AnyCountry : codeToCountry(preferredCountry.data())); ++ const QLocalePrivate *d = findLocale(languageCode, countryCode); ++ if (type == LanguageId) { ++ return (QLocale::Language)d->languageId(); ++ } ++ return (QLocale::Country)d->countryId(); ++ } ++ case MeasurementSystem: { ++ BFormattingConventions conventions; ++ BLocale::Default()->GetFormattingConventions(&conventions); ++ if(conventions.MeasurementKind()==B_METRIC) { ++ return QLocale::MetricSystem; ++ } else { ++ return QLocale::ImperialSystem; ++ } ++ } ++ case NegativeSign: ++ case PositiveSign: ++ case ZeroDigit: ++ break; ++ case AMText: ++ case PMText: ++ break; ++ default: ++ break; ++ } ++ return QVariant(); ++} ++ + #elif defined(Q_OS_UNIX) && !defined(Q_OS_SYMBIAN) + + static uint unixGetSystemMeasurementSystem() +diff -rupN qt-everywhere-opensource-src-4.7.3/src/corelib/tools/tools.pri qt-everywhere-opensource-src-4.7.3_haiku/src/corelib/tools/tools.pri +--- qt-everywhere-opensource-src-4.7.3/src/corelib/tools/tools.pri 2011-03-30 05:19:08.024117248 +0000 ++++ qt-everywhere-opensource-src-4.7.3_haiku/src/corelib/tools/tools.pri 2011-06-13 22:06:43.235929600 +0000 +@@ -110,5 +110,5 @@ INCLUDEPATH += ../3rdparty/md5 \ + ../3rdparty/md4 + + # Note: libm should be present by default becaue this is C++ +-!macx-icc:!vxworks:!symbian:unix:LIBS_PRIVATE += -lm ++!macx-icc:!vxworks:!symbian:!haiku:unix:LIBS_PRIVATE += -lm + +diff -rupN qt-everywhere-opensource-src-4.7.3/src/gui/dialogs/dialogs.pri qt-everywhere-opensource-src-4.7.3_haiku/src/gui/dialogs/dialogs.pri +--- qt-everywhere-opensource-src-4.7.3/src/gui/dialogs/dialogs.pri 2011-03-30 05:19:03.013369344 +0000 ++++ qt-everywhere-opensource-src-4.7.3_haiku/src/gui/dialogs/dialogs.pri 2011-06-13 22:06:43.238026752 +0000 +@@ -61,6 +61,11 @@ win32 { + !win32-borland:!wince*: LIBS += -lshell32 # the filedialog needs this library + } + ++haiku { ++ SOURCES += dialogs/qfiledialog_haiku.cpp ++ LIBS += -ltracker # the filedialog needs this library ++} ++ + !mac:!embedded:!symbian:unix { + HEADERS += dialogs/qpagesetupdialog_unix_p.h + SOURCES += dialogs/qprintdialog_unix.cpp \ +diff -rupN qt-everywhere-opensource-src-4.7.3/src/gui/dialogs/qfiledialog.cpp qt-everywhere-opensource-src-4.7.3_haiku/src/gui/dialogs/qfiledialog.cpp +--- qt-everywhere-opensource-src-4.7.3/src/gui/dialogs/qfiledialog.cpp 2011-03-30 05:19:03.020185088 +0000 ++++ qt-everywhere-opensource-src-4.7.3_haiku/src/gui/dialogs/qfiledialog.cpp 2011-06-13 22:06:43.243269632 +0000 +@@ -292,7 +292,7 @@ Q_GUI_EXPORT _qt_filedialog_save_filenam + This signal is emitted when the user selects a \a filter. + */ + +-#if defined(Q_WS_WIN) || defined(Q_WS_MAC) ++#if defined(Q_WS_WIN) || defined(Q_WS_MAC) || defined(Q_WS_HAIKU) + bool Q_GUI_EXPORT qt_use_native_dialogs = true; // for the benefit of testing tools, until we have a proper API + #endif + +@@ -1617,6 +1617,25 @@ extern QString qt_win_get_existing_direc + #endif + + /* ++ For Haiku file dialogs ++*/ ++#if defined(Q_WS_HAIKU) ++extern QString qt_haiku_get_open_file_name(const QFileDialogArgs &args, ++ QString *initialDirectory, ++ QString *selectedFilter); ++ ++extern QString qt_haiku_get_save_file_name(const QFileDialogArgs &args, ++ QString *initialDirectory, ++ QString *selectedFilter); ++ ++extern QStringList qt_haiku_get_open_file_names(const QFileDialogArgs &args, ++ QString *initialDirectory, ++ QString *selectedFilter); ++ ++extern QString qt_haiku_get_existing_directory(const QFileDialogArgs &args); ++#endif ++ ++/* + For Symbian file dialogs + */ + #if defined(Q_WS_S60) +@@ -1713,6 +1732,12 @@ QString QFileDialog::getOpenFileName(QWi + } + #endif + ++#if defined(Q_WS_HAIKU) ++ if (qt_use_native_dialogs && !(args.options & DontUseNativeDialog)) { ++ return qt_haiku_get_open_file_name(args, &(args.directory), selectedFilter); ++ } ++#endif ++ + // create a qt dialog + QFileDialog dialog(args); + if (selectedFilter) +@@ -1806,6 +1831,12 @@ QStringList QFileDialog::getOpenFileName + } + #endif + ++#if defined(Q_WS_HAIKU) ++ if (qt_use_native_dialogs && !(args.options & DontUseNativeDialog)) { ++ return qt_haiku_get_open_file_names(args, &(args.directory), selectedFilter); ++ } ++#endif ++ + // create a qt dialog + QFileDialog dialog(args); + if (selectedFilter) +@@ -1900,6 +1931,12 @@ QString QFileDialog::getSaveFileName(QWi + } + #endif + ++#if defined(Q_WS_HAIKU) ++ if (qt_use_native_dialogs && !(args.options & DontUseNativeDialog)) { ++ return qt_haiku_get_save_file_name(args, &(args.directory), selectedFilter); ++ } ++#endif ++ + // create a qt dialog + QFileDialog dialog(args); + dialog.setAcceptMode(AcceptSave); +@@ -1984,6 +2021,11 @@ QString QFileDialog::getExistingDirector + } + #endif + ++#if defined(Q_WS_HAIKU) ++ if (qt_use_native_dialogs && !(args.options & DontUseNativeDialog) && (options & ShowDirsOnly)) ++ return qt_haiku_get_existing_directory(args); ++#endif ++ + // create a qt dialog + QFileDialog dialog(args); + if (dialog.exec() == QDialog::Accepted) { +diff -rupN qt-everywhere-opensource-src-4.7.3/src/gui/dialogs/qfiledialog_haiku.cpp qt-everywhere-opensource-src-4.7.3_haiku/src/gui/dialogs/qfiledialog_haiku.cpp +--- qt-everywhere-opensource-src-4.7.3/src/gui/dialogs/qfiledialog_haiku.cpp 1970-01-01 00:00:00.000000000 +0000 ++++ qt-everywhere-opensource-src-4.7.3_haiku/src/gui/dialogs/qfiledialog_haiku.cpp 2011-06-13 22:06:43.245628928 +0000 +@@ -0,0 +1,465 @@ ++/**************************************************************************** ++** ++** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). ++** Contact: Qt Software Information (qt-info@nokia.com) ++** ++** This file is part of the QtGui module of the Qt Toolkit. ++** ++** $QT_BEGIN_LICENSE:LGPL$ ++** Commercial Usage ++** Licensees holding valid Qt Commercial licenses may use this file in ++** accordance with the Qt Commercial License Agreement provided with the ++** Software or, alternatively, in accordance with the terms contained in ++** a written agreement between you and Nokia. ++** ++** GNU Lesser General Public License Usage ++** Alternatively, this file may be used under the terms of the GNU Lesser ++** General Public License version 2.1 as published by the Free Software ++** Foundation and appearing in the file LICENSE.LGPL included in the ++** packaging of this file. Please review the following information to ++** ensure the GNU Lesser General Public License version 2.1 requirements ++** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ++** ++** In addition, as a special exception, Nokia gives you certain ++** additional rights. These rights are described in the Nokia Qt LGPL ++** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this ++** package. ++** ++** GNU General Public License Usage ++** Alternatively, this file may be used under the terms of the GNU ++** General Public License version 3.0 as published by the Free Software ++** Foundation and appearing in the file LICENSE.GPL included in the ++** packaging of this file. Please review the following information to ++** ensure the GNU General Public License version 3.0 requirements will be ++** met: http://www.gnu.org/copyleft/gpl.html. ++** ++** If you are unsure which license is appropriate for your use, please ++** contact the sales department at qt-sales@nokia.com. ++** $QT_END_LICENSE$ ++** ++****************************************************************************/ ++ ++#include "qfiledialog.h" ++ ++#ifndef QT_NO_FILEDIALOG ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include "qeventloop.h" ++ ++#ifndef QT_NO_THREAD ++# include ++#endif ++ ++#include ++#include ++#include ++#include ++#include ++#include ++ ++QT_BEGIN_NAMESPACE ++ ++extern const char* qt_file_dialog_filter_reg_exp; // defined in qfiledialog.cpp ++extern QStringList qt_make_filter_list(const QString &filter); ++ ++const int maxNameLen = 1023; ++const int maxMultiLen = 65535; ++ ++class PanelLooper : public BLooper { ++public: ++ PanelLooper(); ++ virtual ~PanelLooper(); ++ virtual void MessageReceived(BMessage* message); ++ ++ int Wait(BFilePanel *panel); ++ ++ QString GetFilename(); ++ QStringList GetFilenames(); ++ ++private: ++ int state; ++ QString filename; ++ QStringList filenames; ++ entry_ref fRef; ++}; ++ ++ ++PanelLooper::PanelLooper() : BLooper("PanelLooper"), state(B_CANCEL) { } ++PanelLooper::~PanelLooper() { } ++ ++int ++PanelLooper::Wait(BFilePanel *panel) ++{ ++ QEventLoop::ProcessEventsFlags flags; ++ flags |= QEventLoop::WaitForMoreEvents; ++ while(panel->IsShowing()) { ++ QCoreApplication::processEvents(flags); ++ snooze(250); ++ } ++ return state; ++} ++ ++QString ++PanelLooper::GetFilename() ++{ ++ return filename; ++} ++ ++QStringList ++PanelLooper::GetFilenames() ++{ ++ return filenames; ++} ++ ++void ++PanelLooper::MessageReceived(BMessage* message) ++{ ++ switch (message->what) { ++ case B_SAVE_REQUESTED: ++ { ++ entry_ref ref; ++ const char *name; ++ message->FindRef("directory", &ref); ++ BDirectory dir(&ref); ++ BPath path(&dir, NULL, false); ++ message->FindString("name", &name); ++ path.Append(name); ++ filename = QString::fromUtf8(path.Path()); ++ filenames.append(filename); ++ ++ state = B_OK; ++ } ++ break; ++ case B_REFS_RECEIVED: ++ { ++ uint32 type; ++ int32 count; ++ ++ message->GetInfo("refs", &type, &count); ++ if ( type != B_REF_TYPE || count <= 0) ++ return; ++ ++ for ( long i = --count; i >= 0; i-- ) { ++ if ( message->FindRef("refs", i, &fRef) == B_OK ) { ++ BPath path(&fRef); ++ filename = QString::fromUtf8(path.Path()); ++ filenames.append(filename); ++ } ++ } ++ ++ state = B_OK; ++ } ++ break; ++ case B_CANCEL: ++ { ++ if(state!=B_OK) { ++ state = B_CANCEL; ++ filename.clear(); ++ filenames.clear(); ++ } ++ } ++ break; ++ default: ++ break; ++ } ++} ++ ++ ++// Returns the wildcard part of a filter. ++static QString qt_haiku_extract_filter(const QString &rawFilter) ++{ ++ QString result = rawFilter; ++ QRegExp r(QString::fromLatin1(qt_file_dialog_filter_reg_exp)); ++ int index = r.indexIn(result); ++ if (index >= 0) ++ result = r.cap(2); ++ QStringList list = result.split(QLatin1Char(' ')); ++ for(QStringList::iterator it = list.begin(); it < list.end(); ++it) { ++ if (*it == QLatin1String("*")) { ++ *it = QLatin1String("*.*"); ++ break; ++ } ++ } ++ return list.join(QLatin1String(";")); ++} ++ ++static QStringList qt_haiku_make_filters_list(const QString &filter) ++{ ++ QString f(filter); ++ ++ if (f.isEmpty()) ++ f = QFileDialog::tr("All Files (*.*)"); ++ ++ return qt_make_filter_list(f); ++} ++ ++// Makes a NUL-oriented Haiku filter from a Qt filter. ++static QString qt_haiku_filter(const QString &filter) ++{ ++ QStringList filterLst = qt_haiku_make_filters_list(filter); ++ QStringList::Iterator it = filterLst.begin(); ++ QString haikufilters; ++ for (; it != filterLst.end(); ++it) { ++ QString subfilter = *it; ++ if (!subfilter.isEmpty()) { ++ haikufilters += subfilter; ++ haikufilters += QChar(); ++ haikufilters += qt_haiku_extract_filter(subfilter); ++ haikufilters += QChar(); ++ } ++ } ++ haikufilters += QChar(); ++ return haikufilters; ++} ++ ++static QString qt_haiku_selected_filter(const QString &filter, int idx) ++{ ++ return qt_haiku_make_filters_list(filter).at((int)idx - 1); ++} ++ ++ ++QString qt_haiku_get_open_file_name(const QFileDialogArgs &args, ++ QString *initialDirectory, ++ QString *selectedFilter) ++{ ++ QString result; ++ ++ QString title = args.caption; ++ QString isel = args.selection; ++ ++ if (initialDirectory && initialDirectory->left(5) == QLatin1String("file:")) ++ initialDirectory->remove(0, 5); ++ QFileInfo fi(*initialDirectory); ++ ++ if (initialDirectory && !fi.isDir()) { ++ *initialDirectory = fi.absolutePath(); ++ if (isel.isEmpty()) ++ isel = fi.fileName(); ++ } ++ ++ if (!fi.exists() || *initialDirectory==QDir::homePath()) ++ *initialDirectory = QDesktopServices::storageLocation(QDesktopServices::HomeLocation); ++ ++/* int selFilIdx = 0; ++ ++ int idx = 0; ++ if (selectedFilter) { ++ QStringList filterLst = qt_haiku_make_filters_list(args.filter); ++ idx = filterLst.indexOf(*selectedFilter); ++ }*/ ++ ++ PanelLooper *looper = new PanelLooper(); ++ looper->Run(); ++ ++ BFilePanel *openpanel = new BFilePanel(B_OPEN_PANEL,NULL,NULL,0,false,NULL,NULL,true,true); ++ openpanel->SetTarget(BMessenger(looper)); ++ if(!title.isEmpty()) { ++ openpanel->Window()->SetTitle((title.toUtf8()).data()); ++ } ++ QByteArray dirpath = initialDirectory->toUtf8(); ++ openpanel->SetPanelDirectory(dirpath.data()); ++ openpanel->Show(); ++ ++ looper->Wait(openpanel); ++ result = looper->GetFilename(); ++ ++ delete openpanel; ++ ++ looper->Lock(); ++ looper->Quit(); ++ ++ if (result.isEmpty()) ++ return result; ++ ++ fi = result; ++ *initialDirectory = fi.path(); ++ ++ return fi.absoluteFilePath();; ++} ++ ++QString qt_haiku_get_save_file_name(const QFileDialogArgs &args, ++ QString *initialDirectory, ++ QString *selectedFilter) ++{ ++ QString result; ++ ++ QString title = args.caption; ++ QString isel = args.selection; ++ ++ if (initialDirectory && initialDirectory->left(5) == QLatin1String("file:")) ++ initialDirectory->remove(0, 5); ++ QFileInfo fi(*initialDirectory); ++ ++ if (initialDirectory && !fi.isDir()) { ++ *initialDirectory = fi.absolutePath(); ++ if (isel.isEmpty()) ++ isel = fi.fileName(); ++ } ++ ++ if (!fi.exists() || *initialDirectory==QDir::homePath()) ++ *initialDirectory = QDesktopServices::storageLocation(QDesktopServices::HomeLocation); ++/* ++ int selFilIdx = 0; ++ ++ int idx = 0; ++ if (selectedFilter) { ++ QStringList filterLst = qt_haiku_make_filters_list(args.filter); ++ idx = filterLst.indexOf(*selectedFilter); ++ } ++ ++ QString defaultSaveExt; ++ if (selectedFilter && !selectedFilter->isEmpty()) { ++ defaultSaveExt = qt_haiku_extract_filter(*selectedFilter); ++ // make sure we only have the extension ++ int firstDot = defaultSaveExt.indexOf(QLatin1Char('.')); ++ if (firstDot != -1) { ++ defaultSaveExt.remove(0, firstDot + 1); ++ } else { ++ defaultSaveExt.clear(); ++ } ++ }*/ ++ ++ PanelLooper *looper = new PanelLooper(); ++ looper->Run(); ++ ++ BFilePanel *savepanel = new BFilePanel(B_SAVE_PANEL,NULL,NULL,0,false,NULL,NULL,true,true); ++ savepanel->SetTarget(BMessenger(looper)); ++ if(!title.isEmpty()) { ++ savepanel->Window()->SetTitle((title.toUtf8()).data()); ++ } ++ QByteArray dirpath = initialDirectory->toUtf8(); ++ savepanel->SetPanelDirectory(dirpath.data()); ++ savepanel->SetSaveText((isel.toUtf8()).data()); ++ savepanel->Show(); ++ ++ looper->Wait(savepanel); ++ result = looper->GetFilename(); ++ ++ delete savepanel; ++ ++ looper->Lock(); ++ looper->Quit(); ++ ++ if (result.isEmpty()) ++ return result; ++ ++ fi = result; ++ *initialDirectory = fi.path(); ++/* if (selectedFilter) ++ *selectedFilter = qt_haiku_selected_filter(args.filter, selFilIdx);*/ ++ return fi.absoluteFilePath(); ++} ++ ++QStringList qt_haiku_get_open_file_names(const QFileDialogArgs &args, ++ QString *initialDirectory, ++ QString *selectedFilter) ++{ ++ QStringList result; ++ ++ QString title = args.caption; ++ QString isel = args.selection; ++ ++ if (initialDirectory && initialDirectory->left(5) == QLatin1String("file:")) ++ initialDirectory->remove(0, 5); ++ QFileInfo fi(*initialDirectory); ++ ++ if (initialDirectory && !fi.isDir()) { ++ *initialDirectory = fi.absolutePath(); ++ if (isel.isEmpty()) ++ isel = fi.fileName(); ++ } ++ ++ if (!fi.exists() || *initialDirectory==QDir::homePath()) ++ *initialDirectory = QDesktopServices::storageLocation(QDesktopServices::HomeLocation); ++ ++ int selFilIdx = 0; ++ ++/* int idx = 0; ++ if (selectedFilter) { ++ QStringList filterLst = qt_haiku_make_filters_list(args.filter); ++ idx = filterLst.indexOf(*selectedFilter); ++ }*/ ++ ++ PanelLooper *looper = new PanelLooper(); ++ looper->Run(); ++ ++ BFilePanel *openpanel = new BFilePanel(B_OPEN_PANEL,NULL,NULL,0,true,NULL,NULL,true,true); ++ openpanel->SetTarget(BMessenger(looper)); ++ if(!title.isEmpty()) { ++ openpanel->Window()->SetTitle((title.toUtf8()).data()); ++ } ++ QByteArray dirpath = initialDirectory->toUtf8(); ++ openpanel->SetPanelDirectory(dirpath.data()); ++ openpanel->Show(); ++ ++ looper->Wait(openpanel); ++ result = looper->GetFilenames(); ++ ++ delete openpanel; ++ ++ looper->Lock(); ++ looper->Quit(); ++ ++ if (!result.isEmpty()) { ++ *initialDirectory = fi.path(); // only save the path if there is a result ++ } ++ return result; ++} ++ ++class DirectoryFilter : public BRefFilter { ++public: ++ DirectoryFilter() {}; ++ virtual bool Filter(const entry_ref* ref, ++ BNode* node, struct stat_beos* st, const char* filetype) ++ { ++ return node->IsDirectory(); ++ } ++}; ++ ++ ++QString qt_haiku_get_existing_directory(const QFileDialogArgs &args) ++{ ++ QString initDir = QDir::toNativeSeparators(args.directory); ++ QString result; ++ ++ QString title = args.caption; ++ ++ PanelLooper *looper = new PanelLooper(); ++ looper->Run(); ++ ++ BFilePanel *dirpanel = new BFilePanel(B_OPEN_PANEL, NULL, NULL, B_DIRECTORY_NODE, true, NULL, NULL, true, true); ++ dirpanel->SetTarget(BMessenger(looper)); ++ dirpanel->SetButtonLabel(B_DEFAULT_BUTTON, "Select"); ++ if(!title.isEmpty()) { ++ dirpanel->Window()->SetTitle((title.toUtf8()).data()); ++ } ++ ++ BRefFilter *filter; ++ filter = new DirectoryFilter; ++ dirpanel->SetRefFilter(filter); ++ dirpanel->Show(); ++ ++ looper->Wait(dirpanel); ++ result = looper->GetFilename(); ++ ++ delete dirpanel; ++ ++ looper->Lock(); ++ looper->Quit(); ++ ++ return result; ++} ++ ++ ++QT_END_NAMESPACE ++ ++#endif +diff -rupN qt-everywhere-opensource-src-4.7.3/src/gui/gui.pro qt-everywhere-opensource-src-4.7.3_haiku/src/gui/gui.pro +--- qt-everywhere-opensource-src-4.7.3/src/gui/gui.pro 2011-03-30 05:19:06.004980736 +0000 ++++ qt-everywhere-opensource-src-4.7.3_haiku/src/gui/gui.pro 2011-06-13 22:06:43.247726080 +0000 +@@ -5,7 +5,7 @@ DEFINES += QT_BUILD_GUI_LIB QT_NO_USIN + win32-msvc*|win32-icc:QMAKE_LFLAGS += /BASE:0x65000000 + irix-cc*:QMAKE_CXXFLAGS += -no_prelink -ptused + +-!win32:!embedded:!mac:!symbian:CONFIG += x11 ++!win32:!embedded:!mac:!symbian:!haiku:CONFIG += x11 + + unix:QMAKE_PKGCONFIG_REQUIRES = QtCore + +@@ -22,6 +22,7 @@ symbian { + include(kernel/symbian.pri) + include(s60framework/s60framework.pri) + } ++haiku:include(kernel/haiku.pri) + + #modules + include(animation/animation.pri) +diff -rupN qt-everywhere-opensource-src-4.7.3/src/gui/image/image.pri qt-everywhere-opensource-src-4.7.3_haiku/src/gui/image/image.pri +--- qt-everywhere-opensource-src-4.7.3/src/gui/image/image.pri 2011-03-30 05:19:04.013893632 +0000 ++++ qt-everywhere-opensource-src-4.7.3_haiku/src/gui/image/image.pri 2011-06-13 22:06:43.249561088 +0000 +@@ -71,6 +71,10 @@ else:symbian { + HEADERS += image/qpixmap_s60_p.h + SOURCES += image/qpixmap_s60.cpp + } ++else:haiku { ++ HEADERS += image/qpixmap_haiku_p.h ++ SOURCES += image/qpixmap_haiku.cpp ++} + + # Built-in image format support + HEADERS += \ +diff -rupN qt-everywhere-opensource-src-4.7.3/src/gui/image/qnativeimage.cpp qt-everywhere-opensource-src-4.7.3_haiku/src/gui/image/qnativeimage.cpp +--- qt-everywhere-opensource-src-4.7.3/src/gui/image/qnativeimage.cpp 2011-03-30 05:19:04.007602176 +0000 ++++ qt-everywhere-opensource-src-4.7.3_haiku/src/gui/image/qnativeimage.cpp 2011-06-13 22:06:43.252182528 +0000 +@@ -268,6 +268,28 @@ QImage::Format QNativeImage::systemForma + return QImage::Format_RGB32; + } + ++#elif defined(Q_WS_HAIKU) ++ ++QNativeImage::QNativeImage(int width, int height, QImage::Format ++format, bool /* isTextBuffer */, QWidget *) ++ : image(width, height, format) ++{ ++ bitmap = new BBitmap(BRect(0,0,width-1,height-1), B_RGBA32, false, true); // we use continuous for now ++ uchar *bits = (uchar*)bitmap->Bits(); ++ image = QImage(bits, width, height, format); ++} ++ ++ ++QNativeImage::~QNativeImage() ++{ ++ delete bitmap; ++ bitmap = 0; ++} ++ ++QImage::Format QNativeImage::systemFormat() ++{ ++ return QImage::Format_RGB32; ++} + + #else // other platforms... + +diff -rupN qt-everywhere-opensource-src-4.7.3/src/gui/image/qnativeimage_p.h qt-everywhere-opensource-src-4.7.3_haiku/src/gui/image/qnativeimage_p.h +--- qt-everywhere-opensource-src-4.7.3/src/gui/image/qnativeimage_p.h 2011-03-30 05:19:04.011010048 +0000 ++++ qt-everywhere-opensource-src-4.7.3_haiku/src/gui/image/qnativeimage_p.h 2011-06-13 22:06:43.254017536 +0000 +@@ -64,6 +64,9 @@ + #elif defined(Q_WS_MAC) + #include + ++#elif defined(Q_WS_HAIKU) ++#include ++ + #endif + + QT_BEGIN_NAMESPACE +@@ -95,6 +98,10 @@ public: + + #elif defined(Q_WS_MAC) + CGContextRef cg; ++ ++#elif defined(Q_WS_HAIKU) ++ BBitmap* bitmap; ++ + #endif + + private: +diff -rupN qt-everywhere-opensource-src-4.7.3/src/gui/image/qpixmap.cpp qt-everywhere-opensource-src-4.7.3_haiku/src/gui/image/qpixmap.cpp +--- qt-everywhere-opensource-src-4.7.3/src/gui/image/qpixmap.cpp 2011-03-30 05:19:04.009961472 +0000 ++++ qt-everywhere-opensource-src-4.7.3_haiku/src/gui/image/qpixmap.cpp 2011-06-13 22:06:43.257425408 +0000 +@@ -71,6 +71,10 @@ + # include "private/qpixmap_mac_p.h" + #endif + ++#ifdef Q_WS_HAIKU ++# include "private/qpixmap_haiku_p.h" ++#endif ++ + #if defined(Q_WS_X11) + # include "qx11info_x11.h" + # include +@@ -1960,6 +1964,8 @@ int QPixmap::defaultDepth() + return 32; // XXX + #elif defined(Q_WS_MAC) + return 32; ++#elif defined(Q_WS_HAIKU) ++ return 32; + #elif defined(Q_OS_SYMBIAN) + return S60->screenDepth; + #endif +diff -rupN qt-everywhere-opensource-src-4.7.3/src/gui/image/qpixmap.h qt-everywhere-opensource-src-4.7.3_haiku/src/gui/image/qpixmap.h +--- qt-everywhere-opensource-src-4.7.3/src/gui/image/qpixmap.h 2011-03-30 05:19:04.009437184 +0000 ++++ qt-everywhere-opensource-src-4.7.3_haiku/src/gui/image/qpixmap.h 2011-06-13 22:06:43.259784704 +0000 +@@ -57,6 +57,10 @@ class CFbsBitmap; + class RSgImage; + #endif + ++#if defined(Q_OS_HAIKU) ++class BBitmap; ++#endif ++ + QT_BEGIN_NAMESPACE + + QT_MODULE(Gui) +@@ -164,6 +168,11 @@ public: + static QPixmap fromMacCGImageRef(CGImageRef image); + #endif + ++#if defined(Q_OS_HAIKU) ++ BBitmap *toHaikuBitmap() const; ++ static QPixmap fromHaikuBitmap(BBitmap *); ++#endif ++ + #if defined(Q_OS_SYMBIAN) + CFbsBitmap *toSymbianCFbsBitmap() const; + static QPixmap fromSymbianCFbsBitmap(CFbsBitmap *bitmap); +diff -rupN qt-everywhere-opensource-src-4.7.3/src/gui/image/qpixmap_haiku.cpp qt-everywhere-opensource-src-4.7.3_haiku/src/gui/image/qpixmap_haiku.cpp +--- qt-everywhere-opensource-src-4.7.3/src/gui/image/qpixmap_haiku.cpp 1970-01-01 00:00:00.000000000 +0000 ++++ qt-everywhere-opensource-src-4.7.3_haiku/src/gui/image/qpixmap_haiku.cpp 2011-06-13 22:06:43.261619712 +0000 +@@ -0,0 +1,126 @@ ++#include "qpixmap.h" ++ ++#include "qpixmap_raster_p.h" ++ ++#include "qbitmap.h" ++#include "qimage.h" ++#include "qwidget.h" ++#include "qpainter.h" ++#include "qdatastream.h" ++#include "qbuffer.h" ++#include "qapplication.h" ++#include "qevent.h" ++#include "qfile.h" ++#include "qfileinfo.h" ++#include "qdatetime.h" ++#include "qpixmapcache.h" ++#include "qimagereader.h" ++#include "qimagewriter.h" ++#include "qdebug.h" ++ ++#include ++ ++#include ++#include ++#include ++#include ++ ++BBitmap * ++QPixmap::toHaikuBitmap() const ++{ ++ BBitmap *bitmap = NULL; ++ ++ if (isNull()) ++ return 0; ++ ++ if (data->classId() == QPixmapData::RasterClass) { ++ QRasterPixmapData* d = static_cast(data.data()); ++ int w = d->image.width(); ++ int h = d->image.height(); ++ ++ const QImage image = d->image.convertToFormat(QImage::Format_ARGB32); ++ int bytes_per_line = w * 4; ++ ++ bitmap = new BBitmap(BRect(0,0,w-1,h-1), B_RGBA32); ++ uchar *pixels = (uchar *)bitmap->Bits(); ++ ++ for (int y=0; yfromImage(toImage(), Qt::AutoColor); ++ return QPixmap(data).toHaikuBitmap(); ++ } ++ return bitmap; ++} ++ ++QPixmap ++QPixmap::fromHaikuBitmap(BBitmap *bmp) ++{ ++ if(!bmp) ++ return QPixmap(); ++ ++ int w = bmp->Bounds().IntegerWidth() + 1; ++ int h = bmp->Bounds().IntegerHeight() + 1; ++ ++ QImage image(w,h,QImage::Format_ARGB32); ++ ++ int bytes_per_line = w * 4; ++ uchar *pixels = (uchar *)bmp->Bits(); ++ ++ for (int y=0; yColorSpace()) { ++ case B_GRAY1: ++ format = QImage::Format_Mono; ++ break; ++ case B_GRAY8: ++ case B_CMAP8: ++ format = QImage::Format_Indexed8; ++ break; ++ case B_RGB15: ++ case B_RGBA15: ++ case B_RGB16: ++ format = QImage::Format_RGB16; ++ break; ++ case B_RGB32: ++ default: ++ format = QImage::Format_RGB32; ++ break; ++ } ++ ++ QRect grabRect(x,y,w,h); ++ QImage image((uchar*)bitmap->Bits(), screen_w, screen_h, bitmap->BytesPerRow(), format); ++ image = image.copy(grabRect); ++ ++ delete bitmap; ++ ++ return QPixmap::fromImage(image); ++} ++ +diff -rupN qt-everywhere-opensource-src-4.7.3/src/gui/image/qpixmap_haiku_p.h qt-everywhere-opensource-src-4.7.3_haiku/src/gui/image/qpixmap_haiku_p.h +--- qt-everywhere-opensource-src-4.7.3/src/gui/image/qpixmap_haiku_p.h 1970-01-01 00:00:00.000000000 +0000 ++++ qt-everywhere-opensource-src-4.7.3_haiku/src/gui/image/qpixmap_haiku_p.h 2011-06-13 22:06:43.272367616 +0000 +@@ -0,0 +1,6 @@ ++#include "qpixmap.h" ++#include "qpixmapdata_p.h" ++ ++#include ++#include ++ +diff -rupN qt-everywhere-opensource-src-4.7.3/src/gui/image/qpixmapdatafactory.cpp qt-everywhere-opensource-src-4.7.3_haiku/src/gui/image/qpixmapdatafactory.cpp +--- qt-everywhere-opensource-src-4.7.3/src/gui/image/qpixmapdatafactory.cpp 2011-03-30 05:19:04.015990784 +0000 ++++ qt-everywhere-opensource-src-4.7.3_haiku/src/gui/image/qpixmapdatafactory.cpp 2011-06-13 22:06:43.274464768 +0000 +@@ -56,6 +56,9 @@ + #ifdef Q_OS_SYMBIAN + # include + #endif ++#ifdef Q_WS_HAIKU ++# include ++#endif + + #include "private/qapplication_p.h" + #include "private/qgraphicssystem_p.h" +@@ -83,7 +86,9 @@ QPixmapData* QSimplePixmapDataFactory::c + #elif defined(Q_WS_MAC) + return new QMacPixmapData(type); + #elif defined(Q_OS_SYMBIAN) +- return new QS60PixmapData(type); ++ return new QS60PixmapData(type); ++#elif defined(Q_WS_HAIKU) ++ return new QRasterPixmapData(type); + #else + #error QSimplePixmapDataFactory::create() not implemented + #endif +diff -rupN qt-everywhere-opensource-src-4.7.3/src/gui/itemviews/qfileiconprovider.cpp qt-everywhere-opensource-src-4.7.3_haiku/src/gui/itemviews/qfileiconprovider.cpp +--- qt-everywhere-opensource-src-4.7.3/src/gui/itemviews/qfileiconprovider.cpp 2011-03-30 05:19:05.040894464 +0000 ++++ qt-everywhere-opensource-src-4.7.3_haiku/src/gui/itemviews/qfileiconprovider.cpp 2011-06-13 22:06:43.277348352 +0000 +@@ -53,6 +53,11 @@ + # include + #elif defined(Q_WS_MAC) + # include ++#elif defined(Q_WS_HAIKU) ++# include ++# include ++# include ++# include + #endif + + #include +@@ -98,6 +103,8 @@ public: + QIcon getWinIcon(const QFileInfo &fi) const; + #elif defined(Q_WS_MAC) + QIcon getMacIcon(const QFileInfo &fi) const; ++#elif defined(Q_WS_HAIKU) ++ QIcon getHaikuIcon(const QFileInfo &fi) const; + #endif + QFileIconProvider *q_ptr; + const QString homePath; +@@ -389,6 +396,33 @@ QIcon QFileIconProviderPrivate::getMacIc + + return retIcon; + } ++#elif defined(Q_WS_HAIKU) ++QIcon QFileIconProviderPrivate::getHaikuIcon(const QFileInfo &fi) const ++{ ++ QIcon retIcon; ++ ++ BNode node(fi.canonicalFilePath().toUtf8().constData()); ++ if (node.InitCheck() == B_OK) { ++ BNodeInfo nodeinfo(&node); ++ ++ BBitmap *hIcon = new BBitmap(BRect(0, 0, 15, 15), B_RGBA32); ++ nodeinfo.GetTrackerIcon(hIcon, B_MINI_ICON); ++ if(hIcon) { ++ QPixmap p = QPixmap::fromHaikuBitmap(hIcon); ++ retIcon.addPixmap(p); ++ delete hIcon; ++ } ++ ++ BBitmap *hIconBig = new BBitmap(BRect(0, 0, 31, 31), B_RGBA32); ++ nodeinfo.GetTrackerIcon(hIcon, B_LARGE_ICON); ++ if(hIconBig) { ++ QPixmap p = QPixmap::fromHaikuBitmap(hIconBig); ++ retIcon.addPixmap(p); ++ delete hIconBig; ++ } ++ } ++ return retIcon; ++} + #endif + + +@@ -420,6 +454,10 @@ QIcon QFileIconProvider::icon(const QFil + QIcon icon = d->getWinIcon(info); + if (!icon.isNull()) + return icon; ++#elif defined Q_WS_HAIKU ++ QIcon icon = d->getHaikuIcon(info); ++ if (!icon.isNull()) ++ return icon; + #endif + if (info.isRoot()) + #if defined (Q_WS_WIN) && !defined(Q_WS_WINCE) +diff -rupN qt-everywhere-opensource-src-4.7.3/src/gui/kernel/haiku.pri qt-everywhere-opensource-src-4.7.3_haiku/src/gui/kernel/haiku.pri +--- qt-everywhere-opensource-src-4.7.3/src/gui/kernel/haiku.pri 1970-01-01 00:00:00.000000000 +0000 ++++ qt-everywhere-opensource-src-4.7.3_haiku/src/gui/kernel/haiku.pri 2011-06-13 22:06:43.279445504 +0000 +@@ -0,0 +1,2 @@ ++DEFINES += QT_NO_FONTCONFIG ++LIBS_PRIVATE += -lbe +diff -rupN qt-everywhere-opensource-src-4.7.3/src/gui/kernel/kernel.pri qt-everywhere-opensource-src-4.7.3_haiku/src/gui/kernel/kernel.pri +--- qt-everywhere-opensource-src-4.7.3/src/gui/kernel/kernel.pri 2011-03-30 05:19:04.051118080 +0000 ++++ qt-everywhere-opensource-src-4.7.3_haiku/src/gui/kernel/kernel.pri 2011-06-13 22:06:43.281018368 +0000 +@@ -262,3 +262,18 @@ wince*: { + ../corelib/kernel/qfunctions_wince.cpp \ + kernel/qguifunctions_wince.cpp + } ++ ++haiku { ++ HEADERS += kernel/qwidget_haiku.h ++ ++ SOURCES += \ ++ kernel/qapplication_haiku.cpp \ ++ kernel/qwidget_haiku.cpp \ ++ kernel/qdnd_haiku.cpp \ ++ kernel/qdesktopwidget_haiku.cpp \ ++ kernel/qclipboard_haiku.cpp \ ++ kernel/qcursor_haiku.cpp \ ++ kernel/qkeymapper_haiku.cpp \ ++ kernel/qsound_haiku.cpp \ ++ kernel/qeventdispatcher_haiku.cpp ++} +diff -rupN qt-everywhere-opensource-src-4.7.3/src/gui/kernel/qapplication.cpp qt-everywhere-opensource-src-4.7.3_haiku/src/gui/kernel/qapplication.cpp +--- qt-everywhere-opensource-src-4.7.3/src/gui/kernel/qapplication.cpp 2011-03-30 05:19:04.057671680 +0000 ++++ qt-everywhere-opensource-src-4.7.3_haiku/src/gui/kernel/qapplication.cpp 2011-06-13 22:06:43.288096256 +0000 +@@ -4760,7 +4760,7 @@ bool QApplicationPrivate::notify_helper( + Stubbed session management support + *****************************************************************************/ + #ifndef QT_NO_SESSIONMANAGER +-#if defined(Q_WS_WIN) || defined(Q_WS_MAC) || defined(Q_WS_QWS) ++#if defined(Q_WS_WIN) || defined(Q_WS_MAC) || defined(Q_WS_QWS) || defined(Q_WS_HAIKU) + + #if defined(Q_OS_WINCE) + HRESULT qt_CoCreateGuid(GUID* guid) +diff -rupN qt-everywhere-opensource-src-4.7.3/src/gui/kernel/qapplication_haiku.cpp qt-everywhere-opensource-src-4.7.3_haiku/src/gui/kernel/qapplication_haiku.cpp +--- qt-everywhere-opensource-src-4.7.3/src/gui/kernel/qapplication_haiku.cpp 1970-01-01 00:00:00.000000000 +0000 ++++ qt-everywhere-opensource-src-4.7.3_haiku/src/gui/kernel/qapplication_haiku.cpp 2011-06-13 22:06:43.291241984 +0000 +@@ -0,0 +1,655 @@ ++#include "qapplication_p.h" ++#include "qsessionmanager.h" ++#include "qapplication.h" ++#include "qevent.h" ++#include "qeventdispatcher_haiku_p.h" ++#include "qwidget.h" ++#include "qwidget_p.h" ++#include "private/qsystemtrayicon_p.h" ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++/***************************************************************************** ++ Internal variables and functions ++ *****************************************************************************/ ++static WId curWin; ++ ++// ignore the next release event if return from a modal widget ++Q_GUI_EXPORT bool qt_win_ignoreNextMouseReleaseEvent = false; ++ ++#if defined(QT_DEBUG) ++static bool appNoGrab = false; // mouse/keyboard grabbing ++#endif ++ ++static bool app_do_modal = false; // modal mode ++extern QWidgetList *qt_modal_stack; ++//extern QDesktopWidget *qt_desktopWidget; ++//static QPointer popupButtonFocus; ++ ++QPointer qt_last_mouse_receiver = 0; ++QWidget* qt_button_down = 0; ++QTextCodec * qt_input_mapper = 0; ++ ++char *qAppSignature = NULL; ++ ++bool qt_nograb() // application no-grab option ++{ ++#if defined(QT_DEBUG) ++ return appNoGrab; ++#else ++ return false; ++#endif ++} ++ ++class HQApplication : public BApplication ++{ ++public: ++ HQApplication(const char*, QApplicationPrivate *priv); ++ ~HQApplication(); ++ ++ virtual void MessageReceived(BMessage *message); ++ void ArgvReceived(int32 argc, char **argv); ++ void RefsReceived(BMessage *pmsg); ++ virtual bool QuitRequested(); ++ bool RefHandled; ++ entry_ref Ref; ++private: ++ BMessenger fTrackerMessenger; ++ QApplicationPrivate *priv_ptr; ++}; ++ ++namespace { ++static HQApplication* happ = 0; ++} ++ ++HQApplication::HQApplication(const char* signature, QApplicationPrivate *priv) ++ : BApplication(signature) ++{ ++ RefHandled = false; ++ ++ qDebug("Reimp: HQApplication::HQApplication\n"); ++ ++ if(qAppSignature) ++ free(qAppSignature); ++ qAppSignature = strdup(signature); ++ ++ priv_ptr = priv; ++} ++ ++HQApplication::~HQApplication() ++{ ++ qDebug("Reimp: HQApplication::~HQApplication\n"); ++} ++ ++void HQApplication::MessageReceived(BMessage* msg) ++{ ++ BApplication::MessageReceived(msg); ++} ++ ++void ++HQApplication::RefsReceived(BMessage *pmsg) ++{ ++ if (pmsg->HasMessenger("TrackerViewToken")) { ++ pmsg->FindMessenger("TrackerViewToken", &fTrackerMessenger); ++ } ++ ++ uint32 type; ++ int32 count; ++ status_t ret = pmsg->GetInfo("refs", &type, &count); ++ if (ret != B_OK || type != B_REF_TYPE) ++ return; ++ ++ entry_ref ref; ++ for (int32 i = 0; i < count; i++) { ++ if (pmsg->FindRef("refs", i, &ref) == B_OK) { ++ BPath p(&ref); ++ Ref = ref; ++ RefHandled = true; ++ } ++ } ++} ++ ++void ++HQApplication::ArgvReceived(int32 argc, char **argv) ++{ ++} ++ ++bool ++HQApplication::QuitRequested() { ++ QEvent quitEvent(QEvent::Quit); ++ QApplication::sendEvent(qApp, &quitEvent); ++ return true; ++} ++ ++ ++int32 AppThread(void *data) ++{ ++ HQApplication *app = (HQApplication*)data; ++ app->LockLooper(); ++ app->Run(); ++} ++ ++ ++void qt_init(QApplicationPrivate *priv, int) ++{ ++ int i; ++ qDebug("qt_init()"); ++ ++ thread_id my_thread; ++ ++ happ = new HQApplication("application/x-vnd."+QFileInfo(QApplication::applicationFilePath()).fileName().toLatin1(), priv ); ++ be_app = happ; ++ ++ QApplicationPrivate::haiku_apply_settings(); ++ ++ my_thread = spawn_thread(AppThread,"app_thread",1,(void*)happ); ++ resume_thread(my_thread); ++ ++ happ->UnlockLooper(); ++ ++ if(priv->argc==1) { ++ for(i=0;i<100;i++) { ++ if(happ->RefHandled) { ++ BPath p(&happ->Ref); ++ priv->argc = 2; ++ priv->argv[1]=strdup(p.Path()); ++ priv->argv[2]=0; ++ break; ++ } ++ snooze(1000); ++ } ++ ++ QString appDir = QCoreApplication::applicationDirPath(); ++ chdir(appDir.toUtf8()); ++ } ++} ++ ++void qt_cleanup() ++{ ++ qDebug("qt_cleanup()"); ++} ++ ++void QApplicationPrivate::_q_alertTimeOut() ++{ ++ qDebug("Unimplemented: void QApplicationPrivate::_q_alertTimeOut()\n"); ++} ++ ++QString QApplicationPrivate::appName() const ++{ ++ return QCoreApplicationPrivate::appName(); ++} ++ ++void QApplicationPrivate::createEventDispatcher() ++{ ++ Q_Q(QApplication); ++ qDebug("Reimplemented: void QApplicationPrivate::createEventDispatcher\n"); ++ if (q->type() != QApplication::Tty) ++ eventDispatcher = new QEventDispatcherHaiku(q); ++ else ++ eventDispatcher = new QEventDispatcherUNIX(q); ++} ++ ++/***************************************************************************** ++ Popup widget mechanism ++ ++ openPopup() ++ Adds a widget to the list of popup widgets ++ Arguments: ++ QWidget *widget The popup widget to be added ++ ++ closePopup() ++ Removes a widget from the list of popup widgets ++ Arguments: ++ QWidget *widget The popup widget to be removed ++ *****************************************************************************/ ++ ++ ++void QApplicationPrivate::openPopup(QWidget *popup) ++{ ++ if (!QApplicationPrivate::popupWidgets) ++ QApplicationPrivate::popupWidgets = new QWidgetList; ++ QApplicationPrivate::popupWidgets->append(popup); ++ if (!popup->isEnabled()) ++ return; ++ ++ if (QApplicationPrivate::popupWidgets->count() == 1 && !qt_nograb()) { ++ Q_ASSERT(popup->testAttribute(Qt::WA_WState_Created)); ++// setAutoCapture(popup->internalWinId()); // grab mouse/keyboard ++ } ++ // Popups are not focus-handled by the window system (the first ++ // popup grabbed the keyboard), so we have to do that manually: A ++ // new popup gets the focus ++ if (popup->focusWidget()) { ++ popup->focusWidget()->setFocus(Qt::PopupFocusReason); ++ } else if (QApplicationPrivate::popupWidgets->count() == 1) { // this was the first popup ++ if (QWidget *fw = q_func()->focusWidget()) { ++ QFocusEvent e(QEvent::FocusOut, Qt::PopupFocusReason); ++ q_func()->sendEvent(fw, &e); ++ } ++ } ++} ++ ++void QApplicationPrivate::closePopup(QWidget *popup) ++{ ++ if (!QApplicationPrivate::popupWidgets) ++ return; ++ QApplicationPrivate::popupWidgets->removeAll(popup); ++// POINT curPos; ++// GetCursorPos(&curPos); ++ ++ if (QApplicationPrivate::popupWidgets->isEmpty()) { // this was the last popup ++ delete QApplicationPrivate::popupWidgets; ++ QApplicationPrivate::popupWidgets = 0; ++// replayPopupMouseEvent = (!popup->geometry().contains(QPoint(curPos.x, curPos.y)) ++// && !popup->testAttribute(Qt::WA_NoMouseReplay)); ++ if (!popup->isEnabled()) ++ return; ++// if (!qt_nograb()) // grabbing not disabled ++// releaseAutoCapture(); ++ QWidget *fw = QApplicationPrivate::active_window ? QApplicationPrivate::active_window->focusWidget() ++ : q_func()->focusWidget(); ++ if (fw) { ++ if (fw != q_func()->focusWidget()) { ++ fw->setFocus(Qt::PopupFocusReason); ++ } else { ++ QFocusEvent e(QEvent::FocusIn, Qt::PopupFocusReason); ++ q_func()->sendEvent(fw, &e); ++ } ++ } ++ } else { ++ // Popups are not focus-handled by the window system (the ++ // first popup grabbed the keyboard), so we have to do that ++ // manually: A popup was closed, so the previous popup gets ++ // the focus. ++ QWidget* aw = QApplicationPrivate::popupWidgets->last(); ++ if (QApplicationPrivate::popupWidgets->count() == 1) { ++ Q_ASSERT(aw->testAttribute(Qt::WA_WState_Created)); ++// setAutoCapture(aw->internalWinId()); ++ } ++ if (QWidget *fw = aw->focusWidget()) ++ fw->setFocus(Qt::PopupFocusReason); ++ } ++} ++ ++void QApplicationPrivate::initializeWidgetPaletteHash() ++{ ++ qDebug("Unimplemented: QApplicationPrivate::initializeWidgetPaletteHash\n"); ++} ++ ++/*! \internal ++ apply the settings to the application ++*/ ++bool QApplicationPrivate::haiku_apply_settings() ++{ ++ QSettings settings(QSettings::UserScope, QLatin1String("Trolltech")); ++ ++ settings.beginGroup(QLatin1String("Qt")); ++ ++ /* ++ Qt settings. This is now they are written into the datastream. ++ ++ Palette / * - QPalette ++ font - QFont ++ libraryPath - QStringList ++ style - QString ++ doubleClickInterval - int ++ keyboardInputInterval - int ++ cursorFlashTime - int ++ wheelScrollLines - int ++ colorSpec - QString ++ defaultCodec - QString ++ globalStrut/width - int ++ globalStrut/height - int ++ GUIEffects - QStringList ++ Font Substitutions/ * - QStringList ++ Font Substitutions/... - QStringList ++ */ ++ ++ QStringList strlist; ++ int i; ++ QPalette pal(Qt::black); ++ int groupCount = 0; ++ strlist = settings.value(QLatin1String("Palette/active")).toStringList(); ++ if (!strlist.isEmpty()) { ++ ++groupCount; ++ for (i = 0; i < qMin(strlist.count(), int(QPalette::NColorRoles)); i++) ++ pal.setColor(QPalette::Active, (QPalette::ColorRole) i, ++ QColor(strlist[i])); ++ } ++ strlist = settings.value(QLatin1String("Palette/inactive")).toStringList(); ++ if (!strlist.isEmpty()) { ++ ++groupCount; ++ for (i = 0; i < qMin(strlist.count(), int(QPalette::NColorRoles)); i++) ++ pal.setColor(QPalette::Inactive, (QPalette::ColorRole) i, ++ QColor(strlist[i])); ++ } ++ strlist = settings.value(QLatin1String("Palette/disabled")).toStringList(); ++ if (!strlist.isEmpty()) { ++ ++groupCount; ++ for (i = 0; i < qMin(strlist.count(), int(QPalette::NColorRoles)); i++) ++ pal.setColor(QPalette::Disabled, (QPalette::ColorRole) i, ++ QColor(strlist[i])); ++ } ++ ++/* if (!appFont) { ++ QFont font(QApplication::font()); ++ QString fontDescription; ++ if (fontDescription.isEmpty()) ++ fontDescription = settings.value(QLatin1String("font")).toString(); ++ if (!fontDescription .isEmpty()) { ++ font.fromString(fontDescription ); ++ QApplicationPrivate::setSystemFont(font); ++ } ++ }*/ ++ ++ // read new QStyle ++ QString stylename = settings.value(QLatin1String("style")).toString(); ++ if (stylename.isEmpty() && QApplicationPrivate::styleOverride.isNull()) { ++ QStringList availableStyles = QStyleFactory::keys(); ++ } ++ ++ static QString currentStyleName = stylename; ++ if (QCoreApplication::startingUp()) { ++ if (!stylename.isEmpty() && QApplicationPrivate::styleOverride.isNull()) ++ QApplicationPrivate::styleOverride = stylename; ++ } else { ++ if (currentStyleName != stylename) { ++ currentStyleName = stylename; ++ QApplication::setStyle(stylename); ++ } ++ } ++ ++ int num = ++ settings.value(QLatin1String("doubleClickInterval"), ++ QApplication::doubleClickInterval()).toInt(); ++ QApplication::setDoubleClickInterval(num); ++ ++ num = ++ settings.value(QLatin1String("cursorFlashTime"), ++ QApplication::cursorFlashTime()).toInt(); ++ QApplication::setCursorFlashTime(num); ++ ++ num = ++ settings.value(QLatin1String("wheelScrollLines"), ++ QApplication::wheelScrollLines()).toInt(); ++ QApplication::setWheelScrollLines(num); ++ ++ QString colorspec = settings.value(QLatin1String("colorSpec"), ++ QVariant(QLatin1String("default"))).toString(); ++ if (colorspec == QLatin1String("normal")) ++ QApplication::setColorSpec(QApplication::NormalColor); ++ else if (colorspec == QLatin1String("custom")) ++ QApplication::setColorSpec(QApplication::CustomColor); ++ else if (colorspec == QLatin1String("many")) ++ QApplication::setColorSpec(QApplication::ManyColor); ++ else if (colorspec != QLatin1String("default")) ++ colorspec = QLatin1String("default"); ++ ++/* QString defaultcodec = settings.value(QLatin1String("defaultCodec"), ++ QVariant(QLatin1String("none"))).toString(); ++ if (defaultcodec != QLatin1String("none")) { ++ QTextCodec *codec = QTextCodec::codecForName(defaultcodec.toLatin1()); ++ if (codec) ++ QTextCodec::setCodecForTr(codec); ++ }*/ ++ QTextCodec *codec = QTextCodec::codecForName("UTF-8"); ++ if (codec) { ++ QTextCodec::setCodecForLocale(codec); ++ } ++ qt_input_mapper = QTextCodec::codecForName("UTF-8"); ++ ++ ++ int w = settings.value(QLatin1String("globalStrut/width")).toInt(); ++ int h = settings.value(QLatin1String("globalStrut/height")).toInt(); ++ QSize strut(w, h); ++ if (strut.isValid()) ++ QApplication::setGlobalStrut(strut); ++ ++ QStringList effects = settings.value(QLatin1String("GUIEffects")).toStringList(); ++ QApplication::setEffectEnabled(Qt::UI_General, ++ effects.contains(QLatin1String("general"))); ++ QApplication::setEffectEnabled(Qt::UI_AnimateMenu, ++ effects.contains(QLatin1String("animatemenu"))); ++ QApplication::setEffectEnabled(Qt::UI_FadeMenu, ++ effects.contains(QLatin1String("fademenu"))); ++ QApplication::setEffectEnabled(Qt::UI_AnimateCombo, ++ effects.contains(QLatin1String("animatecombo"))); ++ QApplication::setEffectEnabled(Qt::UI_AnimateTooltip, ++ effects.contains(QLatin1String("animatetooltip"))); ++ QApplication::setEffectEnabled(Qt::UI_FadeTooltip, ++ effects.contains(QLatin1String("fadetooltip"))); ++ QApplication::setEffectEnabled(Qt::UI_AnimateToolBox, ++ effects.contains(QLatin1String("animatetoolbox"))); ++ ++ settings.beginGroup(QLatin1String("Font Substitutions")); ++ QStringList fontsubs = settings.childKeys(); ++ if (!fontsubs.isEmpty()) { ++ QStringList::Iterator it = fontsubs.begin(); ++ for (; it != fontsubs.end(); ++it) { ++ QString fam = *it; ++ QStringList subs = settings.value(fam).toStringList(); ++ QFont::insertSubstitutions(fam, subs); ++ } ++ } ++ settings.endGroup(); ++ ++ settings.endGroup(); // Qt ++ ++ return true; ++} ++ ++ ++void QApplicationPrivate::haiku_initialize_style() ++{ ++ if (QApplicationPrivate::app_style) ++ return; ++ ++ QApplicationPrivate::app_style = QStyleFactory::create(QLatin1String("haiku")); ++} ++ ++/***************************************************************************** ++ Modal widgets; We have implemented our own modal widget mechanism ++ to get total control. ++ A modal widget without a parent becomes application-modal. ++ A modal widget with a parent becomes modal to its parent and grandparents.. ++ ++ QApplicationPrivate::enterModal() ++ Enters modal state ++ Arguments: ++ QWidget *widget A modal widget ++ ++ QApplicationPrivate::leaveModal() ++ Leaves modal state for a widget ++ Arguments: ++ QWidget *widget A modal widget ++ *****************************************************************************/ ++ ++bool QApplicationPrivate::modalState() ++{ ++ //qDebug()<<"Unimplemented: QApplicationPrivate::modalState():"<insert(0, widget); ++ app_do_modal = true; ++ curWin = 0; ++ qt_last_mouse_receiver = 0; ++ qt_win_ignoreNextMouseReleaseEvent = false; ++} ++ ++void QApplicationPrivate::leaveModal_sys(QWidget *widget) ++{ ++ //qDebug()<<"Unimplemented: QApplicationPrivate::leaveModal_sys(). Widget:"<removeAll(widget)) { ++ if (qt_modal_stack->isEmpty()) { ++ delete qt_modal_stack; ++ qt_modal_stack = 0; ++ QPoint p(QCursor::pos()); ++ app_do_modal = false; // necessary, we may get recursively into qt_try_modal below ++ QWidget* w = QApplication::widgetAt(p.x(), p.y()); ++ QWidget *leave = qt_last_mouse_receiver; ++ if (!leave) ++ leave = QWidget::find((WId)curWin); ++ if (QWidget *grabber = QWidget::mouseGrabber()) { ++ w = grabber; ++ if (leave == w) ++ leave = 0; ++ } ++ QApplicationPrivate::dispatchEnterLeave(w, leave); // send synthetic enter event ++ curWin = w ? w->effectiveWinId() : 0; ++ qt_last_mouse_receiver = w; ++ } ++ qt_win_ignoreNextMouseReleaseEvent = true; ++ } ++ app_do_modal = qt_modal_stack != 0; ++} ++ ++ ++/***************************************************************************** ++ Platform specific QApplication members ++ *****************************************************************************/ ++ ++#ifdef QT3_SUPPORT ++void QApplication::setMainWidget(QWidget *mainWidget) ++{ ++#ifndef QT_NO_DEBUG ++ if (mainWidget && mainWidget->parentWidget() && mainWidget->isWindow()) ++ qWarning("QApplication::setMainWidget: New main widget (%s/%s) " ++ "has a parent", ++ mainWidget->metaObject()->className(), mainWidget->objectName().toLocal8Bit().constData()); ++#endif ++ if (mainWidget) ++ mainWidget->d_func()->createWinId(); ++ QApplicationPrivate::main_widget = mainWidget; ++} ++#endif ++ ++void QApplication::setDoubleClickInterval(int ms) ++{ ++// qDebug("Reimplemented: QApplicationPrivate::setDoubleClickInterval - %d\n", ms); ++#if 0 //change system dblclick interval currently disabled ++ QApplicationPrivate::mouse_double_click_time = ms; ++ bigtime_t interval = ms*1000; ++ set_click_speed(interval); ++#endif ++} ++ ++int QApplication::doubleClickInterval() ++{ ++ bigtime_t interval; ++ get_click_speed(&interval); ++ ++ QApplicationPrivate::mouse_double_click_time = (int)(interval/1000); ++ ++ return QApplicationPrivate::mouse_double_click_time; ++} ++ ++void QApplication::setKeyboardInputInterval(int ms) ++{ ++ QApplicationPrivate::keyboard_input_time = ms; ++} ++ ++int QApplication::keyboardInputInterval() ++{ ++ // FIXME: get from the system ++ return QApplicationPrivate::keyboard_input_time; ++} ++ ++void QApplication::setWheelScrollLines(int n) ++{ ++ QApplicationPrivate::wheel_scroll_lines = n; ++} ++ ++int QApplication::wheelScrollLines() ++{ ++ return QApplicationPrivate::wheel_scroll_lines; ++} ++ ++void QApplication::setOverrideCursor(const QCursor &cursor) ++{ ++ Q_UNUSED(cursor); ++ qDebug("Unimplemented: QApplication::setOverrideCursor\n"); ++} ++ ++void QApplication::restoreOverrideCursor() ++{ ++ qDebug("Unimplemented: QApplication::restoreOverrideCursor\n"); ++} ++ ++void QApplication::setEffectEnabled(Qt::UIEffect effect, bool enable) ++{ ++ Q_UNUSED(effect); ++ Q_UNUSED(enable); ++// qDebug("Unimplemented: QApplication::setEffectEnabled\n"); ++} ++ ++bool QApplication::isEffectEnabled(Qt::UIEffect effect) ++{ ++ Q_UNUSED(effect); ++// qDebug("Unimplemented: QApplication::isEffectEnabled\n"); ++ return false; ++} ++ ++void QApplication::setCursorFlashTime(int msecs) ++{ ++ QApplicationPrivate::cursor_flash_time = msecs; ++} ++ ++int QApplication::cursorFlashTime() ++{ ++ return QApplicationPrivate::cursor_flash_time; ++} ++ ++QWidget *QApplication::topLevelAt(const QPoint &point) ++{ ++ QWidget *found = 0; ++ int lowestZ = INT_MAX; ++ QWidgetList list = QApplication::topLevelWidgets(); ++ for (int i = 0; i < list.count(); ++i) { ++ QWidget *widget = list.at(i); ++ if (widget->isVisible() && !(widget->windowType() == Qt::Desktop)) { ++ if (widget->geometry().adjusted(0,0,1,1).contains(point)) { ++ found = widget; //TODO: check for z-order needed! ++ if(widget->nativeView()->Window()->IsActive()) ++ break; ++ } ++ } ++ } ++ return found; ++} ++ ++void QApplication::beep() ++{ ++} ++ ++void QApplication::alert(QWidget *widget, int duration) ++{ ++} ++ ++void QApplicationPrivate::initializeMultitouch_sys() ++{ ++} ++ ++void QApplicationPrivate::cleanupMultitouch_sys() ++{ ++} +diff -rupN qt-everywhere-opensource-src-4.7.3/src/gui/kernel/qapplication_p.h qt-everywhere-opensource-src-4.7.3_haiku/src/gui/kernel/qapplication_p.h +--- qt-everywhere-opensource-src-4.7.3/src/gui/kernel/qapplication_p.h 2011-03-30 05:19:04.050331648 +0000 ++++ qt-everywhere-opensource-src-4.7.3_haiku/src/gui/kernel/qapplication_p.h 2011-06-13 22:06:43.293339136 +0000 +@@ -302,6 +302,8 @@ public: + #elif defined(Q_WS_QWS) + static bool qws_apply_settings(); + static QWidget *findWidget(const QObjectList&, const QPoint &, bool rec); ++#elif defined(Q_WS_HAIKU) ++ static bool haiku_apply_settings(); + #endif + static bool quitOnLastWindowClosed; + static void emitLastWindowClosed(); +@@ -349,6 +351,10 @@ public: + static void x11_initialize_style(); + #endif + ++#if defined(Q_WS_HAIKU) ++ static void haiku_initialize_style(); ++#endif ++ + enum KeyPlatform { + KB_Win = 1, + KB_Mac = 2, +@@ -499,7 +505,7 @@ public: + static Qt::NavigationMode navigationMode; + #endif + +-#if defined(Q_WS_MAC) || defined(Q_WS_X11) ++#if defined(Q_WS_MAC) || defined(Q_WS_X11) || defined(Q_WS_HAIKU) + void _q_alertTimeOut(); + QHash alertTimerHash; + #endif +diff -rupN qt-everywhere-opensource-src-4.7.3/src/gui/kernel/qclipboard_haiku.cpp qt-everywhere-opensource-src-4.7.3_haiku/src/gui/kernel/qclipboard_haiku.cpp +--- qt-everywhere-opensource-src-4.7.3/src/gui/kernel/qclipboard_haiku.cpp 1970-01-01 00:00:00.000000000 +0000 ++++ qt-everywhere-opensource-src-4.7.3_haiku/src/gui/kernel/qclipboard_haiku.cpp 2011-06-13 22:06:43.295174144 +0000 +@@ -0,0 +1,105 @@ ++#include "qplatformdefs.h" ++#include "qclipboard.h" ++#include "qdebug.h" ++#include "qtextcodec.h" ++#include "qclipboard_p.h" ++#include "qstringlist.h" ++#include ++ ++#include ++#include ++ ++bool QClipboard::event(QEvent *e) ++{ ++ return true; ++} ++ ++void QClipboard::connectNotify(const char *) ++{ } ++ ++void QClipboard::ownerDestroyed() ++{ } ++ ++const QMimeData *QClipboard::mimeData(Mode mode) const ++{ ++ extern QTextCodec *qt_input_mapper; // from qapplication_haiku.cpp ++ ++ QMimeData *md = new QMimeData(); ++ if(mode == Clipboard) { ++ BMessage* clip = (BMessage *)NULL; ++ if (be_clipboard->Lock()) { ++ if( clip = be_clipboard->Data()) { ++ BMessage *msg = (BMessage*)(be_clipboard->Data()); ++ ++ char *name; ++ uint32 type; ++ int32 count; ++ ++ for ( int i = 0; msg->GetInfo(B_MIME_TYPE, i, &name, &type, &count) == B_OK; i++ ) { ++ const void *data; ++ int32 dataLen = 0; ++ qDebug() << "mimeData " << name; ++ status_t stat = msg->FindData(name,B_MIME_TYPE,&data,&dataLen); ++ if(dataLen && stat==B_OK) { ++ QString mime(name); ++ if(mime=="text/plain") { ++ QString text((const char*)data); ++ if (qt_input_mapper) ++ text = qt_input_mapper->toUnicode((const char*)data, dataLen, 0); ++ md->setText(text); ++ } else if(mime=="text/html") { ++ QString html((const char*)data); ++ if (qt_input_mapper) ++ html = qt_input_mapper->toUnicode((const char*)data, dataLen, 0); ++ md->setHtml(html); ++ } else { ++ QByteArray clip_data((const char*)data, dataLen); ++ md->setData(mime,clip_data); ++ } ++ ++ } ++ } ++ be_clipboard->Unlock(); ++ } ++ } ++ } ++ return md; ++} ++ ++void QClipboard::setMimeData(QMimeData *src, Mode mode) ++{ ++ if(mode != Clipboard) ++ return; ++ if (be_clipboard->Lock()) { ++ be_clipboard->Clear(); ++ if (src){ ++ BMessage* clip = (BMessage *)NULL; ++ if( clip = be_clipboard->Data()) { ++ QStringList formats = src->formats(); ++ for(int f = 0; f < formats.size(); ++f) { ++ QString mimeType = formats.at(f); ++ qDebug() << "setMimeData " << mimeType; ++ clip->AddData(mimeType.toUtf8(), B_MIME_TYPE, src->data(mimeType).data(), src->data(mimeType).count()); ++ } ++ } ++ } ++ be_clipboard->Commit(); ++ be_clipboard->Unlock(); ++ } ++} ++ ++void QClipboard::clear(Mode mode) ++{ ++ setMimeData(0, mode); ++} ++ ++bool QClipboard::supportsMode(QClipboard::Mode mode) const ++{ ++ return (mode == Clipboard); ++} ++ ++bool QClipboard::ownsMode(QClipboard::Mode) const ++{ ++ fprintf(stderr, "Unimplemented: QClipboard::ownsMode\n"); ++ return false; ++} +diff -rupN qt-everywhere-opensource-src-4.7.3/src/gui/kernel/qcursor.h qt-everywhere-opensource-src-4.7.3_haiku/src/gui/kernel/qcursor.h +--- qt-everywhere-opensource-src-4.7.3/src/gui/kernel/qcursor.h 2011-03-30 05:19:04.046399488 +0000 ++++ qt-everywhere-opensource-src-4.7.3_haiku/src/gui/kernel/qcursor.h 2011-06-13 22:06:43.297271296 +0000 +@@ -76,6 +76,10 @@ class QCursorData; + class QBitmap; + class QPixmap; + ++#if defined(Q_WS_HAIKU) ++class BCursor; ++#endif ++ + #if defined(Q_WS_MAC) + void qt_mac_set_cursor(const QCursor *c, const QPoint &p); + #endif +@@ -130,6 +134,8 @@ public: + int handle() const; + #elif defined(Q_OS_SYMBIAN) + Qt::HANDLE handle() const; ++#elif defined(Q_WS_HAIKU) ++ BCursor *handle() const; + #endif + #endif + +diff -rupN qt-everywhere-opensource-src-4.7.3/src/gui/kernel/qcursor_haiku.cpp qt-everywhere-opensource-src-4.7.3_haiku/src/gui/kernel/qcursor_haiku.cpp +--- qt-everywhere-opensource-src-4.7.3/src/gui/kernel/qcursor_haiku.cpp 1970-01-01 00:00:00.000000000 +0000 ++++ qt-everywhere-opensource-src-4.7.3_haiku/src/gui/kernel/qcursor_haiku.cpp 2011-06-13 22:06:43.299630592 +0000 +@@ -0,0 +1,93 @@ ++#include "qcursor.h" ++#include "qcursor_p.h" ++ ++#include ++#include ++ ++#include ++ ++int haiku_global_mouse_x = 0; ++int haiku_global_mouse_y = 0; ++ ++BCursor *HaikuCursorCache[32]={NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL, ++ NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}; ++ ++int CursorMapList[]={ Qt::ArrowCursor, B_CURSOR_ID_SYSTEM_DEFAULT, ++ Qt::UpArrowCursor, B_CURSOR_ID_RESIZE_NORTH, ++ Qt::CrossCursor, B_CURSOR_ID_CROSS_HAIR, ++ Qt::WaitCursor, B_CURSOR_ID_PROGRESS, ++ Qt::IBeamCursor, B_CURSOR_ID_I_BEAM, ++ Qt::SizeVerCursor, B_CURSOR_ID_RESIZE_NORTH_SOUTH, ++ Qt::SizeHorCursor, B_CURSOR_ID_RESIZE_EAST_WEST, ++ Qt::SizeBDiagCursor, B_CURSOR_ID_RESIZE_NORTH_EAST_SOUTH_WEST, ++ Qt::SizeFDiagCursor, B_CURSOR_ID_RESIZE_NORTH_WEST_SOUTH_EAST, ++ Qt::SizeAllCursor, B_CURSOR_ID_MOVE, ++ Qt::BlankCursor, B_CURSOR_ID_NO_CURSOR, ++ Qt::SplitVCursor, B_CURSOR_ID_RESIZE_NORTH_SOUTH, ++ Qt::SplitHCursor, B_CURSOR_ID_RESIZE_EAST_WEST, ++ Qt::PointingHandCursor, B_CURSOR_ID_FOLLOW_LINK, ++ Qt::ForbiddenCursor, B_CURSOR_ID_NOT_ALLOWED, ++ Qt::OpenHandCursor, B_CURSOR_ID_GRAB, ++ Qt::ClosedHandCursor, B_CURSOR_ID_GRABBING, ++ Qt::WhatsThisCursor, B_CURSOR_ID_HELP, ++ Qt::BusyCursor, B_CURSOR_ID_PROGRESS ++}; ++ ++ ++extern QCursorData *qt_cursorTable[Qt::LastCursor + 1]; // qcursor.cpp ++ ++QPoint QCursor::pos() ++{ ++ return QPoint(haiku_global_mouse_x,haiku_global_mouse_y); ++} ++ ++void QCursor::setPos(int x, int y) ++{ ++// haiku_global_mouse_x = x; ++// haiku_global_mouse_y = y; ++} ++ ++BCursor *QCursor::handle() const ++{ ++ int i; ++ ++ if (!QCursorData::initialized) ++ QCursorData::initialize(); ++ ++ for(i=0;icshape) { ++ if(HaikuCursorCache[CursorMapList[i+1]]) ++ return HaikuCursorCache[CursorMapList[i+1]]; ++ } ++ } ++ ++ return (BCursor*)B_CURSOR_SYSTEM_DEFAULT; ++} ++ ++QCursorData::QCursorData(Qt::CursorShape s) ++ : cshape(s), bm(0), bmm(0), hx(0), hy(0) ++{ ++ int i; ++ for(i=0;iref.ref(); ++ return c; ++} +diff -rupN qt-everywhere-opensource-src-4.7.3/src/gui/kernel/qdesktopwidget_haiku.cpp qt-everywhere-opensource-src-4.7.3_haiku/src/gui/kernel/qdesktopwidget_haiku.cpp +--- qt-everywhere-opensource-src-4.7.3/src/gui/kernel/qdesktopwidget_haiku.cpp 1970-01-01 00:00:00.000000000 +0000 ++++ qt-everywhere-opensource-src-4.7.3_haiku/src/gui/kernel/qdesktopwidget_haiku.cpp 2011-06-13 22:06:43.301465600 +0000 +@@ -0,0 +1,75 @@ ++#include "qdesktopwidget.h" ++#include "interface/Screen.h" ++ ++ ++#include ++ ++QDesktopWidget::QDesktopWidget() ++ : QWidget(0, Qt::Desktop) ++{ ++ //fprintf(stderr, "Unimplemented: QDesktopWidget::QDesktopWidget\n"); ++} ++ ++QDesktopWidget::~QDesktopWidget() ++{ ++ //fprintf(stderr, "Unimplemented: QDesktopWidget::~QDesktopWidget\n"); ++} ++ ++void ++QDesktopWidget::resizeEvent(QResizeEvent*) ++{ ++ fprintf(stderr, "Unimplemented: QDesktopWidget::resizeEvent\n"); ++} ++ ++const QRect QDesktopWidget::availableGeometry(int screen) const ++{ ++ BScreen bscreen(B_MAIN_SCREEN_ID); ++ BRect nsg = bscreen.Frame(); ++ return QRect(nsg.left,nsg.top,nsg.right,nsg.bottom); ++} ++ ++const QRect QDesktopWidget::screenGeometry(int screen) const ++{ ++ BScreen bscreen(B_MAIN_SCREEN_ID); ++ BRect nsg = bscreen.Frame(); ++ return QRect(nsg.left,nsg.top,nsg.right,nsg.bottom); ++} ++ ++int QDesktopWidget::screenNumber(const QWidget *widget) const ++{ ++ Q_UNUSED(widget); ++ //fprintf(stderr, "Reimplemented: QDesktopWidget::screenNumber(widget) \n"); ++ return 0; ++} ++ ++int QDesktopWidget::screenNumber(const QPoint &point) const ++{ ++ Q_UNUSED(point); ++ //fprintf(stderr, "Reimplemented: QDesktopWidget::screenNumber\n"); ++ return 0; ++} ++ ++bool QDesktopWidget::isVirtualDesktop() const ++{ ++ //fprintf(stderr, "Unimplemented: QDesktopWidget::isVirtualDesktop\n"); ++ return true; ++} ++ ++int QDesktopWidget::primaryScreen() const ++{ ++ //fprintf(stderr, "Unimplemented: QDesktopWidget::primaryScreen\n"); ++ return 0; ++} ++ ++int QDesktopWidget::numScreens() const ++{ ++ //fprintf(stderr, "Unimplemented: QDesktopWidget::numScreens\n"); ++ return 1; ++} ++ ++QWidget *QDesktopWidget::screen(int /* screen */) ++{ ++ //fprintf(stderr, "Unimplemented: QDesktopWidget::screen\n"); ++ // It seems that a Qt::WType_Desktop cannot be moved? ++ return this; ++} +diff -rupN qt-everywhere-opensource-src-4.7.3/src/gui/kernel/qdnd_haiku.cpp qt-everywhere-opensource-src-4.7.3_haiku/src/gui/kernel/qdnd_haiku.cpp +--- qt-everywhere-opensource-src-4.7.3/src/gui/kernel/qdnd_haiku.cpp 1970-01-01 00:00:00.000000000 +0000 ++++ qt-everywhere-opensource-src-4.7.3_haiku/src/gui/kernel/qdnd_haiku.cpp 2011-06-13 22:06:43.304349184 +0000 +@@ -0,0 +1,274 @@ ++/**************************************************************************** ++** ++** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). ++** All rights reserved. ++** Contact: Nokia Corporation (qt-info@nokia.com) ++** ++** This file is part of the QtGui module of the Qt Toolkit. ++** ++** $QT_BEGIN_LICENSE:LGPL$ ++** No Commercial Usage ++** This file contains pre-release code and may not be distributed. ++** You may use this file in accordance with the terms and conditions ++** contained in the Technology Preview License Agreement accompanying ++** this package. ++** ++** GNU Lesser General Public License Usage ++** Alternatively, this file may be used under the terms of the GNU Lesser ++** General Public License version 2.1 as published by the Free Software ++** Foundation and appearing in the file LICENSE.LGPL included in the ++** packaging of this file. Please review the following information to ++** ensure the GNU Lesser General Public License version 2.1 requirements ++** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ++** ++** In addition, as a special exception, Nokia gives you certain additional ++** rights. These rights are described in the Nokia Qt LGPL Exception ++** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. ++** ++** If you have questions regarding the use of this file, please contact ++** Nokia at qt-info@nokia.com. ++** ++** ++** ++** ++** ++** ++** ++** ++** $QT_END_LICENSE$ ++** ++****************************************************************************/ ++ ++#include "qapplication.h" ++ ++#ifndef QT_NO_DRAGANDDROP ++ ++#include "qdebug.h" ++ ++#include "qwidget.h" ++#include "qdatetime.h" ++#include "qbitmap.h" ++#include "qcursor.h" ++#include "qevent.h" ++#include "qpainter.h" ++#include "qdnd_p.h" ++ ++#include ++ ++QT_BEGIN_NAMESPACE ++ ++static Qt::DropAction global_accepted_action = Qt::MoveAction; ++static Qt::DropActions possible_actions = Qt::IgnoreAction; ++ ++static QDrag *drag_object; ++static bool qt_haiku_dnd_dragging = false; ++ ++ ++static Qt::KeyboardModifiers oldstate; ++ ++void QDragManager::updatePixmap() { } ++void QDragManager::timerEvent(QTimerEvent *) { } ++void QDragManager::move(const QPoint&) { } ++void QDragManager::updateCursor() { } ++ ++bool QDragManager::eventFilter(QObject *o, QEvent *e) ++{ ++ if (beingCancelled) { ++ return false; ++ } ++ if (!o->isWidgetType()) ++ return false; ++ ++ switch(e->type()) { ++ case QEvent::MouseButtonPress: ++ { ++ } ++ case QEvent::MouseMove: ++ { ++ if (!object) { //#### this should not happen ++ qWarning("QDragManager::eventFilter: No object"); ++ return true; ++ } ++ QDragManager *manager = QDragManager::self(); ++ QMimeData *dropData = manager->object ? manager->dragPrivate()->data : manager->dropData; ++ if (manager->object) ++ possible_actions = manager->dragPrivate()->possible_actions; ++ else ++ possible_actions = Qt::IgnoreAction; ++ ++ QMouseEvent *me = (QMouseEvent *)e; ++ ++ if (me->buttons()) { ++ Qt::DropAction prevAction = global_accepted_action; ++ QWidget *cw = QApplication::widgetAt(me->globalPos()); ++ // map the Coords relative to the window. ++ if (!cw) ++ return true; ++ ++ while (cw && !cw->acceptDrops() && !cw->isWindow()) ++ cw = cw->parentWidget(); ++ ++ bool oldWillDrop = willDrop; ++ if (object->target() != cw) { ++ if (object->target()) { ++ QDragLeaveEvent dle; ++ QApplication::sendEvent(object->target(), &dle); ++ willDrop = false; ++ global_accepted_action = Qt::IgnoreAction; ++ if (oldWillDrop != willDrop) ++ updateCursor(); ++ object->d_func()->target = 0; ++ } ++ if (cw && cw->acceptDrops()) { ++ object->d_func()->target = cw; ++ QDragEnterEvent dee(cw->mapFromGlobal(me->globalPos()), possible_actions, dropData, ++ me->buttons(), me->modifiers()); ++ QApplication::sendEvent(object->target(), &dee); ++ willDrop = dee.isAccepted() && dee.dropAction() != Qt::IgnoreAction; ++ global_accepted_action = willDrop ? dee.dropAction() : Qt::IgnoreAction; ++ if (oldWillDrop != willDrop) ++ updateCursor(); ++ } ++ } else if (cw) { ++ QDragMoveEvent dme(cw->mapFromGlobal(me->globalPos()), possible_actions, dropData, ++ me->buttons(), me->modifiers()); ++ if (global_accepted_action != Qt::IgnoreAction) { ++ dme.setDropAction(global_accepted_action); ++ dme.accept(); ++ } ++ QApplication::sendEvent(cw, &dme); ++ willDrop = dme.isAccepted(); ++ global_accepted_action = willDrop ? dme.dropAction() : Qt::IgnoreAction; ++ if (oldWillDrop != willDrop) { ++ updatePixmap(); ++ updateCursor(); ++ } ++ } ++ if (global_accepted_action != prevAction) ++ emitActionChanged(global_accepted_action); ++ } ++ return true; // Eat all mouse events ++ } ++ ++ case QEvent::MouseButtonRelease: ++ { ++ qApp->removeEventFilter(this); ++#ifndef QT_NO_CURSOR ++ if (restoreCursor) { ++ QApplication::restoreOverrideCursor(); ++ willDrop = false; ++ restoreCursor = false; ++ } ++#endif ++ if (object && object->target()) { ++ ++ QMouseEvent *me = (QMouseEvent *)e; ++ ++ QDragManager *manager = QDragManager::self(); ++ QMimeData *dropData = manager->object ? manager->dragPrivate()->data : manager->dropData; ++ ++ QDropEvent de(object->target()->mapFromGlobal(me->globalPos()), possible_actions, dropData, ++ me->buttons(), me->modifiers()); ++ QApplication::sendEvent(object->target(), &de); ++ if (de.isAccepted()) ++ global_accepted_action = de.dropAction(); ++ else ++ global_accepted_action = Qt::IgnoreAction; ++ ++ if (object) ++ object->deleteLater(); ++ drag_object = object = 0; ++ } ++ eventLoop->exit(); ++ return true; // Eat all mouse events ++ } ++ ++ default: ++ break; ++ } ++ return false; ++} ++ ++Qt::DropAction QDragManager::drag(QDrag *o) ++{ ++ if (object == o || !o || !o->source()) { ++ return Qt::IgnoreAction; ++ } ++ ++ if (object) { ++ cancel(); ++ qApp->removeEventFilter(this); ++ beingCancelled = false; ++ } ++ ++ object = drag_object = o; ++ ++ oldstate = Qt::NoModifier; // #### Should use state that caused the drag ++ willDrop = false; ++ ++ object->d_func()->target = 0; ++ ++ qApp->installEventFilter(this); ++ ++ global_accepted_action = defaultAction(dragPrivate()->possible_actions, Qt::NoModifier); ++ qt_haiku_dnd_dragging = true; ++ ++ eventLoop = new QEventLoop; ++ // block ++ (void) eventLoop->exec(QEventLoop::AllEvents); ++ delete eventLoop; ++ eventLoop = 0; ++ ++ qt_haiku_dnd_dragging = false; ++ ++ return global_accepted_action; ++} ++ ++ ++void QDragManager::cancel(bool deleteSource) ++{ ++ beingCancelled = true; ++ ++ if (object->target()) { ++ QDragLeaveEvent dle; ++ QApplication::sendEvent(object->target(), &dle); ++ } ++ ++ if (drag_object) { ++ if (deleteSource) ++ object->deleteLater(); ++ drag_object = object = 0; ++ } ++ ++ global_accepted_action = Qt::IgnoreAction; ++} ++ ++ ++void QDragManager::drop() ++{ ++} ++ ++QVariant QDropData::retrieveData_sys(const QString &mimetype, QVariant::Type type) const ++{ ++ if (!drag_object) ++ return QVariant(); ++ QByteArray data = drag_object->mimeData()->data(mimetype); ++ if (type == QVariant::String) ++ return QString::fromUtf8(data); ++ return data; ++} ++ ++bool QDropData::hasFormat_sys(const QString &format) const ++{ ++ return formats().contains(format); ++} ++ ++QStringList QDropData::formats_sys() const ++{ ++ if (drag_object) ++ return drag_object->mimeData()->formats(); ++ return QStringList(); ++} ++ ++QT_END_NAMESPACE ++#endif // QT_NO_DRAGANDDROP +diff -rupN qt-everywhere-opensource-src-4.7.3/src/gui/kernel/qeventdispatcher_haiku.cpp qt-everywhere-opensource-src-4.7.3_haiku/src/gui/kernel/qeventdispatcher_haiku.cpp +--- qt-everywhere-opensource-src-4.7.3/src/gui/kernel/qeventdispatcher_haiku.cpp 1970-01-01 00:00:00.000000000 +0000 ++++ qt-everywhere-opensource-src-4.7.3_haiku/src/gui/kernel/qeventdispatcher_haiku.cpp 2011-06-13 22:06:43.305922048 +0000 +@@ -0,0 +1,94 @@ ++#include ++#include "qeventdispatcher_haiku_p.h" ++#include ++#include ++#include ++ ++#include ++#include ++ ++// Debugging part ++ ++#define DEBUG_HAIKU_LEVEL 0 ++// 1 Unimplemented ++// 2-4 nothing ++// 5 reimplemented ++ ++#if defined(DEBUG_HAIKU_LEVEL) && DEBUG_HAIKU_LEVEL > 0 ++void debugprint(int level, const char *msg, ...) ++{ ++ va_list args; ++ va_start(args, msg); ++ if (DEBUG_HAIKU_LEVEL >= level) ++ vfprintf(stderr, msg, args); ++ va_end(args); ++} ++#else ++#define debugprint(...) ++#endif ++ ++class QEventDispatcherHaikuPrivate : public QEventDispatcherUNIXPrivate ++{ ++ QEventDispatcherHaikuPrivate() : QEventDispatcherUNIXPrivate() { } ++ ~QEventDispatcherHaikuPrivate() { } ++}; ++ ++QEventDispatcherHaiku::QEventDispatcherHaiku(QObject *parent) ++ : QEventDispatcherUNIX(*new QEventDispatcherUNIXPrivate, parent) ++{ ++ debugprint(5, "Reimp: QEventDispatcherHaiku::QEventDispatcherHaiku \n"); ++} ++QEventDispatcherHaiku::~QEventDispatcherHaiku() ++{ ++ debugprint(5, "Reimp: QEventDispatcherHaiku::~QEventDispatcherHaiku \n"); ++} ++ ++bool ++QEventDispatcherHaiku::processEvents(QEventLoop::ProcessEventsFlags ++flags) ++{ ++ Q_D(QEventDispatcherHaiku); ++ debugprint(5, "Reimp: QEventDispatcherHaiku::processEvents\n"); ++ ++ d->interrupt = false; ++ emit awake(); ++ ++ bool canWait = false; ++ bool retVal = false; ++ do { ++ QCoreApplicationPrivate::sendPostedEvents(0, 0, d->threadData); ++ QThreadData *data = d->threadData; ++ canWait = (//!retVal ++ data->canWait ++ && !d->interrupt ++ && (flags & QEventLoop::WaitForMoreEvents)); ++ } while (false);//canWait); ++ ++ if (!d->interrupt) { ++// fprintf(stderr, "Entering Unix processEvents\n"); ++ bool result = QEventDispatcherUNIX::processEvents(flags); ++// fprintf(stderr, "Exiting Unix processEvents\n"); ++ return result; ++ } ++ return true; ++} ++bool QEventDispatcherHaiku::hasPendingEvents() ++{ ++ debugprint(5, "Reimp: QEventDispatcherHaiku::hasPendingEvents\n"); ++ return false; ++} ++ ++void QEventDispatcherHaiku::flush() ++{ ++ debugprint(5, "Reimp: QEventDispatcherHaiku::flush\n"); ++} ++ ++void QEventDispatcherHaiku::startingUp() ++{ ++ debugprint(5, "Reimp: QEventDispatcherHaiku::startingUp\n"); ++} ++void QEventDispatcherHaiku::closingDown() ++{ ++ debugprint(5, "Reimp: QEventDispatcherHaiku::closingDown\n"); ++} ++ +diff -rupN qt-everywhere-opensource-src-4.7.3/src/gui/kernel/qeventdispatcher_haiku_p.h qt-everywhere-opensource-src-4.7.3_haiku/src/gui/kernel/qeventdispatcher_haiku_p.h +--- qt-everywhere-opensource-src-4.7.3/src/gui/kernel/qeventdispatcher_haiku_p.h 1970-01-01 00:00:00.000000000 +0000 ++++ qt-everywhere-opensource-src-4.7.3_haiku/src/gui/kernel/qeventdispatcher_haiku_p.h 2011-06-13 22:06:43.307757056 +0000 +@@ -0,0 +1,28 @@ ++#ifndef FEASOIFESWR ++#define FEASOIFESWR ++#include ++#include ++ ++class QEventDispatcherHaikuPrivate; ++ ++class QEventDispatcherHaiku : public QEventDispatcherUNIX ++{ ++ //Q_OBJECT ++ Q_DECLARE_PRIVATE(QEventDispatcherHaiku) ++ ++public: ++ explicit QEventDispatcherHaiku(QObject *parent = 0); ++ ~QEventDispatcherHaiku(); ++ ++ bool processEvents(QEventLoop::ProcessEventsFlags flags); ++ bool hasPendingEvents(); ++ ++ void flush(); ++ ++ void startingUp(); ++ void closingDown(); ++ ++protected: ++}; ++ ++#endif +diff -rupN qt-everywhere-opensource-src-4.7.3/src/gui/kernel/qguiplatformplugin.cpp qt-everywhere-opensource-src-4.7.3_haiku/src/gui/kernel/qguiplatformplugin.cpp +--- qt-everywhere-opensource-src-4.7.3/src/gui/kernel/qguiplatformplugin.cpp 2011-03-30 05:19:04.050069504 +0000 ++++ qt-everywhere-opensource-src-4.7.3_haiku/src/gui/kernel/qguiplatformplugin.cpp 2011-06-13 22:06:43.310378496 +0000 +@@ -156,6 +156,8 @@ QString QGuiPlatformPlugin::styleName() + return QLatin1String("Plastique"); // default style for X11 and small devices + #elif defined(Q_WS_MAC) + return QLatin1String("Macintosh"); // default style for all Mac's ++#elif defined(Q_WS_HAIKU) ++ return QLatin1String("Haiku"); // default style for Haiku + #elif defined(Q_WS_X11) + QString stylename; + switch(X11->desktopEnvironment) { +diff -rupN qt-everywhere-opensource-src-4.7.3/src/gui/kernel/qkeymapper_haiku.cpp qt-everywhere-opensource-src-4.7.3_haiku/src/gui/kernel/qkeymapper_haiku.cpp +--- qt-everywhere-opensource-src-4.7.3/src/gui/kernel/qkeymapper_haiku.cpp 1970-01-01 00:00:00.000000000 +0000 ++++ qt-everywhere-opensource-src-4.7.3_haiku/src/gui/kernel/qkeymapper_haiku.cpp 2011-06-13 22:06:43.312475648 +0000 +@@ -0,0 +1,208 @@ ++/**************************************************************************** ++** ++** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). ++** Contact: Nokia Corporation (qt-info@nokia.com) ++** ++** This file is part of the QtGui of the Qt Toolkit. ++** ++** $QT_BEGIN_LICENSE:LGPL$ ++** No Commercial Usage ++** This file contains pre-release code and may not be distributed. ++** You may use this file in accordance with the terms and conditions ++** contained in the Technology Preview License Agreement accompanying ++** this package. ++** ++** GNU Lesser General Public License Usage ++** Alternatively, this file may be used under the terms of the GNU Lesser ++** General Public License version 2.1 as published by the Free Software ++** Foundation and appearing in the file LICENSE.LGPL included in the ++** packaging of this file. Please review the following information to ++** ensure the GNU Lesser General Public License version 2.1 requirements ++** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ++** ++** In addition, as a special exception, Nokia gives you certain ++** additional rights. These rights are described in the Nokia Qt LGPL ++** Exception version 1.1, included in the file LGPL_EXCEPTION.txt in this ++** package. ++** ++** If you have questions regarding the use of this file, please contact ++** Nokia at qt-info@nokia.com. ++** ++** ++** ++** ++** ++** ++** ++** ++** $QT_END_LICENSE$ ++** ++****************************************************************************/ ++ ++#include "qkeymapper_p.h" ++ ++#include ++ ++QKeyMapperPrivate::QKeyMapperPrivate() ++{ ++ uint32 scan_codes[] = { ++ Qt::Key_Escape, 0x01, ++ Qt::Key_F1, 0x02, ++ Qt::Key_F2, 0x03, ++ Qt::Key_F3, 0x04, ++ Qt::Key_F4, 0x05, ++ Qt::Key_F5, 0x06, ++ Qt::Key_F6, 0x07, ++ Qt::Key_F7, 0x08, ++ Qt::Key_F8, 0x09, ++ Qt::Key_F9, 0x0A, ++ Qt::Key_F10, 0x0B, ++ Qt::Key_F11, 0x0C, ++ Qt::Key_F12, 0x0D, ++ Qt::Key_Print, 0x0E, ++// Qt::Key_ScrollLock = 0x0F, //modificator ++ Qt::Key_Pause, 0x22, ++ ++ Qt::Key_AsciiTilde, 0x11, ++ Qt::Key_1, 0x12, ++ Qt::Key_2, 0x13, ++ Qt::Key_3, 0x14, ++ Qt::Key_4, 0x15, ++ Qt::Key_5, 0x16, ++ Qt::Key_6, 0x17, ++ Qt::Key_7, 0x18, ++ Qt::Key_8, 0x19, ++ Qt::Key_9, 0x1A, ++ Qt::Key_0, 0x1B, ++ Qt::Key_Minus, 0x1C, ++ Qt::Key_Plus, 0x1D, ++ Qt::Key_Backspace, 0x1E, ++ Qt::Key_Insert, 0x1F, ++ Qt::Key_Home, 0x20, ++ Qt::Key_PageUp, 0x21, ++// Qt::Key_NumLock, 0x22, //modificator ++ Qt::Key_Slash, 0x23, ++ Qt::Key_Asterisk, 0x24, ++ Qt::Key_Minus, 0x25, ++ ++ Qt::Key_Tab, 0x26, ++ Qt::Key_Q, 0x27, ++ Qt::Key_W, 0x28, ++ Qt::Key_E, 0x29, ++ Qt::Key_R, 0x2A, ++ Qt::Key_T, 0x2B, ++ Qt::Key_Y, 0x2C, ++ Qt::Key_U, 0x2D, ++ Qt::Key_I, 0x2E, ++ Qt::Key_O, 0x2F, ++ Qt::Key_P, 0x30, ++ Qt::Key_BracketLeft,0x31, ++ Qt::Key_BracketRight,0x32, ++ Qt::Key_Backslash, 0x33, ++ Qt::Key_Delete, 0x34, ++ Qt::Key_End, 0x35, ++ Qt::Key_PageDown, 0x36, ++ Qt::Key_Home, 0x37, //numpad ++ Qt::Key_Up, 0x38, //numpad ++ Qt::Key_PageUp, 0x39, //numpad ++ Qt::Key_Plus, 0x3A, //numpad ++ ++// Qt::Key_CapsLock, 0x3B, //modificator ++ Qt::Key_A, 0x3C, ++ Qt::Key_S, 0x3D, ++ Qt::Key_D, 0x3E, ++ Qt::Key_F, 0x3F, ++ Qt::Key_G, 0x40, ++ Qt::Key_H, 0x41, ++ Qt::Key_J, 0x42, ++ Qt::Key_K, 0x43, ++ Qt::Key_L, 0x44, ++ Qt::Key_Colon, 0x45, ++ Qt::Key_QuoteDbl, 0x46, ++ Qt::Key_Return, 0x47, ++ Qt::Key_Left, 0x48, //numpad ++ Qt::Key_5, 0x49, //numpad ??? ++ Qt::Key_Right, 0x4A, //numpad ++ ++ Qt::Key_Z, 0x4C, ++ Qt::Key_X, 0x4D, ++ Qt::Key_C, 0x4E, ++ Qt::Key_V, 0x4F, ++ Qt::Key_B, 0x50, ++ Qt::Key_N, 0x51, ++ Qt::Key_M, 0x51, ++ Qt::Key_Less, 0x52, ++ Qt::Key_Greater, 0x54, ++ Qt::Key_Question, 0x55, ++ Qt::Key_Up, 0x57, //cursor ++ Qt::Key_End, 0x58, //numpad ++ Qt::Key_Down, 0x59, //numpad ++ Qt::Key_PageDown, 0x5A, //numpad ++ Qt::Key_Enter, 0x5B, //numpad ++ ++ Qt::Key_Space, 0x5E, ++ Qt::Key_Left, 0x61, //cursor ++ Qt::Key_Down, 0x62, //cursor ++ Qt::Key_Right, 0x63, //cursor ++ Qt::Key_Insert, 0x64, //cursor ++ Qt::Key_Delete, 0x65, //numpad ++ 0, 0x00 ++ }; ++ ++uint32 scan_codes_numlock[] = { ++ Qt::Key_7, 0x37, ++ Qt::Key_8, 0x38, ++ Qt::Key_9, 0x39, ++ Qt::Key_Plus, 0x3A, ++ Qt::Key_4, 0x48, ++ Qt::Key_5, 0x49, ++ Qt::Key_6, 0x4A, ++ Qt::Key_1, 0x58, ++ Qt::Key_2, 0x59, ++ Qt::Key_3, 0x5A, ++ Qt::Key_Enter, 0x5B, ++ Qt::Key_Comma, 0x65, ++ 0, 0x00 ++ }; ++ ++ memcpy(ScanCodes,scan_codes,sizeof(scan_codes)); ++ memcpy(ScanCodes_Numlock,scan_codes_numlock,sizeof(scan_codes_numlock)); ++} ++ ++QKeyMapperPrivate::~QKeyMapperPrivate() ++{ } ++ ++void QKeyMapperPrivate::clearMappings() ++{ } ++ ++QList QKeyMapperPrivate::possibleKeys(QKeyEvent *) ++{ ++ return QList(); ++} ++ ++uint32 QKeyMapperPrivate::translateKeyCode(int32 key) ++{ ++ uint32 code = 0; ++ int i = 0; ++ if(modifiers()&&B_NUM_LOCK) { ++ while (ScanCodes_Numlock[i]) { ++ if ( key == ScanCodes_Numlock[i+1]) { ++ code = ScanCodes_Numlock[i]; ++ break; ++ } ++ i += 2; ++ } ++ if(code>0) ++ return code; ++ } ++ ++ i = 0; ++ while (ScanCodes[i]) { ++ if ( key == ScanCodes[i+1]) { ++ code = ScanCodes[i]; ++ break; ++ } ++ i += 2; ++ } ++ return code; ++} +diff -rupN qt-everywhere-opensource-src-4.7.3/src/gui/kernel/qkeymapper_p.h qt-everywhere-opensource-src-4.7.3_haiku/src/gui/kernel/qkeymapper_p.h +--- qt-everywhere-opensource-src-4.7.3/src/gui/kernel/qkeymapper_p.h 2011-03-30 05:19:04.003145728 +0000 ++++ qt-everywhere-opensource-src-4.7.3_haiku/src/gui/kernel/qkeymapper_p.h 2011-06-13 22:06:43.314572800 +0000 +@@ -213,6 +213,10 @@ public: + int mapS60ScanCodesToQt(TUint s60key); + int mapQtToS60Key(int qtKey); + int mapQtToS60ScanCodes(int qtKey); ++#elif defined(Q_WS_HAIKU) ++ uint32 translateKeyCode(int32 key); ++ uint32 ScanCodes[256]; ++ uint32 ScanCodes_Numlock[16]; + #endif + }; + +diff -rupN qt-everywhere-opensource-src-4.7.3/src/gui/kernel/qsound_haiku.cpp qt-everywhere-opensource-src-4.7.3_haiku/src/gui/kernel/qsound_haiku.cpp +--- qt-everywhere-opensource-src-4.7.3/src/gui/kernel/qsound_haiku.cpp 1970-01-01 00:00:00.000000000 +0000 ++++ qt-everywhere-opensource-src-4.7.3_haiku/src/gui/kernel/qsound_haiku.cpp 2011-06-13 22:06:43.316932096 +0000 +@@ -0,0 +1,26 @@ ++#include "qapplication.h" ++#include "qsound.h" ++#include "qsound_p.h" ++ ++class QAuServerNull : public QAuServer ++{ ++public: ++ QAuServerNull(QObject* parent); ++ ++ void play(const QString&) { } ++ void play(QSound*s) { while(decLoop(s) > 0) /* nothing */ ; } ++ void stop(QSound*) { } ++ bool okay() { return false; } ++}; ++ ++QAuServerNull::QAuServerNull(QObject* parent) ++ : QAuServer(parent) ++{ ++} ++ ++QAuServer* qt_new_audio_server() ++{ ++// fprintf(stderr, "Unimplemented: qt_new_audio_server()\n"); ++ return new QAuServerNull(qApp); ++} ++ +diff -rupN qt-everywhere-opensource-src-4.7.3/src/gui/kernel/qwidget.cpp qt-everywhere-opensource-src-4.7.3_haiku/src/gui/kernel/qwidget.cpp +--- qt-everywhere-opensource-src-4.7.3/src/gui/kernel/qwidget.cpp 2011-03-30 05:19:04.060030976 +0000 ++++ qt-everywhere-opensource-src-4.7.3_haiku/src/gui/kernel/qwidget.cpp 2011-06-13 22:06:43.326107136 +0000 +@@ -1466,6 +1466,18 @@ void QWidget::create(WId window, bool in + setAttribute(Qt::WA_WState_Created); // set created flag + d->create_sys(window, initializeWindow, destroyOldWindow); + ++#ifdef Q_WS_HAIKU ++if (windowType() != Qt::Desktop){ //temporary hack, Desktop don't have native view ++ QObject::connect((const QObject *)d->nativeView, SIGNAL(sendUpdateWidget()),this,SLOT(slot_updateWidget()), Qt::QueuedConnection); ++ QObject::connect((const QObject *)d->nativeView, SIGNAL(sendUpdateWidgetRect(QRect)),this,SLOT(slot_updateWidgetRect(QRect)), Qt::QueuedConnection); ++ QObject::connect((const QObject *)d->nativeView, SIGNAL(sendHaikuEvent(QObject *, QEvent *)),this,SLOT(slot_sendEvent(QObject *, QEvent *)),Qt::QueuedConnection); ++ QObject::connect((const QObject *)d->nativeView, SIGNAL(sendResizeWidget(int, int)),this,SLOT(slot_sendResizeWidget(int, int)), Qt::QueuedConnection); ++ QObject::connect((const QObject *)d->nativeView, SIGNAL(sendMoveWidget(int, int)),this,SLOT(slot_sendMoveWidget(int, int)), Qt::QueuedConnection); ++ QObject::connect((const QObject *)d->nativeView, SIGNAL(sendSetActiveWindow(QWidget *)),this,SLOT(slot_sendSetActiveWindow(QWidget *)), Qt::QueuedConnection); ++ QObject::connect((const QObject *)d->nativeView, SIGNAL(sendCloseWindow(QWidget *)),this,SLOT(slot_sendCloseWindow(QWidget *)), Qt::QueuedConnection); ++} ++#endif ++ + // a real toplevel window needs a backing store + if (isWindow() && windowType() != Qt::Desktop) { + d->topData()->backingStore.destroy(); +@@ -12547,6 +12559,53 @@ void QWidgetPrivate::syncUnifiedMode() { + + #endif // QT_MAC_USE_COCOA + ++/* ++ Trap slot functions for Haiku events ++*/ ++void QWidget::slot_updateWidget() ++{ ++ update(); ++} ++ ++void QWidget::slot_updateWidgetRect(QRect r) ++{ ++ update(r); ++} ++ ++void QWidget::slot_sendEvent(QObject *receiver, QEvent *event) ++{ ++ // close all active popup window ++ if (event->type() == QEvent::MouseButtonPress && ++ qApp->activePopupWidget() && ++ qApp->activePopupWidget()->nativeView()->Window() != nativeView()->Window()) ++ qApp->activePopupWidget()->close(); ++ ++ QApplication::sendSpontaneousEvent(receiver, event); ++ delete event; ++} ++ ++void QWidget::slot_sendResizeWidget(int width, int height) ++{ ++ resize(width, height); ++} ++ ++void QWidget::slot_sendMoveWidget(int x, int y) ++{ ++ move(x,y); ++} ++ ++void QWidget::slot_sendSetActiveWindow(QWidget *widget) ++{ ++ if (/*!d->inPopupMode() && */ widget || (!widget && QApplicationPrivate::active_window == this)) ++ qApp->setActiveWindow(widget); ++} ++ ++void QWidget::slot_sendCloseWindow(QWidget *widget) ++{ ++ QWidgetPrivate *widget_private = widget->d_func(); ++ widget_private->close_helper(QWidgetPrivate::CloseWithSpontaneousEvent); ++} ++ + QT_END_NAMESPACE + + #include "moc_qwidget.cpp" +diff -rupN qt-everywhere-opensource-src-4.7.3/src/gui/kernel/qwidget.h qt-everywhere-opensource-src-4.7.3_haiku/src/gui/kernel/qwidget.h +--- qt-everywhere-opensource-src-4.7.3/src/gui/kernel/qwidget.h 2011-03-30 05:19:04.063963136 +0000 ++++ qt-everywhere-opensource-src-4.7.3_haiku/src/gui/kernel/qwidget.h 2011-06-13 22:06:43.328466432 +0000 +@@ -100,6 +100,9 @@ class QGraphicsEffect; + #if defined(Q_WS_X11) + class QX11Info; + #endif ++#if defined(Q_WS_HAIKU) && !defined(BUILD_WEBKIT) ++#include "qwidget_haiku.h" ++#endif + + class QWidgetData + { +@@ -254,6 +257,17 @@ public Q_SLOTS: + void setEnabled(bool); + void setDisabled(bool); + void setWindowModified(bool); ++ ++//#ifdef Q_WS_HAIKU // Its all for moc, but moc does not support #ifdef ++// Remove! break cross-platform! ++ void slot_updateWidget(); ++ void slot_updateWidgetRect(QRect r); ++ void slot_sendEvent(QObject *receiver, QEvent *event); ++ void slot_sendResizeWidget(int width, int height); ++ void slot_sendMoveWidget(int x, int y); ++ void slot_sendSetActiveWindow(QWidget *widget); ++ void slot_sendCloseWindow(QWidget *widget); ++//#endif + + // Widget coordinates + +@@ -604,6 +618,10 @@ public: + Qt::HANDLE handle() const; + #endif + ++#if defined(Q_WS_HAIKU) ++ BView* nativeView() const; ++#endif ++ + void setAttribute(Qt::WidgetAttribute, bool on = true); + inline bool testAttribute(Qt::WidgetAttribute) const; + +diff -rupN qt-everywhere-opensource-src-4.7.3/src/gui/kernel/qwidget_haiku.cpp qt-everywhere-opensource-src-4.7.3_haiku/src/gui/kernel/qwidget_haiku.cpp +--- qt-everywhere-opensource-src-4.7.3/src/gui/kernel/qwidget_haiku.cpp 1970-01-01 00:00:00.000000000 +0000 ++++ qt-everywhere-opensource-src-4.7.3_haiku/src/gui/kernel/qwidget_haiku.cpp 2011-06-13 22:06:43.333185024 +0000 +@@ -0,0 +1,1457 @@ ++#include "qwidget_haiku.h" ++#include ++#include "qapplication_p.h" ++#include "private/qkeymapper_p.h" ++#include "qdesktopwidget.h" ++#include "qwidget.h" ++#include "qwidget_p.h" ++#include "qtextcodec.h" ++ ++#include ++#include ++#include "qevent_p.h" ++#include "private/qwindowsurface_raster_p.h" ++#include "qapplication.h" ++#include "qfileinfo.h" ++#include ++#include ++#include ++ ++extern int haiku_global_mouse_x; ++extern int haiku_global_mouse_y; ++ ++static QWidget *keyboardGrb = 0; ++static QWidget *mouseGrb = 0; ++ ++QtHaikuView::QtHaikuView(BRect frame, const char *name, uint32 resizingMode, uint32 flags) ++ : QObject(), BView(frame, name, resizingMode, flags), ++ isVisible(true), fWidget(0), fWidgetPrivate(0), ++ last_down_buttons(0), last_clicked_buttons(0), last_mouse_x(-1), last_mouse_y(-1), last_click_time(0), last_draw_event(0) ++{ ++ ++} ++ ++Qt::MouseButton ++QtHaikuView::translateMouseButton(uint32 s) ++{ ++ Qt::MouseButton ret = Qt::NoButton; ++ if (s & B_PRIMARY_MOUSE_BUTTON) ++ ret = Qt::LeftButton; ++ if (s & B_SECONDARY_MOUSE_BUTTON) ++ ret = Qt::RightButton; ++ if (s & B_TERTIARY_MOUSE_BUTTON) ++ ret = Qt::MidButton; ++ return ret; ++} ++ ++Qt::MouseButtons ++QtHaikuView::translateMouseButtons(uint32 s) ++{ ++ Qt::MouseButtons ret = 0; ++ if (s & B_PRIMARY_MOUSE_BUTTON) ++ ret |= Qt::LeftButton; ++ if (s & B_SECONDARY_MOUSE_BUTTON) ++ ret |= Qt::RightButton; ++ if (s & B_TERTIARY_MOUSE_BUTTON) ++ ret |= Qt::MidButton; ++ return ret; ++} ++ ++void ++QtHaikuView::sendWheelEvent(int delta_x, int delta_y) ++{ ++ BPoint mouse_pos; ++ uint32 buttons; ++ uint32 mod = modifiers(); ++ ++ GetMouse(&mouse_pos,&buttons); ++ Qt::KeyboardModifiers qt_mod = translateModifiers(mod); ++ Qt::MouseButtons qt_buttons = translateMouseButtons(buttons); ++ ++ BPoint screen_pos = ConvertToScreen(mouse_pos); ++ const QPoint globalPos = QPoint(screen_pos.x,screen_pos.y); ++ QPoint pos = QPoint(mouse_pos.x,mouse_pos.y); ++ ++ if(delta_x!=0) ++ emit sendHaikuEvent(fWidget, new QWheelEvent(pos, globalPos, -delta_x, qt_buttons, qt_mod, Qt::Horizontal)); ++ if(delta_y!=0) ++ emit sendHaikuEvent(fWidget, new QWheelEvent(pos, globalPos, -delta_y, qt_buttons, qt_mod, Qt::Vertical)); ++} ++ ++Qt::KeyboardModifiers ++QtHaikuView::translateModifiers(uint32 s) ++{ ++ Qt::KeyboardModifiers ret = 0; ++ if (s & B_SHIFT_KEY) ++ ret |= Qt::ShiftModifier; ++ if (s & B_CONTROL_KEY) ++ ret |= Qt::AltModifier; ++ if (s & B_COMMAND_KEY) ++ ret |= Qt::ControlModifier; ++ return ret; ++} ++ ++void QtHaikuView::FrameResized(float width, float height) ++{ ++ QSize widgetSize = fWidget->size(); ++ QSize newSize = QSize(width, height); ++ if (widgetSize == newSize) ++ return; ++ fWidgetPrivate->data.fstrut_dirty = true; ++ ++ emit sendUpdateWidget(); ++} ++ ++void ++QtHaikuView::Hide() ++{ ++ if (!isVisible) return; ++ if (Window() && Window()->LockLooper()){ ++ BView::Hide(); ++ isVisible = false; ++ Window()->UnlockLooper(); ++ } ++} ++ ++void ++QtHaikuView::Show() ++{ ++ if (isVisible) return; ++ if (Window() && Window()->LockLooper()){ ++ BView::Show(); ++ isVisible = true; ++ Window()->UnlockLooper(); ++ } ++} ++ ++void ++QtHaikuWindow::Hide() ++{ ++ if (LockLooper()){ ++ if (!IsHidden()) ++ BWindow::Hide(); ++ UnlockLooper(); ++ } ++} ++ ++void ++QtHaikuWindow::Show() ++{ ++ if (LockLooper()){ ++ if (IsHidden()) ++ BWindow::Show(); ++ UnlockLooper(); ++ } ++} ++ ++ ++QtHaikuView::~QtHaikuView() ++{ ++// debugprint(5, "Reimplemented: QtHaikuView::~QtHaikuView\n"); ++} ++ ++inline void QtHaikuView::setWidget(QWidget *widget, QWidgetPrivate *widgetPrivate) ++{ ++ fWidget = widget; ++ fWidgetPrivate = widgetPrivate; ++} ++ ++void QtHaikuView::MouseUp(BPoint point) ++{ ++ BPoint point2; ++ uint32 h_mod=modifiers(); ++ uint32 h_buttons = 0; ++ uint32 h_button = last_down_buttons; ++ last_down_buttons = 0; ++ ++ Qt::MouseButton qt_button = translateMouseButton(h_button); ++ Qt::MouseButtons qt_buttons = translateMouseButtons(h_buttons); ++ Qt::KeyboardModifiers qt_mod = translateModifiers(h_mod); ++ ++ BPoint glob_pos = ConvertToScreen(point); ++ haiku_global_mouse_x = glob_pos.x; ++ haiku_global_mouse_y = glob_pos.y; ++ ++ QWidget *widget = fWidget->mouseGrabber(); ++ if(!widget) ++ widget = fWidget; ++ ++ QWidget *wat = QApplication::widgetAt(QPoint(glob_pos.x,glob_pos.y)); ++ ++// qDebug() << "MouseUp " << fWidget << widget << wat; ++ if(wat && wat!=widget) { ++ QPoint lpoint = wat->mapFromGlobal(QPoint(glob_pos.x,glob_pos.y)); ++ if(fWidget->nativeView()->Window()==wat->nativeView()->Window()) { ++ widget = wat; ++ point.x= lpoint.x(); ++ point.y= lpoint.y(); ++ } ++ } ++ ++ if (qt_button == Qt::RightButton) ++ emit sendHaikuEvent(widget, new QContextMenuEvent(QContextMenuEvent::Mouse, ++ QPoint(point.x,point.y), QPoint(haiku_global_mouse_x,haiku_global_mouse_y), qt_mod)); ++ else ++ emit sendHaikuEvent(widget, new QMouseEvent(QEvent::MouseButtonRelease, ++ QPoint(point.x,point.y), qt_button, qt_buttons, qt_mod)); ++} ++ ++void QtHaikuView::MouseDown(BPoint point) ++{ ++ uint32 h_mod=modifiers(); ++ uint32 h_buttons = Window()->CurrentMessage()->FindInt32("buttons"); ++ uint32 h_button = h_buttons; //TODO: only one button in per time ++ ++ Qt::MouseButton qt_button = translateMouseButton(h_button); ++ Qt::MouseButtons qt_buttons = translateMouseButtons(h_buttons); ++ Qt::KeyboardModifiers qt_mod = translateModifiers(h_mod); ++ ++ BPoint glob_pos = ConvertToScreen(point); ++ haiku_global_mouse_x = glob_pos.x; ++ haiku_global_mouse_y = glob_pos.y; ++ ++ SetMouseEventMask(B_POINTER_EVENTS,B_NO_POINTER_HISTORY); ++ ++ QWidget *widget = fWidget->mouseGrabber(); ++ if(!widget) ++ widget = fWidget; ++ ++ QWidget *wat = QApplication::widgetAt(QPoint(glob_pos.x,glob_pos.y)); ++ ++// qDebug() << "MouseDown " << fWidget << widget << wat; ++ if(wat && wat!=widget) { ++ QPoint lpoint = wat->mapFromGlobal(QPoint(glob_pos.x,glob_pos.y)); ++ if(fWidget->nativeView()->Window()==wat->nativeView()->Window()) { ++ widget = wat; ++ point.x= lpoint.x(); ++ point.y= lpoint.y(); ++ } ++ } ++ ++ bigtime_t now=system_time(); ++ ++ bigtime_t double_click_speed; ++ get_click_speed(&double_click_speed); ++ ++ if( now - last_click_time < double_click_speed && ++ last_clicked_buttons == h_buttons && ++ last_mouse_x==glob_pos.x && ++ last_mouse_y==glob_pos.y) { ++ last_clicked_buttons = 0; ++ emit sendHaikuEvent(widget, new QMouseEvent(QEvent::MouseButtonDblClick, ++ QPoint(point.x,point.y), qt_button, qt_buttons, qt_mod)); ++ } else { ++ emit sendHaikuEvent(widget, new QMouseEvent(QEvent::MouseButtonPress, ++ QPoint(point.x,point.y), qt_button, qt_buttons, qt_mod)); ++ } ++// qDebug()<<"MouseDown() "<cursor().handle(); ++ if(curs) ++ SetViewCursor(curs); ++ else ++ SetViewCursor(B_CURSOR_SYSTEM_DEFAULT); ++ } ++ break; ++ case B_EXITED_VIEW: ++ break; ++ } ++ ++ uint32 h_mod=modifiers(); ++ uint32 h_buttons = last_down_buttons; ++ uint32 h_button = h_buttons; //TODO: only one button in per time ++ ++ Qt::MouseButton qt_button = translateMouseButton(h_button); ++ Qt::MouseButtons qt_buttons = translateMouseButtons(h_buttons); ++ Qt::KeyboardModifiers qt_mod = translateModifiers(h_mod); ++ ++ BPoint glob_pos = ConvertToScreen(point); ++ ++ haiku_global_mouse_x = glob_pos.x; ++ haiku_global_mouse_y = glob_pos.y; ++ ++ QWidget *widget = fWidget->mouseGrabber(); ++ if(!widget) ++ widget = fWidget; ++ ++ ++ /*QWidget *wat = QApplication::widgetAt(QPoint(glob_pos.x,glob_pos.y)); ++ ++ if(wat && wat!=widget) { ++ QPoint lpoint = wat->mapFromGlobal(QPoint(glob_pos.x,glob_pos.y)); ++ widget = wat; ++ point.x= lpoint.x(); ++ point.y= lpoint.y(); ++ }*/ ++ ++ emit sendHaikuEvent(widget, new QMouseEvent(QEvent::MouseMove, QPoint(point.x,point.y), Qt::NoButton, qt_buttons, qt_mod)); ++// qDebug()<<"MouseMove()"<what) { ++ default: ++ BView::MessageReceived(msg); ++ break; ++ } ++} ++ ++QtHaikuWindow::QtHaikuWindow(BRect frame, const char *title, window_look look, window_feel feel, uint32 flags) ++ : BWindow(frame, title, look, feel, flags) ++{ ++} ++ ++QtHaikuWindow::~QtHaikuWindow() ++{ ++} ++ ++void ++QtHaikuWindow::sendKeyEvent(QEvent::Type type, BMessage *msg) ++{ ++ int32 key = 0; ++ uint32 code = 0; ++ uint32 mod = modifiers(); ++ extern QTextCodec *qt_input_mapper; // from qapplication_haiku.cpp ++ QChar converted; ++ const char *bytes; ++ QString text; ++ ++ if ( msg ) { ++ if(msg->FindString("bytes", &bytes) == B_OK) { ++ if (qt_input_mapper) ++ text = qt_input_mapper->toUnicode(bytes, strlen(bytes), 0); ++ } ++ if(msg->FindInt32("key", &key) == B_OK) { ++ code = qt_keymapper_private()->translateKeyCode(key); ++ } ++ } ++ ++ if (text.isEmpty()) { ++ text.fromLatin1(bytes); ++ } ++ ++ Qt::KeyboardModifiers qt_mod = fView->translateModifiers(mod); ++ ++ QWidget *widget; ++ widget = QWidget::keyboardGrabber(); ++ if (!widget) { ++ if (QApplicationPrivate::popupWidgets != 0) { ++ widget = QApplication::activePopupWidget()->focusWidget(); ++ if (!widget) { ++ widget = QApplication::activePopupWidget(); ++ } ++ } else { ++ widget = QApplicationPrivate::focus_widget; ++ if (!widget) { ++ widget = fView->fWidget; ++ } ++ } ++ } ++ ++// qDebug() << "KeyEvent: " << code << " (" <sendHaikuEvent(widget, new QKeyEvent(type, code, qt_mod, text, false, text.length())); ++} ++ ++void ++QtHaikuWindow::DispatchMessage(BMessage *msg, BHandler *handler) ++{ ++ switch(msg->what) { ++ case B_UNMAPPED_KEY_DOWN: ++ case B_KEY_DOWN: ++ { ++ sendKeyEvent(QEvent::KeyPress, msg); ++ break; ++ } ++ case B_UNMAPPED_KEY_UP: ++ case B_KEY_UP: ++ { ++ sendKeyEvent(QEvent::KeyRelease, msg); ++ break; ++ } ++ default: ++ break; ++ } ++ BWindow::DispatchMessage(msg, handler); ++} ++ ++void QtHaikuWindow::MessageReceived(BMessage* msg) ++{ ++ switch(msg->what) { ++ case B_MOUSE_WHEEL_CHANGED: ++ { ++ float shift_x=0; ++ float shift_y=0; ++ if(msg->FindFloat("be:wheel_delta_x",&shift_x)!=B_OK) ++ shift_x = 0; ++ if(msg->FindFloat("be:wheel_delta_y",&shift_y)!=B_OK) ++ shift_y = 0; ++ ++ if(shift_x != 0 || shift_y !=0) { ++ BView *view = LastMouseMovedView(); ++ QtHaikuView *widget_view = (QtHaikuView*)view; ++ widget_view->sendWheelEvent(shift_x*120, shift_y*120); ++ } ++ break; ++ } ++ default: ++ BWindow::MessageReceived(msg); ++ break; ++ } ++} ++ ++void QtHaikuWindow::FrameResized(float width, float height) ++{ ++ QRect cr = fView->fWidget->geometry(); ++ ++ QSize widgetSize = fView->fWidget->size(); ++ QSize newSize = QSize(width+1, height+1); ++ if (widgetSize == newSize) ++ return; ++ ++ cr.setSize(newSize); ++ fView->fWidgetPrivate->data.crect = cr; ++ fView->fWidgetPrivate->data.fstrut_dirty = true; ++ emit fView->sendHaikuEvent(fView->fWidget, new QResizeEvent(newSize, widgetSize)); ++} ++ ++void QtHaikuWindow::FrameMoved(BPoint point) ++{ ++ QRect cr = fView->fWidget->geometry(); ++ QPoint oldPos = cr.topLeft(); ++ QPoint newCPos(point.x,point.y); ++ ++ if(oldPos==newCPos) ++ return; ++ ++ while (qApp->activePopupWidget()) ++ qApp->activePopupWidget()->close(); ++ ++ fView->fWidgetPrivate->data.fstrut_dirty = true; ++ ++ cr.moveTopLeft(newCPos); ++ fView->fWidgetPrivate->data.crect = cr; ++ ++ emit fView->sendHaikuEvent(fView->fWidget, new QMoveEvent(newCPos,oldPos)); ++} ++ ++void QtHaikuWindow::WindowActivated(bool active) ++{ ++ if (active) { ++ emit fView->sendSetActiveWindow(fView->fWidget); ++ } else { ++ while (qApp->activePopupWidget()) // App(window) become inactive - we must close all popup ++ qApp->activePopupWidget()->close(); ++ emit fView->sendSetActiveWindow(0); ++ } ++} ++ ++bool QtHaikuWindow::QuitRequested() ++{ ++ emit fView->sendCloseWindow(fView->fWidget); ++ return false; ++} ++ ++inline void QtHaikuWindow::setView(QtHaikuView *view) ++{ ++ fView = view; ++ AddChild(view); ++ ++ fView->MoveTo(0,0); ++ fView->ResizeTo(Bounds().Width(),Bounds().Height()); ++ fView->SetResizingMode(B_FOLLOW_ALL_SIDES); ++} ++ ++void QtHaikuWindow::updateWindowFlags(Qt::WindowFlags flags) ++{ ++ Qt::WindowType type = static_cast(int(flags & Qt::WindowType_Mask)) ; ++ ++ bool popup = (type == Qt::Popup); ++ bool splash = (type == Qt::SplashScreen); ++ bool dialog = (type == Qt::Dialog ++ || type == Qt::Sheet ++ || (flags & Qt::MSWindowsFixedSizeDialogHint)); ++// bool desktop = (type == Qt::Desktop); ++ bool tool = (type == Qt::Tool || type == Qt::Drawer); ++ bool tooltip = (type == Qt::ToolTip); ++ ++ window_look wlook = B_TITLED_WINDOW_LOOK; ++ window_feel wfeel = B_NORMAL_WINDOW_FEEL; ++ uint32 wflag = B_NO_WORKSPACE_ACTIVATION | B_NOT_ANCHORED_ON_ACTIVATE ; ++ ++ if(tool) { ++ wlook = B_FLOATING_WINDOW_LOOK; ++ wflag |= B_WILL_ACCEPT_FIRST_CLICK; ++ } ++ ++ if(splash) { ++ wlook = B_NO_BORDER_WINDOW_LOOK; ++ } ++ ++ if(popup) { ++ wlook = B_NO_BORDER_WINDOW_LOOK; ++ wflag |= B_WILL_ACCEPT_FIRST_CLICK|B_AVOID_FRONT|B_AVOID_FOCUS; ++ flags |= Qt::WindowStaysOnTopHint; ++ } ++ ++ if (dialog) { ++// if (q->parentWidget()) ++// wfeel = B_MODAL_SUBSET_WINDOW_FEEL; ++// else ++ //wfeel = B_MODAL_APP_WINDOW_FEEL; ++ } ++ ++ if (tooltip) { ++ wlook = B_NO_BORDER_WINDOW_LOOK; ++ wflag |= B_WILL_ACCEPT_FIRST_CLICK|B_AVOID_FOCUS; ++ flags |= Qt::WindowStaysOnTopHint; ++ } ++ ++ if (flags & Qt::FramelessWindowHint) ++ wlook = B_NO_BORDER_WINDOW_LOOK; ++ if (flags & Qt::MSWindowsFixedSizeDialogHint)// (dialog) ++ wflag |= B_NOT_RESIZABLE | B_NOT_ZOOMABLE; ++ ++ if (flags & Qt::CustomizeWindowHint){ ++ //if (flags & Qt::WindowTitleHint) ++ //{ }; ++ //if (flags & Qt::WindowSystemMenuHint) ++ //{ }; ++ if (!(flags & Qt::WindowMinimizeButtonHint)) ++ wflag |= B_NOT_MINIMIZABLE; ++ if (!(flags & Qt::WindowMaximizeButtonHint)) ++ wflag |= B_NOT_ZOOMABLE; ++ if (!(flags & Qt::WindowCloseButtonHint)) ++ wflag |= B_NOT_CLOSABLE; ++ //if (flags & Qt::WindowContextHelpButtonHint) ++ // exsty |= WS_EX_CONTEXTHELP; ++ } ++ ++ if (flags & Qt::WindowStaysOnTopHint) ++ wfeel = B_FLOATING_ALL_WINDOW_FEEL; ++ ++// if (flags & Qt::WindowStaysOnBottomHint) ++// wfeel = B_FLOATING_ALL_WINDOW_FEEL; ++ ++ SetLook(wlook); ++ SetFeel(wfeel); ++ SetFlags(wflag); ++} ++ ++// Qt reimplementation ++ ++void QWidgetPrivate::create_sys(WId window, bool initializeWindow, bool destroyOldWindow) ++{ ++ Q_Q(QWidget); ++// qDebug()<<"create_sys:"<windowType() == Qt::Desktop); ++ ++ BScreen bscreen(B_MAIN_SCREEN_ID); ++ BRect screen_frame = bscreen.Frame(); ++ ++ if (!window) // always initialize ++ initializeWindow = true; ++ ++ q->setAttribute(Qt::WA_WState_Created, false); ++ ++ if (desktop){ ++ } ++ ++ if (window) { // override the old window ++ if (destroyOldWindow) ++ destroyw = data.winid; ++ id = window; ++ nativeView = (QtHaikuView *)window; ++ ((QtHaikuWindow *)(window->Window()))->updateWindowFlags(data.window_flags); ++ } ++ else ++ if (desktop) { // desktop widget ++ if (!q->testAttribute(Qt::WA_DontShowOnScreen)) { ++ //popup = false; // force this flags off ++ data.crect.setRect(screen_frame.left,screen_frame.top,screen_frame.right,screen_frame.bottom); ++ } ++// id = GetDesktopWindow(); ++// setWinId(id); ++ } ++ else ++ { ++ if (topLevel) { // create top-level widget ++ int x=data.crect.left(), ++ y=data.crect.top(), ++ w=data.crect.width(), ++ h=data.crect.height(); ++ ++ const bool wasMoved = q->testAttribute(Qt::WA_Moved); ++ const bool wasResized = q->testAttribute(Qt::WA_Resized); ++ ++ if(!wasResized) { ++ w = screen_frame.right / 2; ++ h = (4 * screen_frame.bottom) / 10; ++ data.crect.setSize(QSize(w, h)); ++ } ++ ++ if(!wasMoved) { ++ srand(time(0)); ++ int dx = (screen_frame.right - w)/4; ++ int dy = (screen_frame.bottom - h)/4; ++ x = dx==0?0:rand() % dx + (dx/2); ++ y = dy==0?0:rand() % dy + (dy/2); ++ data.crect.moveTo(x,y); ++ } ++ ++ QString title = q->windowTitle(); ++ if (title.isEmpty()) ++ title = QFileInfo(QApplication::applicationFilePath()).fileName(); ++ nativeWindow = new QtHaikuWindow(BRect(x,y,x+w-1,y+h-1), title.toUtf8(), B_NO_BORDER_WINDOW_LOOK, B_NORMAL_WINDOW_FEEL, 0); ++ nativeWindow->updateWindowFlags(data.window_flags); ++ nativeView = new QtHaikuView(BRect(0,0,w,h), "RootView", B_FOLLOW_ALL_SIDES, B_WILL_DRAW); ++ nativeWindow->setView(nativeView); ++ } else { ++ nativeView = new QtHaikuView(BRect(data.crect.x(),data.crect.y(),data.crect.x()+data.crect.width(),data.crect.y()+data.crect.height()), ++ "WidgetView", B_FOLLOW_NONE, B_WILL_DRAW/* | B_NAVIGABLE*/); ++ q->parentWidget()->d_func()->nativeView->AddChild(nativeView); ++ nativeWindow = q->parentWidget()->d_func()->nativeWindow; ++ } ++ ++ nativeView->setWidget(q, this); ++ if (nativeView->LockLooper()){ ++ nativeView->SetViewColor(B_TRANSPARENT_32_BIT); ++ nativeView->UnlockLooper(); ++ } ++ if (q->isWindow()) { }//nativeWindow->Hide(); // BWindow created hidden (?) ++ else ++ nativeView->Hide(); ++ } ++ ++ setWinId(nativeView); ++ ++ if (desktop) { ++ q->setAttribute(Qt::WA_WState_Visible); ++ } else if (topLevel && !q->testAttribute(Qt::WA_DontShowOnScreen)) { ++/* RECT cr; ++ GetClientRect(id, &cr); ++ // one cannot trust cr.left and cr.top, use a correction POINT instead ++ POINT pt; ++ pt.x = 0; ++ pt.y = 0; ++ ClientToScreen(id, &pt); ++ ++ if (data.crect.width() == 0 || data.crect.height() == 0) { ++ data.crect = QRect(pt.x, pt.y, data.crect.width(), data.crect.height()); ++ } else { ++ data.crect = QRect(QPoint(pt.x, pt.y), ++ QPoint(pt.x + cr.right - 1, pt.y + cr.bottom - 1)); ++ } ++ ++ if (data.fstrut_dirty) { ++ // be nice to activeqt ++ updateFrameStrut(); ++ }*/ ++ } ++ ++ ++ q->setAttribute(Qt::WA_WState_Created); // accept move/resize events ++ q->setAttribute(Qt::WA_WState_Visible, false); ++ ++ if (window) { // got window from outside ++// if (IsWindowVisible(window)) ++// q->setAttribute(Qt::WA_WState_Visible); ++// else ++// q->setAttribute(Qt::WA_WState_Visible, false); ++ } ++ ++ if (extra && !extra->mask.isEmpty()) ++ setMask_sys(extra->mask); ++ ++ if (q->hasFocus() && q->testAttribute(Qt::WA_InputMethodEnabled)) { ++ q->setFocus(); ++ } ++ ++ //if (destroyw) { ++ //BWindow *win = destroyw->Window(); ++ //if(win->Lock()) { ++ // win->Quit(); ++ // win->Unlock(); ++ //} ++ //} ++ ++// if (q != qt_tablet_widget && QWidgetPrivate::mapper) ++// qt_tablet_init(); ++ ++ if (q->testAttribute(Qt::WA_DropSiteRegistered)) ++ registerDropSite(true); ++ ++// if (maybeTopData() && maybeTopData()->opacity != 255) ++// q->setWindowOpacity(maybeTopData()->opacity/255.); ++ ++ if (topLevel && (data.crect.width() == 0 || data.crect.height() == 0)) { ++ q->setAttribute(Qt::WA_OutsideWSRange, true); ++ } ++ ++ if (!topLevel && q->testAttribute(Qt::WA_NativeWindow) && q->testAttribute(Qt::WA_Mapped)) { ++ nativeView->Window()->Show(); ++ } ++ ++// qDebug() << "=< QWidgetPrivate::create_sys(); QWidget = "<< q ; ++} ++ ++void QWidgetPrivate::hide_sys() ++{ ++ Q_Q(QWidget); ++ deactivateWidgetCleanup(); ++ Q_ASSERT(q->testAttribute(Qt::WA_WState_Created)); ++ ++ if (q->isWindow()) ++ nativeWindow->Hide(); ++ else ++ nativeView->Hide(); ++ q->setAttribute(Qt::WA_Mapped, false); ++} ++ ++void QWidgetPrivate::show_sys() ++{ ++ Q_Q(QWidget); ++ Q_ASSERT(q->testAttribute(Qt::WA_WState_Created)); ++ ++ if (q->testAttribute(Qt::WA_OutsideWSRange)){ ++ qDebug("Qt::WA_OutsideWSRange"); ++ return; ++ } ++ ++ if (q->testAttribute(Qt::WA_DontShowOnScreen)) { ++ qDebug("Qt::WA_DontShowOnScreen"); ++ invalidateBuffer(q->rect()); ++ return; ++ } ++ ++ //hack for native resize holder for window ++ if(q->inherits("QSizeGrip")) { ++ nativeView->Window()->SetLook(B_DOCUMENT_WINDOW_LOOK); ++ q->setAttribute(Qt::WA_WState_Visible, false); ++ return; ++ } ++ ++ if (q->isWindow()) { ++ if (q->isMinimized()) { ++ // ### TODO: Should handle ++ } else if (q->isMaximized()) { ++ // ### TODO: Should handle ++ } ++ } ++ if (q->testAttribute(Qt::WA_ShowWithoutActivating) ++ || (q->windowType() == Qt::Popup) ++ || (q->windowType() == Qt::ToolTip) ++ || (q->windowType() == Qt::Tool)) { ++ // ### TODO: Should Handle ++ } ++ ++// if (data.fstrut_dirty) ++// updateFrameStrut(); ++ if (q->isWindow()) ++ nativeWindow->Show(); ++ else ++ nativeView->Show(); ++ ++ q->setAttribute(Qt::WA_Mapped); ++ ++ invalidateBuffer(q->rect()); ++} ++ ++void QWidgetPrivate::setParent_sys(QWidget* parent, Qt::WindowFlags f) ++{ ++ Q_Q(QWidget); ++ ++ bool wasCreated = q->testAttribute(Qt::WA_WState_Created); ++ if (q->isVisible() && q->parentWidget() && parent != q->parentWidget()) ++ q->parentWidget()->d_func()->invalidateBuffer(q->geometry()); ++ ++ WId old_winid = data.winid; ++ bool old_w = q->isWindow(); ++ bool widgetTypeChanged = false; ++ ++ if (wasCreated && q->isVisible()) { ++ if (q->isWindow()) ++ nativeWindow->Hide(); ++ else ++ nativeView->Hide(); ++ } ++ ++ bool dropSiteWasRegistered = false; ++ if (q->testAttribute(Qt::WA_DropSiteRegistered)) { ++ dropSiteWasRegistered = true; ++ q->setAttribute(Qt::WA_DropSiteRegistered, false); // ole dnd unregister (we will register again below) ++ } ++ ++ if ((q->windowType() == Qt::Desktop)) ++ old_winid = 0; ++ ++ QObjectPrivate::setParent_helper(parent); ++ ++ bool explicitlyHidden = q->testAttribute(Qt::WA_WState_Hidden) && q->testAttribute(Qt::WA_WState_ExplicitShowHide); ++ ++ data.window_flags = f; ++ data.fstrut_dirty = true; ++ q->setAttribute(Qt::WA_WState_Created, false); ++ q->setAttribute(Qt::WA_WState_Visible, false); ++ q->setAttribute(Qt::WA_WState_Hidden, false); ++ adjustFlags(data.window_flags, q); ++ widgetTypeChanged = old_w != q->isWindow(); // widget type changed (widget<->window) ++ ++ if (wasCreated){ ++ if (parent && !parent->testAttribute(Qt::WA_WState_Created)) ++ parent->createWinId(); ++ ++ if (widgetTypeChanged){ ++ ++ BWindow *win = nativeView->Window(); ++ if (win && win->LockLooper()){ ++ nativeView->RemoveSelf(); ++ if (old_w) ++ win->Quit(); ++ else ++ win->UnlockLooper(); ++ } ++ ++ if (old_w){ //was Window, become Widget(non-Window) ++ bool wasLocked = parent->nativeView()->Looper()->IsLocked(); ++ if (wasLocked || parent->nativeView()->LockLooper() ) ++ { ++ parent->nativeView()->AddChild(nativeView); ++ nativeView->Hide(); ++ ++ nativeView->SetResizingMode(B_FOLLOW_NONE); ++ nativeView->MoveTo(data.crect.x(),data.crect.y()); ++ nativeView->ResizeTo(data.crect.x()+data.crect.width(),data.crect.y()+data.crect.height()); ++ if (!wasLocked) ++ parent->nativeView()->UnlockLooper(); ++ } ++ nativeWindow = (QtHaikuWindow *)parent->nativeView()->Window(); ++ ++ q->setAttribute(Qt::WA_WState_Created, true); ++ } ++ else{// become Window (topLevel) ++ createWinId(); ++ ++ nativeView->RemoveSelf(); //Delete new view created in create_sys. We need only BWindow ++ delete nativeView; ++ ++ nativeView = (QtHaikuView *)old_winid; ++ nativeWindow->setView(nativeView); ++ ++ nativeView->Show(); ++ setWinId(nativeView); ++ } ++ } ++ else // widgetTypeChanged == false ++ { ++ if (q->isWindow()) ++ nativeWindow->updateWindowFlags(data.window_flags); ++ else{//already created widget change parent widget from one to another ++ BWindow *win = nativeView->Window(); ++ if (win && win->LockLooper()){ ++ nativeView->RemoveSelf(); ++ win->UnlockLooper(); ++ } ++ ++ if (parent->nativeView()->LockLooper()){ ++ parent->nativeView()->AddChild(nativeView); ++ parent->nativeView()->UnlockLooper(); ++ nativeWindow = (QtHaikuWindow *)parent->nativeView()->Window(); ++ } ++ } ++ q->setAttribute(Qt::WA_WState_Created, true); ++ } ++ } ++ else ++ if (!q->isWindow() && parent->testAttribute(Qt::WA_WState_Created)) ++ createWinId(); ++ ++ if (q->isWindow() || (!parent || parent->isVisible()) || explicitlyHidden) ++ q->setAttribute(Qt::WA_WState_Hidden); ++ q->setAttribute(Qt::WA_WState_ExplicitShowHide, explicitlyHidden); ++ ++ if (extra && !extra->mask.isEmpty()) { ++ QRegion r = extra->mask; ++ extra->mask = QRegion(); ++ q->setMask(r); ++ } ++ if (extra && extra->topextra && !extra->topextra->caption.isEmpty()) { ++ //setWindowIcon_sys(true); ++ setWindowTitle_helper(extra->topextra->caption); ++ } ++ ++ if (q->testAttribute(Qt::WA_AcceptDrops) || dropSiteWasRegistered ++ || (!q->isWindow() && q->parentWidget() && q->parentWidget()->testAttribute(Qt::WA_DropSiteRegistered))) ++ q->setAttribute(Qt::WA_DropSiteRegistered, true); ++ ++ invalidateBuffer(q->rect()); ++} ++ ++void QWidgetPrivate::raise_sys() ++{ ++// Q_Q(QWidget); ++// qDebug() << "Unimplemented: QWidgetPrivate::raise_sys() "<< q ; ++} ++ ++void QWidgetPrivate::lower_sys() ++{ ++// Q_Q(QWidget); ++// qDebug() << "Unimplemented: QWidgetPrivate::lower_sys() "<< q ; ++} ++ ++void QWidgetPrivate::stackUnder_sys(QWidget* widget) ++{ ++// Q_Q(QWidget); ++// qDebug() << "Unimplemented: QWidgetPrivate::stackUnder_sys() "<< q << " top:"<isWindow() && nativeWindow) ++ nativeWindow->SetTitle(title.toUtf8()); ++} ++ ++void QWidgetPrivate::updateSystemBackground() ++{ ++// Q_Q(QWidget); ++// qDebug() << "Unimplemented: QWidgetPrivate::UpdateSystemBackground() "<< q ; ++} ++ ++void QWidgetPrivate::setModal_sys() ++{ ++ Q_Q(QWidget); ++// qDebug() << "Unimplemented: QWidgetPrivate::setModal_sys() "<< q ; ++} ++ ++void QWidgetPrivate::setConstraints_sys() ++{ ++ Q_Q(QWidget); ++// qDebug() << "QWidgetPrivate::setConstraints_sys() "<< q ; ++ if (!q->isWindow() || !q->testAttribute(Qt::WA_WState_Created) || !extra) ++ return; ++ float minw = 0, minh = 0; ++ float maxw = 10000, maxh = 10000; ++ if (extra->minw > 0 || extra->minh > 0) { ++ // add minimum size hints ++ minw = qMin(10000, extra->minw); ++ minh = qMin(10000, extra->minh); ++ } ++ if (extra->maxw < QWIDGETSIZE_MAX || extra->maxh < QWIDGETSIZE_MAX) { ++ // add maximum size hints ++ maxw = qMin(10000, extra->maxw); ++ maxh = qMin(10000, extra->maxh); ++ } ++ nativeWindow->SetSizeLimits(minw,maxw,minh,maxh); ++} ++ ++void QWidgetPrivate::setCursor_sys(const QCursor& cursor) ++{ ++ Q_UNUSED(cursor); ++} ++ ++void QWidgetPrivate::unsetCursor_sys() ++{ ++} ++ ++void QWidgetPrivate::setWSGeometry(bool dontShow, const QRect &) ++{ ++ Q_UNUSED(dontShow); ++ Q_Q(QWidget); ++// qDebug() << "Unimplemented: QWidgetPrivate::setWSGeomerty() "<< q ; ++} ++ ++void QWidgetPrivate::setGeometry_sys(int x,int y,int w,int h,bool isMove) ++{ ++ Q_Q(QWidget); ++// qDebug()<<"setGeometry_sys() "<isWindow()) ++ { ++ nativeFrame = nativeView->Window()->Frame(); ++ } ++ else ++ { ++ if(nativeView->LockLooper()) { ++ nativeFrame = nativeView->Frame(); ++ nativeView->UnlockLooper(); ++ } ++ } ++ ++ QPoint oldPos(nativeFrame.left, nativeFrame.top); ++ QPoint newPos(x,y); ++ QSize oldSize(nativeFrame.IntegerWidth(), nativeFrame.IntegerHeight()); ++ QSize newSize(w,h); ++ ++ isMove = oldPos != newPos; ++ bool isResize = oldSize != newSize; ++ ++ if (!isResize && !isMove) ++ return; ++ ++ data.crect.setRect(x, y, w, h); ++ ++ QTLWExtra *tlwExtra = q->window()->d_func()->maybeTopData(); ++ const bool inTopLevelResize = tlwExtra ? tlwExtra->inTopLevelResize : false; ++ ++ if (q->isWindow()){ ++ if (w == 0 || h == 0) { ++ q->setAttribute(Qt::WA_OutsideWSRange, true); ++ if (q->isVisible() && q->testAttribute(Qt::WA_Mapped)) ++ hide_sys(); ++ } else if (q->isVisible() && q->testAttribute(Qt::WA_OutsideWSRange)) { ++ q->setAttribute(Qt::WA_OutsideWSRange, false); ++ ++ // put the window in its place and show it ++ if (data.winid){ ++ nativeView->Window()->MoveTo(x, y); ++ nativeView->Window()->ResizeTo(w-1, h-1); ++ } ++ setConstraints_sys();//do_size_hints(q, extra); ++ show_sys(); ++ } else { ++ if (isMove){ ++ nativeView->Window()->MoveTo(x, y); ++ } ++ if (isResize){ ++ nativeView->Window()->ResizeTo(w-1, h-1); ++ } ++ } ++ updateFrameStrut(); ++ } else { //not Window ++ if (isResize) { ++ if(nativeView->LockLooper()) { ++ nativeView->ResizeTo(w, h); ++ nativeView->UnlockLooper(); ++ } ++ } ++ if (isMove) ++ { ++ if(nativeView->LockLooper()) { ++ nativeView->MoveTo(x, y); ++ nativeView->UnlockLooper(); ++ } ++ } ++ } ++ ++ if (q->isWindow() && q->isVisible() && isResize && !inTopLevelResize) { ++ invalidateBuffer(q->rect()); //after the resize ++ } ++ ++ if (q->isVisible()) { ++ if (isMove && q->pos() != oldPos) { ++ QMoveEvent e(q->pos(), oldPos); ++ QApplication::sendEvent(q, &e); ++ } ++ if (isResize) { ++// static bool slowResize = qgetenv("QT_SLOW_TOPLEVEL_RESIZE").toInt(); ++ // If we have a backing store with static contents, we have to disable the top-level ++ // resize optimization in order to get invalidated regions for resized widgets. ++ // The optimization discards all invalidateBuffer() calls since we're going to ++ // repaint everything anyways, but that's not the case with static contents. ++// const bool setTopLevelResize = !slowResize && q->isWindow() && extra && extra->topextra ++// && !extra->topextra->inTopLevelResize ++// && (!extra->topextra->backingStore ++// || !extra->topextra->backingStore->hasStaticContents()); ++// if (setTopLevelResize) ++// extra->topextra->inTopLevelResize = true; ++ QResizeEvent e(q->size(), oldSize); ++ QApplication::sendEvent(q, &e); ++// if (setTopLevelResize) ++ // extra->topextra->inTopLevelResize = false; ++ } ++ } else { ++ if (isMove && q->pos() != oldPos) ++ q->setAttribute(Qt::WA_PendingMoveEvent, true); ++ if (isResize) ++ q->setAttribute(Qt::WA_PendingResizeEvent, true); ++ } ++} ++ ++void QWidgetPrivate::registerDropSite(bool) ++{ ++ //debugprint(1, "Unimplemented: QWidgetPrivate::registerDropSite\n"); ++} ++ ++void QWidgetPrivate::setWindowOpacity_sys(qreal) ++{ ++ //debugprint(1, "Unimplemented: QWidgetPrivate::setWindowOpacity_sys \n"); ++} ++/* ++void QWidgetPrivate::createTLExtra() ++{ ++// fprintf(stderr, "Unimplemented: QWidgetPrivate::createTLExtra\n"); ++} ++*/ ++void QWidgetPrivate::deleteSysExtra() ++{ ++// debugprint(1, "Unimplemented: QWidgetPrivate::deleteSysExtra\n"); ++} ++ ++void QWidgetPrivate::deleteTLSysExtra() ++{ ++ //debugprint(1, "Unimplemented: QWidgetPrivate::deleteTLSysExtra\n"); ++} ++ ++void QWidgetPrivate::createSysExtra() ++{ ++// debugprint(1, "Unimplemented: QWidgetPrivate::createSysExtra\n"); ++} ++ ++void QWidgetPrivate::createTLSysExtra() ++{ ++// debugprint(1, "Unimplemented: QWidgetPrivate::createTLSysExtra\n"); ++} ++ ++void QWidgetPrivate::setWindowIconText_sys(const QString&) ++{ ++// debugprint(1, "Unimplemented: QWidgetPrivate::setWindowIconText_sys \n"); ++} ++ ++void QWidgetPrivate::scroll_sys(int,int, const QRect& r) ++{ ++// debugprint(1, "Reimplemented: QWidgetPrivate::scroll(int,int,const QRect&\n"); ++ Q_Q(QWidget); ++ q->update(r); ++} ++ ++void QWidgetPrivate::scroll_sys(int, int) ++{ ++// debugprint(1, "Reimplemented: QWidgetPrivate::scroll(int,int)\n"); ++ Q_Q(QWidget); ++ q->update(); ++} ++ ++void QWidgetPrivate::updateFrameStrut() ++{ ++// debugprint(5, "Reimplemented: QWidgetPrivate::updateFrameStrut\n"); ++ QTLWExtra* top = this->topData(); ++ if(nativeView->LockLooper()) { ++ BRect frame = nativeView->Bounds(); ++ top->frameStrut.setCoords(frame.left, frame.top, frame.right, frame.bottom); ++ nativeView->UnlockLooper(); ++ } ++ data.fstrut_dirty = false; ++} ++ ++void QWidgetPrivate::setFocus_sys() ++{ ++} ++ ++QWindowSurface *QWidgetPrivate::createDefaultWindowSurface_sys() ++{ ++ Q_Q(QWidget); ++ return new QRasterWindowSurface(q); ++} ++ ++void QWidgetPrivate::setMask_sys(const QRegion ®ion) ++{ ++ Q_UNUSED(region); ++// debugprint(1, "Unimplemented: QWidgetPrivate::setMask_sys()\n"); ++} ++ ++int QWidget::metric(PaintDeviceMetric m) const ++{ ++//qDebug() << "QWidget::metric("<< m <<")"; ++ int val = 0; ++ if (m == PdmWidth) { ++ val = data->crect.width(); ++ } else if (m == PdmHeight) { ++ val = data->crect.height(); ++ } else { ++ switch (m) { ++ case PdmDpiX: ++ case PdmPhysicalDpiX: ++ case PdmDpiY: ++ case PdmPhysicalDpiY: ++ val = 72; ++ break; ++ case PdmWidthMM: ++ case PdmHeightMM: ++ case PdmNumColors: ++ case PdmDepth: ++// qWarning("QWidget::metric Unknown metric type requested\n"); ++ break; ++ default: ++ val = 0; ++ qWarning("QWidget::metric: Invalid metric command"); ++ } ++ } ++ ++ return val; ++} ++ ++QPaintEngine *QWidget::paintEngine() const ++{ ++ return 0; ++} ++ ++QPoint QWidget::mapToGlobal(const QPoint &pos) const ++{ ++ //Q_D(QWidget); ++// qDebug()<<"QWidget::mapToGlobal() pos:"<crect.topLeft(); ++ //cannot trust that !isWindow() implies parentWidget() before create ++ return (isWindow() || !parentWidget()) ? p : parentWidget()->mapToGlobal(p); ++ } ++ ++ if (nativeView()->LockLooper()) ++ { ++ BPoint p = nativeView()->ConvertToScreen(BPoint(pos.x(),pos.y())); ++ nativeView()->UnlockLooper(); ++ return QPoint(p.x,p.y); ++ } ++ return QPoint(); // ??? ++} ++ ++QPoint QWidget::mapFromGlobal(const QPoint &pos) const ++{ ++// qDebug()<<"QWidget::mapFromGlobal() pos:"<mapFromGlobal(pos); ++ return p - data->crect.topLeft(); ++ } ++ ++ if (nativeView()->LockLooper()) ++ { ++ BPoint p = nativeView()->ConvertFromScreen(BPoint(pos.x(),pos.y())); ++ nativeView()->UnlockLooper(); ++ return QPoint(p.x,p.y); ++ } ++ return QPoint(); // ??? ++} ++ ++void QWidget::activateWindow() ++{ ++ Q_D(QWidget); ++ if (isWindow()) { ++ d->nativeView->Window()->Activate(); ++ } ++} ++ ++void QWidget::setWindowState(Qt::WindowStates newstate) ++{ ++// qDebug() << "QWidgetPrivate::setWindowState() "<< this<<" "<topData()->normalGeometry = geometry(); ++ if (isVisible() && !(newstate & Qt::WindowMinimized)) { ++//TODO: Qt::WindowMaximized not supported yet. ++ d->nativeView->Window()->Show(); ++ ++ if (!(newstate & Qt::WindowFullScreen)) { ++ QRect r = d->topData()->normalGeometry; ++ if (!(newstate & Qt::WindowMaximized) && r.width() >= 0) { ++ if (pos() != r.topLeft() || size() !=r.size()) { ++ d->topData()->normalGeometry = QRect(0,0,-1,-1); ++ setGeometry(r); ++ } ++ } ++ } else { ++ d->updateFrameStrut(); ++ } ++ } ++ } ++ ++ // Qt::WindowFullScreen ++ if ((oldstate & Qt::WindowFullScreen) != (newstate & Qt::WindowFullScreen)) { ++ if (newstate & Qt::WindowFullScreen) { // save current window flags and geometry and go to FullScreen ++ if (d->topData()->normalGeometry.width() < 0 && !(oldstate & Qt::WindowMaximized)) ++ d->topData()->normalGeometry = geometry(); ++ d->topData()->savedFlags = d->data.window_flags; ++ ++ ++ d->data.window_flags |= Qt::SplashScreen; ++ d->nativeWindow->updateWindowFlags(d->data.window_flags); ++ ++ QRect r = qApp->desktop()->screenGeometry(this); ++ d->nativeView->Window()->Zoom(BPoint(r.left(),r.top()),r.width(),r.height()); ++ d->updateFrameStrut(); ++ } ++ else { //back from FullScreen (to saved flags and geomerty) ++ d->data.window_flags = d->topData()->savedFlags; ++ d->nativeWindow->updateWindowFlags(d->data.window_flags); ++ ++ if (!(newstate & Qt::WindowMaximized)) { ++ QRect r = d->topData()->normalGeometry; ++ d->topData()->normalGeometry = QRect(0,0,-1,-1); ++ if (r.isValid()) ++ setGeometry(r); ++ } ++ d->updateFrameStrut(); ++ } ++ } ++ } ++ ++ //Qt::WindowMinimized ++ if ((oldstate & Qt::WindowMinimized) != (newstate & Qt::WindowMinimized)) { ++ if (isVisible()) ++//TODO: Qt::WindowMinimized state changed... ++ d->nativeView->Window()->Minimize((newstate & Qt::WindowMinimized) ? true : ++ (newstate & Qt::WindowMaximized) ? false : false); ++ } ++ ++ data->window_state = newstate; ++ QWindowStateChangeEvent e(oldstate); ++ QApplication::sendEvent(this, &e); ++} ++ ++void QWidget::grabMouse() ++{ ++ if (mouseGrb) ++ mouseGrb->releaseMouse(); ++ mouseGrb = this; ++} ++ ++void QWidget::grabMouse(const QCursor &cursor) ++{ ++ Q_UNUSED(cursor); ++ if (mouseGrb) ++ mouseGrb->releaseMouse(); ++ mouseGrb = this; ++} ++ ++void QWidget::releaseMouse() ++{ ++ if(mouseGrb == this) { ++ mouseGrb = 0; ++ } ++} ++ ++QWidget *QWidget::mouseGrabber() ++{ ++ return mouseGrb; ++} ++ ++void QWidget::grabKeyboard() ++{ ++ if (keyboardGrb) ++ keyboardGrb->releaseKeyboard(); ++ keyboardGrb = this; ++} ++ ++void QWidget::releaseKeyboard() ++{ ++ if (keyboardGrb == this) { ++ keyboardGrb = 0; ++ } ++} ++ ++QWidget *QWidget::keyboardGrabber() ++{ ++ return keyboardGrb; ++} ++ ++void QWidget::destroy(bool destroyWindow, bool destroySubWindows) ++{ ++ Q_D(QWidget); ++// qDebug() << "Reimplemented: QWidgetPrivate::destroy() "<< this ; ++ if (!isWindow() && parentWidget()) ++ parentWidget()->d_func()->invalidateBuffer(geometry()); ++ d->deactivateWidgetCleanup(); ++ if (testAttribute(Qt::WA_WState_Created)) { ++ setAttribute(Qt::WA_WState_Created, false); ++ QObjectList childList = children(); ++ for (int i = 0; i < childList.size(); ++i) { // destroy all widget children ++ register QObject *obj = childList.at(i); ++ if (obj->isWidgetType()) ++ static_cast(obj)->destroy(destroySubWindows, ++ destroySubWindows); ++ } ++ ++ if (mouseGrb == this) ++ releaseMouse(); ++ ++ if (keyboardGrb == this) ++ releaseKeyboard(); ++ ++// if (testAttribute(Qt::WA_ShowModal)) // just be sure we leave modal ++// QApplicationPrivate::leaveModal(this); ++// else ++ if ((windowType() == Qt::Popup)) ++ qApp->d_func()->closePopup(this); ++ ++ if (isWindow()) { ++ if ((windowType() != Qt::Desktop) && destroyWindow){ ++ BWindow *win = d->nativeView->Window(); ++ ++ if (win->LockLooper()){ ++ for (int i =0;i<=win->CountChildren()-1;i++){ ++ BView *w = win->ChildAt(i); ++ w->RemoveSelf(); ++ delete w; ++ } ++ win->Quit(); ++ } ++ } ++ } else { ++ BWindow *win =d->nativeView->Window(); ++ bool wasLocked = win->Looper()->IsLocked(); ++ if (win && (wasLocked || win->LockLooper()) ){ ++ d->nativeView->RemoveSelf(); ++ if (!wasLocked) ++ win->UnlockLooper(); ++ } ++ delete d->nativeView; ++ } ++ ++ d->nativeView = NULL; ++ d->nativeWindow = NULL; ++ d->setWinId(0); ++ } ++} ++ ++BView* QWidget::nativeView() const ++{ ++ Q_D(const QWidget); ++ return d->nativeView; ++} +diff -rupN qt-everywhere-opensource-src-4.7.3/src/gui/kernel/qwidget_haiku.h qt-everywhere-opensource-src-4.7.3_haiku/src/gui/kernel/qwidget_haiku.h +--- qt-everywhere-opensource-src-4.7.3/src/gui/kernel/qwidget_haiku.h 1970-01-01 00:00:00.000000000 +0000 ++++ qt-everywhere-opensource-src-4.7.3_haiku/src/gui/kernel/qwidget_haiku.h 2011-06-13 22:06:43.334495744 +0000 +@@ -0,0 +1,105 @@ ++#ifndef QWIDGET_HAIKU_H ++#define QWIDGET_HAIKU_H ++ ++#include ++#include ++#include ++#include "qevent.h" ++ ++#include "qwidget.h" ++//#include "qwidget_p.h" ++//#include "qtextcodec.h" ++ ++//#include ++//#include "qevent_p.h" ++//#include "private/qwindowsurface_raster_p.h" ++//#include "qapplication.h" ++//#include "qfileinfo.h" ++ ++ ++QT_BEGIN_HEADER ++ ++QT_BEGIN_NAMESPACE ++ ++QT_MODULE(Gui) ++ ++class QWidgetPrivate; ++ ++class QtHaikuView : public QObject, public BView ++{ ++ Q_OBJECT ++ ++public: ++ QtHaikuView(BRect frame, const char *name, uint32 resizingMode, uint32 flags); ++ ~QtHaikuView(); ++ ++ virtual void MessageReceived(BMessage* msg); ++ virtual void FrameResized(float width, float height); ++ virtual void MouseDown(BPoint point); ++ virtual void MouseUp(BPoint point); ++ virtual void MouseMoved(BPoint where, uint32 code, const BMessage *message); ++ virtual void Hide(); ++ virtual void Show(); ++ virtual void Draw(BRect rect); ++ ++ inline void setWidget(QWidget *widget, QWidgetPrivate *widgetPrivate); ++ void sendWheelEvent(int delta_x, int delta_y); ++ ++ Qt::KeyboardModifiers translateModifiers(uint32 s); ++ bool isVisible; ++Q_SIGNALS: ++ void sendHaikuEvent(QObject *receiver, QEvent *event); ++ void sendUpdateWidget(); ++ void sendUpdateWidgetRect(QRect r); ++ void sendResizeWidget(int width, int height); ++ void sendMoveWidget(int x, int y); ++ void sendSetActiveWindow(QWidget *widget); ++ void sendCloseWindow(QWidget *widget); ++ ++private: ++ friend class QtHaikuWindow; ++ Qt::MouseButton translateMouseButton(uint32 s); ++ Qt::MouseButtons translateMouseButtons(uint32 s); ++ ++ QWidget* fWidget; ++ QWidgetPrivate* fWidgetPrivate; ++ ++ int last_down_buttons; ++ int last_clicked_buttons; ++ int last_mouse_x; ++ int last_mouse_y; ++ ++ bigtime_t last_click_time; ++ bigtime_t last_draw_event; ++}; ++ ++class QtHaikuWindow : public BWindow ++{ ++public: ++ QtHaikuWindow(BRect frame, const char *title, window_look look, window_feel feel, uint32 flags); ++ ~QtHaikuWindow(); ++ ++ void FrameResized(float width, float height); ++ void FrameMoved(BPoint point); ++ void MessageReceived(BMessage* msg); ++ virtual void DispatchMessage(BMessage *, BHandler *); ++ virtual void WindowActivated(bool active); ++ virtual bool QuitRequested(); ++ virtual void Hide(); ++ virtual void Show(); ++ ++ inline void setView(QtHaikuView *view); ++ ++ void sendKeyEvent(QEvent::Type type, BMessage *msg); ++ bool isVisible; ++ bool inDestroy; ++ void updateWindowFlags(Qt::WindowFlags f); ++private: ++ QtHaikuView *fView; ++}; ++ ++QT_END_NAMESPACE ++ ++QT_END_HEADER ++ ++#endif +diff -rupN qt-everywhere-opensource-src-4.7.3/src/gui/kernel/qwidget_p.h qt-everywhere-opensource-src-4.7.3_haiku/src/gui/kernel/qwidget_p.h +--- qt-everywhere-opensource-src-4.7.3/src/gui/kernel/qwidget_p.h 2011-03-30 05:19:04.055836672 +0000 ++++ qt-everywhere-opensource-src-4.7.3_haiku/src/gui/kernel/qwidget_p.h 2011-06-13 22:06:43.337117184 +0000 +@@ -877,6 +877,9 @@ public: + void s60UpdateIsOpaque(); + void reparentChildren(); + void registerTouchWindow(); ++#elif defined(Q_WS_HAIKU) // <--------------------------------------------------------- HAIKU ++ QtHaikuWindow *nativeWindow; ++ QtHaikuView *nativeView; + #endif + + }; +diff -rupN qt-everywhere-opensource-src-4.7.3/src/gui/kernel/qwindowdefs.h qt-everywhere-opensource-src-4.7.3_haiku/src/gui/kernel/qwindowdefs.h +--- qt-everywhere-opensource-src-4.7.3/src/gui/kernel/qwindowdefs.h 2011-03-30 05:19:04.046923776 +0000 ++++ qt-everywhere-opensource-src-4.7.3_haiku/src/gui/kernel/qwindowdefs.h 2011-06-13 22:06:43.338952192 +0000 +@@ -110,6 +110,10 @@ typedef long WId; + #include + #endif // Q_WS_WIN + ++#if defined(Q_WS_HAIKU) ++#include ++#endif ++ + #if defined(Q_WS_X11) + + typedef struct _XDisplay Display; +diff -rupN qt-everywhere-opensource-src-4.7.3/src/gui/kernel/qwindowdefs_haiku.h qt-everywhere-opensource-src-4.7.3_haiku/src/gui/kernel/qwindowdefs_haiku.h +--- qt-everywhere-opensource-src-4.7.3/src/gui/kernel/qwindowdefs_haiku.h 1970-01-01 00:00:00.000000000 +0000 ++++ qt-everywhere-opensource-src-4.7.3_haiku/src/gui/kernel/qwindowdefs_haiku.h 2011-06-13 22:06:43.341311488 +0000 +@@ -0,0 +1,72 @@ ++/**************************************************************************** ++** ++** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). ++** Contact: Qt Software Information (qt-info@nokia.com) ++** ++** This file is part of the QtGui module of the Qt Toolkit. ++** ++** $QT_BEGIN_LICENSE:LGPL$ ++** Commercial Usage ++** Licensees holding valid Qt Commercial licenses may use this file in ++** accordance with the Qt Commercial License Agreement provided with the ++** Software or, alternatively, in accordance with the terms contained in ++** a written agreement between you and Nokia. ++** ++** GNU Lesser General Public License Usage ++** Alternatively, this file may be used under the terms of the GNU Lesser ++** General Public License version 2.1 as published by the Free Software ++** Foundation and appearing in the file LICENSE.LGPL included in the ++** packaging of this file. Please review the following information to ++** ensure the GNU Lesser General Public License version 2.1 requirements ++** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ++** ++** In addition, as a special exception, Nokia gives you certain ++** additional rights. These rights are described in the Nokia Qt LGPL ++** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this ++** package. ++** ++** GNU General Public License Usage ++** Alternatively, this file may be used under the terms of the GNU ++** General Public License version 3.0 as published by the Free Software ++** Foundation and appearing in the file LICENSE.GPL included in the ++** packaging of this file. Please review the following information to ++** ensure the GNU General Public License version 3.0 requirements will be ++** met: http://www.gnu.org/copyleft/gpl.html. ++** ++** If you are unsure which license is appropriate for your use, please ++** contact the sales department at qt-sales@nokia.com. ++** $QT_END_LICENSE$ ++** ++****************************************************************************/ ++ ++#ifndef QWINDOWDEFS_HAIKU_H ++#define QWINDOWDEFS_HAIKU_H ++ ++#include ++ ++QT_BEGIN_HEADER ++ ++QT_BEGIN_NAMESPACE ++ ++QT_MODULE(Gui) ++ ++QT_END_NAMESPACE ++#ifndef BUILD_WEBKIT ++#include ++#include ++#include ++#include ++#include ++#include ++#else ++class BView; ++#endif ++typedef BView *WId; ++ ++QT_BEGIN_NAMESPACE ++//? ++QT_END_NAMESPACE ++ ++QT_END_HEADER ++ ++#endif // QWINDOWDEFS_HAIKU_H +diff -rupN qt-everywhere-opensource-src-4.7.3/src/gui/painting/painting.pri qt-everywhere-opensource-src-4.7.3_haiku/src/gui/painting/painting.pri +--- qt-everywhere-opensource-src-4.7.3/src/gui/painting/painting.pri 2011-03-30 05:19:07.043515904 +0000 ++++ qt-everywhere-opensource-src-4.7.3_haiku/src/gui/painting/painting.pri 2011-06-13 22:06:43.343408640 +0000 +@@ -164,7 +164,7 @@ unix:!mac:!symbian { + painting/qprinterinfo_unix.cpp + } + +-win32|x11|mac|embedded|symbian { ++win32|x11|mac|embedded|symbian|haiku { + SOURCES += painting/qbackingstore.cpp + HEADERS += painting/qbackingstore_p.h + } +@@ -248,6 +248,12 @@ symbian { + QMAKE_CXXFLAGS.ARMCC *= -O3 + } + ++haiku { ++ SOURCES += \ ++# painting/qpaintdevice_haiku.cpp \ ++ painting/qcolormap_haiku.cpp ++} ++ + NEON_SOURCES += painting/qdrawhelper_neon.cpp + NEON_HEADERS += painting/qdrawhelper_neon_p.h + NEON_ASM += ../3rdparty/pixman/pixman-arm-neon-asm.S painting/qdrawhelper_neon_asm.S +diff -rupN qt-everywhere-opensource-src-4.7.3/src/gui/painting/qcolormap_haiku.cpp qt-everywhere-opensource-src-4.7.3_haiku/src/gui/painting/qcolormap_haiku.cpp +--- qt-everywhere-opensource-src-4.7.3/src/gui/painting/qcolormap_haiku.cpp 1970-01-01 00:00:00.000000000 +0000 ++++ qt-everywhere-opensource-src-4.7.3_haiku/src/gui/painting/qcolormap_haiku.cpp 2011-06-13 22:06:43.345767936 +0000 +@@ -0,0 +1,189 @@ ++/**************************************************************************** ++** ++** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). ++** Contact: Qt Software Information (qt-info@nokia.com) ++** ++** This file is part of the QtGui module of the Qt Toolkit. ++** ++** $QT_BEGIN_LICENSE:LGPL$ ++** Commercial Usage ++** Licensees holding valid Qt Commercial licenses may use this file in ++** accordance with the Qt Commercial License Agreement provided with the ++** Software or, alternatively, in accordance with the terms contained in ++** a written agreement between you and Nokia. ++** ++** GNU Lesser General Public License Usage ++** Alternatively, this file may be used under the terms of the GNU Lesser ++** General Public License version 2.1 as published by the Free Software ++** Foundation and appearing in the file LICENSE.LGPL included in the ++** packaging of this file. Please review the following information to ++** ensure the GNU Lesser General Public License version 2.1 requirements ++** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ++** ++** In addition, as a special exception, Nokia gives you certain ++** additional rights. These rights are described in the Nokia Qt LGPL ++** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this ++** package. ++** ++** GNU General Public License Usage ++** Alternatively, this file may be used under the terms of the GNU ++** General Public License version 3.0 as published by the Free Software ++** Foundation and appearing in the file LICENSE.GPL included in the ++** packaging of this file. Please review the following information to ++** ensure the GNU General Public License version 3.0 requirements will be ++** met: http://www.gnu.org/copyleft/gpl.html. ++** ++** If you are unsure which license is appropriate for your use, please ++** contact the sales department at qt-sales@nokia.com. ++** $QT_END_LICENSE$ ++** ++****************************************************************************/ ++ ++#include "qcolormap.h" ++ ++#include "qapplication.h" ++#include "qdebug.h" ++#include "qdesktopwidget.h" ++#include "qvarlengtharray.h" ++ ++#include ++ ++QT_BEGIN_NAMESPACE ++ ++class QColormapPrivate ++{ ++public: ++ QColormapPrivate() ++ : ref(1), mode(QColormap::Direct), depth(0), ++ defaultColormap(true), ++ defaultVisual(true), ++ r_max(0), g_max(0), b_max(0), ++ r_shift(0), g_shift(0), b_shift(0) ++ {} ++ ++ QAtomicInt ref; ++ ++ QColormap::Mode mode; ++ int depth; ++ ++// Colormap colormap; ++ bool defaultColormap; ++ ++// Visual *visual; ++ bool defaultVisual; ++ ++ int r_max; ++ int g_max; ++ int b_max; ++ ++ uint r_shift; ++ uint g_shift; ++ uint b_shift; ++ ++ QVector colors; ++ QVector pixels; ++}; ++ ++ ++static QColormap **cmaps = 0; ++ ++/*! \internal ++*/ ++void QColormap::initialize() ++{ ++} ++ ++/*! \internal ++*/ ++void QColormap::cleanup() ++{ ++ // Display *display = QX11Info::display(); ++ const int screens = 0;//ScreenCount(display); ++ ++ for (int i = 0; i < screens; ++i) ++ delete cmaps[i]; ++ ++ delete [] cmaps; ++ cmaps = 0; ++} ++ ++QColormap QColormap::instance(int screen) ++{ ++ //if (screen == -1) ++ // screen = QX11Info::appScreen(); ++ QColormap cm; ++ return cm;//*cmaps[screen]; ++} ++ ++/*! \internal ++ Constructs a new colormap. ++*/ ++QColormap::QColormap() ++ : d(new QColormapPrivate) ++{} ++ ++QColormap::QColormap(const QColormap &colormap) ++ :d (colormap.d) ++{ d->ref.ref(); } ++ ++QColormap::~QColormap() ++{ ++ if (!d->ref.deref()) { ++ if (!d->defaultColormap) {} ++// XFreeColormap(QX11Info::display(), d->colormap); ++ delete d; ++ } ++} ++ ++QColormap::Mode QColormap::mode() const ++{ return d->mode; } ++ ++int QColormap::depth() const ++{ return d->depth; } ++ ++int QColormap::size() const ++{ ++ return (d->mode == Gray ++ ? d->r_max ++ : (d->mode == Indexed ++ ? d->r_max * d->g_max * d->b_max ++ : -1)); ++} ++ ++uint QColormap::pixel(const QColor &color) const ++{ ++ const QColor c = color.toRgb(); ++ const uint r = (c.ct.argb.red * d->r_max) >> 16; ++ const uint g = (c.ct.argb.green * d->g_max) >> 16; ++ const uint b = (c.ct.argb.blue * d->b_max) >> 16; ++ if (d->mode != Direct) { ++ if (d->mode == Gray) ++ return d->pixels.at((r * 30 + g * 59 + b * 11) / 100); ++ return d->pixels.at(r * d->g_max * d->b_max + g * d->b_max + b); ++ } ++ return (r << d->r_shift) + (g << d->g_shift) + (b << d->b_shift); ++} ++ ++const QColor QColormap::colorAt(uint pixel) const ++{ ++ if (d->mode != Direct) { ++ Q_ASSERT(pixel <= (uint)d->colors.size()); ++ return d->colors.at(pixel); ++ } ++ ++ //const int r = (((pixel & d->visual->red_mask) >> d->r_shift) << 8) / d->r_max; ++ //const int g = (((pixel & d->visual->green_mask) >> d->g_shift) << 8) / d->g_max; ++ //const int b = (((pixel & d->visual->blue_mask) >> d->b_shift) << 8) / d->b_max; ++ return QColor(0, 0, 0); ++} ++ ++const QVector QColormap::colormap() const ++{ return d->colors; } ++ ++QColormap &QColormap::operator=(const QColormap &colormap) ++{ ++ qAtomicAssign(d, colormap.d); ++ return *this; ++} ++ ++QT_END_NAMESPACE +diff -rupN qt-everywhere-opensource-src-4.7.3/src/gui/painting/qgraphicssystem.cpp qt-everywhere-opensource-src-4.7.3_haiku/src/gui/painting/qgraphicssystem.cpp +--- qt-everywhere-opensource-src-4.7.3/src/gui/painting/qgraphicssystem.cpp 2011-03-30 05:19:07.046661632 +0000 ++++ qt-everywhere-opensource-src-4.7.3_haiku/src/gui/painting/qgraphicssystem.cpp 2011-06-13 22:06:43.346816512 +0000 +@@ -44,7 +44,7 @@ + #ifdef Q_WS_X11 + # include + #endif +-#if defined(Q_WS_WIN) ++#if defined(Q_WS_WIN) || defined(Q_WS_HAIKU) + # include + #endif + #ifdef Q_WS_MAC +@@ -72,7 +72,9 @@ QPixmapData *QGraphicsSystem::createDefa + #elif defined(Q_WS_MAC) + return new QMacPixmapData(type); + #elif defined(Q_OS_SYMBIAN) +- return new QS60PixmapData(type); ++ return new QS60PixmapData(type); ++#elif defined(Q_WS_HAIKU) ++ return new QRasterPixmapData(type); + #elif !defined(Q_WS_QWS) + #error QGraphicsSystem::createDefaultPixmapData() not implemented + #endif +diff -rupN qt-everywhere-opensource-src-4.7.3/src/gui/painting/qpaintengine_raster.cpp qt-everywhere-opensource-src-4.7.3_haiku/src/gui/painting/qpaintengine_raster.cpp +--- qt-everywhere-opensource-src-4.7.3/src/gui/painting/qpaintengine_raster.cpp 2011-03-30 05:19:07.039583744 +0000 ++++ qt-everywhere-opensource-src-4.7.3_haiku/src/gui/painting/qpaintengine_raster.cpp 2011-06-13 22:06:43.351010816 +0000 +@@ -96,6 +96,8 @@ + # include + #elif defined(Q_OS_SYMBIAN) && defined(QT_NO_FREETYPE) + # include ++#elif defined(Q_WS_HAIKU) ++# include + #endif + + #if defined(Q_WS_WIN64) +@@ -3408,7 +3410,7 @@ void QRasterPaintEngine::drawTextItem(co + } + #endif // Q_WS_QWS + +-#if (defined(Q_WS_X11) || defined(Q_WS_QWS) || defined(Q_OS_SYMBIAN)) && !defined(QT_NO_FREETYPE) ++#if (defined(Q_WS_X11) || defined(Q_WS_QWS) || defined(Q_OS_SYMBIAN) || defined(Q_WS_HAIKU)) && !defined(QT_NO_FREETYPE) + + #if defined(Q_WS_QWS) && !defined(QT_NO_QWS_QPF2) + if (fontEngine->type() == QFontEngine::QPF2) { +diff -rupN qt-everywhere-opensource-src-4.7.3/src/gui/painting/qregion.cpp qt-everywhere-opensource-src-4.7.3_haiku/src/gui/painting/qregion.cpp +--- qt-everywhere-opensource-src-4.7.3/src/gui/painting/qregion.cpp 2011-03-30 05:19:07.052953088 +0000 ++++ qt-everywhere-opensource-src-4.7.3_haiku/src/gui/painting/qregion.cpp 2011-06-13 22:06:43.354156544 +0000 +@@ -1620,7 +1620,7 @@ QT_END_INCLUDE_NAMESPACE + QT_BEGIN_INCLUDE_NAMESPACE + # include "qregion_win.cpp" + QT_END_INCLUDE_NAMESPACE +-#elif defined(Q_WS_QWS) ++#elif defined(Q_WS_QWS) || defined(Q_WS_HAIKU) + static QRegionPrivate qrp; + QRegion::QRegionData QRegion::shared_empty = {Q_BASIC_ATOMIC_INITIALIZER(1), &qrp}; + #endif +diff -rupN qt-everywhere-opensource-src-4.7.3/src/gui/painting/qregion.h qt-everywhere-opensource-src-4.7.3_haiku/src/gui/painting/qregion.h +--- qt-everywhere-opensource-src-4.7.3/src/gui/painting/qregion.h 2011-03-30 05:19:07.041156608 +0000 ++++ qt-everywhere-opensource-src-4.7.3_haiku/src/gui/painting/qregion.h 2011-06-13 22:06:43.355729408 +0000 +@@ -59,7 +59,7 @@ QT_MODULE(Gui) + template class QVector; + class QVariant; + +-#if defined(Q_WS_QWS) || defined(Q_WS_X11) || defined(Q_WS_MAC) || defined(Q_WS_WIN) || defined(Q_OS_SYMBIAN) ++#if defined(Q_WS_QWS) || defined(Q_WS_X11) || defined(Q_WS_MAC) || defined(Q_WS_WIN) || defined(Q_OS_SYMBIAN) || defined(Q_WS_HAIKU) + struct QRegionPrivate; + #endif + +@@ -203,7 +203,7 @@ private: + #elif defined(Q_WS_MAC) && !defined(QT_MAC_USE_COCOA) + mutable RgnHandle unused; // Here for binary compatibility reasons. ### Qt 5 remove. + #endif +-#if defined(Q_WS_QWS) || defined(Q_WS_X11) || defined(Q_WS_MAC) || defined(Q_WS_WIN) || defined(Q_OS_SYMBIAN) ++#if defined(Q_WS_QWS) || defined(Q_WS_X11) || defined(Q_WS_MAC) || defined(Q_WS_WIN) || defined(Q_OS_SYMBIAN) || defined(Q_WS_HAIKU) + QRegionPrivate *qt_rgn; + #endif + }; +diff -rupN qt-everywhere-opensource-src-4.7.3/src/gui/painting/qwindowsurface_raster.cpp qt-everywhere-opensource-src-4.7.3_haiku/src/gui/painting/qwindowsurface_raster.cpp +--- qt-everywhere-opensource-src-4.7.3/src/gui/painting/qwindowsurface_raster.cpp 2011-03-30 05:19:07.048496640 +0000 ++++ qt-everywhere-opensource-src-4.7.3_haiku/src/gui/painting/qwindowsurface_raster.cpp 2011-06-13 22:06:43.357302272 +0000 +@@ -66,6 +66,10 @@ + #include + #endif + ++#ifdef Q_WS_HAIKU ++#include ++#endif ++ + QT_BEGIN_NAMESPACE + + class QRasterWindowSurfacePrivate +@@ -298,6 +302,24 @@ void QRasterWindowSurface::flush(QWidget + #endif + #endif // Q_WS_MAC + ++#ifdef Q_WS_HAIKU ++ // d->image is the image to be painted ++ // widget is the widget to be painted on ++ BView *view = widget->nativeView(); ++ BLooper* looper = view->Looper(); ++ ++ if (looper->IsLocked()) ++ return; ++ if(view->LockLooper()) { ++ QRect r = rgn.boundingRect(); ++ BRect dst_region = BRect(r.x(), r.y(), r.x()+r.width(), r.y()+r.height()); ++ BRect src_region = dst_region; ++ src_region.OffsetBy(offset.x(),offset.y()); ++ view->DrawBitmap(d->image->bitmap, src_region, dst_region); ++ view->UnlockLooper(); ++ } ++#endif ++ + #ifdef Q_OS_SYMBIAN + Q_UNUSED(widget); + Q_UNUSED(rgn); +diff -rupN qt-everywhere-opensource-src-4.7.3/src/gui/styles/qhaikustyle.cpp qt-everywhere-opensource-src-4.7.3_haiku/src/gui/styles/qhaikustyle.cpp +--- qt-everywhere-opensource-src-4.7.3/src/gui/styles/qhaikustyle.cpp 1970-01-01 00:00:00.000000000 +0000 ++++ qt-everywhere-opensource-src-4.7.3_haiku/src/gui/styles/qhaikustyle.cpp 2011-06-13 22:06:43.365428736 +0000 +@@ -0,0 +1,3928 @@ ++/**************************************************************************** ++** ++** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). ++** Contact: Qt Software Information (qt-info@nokia.com) ++** ++** This file is part of the QtGui module of the Qt Toolkit. ++** ++** $QT_BEGIN_LICENSE:LGPL$ ++** Commercial Usage ++** Licensees holding valid Qt Commercial licenses may use this file in ++** accordance with the Qt Commercial License Agreement provided with the ++** Software or, alternatively, in accordance with the terms contained in ++** a written agreement between you and Nokia. ++** ++** GNU Lesser General Public License Usage ++** Alternatively, this file may be used under the terms of the GNU Lesser ++** General Public License version 2.1 as published by the Free Software ++** Foundation and appearing in the file LICENSE.LGPL included in the ++** packaging of this file. Please review the following information to ++** ensure the GNU Lesser General Public License version 2.1 requirements ++** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ++** ++** In addition, as a special exception, Nokia gives you certain ++** additional rights. These rights are described in the Nokia Qt LGPL ++** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this ++** package. ++** ++** GNU General Public License Usage ++** Alternatively, this file may be used under the terms of the GNU ++** General Public License version 3.0 as published by the Free Software ++** Foundation and appearing in the file LICENSE.GPL included in the ++** packaging of this file. Please review the following information to ++** ensure the GNU General Public License version 3.0 requirements will be ++** met: http://www.gnu.org/copyleft/gpl.html. ++** ++** If you are unsure which license is appropriate for your use, please ++** contact the sales department at qt-sales@nokia.com. ++** $QT_END_LICENSE$ ++** ++****************************************************************************/ ++ ++#include "qhaikustyle.h" ++#include "qhaikustyle_p.h" ++ ++#if !defined(QT_NO_STYLE_HAIKU) || defined(QT_PLUGIN) ++ ++#include "qwindowsstyle_p.h" ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#define CL_MAX(a,b) (a)>(b) ? (a):(b) // ### qMin/qMax does not work for vc6 ++#define CL_MIN(a,b) (a)<(b) ? (a):(b) // remove this when it is working ++ ++QT_BEGIN_NAMESPACE ++ ++static const bool UsePixmapCache = true; ++ ++enum Direction { ++ TopDown, ++ FromLeft, ++ BottomUp, ++ FromRight ++}; ++ ++// from windows style ++static const int windowsItemFrame = 2; // menu item frame width ++static const int windowsSepHeight = 6; // separator item height ++static const int windowsItemHMargin = 3; // menu item hor text margin ++static const int windowsItemVMargin = 8; // menu item ver text margin ++static const int windowsArrowHMargin = 6; // arrow horizontal margin ++static const int windowsTabSpacing = 12; // space between text and tab ++static const int windowsCheckMarkHMargin = 2; // horiz. margins of check mark ++static const int windowsRightBorder = 15; // right border on windows ++static const int windowsCheckMarkWidth = 12; // checkmarks width on windows ++ ++/* XPM */ ++static const char * const dock_widget_close_xpm[] = { ++ "11 13 7 1", ++ " c None", ++ ". c #D5CFCB", ++ "+ c #8F8B88", ++ "@ c #6C6A67", ++ "# c #ABA6A3", ++ "$ c #B5B0AC", ++ "% c #A4A09D", ++ " ", ++ " +@@@@@@@+ ", ++ "+# #+", ++ "@ $@ @$ @", ++ "@ @@@ @@@ @", ++ "@ @@@@@ @", ++ "@ @@@ @", ++ "@ @@@@@ @", ++ "@ @@@ @@@ @", ++ "@ $@ @$ @", ++ "+% #+", ++ " +@@@@@@@+ ", ++ " "}; ++ ++ ++static const char * const dock_widget_restore_xpm[] = { ++ "11 13 7 1", ++ " c None", ++ ". c #D5CFCB", ++ "+ c #8F8B88", ++ "@ c #6C6A67", ++ "# c #ABA6A3", ++ "$ c #B5B0AC", ++ "% c #A4A09D", ++ " ", ++ " +@@@@@@@+ ", ++ "+# #+", ++ "@ #@@@# @", ++ "@ @ @ @", ++ "@ #@@@# @ @", ++ "@ @ @ @ @", ++ "@ @ @@@ @", ++ "@ @ @ @", ++ "@ #@@@# @", ++ "+% #+", ++ " +@@@@@@@+ ", ++ " "}; ++ ++static const char * const workspace_minimize[] = { ++ "11 13 7 1", ++ " c None", ++ ". c #D5CFCB", ++ "+ c #8F8B88", ++ "@ c #6C6A67", ++ "# c #ABA6A3", ++ "$ c #B5B0AC", ++ "% c #A4A09D", ++ " ", ++ " +@@@@@@@+ ", ++ "+# #+", ++ "@ @", ++ "@ @", ++ "@ @", ++ "@ @@@@@@@ @", ++ "@ @@@@@@@ @", ++ "@ @", ++ "@ @", ++ "+% #+", ++ " +@@@@@@@+ ", ++ " "}; ++ ++ ++static const char * const qt_titlebar_context_help[] = { ++ "10 10 3 1", ++ " c None", ++ "# c #000000", ++ "+ c #444444", ++ " +####+ ", ++ " ### ### ", ++ " ## ## ", ++ " +##+ ", ++ " +## ", ++ " ## ", ++ " ## ", ++ " ", ++ " ## ", ++ " ## "}; ++ ++ ++static const char * const qt_scrollbar_button_arrow_left[] = { ++"6 7 18 1", ++"d c #303030", ++"g c #333333", ++"c c #3d3d3d", ++"j c #4d4d4d", ++"l c #626262", ++"h c #656565", ++"p c #8b8b8b", ++"a c #919191", ++"k c #9a9a9a", ++"f c #9e9e9e", ++"n c #9f9f9f", ++"e c #a5a5a5", ++"m c #b3b3b3", ++"i c #b4b4b4", ++"b c #bababa", ++"o c #c6c6c6", ++"# c #cfcfcf", ++". c None", ++"...#a.", ++"..bcde", ++".fgdh.", ++"iddj..", ++".kgdl.", ++"..mcdn", ++"...op."}; ++ ++static const char * const qt_scrollbar_button_arrow_right[] = { ++"6 7 19 1", ++"c c #303030", ++"g c #333333", ++"n c #3d3d3d", ++"d c #3e3e3e", ++"i c #4d4d4d", ++"k c #626262", ++"f c #646464", ++"p c #8b8b8b", ++"# c #919191", ++"l c #9b9b9b", ++"h c #9e9e9e", ++"m c #9f9f9f", ++"b c #a5a5a5", ++"o c #b3b3b3", ++"j c #b4b4b4", ++"e c #bababa", ++"q c #c6c6c6", ++"a c #cfcfcf", ++". c None", ++".#a...", ++"bcde..", ++".fcgh.", ++"..iccj", ++".kcgl.", ++"mcno..", ++".pq..."}; ++ ++static const char * const qt_scrollbar_button_arrow_up[] = { ++"7 6 17 1", ++"b c #303030", ++"e c #333333", ++"h c #3d3d3d", ++"i c #4c4c4c", ++"m c #626262", ++"l c #656565", ++"n c #8a8a8a", ++"k c #919191", ++"c c #9a9a9a", ++"a c #9e9e9e", ++"o c #a4a4a4", ++"# c #afafaf", ++"f c #b3b3b3", ++"d c #b9b9b9", ++"j c #c5c5c5", ++"g c #cecece", ++". c None", ++"...#...", ++"..abc..", ++".debef.", ++"ghbibhj", ++"kbl.mbn", ++".o...a."}; ++ ++static const char * const qt_scrollbar_button_arrow_down[] = { ++"7 6 17 1", ++"c c #303030", ++"l c #333333", ++"h c #3d3d3d", ++"i c #4c4c4c", ++"e c #626262", ++"d c #656565", ++"f c #8a8a8a", ++"b c #919191", ++"n c #9a9a9a", ++"a c #9e9e9e", ++"# c #a4a4a4", ++"o c #afafaf", ++"m c #b3b3b3", ++"k c #b9b9b9", ++"j c #c5c5c5", ++"g c #cecece", ++". c None", ++".#...a.", ++"bcd.ecf", ++"ghcichj", ++".klclm.", ++"..acn..", ++"...o..."}; ++ ++static const char * const qt_scrollbar_buttons[] = { ++"15 15 31 1", ++" c None", ++"n c #303030", ++"q c #333333", ++"t c #3d3d3d", ++"u c #4c4c4c", ++"y c #626262", ++"x c #656565", ++"z c #8a8a8a", ++"w c #919191", ++". c #989898", ++"o c #9a9a9a", ++"m c #9e9e9e", ++"A c #a4a4a4", ++"l c #afafaf", ++"r c #b3b3b3", ++"p c #b9b9b9", ++"v c #c5c5c5", ++"k c #c6c6c6", ++"s c #cecece", ++"B c #d4d4d4", ++"j c #dbdbdb", ++"i c #dcdcdc", ++"h c #dedede", ++"g c #dfdfdf", ++"f c #e0e0e0", ++"e c #e6e6e6", ++"a c #e7e7e7", ++"d c #e8e8e8", ++"c c #e9e9e9", ++"b c #eaeaea", ++"# c #f7f7f7", ++"...............", ++".############a.", ++".# k.", ++".# k.", ++".# k.", ++".# k.", ++".# k.", ++".# k.", ++".# k.", ++".# k.", ++".# k.", ++".# k.", ++".# k.", ++".akkkkkkkkkkkk.", ++"..............."}; ++ ++ ++static const char * const qt_haiku_menuitem_checkbox_checked[] = { ++"9 9 31 1", ++"d c #000000", ++"t c #020202", ++"m c #060606", ++"e c #0b0b0b", ++"w c #0e0e0e", ++"j c #191919", ++"z c #1a1a1a", ++"s c #2b2b2b", ++"p c #2d2d2d", ++"# c #4d4d4d", ++"r c #555555", ++"o c #636363", ++"x c #646464", ++"a c #707070", ++"k c #808080", ++"y c #828282", ++"h c #838383", ++"c c #9a9a9a", ++"B c #9c9c9c", ++"g c #a7a7a7", ++"u c #b5b5b5", ++"l c #bfbfbf", ++"n c #c0c0c0", ++"f c #c8c8c8", ++"C c #c9c9c9", ++"v c #cdcdcd", ++"i c #d5d5d5", ++"A c #d6d6d6", ++"b c #d9d9d9", ++"q c #dedede", ++". c None", ++"......#ab", ++".....cdef", ++".gh.ijdk.", ++"ldmnodpq.", ++".rdsttu..", ++".vwddx...", ++"..ydzA...", ++"..qsB....", ++"...C....."}; ++ ++class TemporarySurface ++{ ++public: ++ TemporarySurface(const BRect& bounds) ++ : mBitmap(bounds, B_BITMAP_ACCEPTS_VIEWS, B_RGBA32) ++ , mView(bounds, "Qt temporary surface", 0, 0) ++ , mImage(reinterpret_cast(mBitmap.Bits()), ++ bounds.IntegerWidth() + 1, bounds.IntegerHeight() + 1, ++ mBitmap.BytesPerRow(), QImage::Format_ARGB32) ++ { ++ mBitmap.Lock(); ++ mBitmap.AddChild(&mView); ++ } ++ ++ ~TemporarySurface() ++ { ++ mBitmap.RemoveChild(&mView); ++ mBitmap.Unlock(); ++ } ++ ++ BView* view() ++ { ++ return &mView; ++ } ++ ++ QImage& image() ++ { ++ if(mView.Window()) ++ mView.Sync(); ++ return mImage; ++ } ++ ++private: ++ BBitmap mBitmap; ++ BView mView; ++ QImage mImage; ++}; ++ ++ ++static QColor mkQColor(rgb_color rgb) ++{ ++ return QColor(rgb.red, rgb.green, rgb.blue); ++} ++ ++static void qt_haiku_draw_button(QPainter *painter, const QRect &qrect, bool def, bool flat, bool pushed, bool focus, bool enabled) ++{ ++ QRect rect = qrect; ++ if (be_control_look != NULL) { ++ // TODO: If this button is embedded within a different color background, it would be ++ // nice to tell this function so the frame can be smoothly blended into the background. ++ rgb_color background = ui_color(B_PANEL_BACKGROUND_COLOR); ++ rgb_color base = background; ++ uint32 flags = 0; ++ if (pushed) ++ flags |= BControlLook::B_ACTIVATED; ++ if (focus) ++ flags |= BControlLook::B_FOCUSED; ++ if (def) { ++ flags |= BControlLook::B_DEFAULT_BUTTON; ++ rect = rect.adjusted(-2,-2,2,2); ++ } ++ if (!enabled) ++ flags |= BControlLook::B_DISABLED; ++ ++ BRect bRect(0.0f, 0.0f, rect.width() - 1, rect.height() - 1); ++ ++ TemporarySurface surface(bRect); ++ ++ be_control_look->DrawButtonFrame(surface.view(), bRect, bRect, base, background, flags); ++ be_control_look->DrawButtonBackground(surface.view(), bRect, bRect, base, flags); ++ ++ painter->drawImage(rect, surface.image()); ++ ++ return; ++ } ++} ++ ++static void qt_haiku_draw_gradient(QPainter *painter, const QRect &rect, const QColor &gradientStart, ++ const QColor &gradientStop, Direction direction = TopDown, QBrush bgBrush = QBrush()) ++{ ++ int x = rect.center().x(); ++ int y = rect.center().y(); ++ QLinearGradient *gradient; ++ switch(direction) { ++ case FromLeft: ++ gradient = new QLinearGradient(rect.left(), y, rect.right(), y); ++ break; ++ case FromRight: ++ gradient = new QLinearGradient(rect.right(), y, rect.left(), y); ++ break; ++ case BottomUp: ++ gradient = new QLinearGradient(x, rect.bottom(), x, rect.top()); ++ break; ++ case TopDown: ++ default: ++ gradient = new QLinearGradient(x, rect.top(), x, rect.bottom()); ++ break; ++ } ++ if (bgBrush.gradient()) ++ gradient->setStops(bgBrush.gradient()->stops()); ++ else { ++ gradient->setColorAt(0, gradientStart); ++ gradient->setColorAt(1, gradientStop); ++ } ++ painter->fillRect(rect, *gradient); ++ delete gradient; ++} ++ ++static QString uniqueName(const QString &key, const QStyleOption *option, const QSize &size) ++{ ++ QString tmp; ++ const QStyleOptionComplex *complexOption = qstyleoption_cast(option); ++ tmp.sprintf("%s-%d-%d-%lld-%dx%d-%d", key.toLatin1().constData(), uint(option->state), ++ complexOption ? uint(complexOption->activeSubControls) : uint(0), ++ option->palette.cacheKey(), size.width(), size.height(), option->direction); ++#ifndef QT_NO_SPINBOX ++ if (const QStyleOptionSpinBox *spinBox = qstyleoption_cast(option)) { ++ tmp.append(QLatin1Char('-')); ++ tmp.append(QString::number(spinBox->buttonSymbols)); ++ tmp.append(QLatin1Char('-')); ++ tmp.append(QString::number(spinBox->stepEnabled)); ++ tmp.append(QLatin1Char('-')); ++ tmp.append(QLatin1Char(spinBox->frame ? '1' : '0')); ++ } ++#endif // QT_NO_SPINBOX ++ return tmp; ++} ++ ++static void qt_haiku_draw_mdibutton(QPainter *painter, const QStyleOptionTitleBar *option, const QRect &tmp, bool hover, bool sunken) ++{ ++ QColor dark; ++ dark.setHsv(option->palette.button().color().hue(), ++ CL_MIN(255, (int)(option->palette.button().color().saturation()*1.9)), ++ CL_MIN(255, (int)(option->palette.button().color().value()*0.7))); ++ ++ QColor highlight = option->palette.highlight().color(); ++ ++ bool active = (option->titleBarState & QStyle::State_Active); ++ QColor titleBarHighlight(255, 255, 255, 60); ++ ++ if (sunken) ++ painter->fillRect(tmp.adjusted(1, 1, -1, -1), option->palette.highlight().color().darker(120)); ++ else if (hover) ++ painter->fillRect(tmp.adjusted(1, 1, -1, -1), QColor(255, 255, 255, 20)); ++ ++ QColor mdiButtonGradientStartColor; ++ QColor mdiButtonGradientStopColor; ++ ++ mdiButtonGradientStartColor = QColor(0, 0, 0, 40); ++ mdiButtonGradientStopColor = QColor(255, 255, 255, 60); ++ ++ if (sunken) ++ titleBarHighlight = highlight.darker(130); ++ ++ QLinearGradient gradient(tmp.center().x(), tmp.top(), tmp.center().x(), tmp.bottom()); ++ gradient.setColorAt(0, mdiButtonGradientStartColor); ++ gradient.setColorAt(1, mdiButtonGradientStopColor); ++ QColor mdiButtonBorderColor(active ? option->palette.highlight().color().darker(180): dark.darker(110)); ++ ++ painter->setPen(QPen(mdiButtonBorderColor, 1)); ++ painter->drawLine(tmp.left() + 2, tmp.top(), tmp.right() - 2, tmp.top()); ++ painter->drawLine(tmp.left() + 2, tmp.bottom(), tmp.right() - 2, tmp.bottom()); ++ painter->drawLine(tmp.left(), tmp.top() + 2, tmp.left(), tmp.bottom() - 2); ++ painter->drawLine(tmp.right(), tmp.top() + 2, tmp.right(), tmp.bottom() - 2); ++ painter->drawPoint(tmp.left() + 1, tmp.top() + 1); ++ painter->drawPoint(tmp.right() - 1, tmp.top() + 1); ++ painter->drawPoint(tmp.left() + 1, tmp.bottom() - 1); ++ painter->drawPoint(tmp.right() - 1, tmp.bottom() - 1); ++ ++ painter->setPen(titleBarHighlight); ++ painter->drawLine(tmp.left() + 2, tmp.top() + 1, tmp.right() - 2, tmp.top() + 1); ++ painter->drawLine(tmp.left() + 1, tmp.top() + 2, tmp.left() + 1, tmp.bottom() - 2); ++ ++ painter->setPen(QPen(gradient, 1)); ++ painter->drawLine(tmp.right() + 1, tmp.top() + 2, tmp.right() + 1, tmp.bottom() - 2); ++ painter->drawPoint(tmp.right() , tmp.top() + 1); ++ ++ painter->drawLine(tmp.left() + 2, tmp.bottom() + 1, tmp.right() - 2, tmp.bottom() + 1); ++ painter->drawPoint(tmp.left() + 1, tmp.bottom()); ++ painter->drawPoint(tmp.right() - 1, tmp.bottom()); ++ painter->drawPoint(tmp.right() , tmp.bottom() - 1); ++} ++ ++/*! ++ \class QHaikuStyle ++ \brief The QHaikuStyle class provides a widget style similar to the ++ Clearlooks style available in GNOME. ++ \since 4.2 ++ ++ The Haiku style provides a look and feel for widgets ++ that closely resembles the Clearlooks style, introduced by Richard ++ Stellingwerff and Daniel Borgmann. ++ ++ \sa {Haiku Style Widget Gallery}, QWindowsXPStyle, QMacStyle, QWindowsStyle, ++ QCDEStyle, QMotifStyle, QPlastiqueStyle ++*/ ++ ++/*! ++ Constructs a QHaikuStyle object. ++*/ ++QHaikuStyle::QHaikuStyle() : QWindowsStyle(*new QHaikuStylePrivate) ++{ ++ setObjectName(QLatin1String("Haiku")); ++} ++ ++/*! ++ \internal ++ ++ Constructs a QHaikuStyle object. ++*/ ++QHaikuStyle::QHaikuStyle(QHaikuStylePrivate &dd) : QWindowsStyle(dd) ++{ ++} ++ ++/*! ++ Destroys the QHaikuStyle object. ++*/ ++QHaikuStyle::~QHaikuStyle() ++{ ++} ++ ++/*! ++ \fn void QHaikuStyle::drawItemText(QPainter *painter, const QRect &rectangle, int alignment, const QPalette &palette, ++ bool enabled, const QString& text, QPalette::ColorRole textRole) const ++ ++ Draws the given \a text in the specified \a rectangle using the ++ provided \a painter and \a palette. ++ ++ Text is drawn using the painter's pen. If an explicit \a textRole ++ is specified, then the text is drawn using the \a palette's color ++ for the specified role. The \a enabled value indicates whether or ++ not the item is enabled; when reimplementing, this value should ++ influence how the item is drawn. ++ ++ The text is aligned and wrapped according to the specified \a ++ alignment. ++ ++ \sa Qt::Alignment ++*/ ++void QHaikuStyle::drawItemText(QPainter *painter, const QRect &rect, int alignment, const QPalette &pal, ++ bool enabled, const QString& text, QPalette::ColorRole textRole) const ++{ ++ if (text.isEmpty()) ++ return; ++ ++ QPen savedPen = painter->pen(); ++ if (textRole != QPalette::NoRole) { ++ painter->setPen(QPen(pal.brush(textRole), savedPen.widthF())); ++ } ++ if (!enabled) { ++ QPen pen = painter->pen(); ++ painter->setPen(pen); ++ } ++ painter->drawText(rect, alignment, text); ++ painter->setPen(savedPen); ++} ++ ++static QColor mergedColors(const QColor &colorA, const QColor &colorB, int factor = 50) ++{ ++ const int maxFactor = 100; ++ QColor tmp = colorA; ++ tmp.setRed((tmp.red() * factor) / maxFactor + (colorB.red() * (maxFactor - factor)) / maxFactor); ++ tmp.setGreen((tmp.green() * factor) / maxFactor + (colorB.green() * (maxFactor - factor)) / maxFactor); ++ tmp.setBlue((tmp.blue() * factor) / maxFactor + (colorB.blue() * (maxFactor - factor)) / maxFactor); ++ return tmp; ++} ++ ++/*! ++ \reimp ++*/ ++void QHaikuStyle::drawPrimitive(PrimitiveElement elem, ++ const QStyleOption *option, ++ QPainter *painter, const QWidget *widget) const ++{ ++ Q_ASSERT(option); ++ QRect rect = option->rect; ++ int state = option->state; ++ QColor button = option->palette.button().color(); ++ QColor buttonShadow = option->palette.button().color().darker(110); ++ QColor buttonShadowAlpha = buttonShadow; ++ buttonShadowAlpha.setAlpha(128); ++ QColor darkOutline; ++ QColor dark; ++ darkOutline.setHsv(button.hue(), ++ CL_MIN(255, (int)(button.saturation()*3.0)), ++ CL_MIN(255, (int)(button.value()*0.6))); ++ dark.setHsv(button.hue(), ++ CL_MIN(255, (int)(button.saturation()*1.9)), ++ CL_MIN(255, (int)(button.value()*0.7))); ++ QColor tabFrameColor = mergedColors(option->palette.background().color(), ++ dark.lighter(135), 60); ++ ++ switch(elem) { ++#ifndef QT_NO_TABBAR ++ case PE_FrameTabBarBase: ++ if (const QStyleOptionTabBarBase *tbb ++ = qstyleoption_cast(option)) { ++ painter->save(); ++ painter->setPen(QPen(darkOutline.lighter(110), 0)); ++ switch (tbb->shape) { ++ case QTabBar::RoundedNorth: { ++ QRegion region(tbb->rect); ++ region -= tbb->selectedTabRect; ++ painter->drawLine(tbb->rect.topLeft(), tbb->rect.topRight()); ++ painter->setClipRegion(region); ++ painter->setPen(option->palette.light().color()); ++ painter->drawLine(tbb->rect.topLeft() + QPoint(0, 1), ++ tbb->rect.topRight() + QPoint(0, 1)); ++ } ++ break; ++ case QTabBar::RoundedWest: ++ painter->drawLine(tbb->rect.left(), tbb->rect.top(), tbb->rect.left(), tbb->rect.bottom()); ++ break; ++ case QTabBar::RoundedSouth: ++ painter->drawLine(tbb->rect.left(), tbb->rect.bottom(), ++ tbb->rect.right(), tbb->rect.bottom()); ++ break; ++ case QTabBar::RoundedEast: ++ painter->drawLine(tbb->rect.topRight(), tbb->rect.bottomRight()); ++ break; ++ case QTabBar::TriangularNorth: ++ case QTabBar::TriangularEast: ++ case QTabBar::TriangularWest: ++ case QTabBar::TriangularSouth: ++ painter->restore(); ++ QWindowsStyle::drawPrimitive(elem, option, painter, widget); ++ return; ++ } ++ painter->restore(); ++ } ++ return; ++#endif // QT_NO_TABBAR ++ case PE_IndicatorViewItemCheck: ++ { ++ QStyleOptionButton button; ++ button.QStyleOption::operator=(*option); ++ button.state &= ~State_MouseOver; ++ drawPrimitive(PE_IndicatorCheckBox, &button, painter, widget); ++ } ++ return; ++ case PE_IndicatorHeaderArrow: ++ if (const QStyleOptionHeader *header = qstyleoption_cast(option)) { ++ QRect r = header->rect; ++ QImage arrow; ++ if (header->sortIndicator & QStyleOptionHeader::SortUp) ++ arrow = QImage(qt_scrollbar_button_arrow_up); ++ else if (header->sortIndicator & QStyleOptionHeader::SortDown) ++ arrow = QImage(qt_scrollbar_button_arrow_down); ++ if (!arrow.isNull()) { ++ r.setSize(arrow.size()); ++ r.moveCenter(header->rect.center()); ++ arrow.setColor(1, header->palette.foreground().color().rgba()); ++ painter->drawImage(r, arrow); ++ } ++ } ++ break; ++ case PE_IndicatorButtonDropDown: ++ drawPrimitive(PE_PanelButtonCommand, option, painter, widget); ++ break; ++ case PE_IndicatorToolBarSeparator: ++ { ++ QRect rect = option->rect; ++ const int margin = 6; ++ if (option->state & State_Horizontal) { ++ const int offset = rect.width()/2; ++ painter->setPen(QPen(option->palette.background().color().darker(110))); ++ painter->drawLine(rect.bottomLeft().x() + offset, ++ rect.bottomLeft().y() - margin, ++ rect.topLeft().x() + offset, ++ rect.topLeft().y() + margin); ++ painter->setPen(QPen(option->palette.background().color().lighter(110))); ++ painter->drawLine(rect.bottomLeft().x() + offset + 1, ++ rect.bottomLeft().y() - margin, ++ rect.topLeft().x() + offset + 1, ++ rect.topLeft().y() + margin); ++ } else { //Draw vertical separator ++ const int offset = rect.height()/2; ++ painter->setPen(QPen(option->palette.background().color().darker(110))); ++ painter->drawLine(rect.topLeft().x() + margin , ++ rect.topLeft().y() + offset, ++ rect.topRight().x() - margin, ++ rect.topRight().y() + offset); ++ painter->setPen(QPen(option->palette.background().color().lighter(110))); ++ painter->drawLine(rect.topLeft().x() + margin , ++ rect.topLeft().y() + offset + 1, ++ rect.topRight().x() - margin, ++ rect.topRight().y() + offset + 1); ++ } ++ } ++ break; ++ case PE_Frame: ++ painter->save(); ++ painter->setPen(dark.lighter(108)); ++ painter->drawRect(option->rect.adjusted(0, 0, -1, -1)); ++ painter->restore(); ++ break; ++ case PE_FrameMenu: ++ painter->save(); ++ { ++ painter->setPen(QPen(darkOutline, 1)); ++ painter->drawRect(option->rect.adjusted(0, 0, -1, -1)); ++ QColor frameLight = option->palette.background().color().lighter(160); ++ QColor frameShadow = option->palette.background().color().darker(110); ++ ++ //paint beveleffect ++ QRect frame = option->rect.adjusted(1, 1, -1, -1); ++ painter->setPen(frameLight); ++ painter->drawLine(frame.topLeft(), frame.bottomLeft()); ++ painter->drawLine(frame.topLeft(), frame.topRight()); ++ ++ painter->setPen(frameShadow); ++ painter->drawLine(frame.topRight(), frame.bottomRight()); ++ painter->drawLine(frame.bottomLeft(), frame.bottomRight()); ++ } ++ painter->restore(); ++ break; ++ case PE_FrameDockWidget: ++ ++ painter->save(); ++ { ++ QColor softshadow = option->palette.background().color().darker(120); ++ ++ QRect rect= option->rect; ++ painter->setPen(softshadow); ++ painter->drawRect(option->rect.adjusted(0, 0, -1, -1)); ++ painter->setPen(QPen(option->palette.light(), 0)); ++ painter->drawLine(QPoint(rect.left() + 1, rect.top() + 1), QPoint(rect.left() + 1, rect.bottom() - 1)); ++ painter->setPen(QPen(option->palette.background().color().darker(120), 0)); ++ painter->drawLine(QPoint(rect.left() + 1, rect.bottom() - 1), QPoint(rect.right() - 2, rect.bottom() - 1)); ++ painter->drawLine(QPoint(rect.right() - 1, rect.top() + 1), QPoint(rect.right() - 1, rect.bottom() - 1)); ++ ++ } ++ painter->restore(); ++ break; ++ case PE_PanelButtonTool: ++ painter->save(); ++ if ((option->state & State_Enabled || option->state & State_On) || !(option->state & State_AutoRaise)) { ++ QRect rect = option->rect; ++ QPen oldPen = painter->pen(); ++ ++ if (widget && widget->inherits("QDockWidgetTitleButton")) { ++ if (option->state & State_MouseOver) ++ drawPrimitive(PE_PanelButtonCommand, option, painter, widget); ++ } else { ++ drawPrimitive(PE_PanelButtonCommand, option, painter, widget); ++ } ++ } ++ painter->restore(); ++ break; ++ case PE_IndicatorDockWidgetResizeHandle: ++ { ++ QStyleOption dockWidgetHandle = *option; ++ bool horizontal = option->state & State_Horizontal; ++ if (horizontal) ++ dockWidgetHandle.state &= ~State_Horizontal; ++ else ++ dockWidgetHandle.state |= State_Horizontal; ++ drawControl(CE_Splitter, &dockWidgetHandle, painter, widget); ++ } ++ break; ++ case PE_FrameWindow: ++ painter->save(); ++ { ++ QRect rect= option->rect; ++ painter->setPen(QPen(dark.darker(150), 0)); ++ painter->drawRect(option->rect.adjusted(0, 0, -1, -1)); ++ painter->setPen(QPen(option->palette.light(), 0)); ++ painter->drawLine(QPoint(rect.left() + 1, rect.top() + 1), ++ QPoint(rect.left() + 1, rect.bottom() - 1)); ++ painter->setPen(QPen(option->palette.background().color().darker(120), 0)); ++ painter->drawLine(QPoint(rect.left() + 1, rect.bottom() - 1), ++ QPoint(rect.right() - 2, rect.bottom() - 1)); ++ painter->drawLine(QPoint(rect.right() - 1, rect.top() + 1), ++ QPoint(rect.right() - 1, rect.bottom() - 1)); ++ } ++ painter->restore(); ++ break; ++#ifndef QT_NO_LINEDIT ++ case PE_FrameLineEdit: ++ // fall through ++#endif // QT_NO_LINEEDIT ++#ifdef QT3_SUPPORT ++ if (widget && widget->inherits("Q3ToolBar")) { ++ drawPrimitive(PE_Q3Separator, option, painter, widget); ++ break; ++ } ++#endif ++ { ++ QPen oldPen = painter->pen(); ++ if (option->state & State_Enabled) { ++ if(option->state & State_HasFocus) ++ painter->setPen(QPen(mkQColor(ui_color(B_NAVIGATION_BASE_COLOR)), 0)); ++ else ++ painter->setPen(QPen(QColor(129,129,129), 0)); ++ painter->drawRect(rect.adjusted(1, 1, -1, -1)); ++ } else { ++ painter->fillRect(rect, option->palette.background()); ++ painter->setPen(QPen(QColor(129,129,129), 0)); ++ painter->drawRect(rect.adjusted(1, 1, -1, -1)); ++ } ++ } ++ break; ++ case PE_IndicatorCheckBox: ++ painter->save(); ++ if (const QStyleOptionButton *checkbox = qstyleoption_cast(option)) { ++ ++ rect = rect.adjusted(-2, -2, 1, 1); ++ BRect bRect(0.0f, 0.0f, rect.width() - 1, rect.height() - 1); ++ TemporarySurface surface(bRect); ++ rgb_color base = ui_color(B_PANEL_BACKGROUND_COLOR); ++ uint32 flags = 0; ++ ++ if (!(state & State_Enabled)) ++ flags |= BControlLook::B_DISABLED; ++ if (checkbox->state & State_On) ++ flags |= BControlLook::B_ACTIVATED; ++ if (checkbox->state & State_HasFocus) ++ flags |= BControlLook::B_FOCUSED; ++ if (checkbox->state & State_Sunken) ++ flags |= BControlLook::B_CLICKED; ++ if (checkbox->state & State_NoChange) ++ flags |= BControlLook::B_DISABLED | BControlLook::B_ACTIVATED; ++ ++ be_control_look->DrawCheckBox(surface.view(), bRect, bRect, base, flags); ++ painter->drawImage(rect, surface.image()); ++ } ++ painter->restore(); ++ break; ++ case PE_IndicatorRadioButton: ++ painter->save(); ++ { ++ painter->setRenderHint(QPainter::SmoothPixmapTransform); ++ QRect checkRect = rect.adjusted(0, 0, 0, 0); ++ ++ painter->setRenderHint(QPainter::Antialiasing); ++ if (state & State_Sunken) ++ painter->setBrush(mkQColor(ui_color(B_PANEL_BACKGROUND_COLOR))); ++ else ++ painter->setBrush(QColor(255,255,255)); ++ ++ if(state & State_HasFocus) ++ painter->setPen(QPen(mkQColor(ui_color(B_NAVIGATION_BASE_COLOR)), 0)); ++ else ++ painter->setPen(QColor(129,129,129)); ++ painter->drawEllipse(rect); ++ ++ if (state & (State_On )) { ++ painter->setBrush(QColor(27,82,140)); ++ painter->setPen(Qt::NoPen); ++ painter->drawEllipse(rect.adjusted(3, 3, -3, -3)); ++ } ++ } ++ painter->restore(); ++ break; ++ case PE_IndicatorToolBarHandle: ++ painter->save(); ++ if (option->state & State_Horizontal) { ++ for (int i = rect.height()/5; i <= 4*(rect.height()/5) ; ++i) { ++ int y = rect.topLeft().y() + i + 1; ++ int x1 = rect.topLeft().x() + 3; ++ int x2 = rect.topRight().x() - 2; ++ ++ if (i % 2 == 0) ++ painter->setPen(QPen(option->palette.light(), 0)); ++ else ++ painter->setPen(QPen(dark.lighter(110), 0)); ++ painter->drawLine(x1, y, x2, y); ++ } ++ } ++ else { //vertical toolbar ++ for (int i = rect.width()/5; i <= 4*(rect.width()/5) ; ++i) { ++ int x = rect.topLeft().x() + i + 1; ++ int y1 = rect.topLeft().y() + 3; ++ int y2 = rect.topLeft().y() + 5; ++ ++ if (i % 2 == 0) ++ painter->setPen(QPen(option->palette.light(), 0)); ++ else ++ painter->setPen(QPen(dark.lighter(110), 0)); ++ painter->drawLine(x, y1, x, y2); ++ } ++ } ++ painter->restore(); ++ break; ++ case PE_FrameDefaultButton: ++ case PE_FrameFocusRect: ++ if (const QStyleOptionFocusRect *focusFrame = qstyleoption_cast(option)) { ++ if (!(focusFrame->state & State_KeyboardFocusChange)) ++ return; ++ QRect rect = focusFrame->rect; ++ painter->save(); ++ painter->setBackgroundMode(Qt::TransparentMode); ++ painter->setBrush(QBrush(dark.darker(120), Qt::Dense4Pattern)); ++ painter->setBrushOrigin(rect.topLeft()); ++ painter->setPen(Qt::NoPen); ++ painter->drawRect(rect.left(), rect.top(), rect.width(), 1); // Top ++ painter->drawRect(rect.left(), rect.bottom(), rect.width(), 1); // Bottom ++ painter->drawRect(rect.left(), rect.top(), 1, rect.height()); // Left ++ painter->drawRect(rect.right(), rect.top(), 1, rect.height()); // Right ++ painter->restore(); ++ } ++ break; ++ case PE_PanelButtonCommand: ++ painter->save(); ++ { ++ if (const QStyleOptionButton *btn = qstyleoption_cast(option)) { ++ QStyleOptionButton copy = *btn; ++ ++ bool enabled = option->state & State_Enabled; ++ bool pushed = (option->state & State_Sunken) || (option->state & State_On); ++ bool focus = option->state & State_HasFocus; ++ bool flat = btn->features & QStyleOptionFrameV2::Flat; ++ bool def = (btn->features & QStyleOptionButton::DefaultButton) && (btn->state & State_Enabled); ++ ++ qt_haiku_draw_button(painter, option->rect.adjusted(1,1,-1,-1), def, flat, pushed, focus, enabled); ++ } ++ painter->restore(); ++ } ++ break; ++#ifndef QT_NO_TABBAR ++ case PE_FrameTabWidget: ++ painter->save(); ++ { ++ painter->fillRect(option->rect, tabFrameColor); ++ } ++#ifndef QT_NO_TABWIDGET ++ if (const QStyleOptionTabWidgetFrame *twf = qstyleoption_cast(option)) { ++ QColor borderColor = darkOutline.lighter(110); ++ QColor alphaCornerColor = mergedColors(borderColor, option->palette.background().color()); ++ QColor innerShadow = mergedColors(borderColor, option->palette.base().color()); ++ ++ int borderThickness = pixelMetric(PM_TabBarBaseOverlap, twf, widget); ++ bool reverse = (twf->direction == Qt::RightToLeft); ++ QRect tabBarRect; ++ ++ switch (twf->shape) { ++ case QTabBar::RoundedNorth: ++ if (reverse) { ++ tabBarRect = QRect(twf->rect.right() - twf->leftCornerWidgetSize.width() ++ - twf->tabBarSize.width() + 1, ++ twf->rect.top(), ++ twf->tabBarSize.width(), borderThickness); ++ } else { ++ tabBarRect = QRect(twf->rect.left() + twf->leftCornerWidgetSize.width(), ++ twf->rect.top(), ++ twf->tabBarSize.width(), borderThickness); ++ } ++ break ; ++ case QTabBar::RoundedWest: ++ tabBarRect = QRect(twf->rect.left(), ++ twf->rect.top() + twf->leftCornerWidgetSize.height(), ++ borderThickness, ++ twf->tabBarSize.height()); ++ tabBarRect = tabBarRect; //adjust ++ break ; ++ case QTabBar::RoundedEast: ++ tabBarRect = QRect(twf->rect.right() - borderThickness + 1, ++ twf->rect.top() + twf->leftCornerWidgetSize.height(), ++ 0, ++ twf->tabBarSize.height()); ++ break ; ++ case QTabBar::RoundedSouth: ++ if (reverse) { ++ tabBarRect = QRect(twf->rect.right() - twf->leftCornerWidgetSize.width() - twf->tabBarSize.width() + 1, ++ twf->rect.bottom() + 1, ++ twf->tabBarSize.width(), ++ borderThickness); ++ } else { ++ tabBarRect = QRect(twf->rect.left() + twf->leftCornerWidgetSize.width(), ++ twf->rect.bottom() + 1, ++ twf->tabBarSize.width(), ++ borderThickness); ++ } ++ break; ++ default: ++ break; ++ } ++ ++ QRegion region(twf->rect); ++ region -= tabBarRect; ++ painter->setClipRegion(region); ++ ++ // Outer border ++ QLine leftLine = QLine(twf->rect.topLeft() + QPoint(0, 2), twf->rect.bottomLeft() - QPoint(0, 2)); ++ QLine rightLine = QLine(twf->rect.topRight(), twf->rect.bottomRight() - QPoint(0, 2)); ++ QLine bottomLine = QLine(twf->rect.bottomLeft() + QPoint(2, 0), twf->rect.bottomRight() - QPoint(2, 0)); ++ QLine topLine = QLine(twf->rect.topLeft(), twf->rect.topRight()); ++ ++ painter->setPen(borderColor); ++ painter->drawLine(topLine); ++ ++ // Inner border ++ QLine innerLeftLine = QLine(leftLine.p1() + QPoint(1, 0), leftLine.p2() + QPoint(1, 0)); ++ QLine innerRightLine = QLine(rightLine.p1() - QPoint(1, -1), rightLine.p2() - QPoint(1, 0)); ++ QLine innerBottomLine = QLine(bottomLine.p1() - QPoint(0, 1), bottomLine.p2() - QPoint(0, 1)); ++ QLine innerTopLine = QLine(topLine.p1() + QPoint(0, 1), topLine.p2() + QPoint(-1, 1)); ++ ++ // Rounded Corner ++ QPoint leftBottomOuterCorner = QPoint(innerLeftLine.p2() + QPoint(0, 1)); ++ QPoint leftBottomInnerCorner1 = QPoint(leftLine.p2() + QPoint(0, 1)); ++ QPoint leftBottomInnerCorner2 = QPoint(bottomLine.p1() - QPoint(1, 0)); ++ QPoint rightBottomOuterCorner = QPoint(innerRightLine.p2() + QPoint(0, 1)); ++ QPoint rightBottomInnerCorner1 = QPoint(rightLine.p2() + QPoint(0, 1)); ++ QPoint rightBottomInnerCorner2 = QPoint(bottomLine.p2() + QPoint(1, 0)); ++ QPoint leftTopOuterCorner = QPoint(innerLeftLine.p1() - QPoint(0, 1)); ++ QPoint leftTopInnerCorner1 = QPoint(leftLine.p1() - QPoint(0, 1)); ++ QPoint leftTopInnerCorner2 = QPoint(topLine.p1() - QPoint(1, 0)); ++ ++ painter->setPen(borderColor); ++ painter->drawLine(leftLine); ++ painter->drawLine(rightLine); ++ painter->drawLine(bottomLine); ++ painter->drawPoint(leftBottomOuterCorner); ++ painter->drawPoint(rightBottomOuterCorner); ++ painter->drawPoint(leftTopOuterCorner); ++ ++ painter->setPen(option->palette.light().color()); ++ painter->drawLine(innerLeftLine); ++ painter->drawLine(innerTopLine); ++ ++ painter->setPen(buttonShadowAlpha); ++ painter->drawLine(innerRightLine); ++ painter->drawLine(innerBottomLine); ++ ++ painter->setPen(alphaCornerColor); ++ painter->drawPoint(leftBottomInnerCorner1); ++ painter->drawPoint(leftBottomInnerCorner2); ++ painter->drawPoint(rightBottomInnerCorner1); ++ painter->drawPoint(rightBottomInnerCorner2); ++ painter->drawPoint(leftTopInnerCorner1); ++ painter->drawPoint(leftTopInnerCorner2); ++ } ++#endif // QT_NO_TABWIDGET ++ painter->restore(); ++ break ; ++ ++ case PE_FrameStatusBarItem: ++ break; ++ case PE_IndicatorTabClose: ++ { ++ Q_D(const QHaikuStyle); ++ if (d->tabBarcloseButtonIcon.isNull()) ++ d->tabBarcloseButtonIcon = standardIcon(SP_DialogCloseButton, option, widget); ++ if ((option->state & State_Enabled) && (option->state & State_MouseOver)) ++ drawPrimitive(PE_PanelButtonCommand, option, painter, widget); ++ QPixmap pixmap = d->tabBarcloseButtonIcon.pixmap(QSize(16, 16), QIcon::Normal, QIcon::On); ++ drawItemPixmap(painter, option->rect, Qt::AlignCenter, pixmap); ++ } ++ break; ++ ++#endif // QT_NO_TABBAR ++ default: ++ QWindowsStyle::drawPrimitive(elem, option, painter, widget); ++ break; ++ } ++} ++ ++/*! ++ \reimp ++*/ ++void QHaikuStyle::drawControl(ControlElement element, const QStyleOption *option, QPainter *painter, ++ const QWidget *widget) const ++{ ++ QColor button = option->palette.button().color(); ++ QColor dark; ++ dark.setHsv(button.hue(), ++ CL_MIN(255, (int)(button.saturation()*1.9)), ++ CL_MIN(255, (int)(button.value()*0.7))); ++ QColor darkOutline; ++ darkOutline.setHsv(button.hue(), ++ CL_MIN(255, (int)(button.saturation()*2.0)), ++ CL_MIN(255, (int)(button.value()*0.6))); ++ QRect rect = option->rect; ++ QColor shadow = mergedColors(option->palette.background().color().darker(120), ++ dark.lighter(130), 60); ++ QColor tabFrameColor = mergedColors(option->palette.background().color(), ++ dark.lighter(135), 60); ++ ++ QColor highlight = option->palette.highlight().color(); ++ QColor highlightText = option->palette.highlightedText().color(); ++ ++ switch(element) { ++ case CE_RadioButton: //fall through ++ case CE_CheckBox: ++ if (const QStyleOptionButton *btn = qstyleoption_cast(option)) { ++ bool hover = (btn->state & State_MouseOver && btn->state & State_Enabled); ++ if (hover) ++ painter->fillRect(rect, btn->palette.background().color().lighter(104)); ++ QStyleOptionButton copy = *btn; ++ copy.rect.adjust(2, 0, -2, 0); ++ QWindowsStyle::drawControl(element, ©, painter, widget); ++ } ++ break; ++ case CE_Splitter: ++ painter->save(); ++ { ++ orientation orient = (option->state & State_Horizontal)?B_HORIZONTAL:B_VERTICAL; ++ ++ if (be_control_look != NULL) { ++ QRect r = option->rect; ++ rgb_color base = ui_color(B_PANEL_BACKGROUND_COLOR);; ++ uint32 flags = 0; ++ BRect bRect(0.0f, 0.0f, r.width() - 1, r.height() - 1); ++ TemporarySurface surface(bRect); ++ be_control_look->DrawSplitter(surface.view(), bRect, bRect, base, orient, flags); ++ painter->drawImage(r, surface.image()); ++ } ++ } ++ painter->restore(); ++ break; ++ case CE_SizeGrip: ++ painter->save(); ++ painter->fillRect(option->rect, option->palette.background().color()); ++ painter->restore(); ++ break; ++#ifndef QT_NO_TOOLBAR ++ case CE_ToolBar: ++ painter->save(); ++ if (const QStyleOptionToolBar *toolbar = qstyleoption_cast(option)) { ++ QRect rect = option->rect; ++ ++ bool paintLeftBorder = true; ++ bool paintRightBorder = true; ++ bool paintBottomBorder = true; ++ ++ switch (toolbar->toolBarArea) { ++ case Qt::BottomToolBarArea: ++ switch(toolbar->positionOfLine) { ++ case QStyleOptionToolBar::Beginning: ++ case QStyleOptionToolBar::OnlyOne: ++ paintBottomBorder = false; ++ default: ++ break; ++ } ++ case Qt::TopToolBarArea: ++ switch (toolbar->positionWithinLine) { ++ case QStyleOptionToolBar::Beginning: ++ paintLeftBorder = false; ++ break; ++ case QStyleOptionToolBar::End: ++ paintRightBorder = false; ++ break; ++ case QStyleOptionToolBar::OnlyOne: ++ paintRightBorder = false; ++ paintLeftBorder = false; ++ default: ++ break; ++ } ++ if (QApplication::layoutDirection() == Qt::RightToLeft) { //reverse layout changes the order of Beginning/end ++ bool tmp = paintLeftBorder; ++ paintRightBorder=paintLeftBorder; ++ paintLeftBorder=tmp; ++ } ++ break; ++ case Qt::RightToolBarArea: ++ switch (toolbar->positionOfLine) { ++ case QStyleOptionToolBar::Beginning: ++ case QStyleOptionToolBar::OnlyOne: ++ paintRightBorder = false; ++ break; ++ default: ++ break; ++ } ++ break; ++ case Qt::LeftToolBarArea: ++ switch (toolbar->positionOfLine) { ++ case QStyleOptionToolBar::Beginning: ++ case QStyleOptionToolBar::OnlyOne: ++ paintLeftBorder = false; ++ break; ++ default: ++ break; ++ } ++ break; ++ default: ++ break; ++ } ++ ++ QColor light = option->palette.background().color().lighter(110); ++ ++ //draw top border ++ painter->setPen(QPen(light)); ++ painter->drawLine(rect.topLeft().x(), ++ rect.topLeft().y(), ++ rect.topRight().x(), ++ rect.topRight().y()); ++ ++ if (paintLeftBorder) { ++ painter->setPen(QPen(light)); ++ painter->drawLine(rect.topLeft().x(), ++ rect.topLeft().y(), ++ rect.bottomLeft().x(), ++ rect.bottomLeft().y()); ++ } ++ ++ if (paintRightBorder) { ++ painter->setPen(QPen(shadow)); ++ painter->drawLine(rect.topRight().x(), ++ rect.topRight().y(), ++ rect.bottomRight().x(), ++ rect.bottomRight().y()); ++ } ++ ++ if (paintBottomBorder) { ++ painter->setPen(QPen(shadow)); ++ painter->drawLine(rect.bottomLeft().x(), ++ rect.bottomLeft().y(), ++ rect.bottomRight().x(), ++ rect.bottomRight().y()); ++ } ++ } ++ painter->restore(); ++ break; ++#endif // QT_NO_TOOLBAR ++#ifndef QT_NO_DOCKWIDGET ++ case CE_DockWidgetTitle: ++ painter->save(); ++ if (const QStyleOptionDockWidget *dwOpt = qstyleoption_cast(option)) { ++ const QStyleOptionDockWidgetV2 *v2 ++ = qstyleoption_cast(dwOpt); ++ bool verticalTitleBar = v2 == 0 ? false : v2->verticalTitleBar; ++ ++ QRect rect = dwOpt->rect; ++ QRect titleRect = subElementRect(SE_DockWidgetTitleBarText, option, widget); ++ QRect r = rect.adjusted(0, 0, -1, 0); ++ if (verticalTitleBar) ++ r.adjust(0, 0, 0, -1); ++ painter->setPen(option->palette.light().color()); ++ painter->drawRect(r.adjusted(1, 1, 1, 1)); ++ painter->setPen(shadow); ++ painter->drawRect(r); ++ ++ if (verticalTitleBar) { ++ QRect r = rect; ++ QSize s = r.size(); ++ s.transpose(); ++ r.setSize(s); ++ ++ titleRect = QRect(r.left() + rect.bottom() ++ - titleRect.bottom(), ++ r.top() + titleRect.left() - rect.left(), ++ titleRect.height(), titleRect.width()); ++ ++ painter->translate(r.left(), r.top() + r.width()); ++ painter->rotate(-90); ++ painter->translate(-r.left(), -r.top()); ++ ++ rect = r; ++ } ++ ++ if (!dwOpt->title.isEmpty()) { ++ QString titleText ++ = painter->fontMetrics().elidedText(dwOpt->title, ++ Qt::ElideRight, titleRect.width()); ++ drawItemText(painter, ++ titleRect, ++ Qt::AlignLeft | Qt::AlignVCenter | Qt::TextShowMnemonic, dwOpt->palette, ++ dwOpt->state & State_Enabled, titleText, ++ QPalette::WindowText); ++ } ++ } ++ painter->restore(); ++ break; ++#endif // QT_NO_DOCKWIDGET ++ case CE_HeaderSection: ++ painter->save(); ++ // Draws the header in tables. ++ if (const QStyleOptionHeader *header = qstyleoption_cast(option)) { ++ QPixmap cache; ++ QString pixmapName = uniqueName(QLatin1String("headersection"), option, option->rect.size()); ++ pixmapName += QLatin1String("-") + QString::number(int(header->position)); ++ pixmapName += QLatin1String("-") + QString::number(int(header->orientation)); ++ QRect r = option->rect; ++ QColor gradientStopColor; ++ QColor gradientStartColor = option->palette.button().color(); ++ gradientStopColor.setHsv(gradientStartColor.hue(), ++ CL_MIN(255, (int)(gradientStartColor.saturation()*2)), ++ CL_MIN(255, (int)(gradientStartColor.value()*0.96))); ++ QLinearGradient gradient(rect.topLeft(), rect.bottomLeft()); ++ if (option->palette.background().gradient()) { ++ gradient.setStops(option->palette.background().gradient()->stops()); ++ } else { ++ gradient.setColorAt(0, gradientStartColor); ++ gradient.setColorAt(0.8, gradientStartColor); ++ gradient.setColorAt(1, gradientStopColor); ++ } ++ painter->fillRect(r, gradient); ++ ++ if (!UsePixmapCache || !QPixmapCache::find(pixmapName, cache)) { ++ cache = QPixmap(r.size()); ++ cache.fill(Qt::transparent); ++ QRect pixmapRect(0, 0, r.width(), r.height()); ++ QPainter cachePainter(&cache); ++ if (header->orientation == Qt::Vertical) { ++ cachePainter.setPen(QPen(dark)); ++ cachePainter.drawLine(pixmapRect.topRight(), pixmapRect.bottomRight()); ++ if (header->position != QStyleOptionHeader::End) { ++ cachePainter.setPen(QPen(shadow)); ++ cachePainter.drawLine(pixmapRect.bottomLeft() + QPoint(3, -1), pixmapRect.bottomRight() + QPoint(-3, -1)); cachePainter.setPen(QPen(option->palette.light().color())); ++ cachePainter.drawLine(pixmapRect.bottomLeft() + QPoint(3, 0), pixmapRect.bottomRight() + QPoint(-3, 0)); } ++ } else { ++ cachePainter.setPen(QPen(dark)); ++ cachePainter.drawLine(pixmapRect.bottomLeft(), pixmapRect.bottomRight()); ++ cachePainter.setPen(QPen(shadow)); ++ cachePainter.drawLine(pixmapRect.topRight() + QPoint(-1, 3), pixmapRect.bottomRight() + QPoint(-1, -3)); cachePainter.setPen(QPen(option->palette.light().color())); ++ cachePainter.drawLine(pixmapRect.topRight() + QPoint(0, 3), pixmapRect.bottomRight() + QPoint(0, -3)); } ++ cachePainter.end(); ++ if (UsePixmapCache) ++ QPixmapCache::insert(pixmapName, cache); ++ } ++ painter->drawPixmap(r.topLeft(), cache); ++ } ++ painter->restore(); ++ break; ++ case CE_ProgressBarGroove: ++ painter->save(); ++ { ++ painter->fillRect(rect, option->palette.base()); ++ QColor borderColor = dark.lighter(110); ++ painter->setPen(QPen(borderColor, 0)); ++ painter->drawLine(QPoint(rect.left() + 1, rect.top()), QPoint(rect.right() - 1, rect.top())); ++ painter->drawLine(QPoint(rect.left() + 1, rect.bottom()), QPoint(rect.right() - 1, rect.bottom())); ++ painter->drawLine(QPoint(rect.left(), rect.top() + 1), QPoint(rect.left(), rect.bottom() - 1)); ++ painter->drawLine(QPoint(rect.right(), rect.top() + 1), QPoint(rect.right(), rect.bottom() - 1)); ++ QColor alphaCorner = mergedColors(borderColor, option->palette.background().color()); ++ QColor innerShadow = mergedColors(borderColor, option->palette.base().color()); ++ ++ //corner smoothing ++ painter->setPen(alphaCorner); ++ painter->drawPoint(rect.topRight()); ++ painter->drawPoint(rect.topLeft()); ++ painter->drawPoint(rect.bottomRight()); ++ painter->drawPoint(rect.bottomLeft()); ++ ++ //inner shadow ++ painter->setPen(innerShadow); ++ painter->drawLine(QPoint(rect.left() + 1, rect.top() + 1), ++ QPoint(rect.right() - 1, rect.top() + 1)); ++ painter->drawLine(QPoint(rect.left() + 1, rect.top() + 1), ++ QPoint(rect.left() + 1, rect.bottom() + 1)); ++ ++ } ++ painter->restore(); ++ break; ++ case CE_ProgressBarContents: ++ painter->save(); ++ if (const QStyleOptionProgressBar *bar = qstyleoption_cast(option)) { ++ QRect rect = bar->rect; ++ bool vertical = false; ++ bool inverted = false; ++ bool indeterminate = (bar->minimum == 0 && bar->maximum == 0); ++ ++ // Get extra style options if version 2 ++ if (const QStyleOptionProgressBarV2 *bar2 = qstyleoption_cast(option)) { ++ vertical = (bar2->orientation == Qt::Vertical); ++ inverted = bar2->invertedAppearance; ++ } ++ ++ // If the orientation is vertical, we use a transform to rotate ++ // the progress bar 90 degrees clockwise. This way we can use the ++ // same rendering code for both orientations. ++ if (vertical) { ++ rect = QRect(rect.left(), rect.top(), rect.height(), rect.width()); // flip width and height ++ QTransform m; ++ m.translate(rect.height()-1, -1.0); ++ m.rotate(90.0); ++ painter->setTransform(m, true); ++ } ++ ++ int maxWidth = rect.width() - 4; ++ int minWidth = 4; ++ qint64 progress = (qint64)qMax(bar->progress, bar->minimum); // workaround for bug in QProgressBar ++ double vc6_workaround = ((progress - qint64(bar->minimum)) / qMax(double(1.0), double(qint64(bar->maximum) - qint64(bar->minimum))) * maxWidth); ++ int progressBarWidth = (int(vc6_workaround) > minWidth ) ? int(vc6_workaround) : minWidth; ++ int width = indeterminate ? maxWidth : progressBarWidth; ++ ++ bool reverse = (!vertical && (bar->direction == Qt::RightToLeft)) || vertical; ++ if (inverted) ++ reverse = !reverse; ++ ++ QRect progressBar; ++ if (!indeterminate) { ++ if (!reverse) { ++ progressBar.setRect(rect.left() + 1, rect.top() + 1, width + 1, rect.height() - 3); ++ } else { ++ progressBar.setRect(rect.right() - 1 - width, rect.top() + 1, width + 1, rect.height() - 3); ++ } ++ } else { ++ Q_D(const QHaikuStyle); ++ int slideWidth = ((rect.width() - 4) * 2) / 3; ++ int step = ((d->animateStep * slideWidth) / d->animationFps) % slideWidth; ++ if ((((d->animateStep * slideWidth) / d->animationFps) % (2 * slideWidth)) >= slideWidth) ++ step = slideWidth - step; ++ progressBar.setRect(rect.left() + 1 + step, rect.top() + 1, ++ slideWidth / 2, rect.height() - 3); ++ } ++ QColor highlight = option->palette.color(QPalette::Normal, QPalette::Highlight); ++ painter->setPen(QPen(highlight.darker(140), 0)); ++ ++ QColor highlightedGradientStartColor = highlight.lighter(100); ++ QColor highlightedGradientStopColor = highlight.lighter(130); ++ ++ QLinearGradient gradient(rect.topLeft(), QPoint(rect.bottomLeft().x(), ++ rect.bottomLeft().y()*2)); ++ ++ gradient.setColorAt(0, highlightedGradientStartColor); ++ gradient.setColorAt(1, highlightedGradientStopColor); ++ ++ painter->setBrush(gradient); ++ painter->drawRect(progressBar); ++ ++ painter->setPen(QPen(highlight.lighter(120), 0)); ++ painter->drawLine(QPoint(progressBar.left() + 1, progressBar.top() + 1), ++ QPoint(progressBar.right(), progressBar.top() + 1)); ++ painter->drawLine(QPoint(progressBar.left() + 1, progressBar.top() + 1), ++ QPoint(progressBar.left() + 1, progressBar.bottom() - 1)); ++ ++ painter->setPen(QPen(highlightedGradientStartColor, 7.0));//QPen(option->palette.highlight(), 3)); ++ ++ painter->save(); ++ painter->setClipRect(progressBar.adjusted(2, 2, -1, -1)); ++ for (int x = progressBar.left() - 32; x < rect.right() ; x+=18) { ++ painter->drawLine(x, progressBar.bottom() + 1, x + 23, progressBar.top() - 2); ++ } ++ painter->restore(); ++ ++ } ++ painter->restore(); ++ break; ++ case CE_MenuBarItem: ++ painter->save(); ++ if (const QStyleOptionMenuItem *mbi = qstyleoption_cast(option)) ++ { ++ QStyleOptionMenuItem item = *mbi; ++ item.rect = mbi->rect.adjusted(0, 0, 0, 0); ++ if (be_control_look != NULL) { ++ QRect r = rect.adjusted(0,-1,0,0); ++ rgb_color base = ui_color(B_MENU_BACKGROUND_COLOR);; ++ uint32 flags = 0; ++ BRect bRect(0.0f, 0.0f, r.width() - 1, r.height() - 1); ++ TemporarySurface surface(bRect); ++ be_control_look->DrawMenuBarBackground(surface.view(), bRect, bRect, base, flags, 8); ++ painter->drawImage(r, surface.image()); ++ } ++ ++ bool act = mbi->state & State_Selected && mbi->state & State_Sunken; ++ bool dis = !(mbi->state & State_Enabled); ++ ++ QRect r = option->rect; ++ if (act) { ++ qt_haiku_draw_gradient(painter, r.adjusted(1, 1, -1, -1), ++ QColor(150,150,150), ++ QColor(168,168,168), TopDown, ++ QColor(168,168,168)); ++ ++ painter->setPen(QPen(QColor(168,168,168), 0)); ++ painter->drawLine(QPoint(r.left(), r.top()), QPoint(r.left(), r.bottom())); ++ painter->drawLine(QPoint(r.right(), r.top()), QPoint(r.right(), r.bottom())); ++ painter->drawLine(QPoint(r.left(), r.bottom()), QPoint(r.right(), r.bottom())); ++ painter->drawLine(QPoint(r.left(), r.top()), QPoint(r.right(), r.top())); ++ } ++ ++ QPalette::ColorRole textRole = QPalette::Text; ++ uint alignment = Qt::AlignCenter | Qt::TextHideMnemonic | Qt::TextDontClip | Qt::TextSingleLine; ++ drawItemText(painter, item.rect, alignment, mbi->palette, mbi->state & State_Enabled, mbi->text, textRole); ++ } ++ painter->restore(); ++ break; ++ case CE_MenuItem: ++ painter->save(); ++ // Draws one item in a popup menu. ++ if (const QStyleOptionMenuItem *menuItem = qstyleoption_cast(option)) { ++ QColor highlightOutline = QColor(168,168,168); ++ QColor menuBackground = option->palette.background().color().lighter(104); ++ QColor borderColor = option->palette.background().color().darker(160); ++ QColor alphaCornerColor; ++ ++ if (widget) { ++ // ### backgroundrole/foregroundrole should be part of the style option ++ alphaCornerColor = mergedColors(option->palette.color(widget->backgroundRole()), borderColor); ++ } else { ++ alphaCornerColor = mergedColors(option->palette.background().color(), borderColor); ++ } ++ QColor alphaTextColor = mergedColors(option->palette.background().color(), option->palette.text().color()); ++ if (menuItem->menuItemType == QStyleOptionMenuItem::Separator) { ++ painter->fillRect(menuItem->rect, menuBackground); ++ int w = 0; ++ if (!menuItem->text.isEmpty()) { ++ painter->setFont(menuItem->font); ++ drawItemText(painter, menuItem->rect.adjusted(5, 0, -5, 0), Qt::AlignLeft | Qt::AlignVCenter, ++ menuItem->palette, menuItem->state & State_Enabled, menuItem->text, ++ QPalette::Text); ++ w = menuItem->fontMetrics.width(menuItem->text) + 5; ++ } ++ painter->setPen(shadow.lighter(106)); ++ bool reverse = menuItem->direction == Qt::RightToLeft; ++ painter->drawLine(menuItem->rect.left() + 5 + (reverse ? 0 : w), menuItem->rect.center().y(), ++ menuItem->rect.right() - 5 - (reverse ? w : 0), menuItem->rect.center().y()); ++ painter->restore(); ++ break; ++ } ++ bool selected = menuItem->state & State_Selected; //&& menuItem->state & State_Enabled; ++ if (selected) { ++ QRect r = option->rect.adjusted(1, 0, -2, -1); ++ qt_haiku_draw_gradient(painter, r, QColor(150,150,150), ++ QColor(168,168,168), TopDown, ++ QColor(168,168,168)); ++ r = r.adjusted(-1, 0, 1, 0); ++ painter->setPen(QPen(QColor(168,168,168), 0)); ++ painter->drawLine(QPoint(r.left(), r.top()), QPoint(r.left(), r.bottom())); ++ painter->drawLine(QPoint(r.right(), r.top()), QPoint(r.right(), r.bottom())); ++ painter->drawLine(QPoint(r.left(), r.bottom()), QPoint(r.right(), r.bottom())); ++ painter->drawLine(QPoint(r.left(), r.top()), QPoint(r.right(), r.top())); ++ } else { ++ painter->fillRect(option->rect, menuBackground); ++ } ++ ++ bool checkable = menuItem->checkType != QStyleOptionMenuItem::NotCheckable; ++ bool checked = menuItem->checked; ++ bool sunken = menuItem->state & State_Sunken; ++ bool enabled = menuItem->state & State_Enabled; ++ ++ bool ignoreCheckMark = false; ++ int checkcol = qMax(menuItem->maxIconWidth, 20); ++ ++#ifndef QT_NO_COMBOBOX ++ if (qobject_cast(widget)) ++ ignoreCheckMark = true; //ignore the checkmarks provided by the QComboMenuDelegate ++#endif ++ ++ if (!ignoreCheckMark) { ++ // Check ++ QRect checkRect(option->rect.left() + 7, option->rect.center().y() - 6, 13, 13); ++ checkRect = visualRect(menuItem->direction, menuItem->rect, checkRect); ++ if (checkable) { ++ if (menuItem->checkType & QStyleOptionMenuItem::Exclusive) { ++ // Radio button ++ if (checked || sunken) { ++ painter->setRenderHint(QPainter::Antialiasing); ++ painter->setPen(Qt::NoPen); ++ ++ QPalette::ColorRole textRole = !enabled ? QPalette::Text: ++ selected ? QPalette::HighlightedText : QPalette::ButtonText; ++ painter->setBrush(option->palette.brush( option->palette.currentColorGroup(), textRole)); ++ painter->drawEllipse(checkRect.adjusted(4, 4, -4, -4)); ++ } ++ } else { ++ // Check box ++ if (menuItem->icon.isNull()) { ++ if (checked || sunken) { ++ QImage image(qt_haiku_menuitem_checkbox_checked); ++ if (enabled && (menuItem->state & State_Selected)) { ++ image.setColor(1, 0x55ffffff); ++ image.setColor(2, 0xAAffffff); ++ image.setColor(3, 0xBBffffff); ++ image.setColor(4, 0xFFffffff); ++ image.setColor(5, 0x33ffffff); ++ } else { ++ image.setColor(1, 0x55000000); ++ image.setColor(2, 0xAA000000); ++ image.setColor(3, 0xBB000000); ++ image.setColor(4, 0xFF000000); ++ image.setColor(5, 0x33000000); ++ } ++ painter->drawImage(QPoint(checkRect.center().x() - image.width() / 2, ++ checkRect.center().y() - image.height() / 2), image); ++ } ++ } ++ } ++ } ++ } else { //ignore checkmark ++ if (menuItem->icon.isNull()) ++ checkcol = 0; ++ else ++ checkcol = menuItem->maxIconWidth; ++ } ++ ++ // Text and icon, ripped from windows style ++ bool dis = !(menuItem->state & State_Enabled); ++ bool act = menuItem->state & State_Selected; ++ const QStyleOption *opt = option; ++ const QStyleOptionMenuItem *menuitem = menuItem; ++ ++ QPainter *p = painter; ++ QRect vCheckRect = visualRect(opt->direction, menuitem->rect, ++ QRect(menuitem->rect.x(), menuitem->rect.y(), ++ checkcol, menuitem->rect.height())); ++ if (!menuItem->icon.isNull()) { ++ QIcon::Mode mode = dis ? QIcon::Disabled : QIcon::Normal; ++ if (act && !dis) ++ mode = QIcon::Active; ++ QPixmap pixmap; ++ ++ int smallIconSize = pixelMetric(PM_SmallIconSize, option, widget); ++ QSize iconSize(smallIconSize, smallIconSize); ++#ifndef QT_NO_COMBOBOX ++ if (const QComboBox *combo = qobject_cast(widget)) ++ iconSize = combo->iconSize(); ++#endif // QT_NO_COMBOBOX ++ if (checked) ++ pixmap = menuItem->icon.pixmap(iconSize, mode, QIcon::On); ++ else ++ pixmap = menuItem->icon.pixmap(iconSize, mode); ++ ++ int pixw = pixmap.width(); ++ int pixh = pixmap.height(); ++ ++ QRect pmr(0, 0, pixw, pixh); ++ pmr.moveCenter(vCheckRect.center()); ++ painter->setPen(menuItem->palette.text().color()); ++ if (checkable && checked) { ++ QStyleOption opt = *option; ++ if (act) { ++ QColor activeColor = mergedColors(option->palette.background().color(), ++ option->palette.highlight().color()); ++ opt.palette.setBrush(QPalette::Button, activeColor); ++ } ++ opt.state |= State_Sunken; ++ opt.rect = vCheckRect; ++ bool enabled = opt.state & State_Enabled; ++ bool focus = opt.state & State_HasFocus; ++ qt_haiku_draw_button(painter, opt.rect, false, false, true, focus, enabled); ++ } ++ painter->drawPixmap(pmr.topLeft(), pixmap); ++ } ++ ++ painter->setPen(menuItem->palette.text().color()); ++ ++ int x, y, w, h; ++ menuitem->rect.getRect(&x, &y, &w, &h); ++ int tab = menuitem->tabWidth; ++ QColor discol; ++ if (dis) { ++ discol = menuitem->palette.text().color(); ++ p->setPen(discol); ++ } ++ int xm = windowsItemFrame + checkcol + windowsItemHMargin; ++ int xpos = menuitem->rect.x() + xm; ++ ++ QRect textRect(xpos, y + windowsItemVMargin, w - xm - windowsRightBorder - tab + 1, h - 2 * windowsItemVMargin); ++ QRect vTextRect = visualRect(opt->direction, menuitem->rect, textRect); ++ QString s = menuitem->text; ++ if (!s.isEmpty()) { // draw text ++ p->save(); ++ int t = s.indexOf(QLatin1Char('\t')); ++ int text_flags = Qt::AlignVCenter | Qt::TextShowMnemonic | Qt::TextDontClip | Qt::TextSingleLine; ++ if (!styleHint(SH_UnderlineShortcut, menuitem, widget)) ++ text_flags |= Qt::TextHideMnemonic; ++ text_flags |= Qt::AlignLeft; ++ if (t >= 0) { ++ QString sText = s.mid(t + 1); ++ sText.replace("Ctrl+","Alt+"); ++ QRect vShortcutRect = visualRect(opt->direction, menuitem->rect, ++ QRect(textRect.topRight(), QPoint(menuitem->rect.right(), textRect.bottom()))); ++ if (dis && !act && styleHint(SH_EtchDisabledText, option, widget)) { ++ p->setPen(menuitem->palette.light().color()); ++ p->drawText(vShortcutRect.adjusted(1, 1, 1, 1), text_flags, sText); ++ p->setPen(discol); ++ } ++ p->drawText(vShortcutRect, text_flags, sText); ++ s = s.left(t); ++ } ++ QFont font = menuitem->font; ++ ++ if (menuitem->menuItemType == QStyleOptionMenuItem::DefaultItem) ++ font.setBold(true); ++ ++ p->setFont(font); ++ if (dis && !act && styleHint(SH_EtchDisabledText, option, widget)) { ++ p->setPen(menuitem->palette.light().color()); ++ p->drawText(vTextRect.adjusted(1, 1, 1, 1), text_flags, s.left(t)); ++ p->setPen(discol); ++ } ++ p->drawText(vTextRect, text_flags, s.left(t)); ++ p->restore(); ++ } ++ ++ // Arrow ++ if (menuItem->menuItemType == QStyleOptionMenuItem::SubMenu) {// draw sub menu arrow ++ int dim = (menuItem->rect.height() - 4) / 2; ++ PrimitiveElement arrow; ++ arrow = QApplication::isRightToLeft() ? PE_IndicatorArrowLeft : PE_IndicatorArrowRight; ++ int xpos = menuItem->rect.left() + menuItem->rect.width() - 3 - dim; ++ QRect vSubMenuRect = visualRect(option->direction, menuItem->rect, ++ QRect(xpos, menuItem->rect.top() + menuItem->rect.height() / 2 - dim / 2, dim, dim)); ++ QStyleOptionMenuItem newMI = *menuItem; ++ newMI.rect = vSubMenuRect; ++ newMI.state = !enabled ? State_None : State_Enabled; ++ if (selected) ++ newMI.palette.setColor(QPalette::ButtonText, ++ newMI.palette.highlightedText().color()); ++ drawPrimitive(arrow, &newMI, painter, widget); ++ } ++ } ++ painter->restore(); ++ break; ++ case CE_MenuHMargin: ++ case CE_MenuVMargin: ++ break; ++ case CE_MenuEmptyArea: ++ break; ++ case CE_PushButtonLabel: ++ if (const QStyleOptionButton *button = qstyleoption_cast(option)) { ++ bool pushed = (option->state & State_Sunken) || (option->state & State_On); ++ ++ QRect ir = button->rect; ++ uint tf = Qt::AlignVCenter; ++ if (styleHint(SH_UnderlineShortcut, button, widget)) ++ tf |= Qt::TextShowMnemonic; ++ else ++ tf |= Qt::TextHideMnemonic; ++ ++ if (!button->icon.isNull() && button->text.isEmpty()) { ++ //Center both icon and text ++ QPoint point; ++ ++ QIcon::Mode mode = button->state & State_Enabled ? QIcon::Normal ++ : QIcon::Disabled; ++ if (mode == QIcon::Normal && button->state & State_HasFocus) ++ mode = QIcon::Active; ++ QIcon::State state = QIcon::Off; ++ if (button->state & State_On) ++ state = QIcon::On; ++ ++ QPixmap pixmap = button->icon.pixmap(button->iconSize, mode, state); ++ int w = pixmap.width(); ++ int h = pixmap.height(); ++ ++ if (!button->text.isEmpty()) ++ w += button->fontMetrics.boundingRect(option->rect, tf, button->text).width() + 2; ++ ++ point = QPoint(ir.x() + ir.width() / 2 - w / 2, ++ ir.y() + ir.height() / 2 - h / 2); ++ ++ if (button->direction == Qt::RightToLeft) ++ point.rx() += pixmap.width(); ++ ++ painter->drawPixmap(visualPos(button->direction, button->rect, point), pixmap); ++ ++ if (button->direction == Qt::RightToLeft) ++ ir.translate(-point.x() - 2, 0); ++ else ++ ir.translate(point.x() + pixmap.width(), 0); ++ ++ // left-align text if there is ++ if (!button->text.isEmpty()) ++ tf |= Qt::AlignLeft; ++ ++ } else { ++ tf |= Qt::AlignHCenter; ++ } ++ ++ if (button->features & QStyleOptionButton::HasMenu) ++ ir = ir.adjusted(0, 0, -pixelMetric(PM_MenuButtonIndicator, button, widget), 0); ++ if(pushed) ++ ir = ir.adjusted(1,1,0,0); ++ drawItemText(painter, ir, tf, button->palette, (button->state & State_Enabled), ++ button->text, QPalette::ButtonText); ++ } ++ break; ++ case CE_MenuBarEmptyArea: ++ painter->save(); ++ { ++ if (be_control_look != NULL) { ++ QRect r = rect.adjusted(0,0,0,-1); ++ rgb_color base = ui_color(B_MENU_BACKGROUND_COLOR);; ++ uint32 flags = 0; ++ BRect bRect(0.0f, 0.0f, r.width() - 1, r.height() - 1); ++ TemporarySurface surface(bRect); ++ be_control_look->DrawMenuBarBackground(surface.view(), bRect, bRect, base, flags); ++ painter->drawImage(r, surface.image()); ++ } ++ ++ painter->setPen(QPen(QColor(152,152,152))); ++ painter->drawLine(rect.bottomLeft(), rect.bottomRight()); ++ } ++ painter->restore(); ++ break; ++#ifndef QT_NO_TABBAR ++ case CE_TabBarTabShape: ++ painter->save(); ++ if (const QStyleOptionTab *tab = qstyleoption_cast(option)) { ++ ++ bool rtlHorTabs = (tab->direction == Qt::RightToLeft ++ && (tab->shape == QTabBar::RoundedNorth ++ || tab->shape == QTabBar::RoundedSouth)); ++ bool selected = tab->state & State_Selected; ++ bool lastTab = ((!rtlHorTabs && tab->position == QStyleOptionTab::End) ++ || (rtlHorTabs ++ && tab->position == QStyleOptionTab::Beginning)); ++ bool onlyTab = tab->position == QStyleOptionTab::OnlyOneTab; ++ bool leftCornerWidget = (tab->cornerWidgets & QStyleOptionTab::LeftCornerWidget); ++ ++ bool atBeginning = ((tab->position == (tab->direction == Qt::LeftToRight ? ++ QStyleOptionTab::Beginning : QStyleOptionTab::End)) || onlyTab); ++ ++ bool onlyOne = tab->position == QStyleOptionTab::OnlyOneTab; ++ bool previousSelected = ++ ((!rtlHorTabs ++ && tab->selectedPosition == QStyleOptionTab::PreviousIsSelected) ++ || (rtlHorTabs ++ && tab->selectedPosition == QStyleOptionTab::NextIsSelected)); ++ bool nextSelected = ++ ((!rtlHorTabs ++ && tab->selectedPosition == QStyleOptionTab::NextIsSelected) ++ || (rtlHorTabs ++ && tab->selectedPosition ++ == QStyleOptionTab::PreviousIsSelected)); ++ int tabBarAlignment = styleHint(SH_TabBar_Alignment, tab, widget); ++ bool leftAligned = (!rtlHorTabs && tabBarAlignment == Qt::AlignLeft) ++ || (rtlHorTabs ++ && tabBarAlignment == Qt::AlignRight); ++ ++ bool rightAligned = (!rtlHorTabs && tabBarAlignment == Qt::AlignRight) ++ || (rtlHorTabs ++ && tabBarAlignment == Qt::AlignLeft); ++ ++ QColor light = tab->palette.light().color(); ++ QColor midlight = tab->palette.midlight().color(); ++ ++ QColor background = tab->palette.background().color(); ++ int borderThinkness = pixelMetric(PM_TabBarBaseOverlap, tab, widget); ++ if (selected) ++ borderThinkness /= 2; ++ QRect r2(option->rect); ++ int x1 = r2.left(); ++ int x2 = r2.right(); ++ int y1 = r2.top()+2; ++ int y2 = r2.bottom(); ++ ++ QTransform rotMatrix; ++ bool flip = false; ++ painter->setPen(shadow); ++ QColor activeHighlight = option->palette.color(QPalette::Normal, QPalette::Highlight); ++ switch (tab->shape) { ++ case QTabBar::RoundedNorth: ++ break; ++ case QTabBar::RoundedSouth: ++ rotMatrix.rotate(180); ++ rotMatrix.translate(0, -rect.height() + 1); ++ rotMatrix.scale(-1, 1); ++ painter->setTransform(rotMatrix, true); ++ break; ++ case QTabBar::RoundedWest: ++ rotMatrix.rotate(180 + 90); ++ rotMatrix.scale(-1, 1); ++ flip = true; ++ painter->setTransform(rotMatrix, true); ++ break; ++ case QTabBar::RoundedEast: ++ rotMatrix.rotate(90); ++ rotMatrix.translate(0, - rect.width() + 1); ++ flip = true; ++ painter->setTransform(rotMatrix, true); ++ break; ++ default: ++ painter->restore(); ++ QWindowsStyle::drawControl(element, tab, painter, widget); ++ return; ++ } ++ ++ if (flip) { ++ QRect tmp = rect; ++ rect = QRect(tmp.y(), tmp.x(), tmp.height(), tmp.width()); ++ int temp = x1; ++ x1 = y1; ++ y1 = temp; ++ temp = x2; ++ x2 = y2; ++ y2 = temp; ++ } ++ ++ QLinearGradient gradient(rect.topLeft(), rect.bottomLeft()); ++ if (option->palette.button().gradient()) { ++ if (selected) ++ gradient.setStops(option->palette.background().gradient()->stops()); ++ else ++ gradient.setStops(option->palette.background().gradient()->stops()); ++ } ++ else if (selected) { ++ gradient.setColorAt(0, option->palette.background().color().lighter(104)); ++ gradient.setColorAt(1, tabFrameColor); ++ painter->fillRect(rect.adjusted(0, 2, 0, -2), gradient); ++ } else { ++ y1 += 2; ++ gradient.setColorAt(0, option->palette.background().color()); ++ gradient.setColorAt(1, dark.lighter(120)); ++ painter->fillRect(rect.adjusted(0, 2, 0, -2), gradient); ++ } ++ ++ // Delete border ++ if (selected) { ++ painter->setPen(QColor(200,200,200)); ++ painter->drawLine(x1 + 2, y2 - 1, x2 - 2, y2 - 1); ++ } else { ++ painter->setPen(dark); ++ painter->drawLine(x1, y2 - 1, x2 + 2, y2 - 1 ); ++ if (tab->shape == QTabBar::RoundedNorth || tab->shape == QTabBar::RoundedWest) { ++ painter->setPen(light); ++ painter->drawLine(x1, y2 , x2, y2 ); ++ } ++ } ++ // Left ++ if (atBeginning || selected ) { ++ painter->setPen(light); ++ painter->drawLine(x1 + 1, y1 + 2 + 1, x1 + 1, y2 - ((onlyOne || atBeginning) && selected && leftAligned ? 0 : borderThinkness) - (atBeginning && leftCornerWidget ? 1 : 0)); ++ //painter->drawPoint(x1 + 1, y1 + 1); ++ painter->setPen(dark); ++ painter->drawLine(x1, y1 + 2, x1, y2 - ((onlyOne || atBeginning) && leftAligned ? 0 : borderThinkness) - (atBeginning && leftCornerWidget ? 1 : 0)); ++ } ++ // Top ++ { ++ int beg = x1 + (previousSelected ? 0 : 1); ++ int end = x2 - (nextSelected ? 0 : 2); ++ //painter->setPen(light); ++ ++ // if (!selected)painter->drawLine(beg - 3, y1 + 1, end, y1 + 1); ++ ++/* if (selected) ++ painter->setPen(QPen(activeHighlight.darker(150), 0)); ++ else ++ painter->setPen(darkOutline);*/ ++ ++ painter->setPen(darkOutline); ++ painter->drawLine(beg, y1 , end, y1); ++ ++ if (atBeginning|| selected) { ++ painter->drawPoint(beg - 1, y1 + 1); ++ } else if (!atBeginning) { ++ painter->drawPoint(beg - 1, y1); ++ painter->drawPoint(beg - 2, y1); ++ if (!lastTab) { ++ painter->setPen(dark.lighter(130)); ++ painter->drawPoint(end + 1, y1); ++ painter->drawPoint(end + 2 , y1); ++ painter->drawPoint(end + 3, y1); ++ } ++ } ++ } ++ // Right ++ if (lastTab || selected || onlyOne || !nextSelected) { ++ painter->setPen(darkOutline); ++ ++ if (selected) { ++ painter->drawLine(x2, y1 + 2, x2, y2 - ((onlyOne || lastTab) && selected && rightAligned ? 0 : borderThinkness)); ++ painter->setPen(QPen(activeHighlight.darker(150), 0)); ++ painter->drawPoint(x2 - 1, y1 + 1); ++ } else { ++ painter->drawLine(x2, y1 + 1, x2, y2 - ((onlyOne || lastTab) && selected && rightAligned ? 0 : borderThinkness)); ++ painter->drawPoint(x2 - 1, y1); ++ } ++ ++ if (selected) { ++ painter->setPen(background.darker(110)); ++ painter->drawLine(x2 - 1, y1 + 2, x2 - 1, y2 - ((onlyOne || lastTab) && selected && rightAligned ? 0 : borderThinkness)); ++ } ++ } ++ } ++ painter->restore(); ++ break; ++ ++#endif // QT_NO_TABBAR ++ default: ++ QWindowsStyle::drawControl(element,option,painter,widget); ++ break; ++ } ++} ++ ++/*! ++ \reimp ++*/ ++ ++QPalette QHaikuStyle::standardPalette () const ++{ ++ QPalette palette = QWindowsStyle::standardPalette(); ++ palette.setBrush(QPalette::Active, QPalette::Highlight, QColor(98, 140, 178)); ++ palette.setBrush(QPalette::Inactive, QPalette::Highlight, QColor(145, 141, 126)); ++ palette.setBrush(QPalette::Disabled, QPalette::Highlight, QColor(145, 141, 126)); ++ ++ QColor backGround(mkQColor(ui_color(B_PANEL_BACKGROUND_COLOR))); ++ ++ QColor light = backGround.lighter(150); ++ QColor base = Qt::white; ++ QColor dark = QColor(170, 156, 143).darker(110); ++ dark = backGround.darker(150); ++ QColor darkDisabled = QColor(209, 200, 191).darker(110); ++ ++ //### Find the correct disabled text color ++ palette.setBrush(QPalette::Disabled, QPalette::Text, QColor(190, 190, 190)); ++ ++ palette.setBrush(QPalette::Window, backGround); ++ palette.setBrush(QPalette::Mid, backGround.darker(130)); ++ palette.setBrush(QPalette::Light, light); ++ ++ palette.setBrush(QPalette::Active, QPalette::Base, base); ++ palette.setBrush(QPalette::Inactive, QPalette::Base, base); ++ palette.setBrush(QPalette::Disabled, QPalette::Base, backGround); ++ ++ palette.setBrush(QPalette::Midlight, palette.mid().color().lighter(110)); ++ ++ palette.setBrush(QPalette::All, QPalette::Dark, dark); ++ palette.setBrush(QPalette::Disabled, QPalette::Dark, darkDisabled); ++ ++ QColor button = backGround; ++ ++ palette.setBrush(QPalette::Button, button); ++ ++ QColor shadow = dark.darker(135); ++ palette.setBrush(QPalette::Shadow, shadow); ++ palette.setBrush(QPalette::Disabled, QPalette::Shadow, shadow.lighter(150)); ++ palette.setBrush(QPalette::HighlightedText, QColor(QRgb(0xffffffff))); ++ return palette; ++} ++ ++/*! ++ \reimp ++*/ ++void QHaikuStyle::drawComplexControl(ComplexControl control, const QStyleOptionComplex *option, ++ QPainter *painter, const QWidget *widget) const ++{ ++ QColor button = option->palette.button().color(); ++ QColor dark; ++ QColor grooveColor; ++ QColor darkOutline; ++ dark.setHsv(button.hue(), ++ CL_MIN(255, (int)(button.saturation()*1.9)), ++ CL_MIN(255, (int)(button.value()*0.7))); ++ grooveColor.setHsv(button.hue(), ++ CL_MIN(255, (int)(button.saturation()*2.6)), ++ CL_MIN(255, (int)(button.value()*0.9))); ++ darkOutline.setHsv(button.hue(), ++ CL_MIN(255, (int)(button.saturation()*3.0)), ++ CL_MIN(255, (int)(button.value()*0.6))); ++ ++ QColor alphaCornerColor; ++ if (widget) { ++ // ### backgroundrole/foregroundrole should be part of the style option ++ alphaCornerColor = mergedColors(option->palette.color(widget->backgroundRole()), darkOutline); ++ } else { ++ alphaCornerColor = mergedColors(option->palette.background().color(), darkOutline); ++ } ++ QColor gripShadow = grooveColor.darker(110); ++ QColor buttonShadow = option->palette.button().color().darker(110); ++ ++ QColor gradientStartColor = option->palette.button().color().lighter(108); ++ QColor gradientStopColor = mergedColors(option->palette.button().color().darker(108), dark.lighter(150), 70); ++ ++ QColor highlightedGradientStartColor = option->palette.button().color(); ++ QColor highlightedGradientStopColor = mergedColors(option->palette.button().color(), option->palette.highlight().color(), 85); ++ ++ QColor highlightedDarkInnerBorderColor = mergedColors(option->palette.button().color(), option->palette.highlight().color(), 35); ++ QColor highlightedLightInnerBorderColor = mergedColors(option->palette.button().color(), option->palette.highlight().color(), 58); ++ ++ QColor buttonShadowAlpha = option->palette.background().color().darker(105); ++ ++ QPalette palette = option->palette; ++ ++ switch (control) { ++#ifndef QT_NO_SPINBOX ++ case CC_SpinBox: ++ if (const QStyleOptionSpinBox *spinBox = qstyleoption_cast(option)) { ++ QPixmap cache; ++ QString pixmapName = uniqueName(QLatin1String("spinbox"), spinBox, spinBox->rect.size()); ++ if (!UsePixmapCache || !QPixmapCache::find(pixmapName, cache)) { ++ cache = QPixmap(spinBox->rect.size()); ++ cache.fill(Qt::transparent); ++ QRect pixmapRect(0, 0, spinBox->rect.width(), spinBox->rect.height()); ++ QPainter cachePainter(&cache); ++ ++ bool isEnabled = (spinBox->state & State_Enabled); ++ //bool focus = isEnabled && (spinBox->state & State_HasFocus); ++ bool hover = isEnabled && (spinBox->state & State_MouseOver); ++ bool sunken = (spinBox->state & State_Sunken); ++ bool upIsActive = (spinBox->activeSubControls == SC_SpinBoxUp); ++ bool downIsActive = (spinBox->activeSubControls == SC_SpinBoxDown); ++ ++ QRect rect = pixmapRect; ++ QStyleOptionSpinBox spinBoxCopy = *spinBox; ++ spinBoxCopy.rect = pixmapRect; ++ QRect upRect = subControlRect(CC_SpinBox, &spinBoxCopy, SC_SpinBoxUp, widget); ++ QRect downRect = subControlRect(CC_SpinBox, &spinBoxCopy, SC_SpinBoxDown, widget); ++ ++ int fw = spinBoxCopy.frame ? pixelMetric(PM_SpinBoxFrameWidth, &spinBoxCopy, widget) : 0; ++ cachePainter.fillRect(rect.adjusted(1, qMax(fw - 1, 0), -1, -fw), ++ option->palette.base()); ++ ++ QRect r = rect.adjusted(0, 1, 0, -1); ++ if (spinBox->frame) { ++ ++ QColor topShadow = darkOutline; ++ topShadow.setAlpha(60); ++ cachePainter.setPen(topShadow); ++ ++ // antialias corners ++ cachePainter.drawPoint(QPoint(r.right(), r.top() + 1)); ++ cachePainter.drawPoint(QPoint(r.right() - 1, r.top() )); ++ cachePainter.drawPoint(QPoint(r.right(), r.bottom() - 1)); ++ cachePainter.drawPoint(QPoint(r.right() - 1, r.bottom() )); ++ cachePainter.drawPoint(QPoint(r.left() + 1, r.bottom())); ++ cachePainter.drawPoint(QPoint(r.left(), r.bottom() - 1)); ++ cachePainter.drawPoint(QPoint(r.left() + 1, r.top())); ++ cachePainter.drawPoint(QPoint(r.left(), r.top() + 1)); ++ ++ // draw frame ++ topShadow.setAlpha(30); ++ cachePainter.setPen(topShadow); ++ cachePainter.drawLine(QPoint(r.left() + 2, r.top() - 1), QPoint(r.right() - 2, r.top() - 1)); ++ ++ cachePainter.setPen(QPen(option->palette.background().color(), 1)); ++ cachePainter.drawLine(QPoint(r.left() + 2, r.top() + 1), QPoint(r.right() - 2, r.top() + 1)); ++ QColor highlight = Qt::white; ++ highlight.setAlpha(130); ++ cachePainter.setPen(option->palette.base().color().darker(120)); ++ cachePainter.drawLine(QPoint(r.left() + 1, r.top() + 1), ++ QPoint(r.right() - 1, r.top() + 1)); ++ cachePainter.drawLine(QPoint(r.left() + 1, r.top() + 1), ++ QPoint(r.left() + 1, r.bottom() - 1)); ++ cachePainter.setPen(option->palette.base().color()); ++ cachePainter.drawLine(QPoint(r.right() - 1, r.top() + 1), ++ QPoint(r.right() - 1, r.bottom() - 1)); ++ cachePainter.drawLine(QPoint(r.left() + 1, r.bottom() - 1), ++ QPoint(r.right() - 1, r.bottom() - 1)); ++ cachePainter.setPen(highlight); ++ cachePainter.drawLine(QPoint(r.left() + 3, r.bottom() + 1), ++ QPoint(r.right() - 3, r.bottom() + 1)); ++ ++ cachePainter.setPen(QPen(darkOutline, 1)); ++ ++ // top and bottom lines ++ cachePainter.drawLine(QPoint(r.left() + 2, r.bottom()), QPoint(r.right()- 2, r.bottom())); ++ cachePainter.drawLine(QPoint(r.left() + 2, r.top()), QPoint(r.right() - 2, r.top())); ++ cachePainter.drawLine(QPoint(r.right(), r.top() + 2), QPoint(r.right(), r.bottom() - 2)); ++ cachePainter.drawLine(QPoint(r.left(), r.top() + 2), QPoint(r.left(), r.bottom() - 2)); ++ } ++ ++ // gradients ++ qt_haiku_draw_gradient(&cachePainter, upRect, ++ gradientStartColor.darker(106), ++ gradientStopColor, TopDown, option->palette.button()); ++ qt_haiku_draw_gradient(&cachePainter, downRect.adjusted(0, 0, 0, 1), ++ gradientStartColor.darker(106), ++ gradientStopColor, TopDown, option->palette.button()); ++ if (isEnabled) { ++ if(upIsActive) { ++ if (sunken) { ++ cachePainter.fillRect(upRect.adjusted(1, 0, 0, 0), gradientStopColor.darker(110)); ++ } else if (hover) { ++ qt_haiku_draw_gradient(&cachePainter, upRect.adjusted(1, 0, 0, 0), ++ gradientStartColor.lighter(110), ++ gradientStopColor.lighter(110), TopDown, option->palette.button()); ++ } ++ } ++ if(downIsActive) { ++ if (sunken) { ++ cachePainter.fillRect(downRect.adjusted(1, 0, 0, 1), gradientStopColor.darker(110)); ++ ++ } else if (hover) { ++ qt_haiku_draw_gradient(&cachePainter, downRect.adjusted(1, 0, 0, 1), ++ gradientStartColor.lighter(110), ++ gradientStopColor.lighter(110), TopDown, option->palette.button()); ++ } ++ } ++ } ++ ++ if (spinBox->frame) { ++ // rounded corners ++ cachePainter.drawPoint(QPoint(r.left() + 1, r.bottom() - 1)); ++ cachePainter.drawPoint(QPoint(r.left() + 1, r.top() + 1)); ++ cachePainter.drawPoint(QPoint(r.right() - 1, r.bottom() - 1)); ++ cachePainter.drawPoint(QPoint(r.right() - 1, r.top() + 1)); ++ ++ if (option->state & State_HasFocus) { ++ QColor darkoutline = option->palette.highlight().color().darker(150); ++ QColor innerline = mergedColors(option->palette.highlight().color(), Qt::white); ++ cachePainter.setPen(QPen(innerline, 0)); ++ if (spinBox->direction == Qt::LeftToRight) { ++ cachePainter.drawRect(rect.adjusted(1, 2, -3 -downRect.width(), -3)); ++ cachePainter.setPen(QPen(darkoutline, 0)); ++ cachePainter.drawLine(QPoint(r.left() + 2, r.bottom()), QPoint(r.right()- downRect.width() - 1, r.bottom())); ++ cachePainter.drawLine(QPoint(r.left() + 2, r.top()), QPoint(r.right() - downRect.width() - 1, r.top())); ++ cachePainter.drawLine(QPoint(r.right() - downRect.width() - 1, r.top() + 1), QPoint(r.right()- downRect.width() - 1, r.bottom() - 1)); ++ cachePainter.drawLine(QPoint(r.left(), r.top() + 2), QPoint(r.left(), r.bottom() - 2)); ++ cachePainter.drawPoint(QPoint(r.left() + 1, r.bottom() - 1)); ++ cachePainter.drawPoint(QPoint(r.left() + 1, r.top() + 1)); ++ cachePainter.drawLine(QPoint(r.left(), r.top() + 2), QPoint(r.left(), r.bottom() - 2)); ++ } else { ++ cachePainter.drawRect(rect.adjusted(downRect.width() + 2, 2, -2, -3)); ++ cachePainter.setPen(QPen(darkoutline, 0)); ++ cachePainter.drawLine(QPoint(r.left() + downRect.width(), r.bottom()), QPoint(r.right()- 2 - 1, r.bottom())); ++ cachePainter.drawLine(QPoint(r.left() + downRect.width(), r.top()), QPoint(r.right() - 2 - 1, r.top())); ++ ++ cachePainter.drawLine(QPoint(r.right(), r.top() + 2), QPoint(r.right(), r.bottom() - 2)); ++ cachePainter.drawPoint(QPoint(r.right() - 1, r.bottom() - 1)); ++ cachePainter.drawPoint(QPoint(r.right() - 1, r.top() + 1)); ++ cachePainter.drawLine(QPoint(r.left() + downRect.width() + 1, r.top()), ++ QPoint(r.left() + downRect.width() + 1, r.bottom())); ++ } ++ } ++ } ++ ++ // outline the up/down buttons ++ cachePainter.setPen(darkOutline); ++ QColor light = option->palette.light().color().lighter(); ++ ++ if (spinBox->direction == Qt::RightToLeft) { ++ cachePainter.drawLine(upRect.right(), upRect.top() - 1, upRect.right(), downRect.bottom() + 1); ++ cachePainter.setPen(light); ++ cachePainter.drawLine(upRect.right() - 1, upRect.top() + 3, upRect.right() - 1, downRect.bottom() ); ++ } else { ++ cachePainter.drawLine(upRect.left(), upRect.top() - 1, upRect.left(), downRect.bottom() + 1); ++ cachePainter.setPen(light); ++ cachePainter.drawLine(upRect.left() + 1, upRect.top() , upRect.left() + 1, downRect.bottom() ); ++ } ++ if (upIsActive && sunken) { ++ cachePainter.setPen(gradientStopColor.darker(130)); ++ cachePainter.drawLine(upRect.left() + 1, upRect.top(), upRect.left() + 1, upRect.bottom()); ++ cachePainter.drawLine(upRect.left(), upRect.top() - 1, upRect.right(), upRect.top() - 1); ++ } else { ++ cachePainter.setPen(light); ++ cachePainter.drawLine(upRect.topLeft() + QPoint(1, -1), upRect.topRight() + QPoint(-1, -1)); ++ cachePainter.setPen(darkOutline); ++ cachePainter.drawLine(upRect.bottomLeft(), upRect.bottomRight()); ++ } ++ if (downIsActive && sunken) { ++ cachePainter.setPen(gradientStopColor.darker(130)); ++ cachePainter.drawLine(downRect.left() + 1, downRect.top(), downRect.left() + 1, downRect.bottom() + 1); ++ cachePainter.drawLine(downRect.left(), downRect.top(), downRect.right(), downRect.top()); ++ cachePainter.setPen(gradientStopColor.darker(110)); ++ cachePainter.drawLine(downRect.left(), downRect.bottom() + 1, downRect.right(), downRect.bottom() + 1); ++ } else { ++ cachePainter.setPen(light); ++ cachePainter.drawLine(downRect.topLeft() + QPoint(2,0), downRect.topRight()); ++ } ++ ++ if (spinBox->buttonSymbols == QAbstractSpinBox::PlusMinus) { ++ int centerX = upRect.center().x(); ++ int centerY = upRect.center().y(); ++ cachePainter.setPen(spinBox->palette.foreground().color()); ++ ++ // plus/minus ++ if (spinBox->activeSubControls == SC_SpinBoxUp && sunken) { ++ cachePainter.drawLine(1 + centerX - 2, 1 + centerY, 1 + centerX + 2, 1 + centerY); ++ cachePainter.drawLine(1 + centerX, 1 + centerY - 2, 1 + centerX, 1 + centerY + 2); ++ } else { ++ cachePainter.drawLine(centerX - 2, centerY, centerX + 2, centerY); ++ cachePainter.drawLine(centerX, centerY - 2, centerX, centerY + 2); ++ } ++ ++ centerX = downRect.center().x(); ++ centerY = downRect.center().y(); ++ if (spinBox->activeSubControls == SC_SpinBoxDown && sunken) { ++ cachePainter.drawLine(1 + centerX - 2, 1 + centerY, 1 + centerX + 2, 1 + centerY); ++ } else { ++ cachePainter.drawLine(centerX - 2, centerY, centerX + 2, centerY); ++ } ++ } else if (spinBox->buttonSymbols == QAbstractSpinBox::UpDownArrows){ ++ // arrows ++ QImage upArrow(qt_scrollbar_button_arrow_up); ++ upArrow.setColor(1, spinBox->palette.foreground().color().rgba()); ++ ++ cachePainter.drawImage(upRect.center().x() - upArrow.width() / 2, ++ upRect.center().y() - upArrow.height() / 2, ++ upArrow); ++ ++ QImage downArrow(qt_scrollbar_button_arrow_down); ++ downArrow.setColor(1, spinBox->palette.foreground().color().rgba()); ++ ++ cachePainter.drawImage(downRect.center().x() - downArrow.width() / 2, ++ downRect.center().y() - downArrow.height() / 2 + 1, ++ downArrow); ++ } ++ ++ QColor disabledColor = option->palette.background().color(); ++ disabledColor.setAlpha(150); ++ if (!(spinBox->stepEnabled & QAbstractSpinBox::StepUpEnabled)) ++ cachePainter.fillRect(upRect.adjusted(1, 0, 0, 0), disabledColor); ++ if (!(spinBox->stepEnabled & QAbstractSpinBox::StepDownEnabled)) { ++ cachePainter.fillRect(downRect.adjusted(1, 0, 0, 0), disabledColor); ++ } ++ cachePainter.end(); ++ if (UsePixmapCache) ++ QPixmapCache::insert(pixmapName, cache); ++ } ++ painter->drawPixmap(spinBox->rect.topLeft(), cache); ++ } ++ break; ++#endif // QT_NO_SPINBOX ++ case CC_TitleBar: ++ painter->save(); ++ if (const QStyleOptionTitleBar *titleBar = qstyleoption_cast(option)) { ++ const int buttonMargin = 5; ++ bool active = (titleBar->titleBarState & State_Active); ++ QRect fullRect = titleBar->rect; ++ QPalette palette = option->palette; ++ QColor highlight = option->palette.highlight().color(); ++ ++ QColor titleBarFrameBorder(active ? highlight.darker(180): dark.darker(110)); ++ QColor titleBarHighlight(active ? highlight.lighter(120): palette.background().color().lighter(120)); ++ QColor textColor(active ? 0xffffff : 0xff000000); ++ QColor textAlphaColor(active ? 0xffffff : 0xff000000 ); ++ ++#ifdef QT3_SUPPORT ++ if (widget && widget->inherits("Q3DockWindowTitleBar")) { ++ QStyleOptionDockWidgetV2 dockwidget; ++ dockwidget.QStyleOption::operator=(*option); ++ drawControl(CE_DockWidgetTitle, &dockwidget, painter, widget); ++ } else ++#endif // QT3_SUPPORT ++ { ++ // Fill title bar gradient ++ QColor titlebarColor = QColor(active ? highlight: palette.background().color()); ++ QColor titleBarGradientStop(active ? highlight.darker(150): palette.background().color().darker(120)); ++ QLinearGradient gradient(option->rect.center().x(), option->rect.top(), ++ option->rect.center().x(), option->rect.bottom()); ++ ++ gradient.setColorAt(0, titlebarColor.lighter(114)); ++ gradient.setColorAt(0.5, titlebarColor.lighter(102)); ++ gradient.setColorAt(0.51, titlebarColor.darker(104)); ++ gradient.setColorAt(1, titlebarColor); ++ painter->fillRect(option->rect.adjusted(1, 1, -1, 0), gradient); ++ ++ // Frame and rounded corners ++ painter->setPen(titleBarFrameBorder); ++ ++ // top outline ++ painter->drawLine(fullRect.left() + 5, fullRect.top(), fullRect.right() - 5, fullRect.top()); ++ painter->drawLine(fullRect.left(), fullRect.top() + 4, fullRect.left(), fullRect.bottom()); ++ painter->drawPoint(fullRect.left() + 4, fullRect.top() + 1); ++ painter->drawPoint(fullRect.left() + 3, fullRect.top() + 1); ++ painter->drawPoint(fullRect.left() + 2, fullRect.top() + 2); ++ painter->drawPoint(fullRect.left() + 1, fullRect.top() + 3); ++ painter->drawPoint(fullRect.left() + 1, fullRect.top() + 4); ++ ++ painter->drawLine(fullRect.right(), fullRect.top() + 4, fullRect.right(), fullRect.bottom()); ++ painter->drawPoint(fullRect.right() - 3, fullRect.top() + 1); ++ painter->drawPoint(fullRect.right() - 4, fullRect.top() + 1); ++ painter->drawPoint(fullRect.right() - 2, fullRect.top() + 2); ++ painter->drawPoint(fullRect.right() - 1, fullRect.top() + 3); ++ painter->drawPoint(fullRect.right() - 1, fullRect.top() + 4); ++ ++ // draw bottomline ++ painter->drawLine(fullRect.right(), fullRect.bottom(), fullRect.left(), fullRect.bottom()); ++ ++ // top highlight ++ painter->setPen(titleBarHighlight); ++ painter->drawLine(fullRect.left() + 6, fullRect.top() + 1, fullRect.right() - 6, fullRect.top() + 1); ++ } ++ // draw title ++ QRect textRect = subControlRect(CC_TitleBar, titleBar, SC_TitleBarLabel, widget); ++ QFont font = painter->font(); ++ font.setBold(true); ++ painter->setFont(font); ++ painter->setPen(active? (titleBar->palette.text().color().lighter(120)) : ++ titleBar->palette.text().color() ); ++ // Note workspace also does elliding but it does not use the correct font ++ QString title = QFontMetrics(font).elidedText(titleBar->text, Qt::ElideRight, textRect.width() - 14); ++ painter->drawText(textRect.adjusted(1, 1, 1, 1), title, QTextOption(Qt::AlignHCenter | Qt::AlignVCenter)); ++ painter->setPen(Qt::white); ++ if (active) ++ painter->drawText(textRect, title, QTextOption(Qt::AlignHCenter | Qt::AlignVCenter)); ++ // min button ++ if ((titleBar->subControls & SC_TitleBarMinButton) && (titleBar->titleBarFlags & Qt::WindowMinimizeButtonHint) && ++ !(titleBar->titleBarState& Qt::WindowMinimized)) { ++ QRect minButtonRect = subControlRect(CC_TitleBar, titleBar, SC_TitleBarMinButton, widget); ++ if (minButtonRect.isValid()) { ++ bool hover = (titleBar->activeSubControls & SC_TitleBarMinButton) && (titleBar->state & State_MouseOver); ++ bool sunken = (titleBar->activeSubControls & SC_TitleBarMinButton) && (titleBar->state & State_Sunken); ++ qt_haiku_draw_mdibutton(painter, titleBar, minButtonRect, hover, sunken); ++ QRect minButtonIconRect = minButtonRect.adjusted(buttonMargin ,buttonMargin , -buttonMargin, -buttonMargin); ++ painter->setPen(textColor); ++ painter->drawLine(minButtonIconRect.center().x() - 2, minButtonIconRect.center().y() + 3, ++ minButtonIconRect.center().x() + 3, minButtonIconRect.center().y() + 3); ++ painter->drawLine(minButtonIconRect.center().x() - 2, minButtonIconRect.center().y() + 4, ++ minButtonIconRect.center().x() + 3, minButtonIconRect.center().y() + 4); ++ painter->setPen(textAlphaColor); ++ painter->drawLine(minButtonIconRect.center().x() - 3, minButtonIconRect.center().y() + 3, ++ minButtonIconRect.center().x() - 3, minButtonIconRect.center().y() + 4); ++ painter->drawLine(minButtonIconRect.center().x() + 4, minButtonIconRect.center().y() + 3, ++ minButtonIconRect.center().x() + 4, minButtonIconRect.center().y() + 4); ++ } ++ } ++ // max button ++ if ((titleBar->subControls & SC_TitleBarMaxButton) && (titleBar->titleBarFlags & Qt::WindowMaximizeButtonHint) && ++ !(titleBar->titleBarState & Qt::WindowMaximized)) { ++ QRect maxButtonRect = subControlRect(CC_TitleBar, titleBar, SC_TitleBarMaxButton, widget); ++ if (maxButtonRect.isValid()) { ++ bool hover = (titleBar->activeSubControls & SC_TitleBarMaxButton) && (titleBar->state & State_MouseOver); ++ bool sunken = (titleBar->activeSubControls & SC_TitleBarMaxButton) && (titleBar->state & State_Sunken); ++ qt_haiku_draw_mdibutton(painter, titleBar, maxButtonRect, hover, sunken); ++ ++ QRect maxButtonIconRect = maxButtonRect.adjusted(buttonMargin, buttonMargin, -buttonMargin, -buttonMargin); ++ ++ painter->setPen(textColor); ++ painter->drawRect(maxButtonIconRect.adjusted(0, 0, -1, -1)); ++ painter->drawLine(maxButtonIconRect.left() + 1, maxButtonIconRect.top() + 1, ++ maxButtonIconRect.right() - 1, maxButtonIconRect.top() + 1); ++ painter->setPen(textAlphaColor); ++ painter->drawPoint(maxButtonIconRect.topLeft()); ++ painter->drawPoint(maxButtonIconRect.topRight()); ++ painter->drawPoint(maxButtonIconRect.bottomLeft()); ++ painter->drawPoint(maxButtonIconRect.bottomRight()); ++ } ++ } ++ ++ // close button ++ if ((titleBar->subControls & SC_TitleBarCloseButton) && (titleBar->titleBarFlags & Qt::WindowSystemMenuHint)) { ++ QRect closeButtonRect = subControlRect(CC_TitleBar, titleBar, SC_TitleBarCloseButton, widget); ++ if (closeButtonRect.isValid()) { ++ bool hover = (titleBar->activeSubControls & SC_TitleBarCloseButton) && (titleBar->state & State_MouseOver); ++ bool sunken = (titleBar->activeSubControls & SC_TitleBarCloseButton) && (titleBar->state & State_Sunken); ++ qt_haiku_draw_mdibutton(painter, titleBar, closeButtonRect, hover, sunken); ++ QRect closeIconRect = closeButtonRect.adjusted(buttonMargin, buttonMargin, -buttonMargin, -buttonMargin); ++ painter->setPen(textAlphaColor); ++ painter->drawLine(closeIconRect.left() + 1, closeIconRect.top(), ++ closeIconRect.right(), closeIconRect.bottom() - 1); ++ painter->drawLine(closeIconRect.left(), closeIconRect.top() + 1, ++ closeIconRect.right() - 1, closeIconRect.bottom()); ++ painter->drawLine(closeIconRect.right() - 1, closeIconRect.top(), ++ closeIconRect.left(), closeIconRect.bottom() - 1); ++ painter->drawLine(closeIconRect.right(), closeIconRect.top() + 1, ++ closeIconRect.left() + 1, closeIconRect.bottom()); ++ painter->drawPoint(closeIconRect.topLeft()); ++ painter->drawPoint(closeIconRect.topRight()); ++ painter->drawPoint(closeIconRect.bottomLeft()); ++ painter->drawPoint(closeIconRect.bottomRight()); ++ ++ painter->setPen(textColor); ++ painter->drawLine(closeIconRect.left() + 1, closeIconRect.top() + 1, ++ closeIconRect.right() - 1, closeIconRect.bottom() - 1); ++ painter->drawLine(closeIconRect.left() + 1, closeIconRect.bottom() - 1, ++ closeIconRect.right() - 1, closeIconRect.top() + 1); ++ } ++ } ++ ++ // normalize button ++ if ((titleBar->subControls & SC_TitleBarNormalButton) && ++ (((titleBar->titleBarFlags & Qt::WindowMinimizeButtonHint) && ++ (titleBar->titleBarState & Qt::WindowMinimized)) || ++ ((titleBar->titleBarFlags & Qt::WindowMaximizeButtonHint) && ++ (titleBar->titleBarState & Qt::WindowMaximized)))) { ++ QRect normalButtonRect = subControlRect(CC_TitleBar, titleBar, SC_TitleBarNormalButton, widget); ++ if (normalButtonRect.isValid()) { ++ ++ bool hover = (titleBar->activeSubControls & SC_TitleBarNormalButton) && (titleBar->state & State_MouseOver); ++ bool sunken = (titleBar->activeSubControls & SC_TitleBarNormalButton) && (titleBar->state & State_Sunken); ++ QRect normalButtonIconRect = normalButtonRect.adjusted(buttonMargin, buttonMargin, -buttonMargin, -buttonMargin); ++ qt_haiku_draw_mdibutton(painter, titleBar, normalButtonRect, hover, sunken); ++ ++ QRect frontWindowRect = normalButtonIconRect.adjusted(0, 3, -3, 0); ++ painter->setPen(textColor); ++ painter->drawRect(frontWindowRect.adjusted(0, 0, -1, -1)); ++ painter->drawLine(frontWindowRect.left() + 1, frontWindowRect.top() + 1, ++ frontWindowRect.right() - 1, frontWindowRect.top() + 1); ++ painter->setPen(textAlphaColor); ++ painter->drawPoint(frontWindowRect.topLeft()); ++ painter->drawPoint(frontWindowRect.topRight()); ++ painter->drawPoint(frontWindowRect.bottomLeft()); ++ painter->drawPoint(frontWindowRect.bottomRight()); ++ ++ QRect backWindowRect = normalButtonIconRect.adjusted(3, 0, 0, -3); ++ QRegion clipRegion = backWindowRect; ++ clipRegion -= frontWindowRect; ++ painter->save(); ++ painter->setClipRegion(clipRegion); ++ painter->setPen(textColor); ++ painter->drawRect(backWindowRect.adjusted(0, 0, -1, -1)); ++ painter->drawLine(backWindowRect.left() + 1, backWindowRect.top() + 1, ++ backWindowRect.right() - 1, backWindowRect.top() + 1); ++ painter->setPen(textAlphaColor); ++ painter->drawPoint(backWindowRect.topLeft()); ++ painter->drawPoint(backWindowRect.topRight()); ++ painter->drawPoint(backWindowRect.bottomLeft()); ++ painter->drawPoint(backWindowRect.bottomRight()); ++ painter->restore(); ++ } ++ } ++ ++ // context help button ++ if (titleBar->subControls & SC_TitleBarContextHelpButton ++ && (titleBar->titleBarFlags & Qt::WindowContextHelpButtonHint)) { ++ QRect contextHelpButtonRect = subControlRect(CC_TitleBar, titleBar, SC_TitleBarContextHelpButton, widget); ++ if (contextHelpButtonRect.isValid()) { ++ bool hover = (titleBar->activeSubControls & SC_TitleBarContextHelpButton) && (titleBar->state & State_MouseOver); ++ bool sunken = (titleBar->activeSubControls & SC_TitleBarContextHelpButton) && (titleBar->state & State_Sunken); ++ qt_haiku_draw_mdibutton(painter, titleBar, contextHelpButtonRect, hover, sunken); ++ ++ QColor blend; ++ QImage image(qt_titlebar_context_help); ++ QColor alpha = textColor; ++ alpha.setAlpha(128); ++ image.setColor(1, textColor.rgba()); ++ image.setColor(2, alpha.rgba()); ++ painter->setRenderHint(QPainter::SmoothPixmapTransform); ++ painter->drawImage(contextHelpButtonRect.adjusted(4, 4, -4, -4), image); ++ } ++ } ++ ++ // shade button ++ if (titleBar->subControls & SC_TitleBarShadeButton && (titleBar->titleBarFlags & Qt::WindowShadeButtonHint)) { ++ QRect shadeButtonRect = subControlRect(CC_TitleBar, titleBar, SC_TitleBarShadeButton, widget); ++ if (shadeButtonRect.isValid()) { ++ bool hover = (titleBar->activeSubControls & SC_TitleBarShadeButton) && (titleBar->state & State_MouseOver); ++ bool sunken = (titleBar->activeSubControls & SC_TitleBarShadeButton) && (titleBar->state & State_Sunken); ++ qt_haiku_draw_mdibutton(painter, titleBar, shadeButtonRect, hover, sunken); ++ QImage image(qt_scrollbar_button_arrow_up); ++ image.setColor(1, textColor.rgba()); ++ painter->drawImage(shadeButtonRect.adjusted(5, 7, -5, -7), image); ++ } ++ } ++ ++ // unshade button ++ if (titleBar->subControls & SC_TitleBarUnshadeButton && (titleBar->titleBarFlags & Qt::WindowShadeButtonHint)) { ++ QRect unshadeButtonRect = subControlRect(CC_TitleBar, titleBar, SC_TitleBarUnshadeButton, widget); ++ if (unshadeButtonRect.isValid()) { ++ bool hover = (titleBar->activeSubControls & SC_TitleBarUnshadeButton) && (titleBar->state & State_MouseOver); ++ bool sunken = (titleBar->activeSubControls & SC_TitleBarUnshadeButton) && (titleBar->state & State_Sunken); ++ qt_haiku_draw_mdibutton(painter, titleBar, unshadeButtonRect, hover, sunken); ++ QImage image(qt_scrollbar_button_arrow_down); ++ image.setColor(1, textColor.rgba()); ++ painter->drawImage(unshadeButtonRect.adjusted(5, 7, -5, -7), image); ++ } ++ } ++ ++ if ((titleBar->subControls & SC_TitleBarSysMenu) && (titleBar->titleBarFlags & Qt::WindowSystemMenuHint)) { ++ QRect iconRect = subControlRect(CC_TitleBar, titleBar, SC_TitleBarSysMenu, widget); ++ if (iconRect.isValid()) { ++ if (!titleBar->icon.isNull()) { ++ titleBar->icon.paint(painter, iconRect); ++ } else { ++ QStyleOption tool(0); ++ tool.palette = titleBar->palette; ++ QPixmap pm = standardIcon(SP_TitleBarMenuButton, &tool, widget).pixmap(16, 16); ++ tool.rect = iconRect; ++ painter->save(); ++ drawItemPixmap(painter, iconRect, Qt::AlignCenter, pm); ++ painter->restore(); ++ } ++ } ++ } ++ } ++ painter->restore(); ++ break; ++#ifndef QT_NO_SCROLLBAR ++ case CC_ScrollBar: ++ painter->save(); ++ if (const QStyleOptionSlider *scrollBar = qstyleoption_cast(option)) { ++ bool isEnabled = scrollBar->state & State_Enabled; ++ bool reverse = scrollBar->direction == Qt::RightToLeft; ++ bool horizontal = scrollBar->orientation == Qt::Horizontal; ++ bool sunken = scrollBar->state & State_Sunken; ++ ++ painter->fillRect(option->rect, option->palette.background()); ++ ++ QRect rect = scrollBar->rect; ++ QRect scrollBarSubLine = subControlRect(control, scrollBar, SC_ScrollBarSubLine, widget); ++ QRect scrollBarAddLine = subControlRect(control, scrollBar, SC_ScrollBarAddLine, widget); ++ QRect scrollBarSlider = subControlRect(control, scrollBar, SC_ScrollBarSlider, widget); ++ QRect grooveRect = subControlRect(control, scrollBar, SC_ScrollBarGroove, widget); ++ ++ // paint groove ++ if (scrollBar->subControls & SC_ScrollBarGroove) { ++ painter->setBrush(grooveColor); ++ painter->setPen(Qt::NoPen); ++ if (horizontal) { ++ painter->drawRect(grooveRect); ++ painter->setPen(darkOutline); ++ painter->drawLine(grooveRect.topLeft(), grooveRect.topRight()); ++ painter->drawLine(grooveRect.bottomLeft(), grooveRect.bottomRight()); ++ } else { ++ painter->drawRect(grooveRect); ++ painter->setPen(darkOutline); ++ painter->drawLine(grooveRect.topLeft(), grooveRect.bottomLeft()); ++ painter->drawLine(grooveRect.topRight(), grooveRect.bottomRight()); ++ } ++ } ++ //paint slider ++ if (scrollBar->subControls & SC_ScrollBarSlider) { ++ QRect pixmapRect = scrollBarSlider; ++ if (horizontal) ++ pixmapRect.adjust(-1, 0, 0, -1); ++ else ++ pixmapRect.adjust(0, -1, -1, 0); ++ ++ if (isEnabled) { ++ QLinearGradient gradient(pixmapRect.center().x(), pixmapRect.top(), ++ pixmapRect.center().x(), pixmapRect.bottom()); ++ if (!horizontal) ++ gradient = QLinearGradient(pixmapRect.left(), pixmapRect.center().y(), ++ pixmapRect.right(), pixmapRect.center().y()); ++ ++ if (option->palette.button().gradient()) { ++ gradient.setStops(option->palette.button().gradient()->stops()); ++ } else { ++ if (sunken || (option->state & State_MouseOver && ++ (scrollBar->activeSubControls & SC_ScrollBarSlider))) { ++ gradient.setColorAt(0, gradientStartColor.lighter(110)); ++ gradient.setColorAt(1, gradientStopColor.lighter(110)); ++ } else { ++ gradient.setColorAt(0, gradientStartColor); ++ gradient.setColorAt(1, gradientStopColor); ++ } ++ } ++ painter->setPen(QPen(darkOutline, 0)); ++ painter->setBrush(gradient); ++ painter->drawRect(pixmapRect); ++ ++ ++ //calculate offsets used by highlight and shadow ++ int yoffset, xoffset; ++ if (option->state & State_Horizontal) { ++ xoffset = 0; ++ yoffset = 1; ++ } else { ++ xoffset = 1; ++ yoffset = 0; ++ } ++ //draw slider highlights ++ painter->setPen(QPen(gradientStopColor, 0)); ++ painter->drawLine(scrollBarSlider.left() + xoffset, ++ scrollBarSlider.bottom() - yoffset, ++ scrollBarSlider.right() - xoffset, ++ scrollBarSlider.bottom() - yoffset); ++ painter->drawLine(scrollBarSlider.right() - xoffset, ++ scrollBarSlider.top() + yoffset, ++ scrollBarSlider.right() - xoffset, ++ scrollBarSlider.bottom() - yoffset); ++ ++ //draw slider shadow ++ painter->setPen(QPen(gradientStartColor, 0)); ++ painter->drawLine(scrollBarSlider.left() + xoffset, ++ scrollBarSlider.top() + yoffset, ++ scrollBarSlider.right() - xoffset, ++ scrollBarSlider.top() + yoffset); ++ painter->drawLine(scrollBarSlider.left() + xoffset, ++ scrollBarSlider.top() + yoffset, ++ scrollBarSlider.left() + xoffset, ++ scrollBarSlider.bottom() - yoffset); ++ } else { ++ QLinearGradient gradient(pixmapRect.center().x(), pixmapRect.top(), ++ pixmapRect.center().x(), pixmapRect.bottom()); ++ if (!horizontal) { ++ gradient = QLinearGradient(pixmapRect.left(), pixmapRect.center().y(), ++ pixmapRect.right(), pixmapRect.center().y()); ++ } ++ if (sunken) { ++ gradient.setColorAt(0, gradientStartColor.lighter(110)); ++ gradient.setColorAt(1, gradientStopColor.lighter(110)); ++ } else { ++ gradient.setColorAt(0, gradientStartColor); ++ gradient.setColorAt(1, gradientStopColor); ++ } ++ painter->setPen(darkOutline); ++ painter->setBrush(gradient); ++ painter->drawRect(pixmapRect); ++ } ++ int gripMargin = 4; ++ //draw grips ++ if (horizontal) { ++ for (int i = -3; i< 6 ; i += 3) { ++ painter->setPen(QPen(gripShadow, 1)); ++ painter->drawLine( ++ QPoint(scrollBarSlider.center().x() + i , ++ scrollBarSlider.top() + gripMargin), ++ QPoint(scrollBarSlider.center().x() + i, ++ scrollBarSlider.bottom() - gripMargin)); ++ painter->setPen(QPen(palette.light(), 1)); ++ painter->drawLine( ++ QPoint(scrollBarSlider.center().x() + i + 1, ++ scrollBarSlider.top() + gripMargin ), ++ QPoint(scrollBarSlider.center().x() + i + 1, ++ scrollBarSlider.bottom() - gripMargin)); ++ } ++ } else { ++ for (int i = -3; i < 6 ; i += 3) { ++ painter->setPen(QPen(gripShadow, 1)); ++ painter->drawLine( ++ QPoint(scrollBarSlider.left() + gripMargin , ++ scrollBarSlider.center().y()+ i), ++ QPoint(scrollBarSlider.right() - gripMargin, ++ scrollBarSlider.center().y()+ i)); ++ painter->setPen(QPen(palette.light(), 1)); ++ painter->drawLine( ++ QPoint(scrollBarSlider.left() + gripMargin, ++ scrollBarSlider.center().y() + 1 + i), ++ QPoint(scrollBarSlider.right() - gripMargin, ++ scrollBarSlider.center().y() + 1 + i)); ++ } ++ } ++ } ++ ++ // The SubLine (up/left) buttons ++ if (scrollBar->subControls & SC_ScrollBarSubLine) { ++ //int scrollBarExtent = pixelMetric(PM_ScrollBarExtent, option, widget); ++ QRect pixmapRect = scrollBarSubLine; ++ if (isEnabled ) { ++ QRect fillRect = pixmapRect.adjusted(1, 1, -1, -1); ++ // Gradients ++ if ((scrollBar->activeSubControls & SC_ScrollBarSubLine) && sunken) { ++ qt_haiku_draw_gradient(painter, ++ QRect(fillRect), ++ gradientStopColor.darker(120), ++ gradientStopColor.darker(120), ++ horizontal ? TopDown : FromLeft, option->palette.button()); ++ } else { ++ qt_haiku_draw_gradient(painter, ++ QRect(fillRect), ++ gradientStartColor.lighter(105), ++ gradientStopColor, ++ horizontal ? TopDown : FromLeft, option->palette.button()); ++ } ++ } ++ // Details ++ QImage subButton; ++ QImage subButtonArrow; ++ if (horizontal) { ++ subButton = QImage(reverse ? qt_scrollbar_buttons : qt_scrollbar_buttons); ++ subButtonArrow = QImage(reverse ? qt_scrollbar_button_arrow_right : qt_scrollbar_button_arrow_left); ++ } else { ++ subButton = QImage(qt_scrollbar_buttons); ++ subButtonArrow = QImage(qt_scrollbar_button_arrow_up); ++ } ++ subButton.setColor(1, alphaCornerColor.rgba()); ++ subButton.setColor(2, darkOutline.rgba()); ++ if ((scrollBar->activeSubControls & SC_ScrollBarSubLine) && sunken) { ++ subButton.setColor(3, gradientStopColor.darker(140).rgba()); ++ subButton.setColor(4, gradientStopColor.darker(120).rgba()); ++ } else { ++ subButton.setColor(3, gradientStartColor.lighter(105).rgba()); ++ subButton.setColor(4, gradientStopColor.rgba()); ++ } ++ subButton.setColor(5, scrollBar->palette.text().color().rgba()); ++ painter->drawImage(pixmapRect, subButton); ++ ++ // Arrows ++ QPoint a_pos = pixmapRect.topLeft()+QPoint(4,4); ++ painter->drawImage(a_pos, subButtonArrow); ++ ++ // The AddLine (down/right) button ++ if (scrollBar->subControls & SC_ScrollBarAddLine) { ++ QString addLinePixmapName = uniqueName(QLatin1String("scrollbar_addline"), option, QSize(16, 16)); ++ QRect pixmapRect = scrollBarAddLine; ++ if (isEnabled) { ++ QRect fillRect = pixmapRect.adjusted(1, 1, -1, -1); ++ // Gradients ++ if ((scrollBar->activeSubControls & SC_ScrollBarAddLine) && sunken) { ++ qt_haiku_draw_gradient(painter, ++ fillRect, ++ gradientStopColor.darker(120), ++ gradientStopColor.darker(120), ++ horizontal ? TopDown: FromLeft, option->palette.button()); ++ } else { ++ qt_haiku_draw_gradient(painter, ++ fillRect, ++ gradientStartColor.lighter(105), ++ gradientStopColor, ++ horizontal ? TopDown : FromLeft, option->palette.button()); ++ } ++ } ++ // Details ++ QImage addButton; ++ QImage subButtonArrow; ++ if (horizontal) { ++ addButton = QImage(reverse ? qt_scrollbar_buttons : qt_scrollbar_buttons); ++ subButtonArrow = QImage(reverse ? qt_scrollbar_button_arrow_left : qt_scrollbar_button_arrow_right); ++ } else { ++ addButton = QImage(qt_scrollbar_buttons); ++ subButtonArrow = QImage(qt_scrollbar_button_arrow_down); ++ } ++ addButton.setColor(1, alphaCornerColor.rgba()); ++ addButton.setColor(2, darkOutline.rgba()); ++ if ((scrollBar->activeSubControls & SC_ScrollBarAddLine) && sunken) { ++ addButton.setColor(3, gradientStopColor.darker(140).rgba()); ++ addButton.setColor(4, gradientStopColor.darker(120).rgba()); ++ } else { ++ addButton.setColor(3, gradientStartColor.lighter(105).rgba()); ++ addButton.setColor(4, gradientStopColor.rgba()); ++ } ++ addButton.setColor(5, scrollBar->palette.text().color().rgba()); ++ painter->drawImage(pixmapRect, addButton); ++ ++ QPoint a_pos = pixmapRect.topLeft()+QPoint(4,4); ++ painter->drawImage(a_pos, subButtonArrow); ++ } ++ } ++ } ++ painter->restore(); ++ break;; ++#endif // QT_NO_SCROLLBAR ++#ifndef QT_NO_COMBOBOX ++ case CC_ComboBox: ++ painter->save(); ++ if (const QStyleOptionComboBox *comboBox = qstyleoption_cast(option)) { ++ bool sunken = comboBox->state & State_On; // play dead, if combobox has no items ++ bool isEnabled = (comboBox->state & State_Enabled); ++ bool focus = isEnabled && (comboBox->state & State_HasFocus); ++ QPixmap cache; ++ QString pixmapName = uniqueName(QLatin1String("combobox"), option, comboBox->rect.size()); ++ if (sunken) ++ pixmapName += QLatin1String("-sunken"); ++ if (comboBox->editable) ++ pixmapName += QLatin1String("-editable"); ++ if (isEnabled) ++ pixmapName += QLatin1String("-enabled"); ++ ++ if (!UsePixmapCache || !QPixmapCache::find(pixmapName, cache)) { ++ cache = QPixmap(comboBox->rect.size()); ++ cache.fill(Qt::transparent); ++ QPainter cachePainter(&cache); ++ QRect pixmapRect(0, 0, comboBox->rect.width(), comboBox->rect.height()); ++ QStyleOptionComboBox comboBoxCopy = *comboBox; ++ comboBoxCopy.rect = pixmapRect; ++ ++ QRect rect = pixmapRect; ++ QRect downArrowRect = subControlRect(CC_ComboBox, &comboBoxCopy, ++ SC_ComboBoxArrow, widget); ++ QRect editRect = subControlRect(CC_ComboBox, &comboBoxCopy, ++ SC_ComboBoxEditField, widget); ++ // Draw a push button ++ if (comboBox->editable) { ++ QStyleOptionFrame buttonOption; ++ buttonOption.QStyleOption::operator=(*comboBox); ++ buttonOption.rect = rect; ++ buttonOption.state = comboBox->state & (State_Enabled | State_MouseOver); ++ ++ if (sunken) { ++ buttonOption.state |= State_Sunken; ++ buttonOption.state &= ~State_MouseOver; ++ } ++ ++ drawPrimitive(PE_PanelButtonCommand, &buttonOption, &cachePainter, widget); ++ ++ if (isEnabled) { ++ if(comboBox->state & State_HasFocus) ++ cachePainter.setPen(QPen(mkQColor(ui_color(B_NAVIGATION_BASE_COLOR)), 0)); ++ else ++ cachePainter.setPen(QPen(QColor(129,129,129), 0)); ++ cachePainter.drawRect(rect.adjusted(2, 2, -3, -2)); ++ } else { ++ QColor buttonBgColor = mkQColor(tint_color(ui_color(B_PANEL_BACKGROUND_COLOR), B_LIGHTEN_1_TINT)); ++ QColor dark1BorderColor = mkQColor(tint_color(ui_color(B_PANEL_BACKGROUND_COLOR), B_DARKEN_1_TINT)); ++ cachePainter.fillRect(rect, option->palette.background()); ++ cachePainter.fillRect(rect.adjusted(2, 2, -3, -2), buttonBgColor); ++ cachePainter.setPen(QPen(dark1BorderColor, 0)); ++ cachePainter.drawRect(rect.adjusted(2, 2, -3, -2)); ++ } ++ } else { ++ QStyleOptionButton buttonOption; ++ buttonOption.QStyleOption::operator=(*comboBox); ++ buttonOption.rect = rect; ++ buttonOption.state = comboBox->state & (State_Enabled | State_MouseOver); ++ if (sunken) { ++ buttonOption.state |= State_Sunken; ++ buttonOption.state &= ~State_MouseOver; ++ } ++ drawPrimitive(PE_PanelButtonCommand, &buttonOption, &cachePainter, widget); ++ ++ cachePainter.setPen(buttonShadow.darker(102)); ++ int borderSize = 4; ++ ++ if (!sunken) { ++ if (comboBox->direction == Qt::RightToLeft) { ++ cachePainter.drawLine(QPoint(downArrowRect.right() + 1, downArrowRect.top() + borderSize), ++ QPoint(downArrowRect.right() + 1, downArrowRect.bottom() - borderSize)); ++ cachePainter.setPen(option->palette.light().color()); ++ cachePainter.drawLine(QPoint(downArrowRect.right(), downArrowRect.top() + borderSize), ++ QPoint(downArrowRect.right(), downArrowRect.bottom() - borderSize)); ++ } else { ++ cachePainter.drawLine(QPoint(downArrowRect.left() - 1, downArrowRect.top() + borderSize), ++ QPoint(downArrowRect.left() - 1, downArrowRect.bottom() - borderSize)); ++ cachePainter.setPen(option->palette.light().color()); ++ cachePainter.drawLine(QPoint(downArrowRect.left() , downArrowRect.top() + borderSize), ++ QPoint(downArrowRect.left() , downArrowRect.bottom() - borderSize)); ++ } ++ } else { ++ cachePainter.setPen(dark.lighter(110)); ++ if (comboBox->direction == Qt::RightToLeft) { ++ cachePainter.drawLine(QPoint(downArrowRect.right() + 1, downArrowRect.top() + borderSize), ++ QPoint(downArrowRect.right() + 1, downArrowRect.bottom() - borderSize)); ++ ++ } else { ++ cachePainter.drawLine(QPoint(downArrowRect.left() - 1, downArrowRect.top() + borderSize), ++ QPoint(downArrowRect.left() - 1, downArrowRect.bottom() - borderSize)); ++ } ++ } ++ } ++ ++ ++ if (comboBox->subControls & SC_ComboBoxArrow) { ++ if (comboBox->editable) { ++ // Draw the down arrow ++ QImage downArrow(qt_scrollbar_button_arrow_down); ++ downArrow.setColor(1, comboBox->palette.foreground().color().rgba()); ++ cachePainter.drawImage(downArrowRect.center().x() - downArrow.width() / 2, ++ downArrowRect.center().y() - downArrow.height() / 2 + 1, downArrow); ++ } else { ++ // Draw the up/down arrow ++ QImage upArrow(qt_scrollbar_button_arrow_up); ++ upArrow.setColor(1, comboBox->palette.foreground().color().rgba()); ++ QImage downArrow(qt_scrollbar_button_arrow_down); ++ downArrow.setColor(1, comboBox->palette.foreground().color().rgba()); ++ cachePainter.drawImage(downArrowRect.center().x() - downArrow.width() / 2, ++ downArrowRect.center().y() - upArrow.height() - 1 , upArrow); ++ cachePainter.drawImage(downArrowRect.center().x() - downArrow.width() / 2, ++ downArrowRect.center().y() + 2, downArrow); ++ } ++ } ++ // Draw the focus rect ++ if ((focus && (option->state & State_KeyboardFocusChange)) && !comboBox->editable) { ++ QStyleOptionFocusRect focus; ++ focus.rect = subControlRect(CC_ComboBox, &comboBoxCopy, SC_ComboBoxEditField, widget) ++ .adjusted(0, 2, option->direction == Qt::RightToLeft ? 1 : -1, -2); ++ drawPrimitive(PE_FrameFocusRect, &focus, &cachePainter, widget); ++ } ++ cachePainter.end(); ++ if (UsePixmapCache) ++ QPixmapCache::insert(pixmapName, cache); ++ } ++ painter->drawPixmap(comboBox->rect.topLeft(), cache); ++ } ++ painter->restore(); ++ break; ++#endif // QT_NO_COMBOBOX ++#ifndef QT_NO_GROUPBOX ++ case CC_GroupBox: ++ painter->save(); ++ if (const QStyleOptionGroupBox *groupBox = qstyleoption_cast(option)) { ++ QRect textRect = subControlRect(CC_GroupBox, groupBox, SC_GroupBoxLabel, widget); ++ QRect checkBoxRect = subControlRect(CC_GroupBox, groupBox, SC_GroupBoxCheckBox, widget); ++ bool flat = groupBox->features & QStyleOptionFrameV2::Flat; ++ ++ if(!flat) { ++ if (groupBox->subControls & QStyle::SC_GroupBoxFrame) { ++ QStyleOptionFrameV2 frame; ++ frame.QStyleOption::operator=(*groupBox); ++ frame.features = groupBox->features; ++ frame.lineWidth = groupBox->lineWidth; ++ frame.midLineWidth = groupBox->midLineWidth; ++ frame.rect = subControlRect(CC_GroupBox, option, SC_GroupBoxFrame, widget); ++ ++ painter->save(); ++ QRegion region(groupBox->rect); ++ bool ltr = groupBox->direction == Qt::LeftToRight; ++ region -= checkBoxRect.united(textRect).adjusted(ltr ? -4 : 0, 0, ltr ? 0 : 4, 0); ++ if (!groupBox->text.isEmpty() || groupBox->subControls & SC_GroupBoxCheckBox) ++ painter->setClipRegion(region); ++ frame.palette.setBrush(QPalette::Dark, option->palette.mid().color().lighter(110)); ++ drawPrimitive(PE_FrameGroupBox, &frame, painter); ++ painter->restore(); ++ } ++ } ++ // Draw title ++ if ((groupBox->subControls & QStyle::SC_GroupBoxLabel) && !groupBox->text.isEmpty()) { ++ if (!groupBox->text.isEmpty()) { ++ QColor textColor = groupBox->textColor; ++ if (textColor.isValid()) ++ painter->setPen(textColor); ++ int alignment = int(groupBox->textAlignment); ++ if (!styleHint(QStyle::SH_UnderlineShortcut, option, widget)) ++ alignment |= Qt::TextHideMnemonic; ++ if (flat) { ++ QFont font = painter->font(); ++ font.setBold(true); ++ painter->setFont(font); ++ if (groupBox->subControls & SC_GroupBoxCheckBox) { ++ textRect.adjust(checkBoxRect.right() + 4, 0, checkBoxRect.right() + 4, 0); ++ } ++ } ++ painter->drawText(textRect, Qt::TextShowMnemonic | Qt::AlignLeft| alignment, groupBox->text); ++ } ++ } ++ if (groupBox->subControls & SC_GroupBoxCheckBox) { ++ QStyleOptionButton box; ++ box.QStyleOption::operator=(*groupBox); ++ box.rect = checkBoxRect; ++ drawPrimitive(PE_IndicatorCheckBox, &box, painter, widget); ++ } ++ } ++ painter->restore(); ++ break; ++#endif // QT_NO_GROUPBOX ++#ifndef QT_NO_SLIDER ++ case CC_Slider: ++ painter->save(); ++ if (const QStyleOptionSlider *slider = qstyleoption_cast(option)) { ++ QRect groove = subControlRect(CC_Slider, option, SC_SliderGroove, widget); ++ QRect handle = subControlRect(CC_Slider, option, SC_SliderHandle, widget); ++ QRect ticks = subControlRect(CC_Slider, option, SC_SliderTickmarks, widget); ++ ++ bool ticksAbove = slider->tickPosition & QSlider::TicksAbove; ++ bool ticksBelow = slider->tickPosition & QSlider::TicksBelow; ++ ++ orientation orient = slider->orientation == Qt::Horizontal?B_HORIZONTAL:B_VERTICAL; ++ ++ if (be_control_look != NULL) { ++ QRect r = groove; ++ rgb_color base = ui_color(B_PANEL_BACKGROUND_COLOR); ++ rgb_color fill_color = ui_color(B_PANEL_BACKGROUND_COLOR); ++ uint32 flags = 0; ++ ++ BRect bRect(0.0f, 0.0f, option->rect.width() - 1, option->rect.height() - 1); ++ TemporarySurface surface(bRect); ++ ++ surface.view()->SetHighColor(base); ++ surface.view()->SetLowColor(base); ++ surface.view()->FillRect(bRect); ++ ++ if ((option->subControls & SC_SliderGroove) && groove.isValid()) { ++ r = groove; ++ bRect = BRect(r.x(), r.y(), r.x()+r.width(), r.y()+r.height()); ++ be_control_look->DrawSliderBar(surface.view(), bRect, bRect, base, fill_color, flags, orient); ++ painter->drawImage(r, surface.image()); ++ } ++ ++ if (option->subControls & SC_SliderTickmarks) { ++ int mlocation = B_HASH_MARKS_NONE; ++ if(ticksAbove)mlocation|=B_HASH_MARKS_TOP; ++ if(ticksBelow)mlocation|=B_HASH_MARKS_BOTTOM; ++ int interval = slider->tickInterval<=0?1:slider->tickInterval; ++ int num = 1+((slider->maximum-slider->minimum)/interval); ++ int len = pixelMetric(PM_SliderLength, slider, widget)/2; ++ r=(orient==B_HORIZONTAL)?option->rect.adjusted(len,0,-len,0):option->rect.adjusted(0,len,0,-len); ++ bRect = BRect(r.x(), r.y(), r.x()+r.width(), r.y()+r.height()); ++ be_control_look->DrawSliderHashMarks(surface.view(), bRect, bRect, base, num, (hash_mark_location)mlocation, flags, orient); ++ } ++ ++ if (option->subControls & SC_SliderHandle ) { ++ r=handle.adjusted(1,1,0,0); ++ bRect = BRect(r.x(), r.y(), r.x()+r.width(), r.y()+r.height()); ++ be_control_look->DrawSliderThumb(surface.view(), bRect, bRect, base, flags, orient); ++ } ++ ++ painter->drawImage(slider->rect, surface.image()); ++ } ++ ++ painter->restore(); ++ } ++ break; ++#endif // QT_NO_SLIDER ++ case CC_ToolButton: ++ { ++ if (const QStyleOptionToolButton *toolbutton ++ = qstyleoption_cast(option)) { ++ QRect button; ++ bool flat = !(widget ? qobject_cast(widget->parentWidget()) : 0); ++ bool flat2 = toolbutton->features & QStyleOptionFrameV2::Flat; ++ bool enabled = toolbutton->state & State_Enabled; ++ bool pushed = (toolbutton->state & State_Sunken) || (toolbutton->state & State_On); ++ ++ button = subControlRect(control, toolbutton, SC_ToolButton, widget); ++ ++ painter->save(); ++ if(flat || flat2 || pushed) { ++ qt_haiku_draw_button(painter,button,false,false,pushed,false,enabled); ++ } ++ ++ painter->restore(); ++ } ++ QWindowsStyle::drawComplexControl(control, option, painter, widget); ++ } ++ break; ++ default: ++ QWindowsStyle::drawComplexControl(control, option, painter, widget); ++ break; ++ } ++} ++ ++/*! ++ \reimp ++*/ ++int QHaikuStyle::pixelMetric(PixelMetric metric, const QStyleOption *option, const QWidget *widget) const ++{ ++ int ret = -1; ++ switch (metric) { ++ case PM_ButtonDefaultIndicator: ++ ret = 0; ++ break; ++ case PM_ButtonShiftHorizontal: ++ case PM_ButtonShiftVertical: ++ ret = 0; ++ break; ++ case PM_MessageBoxIconSize: ++ ret = 48; ++ break; ++ case PM_ListViewIconSize: ++ ret = 24; ++ break; ++ case PM_DialogButtonsSeparator: ++ case PM_SplitterWidth: ++ ret = 6; ++ break; ++ case PM_ScrollBarSliderMin: ++ ret = 26; ++ break; ++ case PM_MenuPanelWidth: //menu framewidth ++ ret = 2; ++ break; ++ case PM_TitleBarHeight: ++ ret = 24; ++ break; ++ case PM_ScrollBarExtent: ++ ret = 15; ++ break; ++ case PM_SliderThickness: ++ ret = 14; ++ break; ++ case PM_SliderLength: ++ ret = 18; ++ break; ++ case PM_DockWidgetTitleMargin: ++ ret = 1; ++ break; ++ case PM_MenuBarVMargin: ++ ret = 1; ++ break; ++ case PM_DefaultFrameWidth: ++ ret = 2; ++ break; ++ case PM_SpinBoxFrameWidth: ++ ret = 3; ++ break; ++ case PM_MenuBarItemSpacing: ++ ret = 6; ++ case PM_MenuBarHMargin: ++ ret = 0; ++ break; ++ case PM_ToolBarHandleExtent: ++ ret = 9; ++ break; ++ case PM_ToolBarItemSpacing: ++ ret = 2; ++ break; ++ case PM_ToolBarFrameWidth: ++ ret = 0; ++ break; ++ case PM_ToolBarItemMargin: ++ ret = 1; ++ break; ++ case PM_SmallIconSize: ++ ret = 16; ++ break; ++ case PM_ButtonIconSize: ++ ret = 24; ++ break; ++ case PM_MenuVMargin: ++ case PM_MenuHMargin: ++ ret = 0; ++ break; ++ case PM_DockWidgetTitleBarButtonMargin: ++ ret = 4; ++ break; ++ case PM_MaximumDragDistance: ++ return -1; ++ case PM_TabCloseIndicatorWidth: ++ case PM_TabCloseIndicatorHeight: ++ return 20; ++ default: ++ break; ++ } ++ ++ return ret != -1 ? ret : QWindowsStyle::pixelMetric(metric, option, widget); ++} ++ ++/*! ++ \reimp ++*/ ++QSize QHaikuStyle::sizeFromContents(ContentsType type, const QStyleOption *option, ++ const QSize &size, const QWidget *widget) const ++{ ++ QSize newSize = QWindowsStyle::sizeFromContents(type, option, size, widget); ++ switch (type) { ++ case CT_PushButton: ++ if (const QStyleOptionButton *btn = qstyleoption_cast(option)) { ++ if (!btn->text.isEmpty() && newSize.width() < 80) ++ newSize.setWidth(80); ++/* if (!btn->icon.isNull() && btn->iconSize.height() > 16) ++ newSize -= QSize(0, 2);*/ ++ } ++ if (const QPushButton *button = qobject_cast(widget)) { ++ if (qobject_cast(button->parentWidget())) { ++ if (newSize.height() < 32) ++ newSize.setHeight(32); ++ } ++ } ++ break; ++ case CT_GroupBox: ++ case CT_RadioButton: ++ case CT_CheckBox: ++ newSize += QSize(3, 2); ++ break; ++ case CT_ToolButton: ++#ifndef QT_NO_TOOLBAR ++ if (widget && qobject_cast(widget->parentWidget())) ++ newSize += QSize(4, 6); ++#endif // QT_NO_TOOLBAR ++ break; ++ case CT_SpinBox: ++ newSize += QSize(0, -2); ++ break; ++ case CT_ComboBox: ++ newSize += QSize(1, 4); ++ break; ++ case CT_LineEdit: ++ newSize += QSize(0, 2); ++ break; ++ case CT_MenuBarItem: ++ newSize += QSize(0, -2); ++ break; ++ case CT_MenuItem: ++ if (const QStyleOptionMenuItem *menuItem = qstyleoption_cast(option)) { ++ if (menuItem->menuItemType == QStyleOptionMenuItem::Separator) { ++ if (!menuItem->text.isEmpty()) { ++ newSize.setHeight(menuItem->fontMetrics.lineSpacing()); ++ } ++ } ++#ifndef QT_NO_COMBOBOX ++ else if (!menuItem->icon.isNull()) { ++ if (const QComboBox *combo = qobject_cast(widget)) { ++ newSize.setHeight(qMax(combo->iconSize().height() + 2, newSize.height())); ++ } ++ } ++#endif // QT_NO_COMBOBOX ++ } ++ break; ++ case CT_MdiControls: ++ if (const QStyleOptionComplex *styleOpt = qstyleoption_cast(option)) { ++ int width = 0; ++ if (styleOpt->subControls & SC_MdiMinButton) ++ width += 19 + 1; ++ if (styleOpt->subControls & SC_MdiNormalButton) ++ width += 19 + 1; ++ if (styleOpt->subControls & SC_MdiCloseButton) ++ width += 19 + 1; ++ newSize = QSize(width, 19); ++ } else { ++ newSize = QSize(60, 19); ++ } ++ break; ++ default: ++ break; ++ } ++ return newSize; ++} ++ ++/*! ++ \reimp ++*/ ++void QHaikuStyle::polish(QApplication *app) ++{ ++ QWindowsStyle::polish(app); ++} ++ ++/*! ++ \reimp ++*/ ++void QHaikuStyle::polish(QWidget *widget) ++{ ++ QWindowsStyle::polish(widget); ++ if (qobject_cast(widget) ++#ifndef QT_NO_COMBOBOX ++ || qobject_cast(widget) ++#endif ++#ifndef QT_NO_PROGRESSBAR ++ || qobject_cast(widget) ++#endif ++#ifndef QT_NO_SCROLLBAR ++ || qobject_cast(widget) ++#endif ++#ifndef QT_NO_SPLITTER ++ || qobject_cast(widget) ++#endif ++ || qobject_cast(widget) ++#ifndef QT_NO_SPINBOX ++ || qobject_cast(widget) ++#endif ++ || (widget->inherits("QWorkspaceChild")) ++ || (widget->inherits("QDockSeparator")) ++ || (widget->inherits("QDockWidgetSeparator")) ++ ) { ++ widget->setAttribute(Qt::WA_Hover, true); ++ } ++} ++ ++/*! ++ \reimp ++*/ ++void QHaikuStyle::polish(QPalette &pal) ++{ ++ QWindowsStyle::polish(pal); ++ //this is a workaround for some themes such as Human, where the contrast ++ //between text and background is too low. ++ QColor highlight = pal.highlight().color(); ++ QColor highlightText = pal.highlightedText().color(); ++ if (qAbs(qGray(highlight.rgb()) - qGray(highlightText.rgb())) < 150) { ++ if (qGray(highlightText.rgb()) < 128) ++ pal.setBrush(QPalette::Highlight, highlight.lighter(145)); ++ } ++} ++ ++/*! ++ \reimp ++*/ ++void QHaikuStyle::unpolish(QWidget *widget) ++{ ++ QWindowsStyle::unpolish(widget); ++ if (qobject_cast(widget) ++#ifndef QT_NO_COMBOBOX ++ || qobject_cast(widget) ++#endif ++#ifndef QT_NO_PROGRESSBAR ++ || qobject_cast(widget) ++#endif ++#ifndef QT_NO_SCROLLBAR ++ || qobject_cast(widget) ++#endif ++#ifndef QT_NO_SPLITTER ++ || qobject_cast(widget) ++#endif ++ || qobject_cast(widget) ++#ifndef QT_NO_SPINBOX ++ || qobject_cast(widget) ++#endif ++ || (widget->inherits("QWorkspaceChild")) ++ || (widget->inherits("QDockSeparator")) ++ || (widget->inherits("QDockWidgetSeparator")) ++ ) { ++ widget->setAttribute(Qt::WA_Hover, false); ++ } ++} ++ ++/*! ++ \reimp ++*/ ++void QHaikuStyle::unpolish(QApplication *app) ++{ ++ QWindowsStyle::unpolish(app); ++} ++ ++/*! ++ \reimp ++*/ ++QRect QHaikuStyle::subControlRect(ComplexControl control, const QStyleOptionComplex *option, ++ SubControl subControl, const QWidget *widget) const ++{ ++ QRect rect = QWindowsStyle::subControlRect(control, option, subControl, widget); ++ ++ switch (control) { ++#ifndef QT_NO_SLIDER ++ case CC_Slider: ++ if (const QStyleOptionSlider *slider = qstyleoption_cast(option)) { ++ int tickSize = pixelMetric(PM_SliderTickmarkOffset, option, widget); ++ switch (subControl) { ++ case SC_SliderHandle: { ++ if (slider->orientation == Qt::Horizontal) { ++ rect.setHeight(pixelMetric(PM_SliderThickness)); ++ rect.setWidth(pixelMetric(PM_SliderLength)); ++ int centerY = slider->rect.center().y() - rect.height() / 2; ++ if (slider->tickPosition & QSlider::TicksAbove) ++ centerY += tickSize; ++ if (slider->tickPosition & QSlider::TicksBelow) ++ centerY -= tickSize; ++ rect.moveTop(centerY); ++ } else { ++ rect.setWidth(pixelMetric(PM_SliderThickness)); ++ rect.setHeight(pixelMetric(PM_SliderLength)); ++ int centerX = slider->rect.center().x() - rect.width() / 2; ++ if (slider->tickPosition & QSlider::TicksAbove) ++ centerX += tickSize; ++ if (slider->tickPosition & QSlider::TicksBelow) ++ centerX -= tickSize; ++ rect.moveLeft(centerX); ++ } ++ } ++ break; ++ case SC_SliderGroove: { ++ QPoint grooveCenter = slider->rect.center(); ++ if (slider->orientation == Qt::Horizontal) { ++ rect.setHeight(7); ++ if (slider->tickPosition & QSlider::TicksAbove) ++ grooveCenter.ry() += tickSize; ++ if (slider->tickPosition & QSlider::TicksBelow) ++ grooveCenter.ry() -= tickSize; ++ } else { ++ rect.setWidth(7); ++ if (slider->tickPosition & QSlider::TicksAbove) ++ grooveCenter.rx() += tickSize; ++ if (slider->tickPosition & QSlider::TicksBelow) ++ grooveCenter.rx() -= tickSize; ++ } ++ rect.moveCenter(grooveCenter); ++ break; ++ } ++ default: ++ break; ++ } ++ } ++ break; ++#endif // QT_NO_SLIDER ++ case CC_ScrollBar: ++ break; ++#ifndef QT_NO_SPINBOX ++ case CC_SpinBox: ++ if (const QStyleOptionSpinBox *spinbox = qstyleoption_cast(option)) { ++ QSize bs; ++ int center = spinbox->rect.height() / 2; ++ int fw = spinbox->frame ? pixelMetric(PM_SpinBoxFrameWidth, spinbox, widget) : 0; ++ int y = fw; ++ bs.setHeight(qMax(8, spinbox->rect.height()/2 - y)); ++ bs.setWidth(15); ++ int x, lx, rx; ++ x = spinbox->rect.width() - y - bs.width() + 2; ++ lx = fw; ++ rx = x - fw; ++ switch (subControl) { ++ case SC_SpinBoxUp: ++ if (spinbox->buttonSymbols == QAbstractSpinBox::NoButtons) ++ return QRect(); ++ rect = QRect(x, fw, bs.width(), center - fw); ++ break; ++ case SC_SpinBoxDown: ++ if (spinbox->buttonSymbols == QAbstractSpinBox::NoButtons) ++ return QRect(); ++ ++ rect = QRect(x, center, bs.width(), spinbox->rect.bottom() - center - fw + 1); ++ break; ++ case SC_SpinBoxEditField: ++ if (spinbox->buttonSymbols == QAbstractSpinBox::NoButtons) { ++ rect = QRect(lx, fw, spinbox->rect.width() - 2*fw, spinbox->rect.height() - 2*fw); ++ } else { ++ rect = QRect(lx, fw, rx - qMax(fw - 1, 0), spinbox->rect.height() - 2*fw); ++ } ++ break; ++ case SC_SpinBoxFrame: ++ rect = spinbox->rect; ++ default: ++ break; ++ } ++ rect = visualRect(spinbox->direction, spinbox->rect, rect); ++ } ++ break; ++#endif // Qt_NO_SPINBOX ++#ifndef QT_NO_GROUPBOX ++ case CC_GroupBox: ++ if (const QStyleOptionGroupBox *groupBox = qstyleoption_cast(option)) { ++ int topMargin = 0; ++ int topHeight = 0; ++ int verticalAlignment = styleHint(SH_GroupBox_TextLabelVerticalAlignment, groupBox, widget); ++ bool flat = groupBox->features & QStyleOptionFrameV2::Flat; ++ if (!groupBox->text.isEmpty()) { ++ topHeight = groupBox->fontMetrics.height(); ++ if (verticalAlignment & Qt::AlignVCenter) ++ topMargin = topHeight / 2; ++ else if (verticalAlignment & Qt::AlignTop) ++ topMargin = topHeight; ++ } ++ QRect frameRect = groupBox->rect; ++ frameRect.setTop(topMargin); ++ if (subControl == SC_GroupBoxFrame) { ++ return rect; ++ } ++ else if (subControl == SC_GroupBoxContents) { ++ if( flat ) { ++ int margin = 0; ++ int leftMarginExtension = 16; ++ rect = frameRect.adjusted(leftMarginExtension + margin, margin + topHeight, -margin, -margin); ++ } ++ break; ++ } ++ if(flat) { ++ if (const QGroupBox *groupBoxWidget = qobject_cast(widget)) { ++ //Prepare metrics for a bold font ++ QFont font = widget->font(); ++ font.setBold(true); ++ QFontMetrics fontMetrics(font); ++ ++ QSize textRect = fontMetrics.boundingRect(groupBoxWidget->title()).size() + QSize(2, 2); ++ if (subControl == SC_GroupBoxCheckBox) { ++ int indicatorWidth = pixelMetric(PM_IndicatorWidth, option, widget); ++ int indicatorHeight = pixelMetric(PM_IndicatorHeight, option, widget); ++ rect.setWidth(indicatorWidth); ++ rect.setHeight(indicatorHeight); ++ rect.moveTop((fontMetrics.height() - indicatorHeight) / 2 + 2); ++ } else if (subControl == SC_GroupBoxLabel) { ++ rect.setSize(textRect); ++ } ++ } ++ } ++ } ++ return rect; ++#ifndef QT_NO_COMBOBOX ++ case CC_ComboBox: ++ switch (subControl) { ++ case SC_ComboBoxArrow: ++ rect = visualRect(option->direction, option->rect, rect); ++ rect.setRect(rect.right() - 15, rect.top() - 2, ++ 16, rect.height() + 4); ++ rect = visualRect(option->direction, option->rect, rect); ++ break; ++ case SC_ComboBoxEditField: { ++ int frameWidth = pixelMetric(PM_DefaultFrameWidth)+1; ++ rect = visualRect(option->direction, option->rect, rect); ++ rect.setRect(option->rect.left() + frameWidth, option->rect.top() + frameWidth, ++ option->rect.width() - 16 - 2 * frameWidth, ++ option->rect.height() - 2 * frameWidth); ++ if (const QStyleOptionComboBox *box = qstyleoption_cast(option)) { ++ if (!box->editable) { ++ rect.adjust(2, 0, 0, 0); ++ if (box->state & (State_Sunken | State_On)) ++ rect.translate(1, 1); ++ } ++ } ++ rect = visualRect(option->direction, option->rect, rect); ++ break; ++ } ++ default: ++ break; ++ } ++ break; ++#endif // QT_NO_COMBOBOX ++#endif //QT_NO_GROUPBOX ++ case CC_TitleBar: ++ if (const QStyleOptionTitleBar *tb = qstyleoption_cast(option)) { ++ SubControl sc = subControl; ++ QRect &ret = rect; ++ const int indent = 3; ++ const int controlTopMargin = 3; ++ const int controlBottomMargin = 3; ++ const int controlWidthMargin = 2; ++ const int controlHeight = tb->rect.height() - controlTopMargin - controlBottomMargin ; ++ const int delta = controlHeight + controlWidthMargin; ++ int offset = 0; ++ ++ bool isMinimized = tb->titleBarState & Qt::WindowMinimized; ++ bool isMaximized = tb->titleBarState & Qt::WindowMaximized; ++ ++ switch (sc) { ++ case SC_TitleBarLabel: ++ if (tb->titleBarFlags & (Qt::WindowTitleHint | Qt::WindowSystemMenuHint)) { ++ ret = tb->rect; ++ if (tb->titleBarFlags & Qt::WindowSystemMenuHint) ++ ret.adjust(delta, 0, -delta, 0); ++ if (tb->titleBarFlags & Qt::WindowMinimizeButtonHint) ++ ret.adjust(0, 0, -delta, 0); ++ if (tb->titleBarFlags & Qt::WindowMaximizeButtonHint) ++ ret.adjust(0, 0, -delta, 0); ++ if (tb->titleBarFlags & Qt::WindowShadeButtonHint) ++ ret.adjust(0, 0, -delta, 0); ++ if (tb->titleBarFlags & Qt::WindowContextHelpButtonHint) ++ ret.adjust(0, 0, -delta, 0); ++ } ++ break; ++ case SC_TitleBarContextHelpButton: ++ if (tb->titleBarFlags & Qt::WindowContextHelpButtonHint) ++ offset += delta; ++ case SC_TitleBarMinButton: ++ if (!isMinimized && (tb->titleBarFlags & Qt::WindowMinimizeButtonHint)) ++ offset += delta; ++ else if (sc == SC_TitleBarMinButton) ++ break; ++ case SC_TitleBarNormalButton: ++ if (isMinimized && (tb->titleBarFlags & Qt::WindowMinimizeButtonHint)) ++ offset += delta; ++ else if (isMaximized && (tb->titleBarFlags & Qt::WindowMaximizeButtonHint)) ++ offset += delta; ++ else if (sc == SC_TitleBarNormalButton) ++ break; ++ case SC_TitleBarMaxButton: ++ if (!isMaximized && (tb->titleBarFlags & Qt::WindowMaximizeButtonHint)) ++ offset += delta; ++ else if (sc == SC_TitleBarMaxButton) ++ break; ++ case SC_TitleBarShadeButton: ++ if (!isMinimized && (tb->titleBarFlags & Qt::WindowShadeButtonHint)) ++ offset += delta; ++ else if (sc == SC_TitleBarShadeButton) ++ break; ++ case SC_TitleBarUnshadeButton: ++ if (isMinimized && (tb->titleBarFlags & Qt::WindowShadeButtonHint)) ++ offset += delta; ++ else if (sc == SC_TitleBarUnshadeButton) ++ break; ++ case SC_TitleBarCloseButton: ++ if (tb->titleBarFlags & Qt::WindowSystemMenuHint) ++ offset += delta; ++ else if (sc == SC_TitleBarCloseButton) ++ break; ++ ret.setRect(tb->rect.right() - indent - offset, tb->rect.top() + controlTopMargin, ++ controlHeight, controlHeight); ++ break; ++ case SC_TitleBarSysMenu: ++ if (tb->titleBarFlags & Qt::WindowSystemMenuHint) { ++ ret.setRect(tb->rect.left() + controlWidthMargin + indent, tb->rect.top() + controlTopMargin, ++ controlHeight, controlHeight); ++ } ++ break; ++ default: ++ break; ++ } ++ ret = visualRect(tb->direction, tb->rect, ret); ++ } ++ break; ++ default: ++ break; ++ } ++ ++ return rect; ++} ++ ++ ++/*! ++ \reimp ++*/ ++QRect QHaikuStyle::itemPixmapRect(const QRect &r, int flags, const QPixmap &pixmap) const ++{ ++ return QWindowsStyle::itemPixmapRect(r, flags, pixmap); ++} ++ ++/*! ++ \reimp ++*/ ++void QHaikuStyle::drawItemPixmap(QPainter *painter, const QRect &rect, ++ int alignment, const QPixmap &pixmap) const ++{ ++ QWindowsStyle::drawItemPixmap(painter, rect, alignment, pixmap); ++} ++ ++/*! ++ \reimp ++*/ ++QStyle::SubControl QHaikuStyle::hitTestComplexControl(ComplexControl cc, const QStyleOptionComplex *opt, ++ const QPoint &pt, const QWidget *w) const ++{ ++ return QWindowsStyle::hitTestComplexControl(cc, opt, pt, w); ++} ++ ++/*! ++ \reimp ++*/ ++QPixmap QHaikuStyle::generatedIconPixmap(QIcon::Mode iconMode, const QPixmap &pixmap, ++ const QStyleOption *opt) const ++{ ++ return QWindowsStyle::generatedIconPixmap(iconMode, pixmap, opt); ++} ++ ++/*! ++ \reimp ++*/ ++int QHaikuStyle::styleHint(StyleHint hint, const QStyleOption *option, const QWidget *widget, ++ QStyleHintReturn *returnData) const ++{ ++ int ret = 0; ++ switch (hint) { ++ case SH_ScrollBar_MiddleClickAbsolutePosition: ++ ret = true; ++ break; ++ case SH_EtchDisabledText: ++ ret = 1; ++ break; ++ case SH_Menu_AllowActiveAndDisabled: ++ ret = false; ++ break; ++ case SH_MainWindow_SpaceBelowMenuBar: ++ ret = 0; ++ break; ++ case SH_MenuBar_MouseTracking: ++ ret = 1; ++ break; ++ case SH_TitleBar_AutoRaise: ++ ret = 1; ++ break; ++ case SH_TitleBar_NoBorder: ++ ret = 1; ++ break; ++ case SH_ItemView_ShowDecorationSelected: ++ ret = true; ++ break; ++ case SH_Table_GridLineColor: ++ if (option) { ++ ret = option->palette.background().color().darker(120).rgb(); ++ break; ++ } ++ case SH_ComboBox_Popup: ++#ifdef QT3_SUPPORT ++ if (widget && widget->inherits("Q3ComboBox")) ++ return 0; ++#endif ++ if (const QStyleOptionComboBox *cmb = qstyleoption_cast(option)) ++ ret = !cmb->editable; ++ else ++ ret = 0; ++ break; ++ case SH_WindowFrame_Mask: ++ ret = 1; ++ if (QStyleHintReturnMask *mask = qstyleoption_cast(returnData)) { ++ //left rounded corner ++ mask->region = option->rect; ++ mask->region -= QRect(option->rect.left(), option->rect.top(), 5, 1); ++ mask->region -= QRect(option->rect.left(), option->rect.top() + 1, 3, 1); ++ mask->region -= QRect(option->rect.left(), option->rect.top() + 2, 2, 1); ++ mask->region -= QRect(option->rect.left(), option->rect.top() + 3, 1, 2); ++ ++ //right rounded corner ++ mask->region -= QRect(option->rect.right() - 4, option->rect.top(), 5, 1); ++ mask->region -= QRect(option->rect.right() - 2, option->rect.top() + 1, 3, 1); ++ mask->region -= QRect(option->rect.right() - 1, option->rect.top() + 2, 2, 1); ++ mask->region -= QRect(option->rect.right() , option->rect.top() + 3, 1, 2); ++ } ++ break; ++ case SH_MessageBox_TextInteractionFlags: ++ ret = Qt::TextSelectableByMouse | Qt::LinksAccessibleByMouse; ++ break; ++ case SH_DialogButtonBox_ButtonsHaveIcons: ++ ret = true; ++ break; ++ case SH_MessageBox_CenterButtons: ++ ret = false; ++ break; ++#ifndef QT_NO_WIZARD ++ case SH_WizardStyle: ++ ret = QWizard::ClassicStyle; ++ break; ++#endif ++ case SH_ItemView_ArrowKeysNavigateIntoChildren: ++ ret = false; ++ break; ++ case SH_Menu_SubMenuPopupDelay: ++ ret = 225; // default from GtkMenu ++ break; ++ default: ++ ret = QWindowsStyle::styleHint(hint, option, widget, returnData); ++ break; ++ } ++ return ret; ++} ++ ++/*! \reimp */ ++QRect QHaikuStyle::subElementRect(SubElement sr, const QStyleOption *opt, const QWidget *w) const ++{ ++ QRect r = QWindowsStyle::subElementRect(sr, opt, w); ++ switch (sr) { ++ case SE_PushButtonFocusRect: ++ r.adjust(0, 1, 0, -1); ++ break; ++ case SE_DockWidgetTitleBarText: { ++ const QStyleOptionDockWidgetV2 *v2 ++ = qstyleoption_cast(opt); ++ bool verticalTitleBar = v2 == 0 ? false : v2->verticalTitleBar; ++ if (verticalTitleBar) { ++ r.adjust(0, 0, 0, -4); ++ } else { ++ if (QApplication::layoutDirection() == Qt::LeftToRight) ++ r.adjust(4, 0, 0, 0); ++ else ++ r.adjust(0, 0, -4, 0); ++ } ++ ++ break; ++ } ++ case SE_ProgressBarContents: ++ r = subElementRect(SE_ProgressBarGroove, opt, w); ++ break; ++ default: ++ break; ++ } ++ return r; ++} ++ ++void QHaikuStylePrivate::lookupIconTheme() const ++{ ++} ++ ++/*! ++ \internal ++*/ ++ ++QPixmap ++haikuIconFromMime(const char *mime, icon_size which) ++{ ++ QPixmap pixmap; ++ BMimeType mtype(mime); ++ BBitmap *bmp = new BBitmap(BRect(0, 0, which - 1, which - 1), B_RGBA32); ++ ++ if (mtype.GetIcon(bmp, which) != B_OK) { ++ BMimeType super; ++ mtype.GetSupertype(&super); ++ if (super.GetIcon(bmp, which) != B_OK) { ++ delete bmp; ++ bmp = NULL; ++ } ++ } ++ ++ if(bmp) { ++ pixmap = QPixmap::fromHaikuBitmap(bmp); ++ delete bmp; ++ } ++ ++ return pixmap; ++} ++ ++QIcon QHaikuStyle::standardIconImplementation(StandardPixmap standardIcon, ++ const QStyleOption *option, ++ const QWidget *widget) const ++{ ++ QIcon icon; ++ QPixmap pixmap; ++ ++ switch (standardIcon) { ++ case SP_ComputerIcon: ++ { ++ icon.addPixmap(haikuIconFromMime("application/x-vnd.Be-root",B_MINI_ICON)); ++ icon.addPixmap(haikuIconFromMime("application/x-vnd.Be-root",B_LARGE_ICON)); ++ break; ++ } ++ default: ++ break; ++ } ++ ++ if (icon.isNull()) ++ icon = QCommonStyle::standardIconImplementation(standardIcon, option, widget); ++ return icon; ++} ++ ++/*! ++ \reimp ++ */ ++QPixmap QHaikuStyle::standardPixmap(StandardPixmap standardPixmap, const QStyleOption *opt, ++ const QWidget *widget) const ++{ ++ return QWindowsStyle::standardPixmap(standardPixmap, opt, widget); ++} ++ ++QT_END_NAMESPACE ++ ++#endif // QT_NO_STYLE_HAIKU || QT_PLUGIN +diff -rupN qt-everywhere-opensource-src-4.7.3/src/gui/styles/qhaikustyle.h qt-everywhere-opensource-src-4.7.3_haiku/src/gui/styles/qhaikustyle.h +--- qt-everywhere-opensource-src-4.7.3/src/gui/styles/qhaikustyle.h 1970-01-01 00:00:00.000000000 +0000 ++++ qt-everywhere-opensource-src-4.7.3_haiku/src/gui/styles/qhaikustyle.h 2011-06-13 22:06:43.366477312 +0000 +@@ -0,0 +1,114 @@ ++/**************************************************************************** ++** ++** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). ++** Contact: Qt Software Information (qt-info@nokia.com) ++** ++** This file is part of the QtGui module of the Qt Toolkit. ++** ++** $QT_BEGIN_LICENSE:LGPL$ ++** Commercial Usage ++** Licensees holding valid Qt Commercial licenses may use this file in ++** accordance with the Qt Commercial License Agreement provided with the ++** Software or, alternatively, in accordance with the terms contained in ++** a written agreement between you and Nokia. ++** ++** GNU Lesser General Public License Usage ++** Alternatively, this file may be used under the terms of the GNU Lesser ++** General Public License version 2.1 as published by the Free Software ++** Foundation and appearing in the file LICENSE.LGPL included in the ++** packaging of this file. Please review the following information to ++** ensure the GNU Lesser General Public License version 2.1 requirements ++** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ++** ++** In addition, as a special exception, Nokia gives you certain ++** additional rights. These rights are described in the Nokia Qt LGPL ++** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this ++** package. ++** ++** GNU General Public License Usage ++** Alternatively, this file may be used under the terms of the GNU ++** General Public License version 3.0 as published by the Free Software ++** Foundation and appearing in the file LICENSE.GPL included in the ++** packaging of this file. Please review the following information to ++** ensure the GNU General Public License version 3.0 requirements will be ++** met: http://www.gnu.org/copyleft/gpl.html. ++** ++** If you are unsure which license is appropriate for your use, please ++** contact the sales department at qt-sales@nokia.com. ++** $QT_END_LICENSE$ ++** ++****************************************************************************/ ++ ++#ifndef QHAIKYSTYLE_H ++#define QHAIKYSTYLE_H ++ ++#include ++ ++QT_BEGIN_HEADER ++ ++QT_BEGIN_NAMESPACE ++ ++QT_MODULE(Gui) ++ ++#if !defined(QT_NO_STYLE_HAIKU) ++ ++class QHaikuStylePrivate; ++class Q_GUI_EXPORT QHaikuStyle : public QWindowsStyle ++{ ++ Q_OBJECT ++ Q_DECLARE_PRIVATE(QHaikuStyle) ++ ++public: ++ QHaikuStyle(); ++ ~QHaikuStyle(); ++ ++ QPalette standardPalette () const; ++ void drawPrimitive(PrimitiveElement elem, ++ const QStyleOption *option, ++ QPainter *painter, const QWidget *widget = 0) const; ++ void drawControl(ControlElement ce, const QStyleOption *option, QPainter *painter, ++ const QWidget *widget) const; ++ int pixelMetric(PixelMetric metric, const QStyleOption *option = 0, const QWidget *widget = 0) const; ++ void drawComplexControl(ComplexControl control, const QStyleOptionComplex *option, ++ QPainter *painter, const QWidget *widget) const; ++ QRect subElementRect(SubElement r, const QStyleOption *opt, const QWidget *widget = 0) const; ++ QSize sizeFromContents(ContentsType type, const QStyleOption *option, ++ const QSize &size, const QWidget *widget) const; ++ SubControl hitTestComplexControl(ComplexControl cc, const QStyleOptionComplex *opt, ++ const QPoint &pt, const QWidget *w = 0) const; ++ QRect subControlRect(ComplexControl cc, const QStyleOptionComplex *opt, ++ SubControl sc, const QWidget *widget) const; ++ QPixmap generatedIconPixmap(QIcon::Mode iconMode, const QPixmap &pixmap, ++ const QStyleOption *opt) const; ++ int styleHint(StyleHint hint, const QStyleOption *option = 0, const QWidget *widget = 0, ++ QStyleHintReturn *returnData = 0) const; ++ QRect itemPixmapRect(const QRect &r, int flags, const QPixmap &pixmap) const; ++ QPixmap standardPixmap(StandardPixmap standardPixmap, const QStyleOption *opt, ++ const QWidget *widget = 0) const; ++ void drawItemPixmap(QPainter *painter, const QRect &rect, ++ int alignment, const QPixmap &pixmap) const; ++ void drawItemText(QPainter *painter, const QRect &rect, ++ int flags, const QPalette &pal, bool enabled, ++ const QString &text, QPalette::ColorRole textRole = QPalette::NoRole) const; ++ void polish(QWidget *widget); ++ void polish(QApplication *app); ++ void polish(QPalette &pal); ++ void unpolish(QWidget *widget); ++ void unpolish(QApplication *app); ++ ++protected Q_SLOTS: ++ QIcon standardIconImplementation(StandardPixmap standardIcon, const QStyleOption *option, ++ const QWidget *widget = 0) const; ++ ++protected: ++ QHaikuStyle(QHaikuStylePrivate &dd); ++ ++}; ++ ++#endif // QT_NO_STYLE_HAIKU ++ ++QT_END_NAMESPACE ++ ++QT_END_HEADER ++ ++#endif // QHAIKUSTYLE_H +diff -rupN qt-everywhere-opensource-src-4.7.3/src/gui/styles/qhaikustyle_p.h qt-everywhere-opensource-src-4.7.3_haiku/src/gui/styles/qhaikustyle_p.h +--- qt-everywhere-opensource-src-4.7.3/src/gui/styles/qhaikustyle_p.h 1970-01-01 00:00:00.000000000 +0000 ++++ qt-everywhere-opensource-src-4.7.3_haiku/src/gui/styles/qhaikustyle_p.h 2011-06-13 22:06:43.367788032 +0000 +@@ -0,0 +1,82 @@ ++/**************************************************************************** ++** ++** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). ++** Contact: Qt Software Information (qt-info@nokia.com) ++** ++** This file is part of the QtGui module of the Qt Toolkit. ++** ++** $QT_BEGIN_LICENSE:LGPL$ ++** Commercial Usage ++** Licensees holding valid Qt Commercial licenses may use this file in ++** accordance with the Qt Commercial License Agreement provided with the ++** Software or, alternatively, in accordance with the terms contained in ++** a written agreement between you and Nokia. ++** ++** GNU Lesser General Public License Usage ++** Alternatively, this file may be used under the terms of the GNU Lesser ++** General Public License version 2.1 as published by the Free Software ++** Foundation and appearing in the file LICENSE.LGPL included in the ++** packaging of this file. Please review the following information to ++** ensure the GNU Lesser General Public License version 2.1 requirements ++** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ++** ++** In addition, as a special exception, Nokia gives you certain ++** additional rights. These rights are described in the Nokia Qt LGPL ++** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this ++** package. ++** ++** GNU General Public License Usage ++** Alternatively, this file may be used under the terms of the GNU ++** General Public License version 3.0 as published by the Free Software ++** Foundation and appearing in the file LICENSE.GPL included in the ++** packaging of this file. Please review the following information to ++** ensure the GNU General Public License version 3.0 requirements will be ++** met: http://www.gnu.org/copyleft/gpl.html. ++** ++** If you are unsure which license is appropriate for your use, please ++** contact the sales department at qt-sales@nokia.com. ++** $QT_END_LICENSE$ ++** ++****************************************************************************/ ++ ++#ifndef QHAIKYSTYLE_P_H ++#define QHAIKUSTYLE_P_H ++ ++// ++// W A R N I N G ++// ------------- ++// ++// This file is not part of the Qt API. It exists for the convenience ++// of qapplication_*.cpp, qwidget*.cpp and qfiledialog.cpp. This header ++// file may change from version to version without notice, or even be removed. ++// ++// We mean it. ++// ++ ++#include "qwindowsstyle.h" ++#include "qwindowsstyle_p.h" ++ ++#ifndef QT_NO_STYLE_HAIKU ++ ++QT_BEGIN_NAMESPACE ++ ++class QHaikuStylePrivate : public QWindowsStylePrivate ++{ ++ Q_DECLARE_PUBLIC(QHaikuStyle) ++public: ++ QHaikuStylePrivate() ++ : QWindowsStylePrivate() { ++ animationFps = 24; ++ } ++ ++ ~QHaikuStylePrivate() { ++ } ++ ++ void lookupIconTheme() const; ++}; ++ ++QT_END_NAMESPACE ++ ++#endif // QT_NO_STYLE_HAIKU ++ ++#endif //QHAIKUSTYLE_P_H +diff -rupN qt-everywhere-opensource-src-4.7.3/src/gui/styles/qstylefactory.cpp qt-everywhere-opensource-src-4.7.3_haiku/src/gui/styles/qstylefactory.cpp +--- qt-everywhere-opensource-src-4.7.3/src/gui/styles/qstylefactory.cpp 2011-03-30 05:19:06.011796480 +0000 ++++ qt-everywhere-opensource-src-4.7.3_haiku/src/gui/styles/qstylefactory.cpp 2011-06-13 22:06:43.383516672 +0000 +@@ -54,6 +54,9 @@ + #ifndef QT_NO_STYLE_CLEANLOOKS + #include "qcleanlooksstyle.h" + #endif ++#ifndef QT_NO_STYLE_HAIKU ++#include "qhaikustyle.h" ++#endif + #ifndef QT_NO_STYLE_GTK + #include "qgtkstyle.h" + #endif +@@ -172,6 +175,11 @@ QStyle *QStyleFactory::create(const QStr + ret = new QCleanlooksStyle; + else + #endif ++#ifndef QT_NO_STYLE_HAIKU ++ if (style == QLatin1String("haiku")) ++ ret = new QHaikuStyle; ++ else ++#endif + #ifndef QT_NO_STYLE_GTK + if (style == QLatin1String("gtk") || style == QLatin1String("gtk+")) + ret = new QGtkStyle; +@@ -257,6 +265,10 @@ QStringList QStyleFactory::keys() + if (!list.contains(QLatin1String("Cleanlooks"))) + list << QLatin1String("Cleanlooks"); + #endif ++#ifndef QT_NO_STYLE_HAIKU ++ if (!list.contains(QLatin1String("Haiku"))) ++ list << QLatin1String("Haiku"); ++#endif + #ifndef QT_NO_STYLE_MAC + QString mstyle = QLatin1String("Macintosh"); + # ifdef Q_WS_MAC +diff -rupN qt-everywhere-opensource-src-4.7.3/src/gui/styles/styles.pri qt-everywhere-opensource-src-4.7.3_haiku/src/gui/styles/styles.pri +--- qt-everywhere-opensource-src-4.7.3/src/gui/styles/styles.pri 2011-03-30 05:19:06.011796480 +0000 ++++ qt-everywhere-opensource-src-4.7.3_haiku/src/gui/styles/styles.pri 2011-06-13 22:06:43.384827392 +0000 +@@ -188,3 +188,11 @@ contains( styles, s60 ):contains(QT_CONF + } + DEFINES += QT_NO_STYLE_S60 + } ++ ++haiku { ++ HEADERS += styles/qhaikustyle.h ++ HEADERS += styles/qhaikustyle_p.h ++ SOURCES += styles/qhaikustyle.cpp ++} else { ++ DEFINES += QT_NO_STYLE_HAIKU ++} +diff -rupN qt-everywhere-opensource-src-4.7.3/src/gui/text/qfont.cpp qt-everywhere-opensource-src-4.7.3_haiku/src/gui/text/qfont.cpp +--- qt-everywhere-opensource-src-4.7.3/src/gui/text/qfont.cpp 2011-03-30 05:19:05.023592960 +0000 ++++ qt-everywhere-opensource-src-4.7.3_haiku/src/gui/text/qfont.cpp 2011-06-13 22:06:43.387710976 +0000 +@@ -202,6 +202,8 @@ Q_GUI_EXPORT int qt_defaultDpiY() + dpi = qRound(screen->height() / (screen->physicalHeight() / qreal(25.4))); + #elif defined(Q_OS_SYMBIAN) + dpi = S60->defaultDpiY; ++#elif defined(Q_WS_HAIKU) ++ dpi = 72; + #endif // Q_WS_X11 + + return dpi; +diff -rupN qt-everywhere-opensource-src-4.7.3/src/gui/text/qfont_haiku.cpp qt-everywhere-opensource-src-4.7.3_haiku/src/gui/text/qfont_haiku.cpp +--- qt-everywhere-opensource-src-4.7.3/src/gui/text/qfont_haiku.cpp 1970-01-01 00:00:00.000000000 +0000 ++++ qt-everywhere-opensource-src-4.7.3_haiku/src/gui/text/qfont_haiku.cpp 2011-06-13 22:06:43.389021696 +0000 +@@ -0,0 +1,149 @@ ++/**************************************************************************** ++** ++** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). ++** Contact: Qt Software Information (qt-info@nokia.com) ++** ++** This file is part of the QtGui module of the Qt Toolkit. ++** ++** $QT_BEGIN_LICENSE:LGPL$ ++** Commercial Usage ++** Licensees holding valid Qt Commercial licenses may use this file in ++** accordance with the Qt Commercial License Agreement provided with the ++** Software or, alternatively, in accordance with the terms contained in ++** a written agreement between you and Nokia. ++** ++** GNU Lesser General Public License Usage ++** Alternatively, this file may be used under the terms of the GNU Lesser ++** General Public License version 2.1 as published by the Free Software ++** Foundation and appearing in the file LICENSE.LGPL included in the ++** packaging of this file. Please review the following information to ++** ensure the GNU Lesser General Public License version 2.1 requirements ++** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ++** ++** In addition, as a special exception, Nokia gives you certain ++** additional rights. These rights are described in the Nokia Qt LGPL ++** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this ++** package. ++** ++** GNU General Public License Usage ++** Alternatively, this file may be used under the terms of the GNU ++** General Public License version 3.0 as published by the Free Software ++** Foundation and appearing in the file LICENSE.GPL included in the ++** packaging of this file. Please review the following information to ++** ensure the GNU General Public License version 3.0 requirements will be ++** met: http://www.gnu.org/copyleft/gpl.html. ++** ++** If you are unsure which license is appropriate for your use, please ++** contact the sales department at qt-sales@nokia.com. ++** $QT_END_LICENSE$ ++** ++****************************************************************************/ ++ ++#include "qfont.h" ++#include "qfont_p.h" ++#include "qfontengine_p.h" ++#include "qfontinfo.h" ++#include "qfontmetrics.h" ++#include "qpaintdevice.h" ++#include "qstring.h" ++#include ++#include ++#include ++#include "qfontdatabase.h" ++#include ++#include "qtextengine_p.h" ++#include ++ ++QT_BEGIN_NAMESPACE ++ ++float qt_haiku_defaultDpi_x() ++{ ++ return 72.0; ++} ++ ++int qt_haiku_pixelsize(const QFontDef &def, int dpi) ++{ ++ float ret; ++ if(def.pixelSize == -1) ++ ret = def.pointSize * dpi / qt_haiku_defaultDpi_x(); ++ else ++ ret = def.pixelSize; ++ return qRound(ret); ++} ++ ++int qt_haiku_pointsize(const QFontDef &def, int dpi) ++{ ++ float ret; ++ if(def.pointSize < 0) ++ ret = def.pixelSize * qt_haiku_defaultDpi_x() / float(dpi); ++ else ++ ret = def.pointSize; ++ return qRound(ret); ++} ++ ++Q_GUI_EXPORT const char *qt_fontFamilyFromStyleHint(const QFontDef &request) ++{ ++ const char *family = 0; ++ switch (request.styleHint) { ++ case QFont::Helvetica: ++ family = "DejaVu Sans"; ++ break; ++ case QFont::Times: ++ case QFont::OldEnglish: ++ family = "DejaVu Serif"; ++ break; ++ case QFont::Courier: ++ family = "DejaVu Sans Mono"; ++ break; ++ case QFont::System: ++ family = "DejaVu Sans"; ++ break; ++ case QFont::AnyStyle: ++ if (request.fixedPitch) ++ family = "DejaVu Sans Mono"; ++ else ++ family = "DejaVu Sans"; ++ break; ++ } ++ return family; ++} ++ ++/***************************************************************************** ++ QFont member functions ++ *****************************************************************************/ ++ ++void QFont::initialize() ++{ ++} ++ ++void QFont::cleanup() ++{ ++ QFontCache::cleanup(); ++} ++ ++QString QFont::rawName() const ++{ ++ return family(); ++} ++ ++void QFont::setRawName(const QString &name) ++{ ++ setFamily(name); ++} ++ ++QString QFont::defaultFamily() const ++{ ++ return QLatin1String(qt_fontFamilyFromStyleHint(d->request)); ++} ++ ++QString QFont::lastResortFamily() const ++{ ++ return QString::fromLatin1("DejaVu Sans"); ++} ++ ++QString QFont::lastResortFont() const ++{ ++ return QString::fromLatin1("DejaVu Sans"); ++} ++ ++QT_END_NAMESPACE +diff -rupN qt-everywhere-opensource-src-4.7.3/src/gui/text/qfont_p.h qt-everywhere-opensource-src-4.7.3_haiku/src/gui/text/qfont_p.h +--- qt-everywhere-opensource-src-4.7.3/src/gui/text/qfont_p.h 2011-03-30 05:19:05.022806528 +0000 ++++ qt-everywhere-opensource-src-4.7.3_haiku/src/gui/text/qfont_p.h 2011-06-13 22:06:43.390332416 +0000 +@@ -273,6 +273,10 @@ public: + int timer_id; + }; + ++#ifdef Q_WS_HAIKU ++Q_GUI_EXPORT const char *qt_fontFamilyFromStyleHint(const QFontDef &request); ++#endif ++ + QT_END_NAMESPACE + + #endif // QFONT_P_H +diff -rupN qt-everywhere-opensource-src-4.7.3/src/gui/text/qfontdatabase.cpp qt-everywhere-opensource-src-4.7.3_haiku/src/gui/text/qfontdatabase.cpp +--- qt-everywhere-opensource-src-4.7.3/src/gui/text/qfontdatabase.cpp 2011-03-30 05:19:05.024903680 +0000 ++++ qt-everywhere-opensource-src-4.7.3_haiku/src/gui/text/qfontdatabase.cpp 2011-06-13 22:06:43.392953856 +0000 +@@ -151,10 +151,10 @@ struct QtFontSize + uint yres = 0, uint avgwidth = 0, bool add = false); + unsigned short count : 16; + #endif // Q_WS_X11 +-#if defined(Q_WS_QWS) || defined(Q_OS_SYMBIAN) ++#if defined(Q_WS_QWS) || defined(Q_OS_SYMBIAN) || defined(Q_WS_HAIKU) + QByteArray fileName; + int fileIndex; +-#endif // defined(Q_WS_QWS) || defined(Q_OS_SYMBIAN) ++#endif // defined(Q_WS_QWS) || defined(Q_OS_SYMBIAN) || defined(Q_WS_HAIKU) + + unsigned short pixelSize : 16; + }; +@@ -230,14 +230,14 @@ struct QtFontStyle + delete [] weightName; + delete [] setwidthName; + #endif +-#if defined(Q_WS_X11) || defined(Q_WS_QWS) || defined(Q_OS_SYMBIAN) ++#if defined(Q_WS_X11) || defined(Q_WS_QWS) || defined(Q_OS_SYMBIAN) || defined(Q_WS_HAIKU) + while (count) { + // bitfield count-- in while condition does not work correctly in mwccsym2 + count--; + #ifdef Q_WS_X11 + free(pixelSizes[count].encodings); + #endif +-#if defined(Q_WS_QWS) || defined(Q_OS_SYMBIAN) ++#if defined(Q_WS_QWS) || defined(Q_OS_SYMBIAN) || defined(Q_WS_HAIKU) + pixelSizes[count].fileName.~QByteArray(); + #endif + } +@@ -255,7 +255,7 @@ struct QtFontStyle + const char *weightName; + const char *setwidthName; + #endif // Q_WS_X11 +-#if defined(Q_WS_QWS) || defined(Q_OS_SYMBIAN) ++#if defined(Q_WS_QWS) || defined(Q_OS_SYMBIAN) || defined(Q_WS_HAIKU) + bool antialiased; + #endif + +@@ -301,7 +301,7 @@ QtFontSize *QtFontStyle::pixelSize(unsig + pixelSizes[count].count = 0; + pixelSizes[count].encodings = 0; + #endif +-#if defined(Q_WS_QWS) || defined(Q_OS_SYMBIAN) ++#if defined(Q_WS_QWS) || defined(Q_OS_SYMBIAN) || defined(Q_WS_HAIKU) + new (&pixelSizes[count].fileName) QByteArray; + pixelSizes[count].fileIndex = 0; + #endif +@@ -474,7 +474,7 @@ QtFontFoundry *QtFontFamily::foundry(con + + // ### copied to tools/makeqpf/qpf2.cpp + +-#if (defined(Q_WS_QWS) && !defined(QT_NO_FREETYPE)) || defined(Q_WS_WIN) || defined(Q_OS_SYMBIAN) || (defined(Q_WS_MAC) && !defined(QT_MAC_USE_COCOA)) ++#if (defined(Q_WS_QWS) && !defined(QT_NO_FREETYPE)) || defined(Q_WS_WIN) || defined(Q_OS_SYMBIAN) || defined(Q_WS_HAIKU) || (defined(Q_WS_MAC) && !defined(QT_MAC_USE_COCOA)) + // see the Unicode subset bitfields in the MSDN docs + static int requiredUnicodeBits[QFontDatabase::WritingSystemsCount][2] = { + // Any, +@@ -994,7 +994,7 @@ static void initFontDef(const QtFontDesc + #endif + #endif + +-#if defined(Q_WS_X11) || defined(Q_WS_WIN) || defined(Q_OS_SYMBIAN) ++#if defined(Q_WS_X11) || defined(Q_WS_WIN) || defined(Q_OS_SYMBIAN) || defined(Q_WS_HAIKU) + static void getEngineData(const QFontPrivate *d, const QFontCache::Key &key) + { + // look for the requested font in the engine data cache +@@ -1057,6 +1057,8 @@ QT_BEGIN_INCLUDE_NAMESPACE + # include "qfontdatabase_qws.cpp" + #elif defined(Q_OS_SYMBIAN) + # include "qfontdatabase_s60.cpp" ++#elif defined(Q_WS_HAIKU) ++# include "qfontdatabase_haiku.cpp" + #endif + QT_END_INCLUDE_NAMESPACE + +diff -rupN qt-everywhere-opensource-src-4.7.3/src/gui/text/qfontdatabase_haiku.cpp qt-everywhere-opensource-src-4.7.3_haiku/src/gui/text/qfontdatabase_haiku.cpp +--- qt-everywhere-opensource-src-4.7.3/src/gui/text/qfontdatabase_haiku.cpp 1970-01-01 00:00:00.000000000 +0000 ++++ qt-everywhere-opensource-src-4.7.3_haiku/src/gui/text/qfontdatabase_haiku.cpp 2011-06-13 22:06:43.395051008 +0000 +@@ -0,0 +1,373 @@ ++#include "qfontdatabase.h" ++#include //to get qfontdatabase.cpp compiling ++#include "qfont_p.h" ++#include "qfontengine_p.h" ++#include "qfontengine_ft_p.h" ++#include "qfontengine_haiku_p.h" ++#include "qpaintdevice.h" ++#include "qlibrary.h" ++#include "qabstractfileengine.h" ++#include "qendian.h" ++ ++#include ++ ++#include ++#include ++#include ++#include ++#include ++ ++#include ++#include FT_FREETYPE_H ++#include FT_TYPES_H ++#include FT_TRUETYPE_TABLES_H ++#include FT_LCD_FILTER_H ++ ++struct FaceData ++{ ++ int index; ++ QString familyName; ++ QtFontStyle::Key styleKey; ++ QList systems; ++ bool fixedPitch; ++ bool smoothScalable; ++ QList pixelSizes; ++}; ++ ++// from qfont_haiku.cpp ++extern int qt_haiku_pixelsize(const QFontDef &def, int dpi); ++extern int qt_haiku_pointsize(const QFontDef &def, int dpi); ++extern float qt_haiku_defaultDpi_x(); ++ ++static void initializeDb() ++{ ++ QFontDatabasePrivate *db = privateDb(); ++ if(!db || db->count) ++ return; ++ ++ extern FT_Library qt_getFreetype(); // qfontengine_ft.cpp ++ FT_Library lib = qt_getFreetype(); ++ ++ directory_which FontDirs[] = { ++ B_BEOS_FONTS_DIRECTORY, ++ B_COMMON_FONTS_DIRECTORY, ++ B_USER_FONTS_DIRECTORY ++ }; ++ ++ ++ for(int nfont=0;nfont<3;nfont++) ++ { ++ BPath fontDir; ++ find_directory(FontDirs[nfont],&fontDir); ++ fontDir.Append("ttfonts"); ++ ++ BDirectory dir(fontDir.Path()); ++ if (dir.InitCheck() != B_OK) ++ continue; ++ ++ BEntry ent; ++ char filename[B_FILE_NAME_LENGTH]; ++ int file_index_value = 0; ++ ++ while (dir.GetNextEntry(&ent) == B_NO_ERROR) ++ { ++ QList facedata; ++ ++ ent.GetName(filename); ++ BPath path = BPath(&dir, filename); ++ ++ FT_Long numFaces = 0; ++ FT_Face face; ++ ++ FT_Error rc = FT_New_Face(lib, path.Path(), -1, &face); ++ if (rc == 0) { ++ numFaces = face->num_faces; ++ FT_Done_Face(face); ++ } ++ ++ for (FT_Long idx = 0; idx < numFaces; ++idx) { ++ rc = FT_New_Face(lib, path.Path(), idx, &face); ++ FaceData fdata; ++ fdata.index = idx; ++ fdata.familyName = QString::fromLatin1(face->family_name); ++ fdata.familyName = fdata.familyName.trimmed(); ++ ++ fdata.styleKey.style = face->style_flags & FT_STYLE_FLAG_ITALIC ? QFont::StyleItalic : QFont::StyleNormal; ++ ++ TT_OS2 *os2_table = 0; ++ if (face->face_flags & FT_FACE_FLAG_SFNT) { ++ os2_table = (TT_OS2 *)FT_Get_Sfnt_Table(face, ft_sfnt_os2); ++ } ++ if (os2_table) { ++ // map weight and width values ++ if (os2_table->usWeightClass < 400) ++ fdata.styleKey.weight = QFont::Light; ++ else if (os2_table->usWeightClass < 600) ++ fdata.styleKey.weight = QFont::Normal; ++ else if (os2_table->usWeightClass < 700) ++ fdata.styleKey.weight = QFont::DemiBold; ++ else if (os2_table->usWeightClass < 800) ++ fdata.styleKey.weight = QFont::Bold; ++ else ++ fdata.styleKey.weight = QFont::Black; ++ ++ switch (os2_table->usWidthClass) { ++ case 1: fdata.styleKey.stretch = QFont::UltraCondensed; break; ++ case 2: fdata.styleKey.stretch = QFont::ExtraCondensed; break; ++ case 3: fdata.styleKey.stretch = QFont::Condensed; break; ++ case 4: fdata.styleKey.stretch = QFont::SemiCondensed; break; ++ case 5: fdata.styleKey.stretch = QFont::Unstretched; break; ++ case 6: fdata.styleKey.stretch = QFont::SemiExpanded; break; ++ case 7: fdata.styleKey.stretch = QFont::Expanded; break; ++ case 8: fdata.styleKey.stretch = QFont::ExtraExpanded; break; ++ case 9: fdata.styleKey.stretch = QFont::UltraExpanded; break; ++ default: fdata.styleKey.stretch = QFont::Unstretched; break; ++ } ++ quint32 unicodeRange[4] = { ++ os2_table->ulUnicodeRange1, os2_table->ulUnicodeRange2, ++ os2_table->ulUnicodeRange3, os2_table->ulUnicodeRange4 ++ }; ++ quint32 codePageRange[2] = { ++ os2_table->ulCodePageRange1, os2_table->ulCodePageRange2 ++ }; ++ fdata.systems = determineWritingSystemsFromTrueTypeBits(unicodeRange, codePageRange); ++ } else { ++ fdata.styleKey.weight = face->style_flags & FT_STYLE_FLAG_BOLD ? QFont::Bold : QFont::Normal; ++ fdata.styleKey.stretch = QFont::Unstretched; ++ } ++ ++ fdata.fixedPitch = face->face_flags & FT_FACE_FLAG_FIXED_WIDTH; ++ fdata.smoothScalable = face->face_flags & FT_FACE_FLAG_SCALABLE; ++ ++ if (face->face_flags & FT_FACE_FLAG_FIXED_SIZES) { ++ for (FT_Int i = 0; i < face->num_fixed_sizes; ++i) { ++ fdata.pixelSizes << face->available_sizes[i].height; ++ } ++ } ++ facedata << fdata; ++ ++ if(face) ++ FT_Done_Face(face); ++ } ++ ++ foreach(FaceData cached, facedata) { ++ const QString foundryName; ++ QtFontFamily *family = privateDb()->family(cached.familyName, true); ++ family->fixedPitch = cached.fixedPitch; ++ ++ for (int i = 0; i < cached.systems.count(); ++i) ++ family->writingSystems[cached.systems.at(i)] = QtFontFamily::Supported; ++ ++ QtFontFoundry *foundry = family->foundry(foundryName, true); ++ QtFontStyle *style = foundry->style(cached.styleKey, true); ++ ++ style->antialiased = true; ++ ++ QByteArray file((const char *)path.Path()); ++ ++ if (cached.smoothScalable && !style->smoothScalable) { ++ style->smoothScalable = true; ++ QtFontSize *size = style->pixelSize(SMOOTH_SCALABLE, true); ++ size->fileName = file; ++ size->fileIndex = cached.index; ++ } ++ ++ foreach(unsigned short pixelSize, cached.pixelSizes) { ++ QtFontSize *size = style->pixelSize(pixelSize, true); ++ // the first bitmap style with a given pixel and point size wins ++ if (!size->fileName.isEmpty()) ++ continue; ++ size->fileName = file; ++ size->fileIndex = cached.index; ++ } ++ } ++ file_index_value++; ++ } ++ } ++} ++ ++static inline void load(const QString &family = QString(), int = -1) ++{ ++} ++ ++static void registerFont(QFontDatabasePrivate::ApplicationFont *fnt) ++{ ++} ++ ++static QFontDef fontDescToFontDef(const QFontDef &req, const QtFontDesc &desc) ++{ ++ static long dpi = qt_haiku_defaultDpi_x(); ++ ++ QFontDef fontDef; ++ ++ fontDef.family = desc.family->name; ++ ++ if (desc.size->pixelSize == SMOOTH_SCALABLE) { ++ // scalable font matched, calculate the missing size (points or pixels) ++ fontDef.pointSize = req.pointSize; ++ fontDef.pixelSize = req.pixelSize; ++ if (req.pointSize < 0) { ++ fontDef.pointSize = req.pixelSize * 72. / dpi; ++ } else if (req.pixelSize == -1) { ++ fontDef.pixelSize = qRound(req.pointSize * dpi / 72.); ++ } ++ } else { ++ // non-scalable font matched, calculate both point and pixel size ++ fontDef.pixelSize = desc.size->pixelSize; ++ fontDef.pointSize = desc.size->pixelSize * 72. / dpi; ++ } ++ ++ fontDef.styleStrategy = req.styleStrategy; ++ fontDef.styleHint = req.styleHint; ++ ++ fontDef.weight = desc.style->key.weight; ++ fontDef.fixedPitch = desc.family->fixedPitch; ++ fontDef.style = desc.style->key.style; ++ fontDef.stretch = desc.style->key.stretch; ++ ++ return fontDef; ++} ++ ++static QFontEngine *loadEngine(const QFontDef &req, const QtFontDesc &desc) ++{ ++ // @todo all these fixed so far; make configurable through the Registry ++ // on per-family basis ++ QFontEngineHaiku::HintStyle hintStyle = QFontEngineHaiku::HintFull; ++ bool autoHint = true; ++ QFontEngineFT::SubpixelAntialiasingType subPixel = QFontEngineFT::Subpixel_None; ++ int lcdFilter = FT_LCD_FILTER_DEFAULT; ++ bool useEmbeddedBitmap = true; ++ ++ QFontEngine::FaceId faceId; ++ faceId.filename = desc.size->fileName; ++ faceId.index = desc.size->fileIndex; ++ ++ QFontEngineFT *fe = new QFontEngineHaiku(fontDescToFontDef(req, desc), faceId, ++ desc.style->antialiased, hintStyle, ++ autoHint, subPixel, lcdFilter, ++ useEmbeddedBitmap); ++ Q_ASSERT(fe); ++ if (fe && fe->invalid()) { ++ FM_DEBUG(" --> invalid!\n"); ++ delete fe; ++ fe = 0; ++ } ++ return fe; ++} ++ ++static QFontEngine *loadHaikuFT(const QFontPrivate *d, int script, const QFontDef &req) ++{ ++ // list of families to try ++ QStringList families = familyList(req); ++ ++ const char *styleHint = qt_fontFamilyFromStyleHint(d->request); ++ if (styleHint) ++ families << QLatin1String(styleHint); ++ ++ // add the default family ++ QString defaultFamily = QApplication::font().family(); ++ if (! families.contains(defaultFamily)) ++ families << defaultFamily; ++ ++ // add QFont::defaultFamily() to the list, for compatibility with ++ // previous versions ++ families << QApplication::font().defaultFamily(); ++ ++ // null family means find the first font matching the specified script ++ families << QString(); ++ ++ QtFontDesc desc; ++ QFontEngine *fe = 0; ++ QList blacklistedFamilies; ++ ++ while (!fe) { ++ for (int i = 0; i < families.size(); ++i) { ++ QString family, foundry; ++ parseFontName(families.at(i), foundry, family); ++ QT_PREPEND_NAMESPACE(match)(script, req, family, foundry, -1, &desc, blacklistedFamilies); ++ if (desc.family) ++ break; ++ } ++ if (!desc.family) ++ break; ++ fe = loadEngine(req, desc); ++ if (!fe) ++ blacklistedFamilies.append(desc.familyIndex); ++ } ++ return fe; ++} ++ ++void QFontDatabase::load(const QFontPrivate *d, int script) ++{ ++ Q_ASSERT(script >= 0 && script < QUnicodeTables::ScriptCount); ++ ++ // normalize the request to get better caching ++ QFontDef req = d->request; ++ ++ if (req.pixelSize <= 0) ++ req.pixelSize = qMax(1, qRound(req.pointSize * d->dpi / qt_haiku_defaultDpi_x())); ++ req.pointSize = 0; ++ if (req.weight == 0) ++ req.weight = QFont::Normal; ++ if (req.stretch == 0) ++ req.stretch = 100; ++ ++ QFontCache::Key key(req, d->rawMode ? QUnicodeTables::Common : script, d->screen); ++ if (!d->engineData) ++ getEngineData(d, key); ++ ++ // the cached engineData could have already loaded the engine we want ++ if (d->engineData->engines[script]) ++ return; ++ ++ // set it to the actual pointsize, so QFontInfo will do the right thing ++ req.pointSize = req.pixelSize * qt_haiku_defaultDpi_x() / d->dpi; ++ ++ QFontEngine *fe = QFontCache::instance()->findEngine(key); ++ ++ // qDebug()<<"QFontDatabase::load(2) pixelsize:"<fontDef = req; ++ } else { ++ QMutexLocker locker(fontDatabaseMutex()); ++ if (!privateDb()->count) ++ initializeDb(); ++ fe = loadHaikuFT(d, script, req); ++ } ++ if (!fe) { ++ fe = new QFontEngineBox(req.pixelSize); ++ fe->fontDef = QFontDef(); ++ } ++ } ++ if (fe->symbol || (d->request.styleStrategy & QFont::NoFontMerging)) { ++ for (int i = 0; i < QUnicodeTables::ScriptCount; ++i) { ++ if (!d->engineData->engines[i]) { ++ d->engineData->engines[i] = fe; ++ fe->ref.ref(); ++ } ++ } ++ } else { ++ d->engineData->engines[script] = fe; ++ fe->ref.ref(); ++ } ++ QFontCache::instance()->insertEngine(key, fe); ++} ++ ++ ++bool QFontDatabase::removeApplicationFont(int handle) ++{ ++ return false; ++} ++ ++bool QFontDatabase::removeAllApplicationFonts() ++{ ++ return false; ++} ++ ++bool QFontDatabase::supportsThreadedFontRendering() ++{ ++ return true; ++} +diff -rupN qt-everywhere-opensource-src-4.7.3/src/gui/text/qfontengine.cpp qt-everywhere-opensource-src-4.7.3_haiku/src/gui/text/qfontengine.cpp +--- qt-everywhere-opensource-src-4.7.3/src/gui/text/qfontengine.cpp 2011-03-30 05:19:05.028311552 +0000 ++++ qt-everywhere-opensource-src-4.7.3_haiku/src/gui/text/qfontengine.cpp 2011-06-13 22:06:43.396623872 +0000 +@@ -737,7 +737,7 @@ QFontEngineGlyphCache *QFontEngine::glyp + return 0; + } + +-#if defined(Q_WS_WIN) || defined(Q_WS_X11) || defined(Q_WS_QWS) || defined(Q_OS_SYMBIAN) ++#if defined(Q_WS_WIN) || defined(Q_WS_X11) || defined(Q_WS_QWS) || defined(Q_OS_SYMBIAN) || defined(Q_WS_HAIKU) + static inline QFixed kerning(int left, int right, const QFontEngine::KernPair *pairs, int numPairs) + { + uint left_right = (left << 16) + right; +diff -rupN qt-everywhere-opensource-src-4.7.3/src/gui/text/qfontengine_haiku.cpp qt-everywhere-opensource-src-4.7.3_haiku/src/gui/text/qfontengine_haiku.cpp +--- qt-everywhere-opensource-src-4.7.3/src/gui/text/qfontengine_haiku.cpp 1970-01-01 00:00:00.000000000 +0000 ++++ qt-everywhere-opensource-src-4.7.3_haiku/src/gui/text/qfontengine_haiku.cpp 2011-06-13 22:06:43.397934592 +0000 +@@ -0,0 +1,93 @@ ++/**************************************************************************** ++** ++** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). ++** Contact: Qt Software Information (qt-info@nokia.com) ++** ++** Copyright (C) 2009 netlabs.org. OS/2 parts. ++** ++** This file is part of the QtGui module of the Qt Toolkit. ++** ++** $QT_BEGIN_LICENSE:LGPL$ ++** Commercial Usage ++** Licensees holding valid Qt Commercial licenses may use this file in ++** accordance with the Qt Commercial License Agreement provided with the ++** Software or, alternatively, in accordance with the terms contained in ++** a written agreement between you and Nokia. ++** ++** GNU Lesser General Public License Usage ++** Alternatively, this file may be used under the terms of the GNU Lesser ++** General Public License version 2.1 as published by the Free Software ++** Foundation and appearing in the file LICENSE.LGPL included in the ++** packaging of this file. Please review the following information to ++** ensure the GNU Lesser General Public License version 2.1 requirements ++** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ++** ++** In addition, as a special exception, Nokia gives you certain ++** additional rights. These rights are described in the Nokia Qt LGPL ++** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this ++** package. ++** ++** GNU General Public License Usage ++** Alternatively, this file may be used under the terms of the GNU ++** General Public License version 3.0 as published by the Free Software ++** Foundation and appearing in the file LICENSE.GPL included in the ++** packaging of this file. Please review the following information to ++** ensure the GNU General Public License version 3.0 requirements will be ++** met: http://www.gnu.org/copyleft/gpl.html. ++** ++** If you are unsure which license is appropriate for your use, please ++** contact the sales department at qt-sales@nokia.com. ++** $QT_END_LICENSE$ ++** ++****************************************************************************/ ++ ++#include "qfontengine_p.h" ++#include "qtextengine_p.h" ++ ++#include "qfontengine_haiku_p.h" ++ ++QT_BEGIN_NAMESPACE ++ ++#ifndef QT_NO_FREETYPE ++ ++// ------------------------------------------------------------------ ++// PM FT engine ++// ------------------------------------------------------------------ ++ ++QFontEngineHaiku::QFontEngineHaiku(const QFontDef &fd, const FaceId &faceId, ++ bool antialias, HintStyle hintStyle, ++ bool autoHint, SubpixelAntialiasingType subPixel, ++ int lcdFilter, bool useEmbeddedBitmap) ++ : QFontEngineFT(fd) ++{ ++ subpixelType = subPixel; ++ ++ default_hint_style = (QFontEngineFT::HintStyle)hintStyle; ++ ++#if defined(FT_LOAD_FORCE_AUTOHINT) ++ if (autoHint) ++ default_load_flags |= FT_LOAD_FORCE_AUTOHINT; ++#endif ++ ++ lcdFilterType = lcdFilter; ++ embeddedbitmap = useEmbeddedBitmap; ++ ++ GlyphFormat defaultFormat = Format_None; ++ if (subpixelType != QFontEngineFT::Subpixel_None) ++ defaultFormat = Format_A32; ++ else if (antialias) ++ defaultFormat = Format_A8; ++ else ++ defaultFormat = Format_Mono; ++ ++ init(faceId, antialias, defaultFormat); ++} ++ ++QFontEngineHaiku::~QFontEngineHaiku() ++{ ++ freeGlyphSets(); ++} ++ ++#endif // QT_NO_FREETYPE ++ ++QT_END_NAMESPACE +diff -rupN qt-everywhere-opensource-src-4.7.3/src/gui/text/qfontengine_haiku_p.h qt-everywhere-opensource-src-4.7.3_haiku/src/gui/text/qfontengine_haiku_p.h +--- qt-everywhere-opensource-src-4.7.3/src/gui/text/qfontengine_haiku_p.h 1970-01-01 00:00:00.000000000 +0000 ++++ qt-everywhere-opensource-src-4.7.3_haiku/src/gui/text/qfontengine_haiku_p.h 2011-06-13 22:06:43.398983168 +0000 +@@ -0,0 +1,90 @@ ++/**************************************************************************** ++** ++** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). ++** Contact: Qt Software Information (qt-info@nokia.com) ++** ++** Copyright (C) 2009 netlabs.org. OS/2 parts. ++** ++** This file is part of the QtGui module of the Qt Toolkit. ++** ++** $QT_BEGIN_LICENSE:LGPL$ ++** Commercial Usage ++** Licensees holding valid Qt Commercial licenses may use this file in ++** accordance with the Qt Commercial License Agreement provided with the ++** Software or, alternatively, in accordance with the terms contained in ++** a written agreement between you and Nokia. ++** ++** GNU Lesser General Public License Usage ++** Alternatively, this file may be used under the terms of the GNU Lesser ++** General Public License version 2.1 as published by the Free Software ++** Foundation and appearing in the file LICENSE.LGPL included in the ++** packaging of this file. Please review the following information to ++** ensure the GNU Lesser General Public License version 2.1 requirements ++** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ++** ++** In addition, as a special exception, Nokia gives you certain ++** additional rights. These rights are described in the Nokia Qt LGPL ++** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this ++** package. ++** ++** GNU General Public License Usage ++** Alternatively, this file may be used under the terms of the GNU ++** General Public License version 3.0 as published by the Free Software ++** Foundation and appearing in the file LICENSE.GPL included in the ++** packaging of this file. Please review the following information to ++** ensure the GNU General Public License version 3.0 requirements will be ++** met: http://www.gnu.org/copyleft/gpl.html. ++** ++** If you are unsure which license is appropriate for your use, please ++** contact the sales department at qt-sales@nokia.com. ++** $QT_END_LICENSE$ ++** ++****************************************************************************/ ++ ++#ifndef QFONTENGINE_HAIKU_P_H ++#define QFONTENGINE_HAIKU_P_H ++ ++// ++// W A R N I N G ++// ------------- ++// ++// This file is not part of the Qt API. It exists purely as an ++// implementation detail. This header file may change from version to ++// version without notice, or even be removed. ++// ++// We mean it. ++// ++ ++#include ++ ++#ifdef QT_NO_FREETYPE ++# error "The OS/2 version of Qt requires FreeType support, but QT_NO_FREETYPE " \ ++ "is defined!" ++#endif ++ ++QT_BEGIN_NAMESPACE ++ ++#ifndef QT_NO_FREETYPE ++ ++class Q_GUI_EXPORT QFontEngineHaiku : public QFontEngineFT ++{ ++public: ++ enum HintStyle { ++ HintNone = QFontEngineFT::HintNone, ++ HintLight = QFontEngineFT::HintLight, ++ HintMedium = QFontEngineFT::HintMedium, ++ HintFull = QFontEngineFT::HintFull ++ }; ++ ++ explicit QFontEngineHaiku(const QFontDef &fd, const FaceId &faceId, ++ bool antialias, HintStyle hintStyle, ++ bool autoHint, SubpixelAntialiasingType subPixel, ++ int lcdFilter, bool useEmbeddedBitmap); ++ ~QFontEngineHaiku(); ++}; ++ ++#endif ++ ++QT_END_NAMESPACE ++ ++#endif // QFONTENGINE_HAIKU_P_H +diff -rupN qt-everywhere-opensource-src-4.7.3/src/gui/text/qfontengine_p.h qt-everywhere-opensource-src-4.7.3_haiku/src/gui/text/qfontengine_p.h +--- qt-everywhere-opensource-src-4.7.3/src/gui/text/qfontengine_p.h 2011-03-30 05:19:05.031457280 +0000 ++++ qt-everywhere-opensource-src-4.7.3_haiku/src/gui/text/qfontengine_p.h 2011-06-13 22:06:43.400556032 +0000 +@@ -168,7 +168,7 @@ public: + virtual void recalcAdvances(QGlyphLayout *, QTextEngine::ShaperFlags) const {} + virtual void doKerning(QGlyphLayout *, QTextEngine::ShaperFlags) const; + +-#if !defined(Q_WS_X11) && !defined(Q_WS_WIN) && !defined(Q_WS_MAC) && !defined(Q_OS_SYMBIAN) ++#if !defined(Q_WS_X11) && !defined(Q_WS_WIN) && !defined(Q_WS_MAC) && !defined(Q_OS_SYMBIAN) && !defined(Q_WS_HAIKU) + virtual void draw(QPaintEngine *p, qreal x, qreal y, const QTextItemInt &si) = 0; + #endif + virtual void addGlyphsToPath(glyph_t *glyphs, QFixedPoint *positions, int nglyphs, +@@ -237,7 +237,7 @@ public: + bool symbol; + mutable HB_FontRec hbFont; + mutable HB_Face hbFace; +-#if defined(Q_WS_WIN) || defined(Q_WS_X11) || defined(Q_WS_QWS) || defined(Q_OS_SYMBIAN) ++#if defined(Q_WS_WIN) || defined(Q_WS_X11) || defined(Q_WS_QWS) || defined(Q_OS_SYMBIAN) || defined(Q_WS_HAIKU) + struct KernPair { + uint left_right; + QFixed adjust; +diff -rupN qt-everywhere-opensource-src-4.7.3/src/gui/text/text.pri qt-everywhere-opensource-src-4.7.3_haiku/src/gui/text/text.pri +--- qt-everywhere-opensource-src-4.7.3/src/gui/text/text.pri 2011-03-30 05:19:05.029622272 +0000 ++++ qt-everywhere-opensource-src-4.7.3_haiku/src/gui/text/text.pri 2011-06-13 22:06:43.401866752 +0000 +@@ -203,5 +203,15 @@ contains(QT_CONFIG, fontconfig) { + CONFIG += opentype + } + ++haiku*: { ++ HEADERS += \ ++ text/qfontengine_ft_p.h \ ++ text/qfontengine_haiku_p.h ++ SOURCES += \ ++ text/qfont_haiku.cpp \ ++ text/qfontengine_ft.cpp \ ++ text/qfontengine_haiku.cpp ++} ++ + DEFINES += QT_NO_OPENTYPE + INCLUDEPATH += ../3rdparty/harfbuzz/src +diff -rupN qt-everywhere-opensource-src-4.7.3/src/gui/util/qdesktopservices.cpp qt-everywhere-opensource-src-4.7.3_haiku/src/gui/util/qdesktopservices.cpp +--- qt-everywhere-opensource-src-4.7.3/src/gui/util/qdesktopservices.cpp 2011-03-30 05:19:06.001310720 +0000 ++++ qt-everywhere-opensource-src-4.7.3_haiku/src/gui/util/qdesktopservices.cpp 2011-06-13 22:06:43.403439616 +0000 +@@ -55,6 +55,8 @@ + #include "qdesktopservices_mac.cpp" + #elif defined(Q_OS_SYMBIAN) + #include "qdesktopservices_s60.cpp" ++#elif defined(Q_WS_HAIKU) ++#include "qdesktopservices_haiku.cpp" + #endif + + #include +diff -rupN qt-everywhere-opensource-src-4.7.3/src/gui/util/qdesktopservices_haiku.cpp qt-everywhere-opensource-src-4.7.3_haiku/src/gui/util/qdesktopservices_haiku.cpp +--- qt-everywhere-opensource-src-4.7.3/src/gui/util/qdesktopservices_haiku.cpp 1970-01-01 00:00:00.000000000 +0000 ++++ qt-everywhere-opensource-src-4.7.3_haiku/src/gui/util/qdesktopservices_haiku.cpp 2011-06-13 22:06:43.404750336 +0000 +@@ -0,0 +1,81 @@ ++#include "qdesktopservices.h" ++#include "qdir.h" ++#include "qurl.h" ++ ++#ifndef QT_NO_DESKTOPSERVICES ++ ++#include ++ ++QT_BEGIN_NAMESPACE ++ ++static bool openDocument(const QUrl &file) ++{ ++ QString cmd = QLatin1String("open ") + file.toString(); ++ system((cmd.toUtf8()).data()); ++ return true; ++} ++ ++static bool launchWebBrowser(const QUrl &url) ++{ ++ QString cmd = QLatin1String("open ") + url.toString(); ++ system((cmd.toUtf8()).data()); ++ return true; ++} ++ ++QString QDesktopServices::storageLocation(StandardLocation type) ++{ ++ if (type == QDesktopServices::HomeLocation) ++ return QLatin1String("/boot/home"); ++ if (type == QDesktopServices::TempLocation) ++ return QDir::tempPath(); ++ ++ if (type == QDesktopServices::CacheLocation) { ++ return QDir::homePath() + QLatin1String("/cache"); ++ } ++ ++ if (type == QDesktopServices::DataLocation) { ++ return QDir::homePath() + QLatin1String("/data"); ++ } ++ ++ QDir emptyDir; ++ QString path; ++ switch (type) { ++ case DesktopLocation: ++ path = QLatin1String("/boot/home/Desktop"); ++ break; ++ case DocumentsLocation: ++ path = QLatin1String("/boot/home/Documents"); ++ break; ++ case PicturesLocation: ++ path = QLatin1String("/boot/home/Pictures"); ++ break; ++ ++ case FontsLocation: ++ path = QLatin1String("/boot/system/data/fonts/ttfonts"); ++ break; ++ ++ case MusicLocation: ++ path = QLatin1String("/boot/home/Music"); ++ break; ++ ++ case MoviesLocation: ++ path = QLatin1String("/boot/home/Videos"); ++ break; ++ ++ case ApplicationsLocation: ++ default: ++ break; ++ } ++ return path; ++} ++ ++QString QDesktopServices::displayName(StandardLocation type) ++{ ++ Q_UNUSED(type); ++ return QString(); ++} ++ ++ ++QT_END_NAMESPACE ++ ++#endif // QT_NO_DESKTOPSERVICES +diff -rupN qt-everywhere-opensource-src-4.7.3/src/gui/util/qsystemtrayicon.cpp qt-everywhere-opensource-src-4.7.3_haiku/src/gui/util/qsystemtrayicon.cpp +--- qt-everywhere-opensource-src-4.7.3/src/gui/util/qsystemtrayicon.cpp 2011-03-30 05:19:06.066584576 +0000 ++++ qt-everywhere-opensource-src-4.7.3_haiku/src/gui/util/qsystemtrayicon.cpp 2011-06-13 22:06:43.406323200 +0000 +@@ -573,7 +573,19 @@ void QBalloonTip::balloon(const QPoint& + } + + QPainterPath path; +-#if defined(QT_NO_XSHAPE) && defined(Q_WS_X11) ++#if defined(Q_WS_HAIKU) ++ path.moveTo(0, 0); ++ path.lineTo(sz.width() - 1, 0); ++ path.lineTo(sz.width() - 1, sz.height() - 1); ++ path.lineTo(0, sz.height() - 1); ++ path.lineTo(0, 0); ++ int dx = pos.x(),dy = pos.y(); ++ if(pos.x()+sz.width() > scr.right()) ++ dx=pos.x()-sz.width(); ++ if(pos.y()+sz.height() > scr.bottom()) ++ dy=pos.y()-sz.height(); ++ move(dx,dy); ++#elif defined(QT_NO_XSHAPE) && defined(Q_WS_X11) + // XShape is required for setting the mask, so we just + // draw an ugly square when its not available + path.moveTo(0, 0); +@@ -581,7 +593,7 @@ void QBalloonTip::balloon(const QPoint& + path.lineTo(sz.width() - 1, sz.height() - 1); + path.lineTo(0, sz.height() - 1); + path.lineTo(0, 0); +- move(qMax(pos.x() - sz.width(), scr.left()), pos.y()); ++ move(qMax(pos.x() - sz.width(), scr.left()), pos.y()); + #else + path.moveTo(ml + rc, mt); + if (arrowAtTop && arrowAtLeft) { +diff -rupN qt-everywhere-opensource-src-4.7.3/src/gui/util/qsystemtrayicon_haiku.cpp qt-everywhere-opensource-src-4.7.3_haiku/src/gui/util/qsystemtrayicon_haiku.cpp +--- qt-everywhere-opensource-src-4.7.3/src/gui/util/qsystemtrayicon_haiku.cpp 1970-01-01 00:00:00.000000000 +0000 ++++ qt-everywhere-opensource-src-4.7.3_haiku/src/gui/util/qsystemtrayicon_haiku.cpp 2011-06-13 22:06:43.408158208 +0000 +@@ -0,0 +1,482 @@ ++/**************************************************************************** ++** ++** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). ++** All rights reserved. ++** Contact: Nokia Corporation (qt-info@nokia.com) ++** ++** This file is part of the QtGui module of the Qt Toolkit. ++** ++** $QT_BEGIN_LICENSE:LGPL$ ++** No Commercial Usage ++** This file contains pre-release code and may not be distributed. ++** You may use this file in accordance with the terms and conditions ++** contained in the Technology Preview License Agreement accompanying ++** this package. ++** ++** GNU Lesser General Public License Usage ++** Alternatively, this file may be used under the terms of the GNU Lesser ++** General Public License version 2.1 as published by the Free Software ++** Foundation and appearing in the file LICENSE.LGPL included in the ++** packaging of this file. Please review the following information to ++** ensure the GNU Lesser General Public License version 2.1 requirements ++** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ++** ++** In addition, as a special exception, Nokia gives you certain additional ++** rights. These rights are described in the Nokia Qt LGPL Exception ++** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. ++** ++** If you have questions regarding the use of this file, please contact ++** Nokia at qt-info@nokia.com. ++** ++** ++** ++** ++** ++** ++** ++** ++** $QT_END_LICENSE$ ++** ++****************************************************************************/ ++ ++#include "qsystemtrayicon_p.h" ++ ++#ifndef QT_NO_SYSTEMTRAYICON ++ ++QT_BEGIN_NAMESPACE ++ ++#include "qapplication.h" ++#include "qsystemtrayicon.h" ++#include "qdebug.h" ++#include "qcolor.h" ++#include "qfileinfo.h" ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#include ++#include ++#include ++ ++#define TRAY_MOUSEDOWN 1 ++#define TRAY_MOUSEUP 2 ++ ++#define NF_NONE 0 ++#define NF_QT 1 ++#define NF_NATIVE 2 ++ ++#define maxTipLength 128 ++ ++#define DBAR_SIGNATURE "application/x-vnd.Be-TSKB" ++ ++static int32 notifyMode = NF_NONE; ++ ++QSystemTrayIconLooper::QSystemTrayIconLooper() : QObject(), BLooper("traylooper") ++{ ++} ++ ++thread_id ++QSystemTrayIconLooper::Run(void) ++{ ++ thread_id Thread = BLooper::Run(); ++ return Thread; ++} ++ ++void ++QSystemTrayIconLooper::MessageReceived(BMessage* theMessage) ++{ ++ if( theMessage->what == 'TRAY' || ++ theMessage->what == 'PULS' || ++ theMessage->what == 'LIVE') { ++ BMessage *mes = new BMessage(*theMessage); ++ emit sendHaikuMessage(mes); ++ } ++ BLooper::MessageReceived(theMessage); ++} ++ ++QSystemTrayIconSys::QSystemTrayIconSys(QSystemTrayIcon *object) ++ : ReplicantId(0), q(object), ignoreNextMouseRelease(false), LiveFactor(0) ++{ ++ Looper = new QSystemTrayIconLooper(); ++ Looper->Run(); ++ ++ pulse = new BMessageRunner(BMessenger(NULL, Looper),new BMessage('PULS'),1000000); ++ ++ InstallIcon(); ++ ++ QObject::connect(Looper,SIGNAL(sendHaikuMessage(BMessage *)),this,SLOT(HaikuEvent(BMessage *)),Qt::QueuedConnection); ++} ++ ++QSystemTrayIconSys::~QSystemTrayIconSys() ++{ ++ BDeskbar deskbar; ++ if(ReplicantId>0) ++ deskbar.RemoveItem(ReplicantId); ++ if(pulse) ++ delete pulse; ++ if(Looper->Lock()) ++ Looper->Quit(); ++} ++ ++void ++QSystemTrayIconSys::InstallIcon(void) ++{ ++ ReplicantId = DeskBarLoadIcon(); ++ ++ QString appName = QFileInfo(QApplication::applicationFilePath()).fileName(); ++ BString app_name((const char *)(appName.toUtf8())); ++ ++ BMessage mes('MSGR'); ++ QSystemTrayIconSys *sys=this; ++ mes.AddMessenger("messenger",BMessenger(NULL,Looper)); ++ mes.AddData("qtrayobject",B_ANY_TYPE,&sys,sizeof(void*)); ++ mes.AddString( "application_name",app_name); ++ ++ SendMessageToReplicant(&mes); ++} ++ ++void QSystemTrayIconSys::HaikuEvent(BMessage *m) ++{ ++ if(m->what == 'PULS') { ++ LiveFactor--; ++ if(LiveFactor<-5) { //Reinstallation time ++ LiveFactor = 0; ++ ReplicantId = 0; ++ InstallIcon(); ++ LiveFactor = 0; ++ UpdateIcon(); ++ UpdateTooltip(); ++ } ++ } ++ if(m->what == 'LIVE') { ++ LiveFactor++; ++ BRect rect; ++ if(m->FindRect("rect",&rect)==B_OK) { ++ shelfRect.setRect(rect.left, rect.top, rect.Width(), rect.Height()); ++ } ++ } ++ if(m->what == 'TRAY') { ++ int32 event = 0; ++ BPoint point(0,0); ++ int32 buttons = 0, ++ clicks = 0; ++ ++ m->FindInt32("event",&event); ++ m->FindPoint("point",&point); ++ m->FindInt32("buttons",&buttons); ++ m->FindInt32("clicks",&clicks); ++ ++ switch(event) { ++ case TRAY_MOUSEUP: ++ { ++ if(buttons==B_PRIMARY_MOUSE_BUTTON) { ++ if (ignoreNextMouseRelease) ++ ignoreNextMouseRelease = false; ++ else ++ emit q->activated(QSystemTrayIcon::Trigger); ++ break; ++ } ++ if(buttons==B_TERTIARY_MOUSE_BUTTON) { ++ emit q->activated(QSystemTrayIcon::MiddleClick); ++ break; ++ } ++ if(buttons==B_SECONDARY_MOUSE_BUTTON) { ++ QPoint gpos = QPoint(point.x,point.y); ++ if (q->contextMenu()) { ++ q->contextMenu()->popup(gpos); ++ ++ BScreen screen(NULL); ++ QRect desktopRect( screen.Frame().left, screen.Frame().top, ++ screen.Frame().right, screen.Frame().bottom); ++ int maxY = desktopRect.y() + desktopRect.height() - q->contextMenu()->height(); ++ if (gpos.y() > maxY) { ++ gpos.ry() = maxY; ++ q->contextMenu()->move(gpos); ++ } ++ } ++ emit q->activated(QSystemTrayIcon::Context); ++ break; ++ } ++ } ++ break; ++ case TRAY_MOUSEDOWN: ++ { ++ if(buttons==B_PRIMARY_MOUSE_BUTTON && clicks==2) { ++ ignoreNextMouseRelease = true; ++ emit q->activated(QSystemTrayIcon::DoubleClick); ++ break; ++ } ++ } ++ break; ++ default: ++ break; ++ } ++ } ++} ++ ++void QSystemTrayIconSys::UpdateTooltip() ++{ ++ QString tip = q->toolTip(); ++ ++ BString tipStr(""); ++ ++ if (!tip.isNull()) { ++ tip = tip.left(maxTipLength - 1) + QChar(); ++ const char *str = (const char *)(tip.toUtf8()); ++ tipStr.SetTo(str); ++ } ++ ++ BMessage *mes = new BMessage('TTIP'); ++ mes->AddString("tooltip",tipStr.String()); ++ SendMessageToReplicant(mes); ++} ++ ++void QSystemTrayIconSys::UpdateIcon() ++{ ++ QIcon qicon = q->icon(); ++ if (qicon.isNull()) ++ return; ++ ++ QSize size = qicon.actualSize(QSize(16, 16)); ++ QPixmap pm = qicon.pixmap(size); ++ if (pm.isNull()) ++ return; ++ ++ BBitmap *icon = pm.toHaikuBitmap(); ++ if(icon) { ++ BMessage bits(B_ARCHIVED_OBJECT); ++ icon->Archive(&bits); ++ BMessage *mes = new BMessage('BITS'); ++ mes->AddMessage("icon",&bits); ++ bits.MakeEmpty(); ++ SendMessageToReplicant(mes); ++ delete icon; ++ } ++ UpdateTooltip(); ++} ++ ++BMessenger ++QSystemTrayIconSys::GetShelfMessenger(void) ++{ ++ BMessenger aResult; ++ status_t aErr = B_OK; ++ BMessenger aDeskbar(DBAR_SIGNATURE, -1, &aErr); ++ if (aErr != B_OK)return aResult; ++ ++ BMessage aMessage(B_GET_PROPERTY); ++ ++ aMessage.AddSpecifier("Messenger"); ++ aMessage.AddSpecifier("Shelf"); ++ aMessage.AddSpecifier("View", "Status"); ++ aMessage.AddSpecifier("Window", "Deskbar"); ++ ++ BMessage aReply; ++ ++ if (aDeskbar.SendMessage(&aMessage, &aReply, 500000, 500000) == B_OK) ++ aReply.FindMessenger("result", &aResult); ++ return aResult; ++} ++ ++status_t ++QSystemTrayIconSys::SendMessageToReplicant(BMessage *msg) ++{ ++ if(ReplicantId<=0) ++ return B_ERROR; ++ ++ BMessage aReply; ++ status_t aErr = B_OK; ++ ++ msg->AddInt32( "what2", msg->what ); ++ msg->what = B_SET_PROPERTY; ++ ++ BMessage uid_specifier(B_ID_SPECIFIER); ++ ++ msg->AddSpecifier("View"); ++ uid_specifier.AddInt32("id", ReplicantId); ++ uid_specifier.AddString("property", "Replicant"); ++ msg->AddSpecifier(&uid_specifier); ++ ++ aErr = GetShelfMessenger().SendMessage( msg, (BHandler*)NULL, 500000 ); ++ return aErr; ++} ++ ++int32 ++QSystemTrayIconSys::ExecuteCommand(char *command) ++{ ++ FILE *fpipe; ++ char line[256]; ++ if ( !(fpipe = (FILE*)popen(command,"r")) ) ++ return -1; ++ ++ fgets( line, sizeof line, fpipe); ++ pclose(fpipe); ++ ++ int res = atoi(line); ++ return res; ++} ++ ++int32 ++QSystemTrayIconSys::DeskBarLoadIcon(team_id tid) ++{ ++ char cmd[256]; ++ sprintf(cmd,"qsystray %d",(int)tid); ++ int32 id = ExecuteCommand(cmd); ++ return id; ++} ++ ++int32 ++QSystemTrayIconSys::DeskBarLoadIcon(void) ++{ ++ thread_info threadInfo; ++ status_t error = get_thread_info(find_thread(NULL), &threadInfo); ++ if (error != B_OK) { ++ fprintf(stderr, "Failed to get info for the current thread: %s\n", strerror(error)); ++ return -1; ++ } ++ team_id sTeam = threadInfo.team; ++ ++ return DeskBarLoadIcon(sTeam); ++} ++ ++void QSystemTrayIconPrivate::install_sys() ++{ ++ fprintf(stderr, "Reimplemented: QSystemTrayIconPrivate::install_sys \n"); ++ Q_Q(QSystemTrayIcon); ++ if (!sys) { ++ sys = new QSystemTrayIconSys(q); ++ sys->UpdateIcon(); ++ } ++ supportsMessages_sys(); ++} ++ ++void QSystemTrayIconPrivate::showMessage_sys(const QString &title, const QString &message, QSystemTrayIcon::MessageIcon type, int timeOut) ++{ ++ fprintf(stderr, "Reimplemented: QSystemTrayIconPrivate::showMessage_sys()\n"); ++ ++ if(notifyMode == NF_QT) { ++ QPoint point(sys->shelfRect.x(),sys->shelfRect.y()); ++ ++ BDeskbar deskbar; ++ BRect deskRect = deskbar.Frame(); ++ BScreen screen(B_MAIN_SCREEN_ID); ++ ++ switch(deskbar.Location()) ++ { ++ case B_DESKBAR_TOP: ++ point.setX(screen.Frame().Width()-8); ++ point.setY(deskRect.Height()+8); ++ break; ++ case B_DESKBAR_RIGHT_TOP: ++ point.setX(screen.Frame().Width()-deskRect.Width()-8); ++ point.setY(8); ++ break; ++ case B_DESKBAR_BOTTOM: ++ point.setX(screen.Frame().Width()-8); ++ point.setY(screen.Frame().Height()-deskRect.Height()-8); ++ break; ++ case B_DESKBAR_LEFT_BOTTOM: ++ point.setX(deskRect.Width()+8); ++ point.setY(screen.Frame().Height()-8); ++ break; ++ case B_DESKBAR_RIGHT_BOTTOM: ++ point.setX(deskRect.Width()-deskRect.Width()-8); ++ point.setY(screen.Frame().Height()-8); ++ break; ++ case B_DESKBAR_LEFT_TOP: ++ point.setX(deskRect.Width()+8); ++ point.setY(8); ++ break; ++ } ++ QBalloonTip::showBalloon(type, title, message, sys->q, point, timeOut, false); ++ } ++ if(notifyMode == NF_NATIVE) { ++ QString cmd; ++ QString stitle(title); ++ stitle.replace(L'"',"''"); ++ stitle.remove(L'\r'); ++ stitle.remove(L'\n'); ++ ++ QString smessage(message); ++ smessage.replace(L'"',"''"); ++ smessage.remove(L'\r'); ++ smessage.remove(L'\n'); ++ ++ cmd = QString("notify --app \"%1\" --type %2 --title \"%3\" --timeout %4 \"%5\"") ++ .arg(QFileInfo(QApplication::applicationFilePath()).fileName()) ++ .arg(type==QSystemTrayIcon::Warning?"important":type==QSystemTrayIcon::Critical?"error":"information") ++ .arg(stitle) ++ .arg(timeOut/1000) ++ .arg(smessage); ++ ++ const char *str = (const char *)(cmd.toUtf8()); ++ system(str); ++ } ++} ++ ++QRect QSystemTrayIconPrivate::geometry_sys() const ++{ ++ fprintf(stderr, "Reimplemented: QSystemTrayIconPrivate::geometry_sys \n"); ++ return sys->shelfRect; ++} ++ ++void QSystemTrayIconPrivate::remove_sys() ++{ ++ fprintf(stderr, "Reimplemented: QSystemTrayIconPrivate::remove_sys \n"); ++ if(sys) { ++ delete sys; ++ sys = NULL; ++ } ++} ++ ++void QSystemTrayIconPrivate::updateIcon_sys() ++{ ++ fprintf(stderr, "Reimplemented: QSystemTrayIconPrivate::updateIcon_sys\n"); ++ if (sys) { ++ sys->UpdateIcon(); ++ } ++} ++ ++void QSystemTrayIconPrivate::updateMenu_sys() ++{ ++ fprintf(stderr, "Unimplemented: QSystemTrayIconPrivate::updateMenu_sys\n"); ++} ++ ++void QSystemTrayIconPrivate::updateToolTip_sys() ++{ ++ fprintf(stderr, "Reimplemented: QSystemTrayIconPrivate::updateToolTip_sys\n"); ++ if (sys) { ++ sys->UpdateTooltip(); ++ } ++} ++ ++bool QSystemTrayIconPrivate::isSystemTrayAvailable_sys() ++{ ++ supportsMessages_sys(); ++ QFileInfo qsystrayfile("/boot/common/bin/qsystray"); ++ return qsystrayfile.exists(); ++} ++ ++bool QSystemTrayIconPrivate::supportsMessages_sys() ++{ ++ QFileInfo notifyfile("/bin/notify"); ++ if(notifyfile.exists()) { ++ notifyMode = NF_NATIVE; ++ } else { ++ notifyMode = NF_QT; ++ } ++ return true; ++} ++ ++QT_END_NAMESPACE ++ ++#endif // QT_NO_SYSTEMTRAYICON +diff -rupN qt-everywhere-opensource-src-4.7.3/src/gui/util/qsystemtrayicon_haiku.h qt-everywhere-opensource-src-4.7.3_haiku/src/gui/util/qsystemtrayicon_haiku.h +--- qt-everywhere-opensource-src-4.7.3/src/gui/util/qsystemtrayicon_haiku.h 1970-01-01 00:00:00.000000000 +0000 ++++ qt-everywhere-opensource-src-4.7.3_haiku/src/gui/util/qsystemtrayicon_haiku.h 2011-06-13 22:06:43.408944640 +0000 +@@ -0,0 +1,116 @@ ++/**************************************************************************** ++** ++** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). ++** All rights reserved. ++** Contact: Nokia Corporation (qt-info@nokia.com) ++** ++** This file is part of the QtGui module of the Qt Toolkit. ++** ++** $QT_BEGIN_LICENSE:LGPL$ ++** No Commercial Usage ++** This file contains pre-release code and may not be distributed. ++** You may use this file in accordance with the terms and conditions ++** contained in the Technology Preview License Agreement accompanying ++** this package. ++** ++** GNU Lesser General Public License Usage ++** Alternatively, this file may be used under the terms of the GNU Lesser ++** General Public License version 2.1 as published by the Free Software ++** Foundation and appearing in the file LICENSE.LGPL included in the ++** packaging of this file. Please review the following information to ++** ensure the GNU Lesser General Public License version 2.1 requirements ++** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ++** ++** In addition, as a special exception, Nokia gives you certain additional ++** rights. These rights are described in the Nokia Qt LGPL Exception ++** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. ++** ++** If you have questions regarding the use of this file, please contact ++** Nokia at qt-info@nokia.com. ++** ++** ++** ++** ++** ++** ++** ++** ++** $QT_END_LICENSE$ ++** ++****************************************************************************/ ++ ++#ifndef QSYSTRAYICONHAIKU_H ++#define QSYSTRAYICONHAIKU_H ++ ++#include ++#include ++#include ++#include "qsystemtrayicon.h" ++ ++#include ++#include ++#include ++#include ++#include ++#include ++ ++QT_BEGIN_HEADER ++ ++QT_BEGIN_NAMESPACE ++ ++QT_MODULE(Gui) ++ ++ ++class QSystemTrayIconLooper :public QObject, public BLooper ++{ ++ Q_OBJECT ++public: ++ QSystemTrayIconLooper(); ++ virtual void MessageReceived(BMessage* theMessage); ++ thread_id Run(void); ++Q_SIGNALS: ++ void sendHaikuMessage(BMessage *); ++}; ++ ++class QSystemTrayIconSys : public QWidget ++{ ++ Q_OBJECT ++public: ++ QSystemTrayIconSys(QSystemTrayIcon *object); ++ ~QSystemTrayIconSys(); ++ ++ void UpdateIcon(); ++ void UpdateTooltip(); ++ status_t SendMessageToReplicant(BMessage *msg); ++ ++ QSystemTrayIcon *q; ++ QSystemTrayIconLooper* Looper; ++ ++ QRect shelfRect; ++ ++public slots: ++ void HaikuEvent(BMessage *m); ++ ++private: ++ BMessenger GetShelfMessenger(void); ++ int32 ExecuteCommand(char *command); ++ int32 DeskBarLoadIcon(team_id tid); ++ int32 DeskBarLoadIcon(void); ++ void InstallIcon(void); ++ ++ int32 ReplicantId; ++ int32 LiveFactor; ++ ++ bool ignoreNextMouseRelease; ++ ++ BMessageRunner *pulse; ++ ++ friend class QSystemTrayIconPrivate; ++}; ++ ++ ++QT_END_NAMESPACE ++ ++QT_END_HEADER ++ ++#endif //QSYSTRAYICONHAIKU_H +diff -rupN qt-everywhere-opensource-src-4.7.3/src/gui/util/qsystemtrayicon_p.h qt-everywhere-opensource-src-4.7.3_haiku/src/gui/util/qsystemtrayicon_p.h +--- qt-everywhere-opensource-src-4.7.3/src/gui/util/qsystemtrayicon_p.h 2011-03-30 05:19:06.000262144 +0000 ++++ qt-everywhere-opensource-src-4.7.3_haiku/src/gui/util/qsystemtrayicon_p.h 2011-06-13 22:06:43.409993216 +0000 +@@ -178,6 +178,12 @@ private: + }; + #endif // Q_WS_X11 + ++#if defined(Q_WS_HAIKU) ++QT_BEGIN_INCLUDE_NAMESPACE ++#include "qsystemtrayicon_haiku.h" ++QT_END_INCLUDE_NAMESPACE ++#endif // Q_WS_HAIKU ++ + QT_END_NAMESPACE + + #endif // QT_NO_SYSTEMTRAYICON +diff -rupN qt-everywhere-opensource-src-4.7.3/src/gui/util/util.pri qt-everywhere-opensource-src-4.7.3_haiku/src/gui/util/util.pri +--- qt-everywhere-opensource-src-4.7.3/src/gui/util/util.pri 2011-03-30 05:19:06.002097152 +0000 ++++ qt-everywhere-opensource-src-4.7.3_haiku/src/gui/util/util.pri 2011-06-13 22:06:43.411303936 +0000 +@@ -56,4 +56,11 @@ symbian { + } else { + DEFINES += USE_SCHEMEHANDLER + } +-} +\ No newline at end of file ++} ++ ++haiku { ++ HEADERS += \ ++ util/qsystemtrayicon_haiku.h ++ SOURCES += \ ++ util/qsystemtrayicon_haiku.cpp ++} +diff -rupN qt-everywhere-opensource-src-4.7.3/src/network/kernel/qnetworkinterface_unix.cpp qt-everywhere-opensource-src-4.7.3_haiku/src/network/kernel/qnetworkinterface_unix.cpp +--- qt-everywhere-opensource-src-4.7.3/src/network/kernel/qnetworkinterface_unix.cpp 2011-03-30 05:19:09.012582912 +0000 ++++ qt-everywhere-opensource-src-4.7.3_haiku/src/network/kernel/qnetworkinterface_unix.cpp 2011-06-13 22:06:43.413138944 +0000 +@@ -52,6 +52,10 @@ + #include + #include + ++#ifdef Q_OS_HAIKU ++# include ++#endif ++ + #ifdef Q_OS_SOLARIS + # include + #endif +@@ -92,7 +96,9 @@ static QNetworkInterface::InterfaceFlags + { + QNetworkInterface::InterfaceFlags flags = 0; + flags |= (rawFlags & IFF_UP) ? QNetworkInterface::IsUp : QNetworkInterface::InterfaceFlag(0); ++#ifndef Q_OS_HAIKU + flags |= (rawFlags & IFF_RUNNING) ? QNetworkInterface::IsRunning : QNetworkInterface::InterfaceFlag(0); ++#endif + flags |= (rawFlags & IFF_BROADCAST) ? QNetworkInterface::CanBroadcast : QNetworkInterface::InterfaceFlag(0); + flags |= (rawFlags & IFF_LOOPBACK) ? QNetworkInterface::IsLoopBack : QNetworkInterface::InterfaceFlag(0); + #ifdef IFF_POINTOPOINT //cygwin doesn't define IFF_POINTOPOINT +diff -rupN qt-everywhere-opensource-src-4.7.3/src/network/socket/qnativesocketengine_unix.cpp qt-everywhere-opensource-src-4.7.3_haiku/src/network/socket/qnativesocketengine_unix.cpp +--- qt-everywhere-opensource-src-4.7.3/src/network/socket/qnativesocketengine_unix.cpp 2011-03-30 05:19:09.024379392 +0000 ++++ qt-everywhere-opensource-src-4.7.3_haiku/src/network/socket/qnativesocketengine_unix.cpp 2011-06-13 22:06:43.414973952 +0000 +@@ -705,6 +705,9 @@ qint64 QNativeSocketEnginePrivate::nativ + memcpy(&sockAddrIPv6.sin6_addr.s6_addr, &tmp, sizeof(tmp)); + sockAddrSize = sizeof(sockAddrIPv6); + sockAddrPtr = (struct sockaddr *)&sockAddrIPv6; ++#ifdef Q_OS_HAIKU ++ sockAddrIPv6.sin6_len = sockAddrSize; ++#endif + } else + #endif + if (host.protocol() == QAbstractSocket::IPv4Protocol) { +@@ -714,6 +717,9 @@ qint64 QNativeSocketEnginePrivate::nativ + sockAddrIPv4.sin_addr.s_addr = htonl(host.toIPv4Address()); + sockAddrSize = sizeof(sockAddrIPv4); + sockAddrPtr = (struct sockaddr *)&sockAddrIPv4; ++#ifdef Q_OS_HAIKU ++ sockAddrIPv4.sin_len = sockAddrSize; ++#endif + } + + // ignore the SIGPIPE signal +diff -rupN qt-everywhere-opensource-src-4.7.3/src/tools/uic/qclass_lib_map.h qt-everywhere-opensource-src-4.7.3_haiku/src/tools/uic/qclass_lib_map.h +--- qt-everywhere-opensource-src-4.7.3/src/tools/uic/qclass_lib_map.h 2011-03-30 05:19:08.002883584 +0000 ++++ qt-everywhere-opensource-src-4.7.3_haiku/src/tools/uic/qclass_lib_map.h 2011-06-13 22:06:43.417333248 +0000 +@@ -1410,3 +1410,8 @@ QT_CLASS_LIB(Q3PaintDeviceMetrics, Qt3Su + QT_CLASS_LIB(Q3Painter, Qt3Support, q3painter.h) + QT_CLASS_LIB(Q3Picture, Qt3Support, q3picture.h) + QT_CLASS_LIB(Q3PointArray, Qt3Support, q3pointarray.h) ++QT_CLASS_LIB(QtHaikuView, QtGui, qwidget_haiku.h) ++QT_CLASS_LIB(QtHaikuWindow, QtGui, qwidget_haiku.h) ++QT_CLASS_LIB(QHaikuStyle, QtGui, qhaikustyle.h) ++QT_CLASS_LIB(QSystemTrayIconLooper, QtGui, qsystemtrayicon_haiku.h) ++QT_CLASS_LIB(QSystemTrayIconSys, QtGui, qsystemtrayicon_haiku.h) +diff -rupN qt-everywhere-opensource-src-4.7.3/tools/designer/src/designer/designer.pro qt-everywhere-opensource-src-4.7.3_haiku/tools/designer/src/designer/designer.pro +--- qt-everywhere-opensource-src-4.7.3/tools/designer/src/designer/designer.pro 2011-03-30 05:16:34.058720256 +0000 ++++ qt-everywhere-opensource-src-4.7.3_haiku/tools/designer/src/designer/designer.pro 2011-06-13 22:06:43.419168256 +0000 +@@ -87,4 +87,4 @@ INSTALLS += target + + include(../sharedcomponents.pri) + +-unix:!mac:LIBS += -lm ++unix:!mac:!haiku:LIBS += -lm +diff -rupN qt-everywhere-opensource-src-4.7.3/tools/qtconfig/mainwindow.cpp qt-everywhere-opensource-src-4.7.3_haiku/tools/qtconfig/mainwindow.cpp +--- qt-everywhere-opensource-src-4.7.3/tools/qtconfig/mainwindow.cpp 2011-03-30 05:16:29.027787264 +0000 ++++ qt-everywhere-opensource-src-4.7.3_haiku/tools/qtconfig/mainwindow.cpp 2011-06-13 22:06:43.421265408 +0000 +@@ -73,7 +73,9 @@ + #include + #endif + ++#ifndef Q_OS_HAIKU + #include ++#endif + + QT_BEGIN_NAMESPACE + +@@ -234,9 +236,11 @@ MainWindow::MainWindow() + connect(buttonMainColor2, SIGNAL(colorChanged(QColor)), + this, SLOT(buildPalette())); + ++#ifndef Q_OS_HAIKU + if (X11->desktopEnvironment == DE_KDE) + colorConfig->hide(); + else ++#endif + labelKDENote->hide(); + + QFontDatabase db; \ No newline at end of file diff --git a/dev-qt/qtcore/qtcore-4.7.3.bep b/dev-qt/qtcore/qtcore-4.7.3.bep new file mode 100644 index 000000000..2ac139579 --- /dev/null +++ b/dev-qt/qtcore/qtcore-4.7.3.bep @@ -0,0 +1,24 @@ +DESCRIPTION="The Qt toolkit is a comprehensive C++ application development framework" +HOMEPAGE="http://qt-haiku.ru" +SRC_URI="http://pkgs.fedoraproject.org/repo/pkgs/qt/qt-everywhere-opensource-src-4.7.3.tar.gz/49b96eefb1224cc529af6fe5608654fe/qt-everywhere-opensource-src-4.7.3.tar.gz" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="" +CHECKSUM_MD5="49b96eefb1224cc529af6fe5608654fe" +MESSAGE="This port only builds with gcc4. Use 'setgcc gcc4' before building." +BUILD { + cd qt-everywhere-opensource-src-4.7.3 + configure --prefix-install=no -no-pch -no-opengl -no-largefile \ + -fast -nomake examples -nomake demos -release -opensource \ + -confirm-license -no-iconv -phonon -no-phonon-backend \ + -multimedia -no-audio-backend + make +} + +INSTALL { + cd qt-everywhere-opensource-src-4.7.3 + make install INSTALL_ROOT=${DESTDIR} +} + +LICENSE="GNU LGPL v2.1" +COPYRIGHT="2011 Nokia Corporation and/or its subsidiary(-ies)." diff --git a/x11-libs/qt/qt-4.8.x-git.bep b/dev-qt/qtcore/qtcore-4.8.x-git.bep similarity index 78% rename from x11-libs/qt/qt-4.8.x-git.bep rename to dev-qt/qtcore/qtcore-4.8.x-git.bep index 3f2387679..eacedad16 100644 --- a/x11-libs/qt/qt-4.8.x-git.bep +++ b/dev-qt/qtcore/qtcore-4.8.x-git.bep @@ -5,9 +5,9 @@ REVISION="1" STATUS_HAIKU="stable" DEPEND="" #CHECKSUM_MD5="" -MESSAGE="This port requires gcc4" +MESSAGE="This port only builds with gcc4. Use 'setgcc gcc4' before building." BUILD { - cd qt-4.8.x-git + cd qtcore-4.8.x-git configure --prefix-install=no -no-pch -no-opengl -no-largefile \ -fast -nomake examples -nomake demos -release -opensource \ -confirm-license -no-iconv -phonon -no-phonon-backend \ @@ -16,8 +16,8 @@ BUILD { } INSTALL { - cd qt-4.8.x-git - make install + cd qtcore-4.8.x-git + make install INSTALL_ROOT=${DESTDIR} } LICENSE="GNU LGPL v2.1" diff --git a/dev-qt/qtcore/qtcore-4.8.x.bep b/dev-qt/qtcore/qtcore-4.8.x.bep new file mode 100644 index 000000000..af23591c3 --- /dev/null +++ b/dev-qt/qtcore/qtcore-4.8.x.bep @@ -0,0 +1,24 @@ +DESCRIPTION="The Qt toolkit is a comprehensive C++ application development framework" +HOMEPAGE="http://qt-haiku.ru" +SRC_URI="git://gitorious.org/+qt-haiku/qt/qt-haiku-port.git" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="" +#CHECKSUM_MD5="" +MESSAGE="This port only builds with gcc4. Use 'setgcc gcc4' before building." +BUILD { + cd qtcore-4.8.x + configure --prefix-install=no -no-pch -no-opengl -no-largefile \ + -fast -nomake examples -nomake demos -release -opensource \ + -confirm-license -no-iconv -phonon -no-phonon-backend \ + -multimedia -no-audio-backend + make +} + +INSTALL { + cd qtcore-4.8.x + make install INSTALL_ROOT=${DESTDIR} +} + +LICENSE="GNU LGPL v2.1" +COPYRIGHT="2011 Nokia Corporation and/or its subsidiary(-ies)." diff --git a/dev-scheme/chicken/chicken-4.7.0.bep b/dev-scheme/chicken/chicken-4.7.0.bep new file mode 100644 index 000000000..a08075989 --- /dev/null +++ b/dev-scheme/chicken/chicken-4.7.0.bep @@ -0,0 +1,40 @@ +DESCRIPTION="Chicken is a Scheme interpreter and native Scheme to C compiler" +HOMEPAGE="http://www.call-cc.org/" +SRC_URI="http://code.call-cc.org/releases/4.7.0/chicken-4.7.0.tar.gz" +CHECKSUM_MD5="9389388fdf04c3c64de29633aae12539" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="" +BUILD { + cd chicken-4.7.0 + if [ `gcc -dumpversion | cut -f1 -d.` -eq "2" ];then + echo "Removing -fwrapv flag for gcc2 build" + sed -i 's/-fwrapv//' Makefile.haiku + fi + make PLATFORM=haiku PREFIX=`finddir B_COMMON_DIRECTORY` \ + MANDIR=`finddir B_COMMON_DOCUMENTATION_DIRECTORY`/man/man1 \ + DOCDIR=`finddir B_COMMON_DOCUMENTATION_DIRECTORY`/doc/chicken \ + DATADIR=`finddir B_COMMON_DATA_DIRECTORY`/chicken + +} + +INSTALL { + cd chicken-4.7.0 + make PLATFORM=haiku PREFIX=`finddir B_COMMON_DIRECTORY` install \ + MANDIR=`finddir B_COMMON_DOCUMENTATION_DIRECTORY`/man/man1 \ + DOCDIR=`finddir B_COMMON_DOCUMENTATION_DIRECTORY`/doc/chicken \ + DATADIR=`finddir B_COMMON_DATA_DIRECTORY`/chicken +} + +TEST { + if ! type -p csi > /dev/null;then + echo "ERROR: Chicken must be installed before running the test suite" + exit 1 + fi + cd chicken-4.7.0 + make PLATFORM=haiku PREFIX=`finddir B_COMMON_DIRECTORY` check +} + +LICENSE="BSD (2-clause)" +COPYRIGHT="2008-2011 The Chicken Team + 2000-2007 Felix L. Winkelmann" diff --git a/dev-util/abi-compliance-checker/abi-compliance-checker-1.98.3.bep b/dev-util/abi-compliance-checker/abi-compliance-checker-1.98.3.bep new file mode 100644 index 000000000..c16b203e5 --- /dev/null +++ b/dev-util/abi-compliance-checker/abi-compliance-checker-1.98.3.bep @@ -0,0 +1,34 @@ +DESCRIPTION="tool for checking backward binary and source-level compatibility of a C/C++ library." +HOMEPAGE="ispras.linuxbase.org/index.php/ABI_compliance_checker" +SRC_URI="https://github.com/downloads/lvc/abi-compliance-checker/abi-compliance-checker-1.98.3.tar.gz" +REVISION="1" +STATUS_HAIKU="broken" +DEPEND="" +CHECKSUM_MD5="e2ca96bf71b014eefa11fe10a6f7d1f6" +BUILD { + cd abi-compliance-checker-1.98.3 + sed -i 's/linux|freebsd|openbsd|netbsd/linux|freebsd|openbsd|netbsd|haiku/' Makefile.pl + sed -i 's/$PREFIX\/share\/$TOOL_SNAME/$PREFIX\/data\/$TOOL_SNAME/' Makefile.pl + sed -i 's/..\/share\/$TOOL_SNAME/..\/data\/$TOOL_SNAME/' Makefile.pl +} + +INSTALL { + cd abi-compliance-checker-1.98.3 + mkdir -p $DESTDIR/`finddir B_COMMON_DIRECTORY`/example-descriptors + perl Makefile.pl -install --prefix=`finddir B_COMMON_DIRECTORY` \ + --destdir=$DESTDIR + cp -r `haikuporter -t`/dev-util/abi-compliance-checker/example-descriptors \ + $DESTDIR/`finddir B_COMMON_DIRECTORY`/data/abi-compliance-checker +} + +TEST { + cd abi-compliance-checker-1.98.3 +# make test +# make check +} + +LICENSE="GNU GPL v2" +COPYRIGHT="2009-2010 The Linux Foundation + 2009-2011 Institute for System Programming, RAS + 2011-2012 Nokia Corporation and/or its subsidiary(-ies) + 2011-2012 ROSA Laboratory" diff --git a/dev-util/abi-compliance-checker/example-descriptors/README b/dev-util/abi-compliance-checker/example-descriptors/README new file mode 100644 index 000000000..0d01be915 --- /dev/null +++ b/dev-util/abi-compliance-checker/example-descriptors/README @@ -0,0 +1,29 @@ +This tool can be used to compare the ABIs of different versions of a shared +library. As part of the checking process, it invokes gcc in order to generate +a compiled header, which is not supported by gcc2. +So: only execute this tool if you have gcc4 installed and set as your current +compiler! + +Enclosed are a couple of example descriptors (*.desc), which have been used +to analyze the ABI compatibility of zlib, libpng and libjpeg. + +If you want to do your own checks, you are expected to unpack the sources of +all libraries that you'd like to compare in a folder (such that there is a +subfolder for each library, as usually is the case with xxx.tar.gz +distributions) and build each versions of library. + +Before you can invoke the checker, you need to give it some info about each +library version, by means of a descriptor file. You can ask the checker to +generate a generic descriptor template, or you can use one of the enclosed +descriptor examples as a starting point. + +abi-compliance-checker.pl -l -d1 .desc -d2 .desc + +More info can be found on the tool's homepage: + + http://ispras.linux-foundation.org/index.php/ABI_compliance_checker + +Please send your haiku-specific questions my way: + Oliver Tappe + +Have fun. diff --git a/dev-util/abi-compliance-checker/example-descriptors/libjpeg-6.2.desc b/dev-util/abi-compliance-checker/example-descriptors/libjpeg-6.2.desc new file mode 100644 index 000000000..bd989514b --- /dev/null +++ b/dev-util/abi-compliance-checker/example-descriptors/libjpeg-6.2.desc @@ -0,0 +1,44 @@ + + + + 6.2 + + + + jconfig.h + jerror.h + jmorecfg.h + jpeglib.h + + + + jpeg-6b/.libs/libjpeg.so + + + + /* The list of paths to be searched for header files needed for compiling of library headers, one per line */ + /* This section is not necessary */ + jpeg-6b + + + + /* Addition gcc options, one per line */ + /* This section is not necessary */ + + + + /* The list of types that should be skipped while checking, one per line */ + /* This section is not necessary */ + + + + /* The list of interfaces that should be skipped while checking, one mangled name per line */ + /* This section is not necessary */ + + + + /* The list of header files that should be included before other headers, one per line */ + /* For example, it is a tree.h for libxml2 and ft2build.h for freetype2 */ + /* This section is not necessary */ + stdio.h + diff --git a/dev-util/abi-compliance-checker/example-descriptors/libjpeg-7.desc b/dev-util/abi-compliance-checker/example-descriptors/libjpeg-7.desc new file mode 100644 index 000000000..4370d5206 --- /dev/null +++ b/dev-util/abi-compliance-checker/example-descriptors/libjpeg-7.desc @@ -0,0 +1,44 @@ + + + + 7 + + + + jconfig.h + jerror.h + jmorecfg.h + jpeglib.h + + + + jpeg-7/.libs/libjpeg.so + + + + /* The list of paths to be searched for header files needed for compiling of library headers, one per line */ + /* This section is not necessary */ + jpeg-7 + + + + /* Addition gcc options, one per line */ + /* This section is not necessary */ + + + + /* The list of types that should be skipped while checking, one per line */ + /* This section is not necessary */ + + + + /* The list of interfaces that should be skipped while checking, one mangled name per line */ + /* This section is not necessary */ + + + + /* The list of header files that should be included before other headers, one per line */ + /* For example, it is a tree.h for libxml2 and ft2build.h for freetype2 */ + /* This section is not necessary */ + stdio.h + diff --git a/dev-util/abi-compliance-checker/example-descriptors/libjpeg-8.desc b/dev-util/abi-compliance-checker/example-descriptors/libjpeg-8.desc new file mode 100644 index 000000000..3de5327fb --- /dev/null +++ b/dev-util/abi-compliance-checker/example-descriptors/libjpeg-8.desc @@ -0,0 +1,44 @@ + + + + 8 + + + + jconfig.h + jerror.h + jmorecfg.h + jpeglib.h + + + + jpeg-8/.libs/libjpeg.so + + + + /* The list of paths to be searched for header files needed for compiling of library headers, one per line */ + /* This section is not necessary */ + jpeg-8 + + + + /* Addition gcc options, one per line */ + /* This section is not necessary */ + + + + /* The list of types that should be skipped while checking, one per line */ + /* This section is not necessary */ + + + + /* The list of interfaces that should be skipped while checking, one mangled name per line */ + /* This section is not necessary */ + + + + /* The list of header files that should be included before other headers, one per line */ + /* For example, it is a tree.h for libxml2 and ft2build.h for freetype2 */ + /* This section is not necessary */ + stdio.h + diff --git a/dev-util/abi-compliance-checker/example-descriptors/libpng-1.2.42.desc b/dev-util/abi-compliance-checker/example-descriptors/libpng-1.2.42.desc new file mode 100644 index 000000000..fe6871a3f --- /dev/null +++ b/dev-util/abi-compliance-checker/example-descriptors/libpng-1.2.42.desc @@ -0,0 +1,41 @@ + + + + 1.2.42 + + + + pngconf.h + png.h + + + + libpng-1.2.42/.libs/libpng12.so + + + + /* The list of paths to be searched for header files needed for compiling of library headers, one per line */ + /* This section is not necessary */ + libpng-1.2.42 + + + + /* Addition gcc options, one per line */ + /* This section is not necessary */ + + + + /* The list of types that should be skipped while checking, one per line */ + /* This section is not necessary */ + + + + /* The list of interfaces that should be skipped while checking, one mangled name per line */ + /* This section is not necessary */ + + + + /* The list of header files that should be included before other headers, one per line */ + /* For example, it is a tree.h for libxml2 and ft2build.h for freetype2 */ + /* This section is not necessary */ + diff --git a/dev-util/abi-compliance-checker/example-descriptors/libpng-1.4.0.desc b/dev-util/abi-compliance-checker/example-descriptors/libpng-1.4.0.desc new file mode 100644 index 000000000..e62a209a2 --- /dev/null +++ b/dev-util/abi-compliance-checker/example-descriptors/libpng-1.4.0.desc @@ -0,0 +1,41 @@ + + + + 1.4.0 + + + + pngconf.h + png.h + + + + libpng-1.4.0/.libs/libpng14.so + + + + /* The list of paths to be searched for header files needed for compiling of library headers, one per line */ + /* This section is not necessary */ + libpng-1.4.0 + + + + /* Addition gcc options, one per line */ + /* This section is not necessary */ + + + + /* The list of types that should be skipped while checking, one per line */ + /* This section is not necessary */ + + + + /* The list of interfaces that should be skipped while checking, one mangled name per line */ + /* This section is not necessary */ + + + + /* The list of header files that should be included before other headers, one per line */ + /* For example, it is a tree.h for libxml2 and ft2build.h for freetype2 */ + /* This section is not necessary */ + diff --git a/dev-util/abi-compliance-checker/example-descriptors/zlib-1.1.4.desc b/dev-util/abi-compliance-checker/example-descriptors/zlib-1.1.4.desc new file mode 100644 index 000000000..a7b773a9e --- /dev/null +++ b/dev-util/abi-compliance-checker/example-descriptors/zlib-1.1.4.desc @@ -0,0 +1,42 @@ + + + + 1.1.4 + + + + zconf.h + zlib.h + zutil.h + + + + zlib-1.1.4/libz.so + + + + /* The list of paths to be searched for header files needed for compiling of library headers, one per line */ + /* This section is not necessary */ + zlib-1.1.4 + + + + /* Addition gcc options, one per line */ + /* This section is not necessary */ + + + + /* The list of types that should be skipped while checking, one per line */ + /* This section is not necessary */ + + + + /* The list of interfaces that should be skipped while checking, one mangled name per line */ + /* This section is not necessary */ + + + + /* The list of header files that should be included before other headers, one per line */ + /* For example, it is a tree.h for libxml2 and ft2build.h for freetype2 */ + /* This section is not necessary */ + diff --git a/dev-util/abi-compliance-checker/example-descriptors/zlib-1.2.2.desc b/dev-util/abi-compliance-checker/example-descriptors/zlib-1.2.2.desc new file mode 100644 index 000000000..b1b747ed2 --- /dev/null +++ b/dev-util/abi-compliance-checker/example-descriptors/zlib-1.2.2.desc @@ -0,0 +1,42 @@ + + + + 1.2.2 + + + + zconf.h + zlib.h + zutil.h + + + + zlib-1.2.2/libz.so + + + + /* The list of paths to be searched for header files needed for compiling of library headers, one per line */ + /* This section is not necessary */ + zlib-1.2.2 + + + + /* Addition gcc options, one per line */ + /* This section is not necessary */ + + + + /* The list of types that should be skipped while checking, one per line */ + /* This section is not necessary */ + + + + /* The list of interfaces that should be skipped while checking, one mangled name per line */ + /* This section is not necessary */ + + + + /* The list of header files that should be included before other headers, one per line */ + /* For example, it is a tree.h for libxml2 and ft2build.h for freetype2 */ + /* This section is not necessary */ + diff --git a/dev-util/abi-compliance-checker/example-descriptors/zlib-1.2.3.desc b/dev-util/abi-compliance-checker/example-descriptors/zlib-1.2.3.desc new file mode 100644 index 000000000..bd15398f4 --- /dev/null +++ b/dev-util/abi-compliance-checker/example-descriptors/zlib-1.2.3.desc @@ -0,0 +1,42 @@ + + + + 1.2.3 + + + + zconf.h + zlib.h + zutil.h + + + + zlib-1.2.3/libz.so + + + + /* The list of paths to be searched for header files needed for compiling of library headers, one per line */ + /* This section is not necessary */ + zlib-1.2.3 + + + + /* Addition gcc options, one per line */ + /* This section is not necessary */ + + + + /* The list of types that should be skipped while checking, one per line */ + /* This section is not necessary */ + + + + /* The list of interfaces that should be skipped while checking, one mangled name per line */ + /* This section is not necessary */ + + + + /* The list of header files that should be included before other headers, one per line */ + /* For example, it is a tree.h for libxml2 and ft2build.h for freetype2 */ + /* This section is not necessary */ + diff --git a/dev-util/astyle/astyle-r339.bep b/dev-util/astyle/astyle-r339.bep new file mode 100644 index 000000000..b7d557061 --- /dev/null +++ b/dev-util/astyle/astyle-r339.bep @@ -0,0 +1,22 @@ +DESCRIPTION="Artistic Style is a reindenter and reformatter of C++, C and Java source code." +HOMEPAGE="http://astyle.sourceforge.net" +SRC_URI="svn+https://astyle.svn.sourceforge.net/svnroot/astyle/trunk/AStyle#339" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="" +MESSAGE="This port only builds with gcc4. Use 'setgcc gcc4' before building." +BUILD { + cd astyle-r339/build/gcc + make prefix=$(finddir B_COMMON_DIRECTORY) +} + +INSTALL { + cd astyle-r339/build/gcc + make install \ + prefix="${DESTDIR}/$(finddir B_COMMON_DIRECTORY)" \ + SYSCONF_PATH="${DESTDIR}/$(finddir B_COMMON_DOCUMENTATION_DIRECTORY)/doc/astyle" \ + INSTALL=install +} +LICENSE="GNU LGPL v3" +COPYRIGHT="1998-2002 by Tal Davidson + 2006-2012 Jim Pattee" diff --git a/dev-util/astyle/astyle-r361.bep b/dev-util/astyle/astyle-r361.bep new file mode 100644 index 000000000..820652fd6 --- /dev/null +++ b/dev-util/astyle/astyle-r361.bep @@ -0,0 +1,22 @@ +DESCRIPTION="Artistic Style is a reindenter and reformatter of C++, C and Java source code." +HOMEPAGE="http://astyle.sourceforge.net" +SRC_URI="svn+https://astyle.svn.sourceforge.net/svnroot/astyle/trunk/AStyle#361" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="" +MESSAGE="This port only builds with gcc4. Use 'setgcc gcc4' before building." +BUILD { + cd astyle-r361/build/gcc + make prefix=$(finddir B_COMMON_DIRECTORY) +} + +INSTALL { + cd astyle-r361/build/gcc + make install \ + prefix="${DESTDIR}/$(finddir B_COMMON_DIRECTORY)" \ + SYSCONF_PATH="${DESTDIR}/$(finddir B_COMMON_DOCUMENTATION_DIRECTORY)/doc/astyle" \ + INSTALL=install +} +LICENSE="GNU LGPL v3" +COPYRIGHT="1998-2002 by Tal Davidson + 2006-2012 Jim Pattee" diff --git a/dev-util/automoc/automoc-4-git.bep b/dev-util/automoc/automoc-4-git.bep new file mode 100644 index 000000000..c05ae9b06 --- /dev/null +++ b/dev-util/automoc/automoc-4-git.bep @@ -0,0 +1,20 @@ +DESCRIPTION="KDE Meta Object Compiler" +HOMEPAGE="http://techbase.kde.org/Development/Tools/Automoc4" +SRC_URI="git://anongit.kde.org/automoc" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="qt4, + cmake" +BUILD { + cd automoc-4-git + cmake CMakeLists.txt + make +} + +INSTALL { + cd automoc-4-git + make install +} + +LICENSE="BSD (2-clause)" +COPYRIGHT="The KDE Project" \ No newline at end of file diff --git a/dev-util/bakefile/bakefile-0.2.8.bep b/dev-util/bakefile/bakefile-0.2.8.bep index b50fe9a19..e668d3760 100644 --- a/dev-util/bakefile/bakefile-0.2.8.bep +++ b/dev-util/bakefile/bakefile-0.2.8.bep @@ -10,7 +10,7 @@ BUILD { touch ./ChangeLog libtoolize --force --copy --install autoreconf -i - ./configure --prefix=/boot/common + ./configure --prefix=`finddir B_COMMON_DIRECTORY` make } diff --git a/dev-util/bsdbuild/bsdbuild-2.9.bep b/dev-util/bsdbuild/bsdbuild-2.9.bep new file mode 100644 index 000000000..e77108333 --- /dev/null +++ b/dev-util/bsdbuild/bsdbuild-2.9.bep @@ -0,0 +1,39 @@ +DESCRIPTION="a simple, self-contained and portable build system" +HOMEPAGE="http://hypertriton.com/bsdbuild/" +SRC_URI="http://stable.hypertriton.com/bsdbuild/bsdbuild-2.9.tar.gz" +REVISION="1" +STATUS_HAIKU="broken" +DEPEND="dev-lang/perl >= 5.10 + dev-lang/lua >= 5.1" +CHECKSUM_MD5="fd0d4a754024a39d9cf1f5e42f8075b5" +BUILD { + cd bsdbuild-2.9 + cp mkconfigure.pl mkconfigure +# cp gen-dotdepend.pl gen-dotdepend-tmp.pl + sed -i 's#/usr/bin/perl#/boot/common/bin/perl#' mkconfigure + sed -i 's#$INSTALLDIR/gen-dotdepend.pl#./gen-dotdepend.pl#' mkconfigure + cat configure.in | mkconfigure > configure + rm mkconfigure + ./configure --prefix=/boot/common \ + --mandir=`finddir B_COMMON_DOCUMENTATION_DIRECTORY`/man \ + --datadir=`finddir B_COMMON_DATA_DIRECTORY` \ + --infodir=`finddir B_COMMON_DOCUMENTATION_DIRECTORY`/info \ + --localedir=`finddir B_COMMON_DATA_DIRECTORY`/locale \ + --sbindir=`finddir B_COMMON_BIN_DIRECTORY` \ + --sharedir=`finddir B_COMMON_DATA_DIRECTORY` + make +} + +INSTALL { + cd bsdbuild-2.9 + make install +} + +TEST { + cd bsdbuild-2.9 +# make test +# make check +} + +LICENSE="BSD (2-clause)" +COPYRIGHT="2002-2011 Hypertrition, Inc." diff --git a/dev-util/bsdbuild/patches/bsdbuild-2.9.patch b/dev-util/bsdbuild/patches/bsdbuild-2.9.patch new file mode 100644 index 000000000..971ad9d24 --- /dev/null +++ b/dev-util/bsdbuild/patches/bsdbuild-2.9.patch @@ -0,0 +1,27 @@ +diff -urN bsdbuild-2.9/configure.in bsdbuild-2.9-haiku/configure.in +--- bsdbuild-2.9/configure.in 2011-06-20 12:46:10.031719424 +0000 ++++ bsdbuild-2.9-haiku/configure.in 2011-08-11 21:05:19.596377600 +0000 +@@ -4,7 +4,7 @@ + VERSION("2.9") + RELEASE("Blast of Ancient Atmospheres") + +-MDEFINE(SHAREDIR, "$PREFIX/share/bsdbuild") ++MDEFINE(SHAREDIR, "$SHAREDIR/bsdbuild") + + echo "*" + echo "* Configuration successful." +diff -urN bsdbuild-2.9/mkconfigure.pl bsdbuild-2.9-haiku/mkconfigure.pl +--- bsdbuild-2.9/mkconfigure.pl 2011-05-17 08:06:19.033554432 +0000 ++++ bsdbuild-2.9-haiku/mkconfigure.pl 2011-08-11 22:05:40.015728640 +0000 +@@ -865,7 +865,10 @@ + datadir=$optarg + ;; + --sharedir=*) +- datadir=$optarg ++ sharedir=$optarg ++ ;; ++ --sbindir=*) ++ sbindir=$optarg + ;; + --localedir=*) + localedir=$optarg diff --git a/dev-util/buildsystem/buildsystem-0.bep b/dev-util/buildsystem/buildsystem-0.bep new file mode 100644 index 000000000..3b3a51491 --- /dev/null +++ b/dev-util/buildsystem/buildsystem-0.bep @@ -0,0 +1,19 @@ +DESCRIPTION="NetSurf build framework for compiling some of their libraries" +HOMEPAGE="http://www.netsurf-browser.org/" +SRC_URI="git://git.netsurf-browser.org/buildsystem" +REVISION="1" +STATUS_HAIKU="stable" + +BUILD { + cd buildsystem-0 + make +} + +INSTALL { + cd buildsystem-0 + make install PREFIX=/boot/common/ +} + +LICENSE="MIT + GNU GPL v2" +COPYRIGHT="2003 - 2012 The NetSurf Developers" diff --git a/dev-util/ccache/ccache-3.0.1.bep b/dev-util/ccache/ccache-3.0.1.bep index 0f7300168..afd44e30a 100644 --- a/dev-util/ccache/ccache-3.0.1.bep +++ b/dev-util/ccache/ccache-3.0.1.bep @@ -7,7 +7,8 @@ DEPEND="" CHECKSUM_MD5="223449f7891e5d6a15b25100eca5cca4" BUILD { cd ccache-3.0.1 - ./configure --prefix=/boot/common + ./configure --prefix=`finddir B_COMMON_DIRECTORY` \ + --mandir=`finddir B_COMMON_DOCUMENTATION_DIRECTORY`/man make } INSTALL { diff --git a/dev-util/ccache/ccache-3.1.4.bep b/dev-util/ccache/ccache-3.1.4.bep new file mode 100644 index 000000000..82185cdb3 --- /dev/null +++ b/dev-util/ccache/ccache-3.1.4.bep @@ -0,0 +1,22 @@ +DESCRIPTION="ccache is a fast compiler cache." +HOMEPAGE="http://ccache.samba.org/" +SRC_URI="http://samba.org/ftp/ccache/ccache-3.1.4.tar.bz2" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="" +CHECKSUM_MD5="676fda8a9a5e02574435c32b22942abd" +BUILD { + cd ccache-3.1.4 + sed -i 's/\-lm//g' Ma* + ./configure --prefix=`finddir B_COMMON_DIRECTORY` \ + --mandir=`finddir B_COMMON_DOCUMENTATION_DIRECTORY`/man + make +} +INSTALL { + cd ccache-3.1.4 + make install +} + +LICENSE="GNU GPL v3" +COPYRIGHT="2002-2007 Andrew Tridgell + 2009-2011 Joel Rosdahl" diff --git a/dev-util/ccache/ccache-3.1.7.bep b/dev-util/ccache/ccache-3.1.7.bep new file mode 100644 index 000000000..88e8845fc --- /dev/null +++ b/dev-util/ccache/ccache-3.1.7.bep @@ -0,0 +1,22 @@ +DESCRIPTION="ccache is a fast compiler cache." +HOMEPAGE="http://ccache.samba.org/" +SRC_URI="http://samba.org/ftp/ccache/ccache-3.1.7.tar.bz2" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="" +CHECKSUM_MD5="82257745eac54826527946e9e3d046f4" +BUILD { + cd ccache-3.1.7 + sed -i 's/\-lm//g' Ma* + ./configure --prefix=`finddir B_COMMON_DIRECTORY` \ + --mandir=`finddir B_COMMON_DOCUMENTATION_DIRECTORY`/man + make +} +INSTALL { + cd ccache-3.1.7 + make install +} + +LICENSE="GNU GPL v3" +COPYRIGHT="2002-2007 Andrew Tridgell + 2009-2012 Joel Rosdahl" diff --git a/dev-util/cmake/cmake-2.8-git.bep b/dev-util/cmake/cmake-2.8-git.bep new file mode 100644 index 000000000..bb2e85396 --- /dev/null +++ b/dev-util/cmake/cmake-2.8-git.bep @@ -0,0 +1,33 @@ +DESCRIPTION="cmake - Cross platform Make" +HOMEPAGE="http://www.cmake.org" +SRC_URI="git+http://cmake.org/cmake.git" +#CHECKSUM_MD5="" +REVISION="1" +STATUS_HAIKU="broken" +DEPEND="" +BUILD { + cd cmake-2.8-git + # cmake appends the prefix to mandir and datadir + # so using ../../ to back that part out but for some reason + # the doc was also picking up /boot, so had to back it out 3 times + # this seems to work but might still need some further adjusting +# sed -i 's/${CMAKE_DATA_DIR}\/include cmCPluginAPI.h/${CMAKE_PREFIX_DIR}\/include cmCPluginAPI.h/g' Source/CMakeLists.txt + ./configure --prefix=`finddir B_COMMON_DIRECTORY` \ + --datadir=/data/cmake \ + --docdir=/documentation/doc/CMake \ + --mandir=/documentation/man + make +} + +INSTALL { + cd cmake-2.8-git + make install +} + +TEST { + cd cmake-2.8-git + make test +} + +LICENSE="CMake" +COPYRIGHT="2002-2012 Kitware, Inc., Insight Consortium, All rights reserved." diff --git a/dev-util/cmake/cmake-2.8.10.2.bep b/dev-util/cmake/cmake-2.8.10.2.bep new file mode 100644 index 000000000..72db78d2a --- /dev/null +++ b/dev-util/cmake/cmake-2.8.10.2.bep @@ -0,0 +1,27 @@ +DESCRIPTION="cmake - Cross platform Make" +HOMEPAGE="http://www.cmake.org" +SRC_URI="http://www.cmake.org/files/v2.8/cmake-2.8.10.2.tar.gz" +CHECKSUM_MD5="097278785da7182ec0aea8769d06860c" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="" +BUILD { + cd cmake-2.8.10.2 + # cmake assumes the aclocal dir is in share/aclocal + sed -i 's/share\/aclocal/data\/aclocal/g' Source/cmakemain.cxx + sed -i 's/share\/aclocal/data\/aclocal/g' Utilities/CMakeLists.txt + + ./configure --prefix=`finddir B_COMMON_DIRECTORY` \ + --datadir=/data/cmake \ + --docdir=/documentation/doc/CMake \ + --mandir=/documentation/man + make +} + +INSTALL { + cd cmake-2.8.10.2 + make install +} + +LICENSE="CMake" +COPYRIGHT="2002-2012 Kitware, Inc., Insight Consortium, All rights reserved." diff --git a/dev-util/cmake/patches/cmake-2.8-git.patch b/dev-util/cmake/patches/cmake-2.8-git.patch new file mode 100644 index 000000000..cf4523c08 --- /dev/null +++ b/dev-util/cmake/patches/cmake-2.8-git.patch @@ -0,0 +1,229 @@ +diff -urN cmake-2.8-git-orig/Modules/Platform/Haiku.cmake cmake-2.8-git/Modules/Platform/Haiku.cmake +--- cmake-2.8-git-orig/Modules/Platform/Haiku.cmake 2012-12-03 12:11:47.804519936 -0800 ++++ cmake-2.8-git/Modules/Platform/Haiku.cmake 2012-12-03 12:02:17.652738560 -0800 +@@ -1,20 +1,25 @@ ++set(HAIKU 1) ++set(UNIX 1) ++ ++set(CMAKE_DL_LIBS "") +-set(BEOS 1) +- +-set(CMAKE_DL_LIBS root be) +-set(CMAKE_C_COMPILE_OPTIONS_PIC "-fPIC") +-set(CMAKE_C_COMPILE_OPTIONS_PIE "-fPIE") + set(CMAKE_SHARED_LIBRARY_C_FLAGS "-fPIC") ++set(CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS "-shared") +-set(CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS "-nostart") + set(CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG "-Wl,-rpath,") + set(CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG_SEP ":") ++set(CMAKE_SHARED_LIBRARY_RPATH_LINK_C_FLAG "-Wl,-rpath-link,") + set(CMAKE_SHARED_LIBRARY_SONAME_C_FLAG "-Wl,-soname,") ++set(CMAKE_EXE_EXPORTS_C_FLAG "-Wl,--export-dynamic") ++ ++list(APPEND CMAKE_SYSTEM_PREFIX_PATH ++ /boot/common/non-packaged ++ /boot/common ++ /boot/system ++ ) ++list(APPEND CMAKE_PLATFORM_IMPLICIT_LINK_DIRECTORIES ++ /boot/common/non-packaged/lib ++ /boot/common/lib ++ /boot/develop/lib/x86 ++ ) +- +-include(Platform/UnixPaths) +-list(APPEND CMAKE_SYSTEM_PREFIX_PATH /boot/common) +-list(APPEND CMAKE_SYSTEM_INCLUDE_PATH /boot/common/include) +-list(APPEND CMAKE_SYSTEM_LIBRARY_PATH /boot/common/lib) +-list(APPEND CMAKE_SYSTEM_PROGRAM_PATH /boot/common/bin) +-list(APPEND CMAKE_PLATFORM_IMPLICIT_LINK_DIRECTORIES /boot/common/lib) + list(APPEND CMAKE_SYSTEM_INCLUDE_PATH /boot/develop/headers/3rdparty) + list(APPEND CMAKE_SYSTEM_LIBRARY_PATH /boot/develop/lib/x86) + +diff -urN cmake-2.8-git-orig/Source/cmExportCommand.cxx cmake-2.8-git/Source/cmExportCommand.cxx +--- cmake-2.8-git-orig/Source/cmExportCommand.cxx 2012-11-27 05:26:33.039059456 -0800 ++++ cmake-2.8-git/Source/cmExportCommand.cxx 2012-12-03 12:02:17.665059328 -0800 +@@ -20,7 +20,8 @@ + #include "cmExportBuildFileGenerator.h" + + #if defined(__HAIKU__) +-#include ++#include ++#include + #endif + + cmExportCommand::cmExportCommand() +@@ -305,14 +306,15 @@ + const char* hash) + { + #if defined(__HAIKU__) +- BPath dir; +- if (find_directory(B_USER_SETTINGS_DIRECTORY, &dir) != B_OK) ++ char dir[B_PATH_NAME_LENGTH]; ++ if (find_directory(B_USER_SETTINGS_DIRECTORY, -1, false, dir, sizeof(dir)) != ++ B_OK) + { + return; + } +- dir.Append("cmake/packages"); +- dir.Append(package.c_str()); +- std::string fname = dir.Path(); ++ std::string fname = dir; ++ fname += "/cmake/packages/"; ++ fname += package; + #else + const char* home = cmSystemTools::GetEnv("HOME"); + if(!home) +diff -urN cmake-2.8-git-orig/Source/cmFindPackageCommand.cxx cmake-2.8-git/Source/cmFindPackageCommand.cxx +--- cmake-2.8-git-orig/Source/cmFindPackageCommand.cxx 2012-11-27 05:26:33.059768832 -0800 ++++ cmake-2.8-git/Source/cmFindPackageCommand.cxx 2012-12-03 12:02:17.666107904 -0800 +@@ -19,7 +19,9 @@ + #endif + + #if defined(__HAIKU__) +-#include ++#include ++#include ++#include + #endif + + void cmFindPackageNeedBackwardsCompatibility(const std::string& variable, +@@ -1583,12 +1585,13 @@ + #if defined(_WIN32) && !defined(__CYGWIN__) + this->LoadPackageRegistryWinUser(); + #elif defined(__HAIKU__) +- BPath dir; +- if (find_directory(B_USER_SETTINGS_DIRECTORY, &dir) == B_OK) ++ char dir[B_PATH_NAME_LENGTH]; ++ if (find_directory(B_USER_SETTINGS_DIRECTORY, -1, false, dir, sizeof(dir)) == ++ B_OK) + { +- dir.Append("cmake/packages"); +- dir.Append(this->Name.c_str()); +- this->LoadPackageRegistryDir(dir.Path()); ++ strlcat(dir, "/cmake/packages/", sizeof(dir)); ++ strlcat(dir, this->Name.c_str(), sizeof(dir)); ++ this->LoadPackageRegistryDir(dir); + } + #else + if(const char* home = cmSystemTools::GetEnv("HOME")) +diff -urN cmake-2.8-git-orig/Source/cmLocalGenerator.cxx cmake-2.8-git/Source/cmLocalGenerator.cxx +--- cmake-2.8-git-orig/Source/cmLocalGenerator.cxx 2012-11-27 05:26:33.035389440 -0800 ++++ cmake-2.8-git/Source/cmLocalGenerator.cxx 2012-12-03 12:02:17.672399360 -0800 +@@ -37,7 +37,8 @@ + #include + + #if defined(__HAIKU__) +-#include ++#include ++#include + #endif + + cmLocalGenerator::cmLocalGenerator() +@@ -354,12 +355,12 @@ + prefix = prefix_win32.c_str(); + } + #elif defined(__HAIKU__) ++ char dir[B_PATH_NAME_LENGTH]; + if (!prefix) + { +- BPath dir; +- if (find_directory(B_COMMON_DIRECTORY, &dir) == B_OK) ++ if (find_directory(B_COMMON_DIRECTORY, -1, false, dir, sizeof(dir)) == B_OK) + { +- prefix = dir.Path(); ++ prefix = dir; + } + else + { +diff -urN cmake-2.8-git-orig/Source/CPack/cmCPackGenerator.cxx cmake-2.8-git/Source/CPack/cmCPackGenerator.cxx +--- cmake-2.8-git-orig/Source/CPack/cmCPackGenerator.cxx 2012-11-27 05:26:32.015466496 -0800 ++++ cmake-2.8-git/Source/CPack/cmCPackGenerator.cxx 2012-12-03 12:02:17.677904384 -0800 +@@ -27,7 +27,8 @@ + #include + + #if defined(__HAIKU__) +-#include ++#include ++#include + #endif + + //---------------------------------------------------------------------- +@@ -1265,10 +1266,10 @@ + this->InstallPath += "-"; + this->InstallPath += this->GetOption("CPACK_PACKAGE_VERSION"); + #elif defined(__HAIKU__) +- BPath dir; +- if (find_directory(B_COMMON_DIRECTORY, &dir) == B_OK) ++ char dir[B_PATH_NAME_LENGTH]; ++ if (find_directory(B_COMMON_DIRECTORY, -1, false, dir, sizeof(dir)) == B_OK) + { +- this->InstallPath = dir.Path(); ++ this->InstallPath = dir; + } + else + { +diff -urN cmake-2.8-git-orig/Tests/ComplexOneConfig/Library/CMakeLists.txt cmake-2.8-git/Tests/ComplexOneConfig/Library/CMakeLists.txt +--- cmake-2.8-git-orig/Tests/ComplexOneConfig/Library/CMakeLists.txt 2012-11-27 05:26:34.013369344 -0800 ++++ cmake-2.8-git/Tests/ComplexOneConfig/Library/CMakeLists.txt 2012-12-03 12:02:42.181665792 -0800 +@@ -51,7 +51,7 @@ + FULL_DOCS "A simple etst proerty that means nothign and is used for nothing" + ) + set_target_properties(CMakeTestCLibraryShared PROPERTIES FOO BAR) +-if(NOT BEOS AND NOT WIN32) # No libm on BeOS. ++if(NOT BEOS AND NOT WIN32 AND NOT HAIKU) # No libm on BeOS. + set_target_properties(CMakeTestCLibraryShared PROPERTIES LINK_FLAGS "-lm") + endif() + get_target_property(FOO_BAR_VAR CMakeTestCLibraryShared FOO) +diff -urN cmake-2.8-git-orig/Utilities/cmcurl/CMake/CurlTests.c cmake-2.8-git/Utilities/cmcurl/CMake/CurlTests.c +--- cmake-2.8-git-orig/Utilities/cmcurl/CMake/CurlTests.c 2012-11-27 05:26:34.045350912 -0800 ++++ cmake-2.8-git/Utilities/cmcurl/CMake/CurlTests.c 2012-12-03 12:02:42.189005824 -0800 +@@ -38,7 +38,7 @@ + # define PLATFORM_AIX_V3 + #endif + +-#if defined(PLATFORM_SUNOS4) || defined(PLATFORM_AIX_V3) || (defined(__BEOS__) && !defined(__HAIKU__)) ++#if defined(PLATFORM_SUNOS4) || defined(PLATFORM_AIX_V3) || defined(__BEOS__) + #error "O_NONBLOCK does not work on this platform" + #endif + int socket; +diff -urN cmake-2.8-git-orig/Utilities/cmcurl/select.c cmake-2.8-git/Utilities/cmcurl/select.c +--- cmake-2.8-git-orig/Utilities/cmcurl/select.c 2012-11-27 05:26:34.055312384 -0800 ++++ cmake-2.8-git/Utilities/cmcurl/select.c 2012-12-03 12:02:42.189792256 -0800 +@@ -39,7 +39,7 @@ + #error "We can't compile without select() support!" + #endif + +-#if defined(__BEOS__) && !defined(__HAIKU__) ++#if defined(__BEOS__) + /* BeOS has FD_SET defined in socket.h */ + #include + #endif +diff -urN cmake-2.8-git-orig/Utilities/cmzlib/zconf.h cmake-2.8-git/Utilities/cmzlib/zconf.h +--- cmake-2.8-git-orig/Utilities/cmzlib/zconf.h 2012-11-27 05:26:34.022020096 -0800 ++++ cmake-2.8-git/Utilities/cmzlib/zconf.h 2012-12-03 12:02:42.190578688 -0800 +@@ -237,7 +237,7 @@ + # endif + #endif + +-#if defined (__BEOS__) && !defined (__HAIKU__) ++#if defined (__BEOS__) + # ifdef ZLIB_DLL + # ifdef ZLIB_INTERNAL + # define ZEXPORT __declspec(dllexport) +diff -urN cmake-2.8-git-orig/Utilities/cmzlib/zutil.h cmake-2.8-git/Utilities/cmzlib/zutil.h +--- cmake-2.8-git-orig/Utilities/cmzlib/zutil.h 2012-11-27 05:26:34.022806528 -0800 ++++ cmake-2.8-git/Utilities/cmzlib/zutil.h 2012-12-03 12:02:42.195559424 -0800 +@@ -147,12 +147,6 @@ + # define OS_CODE 0x0f + #endif + +-/* Haiku defines both __HAIKU__ and __BEOS__ (for now) */ +-/* many BeOS workarounds are no longer needed in Haiku */ +-#if defined(__HAIKU__) && defined(__BEOS__) +-#undef __BEOS__ +-#endif +- + #if defined(_BEOS_) || defined(RISCOS) + # define fdopen(fd,mode) NULL /* No fdopen() */ + #endif diff --git a/dev-util/cmake/patches/cmake-2.8.10.2.patch b/dev-util/cmake/patches/cmake-2.8.10.2.patch new file mode 100644 index 000000000..da4732325 --- /dev/null +++ b/dev-util/cmake/patches/cmake-2.8.10.2.patch @@ -0,0 +1,460 @@ +diff -urN cmake-2.8.10.2-orig/bootstrap cmake-2.8.10.2/bootstrap +--- cmake-2.8.10.2-orig/bootstrap 2012-11-27 05:26:34.015728640 -0800 ++++ cmake-2.8.10.2/bootstrap 2012-12-03 12:02:17.615251968 -0800 +@@ -146,7 +146,9 @@ + cmake_default_prefix="c:/Program Files/CMake" + fi + elif ${cmake_system_haiku}; then +- cmake_default_prefix=`/bin/finddir B_COMMON_DIRECTORY` ++ cmake_default_prefix=`finddir B_COMMON_DIRECTORY` ++ cmake_man_dir="/documentation/man" ++ cmake_doc_dir="/documentation/doc/cmake-${cmake_version}" + else + cmake_default_prefix="/usr/local" + fi +diff -urN cmake-2.8.10.2-orig/Modules/CMakePlatformId.h.in cmake-2.8.10.2/Modules/CMakePlatformId.h.in +--- cmake-2.8.10.2-orig/Modules/CMakePlatformId.h.in 2012-11-27 05:26:32.056623104 -0800 ++++ cmake-2.8.10.2/Modules/CMakePlatformId.h.in 2012-12-03 12:02:17.633864192 -0800 +@@ -35,11 +35,8 @@ + #elif defined(__hpux) || defined(__hpux__) + # define PLATFORM_ID "HP-UX" + +-#elif defined(__HAIKU) || defined(__HAIKU__) || defined(_HAIKU) ++#elif defined(__HAIKU__) + # define PLATFORM_ID "Haiku" +-/* Haiku also defines __BEOS__ so we must +- put it prior to the check for __BEOS__ +-*/ + + #elif defined(__BeOS) || defined(__BEOS__) || defined(_BEOS) + # define PLATFORM_ID "BeOS" +--- cmake-2.8.10.2-orig/Modules/FindFreetype.cmake 2012-11-27 13:26:32.037486592 +0000 ++++ cmake-2.8.10.2/Modules/FindFreetype.cmake 2013-02-10 23:15:25.000000000 +0000 +@@ -46,20 +46,22 @@ + HINTS + ENV FREETYPE_DIR + PATHS ++ /boot/develop/headers + /usr/local/X11R6 + /usr/local/X11 + /usr/freeware +- PATH_SUFFIXES include/freetype2 include ++ PATH_SUFFIXES include/freetype2 include 3rdparty + ) + + find_path(FREETYPE_INCLUDE_DIR_freetype2 freetype/config/ftheader.h + HINTS + ENV FREETYPE_DIR + PATHS ++ /boot/develop/headers + /usr/local/X11R6 + /usr/local/X11 + /usr/freeware +- PATH_SUFFIXES include/freetype2 include ++ PATH_SUFFIXES include/freetype2 include 3rdparty/freetype2 3rdparty + ) + + find_library(FREETYPE_LIBRARY +@@ -68,6 +70,7 @@ + ENV FREETYPE_DIR + PATH_SUFFIXES lib + PATHS ++ /boot/system/lib + /usr/local/X11R6 + /usr/local/X11 + /usr/freeware + +diff -urN cmake-2.8.10.2-orig/Modules/FindGLUT.cmake cmake-2.8.10.2/Modules/FindGLUT.cmake +--- cmake-2.8.10.2-orig/Modules/FindGLUT.cmake 2012-11-27 13:26:32.057147392 +0000 ++++ cmake-2.8.10.2/Modules/FindGLUT.cmake 2012-12-04 09:11:43.176422912 +0000 +@@ -46,19 +46,23 @@ + /usr/openwin/include + /opt/graphics/OpenGL/include + /opt/graphics/OpenGL/contrib/libglut ++ /boot/develop/headers/os/opengl + ) + + find_library( GLUT_glut_LIBRARY glut + /usr/openwin/lib ++ /boot/develop/lib/x86/ + ) + +- find_library( GLUT_Xi_LIBRARY Xi +- /usr/openwin/lib +- ) +- +- find_library( GLUT_Xmu_LIBRARY Xmu +- /usr/openwin/lib +- ) ++ if(NOT BEOS AND NOT HAIKU) ++ find_library( GLUT_Xi_LIBRARY Xi ++ /usr/openwin/lib ++ ) ++ ++ find_library( GLUT_Xmu_LIBRARY Xmu ++ /usr/openwin/lib ++ ) ++ endif() + + endif () + +@@ -70,12 +74,18 @@ + if (GLUT_FOUND) + # Is -lXi and -lXmu required on all platforms that have it? + # If not, we need some way to figure out what platform we are on. +- set( GLUT_LIBRARIES +- ${GLUT_glut_LIBRARY} +- ${GLUT_Xmu_LIBRARY} +- ${GLUT_Xi_LIBRARY} +- ${GLUT_cocoa_LIBRARY} +- ) ++ if(BEOS OR HAIKU) ++ set( GLUT_LIBRARIES ++ ${GLUT_glut_LIBRARY} ++ ) ++ else ++ set( GLUT_LIBRARIES ++ ${GLUT_glut_LIBRARY} ++ ${GLUT_Xmu_LIBRARY} ++ ${GLUT_Xi_LIBRARY} ++ ${GLUT_cocoa_LIBRARY} ++ ) ++ endif() + + #The following deprecated settings are for backwards compatibility with CMake1.4 + set (GLUT_LIBRARY ${GLUT_LIBRARIES}) + +diff -urN cmake-2.8.10.2-orig/Modules/FindLua51.cmake cmake-2.8.10.2/Modules/FindLua51.cmake +--- cmake-2.8.10.2-orig/Modules/FindLua51.cmake 2012-11-27 05:26:32.033030144 -0800 ++++ cmake-2.8.10.2/Modules/FindLua51.cmake 2012-12-03 12:02:17.644612096 -0800 +@@ -54,7 +54,7 @@ + + if(LUA_LIBRARY) + # include the math library for Unix +- if(UNIX AND NOT APPLE) ++ if(UNIX AND NOT APPLE AND NOT BEOS AND NOT HAIKU) + find_library(LUA_MATH_LIBRARY m) + set( LUA_LIBRARIES "${LUA_LIBRARY};${LUA_MATH_LIBRARY}" CACHE STRING "Lua Libraries") + # For Windows and Mac, don't need to explicitly include the math library +diff -urN cmake-2.8.10.2-orig/Modules/FindOpenGL.cmake cmake-2.8.10.2/Modules/FindOpenGL.cmake +--- cmake-2.8.10.2-orig/Modules/FindOpenGL.cmake 2012-11-27 05:26:32.034340864 -0800 ++++ cmake-2.8.10.2/Modules/FindOpenGL.cmake 2012-12-03 12:02:17.651952128 -0800 +@@ -80,6 +80,7 @@ + /usr/share/doc/NVIDIA_GLX-1.0/include + /usr/openwin/share/include + /opt/graphics/OpenGL/include /usr/X11R6/include ++ /boot/develop/headers/os/opengl + ) + + find_path(OPENGL_xmesa_INCLUDE_DIR GL/xmesa.h +@@ -94,6 +95,7 @@ + /usr/openwin/lib + /usr/shlib /usr/X11R6/lib + ${HPUX_IA_OPENGL_LIB_PATH} ++ /boot/develop/lib/x86/ + ) + + # On Unix OpenGL most certainly always requires X11. +diff -urN cmake-2.8.10.2-orig/Modules/Platform/Haiku.cmake cmake-2.8.10.2/Modules/Platform/Haiku.cmake +--- cmake-2.8.10.2-orig/Modules/Platform/Haiku.cmake 2012-12-03 12:11:47.804519936 -0800 ++++ cmake-2.8.10.2/Modules/Platform/Haiku.cmake 2012-12-03 12:02:17.652738560 -0800 +@@ -1,20 +1,25 @@ ++set(HAIKU 1) ++set(UNIX 1) ++ ++set(CMAKE_DL_LIBS "") +-set(BEOS 1) +- +-set(CMAKE_DL_LIBS root be) +-set(CMAKE_C_COMPILE_OPTIONS_PIC "-fPIC") +-set(CMAKE_C_COMPILE_OPTIONS_PIE "-fPIE") + set(CMAKE_SHARED_LIBRARY_C_FLAGS "-fPIC") ++set(CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS "-shared") +-set(CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS "-nostart") + set(CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG "-Wl,-rpath,") + set(CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG_SEP ":") ++set(CMAKE_SHARED_LIBRARY_RPATH_LINK_C_FLAG "-Wl,-rpath-link,") + set(CMAKE_SHARED_LIBRARY_SONAME_C_FLAG "-Wl,-soname,") ++set(CMAKE_EXE_EXPORTS_C_FLAG "-Wl,--export-dynamic") ++ ++list(APPEND CMAKE_SYSTEM_PREFIX_PATH ++ /boot/common/non-packaged ++ /boot/common ++ /boot/system ++ ) ++list(APPEND CMAKE_PLATFORM_IMPLICIT_LINK_DIRECTORIES ++ /boot/common/non-packaged/lib ++ /boot/common/lib ++ /boot/develop/lib/x86 ++ ) +- +-include(Platform/UnixPaths) +-list(APPEND CMAKE_SYSTEM_PREFIX_PATH /boot/common) +-list(APPEND CMAKE_SYSTEM_INCLUDE_PATH /boot/common/include) +-list(APPEND CMAKE_SYSTEM_LIBRARY_PATH /boot/common/lib) +-list(APPEND CMAKE_SYSTEM_PROGRAM_PATH /boot/common/bin) +-list(APPEND CMAKE_PLATFORM_IMPLICIT_LINK_DIRECTORIES /boot/common/lib) + list(APPEND CMAKE_SYSTEM_INCLUDE_PATH /boot/develop/headers/3rdparty) + list(APPEND CMAKE_SYSTEM_LIBRARY_PATH /boot/develop/lib/x86) + +diff -urN cmake-2.8.10.2-orig/Source/cmCTest.cxx cmake-2.8.10.2/Source/cmCTest.cxx +--- cmake-2.8.10.2-orig/Source/cmCTest.cxx 2012-11-27 05:26:32.060030976 -0800 ++++ cmake-2.8.10.2/Source/cmCTest.cxx 2012-12-03 12:02:17.659816448 -0800 +@@ -53,7 +53,7 @@ + #include + #include + +-#if defined(__BEOS__) && !defined(__HAIKU__) ++#if defined(__BEOS__) + #include /* disable_debugger() API. */ + #endif + +diff -urN cmake-2.8.10.2-orig/Source/cmExportCommand.cxx cmake-2.8.10.2/Source/cmExportCommand.cxx +--- cmake-2.8.10.2-orig/Source/cmExportCommand.cxx 2012-11-27 05:26:33.039059456 -0800 ++++ cmake-2.8.10.2/Source/cmExportCommand.cxx 2012-12-03 12:02:17.665059328 -0800 +@@ -20,7 +20,8 @@ + #include "cmExportBuildFileGenerator.h" + + #if defined(__HAIKU__) +-#include ++#include ++#include + #endif + + cmExportCommand::cmExportCommand() +@@ -305,14 +306,15 @@ + const char* hash) + { + #if defined(__HAIKU__) +- BPath dir; +- if (find_directory(B_USER_SETTINGS_DIRECTORY, &dir) != B_OK) ++ char dir[B_PATH_NAME_LENGTH]; ++ if (find_directory(B_USER_SETTINGS_DIRECTORY, -1, false, dir, sizeof(dir)) != ++ B_OK) + { + return; + } +- dir.Append("cmake/packages"); +- dir.Append(package.c_str()); +- std::string fname = dir.Path(); ++ std::string fname = dir; ++ fname += "/cmake/packages/"; ++ fname += package; + #else + const char* home = cmSystemTools::GetEnv("HOME"); + if(!home) +diff -urN cmake-2.8.10.2-orig/Source/cmFindPackageCommand.cxx cmake-2.8.10.2/Source/cmFindPackageCommand.cxx +--- cmake-2.8.10.2-orig/Source/cmFindPackageCommand.cxx 2012-11-27 05:26:33.059768832 -0800 ++++ cmake-2.8.10.2/Source/cmFindPackageCommand.cxx 2012-12-03 12:02:17.666107904 -0800 +@@ -19,7 +19,9 @@ + #endif + + #if defined(__HAIKU__) +-#include ++#include ++#include ++#include + #endif + + void cmFindPackageNeedBackwardsCompatibility(const std::string& variable, +@@ -1583,12 +1585,13 @@ + #if defined(_WIN32) && !defined(__CYGWIN__) + this->LoadPackageRegistryWinUser(); + #elif defined(__HAIKU__) +- BPath dir; +- if (find_directory(B_USER_SETTINGS_DIRECTORY, &dir) == B_OK) ++ char dir[B_PATH_NAME_LENGTH]; ++ if (find_directory(B_USER_SETTINGS_DIRECTORY, -1, false, dir, sizeof(dir)) == ++ B_OK) + { +- dir.Append("cmake/packages"); +- dir.Append(this->Name.c_str()); +- this->LoadPackageRegistryDir(dir.Path()); ++ strlcat(dir, "/cmake/packages/", sizeof(dir)); ++ strlcat(dir, this->Name.c_str(), sizeof(dir)); ++ this->LoadPackageRegistryDir(dir); + } + #else + if(const char* home = cmSystemTools::GetEnv("HOME")) +diff -urN cmake-2.8.10.2-orig/Source/cmLocalGenerator.cxx cmake-2.8.10.2/Source/cmLocalGenerator.cxx +--- cmake-2.8.10.2-orig/Source/cmLocalGenerator.cxx 2012-11-27 05:26:33.035389440 -0800 ++++ cmake-2.8.10.2/Source/cmLocalGenerator.cxx 2012-12-03 12:02:17.672399360 -0800 +@@ -37,7 +37,8 @@ + #include + + #if defined(__HAIKU__) +-#include ++#include ++#include + #endif + + cmLocalGenerator::cmLocalGenerator() +@@ -354,12 +355,12 @@ + prefix = prefix_win32.c_str(); + } + #elif defined(__HAIKU__) ++ char dir[B_PATH_NAME_LENGTH]; + if (!prefix) + { +- BPath dir; +- if (find_directory(B_COMMON_DIRECTORY, &dir) == B_OK) ++ if (find_directory(B_COMMON_DIRECTORY, -1, false, dir, sizeof(dir)) == B_OK) + { +- prefix = dir.Path(); ++ prefix = dir; + } + else + { +diff -urN cmake-2.8.10.2-orig/Source/CPack/cmCPackGenerator.cxx cmake-2.8.10.2/Source/CPack/cmCPackGenerator.cxx +--- cmake-2.8.10.2-orig/Source/CPack/cmCPackGenerator.cxx 2012-11-27 05:26:32.015466496 -0800 ++++ cmake-2.8.10.2/Source/CPack/cmCPackGenerator.cxx 2012-12-03 12:02:17.677904384 -0800 +@@ -27,7 +27,8 @@ + #include + + #if defined(__HAIKU__) +-#include ++#include ++#include + #endif + + //---------------------------------------------------------------------- +@@ -1265,10 +1266,10 @@ + this->InstallPath += "-"; + this->InstallPath += this->GetOption("CPACK_PACKAGE_VERSION"); + #elif defined(__HAIKU__) +- BPath dir; +- if (find_directory(B_COMMON_DIRECTORY, &dir) == B_OK) ++ char dir[B_PATH_NAME_LENGTH]; ++ if (find_directory(B_COMMON_DIRECTORY, -1, false, dir, sizeof(dir)) == B_OK) + { +- this->InstallPath = dir.Path(); ++ this->InstallPath = dir; + } + else + { +diff -urN cmake-2.8.10.2-orig/Source/CPack/cmCPackGeneratorFactory.cxx cmake-2.8.10.2/Source/CPack/cmCPackGeneratorFactory.cxx +--- cmake-2.8.10.2-orig/Source/CPack/cmCPackGeneratorFactory.cxx 2012-12-03 12:07:50.301203456 -0800 ++++ cmake-2.8.10.2/Source/CPack/cmCPackGeneratorFactory.cxx 2012-12-03 12:02:17.678428672 -0800 +@@ -113,7 +113,7 @@ + } + #endif + #if !defined(_WIN32) \ ++ && !defined(__QNXNTO__) && !defined(__BEOS__) && !defined(__HAIKU__) +- && !defined(__QNXNTO__) && !defined(__BEOS__) + if (cmCPackDebGenerator::CanGenerate()) + { + this->RegisterGenerator("DEB", "Debian packages", +diff -urN cmake-2.8.10.2-orig/Source/kwsys/ProcessUNIX.c cmake-2.8.10.2/Source/kwsys/ProcessUNIX.c +--- cmake-2.8.10.2-orig/Source/kwsys/ProcessUNIX.c 2012-11-27 05:26:33.000524288 -0800 ++++ cmake-2.8.10.2/Source/kwsys/ProcessUNIX.c 2012-12-03 12:02:17.707264512 -0800 +@@ -63,10 +63,6 @@ + #include /* DIR, dirent */ + #include /* isspace */ + +-#ifdef __HAIKU__ +-#undef __BEOS__ +-#endif +- + #if defined(__VMS) + # define KWSYSPE_VMS_NONBLOCK , O_NONBLOCK + #else +diff -urN cmake-2.8.10.2-orig/Source/kwsys/SystemTools.cxx cmake-2.8.10.2/Source/kwsys/SystemTools.cxx +--- cmake-2.8.10.2-orig/Source/kwsys/SystemTools.cxx 2012-11-27 05:26:33.005505024 -0800 ++++ cmake-2.8.10.2/Source/kwsys/SystemTools.cxx 2012-12-03 12:02:17.708313088 -0800 +@@ -157,7 +157,7 @@ + #include + #endif + +-#if defined(__BEOS__) && !defined(__ZETA__) && !defined(__HAIKU__) ++#if defined(__BEOS__) && !defined(__ZETA__) + #include + #include + +diff -urN cmake-2.8.10.2-orig/Source/kwsys/testDynamicLoader.cxx cmake-2.8.10.2/Source/kwsys/testDynamicLoader.cxx +--- cmake-2.8.10.2-orig/Source/kwsys/testDynamicLoader.cxx 2012-11-27 05:26:33.006815744 -0800 ++++ cmake-2.8.10.2/Source/kwsys/testDynamicLoader.cxx 2012-12-03 12:02:17.713818112 -0800 +@@ -15,7 +15,7 @@ + #include KWSYS_HEADER(ios/iostream) + #include KWSYS_HEADER(stl/string) + +-#if defined(__BEOS__) && !defined(__HAIKU__) ++#if defined(__BEOS__) + #include /* disable_debugger() API. */ + #endif + +diff -urN cmake-2.8.10.2-orig/Source/kwsys/testProcess.c cmake-2.8.10.2/Source/kwsys/testProcess.c +--- cmake-2.8.10.2-orig/Source/kwsys/testProcess.c 2012-11-27 05:26:33.007602176 -0800 ++++ cmake-2.8.10.2/Source/kwsys/testProcess.c 2012-12-03 12:02:17.714604544 -0800 +@@ -32,7 +32,7 @@ + # pragma warn -8060 /* possibly incorrect assignment */ + #endif + +-#if defined(__BEOS__) && !defined(__ZETA__) && !defined(__HAIKU__) ++#if defined(__BEOS__) && !defined(__ZETA__) + /* BeOS 5 doesn't have usleep(), but it has snooze(), which is identical. */ + # include + static inline void testProcess_usleep(unsigned int msec) +diff -urN cmake-2.8.10.2-orig/Tests/ComplexOneConfig/Library/CMakeLists.txt cmake-2.8.10.2/Tests/ComplexOneConfig/Library/CMakeLists.txt +--- cmake-2.8.10.2-orig/Tests/ComplexOneConfig/Library/CMakeLists.txt 2012-11-27 05:26:34.013369344 -0800 ++++ cmake-2.8.10.2/Tests/ComplexOneConfig/Library/CMakeLists.txt 2012-12-03 12:02:42.181665792 -0800 +@@ -51,7 +51,7 @@ + FULL_DOCS "A simple etst proerty that means nothign and is used for nothing" + ) + set_target_properties(CMakeTestCLibraryShared PROPERTIES FOO BAR) +-if(NOT BEOS AND NOT WIN32) # No libm on BeOS. ++if(NOT BEOS AND NOT WIN32 AND NOT HAIKU) # No libm on BeOS. + set_target_properties(CMakeTestCLibraryShared PROPERTIES LINK_FLAGS "-lm") + endif() + get_target_property(FOO_BAR_VAR CMakeTestCLibraryShared FOO) +diff -urN cmake-2.8.10.2-orig/Utilities/cmcurl/CMake/CurlTests.c cmake-2.8.10.2/Utilities/cmcurl/CMake/CurlTests.c +--- cmake-2.8.10.2-orig/Utilities/cmcurl/CMake/CurlTests.c 2012-11-27 05:26:34.045350912 -0800 ++++ cmake-2.8.10.2/Utilities/cmcurl/CMake/CurlTests.c 2012-12-03 12:02:42.189005824 -0800 +@@ -38,7 +38,7 @@ + # define PLATFORM_AIX_V3 + #endif + +-#if defined(PLATFORM_SUNOS4) || defined(PLATFORM_AIX_V3) || (defined(__BEOS__) && !defined(__HAIKU__)) ++#if defined(PLATFORM_SUNOS4) || defined(PLATFORM_AIX_V3) || defined(__BEOS__) + #error "O_NONBLOCK does not work on this platform" + #endif + int socket; +diff -urN cmake-2.8.10.2-orig/Utilities/cmcurl/select.c cmake-2.8.10.2/Utilities/cmcurl/select.c +--- cmake-2.8.10.2-orig/Utilities/cmcurl/select.c 2012-11-27 05:26:34.055312384 -0800 ++++ cmake-2.8.10.2/Utilities/cmcurl/select.c 2012-12-03 12:02:42.189792256 -0800 +@@ -39,7 +39,7 @@ + #error "We can't compile without select() support!" + #endif + +-#if defined(__BEOS__) && !defined(__HAIKU__) ++#if defined(__BEOS__) + /* BeOS has FD_SET defined in socket.h */ + #include + #endif +diff -urN cmake-2.8.10.2-orig/Utilities/cmzlib/zconf.h cmake-2.8.10.2/Utilities/cmzlib/zconf.h +--- cmake-2.8.10.2-orig/Utilities/cmzlib/zconf.h 2012-11-27 05:26:34.022020096 -0800 ++++ cmake-2.8.10.2/Utilities/cmzlib/zconf.h 2012-12-03 12:02:42.190578688 -0800 +@@ -237,7 +237,7 @@ + # endif + #endif + +-#if defined (__BEOS__) && !defined (__HAIKU__) ++#if defined (__BEOS__) + # ifdef ZLIB_DLL + # ifdef ZLIB_INTERNAL + # define ZEXPORT __declspec(dllexport) +diff -urN cmake-2.8.10.2-orig/Utilities/cmzlib/zutil.h cmake-2.8.10.2/Utilities/cmzlib/zutil.h +--- cmake-2.8.10.2-orig/Utilities/cmzlib/zutil.h 2012-11-27 05:26:34.022806528 -0800 ++++ cmake-2.8.10.2/Utilities/cmzlib/zutil.h 2012-12-03 12:02:42.195559424 -0800 +@@ -147,12 +147,6 @@ + # define OS_CODE 0x0f + #endif + +-/* Haiku defines both __HAIKU__ and __BEOS__ (for now) */ +-/* many BeOS workarounds are no longer needed in Haiku */ +-#if defined(__HAIKU__) && defined(__BEOS__) +-#undef __BEOS__ +-#endif +- + #if defined(_BEOS_) || defined(RISCOS) + # define fdopen(fd,mode) NULL /* No fdopen() */ + #endif diff --git a/dev-util/cppunit/cppunit-1.12.1.bep b/dev-util/cppunit/cppunit-1.12.1.bep new file mode 100644 index 000000000..b6acee2c0 --- /dev/null +++ b/dev-util/cppunit/cppunit-1.12.1.bep @@ -0,0 +1,21 @@ +DESCRIPTION="C++ port of the famous JUnit framework for unit testing" +HOMEPAGE="http://cppunit.sourceforge.net/" +SRC_URI="http://sourceforge.net/projects/cppunit/files/cppunit/1.12.1/cppunit-1.12.1.tar.gz/download" +CHECKSUM_MD5 = "bd30e9cf5523cdfc019b94f5e1d7fd19" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="" +BUILD { + cd cppunit-1.12.1 + libtoolize --force --copy --install + autoreconf -i + ./configure --prefix=`finddir B_COMMON_DIRECTORY` + make +} + +INSTALL { + cd cppunit-1.12.1 + make install +} + +LICENSE="GNU LGPL v2.1" diff --git a/dev-util/cscope/cscope-15.7a.bep b/dev-util/cscope/cscope-15.7a.bep index c1a5c5651..de9159eb5 100644 --- a/dev-util/cscope/cscope-15.7a.bep +++ b/dev-util/cscope/cscope-15.7a.bep @@ -8,7 +8,7 @@ DEPEND="" BUILD { cd cscope-15.7a autoreconf -fvi - ./configure --prefix=/boot/common + ./configure --prefix=`finddir B_COMMON_DIRECTORY` make } diff --git a/dev-util/ctags/ctags-5.8.bep b/dev-util/ctags/ctags-5.8.bep index 73a66b7bf..409a72ab6 100644 --- a/dev-util/ctags/ctags-5.8.bep +++ b/dev-util/ctags/ctags-5.8.bep @@ -7,13 +7,15 @@ DEPEND="" CHECKSUM_MD5="c00f82ecdcc357434731913e5b48630d" BUILD { cd ctags-5.8 - ./configure --prefix=/boot/common + ./configure --prefix=`finddir B_COMMON_DIRECTORY` \ + --mandir=`finddir B_COMMON_DOCUMENTATION_DIRECTORY`/man make } INSTALL { cd ctags-5.8 - make install prefix=${DESTDIR}/boot/common + make install prefix=${DESTDIR}`finddir B_COMMON_DIRECTORY` \ + mandir=${DESTDIR}`finddir B_COMMON_DOCUMENTATION_DIRECTORY`/man } LICENSE="GNU GPL v2" diff --git a/dev-util/diffstat/diffstat-1.51.bep b/dev-util/diffstat/diffstat-1.51.bep index bff1e6fa2..d3a73f46f 100644 --- a/dev-util/diffstat/diffstat-1.51.bep +++ b/dev-util/diffstat/diffstat-1.51.bep @@ -7,7 +7,7 @@ STATUS_HAIKU="stable" DEPEND="" BUILD { cd diffstat-1.51 - ./configure --prefix=/boot/common + ./configure --prefix=`finddir B_COMMON_DIRECTORY` make } diff --git a/dev-util/fastdep/fastdep-0.16.bep b/dev-util/fastdep/fastdep-0.16.bep index c22ca22f2..d299b7249 100644 --- a/dev-util/fastdep/fastdep-0.16.bep +++ b/dev-util/fastdep/fastdep-0.16.bep @@ -1,6 +1,6 @@ DESCRIPTION="fastdep is a fast dependency generator for C/C++ files." HOMEPAGE="http://www.irule.be/bvh/c++/fastdep/" -SRC_URI="http://www.irule.be/bvh/c++/fastdep/fastdep-0.16.tar.gz" +SRC_URI="http://ports-space.haiku-files.org/dev-util/source/fastdep-0.16.tar.gz" REVISION="1" STATUS_HAIKU="stable" DEPEND="" diff --git a/dev-util/global/global-5.8.1.bep b/dev-util/global/global-5.8.1.bep deleted file mode 100644 index 60359156b..000000000 --- a/dev-util/global/global-5.8.1.bep +++ /dev/null @@ -1,20 +0,0 @@ -DESCRIPTION="GNU Global is a source code tagging system." -HOMEPAGE="http://www.gnu.org/software/global/" -SRC_URI="http://ftp.gnu.org/pub/gnu/global/global-5.8.1.tar.gz" -CHECKSUM_MD5="9c357098e42c9ba32776ccd6b549d85d" -REVISION="1" -STATUS_HAIKU="stable" -DEPEND="" -BUILD { - cd global-5.8.1 - ./configure --prefix=/boot/common --with-exuberant-ctags=/bin/ctags - make -} - -INSTALL { - cd global-5.8.1 - make install -} -LICENSE="GNU GPL v3" -COPYRIGHT="2000-2007 Tama Communications Corporation - 2007-2010 Free Software Foundation, Inc." diff --git a/dev-util/global/global-5.8.2.bep b/dev-util/global/global-5.8.2.bep deleted file mode 100644 index ffc53cb71..000000000 --- a/dev-util/global/global-5.8.2.bep +++ /dev/null @@ -1,21 +0,0 @@ -DESCRIPTION="GNU Global is a source code tagging system." -HOMEPAGE="http://www.gnu.org/software/global/" -SRC_URI="http://ftp.gnu.org/pub/gnu/global/global-5.8.2.tar.gz" -CHECKSUM_MD5="380a496cbe24263a80eb895f87b7c7f4" -REVISION="1" -STATUS_HAIKU="stable" -DEPEND="" -BUILD { - cd global-5.8.2 - autoreconf -fi - ./configure --prefix=/boot/common --with-exuberant-ctags=/bin/ctags - make -} - -INSTALL { - cd global-5.8.2 - make install -} -LICENSE="GNU GPL v3" -COPYRIGHT="2000-2007 Tama Communications Corporation - 2007-2010 Free Software Foundation, Inc." diff --git a/dev-util/global/global-5.8.bep b/dev-util/global/global-5.8.bep deleted file mode 100644 index 2649f36eb..000000000 --- a/dev-util/global/global-5.8.bep +++ /dev/null @@ -1,20 +0,0 @@ -DESCRIPTION="GNU Global is a source code tagging system." -HOMEPAGE="http://www.gnu.org/software/global/" -SRC_URI="http://tamacom.com/global/global-5.8.tar.gz" -CHECKSUM_MD5="7ba2efb55269615b2722cca36aced2cb" -REVISION="1" -STATUS_HAIKU="stable" -DEPEND="" -BUILD { - cd global-5.8 - ./configure --prefix=/boot/common - make -} - -INSTALL { - cd global-5.8 - make install -} -LICENSE="GNU GPL v3" -COPYRIGHT="2000-2007 Tama Communications Corporation - 2007-2010 Free Software Foundation, Inc." diff --git a/dev-util/global/global-5.9.1.bep b/dev-util/global/global-5.9.1.bep deleted file mode 100644 index 4a89f4f80..000000000 --- a/dev-util/global/global-5.9.1.bep +++ /dev/null @@ -1,21 +0,0 @@ -DESCRIPTION="GNU Global is a source code tagging system." -HOMEPAGE="http://www.gnu.org/software/global/" -SRC_URI="http://ftp.gnu.org/pub/gnu/global/global-5.9.1.tar.gz" -CHECKSUM_MD5="eaeba27e23f9a0518c4ce66f4797accf" -REVISION="1" -STATUS_HAIKU="stable" -DEPEND="" -BUILD { - cd global-5.9.1 - autoreconf -fi - ./configure --prefix=/boot/common --with-exuberant-ctags=/bin/ctags --with-posix-sort=/bin/sort - make -} - -INSTALL { - cd global-5.9.1 - make install -} -LICENSE="GNU GPL v3" -COPYRIGHT="2000-2010 Tama Communications Corporation - 2007-2010 Free Software Foundation, Inc." diff --git a/dev-util/global/global-5.9.bep b/dev-util/global/global-5.9.bep deleted file mode 100644 index 0027af52c..000000000 --- a/dev-util/global/global-5.9.bep +++ /dev/null @@ -1,21 +0,0 @@ -DESCRIPTION="GNU Global is a source code tagging system." -HOMEPAGE="http://www.gnu.org/software/global/" -SRC_URI="http://ftp.gnu.org/pub/gnu/global/global-5.9.tar.gz" -CHECKSUM_MD5="258276ba3ba2ca1faa3c86bd6b4d8c95" -REVISION="1" -STATUS_HAIKU="stable" -DEPEND="" -BUILD { - cd global-5.9 - autoreconf -fi - ./configure --prefix=/boot/common --with-exuberant-ctags=/bin/ctags --with-posix-sort=/bin/sort - make -} - -INSTALL { - cd global-5.9 - make install -} -LICENSE="GNU GPL v3" -COPYRIGHT="2000-2010 Tama Communications Corporation - 2007-2010 Free Software Foundation, Inc." diff --git a/dev-util/global/global-6.2.2.bep b/dev-util/global/global-6.2.2.bep new file mode 100644 index 000000000..34cb8672f --- /dev/null +++ b/dev-util/global/global-6.2.2.bep @@ -0,0 +1,27 @@ +DESCRIPTION="GNU Global is a source code tagging system." +HOMEPAGE="http://www.gnu.org/software/global/" +SRC_URI="http://ftp.gnu.org/pub/gnu/global/global-6.2.2.tar.gz" +CHECKSUM_MD5="8317d2d6914a8e18cd725f9cd7164b87" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="dev-util/ctags >= 5.8" +BUILD { + cd global-6.2.2 + autoreconf -fi + ./configure --prefix="$(finddir B_COMMON_DIRECTORY)" \ + --datadir="$(finddir B_COMMON_DOCUMENTATION_DIRECTORY)/doc" \ + --mandir="$(finddir B_COMMON_DOCUMENTATION_DIRECTORY)/man" \ + --infodir="$(finddir B_COMMON_DOCUMENTATION_DIRECTORY)/info" \ + --with-ncurses \ + --with-exuberant-ctags="$(finddir B_COMMON_BIN_DIRECTORY)/ctags" \ + --with-posix-sort=/bin/sort + make +} + +INSTALL { + cd global-6.2.2 + make install +} +LICENSE="GNU GPL v3" +COPYRIGHT="2000-2012 Tama Communications Corporation + 2007-2012 Free Software Foundation, Inc." diff --git a/dev-util/global/global-6.2.4.bep b/dev-util/global/global-6.2.4.bep new file mode 100644 index 000000000..2fea5fdf7 --- /dev/null +++ b/dev-util/global/global-6.2.4.bep @@ -0,0 +1,27 @@ +DESCRIPTION="GNU Global is a source code tagging system." +HOMEPAGE="http://www.gnu.org/software/global/" +SRC_URI="http://ftp.gnu.org/pub/gnu/global/global-6.2.4.tar.gz" +CHECKSUM_MD5="c778d4e52a30706db7a02070cce1078c" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="dev-util/ctags >= 5.8" +BUILD { + cd global-6.2.4 + autoreconf -fi + ./configure --prefix="$(finddir B_COMMON_DIRECTORY)" \ + --datadir="$(finddir B_COMMON_DOCUMENTATION_DIRECTORY)/doc" \ + --mandir="$(finddir B_COMMON_DOCUMENTATION_DIRECTORY)/man" \ + --infodir="$(finddir B_COMMON_DOCUMENTATION_DIRECTORY)/info" \ + --with-ncurses \ + --with-exuberant-ctags="$(finddir B_COMMON_BIN_DIRECTORY)/ctags" \ + --with-posix-sort=/bin/sort + make +} + +INSTALL { + cd global-6.2.4 + make install +} +LICENSE="GNU GPL v3" +COPYRIGHT="2000-2012 Tama Communications Corporation + 2007-2012 Free Software Foundation, Inc." diff --git a/dev-util/global/patches/global-5.8.1.patch b/dev-util/global/patches/global-5.8.1.patch deleted file mode 100644 index 68352c771..000000000 --- a/dev-util/global/patches/global-5.8.1.patch +++ /dev/null @@ -1,14 +0,0 @@ -diff -up global-5.8.1/libdb/db.h.orig global-5.8.1/libdb/db.h ---- global-5.8.1/libdb/db.h.orig 2010-03-06 04:08:14.003145728 -0700 -+++ global-5.8.1/libdb/db.h 2010-03-11 16:10:46.316145664 -0700 -@@ -43,6 +43,10 @@ - - #include "compat.h" - -+#if defined(__HAIKU__) -+#include -+#endif -+ - #define RET_ERROR -1 /* Return values. */ - #define RET_SUCCESS 0 - #define RET_SPECIAL 1 diff --git a/dev-util/global/patches/global-5.8.2.patch b/dev-util/global/patches/global-5.8.2.patch deleted file mode 100644 index 9840f8655..000000000 --- a/dev-util/global/patches/global-5.8.2.patch +++ /dev/null @@ -1,25 +0,0 @@ -diff -up global-5.8.2/configure.ac.orig global-5.8.2/configure.ac ---- global-5.8.2/configure.ac.orig 2010-05-23 01:40:56.774635520 -0600 -+++ global-5.8.2/configure.ac 2010-05-23 01:41:23.901775360 -0600 -@@ -57,7 +57,7 @@ LTDL_INIT([recursive]) - dnl Checks for libraries. - - dnl Checks for header files. --AC_CHECK_HEADERS(limits.h string.h unistd.h stdarg.h sys/time.h fcntl.h) -+AC_CHECK_HEADERS(limits.h string.h unistd.h stdarg.h stdint.h sys/time.h fcntl.h) - AC_CHECK_HEADERS(sys/resource.h) - AC_HEADER_DIRENT - if test ${ac_header_dirent} = no; then -diff -up global-5.8.2/libdb/db.h.orig global-5.8.2/libdb/db.h ---- global-5.8.2/libdb/db.h.orig 2010-05-23 01:42:09.494665728 -0600 -+++ global-5.8.2/libdb/db.h 2010-05-23 01:42:55.554434560 -0600 -@@ -40,6 +40,9 @@ - #ifdef HAVE_UNISTD_H - #include - #endif -+#ifdef HAVE_STDINT_H -+#include -+#endif - - #include "compat.h" - diff --git a/dev-util/global/patches/global-5.8.patch b/dev-util/global/patches/global-5.8.patch deleted file mode 100644 index f820bafd9..000000000 --- a/dev-util/global/patches/global-5.8.patch +++ /dev/null @@ -1,14 +0,0 @@ -diff -ur global-5.8/libdb/db.h global-5.8-haiku/libdb/db.h ---- global-5.8/libdb/db.h 2009-12-19 03:49:27.000000000 -0700 -+++ global-5.8-haiku/libdb/db.h 2009-12-29 02:50:48.000000000 -0700 -@@ -43,6 +43,10 @@ - - #include "compat.h" - -+#if defined(__HAIKU__) -+#include -+#endif -+ - #define RET_ERROR -1 /* Return values. */ - #define RET_SUCCESS 0 - #define RET_SPECIAL 1 diff --git a/dev-util/global/patches/global-5.9.1.patch b/dev-util/global/patches/global-5.9.1.patch deleted file mode 100644 index 4e107028b..000000000 --- a/dev-util/global/patches/global-5.9.1.patch +++ /dev/null @@ -1,25 +0,0 @@ -diff -up global-5.9.1/configure.ac.orig global-5.9.1/configure.ac ---- global-5.9.1/configure.ac.orig 2010-07-18 23:28:56.009175040 -0600 -+++ global-5.9.1/configure.ac 2010-07-18 23:59:03.300941312 -0600 -@@ -57,7 +57,7 @@ LTDL_INIT([recursive]) - dnl Checks for libraries. - - dnl Checks for header files. --AC_CHECK_HEADERS(limits.h string.h unistd.h stdarg.h sys/time.h fcntl.h) -+AC_CHECK_HEADERS(limits.h string.h unistd.h stdarg.h stdint.h sys/time.h fcntl.h) - AC_CHECK_HEADERS(sys/resource.h) - AC_HEADER_DIRENT - if test ${ac_header_dirent} = no; then -diff -up global-5.9.1/libdb/db.h.orig global-5.9.1/libdb/db.h ---- global-5.9.1/libdb/db.h.orig 2010-07-18 23:28:56.033292288 -0600 -+++ global-5.9.1/libdb/db.h 2010-07-18 23:59:03.303824896 -0600 -@@ -40,6 +40,9 @@ - #ifdef HAVE_UNISTD_H - #include - #endif -+#ifdef HAVE_STDINT_H -+#include -+#endif - - #include "compat.h" - diff --git a/dev-util/global/patches/global-5.9.patch b/dev-util/global/patches/global-5.9.patch deleted file mode 100644 index be036718f..000000000 --- a/dev-util/global/patches/global-5.9.patch +++ /dev/null @@ -1,25 +0,0 @@ -diff -up global-5.9/configure.ac.orig global-5.9/configure.ac ---- global-5.9/configure.ac.orig 2010-06-07 22:07:47.039059456 -0600 -+++ global-5.9/configure.ac 2010-07-03 16:16:00.980418560 -0600 -@@ -57,7 +57,7 @@ LTDL_INIT([recursive]) - dnl Checks for libraries. - - dnl Checks for header files. --AC_CHECK_HEADERS(limits.h string.h unistd.h stdarg.h sys/time.h fcntl.h) -+AC_CHECK_HEADERS(limits.h string.h unistd.h stdarg.h stdint.h sys/time.h fcntl.h) - AC_CHECK_HEADERS(sys/resource.h) - AC_HEADER_DIRENT - if test ${ac_header_dirent} = no; then -diff -up global-5.9/libdb/db.h.orig global-5.9/libdb/db.h ---- global-5.9/libdb/db.h.orig 2010-06-07 22:07:47.062914560 -0600 -+++ global-5.9/libdb/db.h 2010-07-03 16:16:00.983564288 -0600 -@@ -40,6 +40,9 @@ - #ifdef HAVE_UNISTD_H - #include - #endif -+#ifdef HAVE_STDINT_H -+#include -+#endif - - #include "compat.h" - diff --git a/dev-util/global/patches/global-6.2.2.patch b/dev-util/global/patches/global-6.2.2.patch new file mode 100644 index 000000000..916a5b54d --- /dev/null +++ b/dev-util/global/patches/global-6.2.2.patch @@ -0,0 +1,38 @@ +diff -up global-6.2.2/configure.ac.orig global-6.2.2/configure.ac +--- global-6.2.2/configure.ac.orig 2012-03-14 23:23:56.037486592 -0600 ++++ global-6.2.2/configure.ac 2012-05-02 21:19:08.722993152 -0600 +@@ -58,7 +58,7 @@ LTDL_INIT([recursive]) + dnl Checks for libraries. + + dnl Checks for header files. +-AC_CHECK_HEADERS(limits.h string.h unistd.h stdarg.h sys/time.h fcntl.h) ++AC_CHECK_HEADERS(limits.h string.h unistd.h stdarg.h stdint.h sys/time.h fcntl.h) + AC_CHECK_HEADERS(sys/resource.h) + AC_HEADER_DIRENT + if test ${ac_header_dirent} = no; then +diff -up global-6.2.2/libdb/db.h.orig global-6.2.2/libdb/db.h +--- global-6.2.2/libdb/db.h.orig 2012-03-14 23:23:56.062390272 -0600 ++++ global-6.2.2/libdb/db.h 2012-05-02 21:19:08.744751104 -0600 +@@ -40,6 +40,9 @@ + #ifdef HAVE_UNISTD_H + #include + #endif ++#ifdef HAVE_STDINT_H ++#include ++#endif + + #include "compat.h" + +diff -up global-6.2.2/m4/check_curses.m4.orig global-6.2.2/m4/check_curses.m4 +--- global-6.2.2/m4/check_curses.m4.orig 2012-03-14 23:23:56.037224448 -0600 ++++ global-6.2.2/m4/check_curses.m4 2012-05-02 21:19:08.754188288 -0600 +@@ -240,6 +240,9 @@ AC_DEFUN([AC_SEARCH_NCURSES], [ + + AC_NCURSES(/usr/include/ncurses, curses.h, -lncurses, -I/usr/include/ncurses -DRENAMED_NCURSES, "renamed ncurses on /usr/include/ncurses") + ++ AC_NCURSES(/boot/develop/headers/3rdparty, ncurses.h, -lncurses, -I/boot/develop/headers/3rdparty, "ncurses on /boot/develop") ++ AC_NCURSES(/boot/common/include/ncurses, ncurses.h, -lncurses, -I/boot/common/include/ncurses, "ncurses on /boot/common") ++ + dnl + dnl We couldn't find ncurses, try SysV curses + dnl diff --git a/dev-util/global/patches/global-6.2.4.patch b/dev-util/global/patches/global-6.2.4.patch new file mode 100644 index 000000000..267ae6111 --- /dev/null +++ b/dev-util/global/patches/global-6.2.4.patch @@ -0,0 +1,38 @@ +diff -up global-6.2.4/configure.ac.orig global-6.2.4/configure.ac +--- global-6.2.4/configure.ac.orig 2012-05-30 03:30:15.003670016 -0600 ++++ global-6.2.4/configure.ac 2012-07-26 22:38:17.379060224 -0600 +@@ -58,7 +58,7 @@ LTDL_INIT([recursive]) + dnl Checks for libraries. + + dnl Checks for header files. +-AC_CHECK_HEADERS(limits.h string.h unistd.h stdarg.h sys/time.h fcntl.h) ++AC_CHECK_HEADERS(limits.h string.h unistd.h stdarg.h stdint.h sys/time.h fcntl.h) + AC_CHECK_HEADERS(sys/resource.h) + AC_HEADER_DIRENT + if test ${ac_header_dirent} = no; then +diff -up global-6.2.4/libdb/db.h.orig global-6.2.4/libdb/db.h +--- global-6.2.4/libdb/db.h.orig 2012-05-30 03:30:15.028311552 -0600 ++++ global-6.2.4/libdb/db.h 2012-07-26 22:38:17.392429568 -0600 +@@ -40,6 +40,9 @@ + #ifdef HAVE_UNISTD_H + #include + #endif ++#ifdef HAVE_STDINT_H ++#include ++#endif + + #include "compat.h" + +diff -up global-6.2.4/m4/check_curses.m4.orig global-6.2.4/m4/check_curses.m4 +--- global-6.2.4/m4/check_curses.m4.orig 2012-05-30 03:30:15.003407872 -0600 ++++ global-6.2.4/m4/check_curses.m4 2012-07-26 22:38:17.409206784 -0600 +@@ -240,6 +240,9 @@ AC_DEFUN([AC_SEARCH_NCURSES], [ + + AC_NCURSES(/usr/include/ncurses, curses.h, -lncurses, -I/usr/include/ncurses -DRENAMED_NCURSES, "renamed ncurses on /usr/include/ncurses") + ++ AC_NCURSES(/boot/develop/headers/3rdparty, ncurses.h, -lncurses, -I/boot/develop/headers/3rdparty, "ncurses on /boot/develop") ++ AC_NCURSES(/boot/common/include/ncurses, ncurses.h, -lncurses, -I/boot/common/include/ncurses, "ncurses on /boot/common") ++ + dnl + dnl We couldn't find ncurses, try SysV curses + dnl diff --git a/dev-util/gperf/gperf-3.0.4.bep b/dev-util/gperf/gperf-3.0.4.bep index ac009b985..c4071044c 100644 --- a/dev-util/gperf/gperf-3.0.4.bep +++ b/dev-util/gperf/gperf-3.0.4.bep @@ -1,13 +1,17 @@ DESCRIPTION="gperf" HOMEPAGE="http://www.gnu.org/software/gperf/" SRC_URI="http://ftp.gnu.org/pub/gnu/gperf/gperf-3.0.4.tar.gz" -REVISION="1" +REVISION="2" STATUS_HAIKU="stable" DEPEND="" CHECKSUM_MD5="c1f1db32fb6598d6a93e6e88796a8632" BUILD { cd gperf-3.0.4 - ./configure --prefix=/boot/common + COMMON_DOCS=`finddir B_COMMON_DOCUMENTATION_DIRECTORY` + ./configure --prefix=`finddir B_COMMON_DIRECTORY` \ + --docdir=$COMMON_DOCS/doc/gperf \ + --infodir=$COMMON_DOCS/info \ + --mandir=$COMMON_DOCS/man make } @@ -15,5 +19,6 @@ INSTALL { cd gperf-3.0.4 make install } + LICENSE="GNU GPL v3" COPYRIGHT="1989-1998, 2000-2004, 2006-2009 Free Software Foundation, Inc." diff --git a/dev-util/gtk-doc/gtk-doc-1.15.bep b/dev-util/gtk-doc/gtk-doc-1.15.bep index 1c9f24f98..dbb09f8c3 100644 --- a/dev-util/gtk-doc/gtk-doc-1.15.bep +++ b/dev-util/gtk-doc/gtk-doc-1.15.bep @@ -8,7 +8,7 @@ DEPEND="pkgconfig >= 0.23 dev-libs/libxslt >= 1.1.26" BUILD { cd gtk-doc-1.15 - ./configure --prefix=/boot/common + ./configure --prefix=`finddir B_COMMON_DIRECTORY` make } diff --git a/dev-util/idutils/idutils-20061208.bep b/dev-util/idutils/idutils-20061208.bep index a2d05bed4..680bf7356 100644 --- a/dev-util/idutils/idutils-20061208.bep +++ b/dev-util/idutils/idutils-20061208.bep @@ -8,7 +8,7 @@ DEPEND="" BUILD { cd idutils-cvs libtoolize --force --copy --install - ./configure --prefix=/boot/common + ./configure --prefix=`finddir B_COMMON_DIRECTORY` make } diff --git a/dev-util/idutils/idutils-4.2.bep b/dev-util/idutils/idutils-4.2.bep index 45cff03e4..137fb9d96 100644 --- a/dev-util/idutils/idutils-4.2.bep +++ b/dev-util/idutils/idutils-4.2.bep @@ -8,7 +8,7 @@ DEPEND="" BUILD { cd idutils-4.2 libtoolize --force --copy --install - ./configure --prefix=/boot/common + ./configure --prefix=`finddir B_COMMON_DIRECTORY` make } diff --git a/dev-util/intltool/intltool-0.40.6.bep b/dev-util/intltool/intltool-0.40.6.bep index b1628d954..9b91877ea 100644 --- a/dev-util/intltool/intltool-0.40.6.bep +++ b/dev-util/intltool/intltool-0.40.6.bep @@ -2,12 +2,15 @@ DESCRIPTION="intltool" HOMEPAGE="http://www.gnome.org/" SRC_URI="ftp://ftp.gnome.org/pub/gnome/sources/intltool/0.40/intltool-0.40.6.tar.gz" CHECKSUM_MD5="8e40f9d1c7308eddbfd24b22cd540631" -REVISION="1" +REVISION="2" STATUS_HAIKU="stable" +MESSAGE="Requires XML::Parser perl module installed" DEPEND="" BUILD { cd intltool-0.40.6 - configure --prefix=/boot/common + ./configure --prefix="$(finddir B_COMMON_DIRECTORY)" \ + --datarootdir="$(finddir B_COMMON_DATA_DIRECTORY)" \ + --mandir="$(finddir B_COMMON_DOCUMENTATION_DIRECTORY)/man" \ make } diff --git a/dev-util/patchutils/patchutils-0.3.1.bep b/dev-util/patchutils/patchutils-0.3.1.bep index 56f39f7e5..1e5a0f704 100644 --- a/dev-util/patchutils/patchutils-0.3.1.bep +++ b/dev-util/patchutils/patchutils-0.3.1.bep @@ -7,7 +7,7 @@ STATUS_HAIKU="stable" DEPEND="" BUILD { cd patchutils-0.3.1 - ./configure --prefix=/boot/common + ./configure --prefix=`finddir B_COMMON_DIRECTORY` make } diff --git a/dev-util/patchutils/patchutils-0.3.2.bep b/dev-util/patchutils/patchutils-0.3.2.bep new file mode 100644 index 000000000..db1ed8e5e --- /dev/null +++ b/dev-util/patchutils/patchutils-0.3.2.bep @@ -0,0 +1,20 @@ +DESCRIPTION="A collection of tools that operate on patch files." +HOMEPAGE="http://cyberelk.net/tim/patchutils/" +SRC_URI="http://cyberelk.net/tim/data/patchutils/stable/patchutils-0.3.2.tar.bz2" +CHECKSUM_MD5="74607b4a28c9009c6aeeed0e91098917" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="" +BUILD { + cd patchutils-0.3.2 + ./configure --prefix="$(finddir B_COMMON_DIRECTORY)" \ + --mandir="$(finddir B_COMMON_DOCUMENTATION_DIRECTORY)/man" + make +} + +INSTALL { + cd patchutils-0.3.2 + make install +} +LICENSE="GNU GPL v2" +COPYRIGHT="2001-2011 Tim Waugh" diff --git a/dev-util/pkgconfig/pkgconfig-0.23.bep b/dev-util/pkgconfig/pkgconfig-0.23.bep index 0a4cfc607..2a71b584d 100644 --- a/dev-util/pkgconfig/pkgconfig-0.23.bep +++ b/dev-util/pkgconfig/pkgconfig-0.23.bep @@ -8,27 +8,17 @@ DEPEND="" BUILD { cd pkg-config-0.23/glib-1.2.10 mkdir -p m4 - cp /boot/common/share/aclocal/libtool.m4 m4 - cp /boot/common/share/aclocal/ltoptions.m4 m4 - cp /boot/common/share/aclocal/ltversion.m4 m4 - cp /boot/common/share/aclocal/ltsugar.m4 m4 - cp /boot/common/share/aclocal/lt~obsolete.m4 m4 libtoolize --force --copy --install - aclocal -I m4 + aclocal --install -I m4 autoreconf cd .. mkdir -p m4 - cp /boot/common/share/aclocal/libtool.m4 m4 - cp /boot/common/share/aclocal/ltoptions.m4 m4 - cp /boot/common/share/aclocal/ltversion.m4 m4 - cp /boot/common/share/aclocal/ltsugar.m4 m4 - cp /boot/common/share/aclocal/lt~obsolete.m4 m4 libtoolize --force --copy --install - aclocal -I m4 + aclocal --install -I m4 autoreconf automake autoconf - ./configure --prefix=/boot/common + ./configure --prefix=`finddir B_COMMON_DIRECTORY` make } @@ -36,5 +26,6 @@ INSTALL { cd pkg-config-0.23 make install } + LICENSE="GNU GPL v2" COPYRIGHT="1998, 2001-2006 Red Hat Inc." diff --git a/dev-util/pkgconfig/pkgconfig-0.25.bep b/dev-util/pkgconfig/pkgconfig-0.25.bep index 547651da0..6df116054 100644 --- a/dev-util/pkgconfig/pkgconfig-0.25.bep +++ b/dev-util/pkgconfig/pkgconfig-0.25.bep @@ -2,33 +2,27 @@ DESCRIPTION="pkgconfig" HOMEPAGE="http://pkg-config.freedesktop.org/wiki/" SRC_URI="http://pkgconfig.freedesktop.org/releases/pkg-config-0.25.tar.gz" CHECKSUM_MD5="a3270bab3f4b69b7dc6dbdacbcae9745" -REVISION="1" +REVISION="2" STATUS_HAIKU="stable" DEPEND="" BUILD { cd pkg-config-0.25/glib-1.2.10 mkdir -p m4 - cp /boot/common/share/aclocal/libtool.m4 m4 - cp /boot/common/share/aclocal/ltoptions.m4 m4 - cp /boot/common/share/aclocal/ltversion.m4 m4 - cp /boot/common/share/aclocal/ltsugar.m4 m4 - cp /boot/common/share/aclocal/lt~obsolete.m4 m4 libtoolize --force --copy --install - aclocal -I m4 + aclocal --install -I m4 autoreconf cd .. mkdir -p m4 - cp /boot/common/share/aclocal/libtool.m4 m4 - cp /boot/common/share/aclocal/ltoptions.m4 m4 - cp /boot/common/share/aclocal/ltversion.m4 m4 - cp /boot/common/share/aclocal/ltsugar.m4 m4 - cp /boot/common/share/aclocal/lt~obsolete.m4 m4 libtoolize --force --copy --install - aclocal -I m4 + aclocal --install -I m4 autoreconf automake autoconf - ./configure --prefix=/boot/common + COMMON_DOCS=`finddir B_COMMON_DOCUMENTATION_DIRECTORY` + ./configure --prefix=`finddir B_COMMON_DIRECTORY` \ + --datadir=`finddir B_COMMON_DATA_DIRECTORY` \ + --docdir=$COMMON_DOCS/doc/pkg-config \ + --mandir=$COMMON_DOCS/man make } diff --git a/dev-util/premake/patches/premake-4.3.patch b/dev-util/premake/patches/premake-4.3.patch new file mode 100644 index 000000000..e02982f80 --- /dev/null +++ b/dev-util/premake/patches/premake-4.3.patch @@ -0,0 +1,37 @@ +diff -Naur premake-4.3/build/gmake.unix/Premake4.make premake-4.3-haiku/build/gmake.unix/Premake4.make +--- premake-4.3/build/gmake.unix/Premake4.make 2010-11-16 11:29:14.028311552 +0000 ++++ premake-4.3-haiku/build/gmake.unix/Premake4.make 2012-12-27 23:50:16.043253760 +0000 +@@ -28,8 +28,8 @@ + CPPFLAGS += -MMD -MP $(DEFINES) $(INCLUDES) + CFLAGS += $(CPPFLAGS) $(ARCH) -Wall -Os + CXXFLAGS += $(CFLAGS) +- LDFLAGS += -s -rdynamic +- LIBS += -lm -ldl ++ LDFLAGS += -s ++ LIBS += + RESFLAGS += $(DEFINES) $(INCLUDES) + LDDEPS += + LINKCMD = $(CC) -o $(TARGET) $(OBJECTS) $(LDFLAGS) $(RESOURCES) $(ARCH) $(LIBS) +diff -Naur premake-4.3/src/host/lua-5.1.4/src/luaconf.h premake-4.3-haiku/src/host/lua-5.1.4/src/luaconf.h +--- premake-4.3/src/host/lua-5.1.4/src/luaconf.h 2010-11-16 11:29:12.042991616 +0000 ++++ premake-4.3-haiku/src/host/lua-5.1.4/src/luaconf.h 2012-12-27 23:50:16.050331648 +0000 +@@ -55,7 +55,6 @@ + #define LUA_USE_MKSTEMP + #define LUA_USE_ISATTY + #define LUA_USE_POPEN +-#define LUA_USE_ULONGJMP + #endif + + +diff -Naur premake-4.3/src/host/premake.h premake-4.3-haiku/src/host/premake.h +--- premake-4.3/src/host/premake.h 2010-11-16 11:29:12.047185920 +0000 ++++ premake-4.3-haiku/src/host/premake.h 2012-12-27 23:50:16.052166656 +0000 +@@ -12,7 +12,7 @@ + + /* Identify the current platform I'm not sure how to reliably detect + * Windows but since it is the most common I use it as the default */ +-#if defined(__linux__) ++#if defined(__linux__) || defined(__HAIKU__) + #define PLATFORM_LINUX (1) + #define PLATFORM_STRING "linux" + #elif defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__) diff --git a/dev-util/premake/premake-4.3.bep b/dev-util/premake/premake-4.3.bep new file mode 100644 index 000000000..823710ef2 --- /dev/null +++ b/dev-util/premake/premake-4.3.bep @@ -0,0 +1,21 @@ +DESCRIPTION="Powerfully simple build configuration" +HOMEPAGE="http://industriousone.com/premake" +SRC_URI="http://sourceforge.net/projects/premake/files/Premake/4.3/premake-4.3-src.zip/download" +CHECKSUM_MD5="8cfafee76f9665c93b2e9ad15b015eb7" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="" + +BUILD { + cd premake-4.3/build/gmake.unix + make config=release +} + +INSTALL { + cd premake-4.3/bin/release + mkdir -p $DESTDIR`finddir B_COMMON_BIN_DIRECTORY` + install -m 0755 premake4 $DESTDIR`finddir B_COMMON_BIN_DIRECTORY` +} + +LICENSE="BSD (2-clause)" +COPYRIGHT="2012 Industrious One, LLC" diff --git a/dev-util/quilt/quilt-0.48.bep b/dev-util/quilt/quilt-0.48.bep index 42b700f47..ec42bbf25 100644 --- a/dev-util/quilt/quilt-0.48.bep +++ b/dev-util/quilt/quilt-0.48.bep @@ -9,7 +9,7 @@ DEPEND="dev-util/diffstat >= 1.51 BUILD { cd quilt-0.48 autoconf - ./configure --prefix=/boot/common + ./configure --prefix=`finddir B_COMMON_DIRECTORY` make EDITOR=nano } diff --git a/dev-util/scons/patches/scons-2.0.1.patch b/dev-util/scons/patches/scons-2.0.1.patch new file mode 100644 index 000000000..7271f58e4 --- /dev/null +++ b/dev-util/scons/patches/scons-2.0.1.patch @@ -0,0 +1,70 @@ +diff -Naur scons-2.0.1/engine/SCons/Platform/__init__.py scons-2.0.1-haiku/engine/SCons/Platform/__init__.py +--- scons-2.0.1/engine/SCons/Platform/__init__.py 2010-08-17 06:02:51.023068672 +0000 ++++ scons-2.0.1-haiku/engine/SCons/Platform/__init__.py 2011-07-26 06:05:15.824967168 +0000 +@@ -78,6 +78,8 @@ + return 'aix' + elif sys.platform.find('darwin') != -1: + return 'darwin' ++ elif sys.platform.find('haiku') != -1: ++ return 'haiku' + else: + return 'posix' + elif os.name == 'os2': +diff -Naur scons-2.0.1/engine/SCons/Platform/haiku.py scons-2.0.1-haiku/engine/SCons/Platform/haiku.py +--- scons-2.0.1/engine/SCons/Platform/haiku.py 1970-01-01 00:00:00.000000000 +0000 ++++ scons-2.0.1-haiku/engine/SCons/Platform/haiku.py 2011-07-26 22:13:19.692584448 +0000 +@@ -0,0 +1,54 @@ ++"""SCons.Platform.haiku ++ ++Platform-specific initialization for Haiku systems. ++ ++There normally shouldn't be any need to import this module directly. It ++will usually be imported through the generic SCons.Platform.Platform() ++selection method. ++""" ++ ++# ++# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 The SCons Foundation ++# ++# Permission is hereby granted, free of charge, to any person obtaining ++# a copy of this software and associated documentation files (the ++# "Software"), to deal in the Software without restriction, including ++# without limitation the rights to use, copy, modify, merge, publish, ++# distribute, sublicense, and/or sell copies of the Software, and to ++# permit persons to whom the Software is furnished to do so, subject to ++# the following conditions: ++# ++# The above copyright notice and this permission notice shall be included ++# in all copies or substantial portions of the Software. ++# ++# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY ++# KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE ++# WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND ++# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE ++# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION ++# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION ++# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ++# ++ ++__revision__ = "" ++ ++import posix ++import commands ++ ++def findDir( identifier ): ++ return commands.getoutput( 'finddir %s' % identifier ) ++ ++def generate(env): ++ posix.generate(env) ++ ++ # path list ++ listPath = [ '.' ] ++ listPath.append( '%s/bin' % findDir( 'B_USER_CONFIG_DIRECTORY' ) ) ++ listPath.append( findDir( 'B_COMMON_BIN_DIRECTORY' ) ) ++ listPath.append( findDir( 'B_SYSTEM_BIN_DIRECTORY' ) ) ++ listPath.append( findDir( 'B_BEOS_BIN_DIRECTORY' ) ) ++ listPath.append( '%s/tools/gnupro/bin' % findDir( 'B_COMMON_DEVELOP_DIRECTORY' ) ) ++ env['ENV']['PATH'] = ':'.join( listPath ) ++ ++ # help the linker find the startfiles ++ env['ENV']['BELIBRARIES'] = ':%s/lib/x86' % findDir( 'B_COMMON_DEVELOP_DIRECTORY' ) diff --git a/dev-util/scons/patches/scons-2.2.0.patch b/dev-util/scons/patches/scons-2.2.0.patch new file mode 100644 index 000000000..15d06891d --- /dev/null +++ b/dev-util/scons/patches/scons-2.2.0.patch @@ -0,0 +1,70 @@ +diff -Naur ./scons-2.2.0/engine/SCons/Platform/__init__.py ./scons-2.2.0-haiku/engine/SCons/Platform/__init__.py +--- ./scons-2.2.0/engine/SCons/Platform/__init__.py 2012-08-05 15:38:31.009961472 +0000 ++++ ./scons-2.2.0-haiku/engine/SCons/Platform/__init__.py 2012-09-30 13:28:21.978583552 +0000 +@@ -78,6 +78,8 @@ + return 'aix' + elif sys.platform.find('darwin') != -1: + return 'darwin' ++ elif sys.platform.find('haiku') != -1: ++ return 'haiku' + else: + return 'posix' + elif os.name == 'os2': +diff -Naur ./scons-2.2.0/engine/SCons/Platform/haiku.py ./scons-2.2.0-haiku/engine/SCons/Platform/haiku.py +--- ./scons-2.2.0/engine/SCons/Platform/haiku.py 1970-01-01 00:00:00.000000000 +0000 ++++ ./scons-2.2.0-haiku/engine/SCons/Platform/haiku.py 2012-09-30 13:30:07.109051904 +0000 +@@ -0,0 +1,54 @@ ++"""SCons.Platform.haiku ++ ++Platform-specific initialization for Haiku systems. ++ ++There normally shouldn't be any need to import this module directly. It ++will usually be imported through the generic SCons.Platform.Platform() ++selection method. ++""" ++ ++# ++# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 The SCons Foundation ++# ++# Permission is hereby granted, free of charge, to any person obtaining ++# a copy of this software and associated documentation files (the ++# "Software"), to deal in the Software without restriction, including ++# without limitation the rights to use, copy, modify, merge, publish, ++# distribute, sublicense, and/or sell copies of the Software, and to ++# permit persons to whom the Software is furnished to do so, subject to ++# the following conditions: ++# ++# The above copyright notice and this permission notice shall be included ++# in all copies or substantial portions of the Software. ++# ++# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY ++# KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE ++# WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND ++# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE ++# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION ++# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION ++# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ++# ++ ++__revision__ = "" ++ ++import posix ++import commands ++ ++def findDir( identifier ): ++ return commands.getoutput( 'finddir %s' % identifier ) ++ ++def generate(env): ++ posix.generate(env) ++ ++ # path list ++ listPath = [ '.' ] ++ listPath.append( '%s/bin' % findDir( 'B_USER_CONFIG_DIRECTORY' ) ) ++ listPath.append( findDir( 'B_COMMON_BIN_DIRECTORY' ) ) ++ listPath.append( findDir( 'B_SYSTEM_BIN_DIRECTORY' ) ) ++ listPath.append( findDir( 'B_BEOS_BIN_DIRECTORY' ) ) ++ listPath.append( '%s/tools/gnupro/bin' % findDir( 'B_COMMON_DEVELOP_DIRECTORY' ) ) ++ env['ENV']['PATH'] = ':'.join( listPath ) ++ ++ # help the linker find the startfiles ++ env['ENV']['BELIBRARIES'] = ':%s/lib/x86' % findDir( 'B_COMMON_DEVELOP_DIRECTORY' ) diff --git a/dev-util/scons/scons-2.0.1.bep b/dev-util/scons/scons-2.0.1.bep new file mode 100644 index 000000000..6ec4b1a5e --- /dev/null +++ b/dev-util/scons/scons-2.0.1.bep @@ -0,0 +1,28 @@ +DESCRIPTION="Open Source next-generation build tool." +HOMEPAGE="http://www.scons.org/" +LICENSE="MIT" +COPYRIGHT="2001-2010 The SCons Foundation" +SRC_URI="http://ovh.dl.sourceforge.net/sourceforge/scons/scons-2.0.1.tar.gz" +CHECKSUM_MD5="beca648b894cdbf85383fffc79516d18" +REVISION="2" +STATUS_HAIKU="stable" +DEPEND="dev-lang/python >= 2.5.4" +BUILD { + cd scons-2.0.1 + for f in "script/scons script/scons-time script/sconsign"; do + sed -i -e "s@#! /usr/bin/env python@#! /bin/env python@" $f + done + python setup.py build +} + +INSTALL { + if [ ! -z ${DESTDIR} ]; then + options="${options} --root=${DESTDIR}" + fi + options="${options} --prefix=`finddir B_COMMON_DIRECTORY`" + options="${options} --install-data=`finddir B_COMMON_DOCUMENTATION_DIRECTORY`" + options="${options} --symlink-scons" + options="${options} --standard-lib" + cd scons-2.0.1 + python setup.py install $options +} diff --git a/dev-util/scons/scons-2.2.0.bep b/dev-util/scons/scons-2.2.0.bep new file mode 100644 index 000000000..8ecad51b5 --- /dev/null +++ b/dev-util/scons/scons-2.2.0.bep @@ -0,0 +1,28 @@ +DESCRIPTION="Open Source next-generation build tool." +HOMEPAGE="http://www.scons.org/" +LICENSE="MIT" +COPYRIGHT="2001-2012 The SCons Foundation" +SRC_URI="http://superb-dca3.dl.sourceforge.net/project/scons/scons/2.2.0/scons-2.2.0.tar.gz" +CHECKSUM_MD5="f737f474a02d08156c821bd2d4d4b632" +REVISION="2" +STATUS_HAIKU="stable" +DEPEND="dev-lang/python >= 2.5.4" +BUILD { + cd scons-2.2.0 + for f in "script/scons script/scons-time script/sconsign"; do + sed -i -e "s@#! /usr/bin/env python@#! /bin/env python@" $f + done + python setup.py build +} + +INSTALL { + if [ ! -z ${DESTDIR} ]; then + options="${options} --root=${DESTDIR}" + fi + options="${options} --prefix=`finddir B_COMMON_DIRECTORY`" + options="${options} --install-data=`finddir B_COMMON_DOCUMENTATION_DIRECTORY`" + options="${options} --symlink-scons" + options="${options} --standard-lib" + cd scons-2.2.0 + python setup.py install $options +} diff --git a/dev-vcs/bzr/bzr-2.2.0.bep b/dev-vcs/bzr/bzr-2.2.0.bep index c3999cdba..d2019e4ec 100644 --- a/dev-vcs/bzr/bzr-2.2.0.bep +++ b/dev-vcs/bzr/bzr-2.2.0.bep @@ -1,6 +1,6 @@ -DESCRIPTION="Bazaar" -HOMEPAGE="https://launchpad.net/bzr/" -SRC_URI="http://launchpad.net/bzr/2.2/2.2.0/+download/bzr-2.2.0.tar.gz" +DESCRIPTION="Bazaar" +HOMEPAGE="https://launchpad.net/bzr/" +SRC_URI="http://launchpad.net/bzr/2.2/2.2.0/+download/bzr-2.2.0.tar.gz" CHECKSUM_MD5="e47fa50e1fedc01c4761925e9d0d39ac" REVISION="1" STATUS_HAIKU="stable" @@ -17,16 +17,19 @@ BUILD { INSTALL { cd bzr-2.2.0 + COMMON_DIR=`finddir B_COMMON_DIRECTORY` + COMMON_DOCS=`finddir B_COMMON_DOCUMENTATION_DIRECTORY` + if [ -n "$(setgcc | grep '2')" ]; then - python setup.py build_ext --allow-python-fallback install --prefix=`finddir B_COMMON_DIRECTORY` --root=${DESTDIR} + python setup.py build_ext --allow-python-fallback install --prefix=$COMMON_DIR --root=${DESTDIR} else - python setup.py install --prefix=`finddir B_COMMON_DIRECTORY` --root=${DESTDIR} + python setup.py install --prefix=$COMMON_DIR --root=${DESTDIR} fi ## Now put the man file(s) in the correct directory - mkdir -p ${DESTDIR}$(finddir B_COMMON_DOCUMENTATION_DIRECTORY)/man/man1 - mv ${DESTDIR}/$(finddir B_COMMON_DIRECTORY)/man/man1/bzr* ${DESTDIR}/$(finddir B_COMMON_DOCUMENTATION_DIRECTORY)/man/man1/ + mkdir -p ${DESTDIR}$COMMON_DOCS/man/man1 + mv ${DESTDIR}/$COMMON_DIR/man/man1/bzr* ${DESTDIR}/$COMMON_DOCS/man/man1/ if [ -e "${DESTDIR}" ]; then - rm -rf ${DESTDIR}/$(finddir B_COMMON_DIRECTORY)/man + rm -rf ${DESTDIR}/$COMMON_DIR/man fi } diff --git a/dev-vcs/bzr/bzr-2.5.1.bep b/dev-vcs/bzr/bzr-2.5.1.bep new file mode 100644 index 000000000..c13bb217c --- /dev/null +++ b/dev-vcs/bzr/bzr-2.5.1.bep @@ -0,0 +1,35 @@ +DESCRIPTION="Bazaar" +HOMEPAGE="https://launchpad.net/bzr/" +SRC_URI="http://launchpad.net/bzr/2.5/2.5.1/+download/bzr-2.5.1.tar.gz" +CHECKSUM_MD5="ac5079858364a046071000d5cdccb67b" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="" + +BUILD { + cd bzr-2.5.1 + if [ -n "$(setgcc | grep '2')" ]; then + python setup.py build_ext --allow-python-fallback + else + python setup.py build + fi +} + +INSTALL { + cd bzr-2.5.1 + if [ -n "$(setgcc | grep '2')" ]; then + python setup.py build_ext --allow-python-fallback install --prefix=`finddir B_COMMON_DIRECTORY` --root=${DESTDIR} + else + python setup.py install --prefix=`finddir B_COMMON_DIRECTORY` --root=${DESTDIR} + fi +## Now put the man file(s) in the correct directory + mkdir -p ${DESTDIR}$(finddir B_COMMON_DOCUMENTATION_DIRECTORY)/man/man1 + mv ${DESTDIR}/$(finddir B_COMMON_DIRECTORY)/man/man1/bzr* ${DESTDIR}/$(finddir B_COMMON_DOCUMENTATION_DIRECTORY)/man/man1/ + if [ -e "${DESTDIR}" ]; then + rm -rf ${DESTDIR}/$(finddir B_COMMON_DIRECTORY)/man + fi +} + +LICENSE="GNU GPL v2 + GNU GPL v3" +COPYRIGHT="2007-2012 The Bazaar Team" diff --git a/dev-vcs/bzr/bzr-2.6b1.bep b/dev-vcs/bzr/bzr-2.6b1.bep new file mode 100644 index 000000000..d7c6b572a --- /dev/null +++ b/dev-vcs/bzr/bzr-2.6b1.bep @@ -0,0 +1,35 @@ +DESCRIPTION="Bazaar" +HOMEPAGE="https://launchpad.net/bzr/" +SRC_URI="http://launchpad.net/bzr/2.6/2.6b1/+download/bzr-2.6b1.tar.gz" +CHECKSUM_MD5="d2319a1a793d47d8b02ca33298742ad7" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="" + +BUILD { + cd bzr-2.6b1 + if [ -n "$(setgcc | grep '2')" ]; then + python setup.py build_ext --allow-python-fallback + else + python setup.py build + fi +} + +INSTALL { + cd bzr-2.6b1 + if [ -n "$(setgcc | grep '2')" ]; then + python setup.py build_ext --allow-python-fallback install --prefix=`finddir B_COMMON_DIRECTORY` --root=${DESTDIR} + else + python setup.py install --prefix=`finddir B_COMMON_DIRECTORY` --root=${DESTDIR} + fi +## Now put the man file(s) in the correct directory + mkdir -p ${DESTDIR}$(finddir B_COMMON_DOCUMENTATION_DIRECTORY)/man/man1 + mv ${DESTDIR}/$(finddir B_COMMON_DIRECTORY)/man/man1/bzr* ${DESTDIR}/$(finddir B_COMMON_DOCUMENTATION_DIRECTORY)/man/man1/ + if [ -e "${DESTDIR}" ]; then + rm -rf ${DESTDIR}/$(finddir B_COMMON_DIRECTORY)/man + fi +} + +LICENSE="GNU GPL v2 + GNU GPL v3" +COPYRIGHT="2007-2012 The Bazaar Team" diff --git a/dev-vcs/cvs/cvs-1.12.13.bep b/dev-vcs/cvs/cvs-1.12.13.bep index 704e48c1e..2db43f73e 100644 --- a/dev-vcs/cvs/cvs-1.12.13.bep +++ b/dev-vcs/cvs/cvs-1.12.13.bep @@ -9,7 +9,12 @@ BUILD { cd cvs-1.12.13 libtoolize --force --copy --install autoconf - ./configure --prefix=/boot/common --enable-rootcommit EDITOR=nano + ./configure --prefix=`finddir B_COMMON_DIRECTORY` \ + --datarootdir=`finddir B_COMMON_DATA_DIRECTORY` \ + --infodir=`finddir B_COMMON_DOCUMENTATION_DIRECTORY`/info \ + --mandir=`finddir B_COMMON_DOCUMENTATION_DIRECTORY`/man \ + --enable-rootcommit \ + EDITOR=nano make } diff --git a/dev-vcs/cvs/patches/cvs-1.12.13.1.patch b/dev-vcs/cvs/patches/cvs-1.12.13.1.patch index f9c67a4a6..94eb64e2a 100644 --- a/dev-vcs/cvs/patches/cvs-1.12.13.1.patch +++ b/dev-vcs/cvs/patches/cvs-1.12.13.1.patch @@ -1,19 +1,7 @@ -diff -ur cvs-1.12.13.1/configure cvs-1.12.13.1-haiku/configure ---- cvs-1.12.13.1/configure 2006-07-07 15:31:08.000000000 -0600 -+++ cvs-1.12.13.1-haiku/configure 2009-11-24 15:37:33.000000000 -0700 -@@ -45920,7 +45920,7 @@ - return 0; - } - _ACEOF --for ac_lib in '' xnet socket inet; do -+for ac_lib in '' xnet network socket inet; do - if test -z "$ac_lib"; then - ac_res="none required" - else -diff -ur cvs-1.12.13.1/configure.in cvs-1.12.13.1-haiku/configure.in ---- cvs-1.12.13.1/configure.in 2006-06-29 09:13:10.000000000 -0600 -+++ cvs-1.12.13.1-haiku/configure.in 2009-11-24 15:37:33.000000000 -0700 -@@ -541,7 +541,7 @@ +diff -up cvs-1.12.13.1/configure.in.orig cvs-1.12.13.1/configure.in +--- cvs-1.12.13.1/configure.in.orig 2006-06-29 09:13:10.006815744 -0600 ++++ cvs-1.12.13.1/configure.in 2012-05-02 20:46:57.544735232 -0600 +@@ -541,7 +541,7 @@ CVS_FUNC_PRINTF_PTR # Try to find connect and gethostbyname. AC_CHECK_LIB(nsl, main) @@ -22,10 +10,58 @@ diff -ur cvs-1.12.13.1/configure.in cvs-1.12.13.1-haiku/configure.in AC_DEFINE(HAVE_CONNECT, 1, [Define if you have the connect function.])) dnl no need to search nsl for gethostbyname here since we should have -diff -ur cvs-1.12.13.1/src/cvs.h cvs-1.12.13.1-haiku/src/cvs.h ---- cvs-1.12.13.1/src/cvs.h 2006-04-25 14:01:47.000000000 -0600 -+++ cvs-1.12.13.1-haiku/src/cvs.h 2009-11-24 15:37:33.000000000 -0700 -@@ -181,8 +181,13 @@ +diff -up cvs-1.12.13.1/configure.orig cvs-1.12.13.1/configure +--- cvs-1.12.13.1/configure.orig 2006-07-07 15:31:08.010485760 -0600 ++++ cvs-1.12.13.1/configure 2012-05-02 20:56:54.292290560 -0600 +@@ -9566,7 +9566,7 @@ return getaddrinfo (); + return 0; + } + _ACEOF +-for ac_lib in '' nsl socket; do ++for ac_lib in '' nsl network socket; do + if test -z "$ac_lib"; then + ac_res="none required" + else +@@ -10083,7 +10083,7 @@ return getservbyname (); + return 0; + } + _ACEOF +-for ac_lib in '' inet nsl socket xnet; do ++for ac_lib in '' inet nsl network socket xnet; do + if test -z "$ac_lib"; then + ac_res="none required" + else +@@ -21471,7 +21471,7 @@ return getaddrinfo (); + return 0; + } + _ACEOF +-for ac_lib in '' nsl socket; do ++for ac_lib in '' nsl network socket; do + if test -z "$ac_lib"; then + ac_res="none required" + else +@@ -21988,7 +21988,7 @@ return getservbyname (); + return 0; + } + _ACEOF +-for ac_lib in '' inet nsl socket xnet; do ++for ac_lib in '' inet nsl network socket xnet; do + if test -z "$ac_lib"; then + ac_res="none required" + else +@@ -45920,7 +45920,7 @@ return connect (); + return 0; + } + _ACEOF +-for ac_lib in '' xnet socket inet; do ++for ac_lib in '' xnet network socket inet; do + if test -z "$ac_lib"; then + ac_res="none required" + else +diff -up cvs-1.12.13.1/src/cvs.h.orig cvs-1.12.13.1/src/cvs.h +--- cvs-1.12.13.1/src/cvs.h.orig 2006-04-25 14:01:47.044302336 -0600 ++++ cvs-1.12.13.1/src/cvs.h 2012-05-02 20:46:57.547356672 -0600 +@@ -181,8 +181,13 @@ char *strerror (int); #define CVSRFLPAT "#cvs.rfl.*" /* wildcard expr to match read locks */ #define CVSEXT_LOG ",t" #define CVSPREFIX ",," @@ -39,9 +75,9 @@ diff -ur cvs-1.12.13.1/src/cvs.h cvs-1.12.13.1-haiku/src/cvs.h /* Command attributes -- see function lookup_command_attribute(). */ #define CVS_CMD_IGNORE_ADMROOT 1 -diff -ur cvs-1.12.13.1/src/cvsrc.c cvs-1.12.13.1-haiku/src/cvsrc.c ---- cvs-1.12.13.1/src/cvsrc.c 2006-03-31 14:54:57.000000000 -0700 -+++ cvs-1.12.13.1-haiku/src/cvsrc.c 2009-11-24 15:37:33.000000000 -0700 +diff -up cvs-1.12.13.1/src/cvsrc.c.orig cvs-1.12.13.1/src/cvsrc.c +--- cvs-1.12.13.1/src/cvsrc.c.orig 2006-03-31 14:54:57.034603008 -0700 ++++ cvs-1.12.13.1/src/cvsrc.c 2012-05-02 20:46:57.549715968 -0600 @@ -20,7 +20,11 @@ /* this file is to be found in the user's home directory */ @@ -55,7 +91,7 @@ diff -ur cvs-1.12.13.1/src/cvsrc.c cvs-1.12.13.1-haiku/src/cvsrc.c #endif char cvsrc[] = CVSRC_FILENAME; -@@ -64,7 +68,7 @@ +@@ -64,7 +68,7 @@ read_cvsrc (int *argc, char ***argv, con /* determine filename for ~/.cvsrc */ @@ -64,9 +100,9 @@ diff -ur cvs-1.12.13.1/src/cvsrc.c cvs-1.12.13.1-haiku/src/cvsrc.c /* If we can't find a home directory, ignore ~/.cvsrc. This may make tracking down problems a bit of a pain, but on the other hand it might be obnoxious to complain when CVS will function -diff -ur cvs-1.12.13.1/src/filesubr.c cvs-1.12.13.1-haiku/src/filesubr.c ---- cvs-1.12.13.1/src/filesubr.c 2006-07-05 20:14:08.000000000 -0600 -+++ cvs-1.12.13.1-haiku/src/filesubr.c 2009-11-24 15:51:02.000000000 -0700 +diff -up cvs-1.12.13.1/src/filesubr.c.orig cvs-1.12.13.1/src/filesubr.c +--- cvs-1.12.13.1/src/filesubr.c.orig 2006-07-05 20:14:08.035913728 -0600 ++++ cvs-1.12.13.1/src/filesubr.c 2012-05-02 20:46:57.553385984 -0600 @@ -32,6 +32,11 @@ /* CVS */ #include "cvs.h" @@ -79,7 +115,7 @@ diff -ur cvs-1.12.13.1/src/filesubr.c cvs-1.12.13.1-haiku/src/filesubr.c static int deep_remove_dir (const char *path); -@@ -859,6 +864,36 @@ +@@ -859,6 +864,36 @@ get_homedir (void) return home; } @@ -116,10 +152,10 @@ diff -ur cvs-1.12.13.1/src/filesubr.c cvs-1.12.13.1-haiku/src/filesubr.c /* Compose a path to a file in the home directory. This is necessary because * of different behavior on UNIX and VMS. See the notes in vms/filesubr.c. * -diff -ur cvs-1.12.13.1/src/filesubr.h cvs-1.12.13.1-haiku/src/filesubr.h ---- cvs-1.12.13.1/src/filesubr.h 2006-07-05 20:14:08.000000000 -0600 -+++ cvs-1.12.13.1-haiku/src/filesubr.h 2009-11-24 15:37:33.000000000 -0700 -@@ -33,6 +33,7 @@ +diff -up cvs-1.12.13.1/src/filesubr.h.orig cvs-1.12.13.1/src/filesubr.h +--- cvs-1.12.13.1/src/filesubr.h.orig 2006-07-05 20:14:08.035913728 -0600 ++++ cvs-1.12.13.1/src/filesubr.h 2012-05-02 20:46:57.554696704 -0600 +@@ -33,6 +33,7 @@ bool isreadable (const char *file); bool iswritable (const char *file); bool isaccessible (const char *file, const int mode); char *get_homedir (void); @@ -127,10 +163,10 @@ diff -ur cvs-1.12.13.1/src/filesubr.h cvs-1.12.13.1-haiku/src/filesubr.h char *strcat_filename_onto_homedir (const char *, const char *); char *cvs_temp_name (void); FILE *cvs_temp_file (char **filename); -diff -ur cvs-1.12.13.1/src/history.c cvs-1.12.13.1-haiku/src/history.c ---- cvs-1.12.13.1/src/history.c 2006-06-09 15:28:17.000000000 -0600 -+++ cvs-1.12.13.1-haiku/src/history.c 2009-11-24 15:37:33.000000000 -0700 -@@ -807,7 +807,7 @@ +diff -up cvs-1.12.13.1/src/history.c.orig cvs-1.12.13.1/src/history.c +--- cvs-1.12.13.1/src/history.c.orig 2006-06-09 15:28:17.036700160 -0600 ++++ cvs-1.12.13.1/src/history.c 2012-05-02 20:46:57.558891008 -0600 +@@ -807,7 +807,7 @@ history_write (int type, const char *upd { char *pwdir; @@ -139,10 +175,10 @@ diff -ur cvs-1.12.13.1/src/history.c cvs-1.12.13.1-haiku/src/history.c PrCurDir = CurDir; if (pwdir != NULL) { -diff -ur cvs-1.12.13.1/src/ignore.c cvs-1.12.13.1-haiku/src/ignore.c ---- cvs-1.12.13.1/src/ignore.c 2006-04-24 12:50:26.000000000 -0600 -+++ cvs-1.12.13.1-haiku/src/ignore.c 2009-11-24 15:37:33.000000000 -0700 -@@ -98,7 +98,7 @@ +diff -up cvs-1.12.13.1/src/ignore.c.orig cvs-1.12.13.1/src/ignore.c +--- cvs-1.12.13.1/src/ignore.c.orig 2006-04-24 12:50:26.036700160 -0600 ++++ cvs-1.12.13.1/src/ignore.c 2012-05-02 20:46:57.561512448 -0600 +@@ -98,7 +98,7 @@ ign_setup (void) } /* Then add entries found in home dir, (if user has one) and file exists */ @@ -151,9 +187,9 @@ diff -ur cvs-1.12.13.1/src/ignore.c cvs-1.12.13.1-haiku/src/ignore.c /* If we can't find a home directory, ignore ~/.cvsignore. This may make tracking down problems a bit of a pain, but on the other hand it might be obnoxious to complain when CVS will function -diff -ur cvs-1.12.13.1/src/login.c cvs-1.12.13.1-haiku/src/login.c ---- cvs-1.12.13.1/src/login.c 2006-06-28 08:25:26.000000000 -0600 -+++ cvs-1.12.13.1-haiku/src/login.c 2009-11-24 15:37:33.000000000 -0700 +diff -up cvs-1.12.13.1/src/login.c.orig cvs-1.12.13.1/src/login.c +--- cvs-1.12.13.1/src/login.c.orig 2006-06-28 08:25:26.037748736 -0600 ++++ cvs-1.12.13.1/src/login.c 2012-05-02 20:46:57.563871744 -0600 @@ -28,7 +28,11 @@ @@ -167,7 +203,7 @@ diff -ur cvs-1.12.13.1/src/login.c cvs-1.12.13.1-haiku/src/login.c #endif /* If non-NULL, get_cvs_password() will just return this. */ -@@ -49,7 +53,7 @@ +@@ -49,7 +53,7 @@ construct_cvspass_filename (void) /* Construct absolute pathname to user's password file. */ /* todo: does this work under OS/2 ? */ @@ -176,10 +212,10 @@ diff -ur cvs-1.12.13.1/src/login.c cvs-1.12.13.1-haiku/src/login.c if (! homedir) { /* FIXME? This message confuses a lot of users, at least -diff -ur cvs-1.12.13.1/src/wrapper.c cvs-1.12.13.1-haiku/src/wrapper.c ---- cvs-1.12.13.1/src/wrapper.c 2006-04-24 12:50:27.000000000 -0600 -+++ cvs-1.12.13.1-haiku/src/wrapper.c 2009-11-24 15:37:33.000000000 -0700 -@@ -125,7 +125,7 @@ +diff -up cvs-1.12.13.1/src/wrapper.c.orig cvs-1.12.13.1/src/wrapper.c +--- cvs-1.12.13.1/src/wrapper.c.orig 2006-04-24 12:50:27.043778048 -0600 ++++ cvs-1.12.13.1/src/wrapper.c 2012-05-02 20:46:57.566493184 -0600 +@@ -125,7 +125,7 @@ void wrap_setup(void) /* Then add entries found in home dir, (if user has one) and file exists. */ diff --git a/dev-vcs/fossil/fossil-1.22-fossil.bep b/dev-vcs/fossil/fossil-1.22-fossil.bep new file mode 100644 index 000000000..5096cb997 --- /dev/null +++ b/dev-vcs/fossil/fossil-1.22-fossil.bep @@ -0,0 +1,23 @@ +DESCRIPTION="Simple, high-reliability, distributed software configuration management" +HOMEPAGE="http://www.fossil-scm.org/" +SRC_URI="fossil+http://www.fossil-scm.org/" +#CHECKSUM_MD5="" +REVISION="3" +STATUS_HAIKU="stable" +DEPEND="" + +BUILD { + ./configure --prefix=`finddir B_COMMON_DIRECTORY` + make +} + +INSTALL { + make install +} + +TEST { + make test +} + +LICENSE="BSD (2-clause)" +COPYRIGHT="2007 D. Richard Hipp" diff --git a/dev-vcs/fossil/fossil-1.22.bep b/dev-vcs/fossil/fossil-1.22.bep new file mode 100644 index 000000000..2faffcee5 --- /dev/null +++ b/dev-vcs/fossil/fossil-1.22.bep @@ -0,0 +1,26 @@ +DESCRIPTION="Simple, high-reliability, distributed software configuration management" +HOMEPAGE="http://www.fossil-scm.org/" +SRC_URI="http://www.fossil-scm.org/download/fossil-src-20120317175325.tar.gz" +CHECKSUM_MD5="a7106450722e8477972d230fa535702f" +REVISION="3" +STATUS_HAIKU="stable" +DEPEND="" + +BUILD { + cd fossil-src-20120317175325 + ./configure --prefix=`finddir B_COMMON_DIRECTORY` + make +} + +INSTALL { + cd fossil-src-20120317175325 + make install +} + +TEST { + cd fossil-src-20120317175325 + make test +} + +LICENSE="BSD (2-clause)" +COPYRIGHT="2007 D. Richard Hipp" diff --git a/dev-vcs/fossil/patches/fossil-1.22.patch b/dev-vcs/fossil/patches/fossil-1.22.patch new file mode 100644 index 000000000..c0e765c57 --- /dev/null +++ b/dev-vcs/fossil/patches/fossil-1.22.patch @@ -0,0 +1,20 @@ +--- fossil-src-20120317175325/src/main.c.org 2012-04-21 05:23:25.719847424 +0200 ++++ fossil-src-20120317175325/src/main.c 2012-04-21 05:24:46.773062656 +0200 +@@ -1625,7 +1625,7 @@ + } + + #if !defined(_WIN32) +-#if !defined(__DARWIN__) && !defined(__APPLE__) ++#if !defined(__DARWIN__) && !defined(__APPLE__) && !defined(__HAIKU__) + /* + ** Search for an executable on the PATH environment variable. + ** Return true (1) if found and false (0) if not found. +@@ -1721,7 +1721,7 @@ + #if !defined(_WIN32) + /* Unix implementation */ + if( isUiCmd ){ +-#if !defined(__DARWIN__) && !defined(__APPLE__) ++#if !defined(__DARWIN__) && !defined(__APPLE__) && !defined(__HAIKU__) + zBrowser = db_get("web-browser", 0); + if( zBrowser==0 ){ + static char *azBrowserProg[] = { "xdg-open", "gnome-open", "firefox" }; diff --git a/dev-vcs/git/git-1.6.5.3.bep b/dev-vcs/git/git-1.6.5.3.bep deleted file mode 100644 index 53a818c0f..000000000 --- a/dev-vcs/git/git-1.6.5.3.bep +++ /dev/null @@ -1,39 +0,0 @@ -DESCRIPTION="git a fast version control system" -HOMEPAGE="http://git-scm.com/" -SRC_URI="http://kernel.org/pub/software/scm/git/git-1.6.5.3.tar.bz2" -CHECKSUM_MD5="a1dbc3da46cbf33c4367db689853c142" -REVISION="1" -STATUS_HAIKU="broken" -DEPEND="" -BUILD { - cd git-1.6.5.3 - libtoolize --force --copy --install - aclocal - autoconf - ./configure --prefix=/boot/common --enable-pthreads="" - make prefix=/boot/common NO_R_TO_GCC_LINKER=YesPlease \ - NO_C99_FORMAT=YesPlease \ - NO_ST_BLOCKS_IN_STRUCT_STAT=YesPlease \ - NO_MEMMEM=YesPlease NO_MKSTEMPS=YesPlease \ - NO_MKDTEMP=YesPlease NO_IPV6=YesPlease \ - NO_TCLTK=YesPlease CURLDIR=/boot/common \ - PERL_PATH=/boot/common/bin/perl \ - CFLAGS="-g -O2 -I/boot/common/include" \ - LIBS="" \ - LDFLAGS="-L/boot/common/lib -lnetwork -lbsd -liconv" \ - strip -} - -INSTALL { - cd git-1.6.5.3 - make install prefix=/boot/common NO_R_TO_GCC_LINKER=YesPlease \ - NO_C99_FORMAT=YesPlease NO_ST_BLOCKS_IN_STRUCT_STAT=YesPlease \ - NO_MEMMEM=YesPlease NO_MKSTEMPS=YesPlease \ - NO_MKDTEMP=YesPlease NO_IPV6=YesPlease NO_TCLTK=YesPlease \ - CURLDIR=/boot/common PERL_PATH=/boot/common/bin/perl \ - CFLAGS="-g -O2 -I/boot/common/include" \ - LIBS="" \ - LDFLAGS="-L/boot/common/lib -lnetwork -lbsd -liconv" \ - strip -} -LICENSE="GNU GPL v2" diff --git a/dev-vcs/git/git-1.7.0.1.bep b/dev-vcs/git/git-1.7.0.1.bep deleted file mode 100644 index e4a7d25d2..000000000 --- a/dev-vcs/git/git-1.7.0.1.bep +++ /dev/null @@ -1,49 +0,0 @@ -DESCRIPTION="git a fast version control system" -HOMEPAGE="http://git-scm.com/" -SRC_URI="http://kernel.org/pub/software/scm/git/git-1.7.0.1.tar.gz" -CHECKSUM_MD5="05485caf5c503ce378a87759bc3a0509" -REVISION="1" -STATUS_HAIKU="broken" -DEPEND="" -BUILD { - cd git-1.7.0.1 -# libtoolize --force --copy --install -# aclocal -# autoconf - ./configure --prefix=/boot/common --enable-pthreads="" - make prefix=/boot/common \ - NO_R_TO_GCC_LINKER=YesPlease \ - NO_C99_FORMAT=YesPlease \ - NO_ST_BLOCKS_IN_STRUCT_STAT=YesPlease \ - NO_MEMMEM=YesPlease \ - NO_MKSTEMPS=YesPlease \ - NO_MKDTEMP=YesPlease \ - NO_IPV6=YesPlease \ - NO_TCLTK=YesPlease \ - CURLDIR=/boot/common \ - PERL_PATH=/boot/common/bin/perl \ - CFLAGS="-g -O2 -I/boot/common/include" \ - LIBS="" \ - LDFLAGS="-L/boot/common/lib -lnetwork -lbsd -liconv" \ - strip -} - -INSTALL { - cd git-1.7.0.1 - make install prefix=/boot/common \ - NO_R_TO_GCC_LINKER=YesPlease \ - NO_C99_FORMAT=YesPlease \ - NO_ST_BLOCKS_IN_STRUCT_STAT=YesPlease \ - NO_MEMMEM=YesPlease \ - NO_MKSTEMPS=YesPlease \ - NO_MKDTEMP=YesPlease \ - NO_IPV6=YesPlease \ - NO_TCLTK=YesPlease \ - CURLDIR=/boot/common \ - PERL_PATH=/boot/common/bin/perl \ - CFLAGS="-g -O2 -I/boot/common/include" \ - LIBS="" \ - LDFLAGS="-L/boot/common/lib -lnetwork -lbsd -liconv" \ - strip -} -LICENSE="GNU GPL v2" diff --git a/dev-vcs/git/git-1.7.0.4.bep b/dev-vcs/git/git-1.7.0.4.bep deleted file mode 100644 index 26c90e674..000000000 --- a/dev-vcs/git/git-1.7.0.4.bep +++ /dev/null @@ -1,21 +0,0 @@ -DESCRIPTION="git a fast version control system" -HOMEPAGE="http://git-scm.com/" -SRC_URI="http://kernel.org/pub/software/scm/git/git-1.7.0.4.tar.bz2" -CHECKSUM_MD5="1cc8b2aea57e5e999ccac18ae355f760" -REVISION="1" -STATUS_HAIKU="stable" -DEPEND="" -BUILD { - cd git-1.7.0.4 - autoconf - CFLAGS="-I/boot/common/include" LDFLAGS="-L/boot/common/lib -L/boot/system/lib -lbsd -lnetwork" \ - ./configure --prefix=/boot/common --with-editor=nano --enable-pthreads="-lroot" \ - --with-perl=/boot/common/bin/perl --with-python=/boot/common/bin/python --without-tcltk - make strip -} - -INSTALL { - cd git-1.7.0.4 - make install -} -LICENSE="GNU GPL v2" diff --git a/dev-vcs/git/git-1.7.0.5.bep b/dev-vcs/git/git-1.7.0.5.bep deleted file mode 100644 index 7c8141dd0..000000000 --- a/dev-vcs/git/git-1.7.0.5.bep +++ /dev/null @@ -1,21 +0,0 @@ -DESCRIPTION="git a fast version control system" -HOMEPAGE="http://git-scm.com/" -SRC_URI="http://kernel.org/pub/software/scm/git/git-1.7.0.5.tar.bz2" -CHECKSUM_MD5="77d50f41ef282752dc69d9a47765f5c7" -REVISION="1" -STATUS_HAIKU="stable" -DEPEND="" -BUILD { - cd git-1.7.0.5 - autoconf - CFLAGS="-I/boot/common/include" LDFLAGS="-L/boot/common/lib -L/boot/system/lib -lbsd -lnetwork" \ - ./configure --prefix=/boot/common --with-editor=nano --enable-pthreads="-lroot" \ - --with-perl=/boot/common/bin/perl --with-python=/boot/common/bin/python --without-tcltk - make strip -} - -INSTALL { - cd git-1.7.0.5 - make install -} -LICENSE="GNU GPL v2" diff --git a/dev-vcs/git/git-1.7.1.bep b/dev-vcs/git/git-1.7.1.bep deleted file mode 100644 index 546588724..000000000 --- a/dev-vcs/git/git-1.7.1.bep +++ /dev/null @@ -1,22 +0,0 @@ -DESCRIPTION="git a fast version control system" -HOMEPAGE="http://git-scm.com/" -SRC_URI="http://kernel.org/pub/software/scm/git/git-1.7.1.tar.bz2" -CHECKSUM_MD5="3da231dbe82ad103373cb530ae7475d5" -REVISION="1" -STATUS_HAIKU="stable" -DEPEND="net-misc/curl >= 7.20.0 - dev-lang/perl >= 5.10.1" -BUILD { - cd git-1.7.1 - autoconf - CFLAGS="-I/boot/common/include" LDFLAGS="-L/boot/common/lib -L/boot/system/lib -lbsd -lnetwork" \ - ./configure --prefix=/boot/common --with-editor=nano --enable-pthreads="-lroot" \ - --with-perl=/boot/common/bin/perl --with-python=/boot/common/bin/python --without-tcltk - make strip -} - -INSTALL { - cd git-1.7.1 - make install -} -LICENSE="GNU GPL v2" diff --git a/dev-vcs/git/git-1.7.10.2.bep b/dev-vcs/git/git-1.7.10.2.bep new file mode 100644 index 000000000..16648b18e --- /dev/null +++ b/dev-vcs/git/git-1.7.10.2.bep @@ -0,0 +1,26 @@ +DESCRIPTION="git a fast version control system" +HOMEPAGE="http://git-scm.com/" +SRC_URI="http://git-core.googlecode.com/files/git-1.7.10.2.tar.gz" +CHECKSUM_MD5="2e2ee53243ab8e7cf10f15c5229c3fce" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="net-misc/curl >= 7.20.0 + dev-lang/perl >= 5.10.1 + dev-vcs/gitdoc == 1.7.10" +BUILD { + cd git-1.7.10.2 + make strip +} + +INSTALL { + cd git-1.7.10.2 + make install +} + +TEST { + cd git-1.7.10.2 + make check +} + +LICENSE="GNU GPL v2" +COPYRIGHT="2005-2012 Git Authors (see git web site for list)" diff --git a/dev-vcs/git/git-1.7.11.3.bep b/dev-vcs/git/git-1.7.11.3.bep new file mode 100644 index 000000000..b7eb17c0a --- /dev/null +++ b/dev-vcs/git/git-1.7.11.3.bep @@ -0,0 +1,26 @@ +DESCRIPTION="git a fast version control system" +HOMEPAGE="http://git-scm.com/" +SRC_URI="http://git-core.googlecode.com/files/git-1.7.11.3.tar.gz" +CHECKSUM_MD5="23caacd9f3f421b6c05b40796df3505d" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="net-misc/curl >= 7.20.0 + dev-lang/perl >= 5.10.1 + dev-vcs/gitdoc == 1.7.11.3" +BUILD { + cd git-1.7.11.3 + make strip +} + +INSTALL { + cd git-1.7.11.3 + make install +} + +TEST { + cd git-1.7.11.3 + make check +} + +LICENSE="GNU GPL v2" +COPYRIGHT="2005-2012 Git Authors (see git web site for list)" diff --git a/dev-vcs/git/git-1.7.3.1.bep b/dev-vcs/git/git-1.7.3.1.bep deleted file mode 100644 index 69550c83c..000000000 --- a/dev-vcs/git/git-1.7.3.1.bep +++ /dev/null @@ -1,22 +0,0 @@ -DESCRIPTION="git a fast version control system" -HOMEPAGE="http://git-scm.com/" -SRC_URI="http://kernel.org/pub/software/scm/git/git-1.7.3.1.tar.bz2" -CHECKSUM_MD5="77e1611498919965fb65fd1f229ee155" -REVISION="1" -STATUS_HAIKU="stable" -DEPEND="net-misc/curl >= 7.20.0 - dev-lang/perl >= 5.10.1" -BUILD { - cd git-1.7.3.1 - autoconf - CFLAGS="-I/boot/common/include" LDFLAGS="-L/boot/common/lib -L/boot/system/lib -lbsd -lnetwork" \ - ./configure --prefix=/boot/common --with-editor=nano --enable-pthreads="-lroot" \ - --with-perl=/boot/common/bin/perl --with-python=/boot/common/bin/python --without-tcltk - make strip -} - -INSTALL { - cd git-1.7.3.1 - make install -} -LICENSE="GNU GPL v2" diff --git a/dev-vcs/git/git-1.7.3.5.bep b/dev-vcs/git/git-1.7.3.5.bep deleted file mode 100644 index 492d77acb..000000000 --- a/dev-vcs/git/git-1.7.3.5.bep +++ /dev/null @@ -1,26 +0,0 @@ -DESCRIPTION="git a fast version control system" -HOMEPAGE="http://git-scm.com/" -SRC_URI="http://kernel.org/pub/software/scm/git/git-1.7.3.5.tar.bz2" -CHECKSUM_MD5="8a8cd93b8a4dff0a03c0fdc77253af3e" -REVISION="1" -STATUS_HAIKU="stable" -DEPEND="net-misc/curl >= 7.20.0 - dev-lang/perl >= 5.10.1" -BUILD { - cd git-1.7.3.5 - autoconf - sed -i 's/lgen/ /' configure - sed -i 's/-lgen/ /' Makefile - CFLAGS="-I/boot/common/include" LDFLAGS="-L/boot/common/lib -L/boot/system/lib -lbsd -lnetwork" \ - ./configure --prefix=/boot/common --with-editor=nano --enable-pthreads \ - --with-perl=/boot/common/bin/perl --with-python=/boot/common/bin/python --without-tcltk - make strip -} - -INSTALL { - cd git-1.7.3.5 - make install -} - -LICENSE="GNU GPL v2" -COPYRIGHT="2005-2011 Git Authors (see git web site for list)" diff --git a/dev-vcs/git/git-1.8.0.bep b/dev-vcs/git/git-1.8.0.bep new file mode 100644 index 000000000..7f984a813 --- /dev/null +++ b/dev-vcs/git/git-1.8.0.bep @@ -0,0 +1,26 @@ +DESCRIPTION="git a fast version control system" +HOMEPAGE="http://git-scm.com/" +SRC_URI="http://git-core.googlecode.com/files/git-1.8.0.tar.gz" +CHECKSUM_MD5="12f4d20f34ae37086d86dd3b9d037bba" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="net-misc/curl >= 7.20.0 + dev-lang/perl >= 5.10.1 + dev-vcs/gitdoc == 1.8.0" +BUILD { + cd git-1.8.0 + make strip +} + +INSTALL { + cd git-1.8.0 + make install +} + +TEST { + cd git-1.8.0 + make check +} + +LICENSE="GNU GPL v2" +COPYRIGHT="2005-2012 Git Authors (see git web site for list)" diff --git a/dev-vcs/git/git-1.8.1.3.bep b/dev-vcs/git/git-1.8.1.3.bep new file mode 100644 index 000000000..ba37b6fe3 --- /dev/null +++ b/dev-vcs/git/git-1.8.1.3.bep @@ -0,0 +1,26 @@ +DESCRIPTION="git a fast version control system" +HOMEPAGE="http://git-scm.com/" +SRC_URI="http://git-core.googlecode.com/files/git-1.8.1.3.tar.gz" +CHECKSUM_MD5="05fb5ea3792a51cef2becc8d06ea9b87" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="net-misc/curl >= 7.20.0 + dev-lang/perl >= 5.10.1 + dev-vcs/gitdoc == 1.8.0" +BUILD { + cd git-1.8.1.3 + make strip +} + +INSTALL { + cd git-1.8.1.3 + make install +} + +TEST { + cd git-1.8.1.3 + make check +} + +LICENSE="GNU GPL v2" +COPYRIGHT="2005-2013 Git Authors (see git web site for list)" diff --git a/dev-vcs/git/patches/git-1.5.5.diff b/dev-vcs/git/patches/git-1.5.5.diff deleted file mode 100644 index 213279c18..000000000 --- a/dev-vcs/git/patches/git-1.5.5.diff +++ /dev/null @@ -1,54 +0,0 @@ ---- git-1.5.5/Makefile 2008-04-08 07:10:01.000000000 +0000 -+++ git-1.5.5.patched/Makefile 2008-04-19 00:20:29.000000000 +0000 -@@ -989,7 +989,7 @@ - '-DGIT_INFO_PATH="$(infodir_SQ)"' $< - - $(BUILT_INS): git$X -- $(QUIET_BUILT_IN)$(RM) $@ && ln git$X $@ -+ $(QUIET_BUILT_IN)$(RM) $@ && ln -s git$X $@ - - common-cmds.h: ./generate-cmdlist.sh command-list.txt - -@@ -1230,7 +1230,7 @@ - cp '$(DESTDIR_SQ)$(bindir_SQ)/git$X' \ - '$(DESTDIR_SQ)$(gitexecdir_SQ)/git$X'; \ - fi -- $(foreach p,$(BUILT_INS), $(RM) '$(DESTDIR_SQ)$(gitexecdir_SQ)/$p' && ln '$(DESTDIR_SQ)$(gitexecdir_SQ)/git$X' '$(DESTDIR_SQ)$(gitexecdir_SQ)/$p' ;) -+ $(foreach p,$(BUILT_INS), $(RM) '$(DESTDIR_SQ)$(gitexecdir_SQ)/$p' && ln -s '$(DESTDIR_SQ)$(gitexecdir_SQ)/git$X' '$(DESTDIR_SQ)$(gitexecdir_SQ)/$p' ;) - ifneq (,$X) - $(foreach p,$(patsubst %$X,%,$(filter %$X,$(ALL_PROGRAMS) $(BUILT_INS) git$X)), $(RM) '$(DESTDIR_SQ)$(gitexecdir_SQ)/$p';) - endif ---- git-1.5.5/git-compat-util.h 2008-04-08 07:10:01.000000000 +0000 -+++ git-1.5.5.patched/git-compat-util.h 2008-04-18 22:15:48.000000000 +0000 -@@ -453,4 +453,8 @@ - # define FORCE_DIR_SET_GID 0 - #endif - -+#ifndef INET_ADDRSTRLEN -+#define INET_ADDRSTRLEN 16 -+#endif -+ - #endif ---- git-1.5.5/builtin-count-objects.c 2008-04-08 07:10:01.000000000 +0000 -+++ git-1.5.5.patched/builtin-count-objects.c 2008-04-19 00:32:05.000000000 +0000 -@@ -43,7 +43,8 @@ - if (lstat(path, &st) || !S_ISREG(st.st_mode)) - bad = 1; - else -- (*loose_size) += xsize_t(st.st_blocks); -+// (*loose_size) += xsize_t(st.st_blocks); -+ (*loose_size) += ceil(st.st_size / 512.0); - } - if (bad) { - if (verbose) { ---- git-1.5.5/templates/Makefile 2008-04-08 07:10:01.000000000 +0000 -+++ git-1.5.5.patched/templates/Makefile 2008-04-19 00:44:46.000000000 +0000 -@@ -23,7 +23,7 @@ - - bpsrc = $(filter-out %~,$(wildcard *--*)) - boilerplates.made : $(bpsrc) -- $(QUIET)ls *--* 2>/dev/null | \ -+ $(QUIET)ls -1 *--* 2>/dev/null | \ - while read boilerplate; \ - do \ - case "$$boilerplate" in *~) continue ;; esac && \ diff --git a/dev-vcs/git/patches/git-1.7.0.4.patch b/dev-vcs/git/patches/git-1.7.0.4.patch deleted file mode 100644 index 68e66a2d4..000000000 --- a/dev-vcs/git/patches/git-1.7.0.4.patch +++ /dev/null @@ -1,25 +0,0 @@ -diff -up git-1.7.0.4/configure.ac.orig git-1.7.0.4/configure.ac ---- git-1.7.0.4/configure.ac.orig 2010-04-03 18:57:28.303824896 -0600 -+++ git-1.7.0.4/configure.ac 2010-04-03 18:59:05.954990592 -0600 -@@ -527,17 +527,13 @@ test -n "$NEEDS_SOCKET" && LIBS="$LIBS - - # Define NEEDS_RESOLV if linking with -lnsl and/or -lsocket is not enough. - # Notably on Solaris hstrerror resides in libresolv and on Solaris 7 - # inet_ntop and inet_pton additionally reside there. --AC_CHECK_LIB([c], [hstrerror], --[NEEDS_RESOLV=], --[NEEDS_RESOLV=YesPlease]) -+AC_SEARCH_LIBS([hstrerror], [resolv], -+[AC_DEFINE([NEEDS_RESOLV], [YesPlease])]) - AC_SUBST(NEEDS_RESOLV) --test -n "$NEEDS_RESOLV" && LIBS="$LIBS -lresolv" - --AC_CHECK_LIB([c], [basename], --[NEEDS_LIBGEN=], --[NEEDS_LIBGEN=YesPlease]) -+AC_SEARCH_LIBS([basename], [gen], -+[AC_DEFINE([NEEDS_LIBGEN], [YesPlease])]) - AC_SUBST(NEEDS_LIBGEN) --test -n "$NEEDS_LIBGEN" && LIBS="$LIBS -lgen" - - ## Checks for header files. - AC_MSG_NOTICE([CHECKS for header files]) diff --git a/dev-vcs/git/patches/git-1.7.0.5.patch b/dev-vcs/git/patches/git-1.7.0.5.patch deleted file mode 100644 index 8770e4cde..000000000 --- a/dev-vcs/git/patches/git-1.7.0.5.patch +++ /dev/null @@ -1,25 +0,0 @@ -diff -up git-1.7.0.5/configure.ac.orig git-1.7.0.4/configure.ac ---- git-1.7.0.5/configure.ac.orig 2010-04-03 18:57:28.303824896 -0600 -+++ git-1.7.0.5/configure.ac 2010-04-03 18:59:05.954990592 -0600 -@@ -527,17 +527,13 @@ test -n "$NEEDS_SOCKET" && LIBS="$LIBS - - # Define NEEDS_RESOLV if linking with -lnsl and/or -lsocket is not enough. - # Notably on Solaris hstrerror resides in libresolv and on Solaris 7 - # inet_ntop and inet_pton additionally reside there. --AC_CHECK_LIB([c], [hstrerror], --[NEEDS_RESOLV=], --[NEEDS_RESOLV=YesPlease]) -+AC_SEARCH_LIBS([hstrerror], [resolv], -+[AC_DEFINE([NEEDS_RESOLV], [YesPlease])]) - AC_SUBST(NEEDS_RESOLV) --test -n "$NEEDS_RESOLV" && LIBS="$LIBS -lresolv" - --AC_CHECK_LIB([c], [basename], --[NEEDS_LIBGEN=], --[NEEDS_LIBGEN=YesPlease]) -+AC_SEARCH_LIBS([basename], [gen], -+[AC_DEFINE([NEEDS_LIBGEN], [YesPlease])]) - AC_SUBST(NEEDS_LIBGEN) --test -n "$NEEDS_LIBGEN" && LIBS="$LIBS -lgen" - - ## Checks for header files. - AC_MSG_NOTICE([CHECKS for header files]) diff --git a/dev-vcs/git/patches/git-1.7.1.patch b/dev-vcs/git/patches/git-1.7.1.patch deleted file mode 100644 index 5ef8295ad..000000000 --- a/dev-vcs/git/patches/git-1.7.1.patch +++ /dev/null @@ -1,25 +0,0 @@ -diff -up git-1.7.1/configure.ac.orig git-1.7.1/configure.ac ---- git-1.7.1/configure.ac.orig 2010-04-23 20:38:35.035127296 -0600 -+++ git-1.7.1/configure.ac 2010-05-13 18:03:30.180355072 -0600 -@@ -547,17 +547,13 @@ test -n "$NEEDS_SOCKET" && LIBS="$LIBS - - # Define NEEDS_RESOLV if linking with -lnsl and/or -lsocket is not enough. - # Notably on Solaris hstrerror resides in libresolv and on Solaris 7 - # inet_ntop and inet_pton additionally reside there. --AC_CHECK_LIB([c], [hstrerror], --[NEEDS_RESOLV=], --[NEEDS_RESOLV=YesPlease]) -+AC_SEARCH_LIBS([hstrerror], [resolv], -+[AC_DEFINE([NEEDS_RESOLV], [YesPlease])]) - AC_SUBST(NEEDS_RESOLV) --test -n "$NEEDS_RESOLV" && LIBS="$LIBS -lresolv" - --AC_CHECK_LIB([c], [basename], --[NEEDS_LIBGEN=], --[NEEDS_LIBGEN=YesPlease]) -+AC_SEARCH_LIBS([basename], [gen], -+[AC_DEFINE([NEEDS_LIBGEN], [YesPlease])]) - AC_SUBST(NEEDS_LIBGEN) --test -n "$NEEDS_LIBGEN" && LIBS="$LIBS -lgen" - - ## Checks for header files. - AC_MSG_NOTICE([CHECKS for header files]) diff --git a/dev-vcs/git/patches/git-1.7.10.2.patch b/dev-vcs/git/patches/git-1.7.10.2.patch new file mode 100644 index 000000000..36c719f64 --- /dev/null +++ b/dev-vcs/git/patches/git-1.7.10.2.patch @@ -0,0 +1,47 @@ +diff -up git-1.7.10.2/Makefile.orig git-1.7.10.2/Makefile +--- git-1.7.10.2/Makefile.orig 2012-05-11 14:25:45.066322432 -0600 ++++ git-1.7.10.2/Makefile 2012-05-19 12:53:42.392429568 -0600 +@@ -1242,6 +1242,31 @@ ifeq ($(uname_S),Minix) + NO_CURL = + NO_EXPAT = + endif ++ifeq ($(uname_S),Haiku) ++ NO_LIBGEN_H = YesPlease ++ NO_MEMMEM = YesPlease ++ NO_MKSTEMPS = YesPlease ++ NEEDS_LIBICONV = YesPlease ++ PERL_PATH = perl ++ PYTHON_PATH = python ++# TCL_PATH = tclsh ++ mandir = /boot/common/documentation/man ++ infodir = /boot/common/documentation/info ++ htmldir = /boot/common/documentation/doc/git-1.7.10.2 ++ gitexecdir = /boot/common/bin/git-core ++ gitwebdir = /boot/common/data/gitweb ++ template_dir = /boot/common/data/git-core/templates ++ NO_TCLTK = YesPlease ++ DEFAULT_EDITOR = nano ++ CURL_DIR = /boot/common ++ EXPAT_DIR = /boot/common ++ BASIC_CFLAGS += -I/boot/common/include ++ BASIC_LDFLAGS += -lnetwork -lbsd -L/boot/common/lib ++ PTHREAD_LIBS = ++ prefix = /boot/common ++ NO_CROSS_DIRECTORY_HARDLINKS = YesPlease ++ NO_GETTEXT = YesPlease ++endif + ifneq (,$(findstring MINGW,$(uname_S))) + pathsep = ; + NO_PREAD = YesPlease +diff -up git-1.7.10.2/git-web--browse.sh.orig git-1.7.10.2/git-web--browse.sh +--- git-1.7.10.2/git-web--browse.sh.orig 2012-05-11 14:25:45.053477376 -0600 ++++ git-1.7.10.2/git-web--browse.sh 2012-05-19 12:53:42.405536768 -0600 +@@ -116,7 +116,7 @@ if test -z "$browser" ; then + browser_candidates="konqueror $browser_candidates" + fi + else +- browser_candidates="w3m elinks links lynx" ++ browser_candidates="w3m elinks links lynx open" + fi + # SECURITYSESSIONID indicates an OS X GUI login session + if test -n "$SECURITYSESSIONID" \ diff --git a/dev-vcs/git/patches/git-1.7.11.3.patch b/dev-vcs/git/patches/git-1.7.11.3.patch new file mode 100644 index 000000000..5ffff15ee --- /dev/null +++ b/dev-vcs/git/patches/git-1.7.11.3.patch @@ -0,0 +1,47 @@ +diff -up git-1.7.11.3/Makefile.orig git-1.7.11.3/Makefile +--- git-1.7.11.3/Makefile.orig 2012-07-22 14:44:07.027525120 -0600 ++++ git-1.7.11.3/Makefile 2012-07-28 22:12:40.271056896 -0600 +@@ -1297,6 +1297,31 @@ ifeq ($(uname_S),Minix) + NO_CURL = + NO_EXPAT = + endif ++ifeq ($(uname_S),Haiku) ++ NO_LIBGEN_H = YesPlease ++ NO_MEMMEM = YesPlease ++ NO_MKSTEMPS = YesPlease ++ NEEDS_LIBICONV = YesPlease ++ PERL_PATH = perl ++ PYTHON_PATH = python ++# TCL_PATH = tclsh ++ mandir = /boot/common/documentation/man ++ infodir = /boot/common/documentation/info ++ htmldir = /boot/common/documentation/doc/git-1.7.11.3 ++ gitexecdir = /boot/common/bin/git-core ++ gitwebdir = /boot/common/data/gitweb ++ template_dir = /boot/common/data/git-core/templates ++ NO_TCLTK = YesPlease ++ DEFAULT_EDITOR = nano ++ CURL_DIR = /boot/common ++ EXPAT_DIR = /boot/common ++ BASIC_CFLAGS += -I/boot/common/include ++ BASIC_LDFLAGS += -lnetwork -lbsd -L/boot/common/lib ++ PTHREAD_LIBS = ++ prefix = /boot/common ++ NO_CROSS_DIRECTORY_HARDLINKS = YesPlease ++ NO_GETTEXT = YesPlease ++endif + ifneq (,$(findstring MINGW,$(uname_S))) + pathsep = ; + NO_PREAD = YesPlease +diff -up git-1.7.11.3/git-web--browse.sh.orig git-1.7.11.3/git-web--browse.sh +--- git-1.7.11.3/git-web--browse.sh.orig 2012-07-22 14:44:07.017039360 -0600 ++++ git-1.7.11.3/git-web--browse.sh 2012-07-28 22:12:40.283115520 -0600 +@@ -116,7 +116,7 @@ if test -z "$browser" ; then + browser_candidates="konqueror $browser_candidates" + fi + else +- browser_candidates="w3m elinks links lynx" ++ browser_candidates="w3m elinks links lynx open" + fi + # SECURITYSESSIONID indicates an OS X GUI login session + if test -n "$SECURITYSESSIONID" \ diff --git a/dev-vcs/git/patches/git-1.8.0.patch b/dev-vcs/git/patches/git-1.8.0.patch new file mode 100644 index 000000000..20f31f3de --- /dev/null +++ b/dev-vcs/git/patches/git-1.8.0.patch @@ -0,0 +1,47 @@ +diff -up git-1.8.0/Makefile.orig git-1.8.0/Makefile +--- git-1.8.0/Makefile.orig 2012-10-21 15:32:15.034078720 -0600 ++++ git-1.8.0/Makefile 2012-11-04 15:47:49.335020032 -0700 +@@ -1382,6 +1382,31 @@ ifeq ($(uname_S),NONSTOP_KERNEL) + # RFE 10-120912-4693 submitted to HP NonStop development. + NO_SETITIMER = UnfortunatelyYes + endif ++ifeq ($(uname_S),Haiku) ++ NO_LIBGEN_H = YesPlease ++ NO_MEMMEM = YesPlease ++ NO_MKSTEMPS = YesPlease ++ NEEDS_LIBICONV = YesPlease ++ PERL_PATH = perl ++ PYTHON_PATH = python ++# TCL_PATH = tclsh ++ mandir = /boot/common/documentation/man ++ infodir = /boot/common/documentation/info ++ htmldir = /boot/common/documentation/doc/git-1.8.0 ++ gitexecdir = /boot/common/bin/git-core ++ gitwebdir = /boot/common/data/gitweb ++ template_dir = /boot/common/data/git-core/templates ++ NO_TCLTK = YesPlease ++ DEFAULT_EDITOR = nano ++ CURL_DIR = /boot/common ++ EXPAT_DIR = /boot/common ++ BASIC_CFLAGS += -I/boot/common/include ++ BASIC_LDFLAGS += -lnetwork -lbsd -L/boot/common/lib ++ PTHREAD_LIBS = ++ prefix = /boot/common ++ NO_CROSS_DIRECTORY_HARDLINKS = YesPlease ++ NO_GETTEXT = YesPlease ++endif + ifneq (,$(findstring MINGW,$(uname_S))) + pathsep = ; + NO_PREAD = YesPlease +diff -up git-1.8.0/git-web--browse.sh.orig git-1.8.0/git-web--browse.sh +--- git-1.8.0/git-web--browse.sh.orig 2012-10-21 15:32:15.028311552 -0600 ++++ git-1.8.0/git-web--browse.sh 2012-11-04 15:47:49.345505792 -0700 +@@ -116,7 +116,7 @@ if test -z "$browser" ; then + browser_candidates="konqueror $browser_candidates" + fi + else +- browser_candidates="w3m elinks links lynx" ++ browser_candidates="w3m elinks links lynx open" + fi + # SECURITYSESSIONID indicates an OS X GUI login session + if test -n "$SECURITYSESSIONID" \ diff --git a/dev-vcs/git/patches/git-1.8.1.3.patch b/dev-vcs/git/patches/git-1.8.1.3.patch new file mode 100644 index 000000000..ce6762401 --- /dev/null +++ b/dev-vcs/git/patches/git-1.8.1.3.patch @@ -0,0 +1,47 @@ +diff -up git-1.8.1.3/Makefile.orig git-1.8.0/Makefile +--- git-1.8.1.3/Makefile.orig ++++ git-1.8.1.3/Makefile +@@ -1382,6 +1382,31 @@ ifeq ($(uname_S),NONSTOP_KERNEL) + # RFE 10-120912-4693 submitted to HP NonStop development. + NO_SETITIMER = UnfortunatelyYes + endif ++ifeq ($(uname_S),Haiku) ++ NO_LIBGEN_H = YesPlease ++ NO_MEMMEM = YesPlease ++ NO_MKSTEMPS = YesPlease ++ NEEDS_LIBICONV = YesPlease ++ PERL_PATH = perl ++ PYTHON_PATH = python ++# TCL_PATH = tclsh ++ mandir = /boot/common/documentation/man ++ infodir = /boot/common/documentation/info ++ htmldir = /boot/common/documentation/doc/git-1.8.0 ++ gitexecdir = /boot/common/bin/git-core ++ gitwebdir = /boot/common/data/gitweb ++ template_dir = /boot/common/data/git-core/templates ++ NO_TCLTK = YesPlease ++ DEFAULT_EDITOR = nano ++ CURL_DIR = /boot/common ++ EXPAT_DIR = /boot/common ++ BASIC_CFLAGS += -I/boot/common/include ++ BASIC_LDFLAGS += -lnetwork -lbsd -L/boot/common/lib ++ PTHREAD_LIBS = ++ prefix = /boot/common ++ NO_CROSS_DIRECTORY_HARDLINKS = YesPlease ++ NO_GETTEXT = YesPlease ++endif + ifneq (,$(findstring MINGW,$(uname_S))) + pathsep = ; + NO_PREAD = YesPlease +diff -up git-1.8.1.3/git-web--browse.sh.orig git-1.8.0/git-web--browse.sh +--- git-1.8.1.3/git-web--browse.sh.orig ++++ git-1.8.1.3/git-web--browse.sh +@@ -116,7 +116,7 @@ if test -z "$browser" ; then + browser_candidates="konqueror $browser_candidates" + fi + else +- browser_candidates="w3m elinks links lynx" ++ browser_candidates="w3m elinks links lynx open" + fi + # SECURITYSESSIONID indicates an OS X GUI login session + if test -n "$SECURITYSESSIONID" \ diff --git a/dev-vcs/gitdoc/gitdoc-1.7.10.2.bep b/dev-vcs/gitdoc/gitdoc-1.7.10.2.bep new file mode 100644 index 000000000..0eff3fdf2 --- /dev/null +++ b/dev-vcs/gitdoc/gitdoc-1.7.10.2.bep @@ -0,0 +1,32 @@ +DESCRIPTION="git a fast version control system" +HOMEPAGE="http://code.google.com/p/git-core/" +SRC_URI="http://git-core.googlecode.com/files/git-manpages-1.7.10.2.tar.gz" +CHECKSUM_MD5="79bae5456db8366803d28db867892d74" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="" + +BUILD { + echo "Attempting to download additional formats" + wget http://git-core.googlecode.com/files/git-htmldocs-1.7.10.2.tar.gz + if [ $? != 0 ];then + echo "Error downloading additional formats" + exit 1 + fi +} + +INSTALL { + MAN_DIR=$(finddir B_COMMON_DOCUMENTATION_DIRECTORY)/man + mkdir -p "${DESTDIR}/${MAN_DIR}" + cp -afv man* "${DESTDIR}/${MAN_DIR}" + + echo "Extracting extra docs" + DOC_DIR=$(finddir B_COMMON_DOCUMENTATION_DIRECTORY)/doc/git-1.7.10.2 + mkdir -p "${DESTDIR}/${DOC_DIR}" + WORKDIR="$(pwd)" + cd "${DESTDIR}/${DOC_DIR}" + tar xvf "${WORKDIR}/git-htmldocs-1.7.10.2.tar.gz" +} + +LICENSE="GNU GPL v2" +COPYRIGHT="2005-2012 Git Authors (see git web site for list)" diff --git a/dev-vcs/gitdoc/gitdoc-1.7.11.3.bep b/dev-vcs/gitdoc/gitdoc-1.7.11.3.bep new file mode 100644 index 000000000..2299ff1a8 --- /dev/null +++ b/dev-vcs/gitdoc/gitdoc-1.7.11.3.bep @@ -0,0 +1,32 @@ +DESCRIPTION="git a fast version control system" +HOMEPAGE="http://code.google.com/p/git-core/" +SRC_URI="http://git-core.googlecode.com/files/git-manpages-1.7.10.2.tar.gz" +CHECKSUM_MD5="79bae5456db8366803d28db867892d74" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="" + +BUILD { + echo "Attempting to download additional formats" + wget http://git-core.googlecode.com/files/git-htmldocs-1.7.11.3.tar.gz + if [ $? != 0 ];then + echo "Error downloading additional formats" + exit 1 + fi +} + +INSTALL { + MAN_DIR=$(finddir B_COMMON_DOCUMENTATION_DIRECTORY)/man + mkdir -p "${DESTDIR}/${MAN_DIR}" + cp -afv man* "${DESTDIR}/${MAN_DIR}" + + echo "Extracting extra docs" + DOC_DIR=$(finddir B_COMMON_DOCUMENTATION_DIRECTORY)/doc/git-1.7.11.3 + mkdir -p "${DESTDIR}/${DOC_DIR}" + WORKDIR="$(pwd)" + cd "${DESTDIR}/${DOC_DIR}" + tar xvf "${WORKDIR}/git-htmldocs-1.7.11.3.tar.gz" +} + +LICENSE="GNU GPL v2" +COPYRIGHT="2005-2012 Git Authors (see git web site for list)" diff --git a/dev-vcs/gitdoc/gitdoc-1.8.0.bep b/dev-vcs/gitdoc/gitdoc-1.8.0.bep new file mode 100644 index 000000000..01bf49658 --- /dev/null +++ b/dev-vcs/gitdoc/gitdoc-1.8.0.bep @@ -0,0 +1,32 @@ +DESCRIPTION="git a fast version control system" +HOMEPAGE="http://code.google.com/p/git-core/" +SRC_URI="http://git-core.googlecode.com/files/git-manpages-1.8.0.tar.gz" +CHECKSUM_MD5="66f0a839d933c7d573fb40cb051b5e66" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="" + +BUILD { + echo "Attempting to download additional formats" + wget http://git-core.googlecode.com/files/git-htmldocs-1.8.0.tar.gz + if [ $? != 0 ];then + echo "Error downloading additional formats" + exit 1 + fi +} + +INSTALL { + MAN_DIR=$(finddir B_COMMON_DOCUMENTATION_DIRECTORY)/man + mkdir -p "${DESTDIR}/${MAN_DIR}" + cp -afv man* "${DESTDIR}/${MAN_DIR}" + + echo "Extracting extra docs" + DOC_DIR=$(finddir B_COMMON_DOCUMENTATION_DIRECTORY)/doc/git-1.8.0 + mkdir -p "${DESTDIR}/${DOC_DIR}" + WORKDIR="$(pwd)" + cd "${DESTDIR}/${DOC_DIR}" + tar xvf "${WORKDIR}/git-htmldocs-1.8.0.tar.gz" +} + +LICENSE="GNU GPL v2" +COPYRIGHT="2005-2012 Git Authors (see git web site for list)" diff --git a/dev-vcs/gitdoc/gitdoc-1.8.1.3.bep b/dev-vcs/gitdoc/gitdoc-1.8.1.3.bep new file mode 100644 index 000000000..743a2b073 --- /dev/null +++ b/dev-vcs/gitdoc/gitdoc-1.8.1.3.bep @@ -0,0 +1,32 @@ +DESCRIPTION="git a fast version control system" +HOMEPAGE="http://code.google.com/p/git-core/" +SRC_URI="http://git-core.googlecode.com/files/git-manpages-1.8.1.3.tar.gz" +CHECKSUM_MD5="b8e050c3c96b0b9fa28a7b7e9413af01" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="" + +BUILD { + echo "Attempting to download additional formats" + wget http://git-core.googlecode.com/files/git-htmldocs-1.8.1.3.tar.gz + if [ $? != 0 ];then + echo "Error downloading additional formats" + exit 1 + fi +} + +INSTALL { + MAN_DIR=$(finddir B_COMMON_DOCUMENTATION_DIRECTORY)/man + mkdir -p "${DESTDIR}/${MAN_DIR}" + cp -afv man* "${DESTDIR}/${MAN_DIR}" + + echo "Extracting extra docs" + DOC_DIR=$(finddir B_COMMON_DOCUMENTATION_DIRECTORY)/doc/git-1.8.1.3 + mkdir -p "${DESTDIR}/${DOC_DIR}" + WORKDIR="$(pwd)" + cd "${DESTDIR}/${DOC_DIR}" + tar xvf "${WORKDIR}/git-htmldocs-1.8.1.3.tar.gz" +} + +LICENSE="GNU GPL v2" +COPYRIGHT="2005-2013 Git Authors (see git web site for list)" diff --git a/dev-vcs/mercurial/mercurial-1.4.2.bep b/dev-vcs/mercurial/mercurial-1.4.2.bep deleted file mode 100644 index c90bf3ed7..000000000 --- a/dev-vcs/mercurial/mercurial-1.4.2.bep +++ /dev/null @@ -1,18 +0,0 @@ -DESCRIPTION="Mercurial is a free, distributed source control management tool" -HOMEPAGE="http://mercurial.selenic.com/" -SRC_URI="http://mercurial.selenic.com/release/mercurial-1.4.2.tar.gz" -CHECKSUM_MD5="cf23b0887f0437c8601d5b89ae4663a6" -REVISION="1" -STATUS_HAIKU="stable" -DEPEND="" -BUILD { - cd mercurial-1.4.2 - python setup.py build -} - -INSTALL { - cd mercurial-1.4.2 - python setup.py install --prefix=/boot/common -} -LICENSE="GNU GPL v2" -COPYRIGHT="2005-2010 Matt Mackall et al. " diff --git a/dev-vcs/mercurial/mercurial-1.4.bep b/dev-vcs/mercurial/mercurial-1.4.bep deleted file mode 100644 index eabf12e46..000000000 --- a/dev-vcs/mercurial/mercurial-1.4.bep +++ /dev/null @@ -1,18 +0,0 @@ -DESCRIPTION="Mercurial is a free, distributed source control management tool" -HOMEPAGE="http://mercurial.selenic.com/" -SRC_URI="http://mercurial.selenic.com/release/mercurial-1.4.tar.gz" -CHECKSUM_MD5="951ebd4a8153eaa3c56fc0ce2575ab70" -REVISION="1" -STATUS_HAIKU="broken" -DEPEND="" -BUILD { - cd mercurial-1.4 - python setup.py install --prefix="/boot/common" --force -} - -INSTALL { - cd mercurial-1.4 - make install PREFIX=/boot/common -} -LICENSE="GNU GPL v2" -COPYRIGHT="2005-2010 Matt Mackall et al. " diff --git a/dev-vcs/mercurial/mercurial-1.5.1.bep b/dev-vcs/mercurial/mercurial-1.5.1.bep deleted file mode 100644 index 35d5b3d8f..000000000 --- a/dev-vcs/mercurial/mercurial-1.5.1.bep +++ /dev/null @@ -1,22 +0,0 @@ -DESCRIPTION="Mercurial is a free, distributed source control management tool" -HOMEPAGE="http://mercurial.selenic.com/" -SRC_URI="http://mercurial.selenic.com/release/mercurial-1.5.1.tar.gz" -CHECKSUM_MD5="22eac5602d777f9601e23700e641503f" -REVISION="1" -STATUS_HAIKU="stable" -DEPEND="" -BUILD { - cd mercurial-1.5.1 - python setup.py build --force -} - -INSTALL { - cd mercurial-1.5.1 - if [ -n ${DESTDIR} ];then - python setup.py install --root="${DESTDIR}" --prefix="/boot/common" --force - else - python setup.py install --prefix="/boot/common" --force - fi -} -LICENSE="GNU GPL v2" -COPYRIGHT="2005-2010 Matt Mackall et al. " diff --git a/dev-vcs/mercurial/mercurial-1.5.2.bep b/dev-vcs/mercurial/mercurial-1.5.2.bep deleted file mode 100644 index f9f5e32fb..000000000 --- a/dev-vcs/mercurial/mercurial-1.5.2.bep +++ /dev/null @@ -1,22 +0,0 @@ -DESCRIPTION="Mercurial is a free, distributed source control management tool" -HOMEPAGE="http://mercurial.selenic.com/" -SRC_URI="http://mercurial.selenic.com/release/mercurial-1.5.2.tar.gz" -CHECKSUM_MD5="deafaaf017fc3c8a9deef39e566aec80" -REVISION="1" -STATUS_HAIKU="stable" -DEPEND="" -BUILD { - cd mercurial-1.5.2 - python setup.py build --force -} - -INSTALL { - cd mercurial-1.5.2 - if [ -n ${DESTDIR} ];then - python setup.py install --root="${DESTDIR}" --prefix="/boot/common" --force - else - python setup.py install --prefix="/boot/common" --force - fi -} -LICENSE="GNU GPL v2" -COPYRIGHT="2005-2010 Matt Mackall et al. " diff --git a/dev-vcs/mercurial/mercurial-1.5.3.bep b/dev-vcs/mercurial/mercurial-1.5.3.bep deleted file mode 100644 index 1ec3f0351..000000000 --- a/dev-vcs/mercurial/mercurial-1.5.3.bep +++ /dev/null @@ -1,22 +0,0 @@ -DESCRIPTION="Mercurial is a free, distributed source control management tool" -HOMEPAGE="http://mercurial.selenic.com/" -SRC_URI="http://mercurial.selenic.com/release/mercurial-1.5.3.tar.gz" -CHECKSUM_MD5="0969b8109f1b5a9c4debf985cca938f9" -REVISION="1" -STATUS_HAIKU="stable" -DEPEND="dev-lang/python >= 2.3" -BUILD { - cd mercurial-1.5.3 - python setup.py build --force -} - -INSTALL { - cd mercurial-1.5.3 - if [ -n ${DESTDIR} ];then - python setup.py install --root="${DESTDIR}" --prefix="/boot/common" --force - else - python setup.py install --prefix="/boot/common" --force - fi -} -LICENSE="GNU GPL v2" -COPYRIGHT="2005-2010 Matt Mackall et al. " diff --git a/dev-vcs/mercurial/mercurial-1.5.bep b/dev-vcs/mercurial/mercurial-1.5.bep deleted file mode 100644 index fb1b85aa6..000000000 --- a/dev-vcs/mercurial/mercurial-1.5.bep +++ /dev/null @@ -1,22 +0,0 @@ -DESCRIPTION="Mercurial is a free, distributed source control management tool" -HOMEPAGE="http://mercurial.selenic.com/" -SRC_URI="http://mercurial.selenic.com/release/mercurial-1.5.tar.gz" -CHECKSUM_MD5="6e31357ada35fe20557f08a4e89f9c42" -REVISION="1" -STATUS_HAIKU="stable" -DEPEND="" -BUILD { - cd mercurial-1.5 - python setup.py build --force -} - -INSTALL { - cd mercurial-1.5 - if [ -n ${DESTDIR} ];then - python setup.py install --root="${DESTDIR}" --prefix="/boot/common" --force - else - python setup.py install --prefix="/boot/common" --force - fi -} -LICENSE="GNU GPL v2" -COPYRIGHT="2005-2010 Matt Mackall et al. " diff --git a/dev-vcs/mercurial/mercurial-1.6.bep b/dev-vcs/mercurial/mercurial-1.6.bep deleted file mode 100644 index 2e993e784..000000000 --- a/dev-vcs/mercurial/mercurial-1.6.bep +++ /dev/null @@ -1,22 +0,0 @@ -DESCRIPTION="Mercurial is a free, distributed source control management tool" -HOMEPAGE="http://mercurial.selenic.com/" -SRC_URI="http://mercurial.selenic.com/release/mercurial-1.6.tar.gz" -CHECKSUM_MD5="e97772cb424d29d9382c41daafa6f92d" -REVISION="1" -STATUS_HAIKU="stable" -DEPEND="dev-lang/python >= 2.3" -BUILD { - cd mercurial-1.6 - python setup.py build --force -} - -INSTALL { - cd mercurial-1.6 - if [ -n "${DESTDIR}" ];then - python setup.py install --root="${DESTDIR}" --prefix="/boot/common" --force - else - python setup.py install --prefix="/boot/common" --force - fi -} -LICENSE="GNU GPL v2" -COPYRIGHT="2005-2010 Matt Mackall et al. " diff --git a/dev-vcs/mercurial/mercurial-1.7.3.bep b/dev-vcs/mercurial/mercurial-1.7.3.bep deleted file mode 100644 index dcd197d07..000000000 --- a/dev-vcs/mercurial/mercurial-1.7.3.bep +++ /dev/null @@ -1,28 +0,0 @@ -DESCRIPTION="Mercurial is a free, distributed source control management tool" -HOMEPAGE="http://mercurial.selenic.com/" -SRC_URI="http://mercurial.selenic.com/release/mercurial-1.7.3.tar.gz" -CHECKSUM_MD5="1d635ad307fa20a5e9c6afba6145a73b" -REVISION="1" -STATUS_HAIKU="stable" -DEPEND="dev-lang/python >= 2.3" -BUILD { - cd mercurial-1.7.3 - python setup.py build --force -} - -INSTALL { - cd mercurial-1.7.3 - if [ -n "${DESTDIR}" ];then - python setup.py install --root="${DESTDIR}" --prefix="/boot/common" --force - else - python setup.py install --prefix="/boot/common" --force - fi -} - -TEST { - cd mercurial-1.7.3/tests - python run-tests.py -} - -LICENSE="GNU GPL v2" -COPYRIGHT="2005-2010 Matt Mackall et al. " diff --git a/dev-vcs/mercurial/mercurial-2.2.2.bep b/dev-vcs/mercurial/mercurial-2.2.2.bep new file mode 100644 index 000000000..7afde93e2 --- /dev/null +++ b/dev-vcs/mercurial/mercurial-2.2.2.bep @@ -0,0 +1,30 @@ +DESCRIPTION="Mercurial is a free, distributed source control management tool" +HOMEPAGE="http://mercurial.selenic.com/" +SRC_URI="http://mercurial.selenic.com/release/mercurial-2.2.2.tar.gz" +CHECKSUM_MD5="9f59b5d71969cbb2671702cd2a7a5a11" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="dev-lang/python >= 2.3" +BUILD { + cd mercurial-2.2.2 + python setup.py build --force +} + +INSTALL { + cd mercurial-2.2.2 + if [ -n "${DESTDIR}" ];then + python setup.py install --root="${DESTDIR}" --prefix="$(finddir B_COMMON_DIRECTORY)" --force + else + python setup.py install --prefix="$(finddir B_COMMON_DIRECTORY)" --force + fi +} + +TEST { + cd mercurial-2.2.2/tests + shopt -s extglob + sed -i 's,/usr/bin/env,/bin/env,' !(blacklists|bundles|gpg|svn) + python run-tests.py +} + +LICENSE="GNU GPL v2" +COPYRIGHT="2005-2012 Matt Mackall et al." diff --git a/dev-vcs/mercurial/mercurial-2.2.3.bep b/dev-vcs/mercurial/mercurial-2.2.3.bep new file mode 100644 index 000000000..9ea952ad0 --- /dev/null +++ b/dev-vcs/mercurial/mercurial-2.2.3.bep @@ -0,0 +1,30 @@ +DESCRIPTION="Mercurial is a free, distributed source control management tool" +HOMEPAGE="http://mercurial.selenic.com/" +SRC_URI="http://mercurial.selenic.com/release/mercurial-2.2.3.tar.gz" +CHECKSUM_MD5="f4c70af3892d964b83b2718bde44c2f8" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="dev-lang/python >= 2.3" +BUILD { + cd mercurial-2.2.3 + python setup.py build --force +} + +INSTALL { + cd mercurial-2.2.3 + if [ -n "${DESTDIR}" ];then + python setup.py install --root="${DESTDIR}" --prefix="$(finddir B_COMMON_DIRECTORY)" --force + else + python setup.py install --prefix="$(finddir B_COMMON_DIRECTORY)" --force + fi +} + +TEST { + cd mercurial-2.2.3/tests + shopt -s extglob + sed -i 's,/usr/bin/env,/bin/env,' !(blacklists|bundles|gpg|svn) + python run-tests.py +} + +LICENSE="GNU GPL v2" +COPYRIGHT="2005-2012 Matt Mackall et al." diff --git a/dev-vcs/mercurial/mercurial-2.3.bep b/dev-vcs/mercurial/mercurial-2.3.bep new file mode 100644 index 000000000..3889beedc --- /dev/null +++ b/dev-vcs/mercurial/mercurial-2.3.bep @@ -0,0 +1,30 @@ +DESCRIPTION="Mercurial is a free, distributed source control management tool" +HOMEPAGE="http://mercurial.selenic.com/" +SRC_URI="http://mercurial.selenic.com/release/mercurial-2.3.tar.gz" +CHECKSUM_MD5="8d9f776e432239571dfab2b5f88b3675" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="dev-lang/python >= 2.3" +BUILD { + cd mercurial-2.3 + python setup.py build --force +} + +INSTALL { + cd mercurial-2.3 + if [ -n "${DESTDIR}" ];then + python setup.py install --root="${DESTDIR}" --prefix="$(finddir B_COMMON_DIRECTORY)" --force + else + python setup.py install --prefix="$(finddir B_COMMON_DIRECTORY)" --force + fi +} + +TEST { + cd mercurial-2.3/tests + shopt -s extglob + sed -i 's,/usr/bin/env,/bin/env,' !(blacklists|bundles|gpg|svn) + python run-tests.py +} + +LICENSE="GNU GPL v2" +COPYRIGHT="2005-2012 Matt Mackall et al." diff --git a/dev-vcs/mercurial/mercurial-2.4.bep b/dev-vcs/mercurial/mercurial-2.4.bep new file mode 100644 index 000000000..70186e0c6 --- /dev/null +++ b/dev-vcs/mercurial/mercurial-2.4.bep @@ -0,0 +1,30 @@ +DESCRIPTION="Mercurial is a free, distributed source control management tool" +HOMEPAGE="http://mercurial.selenic.com/" +SRC_URI="http://mercurial.selenic.com/release/mercurial-2.4.tar.gz" +CHECKSUM_MD5="c1fc9bec6951dd3c913092c3c72da014" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="dev-lang/python >= 2.4" +BUILD { + cd mercurial-2.4 + python setup.py build --force +} + +INSTALL { + cd mercurial-2.4 + if [ -n "${DESTDIR}" ];then + python setup.py install --root="${DESTDIR}" --prefix="$(finddir B_COMMON_DIRECTORY)" --force + else + python setup.py install --prefix="$(finddir B_COMMON_DIRECTORY)" --force + fi +} + +TEST { + cd mercurial-2.4/tests + shopt -s extglob + sed -i 's,/usr/bin/env,/bin/env,' !(blacklists|bundles|gpg|svn) + python run-tests.py +} + +LICENSE="GNU GPL v2" +COPYRIGHT="2005-2012 Matt Mackall et al." diff --git a/dev-vcs/mercurial/patches/mercurial-1.0.2-haiku.diff b/dev-vcs/mercurial/patches/mercurial-1.0.2-haiku.diff deleted file mode 100644 index 03ba71c96..000000000 --- a/dev-vcs/mercurial/patches/mercurial-1.0.2-haiku.diff +++ /dev/null @@ -1,24 +0,0 @@ -diff -urN mercurial-1.0.2/mercurial/bdiff.c mercurial-1.0.2-haiku/mercurial/bdiff.c ---- mercurial-1.0.2/mercurial/bdiff.c 2008-08-13 22:11:47.000000000 +0000 -+++ mercurial-1.0.2-haiku/mercurial/bdiff.c 2008-09-09 15:43:50.000000000 +0000 -@@ -34,7 +34,7 @@ - } - #else - #include --#ifdef __BEOS__ -+#if defined __BEOS__ && !defined __HAIKU__ - #include - #else - #include -diff -urN mercurial-1.0.2/mercurial/mpatch.c mercurial-1.0.2-haiku/mercurial/mpatch.c ---- mercurial-1.0.2/mercurial/mpatch.c 2008-08-13 22:11:47.000000000 +0000 -+++ mercurial-1.0.2-haiku/mercurial/mpatch.c 2008-09-09 15:44:29.000000000 +0000 -@@ -52,7 +52,7 @@ - #else - /* not windows */ - # include --# ifdef __BEOS__ -+# if defined __BEOS__ && !defined __HAIKU__ - # include - # else - # include diff --git a/dev-vcs/mercurial/patches/mercurial-1.5.1.patch b/dev-vcs/mercurial/patches/mercurial-1.5.1.patch deleted file mode 100644 index e93404db5..000000000 --- a/dev-vcs/mercurial/patches/mercurial-1.5.1.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -up mercurial-1.5.1/mercurial/ui.py.orig mercurial-1.5.1/mercurial/ui.py ---- mercurial-1.5.1/mercurial/ui.py.orig 2010-04-30 23:51:42.741605376 -0600 -+++ mercurial-1.5.1/mercurial/ui.py 2010-04-30 23:52:08.309854208 -0600 -@@ -384,7 +384,7 @@ class ui(object): - return (os.environ.get("HGEDITOR") or - self.config("ui", "editor") or - os.environ.get("VISUAL") or -- os.environ.get("EDITOR", "vi")) -+ os.environ.get("EDITOR", "nano")) - - def progress(self, topic, pos, item="", unit="", total=None): - '''show a progress message diff --git a/dev-vcs/mercurial/patches/mercurial-1.5.2.patch b/dev-vcs/mercurial/patches/mercurial-1.5.2.patch deleted file mode 100644 index 2f8db7ab5..000000000 --- a/dev-vcs/mercurial/patches/mercurial-1.5.2.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -up mercurial-1.5.2/mercurial/ui.py.orig mercurial-1.5.2/mercurial/ui.py ---- mercurial-1.5.2/mercurial/ui.py.orig 2010-05-01 15:02:48.041156608 -0600 -+++ mercurial-1.5.2/mercurial/ui.py 2010-05-01 17:04:56.068943872 -0600 -@@ -384,7 +384,7 @@ class ui(object): - return (os.environ.get("HGEDITOR") or - self.config("ui", "editor") or - os.environ.get("VISUAL") or -- os.environ.get("EDITOR", "vi")) -+ os.environ.get("EDITOR", "nano")) - - def progress(self, topic, pos, item="", unit="", total=None): - '''show a progress message diff --git a/dev-vcs/mercurial/patches/mercurial-1.5.3.patch b/dev-vcs/mercurial/patches/mercurial-1.5.3.patch deleted file mode 100644 index 9aae6cec9..000000000 --- a/dev-vcs/mercurial/patches/mercurial-1.5.3.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -up mercurial-1.5.3/mercurial/ui.py.orig mercurial-1.5.3/mercurial/ui.py ---- mercurial-1.5.3/mercurial/ui.py.orig 2010-05-13 10:30:46.037224448 -0600 -+++ mercurial-1.5.3/mercurial/ui.py 2010-05-13 17:58:50.218890240 -0600 -@@ -384,7 +384,7 @@ class ui(object): - return (os.environ.get("HGEDITOR") or - self.config("ui", "editor") or - os.environ.get("VISUAL") or -- os.environ.get("EDITOR", "vi")) -+ os.environ.get("EDITOR", "nano")) - - def progress(self, topic, pos, item="", unit="", total=None): - '''show a progress message diff --git a/dev-vcs/mercurial/patches/mercurial-1.6.patch b/dev-vcs/mercurial/patches/mercurial-1.6.patch deleted file mode 100644 index 570190c90..000000000 --- a/dev-vcs/mercurial/patches/mercurial-1.6.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -up mercurial-1.6/mercurial/ui.py.orig mercurial-1.6/mercurial/ui.py ---- mercurial-1.6/mercurial/ui.py.orig 2010-07-01 11:06:27.030670848 -0600 -+++ mercurial-1.6/mercurial/ui.py 2010-07-01 11:41:21.504365056 -0600 -@@ -557,7 +557,7 @@ class ui(object): - return (os.environ.get("HGEDITOR") or - self.config("ui", "editor") or - os.environ.get("VISUAL") or -- os.environ.get("EDITOR", "vi")) -+ os.environ.get("EDITOR", "nano")) - - def progress(self, topic, pos, item="", unit="", total=None): - '''show a progress message diff --git a/dev-vcs/mercurial/patches/mercurial-1.7.3.patch b/dev-vcs/mercurial/patches/mercurial-1.7.3.patch deleted file mode 100644 index 003c2d4cd..000000000 --- a/dev-vcs/mercurial/patches/mercurial-1.7.3.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -up mercurial-1.7.3/mercurial/ui.py.orig mercurial-1.7.3/mercurial/ui.py ---- mercurial-1.7.3/mercurial/ui.py.orig 2010-07-01 11:06:27.030670848 -0600 -+++ mercurial-1.7.3/mercurial/ui.py 2010-07-01 11:41:21.504365056 -0600 -@@ -557,7 +557,7 @@ class ui(object): - return (os.environ.get("HGEDITOR") or - self.config("ui", "editor") or - os.environ.get("VISUAL") or -- os.environ.get("EDITOR", "vi")) -+ os.environ.get("EDITOR", "nano")) - - def progress(self, topic, pos, item="", unit="", total=None): - '''show a progress message diff --git a/dev-vcs/mercurial/patches/mercurial-2.2.2.patch b/dev-vcs/mercurial/patches/mercurial-2.2.2.patch new file mode 100644 index 000000000..285c8f417 --- /dev/null +++ b/dev-vcs/mercurial/patches/mercurial-2.2.2.patch @@ -0,0 +1,12 @@ +diff -up mercurial-2.2.2/mercurial/ui.py.orig mercurial-2.2.2/mercurial/ui.py +--- mercurial-2.2.2/mercurial/ui.py.orig 2012-06-01 22:48:21.025690112 -0600 ++++ mercurial-2.2.2/mercurial/ui.py 2012-06-04 17:15:16.317980672 -0600 +@@ -693,7 +693,7 @@ class ui(object): + # avoid confusion. + editor = 'E' + else: +- editor = 'vi' ++ editor = 'nano' + return (os.environ.get("HGEDITOR") or + self.config("ui", "editor") or + os.environ.get("VISUAL") or diff --git a/dev-vcs/mercurial/patches/mercurial-2.2.3.patch b/dev-vcs/mercurial/patches/mercurial-2.2.3.patch new file mode 100644 index 000000000..818833f7d --- /dev/null +++ b/dev-vcs/mercurial/patches/mercurial-2.2.3.patch @@ -0,0 +1,12 @@ +diff -up mercurial-2.2.3/mercurial/ui.py.orig mercurial-2.2.3/mercurial/ui.py +--- mercurial-2.2.3/mercurial/ui.py.orig 2012-06-01 22:48:21.025690112 -0600 ++++ mercurial-2.2.3/mercurial/ui.py 2012-06-04 17:15:16.317980672 -0600 +@@ -693,7 +693,7 @@ class ui(object): + # avoid confusion. + editor = 'E' + else: +- editor = 'vi' ++ editor = 'nano' + return (os.environ.get("HGEDITOR") or + self.config("ui", "editor") or + os.environ.get("VISUAL") or diff --git a/dev-vcs/mercurial/patches/mercurial-2.3.patch b/dev-vcs/mercurial/patches/mercurial-2.3.patch new file mode 100644 index 000000000..2bca746e2 --- /dev/null +++ b/dev-vcs/mercurial/patches/mercurial-2.3.patch @@ -0,0 +1,12 @@ +diff -up mercurial-2.3/mercurial/ui.py.orig mercurial-2.3/mercurial/ui.py +--- mercurial-2.3/mercurial/ui.py.orig 2012-08-02 00:49:31.022544384 -0600 ++++ mercurial-2.3/mercurial/ui.py 2012-08-02 01:06:19.942407680 -0600 +@@ -701,7 +701,7 @@ class ui(object): + # avoid confusion. + editor = 'E' + else: +- editor = 'vi' ++ editor = 'nano' + return (os.environ.get("HGEDITOR") or + self.config("ui", "editor") or + os.environ.get("VISUAL") or diff --git a/dev-vcs/mercurial/patches/mercurial-2.4.patch b/dev-vcs/mercurial/patches/mercurial-2.4.patch new file mode 100644 index 000000000..1ea197e37 --- /dev/null +++ b/dev-vcs/mercurial/patches/mercurial-2.4.patch @@ -0,0 +1,12 @@ +diff -up mercurial-2.4/mercurial/ui.py.orig mercurial-2.4/mercurial/ui.py +--- mercurial-2.4/mercurial/ui.py.orig 2012-08-02 00:49:31.022544384 -0600 ++++ mercurial-2.4/mercurial/ui.py 2012-08-02 01:06:19.942407680 -0600 +@@ -701,7 +701,7 @@ class ui(object): + # avoid confusion. + editor = 'E' + else: +- editor = 'vi' ++ editor = 'nano' + return (os.environ.get("HGEDITOR") or + self.config("ui", "editor") or + os.environ.get("VISUAL") or diff --git a/dev-vcs/subversion/patches/subversion-1.6.17.patch b/dev-vcs/subversion/patches/subversion-1.6.17.patch new file mode 100644 index 000000000..8db6b23c0 --- /dev/null +++ b/dev-vcs/subversion/patches/subversion-1.6.17.patch @@ -0,0 +1,86 @@ +diff -urN subversion-1.6.17/configure.ac subversion-1.6.17-haiku/configure.ac +--- subversion-1.6.17/configure.ac 2009-10-13 09:09:30.026214400 -0700 ++++ subversion-1.6.17-haiku/configure.ac 2011-08-02 14:32:39.227278848 -0700 +@@ -249,7 +249,7 @@ + dnl Check for libraries -------------------- + + # Berkeley DB on SCO OpenServer needs -lsocket +-AC_CHECK_LIB(socket, socket) ++AC_SEARCH_LIBS(socket, socket network) + + # Build the BDB filesystem library only if we have an appropriate + # version of Berkeley DB. +diff -urN subversion-1.6.17/subversion/libsvn_subr/config_file.c subversion-1.6.17-haiku/subversion/libsvn_subr/config_file.c +--- subversion-1.6.17/subversion/libsvn_subr/config_file.c 2009-11-25 09:27:35.047972352 -0800 ++++ subversion-1.6.17-haiku/subversion/libsvn_subr/config_file.c 2010-03-15 22:59:57.000000000 -0700 +@@ -32,6 +32,11 @@ + + #include "svn_private_config.h" + ++#ifdef __HAIKU__ ++# include ++# include ++#endif ++ + /* Used to terminate lines in large multi-line string literals. */ + #define NL APR_EOL_STR + +@@ -326,7 +331,19 @@ + SVN_CONFIG__SUBDIRECTORY, fname, NULL); + } + +-#else /* ! WIN32 */ ++#elif defined(__HAIKU__) ++{ ++ char folder[B_PATH_NAME_LENGTH]; ++ ++ status_t error = find_directory(B_COMMON_SETTINGS_DIRECTORY, -1, false, ++ folder, sizeof(folder)); ++ if (error) ++ return SVN_NO_ERROR; ++ ++ *path_p = svn_path_join_many(pool, folder, ++ SVN_CONFIG__SYS_DIRECTORY, fname, NULL); ++} ++#else /* ! WIN32 && !__HAIKU__ */ + + *path_p = svn_path_join_many(pool, SVN_CONFIG__SYS_DIRECTORY, fname, NULL); + +@@ -1115,8 +1132,21 @@ + *path = svn_path_join_many(pool, folder, + SVN_CONFIG__SUBDIRECTORY, fname, NULL); + } ++ ++#elif defined(__HAIKU__) ++{ ++ char folder[B_PATH_NAME_LENGTH]; ++ ++ status_t error = find_directory (B_USER_SETTINGS_DIRECTORY, -1, false, ++ folder, sizeof(folder)); ++ if (error) ++ return SVN_NO_ERROR; ++ ++ *path = svn_path_join_many(pool, folder, ++ SVN_CONFIG__USR_DIRECTORY, fname, NULL); ++} ++#else /* ! WIN32 && !__HAIKU__ */ + +-#else /* ! WIN32 */ + { + const char *homedir = svn_user_get_homedir(pool); + if (! homedir) +diff -urN subversion-1.6.17/subversion/libsvn_subr/config_impl.h subversion-1.6.17-haiku/subversion/libsvn_subr/config_impl.h +--- subversion-1.6.17/subversion/libsvn_subr/config_impl.h 2009-01-27 05:23:50.045350912 -0800 ++++ subversion-1.6.17-haiku/subversion/libsvn_subr/config_impl.h 2010-03-15 22:39:34.000000000 -0700 +@@ -109,7 +109,10 @@ + or svn_config_get_user_config_path() instead. */ + #ifdef WIN32 + # define SVN_CONFIG__SUBDIRECTORY "Subversion" +-#else /* ! WIN32 */ ++#elif defined __HAIKU__ /* HAIKU */ ++# define SVN_CONFIG__SYS_DIRECTORY "subversion" ++# define SVN_CONFIG__USR_DIRECTORY "subversion" ++#else /* ! WIN32 && ! __HAIKU__ */ + # define SVN_CONFIG__SYS_DIRECTORY "/etc/subversion" + # define SVN_CONFIG__USR_DIRECTORY ".subversion" + #endif /* WIN32 */ diff --git a/dev-vcs/subversion/patches/subversion-1.6.18.patch b/dev-vcs/subversion/patches/subversion-1.6.18.patch new file mode 100644 index 000000000..ac6c86321 --- /dev/null +++ b/dev-vcs/subversion/patches/subversion-1.6.18.patch @@ -0,0 +1,86 @@ +diff -urN subversion-1.6.18/configure.ac subversion-1.6.18-haiku/configure.ac +--- subversion-1.6.18/configure.ac 2009-10-13 09:09:30.026214400 -0700 ++++ subversion-1.6.18-haiku/configure.ac 2011-08-02 14:32:39.227278848 -0700 +@@ -249,7 +249,7 @@ + dnl Check for libraries -------------------- + + # Berkeley DB on SCO OpenServer needs -lsocket +-AC_CHECK_LIB(socket, socket) ++AC_SEARCH_LIBS(socket, socket network) + + # Build the BDB filesystem library only if we have an appropriate + # version of Berkeley DB. +diff -urN subversion-1.6.18/subversion/libsvn_subr/config_file.c subversion-1.6.18-haiku/subversion/libsvn_subr/config_file.c +--- subversion-1.6.18/subversion/libsvn_subr/config_file.c 2009-11-25 09:27:35.047972352 -0800 ++++ subversion-1.6.18-haiku/subversion/libsvn_subr/config_file.c 2010-03-15 22:59:57.000000000 -0700 +@@ -32,6 +32,11 @@ + + #include "svn_private_config.h" + ++#ifdef __HAIKU__ ++# include ++# include ++#endif ++ + /* Used to terminate lines in large multi-line string literals. */ + #define NL APR_EOL_STR + +@@ -326,7 +331,19 @@ + SVN_CONFIG__SUBDIRECTORY, fname, NULL); + } + +-#else /* ! WIN32 */ ++#elif defined(__HAIKU__) ++{ ++ char folder[B_PATH_NAME_LENGTH]; ++ ++ status_t error = find_directory(B_COMMON_SETTINGS_DIRECTORY, -1, false, ++ folder, sizeof(folder)); ++ if (error) ++ return SVN_NO_ERROR; ++ ++ *path_p = svn_path_join_many(pool, folder, ++ SVN_CONFIG__SYS_DIRECTORY, fname, NULL); ++} ++#else /* ! WIN32 && !__HAIKU__ */ + + *path_p = svn_path_join_many(pool, SVN_CONFIG__SYS_DIRECTORY, fname, NULL); + +@@ -1115,8 +1132,21 @@ + *path = svn_path_join_many(pool, folder, + SVN_CONFIG__SUBDIRECTORY, fname, NULL); + } ++ ++#elif defined(__HAIKU__) ++{ ++ char folder[B_PATH_NAME_LENGTH]; ++ ++ status_t error = find_directory (B_USER_SETTINGS_DIRECTORY, -1, false, ++ folder, sizeof(folder)); ++ if (error) ++ return SVN_NO_ERROR; ++ ++ *path = svn_path_join_many(pool, folder, ++ SVN_CONFIG__USR_DIRECTORY, fname, NULL); ++} ++#else /* ! WIN32 && !__HAIKU__ */ + +-#else /* ! WIN32 */ + { + const char *homedir = svn_user_get_homedir(pool); + if (! homedir) +diff -urN subversion-1.6.18/subversion/libsvn_subr/config_impl.h subversion-1.6.18-haiku/subversion/libsvn_subr/config_impl.h +--- subversion-1.6.18/subversion/libsvn_subr/config_impl.h 2009-01-27 05:23:50.045350912 -0800 ++++ subversion-1.6.18-haiku/subversion/libsvn_subr/config_impl.h 2010-03-15 22:39:34.000000000 -0700 +@@ -109,7 +109,10 @@ + or svn_config_get_user_config_path() instead. */ + #ifdef WIN32 + # define SVN_CONFIG__SUBDIRECTORY "Subversion" +-#else /* ! WIN32 */ ++#elif defined __HAIKU__ /* HAIKU */ ++# define SVN_CONFIG__SYS_DIRECTORY "subversion" ++# define SVN_CONFIG__USR_DIRECTORY "subversion" ++#else /* ! WIN32 && ! __HAIKU__ */ + # define SVN_CONFIG__SYS_DIRECTORY "/etc/subversion" + # define SVN_CONFIG__USR_DIRECTORY ".subversion" + #endif /* WIN32 */ diff --git a/dev-vcs/subversion/subversion-1.6.11.bep b/dev-vcs/subversion/subversion-1.6.11.bep index 279a7d6c3..97693b80f 100644 --- a/dev-vcs/subversion/subversion-1.6.11.bep +++ b/dev-vcs/subversion/subversion-1.6.11.bep @@ -10,9 +10,9 @@ BUILD { libtoolize --force --copy --install aclocal -I build -I build/ac-macros autogen.sh - ./configure --prefix=/boot/common \ - --with-apr=/boot/common/bin/apr-1-config \ - --with-apr-util=/boot/common/bin/apu-1-config \ + ./configure --prefix=`finddir B_COMMON_DIRECTORY` \ + --with-apr=`finddir B_COMMON_BIN_DIRECTORY`/apr-1-config \ + --with-apr-util=`finddir B_COMMON_BIN_DIRECTORY`/apu-1-config \ --with-neon=/boot/common \ --with-editor=lpe \ --with-zlib=/boot/common diff --git a/dev-vcs/subversion/subversion-1.6.12.bep b/dev-vcs/subversion/subversion-1.6.12.bep index 61f09eac1..a6fe5aa74 100644 --- a/dev-vcs/subversion/subversion-1.6.12.bep +++ b/dev-vcs/subversion/subversion-1.6.12.bep @@ -11,9 +11,9 @@ BUILD { aclocal -I build -I build/ac-macros autoconf ./autogen.sh - ./configure --prefix=/boot/common \ - --with-apr=/boot/common/bin/apr-1-config \ - --with-apr-util=/boot/common/bin/apu-1-config \ + ./configure --prefix=`finddir B_COMMON_DIRECTORY` \ + --with-apr=`finddir B_COMMON_BIN_DIRECTORY`/apr-1-config \ + --with-apr-util=`finddir B_COMMON_BIN_DIRECTORY`/apu-1-config \ --with-neon=/boot/common \ --with-editor=nano \ --with-zlib=/boot/common diff --git a/dev-vcs/subversion/subversion-1.6.13.bep b/dev-vcs/subversion/subversion-1.6.13.bep index b0d994536..b2fd911fb 100644 --- a/dev-vcs/subversion/subversion-1.6.13.bep +++ b/dev-vcs/subversion/subversion-1.6.13.bep @@ -11,9 +11,9 @@ BUILD { aclocal -I build -I build/ac-macros autoconf ./autogen.sh - ./configure --prefix=/boot/common \ - --with-apr=/boot/common/bin/apr-1-config \ - --with-apr-util=/boot/common/bin/apu-1-config \ + ./configure --prefix=`finddir B_COMMON_DIRECTORY` \ + --with-apr=`finddir B_COMMON_BIN_DIRECTORY`/apr-1-config \ + --with-apr-util=`finddir B_COMMON_BIN_DIRECTORY`/apu-1-config \ --with-neon=/boot/common \ --with-editor=nano \ --with-zlib=/boot/common diff --git a/dev-vcs/subversion/subversion-1.6.17.bep b/dev-vcs/subversion/subversion-1.6.17.bep new file mode 100644 index 000000000..cafa62e18 --- /dev/null +++ b/dev-vcs/subversion/subversion-1.6.17.bep @@ -0,0 +1,56 @@ +DESCRIPTION="Subversion is an open source version control system" +HOMEPAGE="http://subversion.apache.org" +SRC_URI="http://subversion.tigris.org/downloads/subversion-1.6.17.tar.bz2" +CHECKSUM_MD5="81e5dc5beee4b3fc025ac70c0b6caa14" +REVISION="3" +STATUS_HAIKU="stable" +DEPEND="dev-libs/apr >= 1.4.4 + dev-libs/apr-util >= 1.3.12 + net-misc/neon >= 0.29.6 + dev-libs/libiconv >= 1.13.1 + dev-db/sqlite >= 3.7.7.1 + dev-libs/expat >= 2.0.1 + dev-libs/openssl >= 1.0.0d + dev-libs/libxml2 >= 2.7.8" + +BUILD { + cd subversion-1.6.17 + libtoolize --force --copy --install + aclocal -I build -I build/ac-macros + autoconf + COMMON_DIR=`finddir B_COMMON_DIRECTORY` + ./configure --prefix=$COMMON_DIR \ + --mandir=`finddir B_COMMON_DOCUMENTATION_DIRECTORY`/man \ + --with-apr=`finddir B_COMMON_BIN_DIRECTORY`/apr-1-config \ + --with-apr-util=`finddir B_COMMON_BIN_DIRECTORY`/apu-1-config \ + --with-neon=$COMMON_DIR \ + --with-zlib=$COMMON_DIR \ + --with-editor=nano \ + --disable-nls + make +} + +INSTALL { + cd subversion-1.6.17 + make install + if type -p swig > /dev/null;then + if type -p python > /dev/null;then + PYTHON_PKGDIR=$(python -c "from distutils.sysconfig import get_python_lib; print get_python_lib()") + make install-swig-py swig_pydir=${PYTHON_PKGDIR}/libsvn swig_pydir_extra=${PYTHON_PKGDIR}/svn + fi + #if type -p perl > /dev/null;then + # make install-swig-pl + #fi + #if type -p ruby > /dev/null;then + # make install-swig-rb + #fi + fi +} + +TEST { + cd subversion-1.6.17 + make check +} + +LICENSE="Apache-Subversion" +COPYRIGHT="2011 The Apache Software Foundation" diff --git a/dev-vcs/subversion/subversion-1.6.18.bep b/dev-vcs/subversion/subversion-1.6.18.bep new file mode 100644 index 000000000..5985c1fcd --- /dev/null +++ b/dev-vcs/subversion/subversion-1.6.18.bep @@ -0,0 +1,56 @@ +DESCRIPTION="Subversion is an open source version control system" +HOMEPAGE="http://subversion.apache.org" +SRC_URI="http://subversion.tigris.org/downloads/subversion-1.6.18.tar.bz2" +CHECKSUM_MD5="c5c662a5d19d047256fa333bd890a925" +REVISION="3" +STATUS_HAIKU="stable" +DEPEND="dev-libs/apr >= 1.4.4 + dev-libs/apr-util >= 1.3.12 + net-misc/neon >= 0.29.6 + dev-libs/libiconv >= 1.13.1 + dev-db/sqlite >= 3.7.7.1 + dev-libs/expat >= 2.0.1 + dev-libs/openssl >= 1.0.0d + dev-libs/libxml2 >= 2.7.8" + +BUILD { + cd subversion-1.6.18 + libtoolize --force --copy --install + aclocal -I build -I build/ac-macros + autoconf + COMMON_DIR=`finddir B_COMMON_DIRECTORY` + ./configure --prefix=$COMMON_DIR \ + --mandir=`finddir B_COMMON_DOCUMENTATION_DIRECTORY`/man \ + --with-apr=`finddir B_COMMON_BIN_DIRECTORY`/apr-1-config \ + --with-apr-util=`finddir B_COMMON_BIN_DIRECTORY`/apu-1-config \ + --with-neon=$COMMON_DIR \ + --with-zlib=$COMMON_DIR \ + --with-editor=nano \ + --disable-nls + make +} + +INSTALL { + cd subversion-1.6.18 + make install + if type -p swig > /dev/null;then + if type -p python > /dev/null;then + PYTHON_PKGDIR=$(python -c "from distutils.sysconfig import get_python_lib; print get_python_lib()") + make install-swig-py swig_pydir=${PYTHON_PKGDIR}/libsvn swig_pydir_extra=${PYTHON_PKGDIR}/svn + fi + #if type -p perl > /dev/null;then + # make install-swig-pl + #fi + #if type -p ruby > /dev/null;then + # make install-swig-rb + #fi + fi +} + +TEST { + cd subversion-1.6.18 + make check +} + +LICENSE="Apache-Subversion" +COPYRIGHT="2000-2009 CollabNet" diff --git a/dev-vcs/subversion/subversion-1.6.6.bep b/dev-vcs/subversion/subversion-1.6.6.bep index 710316480..969735f17 100644 --- a/dev-vcs/subversion/subversion-1.6.6.bep +++ b/dev-vcs/subversion/subversion-1.6.6.bep @@ -10,7 +10,7 @@ BUILD { libtoolize --force --copy --install aclocal -I build -I build/ac-macros autogen.sh - ./configure --prefix=/boot/common --with-apr=/boot/common/bin/apr-1-config --with-apr-util=/boot/common/bin/apu-1-config --with-neon=/boot/common --with-editor=lpe --with-zlib=/boot/common + ./configure --prefix=`finddir B_COMMON_DIRECTORY` --with-apr=`finddir B_COMMON_BIN_DIRECTORY`/apr-1-config --with-apr-util=`finddir B_COMMON_BIN_DIRECTORY`/apu-1-config --with-neon=/boot/common --with-editor=lpe --with-zlib=/boot/common make } diff --git a/dev-vcs/subversion/subversion-1.6.9.bep b/dev-vcs/subversion/subversion-1.6.9.bep index 033d85d5b..858cd6a22 100644 --- a/dev-vcs/subversion/subversion-1.6.9.bep +++ b/dev-vcs/subversion/subversion-1.6.9.bep @@ -10,7 +10,7 @@ BUILD { libtoolize --force --copy --install aclocal -I build -I build/ac-macros autogen.sh - ./configure --prefix=/boot/common --with-apr=/boot/common/bin/apr-1-config --with-apr-util=/boot/common/bin/apu-1-config --with-neon=/boot/common --with-editor=nano --with-zlib=/boot/common + ./configure --prefix=`finddir B_COMMON_DIRECTORY` --with-apr=`finddir B_COMMON_BIN_DIRECTORY`/apr-1-config --with-apr-util=`finddir B_COMMON_BIN_DIRECTORY`/apu-1-config --with-neon=/boot/common --with-editor=nano --with-zlib=/boot/common make } diff --git a/dev-vcs/subversion/subversion-1.7.0-rc2.bep b/dev-vcs/subversion/subversion-1.7.0-rc2.bep new file mode 100644 index 000000000..06ea4070a --- /dev/null +++ b/dev-vcs/subversion/subversion-1.7.0-rc2.bep @@ -0,0 +1,56 @@ +DESCRIPTION="Subversion is an open source version control system" +HOMEPAGE="http://subversion.apache.org" +SRC_URI="http://apache.deathculture.net/subversion/subversion-1.7.0-rc2.tar.bz2" +CHECKSUM_MD5="f0242ae5a2abc14cc22e65c2a23b09c4" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="dev-libs/apr >= 1.4.4 + dev-libs/apr-util >= 1.3.12 + net-misc/neon >= 0.29.6 + dev-libs/libiconv >= 1.13.1 + dev-db/sqlite >= 3.7.7.1 + dev-libs/expat >= 2.0.1 + dev-libs/openssl >= 1.0.0d + dev-libs/libxml2 >= 2.7.8" + +BUILD { + cd subversion-1.7.0-rc2 + libtoolize --force --copy --install + aclocal -I build -I build/ac-macros + autoconf + COMMON_DIR=`finddir B_COMMON_DIRECTORY` + ./configure --prefix=$COMMON_DIR \ + --mandir=`finddir B_COMMON_DOCUMENTATION_DIRECTORY`/man \ + --with-apr=`finddir B_COMMON_BIN_DIRECTORY`/apr-1-config \ + --with-apr-util=`finddir B_COMMON_BIN_DIRECTORY`/apu-1-config \ + --with-neon=$COMMON_DIR \ + --with-zlib=$COMMON_DIR \ + --with-editor=nano \ + --disable-nls + make +} + +INSTALL { + cd subversion-1.7.0-rc2 + make install + if type -p swig > /dev/null;then + if type -p python > /dev/null;then + PYTHON_PKGDIR=$(python -c "from distutils.sysconfig import get_python_lib; print get_python_lib()") + make install-swig-py swig_pydir=${PYTHON_PKGDIR}/libsvn swig_pydir_extra=${PYTHON_PKGDIR}/svn + fi + #if type -p perl > /dev/null;then + # make install-swig-pl + #fi + #if type -p ruby > /dev/null;then + # make install-swig-rb + #fi + fi +} + +TEST { + cd subversion-1.7.0-rc2 + make check +} + +LICENSE="Apache-Subversion" +COPYRIGHT="2011 The Apache Software Foundation" diff --git a/dev-vcs/subversion/subversion-1.7.xx-svn.bep b/dev-vcs/subversion/subversion-1.7.xx-svn.bep index 6519e2d3d..5e5fa165c 100644 --- a/dev-vcs/subversion/subversion-1.7.xx-svn.bep +++ b/dev-vcs/subversion/subversion-1.7.xx-svn.bep @@ -11,9 +11,9 @@ BUILD { aclocal -I build -I build/ac-macros autoconf ./autogen.sh - ./configure --prefix=/boot/common \ - --with-apr=/boot/common/bin/apr-1-config \ - --with-apr-util=/boot/common/bin/apu-1-config \ + ./configure --prefix=`finddir B_COMMON_DIRECTORY` \ + --with-apr=`finddir B_COMMON_BIN_DIRECTORY`/apr-1-config \ + --with-apr-util=`finddir B_COMMON_BIN_DIRECTORY`/apu-1-config \ --with-neon=/boot/common \ --with-editor=nano \ --with-zlib=/boot/common diff --git a/dev-vcs/tig/tig-0.16.bep b/dev-vcs/tig/tig-0.16.bep index bbf3db4da..cbd93d145 100644 --- a/dev-vcs/tig/tig-0.16.bep +++ b/dev-vcs/tig/tig-0.16.bep @@ -9,7 +9,7 @@ BUILD { cd tig-0.16 libtoolize --force --copy --install autoreconf -i - ./configure --prefix=/boot/common + ./configure --prefix=`finddir B_COMMON_DIRECTORY` make } diff --git a/games-action/bzflag/bzflag-2.0.14.bep b/games-action/bzflag/bzflag-2.0.14.bep index c785dfb05..b169244d9 100644 --- a/games-action/bzflag/bzflag-2.0.14.bep +++ b/games-action/bzflag/bzflag-2.0.14.bep @@ -10,7 +10,7 @@ BUILD { mkdir -p m4 libtoolize --force --copy --install ./autogen.sh - ./configure --prefix=/boot/common + ./configure --prefix=`finddir B_COMMON_DIRECTORY` make } diff --git a/games-action/cylindrix/cylindrix-1.0.bep b/games-action/cylindrix/cylindrix-1.0.bep index 5dca733d2..579964e86 100644 --- a/games-action/cylindrix/cylindrix-1.0.bep +++ b/games-action/cylindrix/cylindrix-1.0.bep @@ -7,7 +7,7 @@ STATUS_HAIKU="stable" DEPEND="media-libs/allegro >= 4.4.1.1" BUILD { cd cylindrix - CFLAGS='-O2' ./configure --prefix=/boot/common + CFLAGS='-O2' ./configure --prefix=`finddir B_COMMON_DIRECTORY` make } diff --git a/games-arcade/alienblaster/alienblaster-1.1.0.bep b/games-arcade/alienblaster/alienblaster-1.1.0.bep new file mode 100644 index 000000000..d8ebd7e39 --- /dev/null +++ b/games-arcade/alienblaster/alienblaster-1.1.0.bep @@ -0,0 +1,26 @@ +DESCRIPTION="Action loaded 2D shooter" +MESSAGE="As of right now this app can only be run through terminal" +HOMEPAGE="www.schwardtnet.de/alienblaster" +SRC_URI="http://www.schwardtnet.de/alienblaster/archives/alienblaster-1.1.0.tgz" +CHECKSUM_MD5="27412a868f7d4ae0949036aeb29a6691" +STATUS_HAIKU="stable" +REVISION="1" +DEPEND="media-libs/libsdl >= 1.2.7 + media-libs/sdl-mixer >= 1.2.5" +BUILD { + cd alienblaster + make +} + +INSTALL { + cd alienblaster + GAMEDIR=`finddir B_APPS_DIRECTORY`/"AlienBlaster" + mkdir -p ${DESTDIR}/${GAMEDIR} + cp -af alienBlaster ${DESTDIR}/${GAMEDIR} + cp -af sound ${DESTDIR}/${GAMEDIR} + cp -af images ${DESTDIR}/${GAMEDIR} + cp -af cfg ${DESTDIR}/${GAMEDIR} +} + +LICENSE="GNU GPL v2" +COPYRIGHT="2004 Paul Grathwol, Arne Hormann, Daniel Kuhn, Sonke Schwardt" \ No newline at end of file diff --git a/games-arcade/supertux/patches/supertux-0.1.3.patch b/games-arcade/supertux/patches/supertux-0.1.3.patch new file mode 100644 index 000000000..08c03d475 --- /dev/null +++ b/games-arcade/supertux/patches/supertux-0.1.3.patch @@ -0,0 +1,12 @@ +diff -Naur supertux-0.1.3/data/Makefile.am supertux-0.1.3-haiku/data/Makefile.am +--- supertux-0.1.3/data/Makefile.am 2005-07-08 22:18:26.015990784 +1000 ++++ supertux-0.1.3-haiku/data/Makefile.am 2012-11-28 23:13:56.921960448 +1000 +@@ -2,8 +2,6 @@ + supertux.strf \ + $(wildcard *.txt) \ + CREDITS \ +- $(wildcard sounds/*.wav) \ +- images/icon.xpm \ + $(wildcard images/*.png) \ + $(wildcard images/*.xpm) \ + $(wildcard images/background/*.png) \ diff --git a/games-arcade/supertux/supertux-0.1.3.bep b/games-arcade/supertux/supertux-0.1.3.bep new file mode 100644 index 000000000..159c000b3 --- /dev/null +++ b/games-arcade/supertux/supertux-0.1.3.bep @@ -0,0 +1,22 @@ +DESCRIPTION="SuperTux is a classic 2D jump'n run sidescroller game in a style similar to the original Super Mario games." +HOMEPAGE="http://supertux.lethargik.org/" +SRC_URI="http://supertux.googlecode.com/files/supertux-0.1.3.tar.bz2" +STATUS_HAIKU="unstable" +CHECKSUM_MD5="f2fc288459f33d5cd8f645fbca737a63" +DEPEND=">=media-libs/libsdl-1.2.4" +REVISION="1" + +BUILD { + cd supertux-0.1.3 + autoreconf --force --install + ./configure --prefix="`finddir B_COMMON_DIRECTORY`" + make +} + +INSTALL { + cd supertux-0.1.3 + make install +} + +LICENSE="GNU GPL v2" +COPYRIGHT="2003 SuperTux Devel Team" diff --git a/games-emulation/dosbox/dosbox-0.74-svn.bep b/games-emulation/dosbox/dosbox-0.74-svn.bep new file mode 100644 index 000000000..0051b990a --- /dev/null +++ b/games-emulation/dosbox/dosbox-0.74-svn.bep @@ -0,0 +1,25 @@ +DESCRIPTION="an x86 emulator with DOS" +MESSAGE="This port requires gcc4." +HOMEPAGE="http://www.dosbox.com/" +SRC_URI="svn://svn.code.sf.net/p/dosbox/code-0/dosbox/trunk/" +REVISION="1" +STATUS_HAIKU="unstable" +DEPEND="media-libs/libsdl >= 1.2 < " + +BUILD { + cd dosbox-0.74-svn + libtoolize --force --copy --install + ./autogen.sh + ./configure --prefix=/boot/common --disable-dynamic-x86 + make +} + +INSTALL { + cd dosbox-0.74-svn + make install +} + +# no TEST script available + +COPYRIGHT="2012 The DOSBox Team" +LICENSE="GNU GPL v2" diff --git a/games-emulation/dosbox/dosbox-0.74-svn.patch b/games-emulation/dosbox/dosbox-0.74-svn.patch new file mode 100644 index 000000000..1e81c8f9e --- /dev/null +++ b/games-emulation/dosbox/dosbox-0.74-svn.patch @@ -0,0 +1,20 @@ +Index: configure.in +=================================================================== +--- configure.in (revision 3798) ++++ configure.in (working copy) +@@ -121,13 +121,8 @@ + + + dnl Check for powf +-AC_MSG_CHECKING(for powf in libm); +-LIBS_BACKUP=$LIBS; +-LIBS="$LIBS -lm"; +-AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include ]],[[ +- powf(1.0f, 1.0f); +-]])], [AC_MSG_RESULT(yes)], [AC_DEFINE([DB_HAVE_NO_POWF],[1],[libm doesn't include powf])]) +-LIBS=$LIBS_BACKUP ++AC_SEARCH_LIBS([powf], [m], [AC_MSG_RESULT(yes)], [AC_DEFINE([DB_HAVE_NO_POWF],[1],[no powf function available])]) ++AC_SEARCH_LIBS([getpeername], [network]) + + + dnl Checks for libraries. diff --git a/games-emulation/visualboyadvance/patches/visualboyadvance-1.7.2.patch b/games-emulation/visualboyadvance/patches/visualboyadvance-1.7.2.patch new file mode 100644 index 000000000..1f45d7d7b --- /dev/null +++ b/games-emulation/visualboyadvance/patches/visualboyadvance-1.7.2.patch @@ -0,0 +1,11 @@ +diff -Naur VisualBoyAdvance-1.7.2/configure.in VisualBoyAdvance-1.7.2-haiku/configure.in +--- VisualBoyAdvance-1.7.2/configure.in 2004-05-13 21:38:35.039583744 +0000 ++++ VisualBoyAdvance-1.7.2-haiku/configure.in 2010-05-01 03:37:15.941621248 +0000 +@@ -66,6 +66,7 @@ + AC_CHECK_LIB(png, png_create_write_struct, + , AC_MSG_ERROR([*** Cannot compile without libpng.]), [-lz]) + AC_CHECK_LIB(pthread, pthread_yield) ++AC_CHECK_LIB(network, socket) + + dnl Checks for header files. + AC_PATH_X diff --git a/games-emulation/visualboyadvance/visualboyadvance-1.7.2.bep b/games-emulation/visualboyadvance/visualboyadvance-1.7.2.bep new file mode 100644 index 000000000..68b9d2f0b --- /dev/null +++ b/games-emulation/visualboyadvance/visualboyadvance-1.7.2.bep @@ -0,0 +1,31 @@ +DESCRIPTION="VisualBoyAdvance" +HOMEPAGE="http://vba.ngemu.com" +SRC_URI="http://sourceforge.net/projects/vba/files/VisualBoyAdvance/1.7.2/VisualBoyAdvance-src-1.7.2.tar.gz" +CHECKSUM_MD5="cc02339e3fd8efd9f23121b0a2f81fd8" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="dev-lang/nasm >= 2.03.01 + media-libs/libsdl >= 1.2.14 + media-libs/sdl-mixer >= 1.2.11" + +BUILD { + cd VisualBoyAdvance-1.7.2 + libtoolize --force --copy --install + autoreconf -i + ./configure --prefix=`finddir B_COMMON_DIRECTORY` \ + --enable-c-core --disable-profiling --without-mmx + make +} + +INSTALL { + cd VisualBoyAdvance-1.7.2/src + GAMEDIR=`finddir B_APPS_DIRECTORY`/Visualboyadvance + mkdir -p ${DESTDIR}/${GAMEDIR} + cp -af VisualBoyAdvance.cfg ${DESTDIR}/${GAMEDIR} + cd sdl + cp -af TestEmu ${DESTDIR}/${GAMEDIR} + cp -af VisualBoyAdvance ${DESTDIR}/${GAMEDIR} +} + +LICENSE="GNU GPL v2" +COPYRIGHT="2002 Forgotten" diff --git a/games-misc/sdljoytest/sdljoytest-11102003.bep b/games-misc/sdljoytest/sdljoytest-11102003.bep new file mode 100644 index 000000000..bd4f42bf0 --- /dev/null +++ b/games-misc/sdljoytest/sdljoytest-11102003.bep @@ -0,0 +1,26 @@ +DESCRIPTION="Simple Direct Media Layer" +HOMEPAGE="http://sdljoytest.sourceforge.net" +SRC_URI="http://sourceforge.net/projects/sdljoytest/files/sdljoytest/SDLJoytest-GL/SDLJoytest-GL-11102003.tar.bz2/download" +CHECKSUM_MD5="bd80f7a1537dc0e17c9d524f0b29f5ee" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="" + +BUILD { + cd SDLJoytest-GL + sed -i 's/\-lpthread/ /' Makefile + make +} + +INSTALL { + cd SDLJoytest-GL + BINDIR=${DESTDIR}`finddir B_COMMON_BIN_DIRECTORY` + MANDIR=${DESTDIR}`finddir B_COMMON_DATA_DIRECTORY`/man/man1 + mkdir -p ${BINDIR} + mkdir -p ${MANDIR} + cp SDLJoytest-GL ${BINDIR} + cp SDLJoytest.1 ${DESTDIR}`finddir B_COMMON_DATA_DIRECTORY`/man/man1 +} + +LICENSE="GNU GPL v2" +COPYRIGHT="2003 Samuel E. Bray" diff --git a/games-puzzle/abrick/abrick-1.12.bep b/games-puzzle/abrick/abrick-1.12.bep new file mode 100644 index 000000000..b15ac2326 --- /dev/null +++ b/games-puzzle/abrick/abrick-1.12.bep @@ -0,0 +1,23 @@ +DESCRIPTION="Abandoned Bricks is a tetris like cross-platform puzzle game written in C++ using the SDL Library" +HOMEPAGE="www.abrick.sourceforge.net" +SRC_URI="http://sourceforge.net/projects/abrick/files/abrick/abrick-1.12/abrick-1.12-src.tar.gz" +CHECKSUM_MD5="56bdb952e2c247abfccf6e4a5251753c" +STATUS_HAIKU="stable" +REVISION="1" +DEPEND="media-libs/libsdl >= 1.2.14 + media-libs/sdl-mixer >=1.2.0" +BUILD { + cd abrick-1.12-src + make +} + +INSTALL { + cd abrick-1.12-src + GAMEDIR=`finddir B_APPS_DIRECTORY`/abrick + mkdir -p ${DESTDIR}/${GAMEDIR} + cp -af abrick ${DESTDIR}/${GAMEDIR} + cp -af data ${DESTDIR}/${GAMEDIR} +} + +LICENSE="GNU GPL v2" +COPYRIGHT="2004, 2005 Milan Babuskov " diff --git a/games-puzzle/wizznic/patches/wizznic-0.9.9.patch b/games-puzzle/wizznic/patches/wizznic-0.9.9.patch new file mode 100644 index 000000000..dbc2d7aba --- /dev/null +++ b/games-puzzle/wizznic/patches/wizznic-0.9.9.patch @@ -0,0 +1,12 @@ +diff -ur wizznic-0.9.9-src/Makefile wizznic-0.9.9-src-haiku/Makefile +--- wizznic-0.9.9-src/Makefile 2011-12-29 22:12:52.035651584 +0000 ++++ wizznic-0.9.9-src-haiku/Makefile 2012-12-06 22:26:56.127926272 +0000 +@@ -19,7 +19,7 @@ + INCS = -I. -I/usr/include -I/usr/include/SDL + + LDFLAGS=$(CFLAGS) +-LIBS = -lSDL -lSDL_image -lSDL_mixer -lpng -lm -lz -lpthread ++LIBS = -lSDL -lSDL_image -lSDL_mixer -lpng -lz + + #Are we compiling with gl? + ifneq ($(WITH_OPENGL),false) diff --git a/games-puzzle/wizznic/wizznic-0.9.9.bep b/games-puzzle/wizznic/wizznic-0.9.9.bep new file mode 100644 index 000000000..f81063a12 --- /dev/null +++ b/games-puzzle/wizznic/wizznic-0.9.9.bep @@ -0,0 +1,30 @@ +DESCRIPTION="Wizznic!" +MESSAGE="Only compiles with gcc4, and only runs from terminal!" +HOMEPAGE="http://wizznic.sourceforge.net/" +SRC_URI="http://sourceforge.net/projects/wizznic/files/Source%20Releases/wizznic-0.9.9-src.tar.bz2/download" +CHECKSUM_MD5="1b017cd84903f40f2a3ae7aef9951e8d" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="media-lib/libsdl >= 1.2.14 + media-lib/sdl-mixer >= 1.2.11 + media-lib/sdl-image >= 1.2.10" +BUILD { + cd wizznic-0.9.9-src + make +} + +INSTALL { + cd wizznic-0.9.9-src + GAMEDIR=`finddir B_APPS_DIRECTORY`/"Wizznic" + mkdir -p ${DESTDIR}/${GAMEDIR} + cp -af wizznic ${DESTDIR}/${GAMEDIR} + cp -af data ${DESTDIR}/${GAMEDIR} + cp -af editorlevels ${DESTDIR}/${GAMEDIR} + cp -af highscores ${DESTDIR}/${GAMEDIR} + cp -af packs ${DESTDIR}/${GAMEDIR} + + +} + +LICENSE="GNU GPL v3" +COPYRIGHT="2011 Jimmy Christensen" diff --git a/games-rpg/freedroid/freedroid-1.0.2.bep b/games-rpg/freedroid/freedroid-1.0.2.bep new file mode 100644 index 000000000..5feecf4fd --- /dev/null +++ b/games-rpg/freedroid/freedroid-1.0.2.bep @@ -0,0 +1,24 @@ +DESCRIPTION="Freedroid Classic Game" +HOMEPAGE="http://freedroid.sourceforge.net/" +SRC_URI="http://sourceforge.net/projects/freedroid/files/freedroidClassic/FreedroidClassic-1.0.2/freedroid-1.0.2.tar.gz" +REVISION="1" +DEPEND="SDL >= 1.2.3 " +CHECKSUM_MD5="585a65f61c2cd308ab45d5c514f695dc" +BUILD { + cd freedroid-1.0.2 + libtoolize --force --copy --install + aclocal + autoconf + automake +# chmod 755 configure + ./configure --prefix=`finddir B_APPS_DIRECTORY`/FreeDroid + make +} + +INSTALL { + cd freedroid-1.0.2 + make install +} +LICENSE="GNU GPL v2" +COPYRIGHT="2002-2010 The Freedroid Team" + diff --git a/games-rpg/freedroid/patches/freedroid-1.0.2.patch b/games-rpg/freedroid/patches/freedroid-1.0.2.patch new file mode 100644 index 000000000..1d4f5ca62 --- /dev/null +++ b/games-rpg/freedroid/patches/freedroid-1.0.2.patch @@ -0,0 +1,16 @@ +diff -urN freedroid-1.0.2/configure.ac freedroid-1.0.2-haiku/configure.ac +--- freedroid-1.0.2/configure.ac 2003-08-09 10:04:33.031981568 -0700 ++++ freedroid-1.0.2-haiku/configure.ac 2012-12-12 22:59:04.623116288 -0800 +@@ -20,9 +20,9 @@ + AC_PROG_MAKE_SET + + # Checks for libraries. +-AC_CHECK_LIB([m], [sin],, +- AC_MSG_ERROR([libm not found!! +-No maths library?? What kinda crazy system is that??])) ++ ++AC_CHECK_LIB(m, sin) ++AC_SUBST(LIBM) + + ##AC_CHECK_LIB([c], [printf],, AC_MSG_ERROR([libc not found!! ])) + diff --git a/games-simulation/openttd/openttd-1.2.3.bep b/games-simulation/openttd/openttd-1.2.3.bep new file mode 100644 index 000000000..e97ac9d7c --- /dev/null +++ b/games-simulation/openttd/openttd-1.2.3.bep @@ -0,0 +1,30 @@ +DESCRIPTION="OpenTTD is a clone of Transport Tycoon Deluxe" +MESSAGE="This port requires gcc4. You require game graphics/sound files to use this port" +HOMEPAGE="http://www.openttd.org" +SRC_URI="http://binaries.openttd.org/releases/1.2.3/openttd-1.2.3-source.tar.xz" +CHECKSUM_MD5="e1cf40f7c29f8f4b3e96c21626db241d" +REVISION="1" +STATUS_HAIKU="unstable" +DEPEND="media-libs/libsdl, + zlib, + xz-utils, + pkgconfig, + lzo" + +BUILD { + cd openttd-1.2.3 + ./configure --prefix=`finddir B_COMMON_DIRECTORY` + make +} + +INSTALL { + cd openttd-1.2.3 + make install + cp -R bundle /boot/apps + mv /boot/apps/bundle /boot/apps/OpenTTD\ 1.2.3 +} + +# no TEST script available + +COPYRIGHT="2005-2013 OpenTTD Team" +LICENSE="GNU GPL v2" diff --git a/gnome-base/gnome-common/gnome-common-2.28.bep b/gnome-base/gnome-common/gnome-common-2.28.bep index 0a9982fe7..b5cdf1967 100644 --- a/gnome-base/gnome-common/gnome-common-2.28.bep +++ b/gnome-base/gnome-common/gnome-common-2.28.bep @@ -7,7 +7,7 @@ DEPEND="" BUILD { cd gnome-common-2.28 ./autogen.sh - ./configure --prefix=/boot/common + ./configure --prefix=`finddir B_COMMON_DIRECTORY` make } diff --git a/gnome-extra/libgsf/libgsf-1.14.18.bep b/gnome-extra/libgsf/libgsf-1.14.18.bep index 1f585b8a8..f91ef5d09 100644 --- a/gnome-extra/libgsf/libgsf-1.14.18.bep +++ b/gnome-extra/libgsf/libgsf-1.14.18.bep @@ -13,7 +13,7 @@ BUILD { cd libgsf-1.14.18 libtoolize --force --copy --install autoreconf -i - ./configure --prefix=/boot/common + ./configure --prefix=`finddir B_COMMON_DIRECTORY` make cd thumbnailer make diff --git a/haiku-apps/W6/W6-1.7.bep b/haiku-apps/W6/W6-1.7.bep new file mode 100644 index 000000000..70d7588e6 --- /dev/null +++ b/haiku-apps/W6/W6-1.7.bep @@ -0,0 +1,26 @@ +DESCRIPTION="What Went Wrong? it's a World Wide War!" +HOMEPAGE="http://lema.link-u.com/be/" +SRC_URI="http://lema.link-u.com/be/W6Haiku.zip" +CHECKSUM_MD5="763e608d79ee6de6efe6dcb77600a331" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="" + +BUILD { + cd W6Haiku + make + cd ../ + wget http://lema.link-u.com/be/W6forR5-with-sources.zip + unzip W6forR5-with-sources.zip + cp -r W6/w6s W6Haiku +} + +INSTALL { + cd W6Haiku + mkdir -p $DESTDIR`finddir B_APPS_DIRECTORY`/W6 + install -m 0755 objects.x86-gcc`setgcc | tail -c -2`-release/W6Haiku $DESTDIR`finddir B_APPS_DIRECTORY`/W6/W6 + cp -r w6s $DESTDIR`finddir B_APPS_DIRECTORY`/W6 +} + +LICENSE="Public Domain" +COPYRIGHT="1998-1999 Santiago Lema" diff --git a/haiku-apps/W6/patches/w6-1.7.patch b/haiku-apps/W6/patches/w6-1.7.patch new file mode 100644 index 000000000..a99e78ed2 --- /dev/null +++ b/haiku-apps/W6/patches/w6-1.7.patch @@ -0,0 +1,34 @@ +diff -Naur W6Haiku/InfoView.cpp W6Haiku-haiku/InfoView.cpp +--- W6Haiku/InfoView.cpp 2008-08-16 02:57:03.065798144 +0000 ++++ W6Haiku-haiku/InfoView.cpp 2013-01-13 11:59:46.657457152 +0000 +@@ -280,7 +280,7 @@ + sprintf(str2,_jour->month_name); strcat(str,str2); + sprintf(str2," %i, %i",_jour->month_counter, _jour->year); strcat(str,str2); + strcat(str,")"); +- Window()->SetTitle(str); ++ //Window()->SetTitle(str); + + + //A l'ancienne +@@ -567,4 +567,4 @@ + x->Close(); + delete upBitmap; + delete downBitmap; +-} +\ No newline at end of file ++} +diff -Naur W6Haiku/W6.cpp W6Haiku-haiku/W6.cpp +--- W6Haiku/W6.cpp 2008-08-16 04:35:06.002359296 +0000 ++++ W6Haiku-haiku/W6.cpp 2013-01-13 12:00:52.285736960 +0000 +@@ -89,9 +89,9 @@ + + + //classe qui tourne en permanence et qui fait les daypassed (et par conséquent, les battle etc. +- run_me = new Running(_country,_group,_politic,_weapon,_jour); ++ //run_me = new Running(_country,_group,_politic,_weapon,_jour); + runWin = new BWindow(BRect(0,0,0,0), "W6 time run", B_TITLED_WINDOW, B_NOT_RESIZABLE); +- runWin->AddChild(run_me); //sinon le pulse fonctionne pas... ++ //runWin->AddChild(run_me); //sinon le pulse fonctionne pas... + runWin->Lock(); + runWin->Show(); //faut faire show pour lancer le pulse dans les views + runWin->Hide(); //quitte à hider la window ensuite diff --git a/haiku-apps/album/album-0.9.2.bep b/haiku-apps/album/album-0.9.2.bep new file mode 100644 index 000000000..dd26abcd6 --- /dev/null +++ b/haiku-apps/album/album-0.9.2.bep @@ -0,0 +1,18 @@ +DESCRIPTION="An image viewer/organiser designed for BeOS-compatible operating systems" +HOMEPAGE="http://users.volja.net/mkovac1/proj/album/" +SRC_URI="http://users.volja.net/mkovac1/proj/album/album-0.9.2.zip" +CHECKSUM_MD5="d22d1850ba5807c5da0432ecd530c372" +STATUS_HAIKU="stable" +REVISION="1" +DEPEND=" " +BUILD { + cd album-0.9.2/src + make +} +INSTALL { + cd album-0.9.2 + mkdir -p ${DESTDIR}/`finddir B_APPS_DIRECTORY`/Album + cp -a Album ${DESTDIR}/`finddir B_APPS_DIRECTORY`/Album +} +LICENSE="MIT" +COPYRIGHT="2006-2009 by Matjaž Kovač" \ No newline at end of file diff --git a/haiku-apps/aplayer/aplayer-4.0.1.bep b/haiku-apps/aplayer/aplayer-4.0.1.bep new file mode 100644 index 000000000..5152ab11d --- /dev/null +++ b/haiku-apps/aplayer/aplayer-4.0.1.bep @@ -0,0 +1,21 @@ +DESCRIPTION="APlayer is a module player and can play a lot of different music file formats, from Amiga and elsewhere." +HOMEPAGE="http://pulkomandy.tk/projects/APlayer" +SRC_URI="svn://pulkomandy.tk/APlayer/trunk/" +REVISION="1" +STATUS_HAIKU="broken" +DEPEND="" + +BUILD { + cd aplayer-4.0.1/Master + make +} + +INSTALL { + mkdir -p ${DESTDIR}/`finddir B_APPS_DIRECTORY`/APlayer + cp -a APlayer ${DESTDIR}/`finddir B_APPS_DIRECTORY`/APlayer +} + +LICENSE="Artistic Licence" +COPYRIGHT="1994-2002 Polycode + 2011-2012 Adrien Destugues" + diff --git a/haiku-apps/armyknife/armyknife-61.bep b/haiku-apps/armyknife/armyknife-61.bep index c80674051..252077a6a 100644 --- a/haiku-apps/armyknife/armyknife-61.bep +++ b/haiku-apps/armyknife/armyknife-61.bep @@ -1,6 +1,6 @@ DESCRIPTION="ArmyKnife is an application that lets you edit the metadata of audio files." HOMEPAGE="http://dev.osdrawer.net/projects/armyknife" -SRC_URI="svn+http://svn.osdrawer.net/armyknife" +SRC_URI="svn+http://svn.osdrawer.net/armyknife#61" REVISION="1" STATUS_HAIKU="stable" DEPEND="media-libs/taglib >= 1.6.3" diff --git a/haiku-apps/armyknife/armyknife-62.bep b/haiku-apps/armyknife/armyknife-62.bep new file mode 100644 index 000000000..5bff3c87a --- /dev/null +++ b/haiku-apps/armyknife/armyknife-62.bep @@ -0,0 +1,18 @@ +DESCRIPTION="ArmyKnife is an application that lets you edit the metadata of audio files." +HOMEPAGE="http://dev.osdrawer.net/projects/armyknife" +SRC_URI="svn+http://svn.osdrawer.net/armyknife#62" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="media-libs/taglib >= 1.6.3" +#CHECKSUM_MD5="" +BUILD { + cd armyknife-62 + make +} + +INSTALL { + cd armyknife-62 + make zipfile + mkdir -p ${DESTDIR}/boot/apps + unzip release/ArmyKnife-*.zip -d ${DESTDIR}/boot/apps +} diff --git a/haiku-apps/armyknife/armyknife-63.bep b/haiku-apps/armyknife/armyknife-63.bep new file mode 100644 index 000000000..c8cd02afa --- /dev/null +++ b/haiku-apps/armyknife/armyknife-63.bep @@ -0,0 +1,18 @@ +DESCRIPTION="ArmyKnife is an application that lets you edit the metadata of audio files." +HOMEPAGE="http://dev.osdrawer.net/projects/armyknife" +SRC_URI="svn+http://svn.osdrawer.net/armyknife#63" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="media-libs/taglib >= 1.6.3" +#CHECKSUM_MD5="" +BUILD { + cd armyknife-63 + make +} + +INSTALL { + cd armyknife-63 + make zipfile + mkdir -p ${DESTDIR}/boot/apps + unzip release/ArmyKnife-*.zip -d ${DESTDIR}/boot/apps +} diff --git a/haiku-apps/armyknife/armyknife-999-git.bep b/haiku-apps/armyknife/armyknife-999-git.bep new file mode 100644 index 000000000..6307acc63 --- /dev/null +++ b/haiku-apps/armyknife/armyknife-999-git.bep @@ -0,0 +1,19 @@ +DESCRIPTION="ArmyKnife is an application that lets you edit the metadata of audio files." +HOMEPAGE="http://dev.osdrawer.net/projects/armyknife" +SRC_URI="git+https://github.com/scottmc/ArmyKnife.git" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="media-libs/taglib >= 1.6.3" +#CHECKSUM_MD5="" +BUILD { + cd armyknife-999-git + make +} + +INSTALL { + cd armyknife-999-git + make zipfile + mkdir -p ${DESTDIR}/boot/apps + unzip release/ArmyKnife-*.zip -d ${DESTDIR}/boot/apps +} + diff --git a/haiku-apps/artpaint/artpaint-339.bep b/haiku-apps/artpaint/artpaint-339.bep index c62b03f98..c0514179e 100644 --- a/haiku-apps/artpaint/artpaint-339.bep +++ b/haiku-apps/artpaint/artpaint-339.bep @@ -2,7 +2,7 @@ DESCRIPTION="Artpaint is a painting and image processing program" HOMEPAGE="http://dev.osdrawer.net/projects/artpaint" SRC_URI="svn+http://svn.osdrawer.net/artpaint/trunk" REVISION="1" -STATUS_HAIKU="stable" +STATUS_HAIKU="broken" DEPEND="" #CHECKSUM_MD5="" BUILD { diff --git a/haiku-apps/beae/beae-25.bep b/haiku-apps/beae/beae-25.bep new file mode 100644 index 000000000..ae9d26e62 --- /dev/null +++ b/haiku-apps/beae/beae-25.bep @@ -0,0 +1,27 @@ +DESCRIPTION="BeAE - Audio Editor" +HOMEPAGE="http://dev.osdrawer.net/projects/beae/" +SRC_URI="svn+http://svn.osdrawer.net/beae/trunk#25" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="dev-util/cmake >= 2.8.0" +#CHECKSUM_MD5="" +BUILD { + cd beae-25 + cmake . + make +} + +INSTALL { + cd beae-25 + mkdir -p ${DESTDIR}/boot/apps + cp -a BeAE ${DESTDIR}/boot/apps + cp -a build/BeAE ${DESTDIR}/boot/apps/BeAE + mkdir -p ${DESTDIR}/boot/common/data/licenses + cp -a license.txt ${DESTDIR}/boot/common/data/licenses/BeAE + rm -f ${DESTDIR}/boot/apps/BeAE/.OptionalPackageDescription + if [ -z ${DESTDIR} ];then + find /boot/apps/BeAE -type d -name ".svn" | xargs rm -rf + fi +} +LICENSE="BSD (3-clause)" +COPYRIGHT="2003 Xentronix" diff --git a/haiku-apps/beam/beam-1.2alpha.bep b/haiku-apps/beam/beam-1.2alpha.bep new file mode 100644 index 000000000..f8fe770d2 --- /dev/null +++ b/haiku-apps/beam/beam-1.2alpha.bep @@ -0,0 +1,26 @@ +DESCRIPTION="An e-mail client." +HOMEPAGE="http://beam.sourceforge.net" +SRC_URI="git://beam.git.sourceforge.net/gitroot/beam/beam" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="liblayout >= 1.4.0 + libpcre >= 8.00" +#CHECKSUM_MD5="" +BUILD { + cd beam-1.2alpha + jam +} + +INSTALL { + cd beam-1.2alpha + mkdir -p ${DESTDIR}/boot/apps/Beam + cp -a generated/distro-haiku/* ${DESTDIR}/boot/apps/Beam + cp -a Changes.txt GnuGeneralPublicLicense.txt Readme.txt ${DESTDIR}/boot/apps/Beam + mkdir -p ${DESTDIR}/boot/apps/Beam/Icons + cp -a resources/iconset* ${DESTDIR}/boot/apps/Beam/Icons + cd ${DESTDIR}/boot/apps/Beam/tools + ln -s ../lib . + ln -s ../add-ons . +} +LICENSE="GNU GPL v2" +COPYRIGHT="2000-2012 Oliver Tappe" diff --git a/haiku-apps/beezer/beezer-1.bep b/haiku-apps/beezer/beezer-1.bep new file mode 100644 index 000000000..bb215a60a --- /dev/null +++ b/haiku-apps/beezer/beezer-1.bep @@ -0,0 +1,26 @@ +DESCRIPTION="beezer, an archiving tool for the Haiku operating system, similar to winzip" +HOMEPAGE="https://bitbucket.org/cpr/beezer" +SRC_URI="https://bitbucket.org/cpr/beezer/get/82199f683571.zip" +REVISION="1" +STATUS_HAIKU="stable" +CHECKSUM_MD5="b27479b8a8afc1bc105ad9a6d8911f74" +DEPEND="cmake >= 2.8" +BUILD { + cd cpr-beezer-82199f683571/Source + cmake . + make +} + +INSTALL { + cd cpr-beezer-82199f683571/Source/build + BEEZER_DIR=${DESTDIR}/`finddir B_APPS_DIRECTORY`/Beezer + mkdir -p $BEEZER_DIR/add-ons + cp -a Beezer $BEEZER_DIR + cp -a add-ons/* $BEEZER_DIR/add-ons + mkdir -p ${DESTDIR}/`finddir B_USER_ADDONS_DIRECTORY`/Tracker + cp -a TrackerAddOn/BeezerAddOn ${DESTDIR}/`finddir B_USER_ADDONS_DIRECTORY`/Tracker +} + +LICENSE="BSD (3-clause)" +COPYRIGHT="2009 Ramshankar (aka Teknomancer) + 2011-2012 Chris Roberts" diff --git a/haiku-apps/beget/beget-1.2.3.bep b/haiku-apps/beget/beget-1.2.3.bep new file mode 100644 index 000000000..c87a6858f --- /dev/null +++ b/haiku-apps/beget/beget-1.2.3.bep @@ -0,0 +1,24 @@ +DESCRIPTION="A GUI frontend to the command-line downloader wget" +HOMEPAGE="http://dev.osdrawer.net/projects/beget" +SRC_URI="svn+http://svn.osdrawer.net/beget#6" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="net-misc/wget" + +BUILD { + cd beget-1.2.3 + cmake . + make +} + +INSTALL { + cd beget-1.2.3 + mkdir -p $DESTDIR`finddir B_APPS_DIRECTORY` + cp BeGet $DESTDIR`finddir B_APPS_DIRECTORY` + mkdir -p $DESTDIR`finddir B_USER_DESKBAR_DIRECTORY` + ln -s $DESTDIR`finddir B_APPS_DIRECTORY`/BeGet \ + $DESTDIR`finddir B_USER_DESKBAR_DIRECTORY`/Applications +} + +LICENSE="GNU GPL v2" +COPYRIGHT="1999-2001 Atsushi Takamatsu" diff --git a/haiku-apps/behappy/behappy-16.bep b/haiku-apps/behappy/behappy-16.bep new file mode 100644 index 000000000..82da09219 --- /dev/null +++ b/haiku-apps/behappy/behappy-16.bep @@ -0,0 +1,19 @@ +DESCRIPTION="HTML documentation viewer" +HOMEPAGE="http://www.becoz.org/beos-en/behappy" +SRC_URI="svn+http://svn.osdrawer.net/behappy/trunk#16" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="www-client/netsurf >= 2.6" +#CHECKSUM_MD5="" +BUILD { + cd "behappy-16" + make +} + +INSTALL { + cd "behappy-16" +} + +LICENSE="MIT" +COPYRIGHT="2006 Sylvain Tertois + 2008-2009 François Revol" diff --git a/haiku-apps/behappy/patches/Makefile b/haiku-apps/behappy/patches/Makefile new file mode 100644 index 000000000..5ff97b937 --- /dev/null +++ b/haiku-apps/behappy/patches/Makefile @@ -0,0 +1,27 @@ +NAME= BeHappy +TYPE= APP +SRCS= BeHappy.cpp AddOnPrefFile.cpp Eraser.cpp Preferences.cpp Tasks.cpp TranslateEntities.cpp Version.cpp WindowMonitor.cpp InfoWindow.cpp MainWindow.cpp PathWindow.cpp BrowseView.cpp Mover.cpp NetView.cpp LanguageHandler.cpp Locale.cpp HTMLProject.cpp HTMLFile.cpp HappyLink.cpp +RSRCS= Netpositive Replicant.rsrc BeHappy.rsrc +LIBS= /boot/develop/lib/x86/libbe.so /boot/develop/lib/x86/libroot.so /boot/develop/lib/x86/libtracker.so /boot/develop/lib/x86/libsupc++.so +LIBPATHS= +SYSTEM_INCLUDE_PATHS= /boot/develop/headers/be /boot/develop/headers/cpp /boot/develop/headers/posix /boot/develop/lib /boot/beos/system/lib +LOCAL_INCLUDE_PATHS= +OPTIMIZE=FULL +# specify any preprocessor symbols to be defined. The symbols will not +# have their values set automatically; you must supply the value (if any) +# to use. For example, setting DEFINES to "DEBUG=1" will cause the +# compiler option "-DDEBUG=1" to be used. Setting DEFINES to "DEBUG" +# would pass "-DDEBUG" on the compiler's command line. +DEFINES= +# specify special warning levels +# if unspecified default warnings will be used +# NONE = supress all warnings +# ALL = enable all warnings +WARNINGS = +# Build with debugging symbols if set to TRUE +SYMBOLS= +COMPILER_FLAGS=-Woverloaded-virtual -funsigned-bitfields -Wwrite-strings -D _NODEBUG +LINKER_FLAGS= + +## include the makefile-engine +include $(BUILDHOME)/etc/makefile-engine diff --git a/haiku-apps/bepdf/bepdf-1.1.1b2-532.bep b/haiku-apps/bepdf/bepdf-1.1.1b4.bep similarity index 54% rename from haiku-apps/bepdf/bepdf-1.1.1b2-532.bep rename to haiku-apps/bepdf/bepdf-1.1.1b4.bep index cb215662e..61df256e4 100644 --- a/haiku-apps/bepdf/bepdf-1.1.1b2-532.bep +++ b/haiku-apps/bepdf/bepdf-1.1.1b4.bep @@ -1,22 +1,20 @@ DESCRIPTION="BePDF is a PDF viewer for the BeOS, Haiku & Zeta" HOMEPAGE="http://bepdf.sourceforge.net/" -SRC_URI="svn+http://bepdf.svn.sourceforge.net/svnroot/bepdf/trunk#532" +SRC_URI="cvs://:pserver:anonymous@bepdf.cvs.sourceforge.net:/cvsroot/bepdf/BePDF" REVISION="1" -STATUS_HAIKU="broken" -DEPEND="" +STATUS_HAIKU="stable" +DEPEND="app-text/htmldoc == 1.8.27" BUILD { export BEPDF_BUILD_GCC=`setgcc | cut -d/ -f2` - cd bepdf-1.1.1b2-532 + cd bepdf-1.1.1b4 ./build.sh package } INSTALL { - cd bepdf-1.1.1b2-532 - - # TODO:... - echo "Implement me ..." - exit 1 + cd bepdf-1.1.1b4 + mkdir -p ${DESTDIR}/boot/apps + unzip generated/BePDF-1.1.1b4.x86.zip -d ${DESTDIR}/boot/apps } COPYRIGHT="1997 Benoit Triquet diff --git a/haiku-apps/beshare/beshare-4.bep b/haiku-apps/beshare/beshare-4.bep new file mode 100644 index 000000000..70162a75d --- /dev/null +++ b/haiku-apps/beshare/beshare-4.bep @@ -0,0 +1,18 @@ +DESCRIPTION="Beshare" +HOMEPAGE="http://dev.osdrawer.net/projects/beshare/" +SRC_URI="svn+http://svn.osdrawer.net/beshare" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="muscle >= 4.63" +#CHECKSUM_MD5="" +BUILD { + cd beshare-4/source + make +} + +INSTALL { + cd beshare-4 +} + +#LICENSE="" +#COPYRIGHT="" diff --git a/haiku-apps/bowser/bowser-1.1.1-cvs.bep b/haiku-apps/bowser/bowser-1.1.1-cvs.bep new file mode 100644 index 000000000..03e44cf2b --- /dev/null +++ b/haiku-apps/bowser/bowser-1.1.1-cvs.bep @@ -0,0 +1,17 @@ +DESCRIPTION="bowser" +HOMEPAGE="http://bowser.sourceforge.net" +SRC_URI="cvs://:pserver:anonymous@bowser.cvs.sourceforge.net:/cvsroot/bowser/Bowser" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="" + +BUILD { + +} + +INSTALL { + +} + +#COPYRIGHT="" +#LICENSE=" diff --git a/haiku-apps/burnitnow/burnitnow-2-svn.bep b/haiku-apps/burnitnow/burnitnow-2-svn.bep new file mode 100644 index 000000000..375b2f3d8 --- /dev/null +++ b/haiku-apps/burnitnow/burnitnow-2-svn.bep @@ -0,0 +1,24 @@ +DESCRIPTION="BurnItNow - GUI CD burning app for Haiku" +HOMEPAGE="http://dev.osdrawer.net/projects/burnitnow" +SRC_URI="svn+http://svn.osdrawer.net/burnitnow/trunk" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="dev-util/cmake >= 2.8.0 + app-cdr/cdrtools > 3.00" +#CHECKSUM_MD5="" +BUILD { + cd burnitnow-2-svn + cmake . + make +} + +INSTALL { + cd burnitnow-2-svn + mkdir -p ${DESTDIR}/boot/apps/BurnItNow + cp -a BurnItNow ${DESTDIR}/boot/apps/BurnItNow + if [ -z ${DESTDIR} ];then + find /boot/apps/BurnItNow -type d -name ".svn" | xargs rm -rf + fi +} +LICENSE="MIT" +COPYRIGHT="Copyright 2010-2011 BurnItNow Team" diff --git a/haiku-apps/burnitnow/burnitnow-43.bep b/haiku-apps/burnitnow/burnitnow-43.bep new file mode 100644 index 000000000..afb02e8fa --- /dev/null +++ b/haiku-apps/burnitnow/burnitnow-43.bep @@ -0,0 +1,31 @@ +DESCRIPTION="BurnItNow - GUI CD burning app for Haiku" +HOMEPAGE="http://dev.osdrawer.net/projects/burnitnow" +SRC_URI="svn+http://svn.osdrawer.net/burnitnow/branches/legacy#43" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="dev-util/cmake >= 2.8.0 + app-cdr/cdrtools > 3.00" +#CHECKSUM_MD5="" +BUILD { + cd burnitnow-43 + cmake . + make +} + +INSTALL { + cd burnitnow-43 + mkdir -p ${DESTDIR}/boot/apps/BurnItNow + cp -a BurnItNow ${DESTDIR}/boot/apps/BurnItNow + cp -a LICENSE ${DESTDIR}/boot/apps/BurnItNow/LICENSE + cp -a TODO ${DESTDIR}/boot/apps/BurnItNow/TODO + cp -a README ${DESTDIR}/boot/apps/BurnItNow/README + mkdir -p ${DESTDIR}/boot/apps/BurnItNow/Docs + cp -a Docs/BurnItNowHelp.html ${DESTDIR}/boot/apps/BurnItNow/Docs/BurnItNowHelp.html + cp -a Docs/helpbg.gif ${DESTDIR}/boot/apps/BurnItNow/Docs/helpbg.gif + if [ -z ${DESTDIR} ];then + find /boot/apps/BurnItNow -type d -name ".svn" | xargs rm -rf + fi +} +LICENSE="MIT" +COPYRIGHT="2000-2002 Johan Nilsson + 2010-2011 BurnItNow Maintainers" diff --git a/haiku-apps/burnitnow/burnitnow-beta5-svn.bep b/haiku-apps/burnitnow/burnitnow-beta5-svn.bep new file mode 100644 index 000000000..00ea2266f --- /dev/null +++ b/haiku-apps/burnitnow/burnitnow-beta5-svn.bep @@ -0,0 +1,31 @@ +DESCRIPTION="BurnItNow - GUI CD burning app for Haiku" +HOMEPAGE="http://dev.osdrawer.net/projects/burnitnow" +SRC_URI="svn+http://svn.osdrawer.net/burnitnow/branches/legacy" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="dev-util/cmake >= 2.8.0 + app-cdr/cdrtools > 3.00" +#CHECKSUM_MD5="" +BUILD { + cd burnitnow-beta5-svn + cmake . + make +} + +INSTALL { + cd burnitnow-beta5-svn + mkdir -p ${DESTDIR}/boot/apps/BurnItNow + cp -a BurnItNow ${DESTDIR}/boot/apps/BurnItNow + cp -a LICENSE ${DESTDIR}/boot/apps/BurnItNow/LICENSE + cp -a TODO ${DESTDIR}/boot/apps/BurnItNow/TODO + cp -a README ${DESTDIR}/boot/apps/BurnItNow/README + mkdir -p ${DESTDIR}/boot/apps/BurnItNow/Docs + cp -a Docs/BurnItNowHelp.html ${DESTDIR}/boot/apps/BurnItNow/Docs/BurnItNowHelp.html + cp -a Docs/helpbg.gif ${DESTDIR}/boot/apps/BurnItNow/Docs/helpbg.gif + if [ -z ${DESTDIR} ];then + find /boot/apps/BurnItNow -type d -name ".svn" | xargs rm -rf + fi +} +LICENSE="MIT" +COPYRIGHT="2000-2002 Johan Nilsson + 2010-2011 BurnItNow Maintainers" diff --git a/haiku-apps/burnitnow/burnitnow-beta6-git.bep b/haiku-apps/burnitnow/burnitnow-beta6-git.bep new file mode 100644 index 000000000..99afe0ec0 --- /dev/null +++ b/haiku-apps/burnitnow/burnitnow-beta6-git.bep @@ -0,0 +1,33 @@ +DESCRIPTION="BurnItNow - GUI CD burning app for Haiku" +HOMEPAGE="http://github.com/scottmc/burnitnow" +SRC_URI="git://github.com/scottmc/BurnItNow.git" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="app-cdr/cdrtools > 3.00" +#CHECKSUM_MD5="" + +BUILD { + cd burnitnow-beta6-git/legacy + cmake . + make +} + +INSTALL { + cd burnitnow-beta6-git/legacy + BURNITNOWDIR=${DESTDIR}/`finddir B_APPS_DIRECTORY`/BurnItNow + mkdir -p ${BURNITNOWDIR}/Docs + cp -a BurnItNow ${BURNITNOWDIR} + cp -a LICENSE ${BURNITNOWDIR}/LICENSE + cp -a TODO ${BURNITNOWDIR}/TODO + cp -a README ${BURNITNOWDIR}/README + cp -a AUTHORS ${BURNITNOWDIR}/AUTHORS + cp -a Changes ${BURNITNOWDIR}/Changes + cp -a Docs ${BURNITNOWDIR}/ + if [ -z ${DESTDIR} ];then + find /boot/apps/BurnItNow -type d -name ".svn" | xargs rm -rf + fi +} + +LICENSE="MIT" +COPYRIGHT="2000-2002 Johan Nilsson + 2010-2013 BurnItNow Maintainers" diff --git a/haiku-apps/burnitnow/burnitnow-beta6.bep b/haiku-apps/burnitnow/burnitnow-beta6.bep new file mode 100644 index 000000000..cb0e31b32 --- /dev/null +++ b/haiku-apps/burnitnow/burnitnow-beta6.bep @@ -0,0 +1,33 @@ +DESCRIPTION="BurnItNow - GUI CD burning app for Haiku" +HOMEPAGE="http://github.com/scottmc/burnitnow" +SRC_URI="git://github.com/scottmc/BurnItNow.git#6367b5beb2" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="app-cdr/cdrtools > 3.00" +#CHECKSUM_MD5="" + +BUILD { + cd burnitnow-beta6/legacy + cmake . + make +} + +INSTALL { + cd burnitnow-beta6/legacy + BURNITNOWDIR=${DESTDIR}/`finddir B_APPS_DIRECTORY`/BurnItNow + mkdir -p ${BURNITNOWDIR}/Docs + cp -a BurnItNow ${BURNITNOWDIR} + cp -a LICENSE ${BURNITNOWDIR}/LICENSE + cp -a TODO ${BURNITNOWDIR}/TODO + cp -a README ${BURNITNOWDIR}/README + cp -a AUTHORS ${BURNITNOWDIR}/AUTHORS + cp -a Changes ${BURNITNOWDIR}/Changes + cp -a Docs ${BURNITNOWDIR}/ + if [ -z ${DESTDIR} ];then + find /boot/apps/BurnItNow -type d -name ".svn" | xargs rm -rf + fi +} + +LICENSE="MIT" +COPYRIGHT="2000-2002 Johan Nilsson + 2010-2013 BurnItNow Maintainers" diff --git a/haiku-apps/burnitnow/patches/burnitnow-beta5-svn.patch b/haiku-apps/burnitnow/patches/burnitnow-beta5-svn.patch new file mode 100644 index 000000000..a07409cfc --- /dev/null +++ b/haiku-apps/burnitnow/patches/burnitnow-beta5-svn.patch @@ -0,0 +1,146 @@ +diff -Naur burnitnow-beta5-svn/const.h burnitnow-beta5-svn-patch/const.h +--- burnitnow-beta5-svn/const.h 2012-11-20 19:48:42.045350912 +0100 ++++ burnitnow-beta5-svn-patch/const.h 2012-11-20 17:57:36.000000000 +0100 +@@ -64,7 +64,7 @@ + const uint32 AUDIO_NOFIX = 'AuNF'; + + const uint32 MISC_DAO = 'MiDA'; +-const uint32 MISC_BURNPROOF = 'MiBP'; ++const uint32 MISC_BURNFREE = 'MiBP'; + + + const uint32 BURN_WITH_CDRECORD = 'BWCR'; +diff -Naur burnitnow-beta5-svn/jpWindow.cpp burnitnow-beta5-svn-patch/jpWindow.cpp +--- burnitnow-beta5-svn/jpWindow.cpp 2012-11-20 19:48:42.007602176 +0100 ++++ burnitnow-beta5-svn-patch/jpWindow.cpp 2012-11-20 18:03:09.000000000 +0100 +@@ -65,7 +65,7 @@ + char* BURN_DIR; + BPath CDRTOOLS_DIR; + +-char BURNPROOF[30]; // driveropts = burnproof ++char BURNFREE[30]; // driveropts=burnfree + char PAD[10]; // -pad (audio) + char DAO[10]; // -dao + char NOFIX[10]; // -nofix (audio) +@@ -714,10 +714,10 @@ + else + strcpy(DAO, " "); + +- if (fBurnItPrefs->FindString("BURNPROOF", &tr) == B_OK) +- strcpy(BURNPROOF, tr); ++ if (fBurnItPrefs->FindString("BURNFREE", &tr) == B_OK) ++ strcpy(BURNFREE, tr); + else +- strcpy(BURNPROOF, " "); ++ strcpy(BURNFREE, " "); + + if (fBurnItPrefs->FindString("NOFIX", &tr) == B_OK) + strcpy(NOFIX, tr); +@@ -1398,11 +1398,11 @@ + strcpy(DAO, " "); + break; + +- case MISC_BURNPROOF: +- if (fPrefsView->fBurnProofCheckBox->Value() == 1) +- strcpy(BURNPROOF, "driveropts = burnproof"); ++ case MISC_BURNFREE: ++ if (fPrefsView->fBurnFreeCheckBox->Value() == 1) ++ strcpy(BURNFREE, "driveropts=burnfree"); + else +- strcpy(BURNPROOF, " "); ++ strcpy(BURNFREE, " "); + break; + + case MENU_FILE_ABOUT: +@@ -1643,7 +1643,7 @@ + fBurnItPrefs->SetString("DATA_STRING", DATA_STRING); + fBurnItPrefs->SetString("PAD", PAD); + fBurnItPrefs->SetString("DAO", DAO); +- fBurnItPrefs->SetString("BURNPROOF", BURNPROOF); ++ fBurnItPrefs->SetString("BURNFREE", BURNFREE); + fBurnItPrefs->SetString("SWAB", SWAB); + fBurnItPrefs->SetString("NOFIX", NOFIX); + fBurnItPrefs->SetString("PREEMP", PREEMP); +@@ -1812,7 +1812,7 @@ + commandstr << BURN_DIR << '"' << " | " << CDRTOOLS_DIR.Path(); + commandstr << "/cdrecord dev=" << fBurnDevice->scsiid; + commandstr << " speed=" << BURN_SPD ; +- commandstr << " " << BURNPROOF; ++ commandstr << " " << BURNFREE; + commandstr << "tsize" << tsize << " "; + commandstr << DAO << " -data "; + commandstr << DUMMYMODE ; +@@ -1822,7 +1822,7 @@ + commandstr.SetTo(CDRTOOLS_DIR.Path()); + commandstr << "/"; + commandstr << "cdrecord dev=" << fBurnDevice->scsiid << " speed=" << BURN_SPD ; +- commandstr << " " << BURNPROOF << " " << DAO; ++ commandstr << " " << BURNFREE << " " << DAO; + commandstr << " -data " << DUMMYMODE ; + commandstr << " " << EJECT ; + commandstr << " -v" ; // aw 110910 +@@ -1847,7 +1847,7 @@ + commandstr << "//"; + commandstr << "cdrecord dev=" << fBurnDevice->scsiid; + commandstr << " speed=" << BURN_SPD; +- commandstr << " " << BURNPROOF ; ++ commandstr << " " << BURNFREE ; + commandstr << " " << DAO; + commandstr << " " << PAD; + commandstr << " " << PREEMP ; +@@ -1880,7 +1880,7 @@ + commandstr << '"' << VOL_NAME << '"' << BURN_DIR << '"' << " |"; + commandstr << CDRTOOLS_DIR.Path() << "/cdrecord dev=" ; + commandstr << fBurnDevice->scsiid << "speed=" << BURN_SPD ; +- commandstr << " " << BURNPROOF; ++ commandstr << " " << BURNFREE; + commandstr << " tsize=" << tsize ; + commandstr << " " << DAO << " " << DUMMYMODE ; + commandstr << " " << EJECT << " " << PAD ; +@@ -1893,7 +1893,7 @@ + commandstr << "//"; + commandstr << "cdrecord dev=" << fBurnDevice->scsiid; + commandstr << " speed=" << BURN_SPD ; +- commandstr << " " << BURNPROOF << " " << DAO << " " << PAD ; ++ commandstr << " " << BURNFREE << " " << DAO << " " << PAD ; + commandstr << " " << PREEMP << " " << SWAB ; + commandstr << " " << NOFIX ; + commandstr << " " << DUMMYMODE ; +diff -Naur burnitnow-beta5-svn/PrefsView.cpp burnitnow-beta5-svn-patch/PrefsView.cpp +--- burnitnow-beta5-svn/PrefsView.cpp 2012-11-20 19:48:42.031981568 +0100 ++++ burnitnow-beta5-svn-patch/PrefsView.cpp 2012-11-20 18:02:46.000000000 +0100 +@@ -16,7 +16,7 @@ + + + extern char DAO[10]; +-extern char BURNPROOF[30]; ++extern char BURNFREE[30]; + + + PrefsView::PrefsView(BRect size) +@@ -59,9 +59,9 @@ + + r.top += 15; + r.bottom += 15; +- fBurnProofCheckBox = new BCheckBox(r, "burnproof", "BurnProof (read help)", new BMessage(MISC_BURNPROOF)); +- if (!strncmp(BURNPROOF, "driveropts = burnproof", 22)) +- fBurnProofCheckBox->SetValue(B_CONTROL_ON); ++ fBurnFreeCheckBox = new BCheckBox(r, "burnfree", "BurnFree (read help)", new BMessage(MISC_BURNFREE)); ++ if (!strncmp(BURNFREE, "driveropts=burnfree", 22)) ++ fBurnFreeCheckBox->SetValue(B_CONTROL_ON); + +- miscOptBox->AddChild(fBurnProofCheckBox); ++ miscOptBox->AddChild(fBurnFreeCheckBox); + } +diff -Naur burnitnow-beta5-svn/PrefsView.h burnitnow-beta5-svn-patch/PrefsView.h +--- burnitnow-beta5-svn/PrefsView.h 2012-11-20 19:48:42.015990784 +0100 ++++ burnitnow-beta5-svn-patch/PrefsView.h 2012-11-20 17:57:08.000000000 +0100 +@@ -15,7 +15,7 @@ + PrefsView(BRect size); + + BMenu* fRecordersMenu; +- BCheckBox* fDAOCheckBox, *fBurnProofCheckBox; ++ BCheckBox* fDAOCheckBox, *fBurnFreeCheckBox; + }; + + diff --git a/haiku-apps/caya-gpl-protocols/caya-gpl-protocols-0.HEAD.bep b/haiku-apps/caya-gpl-protocols/caya-gpl-protocols-0.HEAD.bep new file mode 100644 index 000000000..12cc49369 --- /dev/null +++ b/haiku-apps/caya-gpl-protocols/caya-gpl-protocols-0.HEAD.bep @@ -0,0 +1,29 @@ +DESCRIPTION="GPL Plugins for Caya, protocols MSN and XMPP" +HOMEPAGE="http://dev.osdrawer.net/projects/caya-gpl-protocols" +SRC_URI="svn+http://svn.osdrawer.net/caya-gpl-protocols/trunk" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="caya" +#CHECKSUM_MD5="" +BUILD { + cd caya-gpl-protocols-0.HEAD + ./configure + jam +} + +INSTALL { + cd caya-gpl-protocols-0.HEAD + mkdir -p ${DESTDIR}/`finddir B_APPS_DIRECTORY`/Caya/protocols + PLATFORM=`setgcc|tr / -|cut -f3 -d' '` + cp generated/distro-haiku-$PLATFORM-debug/msn ${DESTDIR}/`finddir B_APPS_DIRECTORY`/Caya/protocols + cp generated/distro-haiku-$PLATFORM-debug/gtalk ${DESTDIR}/`finddir B_APPS_DIRECTORY`/Caya/protocols + cp generated/distro-haiku-$PLATFORM-debug/facebook ${DESTDIR}/`finddir B_APPS_DIRECTORY`/Caya/protocols + cp generated/distro-haiku-$PLATFORM-debug/jabber ${DESTDIR}/`finddir B_APPS_DIRECTORY`/Caya/protocols + cp generated/distro-haiku-$PLATFORM-debug/yahoo ${DESTDIR}/`finddir B_APPS_DIRECTORY`/Caya/protocols +} + +LICENSE="GNU GPL v2" +COPYRIGHT="2010-2011 Casalinuovo Dario + 2009-2011 Pierluigi Fiorini + 2010-2011 Oliver Ruiz Dorantes" + diff --git a/haiku-apps/caya-gpl-protocols/caya-gpl-protocols-19.bep b/haiku-apps/caya-gpl-protocols/caya-gpl-protocols-19.bep new file mode 100644 index 000000000..811ae698c --- /dev/null +++ b/haiku-apps/caya-gpl-protocols/caya-gpl-protocols-19.bep @@ -0,0 +1,28 @@ +DESCRIPTION="GPL Plugins for Caya, protocols MSN and XMPP" +HOMEPAGE="http://dev.osdrawer.net/projects/caya-gpl-protocols" +SRC_URI="svn+http://svn.osdrawer.net/caya-gpl-protocols/trunk#19" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="caya" +#CHECKSUM_MD5="" +MESSAGE="This port only builds with gcc4." +BUILD { + cd caya-gpl-protocols-19 + ./configure + jam +} + +INSTALL { + cd caya-gpl-protocols-19 + mkdir -p ${DESTDIR}/`finddir B_APPS_DIRECTORY`/Caya/protocols + cp generated/distro-haiku-x86-gcc4-debug/msn ${DESTDIR}/`finddir B_APPS_DIRECTORY`/Caya/protocols + cp generated/distro-haiku-x86-gcc4-debug/gtalk ${DESTDIR}/`finddir B_APPS_DIRECTORY`/Caya/protocols + cp generated/distro-haiku-x86-gcc4-debug/facebook ${DESTDIR}/`finddir B_APPS_DIRECTORY`/Caya/protocols + cp generated/distro-haiku-x86-gcc4-debug/jabber ${DESTDIR}/`finddir B_APPS_DIRECTORY`/Caya/protocols +} + +LICENSE="GNU GPL v2" +COPYRIGHT="2010-2011 Casalinuovo Dario + 2009-2011 Pierluigi Fiorini + 2010-2011 Oliver Ruiz Dorantes" + diff --git a/haiku-apps/caya-gpl-protocols/caya-gpl-protocols-24.bep b/haiku-apps/caya-gpl-protocols/caya-gpl-protocols-24.bep new file mode 100644 index 000000000..7d9006de3 --- /dev/null +++ b/haiku-apps/caya-gpl-protocols/caya-gpl-protocols-24.bep @@ -0,0 +1,29 @@ +DESCRIPTION="GPL Plugins for Caya, protocols MSN and XMPP" +HOMEPAGE="http://dev.osdrawer.net/projects/caya-gpl-protocols" +SRC_URI="svn+http://svn.osdrawer.net/caya-gpl-protocols/trunk#24" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="caya" +#CHECKSUM_MD5="" +MESSAGE="This port only builds with gcc4." +BUILD { + cd caya-gpl-protocols-24 + ./configure + jam +} + +INSTALL { + cd caya-gpl-protocols-24 + mkdir -p ${DESTDIR}/`finddir B_APPS_DIRECTORY`/Caya/protocols + cp generated/distro-haiku-x86-gcc4-debug/msn ${DESTDIR}/`finddir B_APPS_DIRECTORY`/Caya/protocols + cp generated/distro-haiku-x86-gcc4-debug/gtalk ${DESTDIR}/`finddir B_APPS_DIRECTORY`/Caya/protocols + cp generated/distro-haiku-x86-gcc4-debug/facebook ${DESTDIR}/`finddir B_APPS_DIRECTORY`/Caya/protocols + cp generated/distro-haiku-x86-gcc4-debug/jabber ${DESTDIR}/`finddir B_APPS_DIRECTORY`/Caya/protocols + cp generated/distro-haiku-x86-gcc4-debug/yahoo ${DESTDIR}/`finddir B_APPS_DIRECTORY`/Caya/protocols +} + +LICENSE="GNU GPL v2" +COPYRIGHT="2010-2011 Casalinuovo Dario + 2009-2011 Pierluigi Fiorini + 2010-2011 Oliver Ruiz Dorantes" + diff --git a/haiku-apps/caya-gpl-protocols/caya-gpl-protocols-35.bep b/haiku-apps/caya-gpl-protocols/caya-gpl-protocols-35.bep new file mode 100644 index 000000000..af80c8f9b --- /dev/null +++ b/haiku-apps/caya-gpl-protocols/caya-gpl-protocols-35.bep @@ -0,0 +1,29 @@ +DESCRIPTION="GPL Plugins for Caya, protocols MSN and XMPP" +HOMEPAGE="http://dev.osdrawer.net/projects/caya-gpl-protocols" +SRC_URI="svn+http://svn.osdrawer.net/caya-gpl-protocols/trunk#35" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="caya" +#CHECKSUM_MD5="" +MESSAGE="This port only builds with gcc4." +BUILD { + cd caya-gpl-protocols-35 + ./configure + jam +} + +INSTALL { + cd caya-gpl-protocols-35 + mkdir -p ${DESTDIR}/`finddir B_APPS_DIRECTORY`/Caya/protocols + cp generated/distro-haiku-x86-gcc4-debug/msn ${DESTDIR}/`finddir B_APPS_DIRECTORY`/Caya/protocols + cp generated/distro-haiku-x86-gcc4-debug/gtalk ${DESTDIR}/`finddir B_APPS_DIRECTORY`/Caya/protocols + cp generated/distro-haiku-x86-gcc4-debug/facebook ${DESTDIR}/`finddir B_APPS_DIRECTORY`/Caya/protocols + cp generated/distro-haiku-x86-gcc4-debug/jabber ${DESTDIR}/`finddir B_APPS_DIRECTORY`/Caya/protocols + cp generated/distro-haiku-x86-gcc4-debug/yahoo ${DESTDIR}/`finddir B_APPS_DIRECTORY`/Caya/protocols +} + +LICENSE="GNU GPL v2" +COPYRIGHT="2010-2011 Casalinuovo Dario + 2009-2011 Pierluigi Fiorini + 2010-2011 Oliver Ruiz Dorantes" + diff --git a/haiku-apps/caya-gpl-protocols/caya-gpl-protocols-36.bep b/haiku-apps/caya-gpl-protocols/caya-gpl-protocols-36.bep new file mode 100644 index 000000000..e7b5d637e --- /dev/null +++ b/haiku-apps/caya-gpl-protocols/caya-gpl-protocols-36.bep @@ -0,0 +1,29 @@ +DESCRIPTION="GPL Plugins for Caya, protocols MSN and XMPP" +HOMEPAGE="http://dev.osdrawer.net/projects/caya-gpl-protocols" +SRC_URI="svn+http://svn.osdrawer.net/caya-gpl-protocols/trunk#36" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="caya" +#CHECKSUM_MD5="" +MESSAGE="This port only builds with gcc4." +BUILD { + cd caya-gpl-protocols-36 + ./configure + jam +} + +INSTALL { + cd caya-gpl-protocols-36 + mkdir -p ${DESTDIR}/`finddir B_APPS_DIRECTORY`/Caya/protocols + cp generated/distro-haiku-x86-gcc4-debug/msn ${DESTDIR}/`finddir B_APPS_DIRECTORY`/Caya/protocols + cp generated/distro-haiku-x86-gcc4-debug/gtalk ${DESTDIR}/`finddir B_APPS_DIRECTORY`/Caya/protocols + cp generated/distro-haiku-x86-gcc4-debug/facebook ${DESTDIR}/`finddir B_APPS_DIRECTORY`/Caya/protocols + cp generated/distro-haiku-x86-gcc4-debug/jabber ${DESTDIR}/`finddir B_APPS_DIRECTORY`/Caya/protocols + cp generated/distro-haiku-x86-gcc4-debug/yahoo ${DESTDIR}/`finddir B_APPS_DIRECTORY`/Caya/protocols +} + +LICENSE="GNU GPL v2" +COPYRIGHT="2010-2011 Casalinuovo Dario + 2009-2011 Pierluigi Fiorini + 2010-2011 Oliver Ruiz Dorantes" + diff --git a/haiku-apps/caya-gpl-protocols/patches/caya-gpl-protocols-0.HEAD.patch b/haiku-apps/caya-gpl-protocols/patches/caya-gpl-protocols-0.HEAD.patch new file mode 100644 index 000000000..a45bd230b --- /dev/null +++ b/haiku-apps/caya-gpl-protocols/patches/caya-gpl-protocols-0.HEAD.patch @@ -0,0 +1,214 @@ +Index: libs/libmsn/msnobject.cpp +=================================================================== +--- libs/libmsn/msnobject.cpp (revision 36) ++++ libs/libmsn/msnobject.cpp (working copy) +@@ -30,7 +30,7 @@ + { + void MSNObject::addMSNObject(std::string filename, int Type) + { +- std::ifstream::pos_type size; ++ std::streampos size; + char * memblock; + SHA_CTX ctx; + unsigned char digest[SHA_DIGEST_LENGTH]; +Index: libs/libmsn/Jamfile +=================================================================== +--- libs/libmsn/Jamfile (revision 36) ++++ libs/libmsn/Jamfile (working copy) +@@ -2,6 +2,7 @@ + + SubDirSysHdrs [ FDirName $(TOP) ] ; + SubDirSysHdrs [ FDirName $(TOP) libs ] ; ++SubDirSysHdrs [ FDirName $(TOP) libs libmsn ] ; + + SubDirSysHdrs [ FDirName $(OPENSSL_INCLUDE_DIR) ] ; + +Index: libs/libmsn/connection.h +=================================================================== +--- libs/libmsn/connection.h (revision 36) ++++ libs/libmsn/connection.h (working copy) +@@ -29,6 +29,7 @@ + #include + #include + #include ++#include + + #ifdef _MSC_VER + #pragma warning( disable : 4290 ) +Index: libs/libmsn/util.cpp +=================================================================== +--- libs/libmsn/util.cpp (revision 36) ++++ libs/libmsn/util.cpp (working copy) +@@ -146,8 +146,8 @@ + it1 != s1.end() && it2 != s2.end(); + ++it1, ++it2) + { +- if (std::toupper(*it1) != std::toupper(*it2)) +- return std::toupper(*it1) - std::toupper(*it2); ++ if (toupper(*it1) != toupper(*it2)) ++ return toupper(*it1) - toupper(*it2); + } + size_t size1 = s1.size(), size2 = s2.size(); + return (int) (size1 - size2); +@@ -358,11 +358,11 @@ + int FileSize(const char* sFileName) + { + std::ifstream f; +- f.open(sFileName, std::ios_base::binary | std::ios_base::in); ++ f.open(sFileName, std::ios::binary | std::ios::in); + if (!f.good() || f.eof() || !f.is_open()) { return 0; } +- f.seekg(0, std::ios_base::beg); +- std::ifstream::pos_type begin_pos = f.tellg(); +- f.seekg(0, std::ios_base::end); ++ f.seekg(0, std::ios::beg); ++ std::streampos begin_pos = f.tellg(); ++ f.seekg(0, std::ios::end); + return static_cast(f.tellg() - begin_pos); + } + +Index: libs/libmsn/message.cpp +=================================================================== +--- libs/libmsn/message.cpp (revision 36) ++++ libs/libmsn/message.cpp (working copy) +@@ -124,7 +124,7 @@ + { + std::string color = this->getFormatInfo()["CO"]; + assert(color.size() <= 6 && color.size() >= 0); +- color.insert(0U, 6 - color.size(), '0'); ++ color.insert((size_t)0, (size_t)(6 - color.size()), '0'); + int r = 0, g = 0, b = 0; + + b = strtol(color.substr(0, 2).c_str(), NULL, 16); +@@ -167,7 +167,7 @@ + + void Message::setColor(std::string color) + { +- color.insert(0U, 6 - color.size(), '0'); ++ color.insert((size_t)0, (size_t)(6 - color.size()), '0'); + int r = 0, g = 0, b = 0; + + r = strtol(color.substr(0, 2).c_str(), NULL, 16); +Index: libs/libyahoo2/yahoo_httplib.c +=================================================================== +--- libs/libyahoo2/yahoo_httplib.c (revision 36) ++++ libs/libyahoo2/yahoo_httplib.c (working copy) +@@ -29,19 +29,7 @@ + #include + #include + +-#if STDC_HEADERS + # include +-#else +-# if !HAVE_STRCHR +-# define strchr index +-# define strrchr rindex +-# endif +-char *strchr(), *strrchr(); +-# if !HAVE_MEMCPY +-# define memcpy(d, s, n) bcopy ((s), (d), (n)) +-# define memmove(d, s, n) bcopy ((s), (d), (n)) +-# endif +-#endif + + #include + #if HAVE_UNISTD_H +@@ -374,7 +362,6 @@ + void yahoo_http_head(int id, const char *url, const char *cookies, int len, + char *payload, yahoo_get_fd_callback callback, void *data) + { +- printf("yahoo_http_read\n"); + char host[255]; + int port = 80; + char path[255]; +Index: libs/libgloox/parser.cpp +=================================================================== +--- libs/libgloox/parser.cpp (revision 36) ++++ libs/libgloox/parser.cpp (working copy) +@@ -141,7 +141,7 @@ + { + if( pos + needle.length() <= data.length() ) + { +- if( !data.compare( pos, needle.length(), needle ) ) ++ if( !data.compare(pos, needle.length(), needle ) ) + { + pos += needle.length() - 1; + return ForwardFound; +Index: libs/libgloox/siprofileft.cpp +=================================================================== +--- libs/libgloox/siprofileft.cpp (revision 36) ++++ libs/libgloox/siprofileft.cpp (working copy) +@@ -84,11 +84,11 @@ + DataFormField* dff = df.addField( DataFormField::TypeListSingle, "stream-method" ); + StringMultiMap sm; + if( streamTypes & FTTypeS5B ) +- sm.insert( std::make_pair( "s5b", XMLNS_BYTESTREAMS ) ); ++ sm.insert( std::make_pair( "s5b", XMLNS_BYTESTREAMS ) ); + if( streamTypes & FTTypeIBB ) +- sm.insert( std::make_pair( "ibb", XMLNS_IBB ) ); ++ sm.insert( std::make_pair( "ibb", XMLNS_IBB ) ); + if( streamTypes & FTTypeOOB ) +- sm.insert( std::make_pair( "oob", XMLNS_IQ_OOB ) ); ++ sm.insert( std::make_pair( "oob", XMLNS_IQ_OOB ) ); + dff->setOptions( sm ); + feature->addChild( df.tag() ); + +Index: libs/libgloox/connectionbosh.cpp +=================================================================== +--- libs/libgloox/connectionbosh.cpp (revision 36) ++++ libs/libgloox/connectionbosh.cpp (working copy) +@@ -303,7 +303,7 @@ + + bool ci_equal( char ch1, char ch2 ) + { +- return std::toupper( (unsigned char)ch1 ) == std::toupper( (unsigned char)ch2 ); ++ return toupper( (unsigned char)ch1 ) == toupper( (unsigned char)ch2 ); + } + + std::string::size_type ci_find( const std::string& str1, const std::string& str2 ) +Index: libs/libgloox/gloox.h +=================================================================== +--- libs/libgloox/gloox.h (revision 36) ++++ libs/libgloox/gloox.h (working copy) +@@ -1214,7 +1214,7 @@ + /** + * A multimap of strings. + */ +- typedef std::multimap StringMultiMap; ++ typedef std::multimap StringMultiMap; + + class StanzaExtension; + /** +Index: protocols/msn/MSN.cpp +=================================================================== +--- protocols/msn/MSN.cpp (revision 36) ++++ protocols/msn/MSN.cpp (working copy) +@@ -52,7 +52,7 @@ + const uint32 kAvatarCheckMessage = 'AVMs'; + + struct pollfd* kPollSockets = NULL; +-struct ssl { ++struct Ssl { + bool isSSL; + bool isConnected; + SSL *ssl; +@@ -718,7 +718,7 @@ + return; + } + +- kSocketsSsl = (struct ssl*) realloc(kSocketsSsl, (kSocketsAvailable + 10) * sizeof(struct ssl)); ++ kSocketsSsl = (struct Ssl*) realloc(kSocketsSsl, (kSocketsAvailable + 10) * sizeof(struct Ssl)); + if (kSocketsSsl == NULL) { + Error("Memory Error!!\n", NULL); + return; +Index: protocols/xmpp/Jamfile +=================================================================== +--- protocols/xmpp/Jamfile (revision 36) ++++ protocols/xmpp/Jamfile (working copy) +@@ -2,6 +2,7 @@ + + SubDirSysHdrs [ FDirName $(TOP) ] ; + SubDirSysHdrs [ FDirName $(TOP) libs ] ; ++SubDirSysHdrs [ FDirName $(TOP) libs libgloox ] ; + SubDirSysHdrs [ FDirName $(OPENSSL_INCLUDE_DIR) ] ; + SubDirSysHdrs [ FDirName $(CAYA_INCLUDE_DIR) ] ; + diff --git a/haiku-apps/caya/caya-0.HEAD.bep b/haiku-apps/caya/caya-0.HEAD.bep new file mode 100644 index 000000000..4b0144ad6 --- /dev/null +++ b/haiku-apps/caya/caya-0.HEAD.bep @@ -0,0 +1,34 @@ +DESCRIPTION="Caya is a multiprotocol IM client." +HOMEPAGE="http://dev.osdrawer.net/projects/caya" +SRC_URI="svn+http://svn.osdrawer.net/caya/trunk" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="dev-libs/expat >= 2.0.1" +#CHECKSUM_MD5="" +BUILD { + cd caya-0.HEAD + ./configure + jam +} + +INSTALL { + cd caya-0.HEAD + mkdir -p ${DESTDIR}/`finddir B_APPS_DIRECTORY`/Caya + mkdir -p ${DESTDIR}/`finddir B_APPS_DIRECTORY`/Caya/smileys + mkdir -p ${DESTDIR}/`finddir B_APPS_DIRECTORY`/Caya/protocols + mkdir -p ${DESTDIR}/`finddir B_COMMON_DIRECTORY`/include/caya/ + + ARCH=`readlink /boot/develop/abi/current |sed -e s!/!-!g` + cp generated/distro-haiku-${ARCH}-debug/Caya ${DESTDIR}/`finddir B_APPS_DIRECTORY`/Caya + cp generated/distro-haiku-${ARCH}-debug/aim ${DESTDIR}/`finddir B_APPS_DIRECTORY`/Caya/protocols + cp smileys/*.gif smileys/settings.xml ${DESTDIR}/`finddir B_APPS_DIRECTORY`/Caya/smileys + cp application/CayaProtocol.h ${DESTDIR}/`finddir B_COMMON_DIRECTORY`/include/caya/ + cp application/CayaConstants.h ${DESTDIR}/`finddir B_COMMON_DIRECTORY`/include/caya/ + cp application/CayaProtocolMessages.h ${DESTDIR}/`finddir B_COMMON_DIRECTORY`/include/caya/ +} + +LICENSE="MIT" +COPYRIGHT="2009-2011 Andrea Anzani + 2009-2011 Pierluigi Fiorini + 2010-2011 Oliver Ruiz Dorantes + 2011-2012 Casalinuovo Dario" diff --git a/haiku-apps/caya/caya-236.bep b/haiku-apps/caya/caya-236.bep new file mode 100644 index 000000000..e828b4871 --- /dev/null +++ b/haiku-apps/caya/caya-236.bep @@ -0,0 +1,33 @@ +DESCRIPTION="Caya is a multiprotocol IM client." +HOMEPAGE="http://dev.osdrawer.net/projects/caya" +SRC_URI="svn+http://svn.osdrawer.net/caya/trunk#236" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="net-misc/curl >= 7.21.6" +#CHECKSUM_MD5="" +MESSAGE="This port only builds with gcc4." +BUILD { + cd caya-236 + ./configure + jam +} + +INSTALL { + cd caya-236 + mkdir -p ${DESTDIR}/`finddir B_APPS_DIRECTORY`/Caya + mkdir -p ${DESTDIR}/`finddir B_APPS_DIRECTORY`/Caya/smileys + mkdir -p ${DESTDIR}/`finddir B_APPS_DIRECTORY`/Caya/protocols + mkdir -p ${DESTDIR}/`finddir B_COMMON_DIRECTORY`/include/caya/ + + cp generated/distro-haiku-x86-gcc4-debug/Caya ${DESTDIR}/`finddir B_APPS_DIRECTORY`/Caya + cp generated/distro-haiku-x86-gcc4-debug/aim ${DESTDIR}/`finddir B_APPS_DIRECTORY`/Caya/protocols + cp smileys/*.gif smileys/settings.xml ${DESTDIR}/`finddir B_APPS_DIRECTORY`/Caya/smileys + cp application/CayaProtocol.h ${DESTDIR}/`finddir B_COMMON_DIRECTORY`/include/caya/ + cp application/CayaConstants.h ${DESTDIR}/`finddir B_COMMON_DIRECTORY`/include/caya/ + cp application/CayaProtocolMessages.h ${DESTDIR}/`finddir B_COMMON_DIRECTORY`/include/caya/ +} + +LICENSE="MIT" +COPYRIGHT="2009-2011 Andrea Anzani + 2009-2011 Pierluigi Fiorini + 2010-2011 Oliver Ruiz Dorantes" diff --git a/haiku-apps/caya/caya-240.bep b/haiku-apps/caya/caya-240.bep new file mode 100644 index 000000000..e18e4cf32 --- /dev/null +++ b/haiku-apps/caya/caya-240.bep @@ -0,0 +1,33 @@ +DESCRIPTION="Caya is a multiprotocol IM client." +HOMEPAGE="http://dev.osdrawer.net/projects/caya" +SRC_URI="svn+http://svn.osdrawer.net/caya/trunk#240" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="net-misc/curl >= 7.21.6" +#CHECKSUM_MD5="" +MESSAGE="This port only builds with gcc4." +BUILD { + cd caya-240 + ./configure + jam +} + +INSTALL { + cd caya-240 + mkdir -p ${DESTDIR}/`finddir B_APPS_DIRECTORY`/Caya + mkdir -p ${DESTDIR}/`finddir B_APPS_DIRECTORY`/Caya/smileys + mkdir -p ${DESTDIR}/`finddir B_APPS_DIRECTORY`/Caya/protocols + mkdir -p ${DESTDIR}/`finddir B_COMMON_DIRECTORY`/include/caya/ + + cp generated/distro-haiku-x86-gcc4-debug/Caya ${DESTDIR}/`finddir B_APPS_DIRECTORY`/Caya + cp generated/distro-haiku-x86-gcc4-debug/aim ${DESTDIR}/`finddir B_APPS_DIRECTORY`/Caya/protocols + cp smileys/*.gif smileys/settings.xml ${DESTDIR}/`finddir B_APPS_DIRECTORY`/Caya/smileys + cp application/CayaProtocol.h ${DESTDIR}/`finddir B_COMMON_DIRECTORY`/include/caya/ + cp application/CayaConstants.h ${DESTDIR}/`finddir B_COMMON_DIRECTORY`/include/caya/ + cp application/CayaProtocolMessages.h ${DESTDIR}/`finddir B_COMMON_DIRECTORY`/include/caya/ +} + +LICENSE="MIT" +COPYRIGHT="2009-2011 Andrea Anzani + 2009-2011 Pierluigi Fiorini + 2010-2011 Oliver Ruiz Dorantes" diff --git a/haiku-apps/caya/caya-264.bep b/haiku-apps/caya/caya-264.bep new file mode 100644 index 000000000..98ebf5180 --- /dev/null +++ b/haiku-apps/caya/caya-264.bep @@ -0,0 +1,34 @@ +DESCRIPTION="Caya is a multiprotocol IM client." +HOMEPAGE="http://dev.osdrawer.net/projects/caya" +SRC_URI="svn+http://svn.osdrawer.net/caya/trunk#264" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="dev-libs/expat >= 2.0.1" +#CHECKSUM_MD5="" +MESSAGE="This port only builds with gcc4." +BUILD { + cd caya-264 + ./configure + jam +} + +INSTALL { + cd caya-264 + mkdir -p ${DESTDIR}/`finddir B_APPS_DIRECTORY`/Caya + mkdir -p ${DESTDIR}/`finddir B_APPS_DIRECTORY`/Caya/smileys + mkdir -p ${DESTDIR}/`finddir B_APPS_DIRECTORY`/Caya/protocols + mkdir -p ${DESTDIR}/`finddir B_COMMON_DIRECTORY`/include/caya/ + + cp generated/distro-haiku-x86-gcc4-debug/Caya ${DESTDIR}/`finddir B_APPS_DIRECTORY`/Caya + cp generated/distro-haiku-x86-gcc4-debug/aim ${DESTDIR}/`finddir B_APPS_DIRECTORY`/Caya/protocols + cp smileys/*.gif smileys/settings.xml ${DESTDIR}/`finddir B_APPS_DIRECTORY`/Caya/smileys + cp application/CayaProtocol.h ${DESTDIR}/`finddir B_COMMON_DIRECTORY`/include/caya/ + cp application/CayaConstants.h ${DESTDIR}/`finddir B_COMMON_DIRECTORY`/include/caya/ + cp application/CayaProtocolMessages.h ${DESTDIR}/`finddir B_COMMON_DIRECTORY`/include/caya/ +} + +LICENSE="MIT" +COPYRIGHT="2009-2011 Andrea Anzani + 2009-2011 Pierluigi Fiorini + 2010-2011 Oliver Ruiz Dorantes + 2011-2012 Casalinuovo Dario" diff --git a/haiku-apps/caya/caya-278.bep b/haiku-apps/caya/caya-278.bep new file mode 100644 index 000000000..7b717dae6 --- /dev/null +++ b/haiku-apps/caya/caya-278.bep @@ -0,0 +1,34 @@ +DESCRIPTION="Caya is a multiprotocol IM client." +HOMEPAGE="http://dev.osdrawer.net/projects/caya" +SRC_URI="svn+http://svn.osdrawer.net/caya/trunk#278" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="dev-libs/expat >= 2.0.1" +#CHECKSUM_MD5="" +MESSAGE="This port only builds with gcc4." +BUILD { + cd caya-278 + ./configure + jam +} + +INSTALL { + cd caya-278 + mkdir -p ${DESTDIR}/`finddir B_APPS_DIRECTORY`/Caya + mkdir -p ${DESTDIR}/`finddir B_APPS_DIRECTORY`/Caya/smileys + mkdir -p ${DESTDIR}/`finddir B_APPS_DIRECTORY`/Caya/protocols + mkdir -p ${DESTDIR}/`finddir B_COMMON_DIRECTORY`/include/caya/ + + cp generated/distro-haiku-x86-gcc4-debug/Caya ${DESTDIR}/`finddir B_APPS_DIRECTORY`/Caya + cp generated/distro-haiku-x86-gcc4-debug/aim ${DESTDIR}/`finddir B_APPS_DIRECTORY`/Caya/protocols + cp smileys/*.gif smileys/settings.xml ${DESTDIR}/`finddir B_APPS_DIRECTORY`/Caya/smileys + cp application/CayaProtocol.h ${DESTDIR}/`finddir B_COMMON_DIRECTORY`/include/caya/ + cp application/CayaConstants.h ${DESTDIR}/`finddir B_COMMON_DIRECTORY`/include/caya/ + cp application/CayaProtocolMessages.h ${DESTDIR}/`finddir B_COMMON_DIRECTORY`/include/caya/ +} + +LICENSE="MIT" +COPYRIGHT="2009-2011 Andrea Anzani + 2009-2011 Pierluigi Fiorini + 2010-2011 Oliver Ruiz Dorantes + 2011-2012 Casalinuovo Dario" diff --git a/haiku-apps/caya/caya-279.bep b/haiku-apps/caya/caya-279.bep new file mode 100644 index 000000000..17b1b63d6 --- /dev/null +++ b/haiku-apps/caya/caya-279.bep @@ -0,0 +1,34 @@ +DESCRIPTION="Caya is a multiprotocol IM client." +HOMEPAGE="http://dev.osdrawer.net/projects/caya" +SRC_URI="svn+http://svn.osdrawer.net/caya/trunk#279" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="dev-libs/expat >= 2.0.1" +#CHECKSUM_MD5="" +MESSAGE="This port only builds with gcc4." +BUILD { + cd caya-279 + ./configure + jam +} + +INSTALL { + cd caya-279 + mkdir -p ${DESTDIR}/`finddir B_APPS_DIRECTORY`/Caya + mkdir -p ${DESTDIR}/`finddir B_APPS_DIRECTORY`/Caya/smileys + mkdir -p ${DESTDIR}/`finddir B_APPS_DIRECTORY`/Caya/protocols + mkdir -p ${DESTDIR}/`finddir B_COMMON_DIRECTORY`/include/caya/ + + cp generated/distro-haiku-x86-gcc4-debug/Caya ${DESTDIR}/`finddir B_APPS_DIRECTORY`/Caya + cp generated/distro-haiku-x86-gcc4-debug/aim ${DESTDIR}/`finddir B_APPS_DIRECTORY`/Caya/protocols + cp smileys/*.gif smileys/settings.xml ${DESTDIR}/`finddir B_APPS_DIRECTORY`/Caya/smileys + cp application/CayaProtocol.h ${DESTDIR}/`finddir B_COMMON_DIRECTORY`/include/caya/ + cp application/CayaConstants.h ${DESTDIR}/`finddir B_COMMON_DIRECTORY`/include/caya/ + cp application/CayaProtocolMessages.h ${DESTDIR}/`finddir B_COMMON_DIRECTORY`/include/caya/ +} + +LICENSE="MIT" +COPYRIGHT="2009-2011 Andrea Anzani + 2009-2011 Pierluigi Fiorini + 2010-2011 Oliver Ruiz Dorantes + 2011-2012 Casalinuovo Dario" diff --git a/haiku-apps/clockwerk/clockwerk-80.bep b/haiku-apps/clockwerk/clockwerk-80.bep new file mode 100644 index 000000000..7da9b2836 --- /dev/null +++ b/haiku-apps/clockwerk/clockwerk-80.bep @@ -0,0 +1,23 @@ +DESCRIPTION="Clockwerk is a multi-track audio/video compositing and animation software." +HOMEPAGE="http://dev.osdrawer.net/projects/clockwerk" +SRC_URI="svn+http://svn.osdrawer.net/clockwerk#80" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="" +#CHECKSUM_MD5="" +BUILD { + cd clockwerk-80 + jam +} + +INSTALL { + cd clockwerk-80 + mkdir -p ${DESTDIR}/`finddir B_APPS_DIRECTORY`/Clockwerk + cp generated/distro-haiku/* ${DESTDIR}/`finddir B_APPS_DIRECTORY`/Clockwerk +} + +LICENSE="GNU GPL v2" +COPYRIGHT="2002-2012 Stephan Aßmus + 2005-2006 Axel Dörfler + 2006-2009 Ingo Weinhold" + diff --git a/haiku-apps/documentviewer/documentviewer-0.3.2.bep b/haiku-apps/documentviewer/documentviewer-0.3.2.bep new file mode 100644 index 000000000..510b358a2 --- /dev/null +++ b/haiku-apps/documentviewer/documentviewer-0.3.2.bep @@ -0,0 +1,23 @@ +DESCRIPTION="DocumentViewer is a Viewer supporting PDF and DJVU Files." +HOMEPAGE="http://haiku.bplaced.net/" +SRC_URI="http://haiku.bplaced.net/DocumentViewer/sources/documentviewer-0.3.2.zip" +CHECKSUM_MD5="1fddc4292ecb14f343eb18b0bf723b13" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="media-libs/fitz >= 1.0 + media-libs/djvulibre >= 3.5.25" +MESSAGE="This port only builds with gcc4." + +BUILD { + cd documentviewer-0.3.2 + jam +} + +INSTALL { + cd documentviewer-0.3.2 + mkdir -p ${DESTDIR}/`finddir B_APPS_DIRECTORY`/DocumentViewer + cp application/DocumentViewer ${DESTDIR}/`finddir B_APPS_DIRECTORY`/DocumentViewer +} + +LICENSE="MIT" +COPYRIGHT="2010-2012 Haiku, Inc" diff --git a/haiku-apps/friss/friss-0.7-svn.bep b/haiku-apps/friss/friss-0.7-svn.bep new file mode 100644 index 000000000..627e6cc41 --- /dev/null +++ b/haiku-apps/friss/friss-0.7-svn.bep @@ -0,0 +1,27 @@ +DESCRIPTION="FRiSS is a viewer for atom/rss/rdf feeds that can be run as a replicant" +HOMEPAGE="http://pulkomandy.tk/projects/friss" +SRC_URI="svn://pulkomandy.tk/friss" +REVISION="1" +STATUS_HAIKU="stable" + +BUILD { + cd friss-0.7-svn/src + if [ -n "$(setgcc | grep '4')" ]; then + sed -i 's/lstdc++.r4/lstdc++/' Jamfile + fi + jam + mv friss ../bin/apps/friss/FRiSS + chmod 755 ../bin/apps/friss/FRiSS +} + +INSTALL { + cd friss-0.7-svn + mkdir -p ${DESTDIR}/boot/apps/FRiSS + cp -a bin/apps/friss/* ${DESTDIR}/boot/apps/FRiSS + mkdir -p ${DESTDIR}/boot/home/config/settings/deskbar/Applications + ln -sf /boot/apps/FRiSS/FRiSS ${DESTDIR}/boot/home/config/settings/deskbar/Applications/FRiSS +} + +LICENSE="MIT" +COPYRIGHT="2004 Andreas Herzig (N3S) + 2010-2012 Adrien Destugues (PulkoMandy)" diff --git a/haiku-apps/globe/globe-0.4.bep b/haiku-apps/globe/globe-0.4.bep new file mode 100644 index 000000000..69c8e3dbe --- /dev/null +++ b/haiku-apps/globe/globe-0.4.bep @@ -0,0 +1,25 @@ +DESCRIPTION="Globe Web Editor" +HOMEPAGE="http://globe.beos.hu/index_en.html" +SRC_URI="http://ports-space.haiku-files.org/source/globe-0.4.zip" +CHECKSUM_MD5="61601576e59b0dc5ab6364f684a47236" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="" +BUILD { + cd globe0.4 + make +} + +INSTALL { + cd globe0.4 + TARGET_DIR=${DESTDIR}`finddir B_APPS_DIRECTORY`/Globe + mkdir -p $TARGET_DIR + cp Globe $TARGET_DIR + cp GlobeBUGList.txt $TARGET_DIR + cp globe* $TARGET_DIR + cp LICENSE.txt $TARGET_DIR + cp NewFeatures.txt $TARGET_DIR + cp objects.*/Globe* $TARGET_DIR +} +LICENSE="GNU GPL v2" +COPYRIGHT="2001-2004 Gergely Rózsahegyi" diff --git a/haiku-apps/globe/patches/globe-0.4.patch b/haiku-apps/globe/patches/globe-0.4.patch new file mode 100644 index 000000000..64a1f4be6 --- /dev/null +++ b/haiku-apps/globe/patches/globe-0.4.patch @@ -0,0 +1,92 @@ +diff -Naur globe0.4/Makefile globe0.4-haiku/Makefile +--- globe0.4/Makefile 1970-01-01 00:00:00.000000000 +0000 ++++ globe0.4-haiku/Makefile 2012-12-30 19:40:59.058720256 +0000 +@@ -0,0 +1,27 @@ ++NAME= Globe ++TYPE= APP ++SRCS= RHTML_app.cpp RHTML_win.cpp RHTML_numview.cpp RHTML_savewin.cpp RHTML_aboutwin.cpp RHTML_prefwin.cpp RHTML_fmenu.cpp RHTML_buttonmenu.cpp RHTML_bmenu.cpp RHTML_parammenu.cpp RHTML_colorwin.cpp RHTML_amenu.cpp RHTML_textview.cpp RHTML_tabbutton.cpp RHTML_tagmenu.cpp RHTML_filetypes.cpp RHTML_options.cpp ToolTip/TToolTip.cpp Timer/RTimer.cpp URLView/URLView.cpp Tool/RadioBar.cpp Tool/ToolBar.cpp Tool/ToolItem.cpp Tool/ToolView.cpp ++RSRCS= Globe.rsrc ++LIBS= /boot/system/lib/libbe.so /boot/system/lib/libtextencoding.so /boot/system/lib/libtracker.so /boot/system/lib/libroot.so /boot/system/lib/libtranslation.so /boot/system/lib/libgame.so /boot/system/lib/libstdc++.r4.so ++LIBPATHS= ++SYSTEM_INCLUDE_PATHS= /boot/develop/headers/be /boot/develop/headers/cpp /boot/develop/headers/posix /boot/develop/lib /boot/beos/system/lib ++LOCAL_INCLUDE_PATHS= ./../../../config/lib ./Genesis ToolTip Timer URLView Tool ++OPTIMIZE=FULL ++# specify any preprocessor symbols to be defined. The symbols will not ++# have their values set automatically; you must supply the value (if any) ++# to use. For example, setting DEFINES to "DEBUG=1" will cause the ++# compiler option "-DDEBUG=1" to be used. Setting DEFINES to "DEBUG" ++# would pass "-DDEBUG" on the compiler's command line. ++DEFINES= ++# specify special warning levels ++# if unspecified default warnings will be used ++# NONE = supress all warnings ++# ALL = enable all warnings ++WARNINGS = ++# Build with debugging symbols if set to TRUE ++SYMBOLS= ++COMPILER_FLAGS=-Woverloaded-virtual -funsigned-bitfields -D_HAIKU_ ++LINKER_FLAGS= ++ ++## include the makefile-engine ++include $(BUILDHOME)/etc/makefile-engine +diff -Naur globe0.4/RHTML_win.cpp globe0.4-haiku/RHTML_win.cpp +--- globe0.4/RHTML_win.cpp 2004-10-21 14:16:28.000000000 +0000 ++++ globe0.4-haiku/RHTML_win.cpp 2012-12-30 18:28:09.000000000 +0000 +@@ -288,7 +288,9 @@ + if (textdb>0) + { + close->SetEnabled(true); ++ #ifndef _HAIKU_ + fmenu->FindToolItem("CLOSEBUTTON")->SetEnabled(true); ++ #endif + } + } + // - End - RHTML_Win - AddText ------------------------------------------------------------------------------- +@@ -310,7 +312,9 @@ + if (textdb<=0) + { + close->SetEnabled(false); ++ #ifndef _HAIKU_ + fmenu->FindToolItem("CLOSEBUTTON")->SetEnabled(false); ++ #endif + } + } + // - End - RHTML_Win - RemoveText ---------------------------------------------------------------------------- +@@ -1122,7 +1126,9 @@ + break; + case 'RTMM': + { ++ #ifndef _HAIKU_ + fmenu->FindToolItem("SAVEBUTTON")->SetEnabled(textview[current]->Modify()); ++ #endif + save->SetEnabled(textview[current]->Modify()); + // save_as->SetEnabled(textview[current]->Modify()); + bool mod=false; +@@ -1130,7 +1136,9 @@ + if (textview[i]->Modify()) + mod=true; + save_all->SetEnabled(mod); ++ #ifndef _HAIKU_ + fmenu->FindToolItem("SAVEALLBUTTON")->SetEnabled(mod); ++ #endif + } + break; + case 'ABWQ': +diff -Naur globe0.4/URLView/URLView.cpp globe0.4-haiku/URLView/URLView.cpp +--- globe0.4/URLView/URLView.cpp 2002-03-10 00:38:20.000000000 +0000 ++++ globe0.4-haiku/URLView/URLView.cpp 2012-12-29 14:17:53.000000000 +0000 +@@ -30,9 +30,13 @@ + + #include + ++#ifndef _HAIKU_ + #include ++#endif + +- ++#ifdef _HAIKU_ ++#include ++#endif + + URLView::URLView( BRect frame, const char *name, const char *label, + const char *url, uint32 resizingMode, uint32 flags ) diff --git a/haiku-apps/haikutwitter/haikutwitter-1.0-svn.bep b/haiku-apps/haikutwitter/haikutwitter-1.0-svn.bep new file mode 100644 index 000000000..72c54af13 --- /dev/null +++ b/haiku-apps/haikutwitter/haikutwitter-1.0-svn.bep @@ -0,0 +1,18 @@ +DESCRIPTION="Twitter client for Haiku OS" +HOMEPAGE="http://code.google.com/p/haikutwitter/" +SRC_URI="svn+http://haikutwitter.googlecode.com/svn/trunk/HaikuTwitter" +REVISION="1" +STATUS_HAIKUE="broken" +MESSAGE="This port only builds with gcc4. Use 'setgcc gcc4' before building." +DEPEND="net-misc/curl >= 7.26.0" +BUILD { + cd haikutwitter-1.0-svn + make +} + +INSTALL { + cd haikutwitter-1.0-svn + make install +} +LICENSE="MIT" +COPYRIGHT="2010-2012 Martin Hebnes Pedersen" diff --git a/haiku-apps/haikutwitter/haikutwitter-1.0.bep b/haiku-apps/haikutwitter/haikutwitter-1.0.bep new file mode 100644 index 000000000..008d6f9ba --- /dev/null +++ b/haiku-apps/haikutwitter/haikutwitter-1.0.bep @@ -0,0 +1,18 @@ +DESCRIPTION="Twitter client for Haiku OS" +HOMEPAGE="http://code.google.com/p/haikutwitter/" +SRC_URI="svn+http://haikutwitter.googlecode.com/svn/tags/1.0/HaikuTwitter" +REVISION="1" +STATUS_HAIKUE="broken" +MESSAGE="This port only builds with gcc4. Use 'setgcc gcc4' before building." +DEPEND="net-misc/curl >= 7.26.0" +BUILD { + cd haikutwitter-1.0 + make +} + +INSTALL { + cd haikutwitter-1.0 + make install +} +LICENSE="MIT" +COPYRIGHT="2010-2012 Martin Hebnes Pedersen" diff --git a/haiku-apps/hare/hare-beta1-git.bep b/haiku-apps/hare/hare-beta1-git.bep new file mode 100644 index 000000000..d7ad0f796 --- /dev/null +++ b/haiku-apps/hare/hare-beta1-git.bep @@ -0,0 +1,28 @@ +DESCRIPTION="Hare - Haiku Audio Ripper Encoder" +HOMEPAGE="http://github.com/scottmc/hare" +SRC_URI="git://github.com/scottmc/Hare.git" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="media-libs/lame > 3.98.4 + media-libs/gogo-no-coda >= 3.13 + media-libs/libogg >= 1.3.0" + +#CHECKSUM_MD5="" + +BUILD { + cd hare-beta1-git + cmake . + make +} + +INSTALL { + cd hare-beta1-git + HARE_DIR=${DESTDIR}/`finddir B_APPS_DIRECTORY`/Hare + mkdir -p ${HARE_DIR} + cp -r build/ ${HARE_DIR} +} + +LICENSE="MIT" +COPYRIGHT="2000 FlipSide Software + 2001-2003 BeUnited.org + 2009-2013 Hare Maintainers" diff --git a/haiku-apps/keymapswitcher/keymapswitcher-1.2.7.bep b/haiku-apps/keymapswitcher/keymapswitcher-1.2.7.bep new file mode 100644 index 000000000..79bb31fb2 --- /dev/null +++ b/haiku-apps/keymapswitcher/keymapswitcher-1.2.7.bep @@ -0,0 +1,20 @@ +DESCRIPTION="keymap switcher for Haiku." +HOMEPAGE="http://www.switcher.sourceforge.net" +SRC_URI="cvs://:pserver:anonymous@switcher.cvs.sourceforge.net:/cvsroot/switcher/keymapswitcher\(haiku\)" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="" +#CHECKSUM_MD5="" +BUILD { + cd keymapswitcher-1.2.7 + make +} + +INSTALL { + cd keymapswitcher-1.2.7 + make package + cp dist/*.zip ../.. +} + +COPYRIGHT="1999-2003 Stas Maximov" +LICENSE="BSD (4-clause)" diff --git a/haiku-apps/paladin/paladin-1.3-hg.bep b/haiku-apps/paladin/paladin-1.3-hg.bep index 01ad25b1c..fccfd5c99 100644 --- a/haiku-apps/paladin/paladin-1.3-hg.bep +++ b/haiku-apps/paladin/paladin-1.3-hg.bep @@ -7,13 +7,35 @@ DEPEND="" #CHECKSUM_MD5="" BUILD { cd paladin-1.3-hg - ./buildsuite.sh 1 +# ./buildsuite.sh 1 + cd Paladin +# chmod 755 buildhaikugcc2.sh +# chmod 755 buildhaikugcc4.sh + if [ -n "$(setgcc | grep '2')" ]; then + ./buildhaikugcc2.sh + cd ../SymbolFinder + ../Paladin/Paladin -r -d SymbolFinder.pld + else + ./buildhaikugcc4.sh + cd ../SymbolFinder + sed -i 's/gcc4\///g' * + make + cp objects.x86-gcc4-release/SymbolFinder SymbolFinder + fi + cd ../PalEdit + jam } INSTALL { cd paladin-1.3-hg mkdir -p ${DESTDIR}/`finddir B_APPS_DIRECTORY`/Paladin - unzip PaladinFiles.zip -d ${DESTDIR}/`finddir B_APPS_DIRECTORY`/Paladin + cp -f Paladin/Paladin ${DESTDIR}/`finddir B_APPS_DIRECTORY`/Paladin/ + cp -f Paladin/WHAT* ${DESTDIR}/`finddir B_APPS_DIRECTORY`/Paladin/ + cp -f Paladin/README ${DESTDIR}/`finddir B_APPS_DIRECTORY`/Paladin/ + cp -f -r Paladin/Templates ${DESTDIR}/`finddir B_APPS_DIRECTORY`/Paladin/ + cp -f -r PalEdit/generated/distro/* ${DESTDIR}/`finddir B_APPS_DIRECTORY`/Paladin/ + cp -f SymbolFinder/SymbolFinder ${DESTDIR}/`finddir B_APPS_DIRECTORY`/Paladin/ + cp -f -r Paladin/Licenses ${DESTDIR}/`finddir B_APPS_DIRECTORY`/Paladin/ } LICENSE="MIT" -COPYRIGHT="2008-2010 Jon Yoder" +COPYRIGHT="2008-2011 DarkWyrm" diff --git a/haiku-apps/paladin/paladin-1.3.bep b/haiku-apps/paladin/paladin-1.3.bep index 6ac9ea4ea..cb7986d52 100644 --- a/haiku-apps/paladin/paladin-1.3.bep +++ b/haiku-apps/paladin/paladin-1.3.bep @@ -16,6 +16,7 @@ BUILD { else ./buildhaikugcc4.sh cd ../SymbolFinder + sed -i 's/gcc4\///g' * make cp objects.x86-gcc4-release/SymbolFinder SymbolFinder fi @@ -32,6 +33,7 @@ INSTALL { cp -f -r Paladin/Templates ${DESTDIR}/`finddir B_APPS_DIRECTORY`/Paladin/ cp -f -r PalEdit/generated/distro/* ${DESTDIR}/`finddir B_APPS_DIRECTORY`/Paladin/ cp -f SymbolFinder/SymbolFinder ${DESTDIR}/`finddir B_APPS_DIRECTORY`/Paladin/ + cp -f -r Paladin/Licenses ${DESTDIR}/`finddir B_APPS_DIRECTORY`/Paladin/ } LICENSE="MIT" COPYRIGHT="2008-2010 DarkWyrm" diff --git a/haiku-apps/pe/pe-2.4.3-600.bep b/haiku-apps/pe/pe-2.4.3-600.bep index 0371a7165..bc857b363 100644 --- a/haiku-apps/pe/pe-2.4.3-600.bep +++ b/haiku-apps/pe/pe-2.4.3-600.bep @@ -11,16 +11,14 @@ BUILD { } INSTALL { - cd pe-2.4.3-600/generated - if [ -d distro ];then - mv -f distro Pe - fi + cd pe-2.4.3-600 mkdir -p ${DESTDIR}/boot/apps - cp -a Pe ${DESTDIR}/boot/apps - rm -f ${DESTDIR}/boot/apps/Pe/.OptionalPackageDescription - if [ -z ${DESTDIR} ];then - find /boot/apps/Pe -type d -name ".svn" | xargs rm -rf - fi + cp -a generated/distro ${DESTDIR}/boot/apps/Pe + cp -a doc ${DESTDIR}/boot/apps/Pe/Documentation + rm -f ${DESTDIR}/boot/apps/Pe/.OptionalPackageDescription + if [ -z "${DESTDIR}" ];then + find /boot/apps/Pe -type d -name ".svn" | xargs rm -rf + fi } LICENSE="BSD (4-clause) MIT" diff --git a/haiku-apps/pe/pe-2.4.3-hg.bep b/haiku-apps/pe/pe-2.4.3-hg.bep new file mode 100644 index 000000000..ce5e6fc70 --- /dev/null +++ b/haiku-apps/pe/pe-2.4.3-hg.bep @@ -0,0 +1,26 @@ +DESCRIPTION="Pe - Programmer's Editor" +HOMEPAGE="http://pe-editor.berlios.de/" +SRC_URI="hg+http://hg.berlios.de/repos/pe-editor" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="dev-libs/libpcre >= 8.00" +#CHECKSUM_MD5="" +BUILD { + cd pe-2.4.3-hg + jam +} + +INSTALL { + cd pe-2.4.3-hg + mkdir -p ${DESTDIR}/boot/apps + cp -a generated/distro ${DESTDIR}/boot/apps/Pe + cp -a doc ${DESTDIR}/boot/apps/Pe/Documentation + rm -f ${DESTDIR}/boot/apps/Pe/.OptionalPackageDescription + if [ -z "${DESTDIR}" ];then + find /boot/apps/Pe -type d -name ".svn" | xargs rm -rf + fi +} +LICENSE="BSD (4-clause) + MIT" +COPYRIGHT="1996-2002 Maarteen Hekkelman + 2003-2012 Team Pe" diff --git a/haiku-apps/puri/puri-0.3.9.1.bep b/haiku-apps/puri/puri-0.3.9.1.bep new file mode 100644 index 000000000..8f7f1d4e1 --- /dev/null +++ b/haiku-apps/puri/puri-0.3.9.1.bep @@ -0,0 +1,27 @@ +DESCRIPTION="Puri is a 2D and 3D chess game. Playing online is also supported" +HOMEPAGE="http://haiku.bplaced.net/" +SRC_URI="http://haiku.bplaced.net/puri/sources/puri-0.3.9.1.zip" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="" +CHECKSUM_MD5="6e0a48e31dae972ccb010437a2d72dd8" +MESSAGE="This port only builds with gcc4." +BUILD { + cd puri-0.3.9.1 + jam +} + +INSTALL { + puri=${DESTDIR}/`finddir B_APPS_DIRECTORY`/Puri + mkdir -p ${puri} + mkdir -p ${puri}/data/ + mkdir -p ${puri}/Engines/ + cd puri-0.3.9.1 + cp Puri ${puri} + cp -R ./data/* ${puri}/data + cp ./Engines/* ${puri}/Engines + chmod 755 ${puri}/Engines/stockfish +} + +LICENSE="MIT" +COPYRIGHT="2010-2012 Haiku inc." diff --git a/haiku-apps/sawteeth/sawteeth-1.3.bep b/haiku-apps/sawteeth/sawteeth-1.3.bep new file mode 100644 index 000000000..3155d4445 --- /dev/null +++ b/haiku-apps/sawteeth/sawteeth-1.3.bep @@ -0,0 +1,27 @@ +DESCRIPTION="Sawteeth is a soft-synth (with tracker) for BeOS and Haiku, meant to either create cool synthsounds to use in cubase and such, or cute chip-tunes. It uses no samples but only generated waveforms" +HOMEPAGE="http://pulkomandy.tk/projects/sawteeth/wiki" +SRC_URI="svn://pulkomandy.lexinfo.fr/sawteeth/" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="" + +BUILD { + cd sawteeth-1.3 + cmake . + make +} + +INSTALL { + cd sawteeth-1.3 + SAWTEETH_DIR=${DESTDIR}/`finddir B_APPS_DIRECTORY`/Sawteeth + mkdir -p ${SAWTEETH_DIR}/sounds + mkdir -p ${SAWTEETH_DIR}/songs + mkdir -p ${SAWTEETH_DIR}/lib + cp Sawteeth ${SAWTEETH_DIR}/Sawteeth + cp -r sounds ${SAWTEETH_DIR} + cp -r songs ${SAWTEETH_DIR} + cp -r lib ${SAWTEETH_DIR} +} + +LICENSE="MIT" +COPYRIGHT="2001 Jonas Norberg" diff --git a/haiku-apps/thememanager/thememanager-0-svn.bep b/haiku-apps/thememanager/thememanager-0-svn.bep new file mode 100644 index 000000000..49ca68421 --- /dev/null +++ b/haiku-apps/thememanager/thememanager-0-svn.bep @@ -0,0 +1,18 @@ +DESCRIPTION="ThemeManager" +HOMEPAGE="http://dev.osdrawer.net/projects/thememanager/" +SRC_URI="http://svn.osdrawer.net/thememanager/trunk" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="" +#CHECKSUM_MD5="" +BUILD { + cd trunk + make +} + +INSTALL { + cd trunk +} + +LICENSE="MIT" +COPYRIGHT="2000-2012 François Revol" diff --git a/haiku-apps/vision/VisionSettings b/haiku-apps/vision/VisionSettings new file mode 100644 index 000000000..171833498 Binary files /dev/null and b/haiku-apps/vision/VisionSettings differ diff --git a/haiku-apps/vision/vision-908.bep b/haiku-apps/vision/vision-908.bep index 0ef0a05b5..6e8b0d45b 100644 --- a/haiku-apps/vision/vision-908.bep +++ b/haiku-apps/vision/vision-908.bep @@ -15,12 +15,15 @@ BUILD { } INSTALL { + VISIONSETTINGSDIR=${DESTDIR}/`finddir B_USER_SETTINGS_DIRECTORY`/Vision + mkdir -p ${VISIONSETTINGSDIR} cd vision-908 cd Vision mkdir -p ${DESTDIR}`finddir B_APPS_DIRECTORY`/Vision cp Vision ${DESTDIR}`finddir B_APPS_DIRECTORY`/Vision cd data - cp -r * ${DESTDIR}`finddir B_APPS_DIRECTORY`/Vision + cp -a * ${DESTDIR}`finddir B_APPS_DIRECTORY`/Vision + cp -a `haikuporter -t`/haiku-apps/vision/VisionSettings ${VISIONSETTINGSDIR}/ } COPYRIGHT="1999-2010 The Vision Team" diff --git a/haiku-apps/yab/patches/yab-1.6.patch b/haiku-apps/yab/patches/yab-1.6.patch new file mode 100644 index 000000000..e3b3ee9e5 --- /dev/null +++ b/haiku-apps/yab/patches/yab-1.6.patch @@ -0,0 +1,20 @@ +diff -urN yab-1.6/src/Makefile yab-1.6-haiku/src/Makefile +--- yab-1.6/src/Makefile 2009-10-23 21:02:10.031195136 +0000 ++++ yab-1.6-haiku/src/Makefile 2011-06-01 16:17:53.000000000 +0000 +@@ -45,7 +45,7 @@ + ## + ## Libraries + ## +-LIBPATH = -L/boot/home/config/lib ++LIBPATH = -L/$(shell finddir B_COMMON_LIB_DIRECTORY) + #-L/boot/home/yab/CalendarControl.a + LIB = -lncurses -lbe -lroot -ltranslation -ltracker -lmedia $(ZETALIB) + +@@ -98,6 +98,7 @@ + main.o: main.c yabasic.h config.h + $(GCC) $(GCC_OPT) -c main.c -o main.o + flex.c: yabasic.flex ++ chmod 755 ./flex + ./flex $(FLEXFLAGS) -t yabasic.flex >flex.c + bison.c: yabasic.bison + bison $(BISONFLAGS) --output-file bison.c yabasic.bison diff --git a/haiku-apps/yab/yab-1.6.bep b/haiku-apps/yab/yab-1.6.bep new file mode 100644 index 000000000..3c8340fa3 --- /dev/null +++ b/haiku-apps/yab/yab-1.6.bep @@ -0,0 +1,26 @@ +DESCRIPTION="yab is an extended version of yabasic, a BASIC programming language, with special commands designed for BeOS, Haiku and Zeta." +HOMEPAGE="http://sourceforge.net/projects/yab-interpreter" +SRC_URI="http://ports-space.haiku-files.org/haiku-apps/source/yab-1.6.zip" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="" +CHECKSUM_MD5="071e8653265a60fea96cceab46f67e5b" +BUILD { + cd yab-1.6/src + make clean + make +} + +INSTALL { + cd yab-1.6 + mkdir -p ${DESTDIR}/boot/apps/yab + cp -a src/yab ${DESTDIR}/boot/apps/yab + cp -a Documentation ${DESTDIR}/boot/apps/yab + cp -a Programs ${DESTDIR}/boot/apps/yab + cp -a yab-IDE ${DESTDIR}/boot/apps/yab +} + +LICENSE="Artistic + GNU GPL v2" +COPYRIGHT="1995-2006 Marc-Oliver Ihm (yabasic) + 2006-2009 Jan Bungeroth (yab improvements)" diff --git a/haiku-apps/libwalter/libwalter-97.bep b/haiku-libs/libwalter/libwalter-97.bep similarity index 100% rename from haiku-apps/libwalter/libwalter-97.bep rename to haiku-libs/libwalter/libwalter-97.bep diff --git a/media-fonts/arabeyes-fonts/arabeyes-fonts-1.1.bep b/media-fonts/arabeyes-fonts/arabeyes-fonts-1.1.bep new file mode 100644 index 000000000..4d1dde0d9 --- /dev/null +++ b/media-fonts/arabeyes-fonts/arabeyes-fonts-1.1.bep @@ -0,0 +1,26 @@ +DESCRIPTION="Arabeyes Arabic TrueType fonts" +HOMEPAGE="http://projects.arabeyes.org/project.php?proj=Khotot" +SRC_URI="http://sourceforge.net/projects/arabeyes/files/Fonts/ae_fonts/ae_fonts1_ttf_1.1.tar.bz2" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="" +CHECKSUM_MD5="11000a74da50b461b374f711392f1d46" +BUILD { + cd ae_fonts1-1.1 +} + +INSTALL { + cd ae_fonts1-1.1 + FONTDIR=${DESTDIR}/`finddir B_COMMON_FONTS_DIRECTORY`/arabeyes + mkdir -p ${FONTDIR} + cp -r AAHS ${FONTDIR}/ + cp -r AGA ${FONTDIR}/ + cp -r FS ${FONTDIR}/ + cp -r Kasr ${FONTDIR}/ + cp -r MCS ${FONTDIR}/ + cp -r Shmookh ${FONTDIR}/ +} + +LICENSE="GNU GPL v2" +COPYRIGHT="2003-2007 Arabeyes.org + 2002-2005 Free Software Foundation" diff --git a/media-fonts/courier-prime/courier-prime-1.0.bep b/media-fonts/courier-prime/courier-prime-1.0.bep new file mode 100644 index 000000000..91be0bec0 --- /dev/null +++ b/media-fonts/courier-prime/courier-prime-1.0.bep @@ -0,0 +1,21 @@ +DESCRIPTION="It's Courier, just better." +HOMEPAGE="http://quoteunquoteapps.com/courierprime/" +SRC_URI="http://quoteunquoteapps.com/downloads/courier-prime.zip" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="" +CHECKSUM_MD5="cf79336ce1cf439560a5364ab7856738" +BUILD { + echo "No building required." +} + +INSTALL { + cd "Courier Prime" + FONTDIR=${DESTDIR}/`finddir B_COMMON_FONTS_DIRECTORY`/courier-prime + mkdir -p ${FONTDIR} + cp -r *.ttf ${FONTDIR}/ + cp Read\ me.txt ${FONTDIR}/README.txt +} + +LICENSE="SIL Open Font License v1.1" +COPYRIGHT="2013 Quote-Unquote Apps" diff --git a/media-fonts/courier-prime/licenses/SIL Open Font License v1.1 b/media-fonts/courier-prime/licenses/SIL Open Font License v1.1 new file mode 100644 index 000000000..075d1aefb --- /dev/null +++ b/media-fonts/courier-prime/licenses/SIL Open Font License v1.1 @@ -0,0 +1,91 @@ +This Font Software is licensed under the SIL Open Font License, Version 1.1. +This license is copied below, and is also available with a FAQ at: +http://scripts.sil.org/OFL + + +----------------------------------------------------------- +SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 +----------------------------------------------------------- + +PREAMBLE +The goals of the Open Font License (OFL) are to stimulate worldwide +development of collaborative font projects, to support the font creation +efforts of academic and linguistic communities, and to provide a free and +open framework in which fonts may be shared and improved in partnership +with others. + +The OFL allows the licensed fonts to be used, studied, modified and +redistributed freely as long as they are not sold by themselves. The +fonts, including any derivative works, can be bundled, embedded, +redistributed and/or sold with any software provided that any reserved +names are not used by derivative works. The fonts and derivatives, +however, cannot be released under any other type of license. The +requirement for fonts to remain under this license does not apply +to any document created using the fonts or their derivatives. + +DEFINITIONS +"Font Software" refers to the set of files released by the Copyright +Holder(s) under this license and clearly marked as such. This may +include source files, build scripts and documentation. + +"Reserved Font Name" refers to any names specified as such after the +copyright statement(s). + +"Original Version" refers to the collection of Font Software components as +distributed by the Copyright Holder(s). + +"Modified Version" refers to any derivative made by adding to, deleting, +or substituting -- in part or in whole -- any of the components of the +Original Version, by changing formats or by porting the Font Software to a +new environment. + +"Author" refers to any designer, engineer, programmer, technical +writer or other person who contributed to the Font Software. + +PERMISSION & CONDITIONS +Permission is hereby granted, free of charge, to any person obtaining +a copy of the Font Software, to use, study, copy, merge, embed, modify, +redistribute, and sell modified and unmodified copies of the Font +Software, subject to the following conditions: + +1) Neither the Font Software nor any of its individual components, +in Original or Modified Versions, may be sold by itself. + +2) Original or Modified Versions of the Font Software may be bundled, +redistributed and/or sold with any software, provided that each copy +contains the above copyright notice and this license. These can be +included either as stand-alone text files, human-readable headers or +in the appropriate machine-readable metadata fields within text or +binary files as long as those fields can be easily viewed by the user. + +3) No Modified Version of the Font Software may use the Reserved Font +Name(s) unless explicit written permission is granted by the corresponding +Copyright Holder. This restriction only applies to the primary font name as +presented to the users. + +4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font +Software shall not be used to promote, endorse or advertise any +Modified Version, except to acknowledge the contribution(s) of the +Copyright Holder(s) and the Author(s) or with their explicit written +permission. + +5) The Font Software, modified or unmodified, in part or in whole, +must be distributed entirely under this license, and must not be +distributed under any other license. The requirement for fonts to +remain under this license does not apply to any document created +using the Font Software. + +TERMINATION +This license becomes null and void if any of the above conditions are +not met. + +DISCLAIMER +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE +COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL +DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM +OTHER DEALINGS IN THE FONT SOFTWARE. diff --git a/media-fonts/farsi-fonts/farsi-fonts-0.4.bep b/media-fonts/farsi-fonts/farsi-fonts-0.4.bep new file mode 100644 index 000000000..103144133 --- /dev/null +++ b/media-fonts/farsi-fonts/farsi-fonts-0.4.bep @@ -0,0 +1,19 @@ +DESCRIPTION="Farsi (Perisian) Unicode fonts" +HOMEPAGE="http://www.farsiweb.ir/" +SRC_URI="http://www.farsiweb.ir/font/farsifonts-0.4.zip" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="" +CHECKSUM_MD5="65a78975c923fd9db7b9441c32559c1b" +BUILD { + echo "No building required." +} + +INSTALL { + FONTDIR=${DESTDIR}/`finddir B_COMMON_FONTS_DIRECTORY`/ + mkdir -p ${FONTDIR} + cp -r *.ttf {FONTDIR} +} + +LICENSE="GNU GPL v2" +COPYRIGHT="2003 Sharif FarsiWeb Inc." diff --git a/media-fonts/inconsolata/inconsolata-1.0.bep b/media-fonts/inconsolata/inconsolata-1.0.bep new file mode 100644 index 000000000..d531ce2ef --- /dev/null +++ b/media-fonts/inconsolata/inconsolata-1.0.bep @@ -0,0 +1,24 @@ +DESCRIPTION="Inconsolata Programmer's font" +HOMEPAGE="http://www.levien.com/type/myfonts/inconsolata.html" +SRC_URI="http://media.nodnod.net/Inconsolata-dz.otf.zip" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="" +CHECKSUM_MD5="8510443343f43382566511e73abc06f8" +BUILD { + echo "No building required." +} + +INSTALL { + FONTDIR=${DESTDIR}/`finddir B_COMMON_FONTS_DIRECTORY`/inconsolata + mkdir -p ${FONTDIR} + wget http://levien.com/type/myfonts/Inconsolata.otf + wget http://www.cosmix.org/software/files/InconsolataHellenic.zip + unzip -o InconsolataHellenic.zip + cp -r *.otf ${FONTDIR}/ +} + +LICENSE="SIL Open Font License v1.1" +COPYRIGHT="2006 Raph Levien + 2009 David Zhou + 2010-2012 Dimosthenis Kaponis" diff --git a/media-fonts/kacst-fonts/kacst-fonts-5.0.bep b/media-fonts/kacst-fonts/kacst-fonts-5.0.bep new file mode 100644 index 000000000..2c773bcf1 --- /dev/null +++ b/media-fonts/kacst-fonts/kacst-fonts-5.0.bep @@ -0,0 +1,25 @@ +DESCRIPTION="KACST Arabic Truetype Fonts" +HOMEPAGE="http://www.arabeyes.org/project.php?proj=Khotot" +SRC_URI="http://sourceforge.net/projects/arabeyes/files/latest/download?source=files" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="" +CHECKSUM_MD5="0a7ad4538d3b97adfbefa4c5cf8c2660" +BUILD { + cd kacst_one_5.0 +} + +INSTALL { + cd kacst_one_5.0 + FONTDIR=${DESTDIR}/`finddir B_COMMON_FONTS_DIRECTORY`/arabeyes + mkdir -p ${FONTDIR} + cp KacstOne-Bold.sfd ${FONTDIR}/ + cp KacstOne-Bold.ttf ${FONTDIR}/ + cp KacstOne.sfd ${FONTDIR}/ + cp KacstOne.ttf ${FONTDIR}/ +} + +LICENSE="GNU GPL v2" +COPYRIGHT="2004 KACST + 2002,2003,2005,2008,2009 Free Software Foundation + 2009-2011 Kahled Hosny (Arabeyes additions)" diff --git a/media-fonts/lateef-font/lateef-font-1.001.bep b/media-fonts/lateef-font/lateef-font-1.001.bep new file mode 100644 index 000000000..bc38efee9 --- /dev/null +++ b/media-fonts/lateef-font/lateef-font-1.001.bep @@ -0,0 +1,19 @@ +DESCRIPTION="Arabic font" +HOMEPAGE="http://scripts.sil.org/ArabicFonts_Download" +SRC_URI="http://scripts.sil.org/cms/scripts/render_download.php?format=file&media_id=Lateef_OT_1_001&filename=LateefRegOT_1.001.zip" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="" +CHECKSUM_MD5="c060ab84ab33ae8f991103258b8e7f22" +BUILD { + echo "No building required." +} + +INSTALL { + FONTDIR=${DESTDIR}/`finddir B_COMMON_FONTS_DIRECTORY`/ + mkdir -p ${FONTDIR} + cp -r *.ttf ${FONTDIR} +} + +LICENSE="SIL Open Font License v1.1" +COPYRIGHT="2004-2008 SIL International" diff --git a/media-fonts/lateef-font/licenses/SIL Open Font License v1.1 b/media-fonts/lateef-font/licenses/SIL Open Font License v1.1 new file mode 100644 index 000000000..075d1aefb --- /dev/null +++ b/media-fonts/lateef-font/licenses/SIL Open Font License v1.1 @@ -0,0 +1,91 @@ +This Font Software is licensed under the SIL Open Font License, Version 1.1. +This license is copied below, and is also available with a FAQ at: +http://scripts.sil.org/OFL + + +----------------------------------------------------------- +SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 +----------------------------------------------------------- + +PREAMBLE +The goals of the Open Font License (OFL) are to stimulate worldwide +development of collaborative font projects, to support the font creation +efforts of academic and linguistic communities, and to provide a free and +open framework in which fonts may be shared and improved in partnership +with others. + +The OFL allows the licensed fonts to be used, studied, modified and +redistributed freely as long as they are not sold by themselves. The +fonts, including any derivative works, can be bundled, embedded, +redistributed and/or sold with any software provided that any reserved +names are not used by derivative works. The fonts and derivatives, +however, cannot be released under any other type of license. The +requirement for fonts to remain under this license does not apply +to any document created using the fonts or their derivatives. + +DEFINITIONS +"Font Software" refers to the set of files released by the Copyright +Holder(s) under this license and clearly marked as such. This may +include source files, build scripts and documentation. + +"Reserved Font Name" refers to any names specified as such after the +copyright statement(s). + +"Original Version" refers to the collection of Font Software components as +distributed by the Copyright Holder(s). + +"Modified Version" refers to any derivative made by adding to, deleting, +or substituting -- in part or in whole -- any of the components of the +Original Version, by changing formats or by porting the Font Software to a +new environment. + +"Author" refers to any designer, engineer, programmer, technical +writer or other person who contributed to the Font Software. + +PERMISSION & CONDITIONS +Permission is hereby granted, free of charge, to any person obtaining +a copy of the Font Software, to use, study, copy, merge, embed, modify, +redistribute, and sell modified and unmodified copies of the Font +Software, subject to the following conditions: + +1) Neither the Font Software nor any of its individual components, +in Original or Modified Versions, may be sold by itself. + +2) Original or Modified Versions of the Font Software may be bundled, +redistributed and/or sold with any software, provided that each copy +contains the above copyright notice and this license. These can be +included either as stand-alone text files, human-readable headers or +in the appropriate machine-readable metadata fields within text or +binary files as long as those fields can be easily viewed by the user. + +3) No Modified Version of the Font Software may use the Reserved Font +Name(s) unless explicit written permission is granted by the corresponding +Copyright Holder. This restriction only applies to the primary font name as +presented to the users. + +4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font +Software shall not be used to promote, endorse or advertise any +Modified Version, except to acknowledge the contribution(s) of the +Copyright Holder(s) and the Author(s) or with their explicit written +permission. + +5) The Font Software, modified or unmodified, in part or in whole, +must be distributed entirely under this license, and must not be +distributed under any other license. The requirement for fonts to +remain under this license does not apply to any document created +using the Font Software. + +TERMINATION +This license becomes null and void if any of the above conditions are +not met. + +DISCLAIMER +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE +COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL +DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM +OTHER DEALINGS IN THE FONT SOFTWARE. diff --git a/media-fonts/nafees-nastaleeq/licenses/CRULP b/media-fonts/nafees-nastaleeq/licenses/CRULP new file mode 100644 index 000000000..3bbef24a0 --- /dev/null +++ b/media-fonts/nafees-nastaleeq/licenses/CRULP @@ -0,0 +1,19 @@ +License Agreement +  +Copyright (c) 2004 by Center for Research in Urdu Language Processing (CRULP), National University of Computer and Emerging Sciences, Lahore, Pakistan. All Rights Reserved. + +Permission is hereby granted, free of charge, to any person obtaining a copy of the font accompanying this license ("Font") and associated documentation files (the "Font Software"), to reproduce and distribute the Font Software, including without limitation the rights to use, copy, merge, publish, distribute, and/or sell copies of the Font Software, and to permit persons to whom the Font Software is furnished to do so, subject to the following conditions: + +1. The above copyright and trademark notices and this permission notice shall be included in all copies of one or more of the Font Software typefaces. + +2. The Font Software may be modified, altered, or added to, and in particular the designs of glyphs or characters in the Fonts may be modified and additional glyphs or characters may be added to the Fonts, only if the font is renamed to names not containing either the words "Nafees" or the word "CRULP". + +3. This License becomes null and void to the extent applicable to Font or Font Software that has been modified and is distributed under the "Nafees*" names. + +4. The Font Software may be sold as part of a larger software package but no copy of one or more of the Font Software typefaces may be sold by itself. + +5. The font software is provided "as is", without warranty of any kind, express or implied, including but not limited to any warranties of merchantability, fitness for a particular purpose and noninfringement of copyright, patent, trademark, or other right. In no event shall CRULP or NUCES be liable for any claim, damages or other liability, including any general, special, indirect, incidental, or consequential damages, whether in an action of contract, or otherwise, arising from, out of the use or inability to use the font software or from other dealings in the font software. + +6. Except as contained in this notice, the names of "CRULP" or "Nafees" shall not be used in advertising or otherwise to promote the sale, use or other dealings in this Font Software without prior written authorization from CRULP. + +7. As a special exception, if you create a document which uses this font, and embed this font or unaltered portions of this font into the document, this font does not by itself cause the resulting document to  be covered by the GNU General Public License. This exception does not however invalidate any other reasons why the document might be covered by the GNU General Public License. If you modify this font, you may extend this exception to your version of the font, but you are not obligated to do so. If you do not wish to do so, delete this exception statement from your version diff --git a/media-fonts/nafees-nastaleeq/nafees-nastaleeq-1.02.bep b/media-fonts/nafees-nastaleeq/nafees-nastaleeq-1.02.bep new file mode 100644 index 000000000..dd201fb6f --- /dev/null +++ b/media-fonts/nafees-nastaleeq/nafees-nastaleeq-1.02.bep @@ -0,0 +1,19 @@ +DESCRIPTION="Urdu language font developed according to calligraphic rules, following the style of one of the finest calligraphers of Pakistan (Nafees Raqam)" +HOMEPAGE="http://www.crulp.org/software/localization/Fonts/nafeesNastaleeq.html" +SRC_URI="http://www.crulp.org/Downloads/localization/fonts/NafeesNastaleeq/Nafees_Nastaleeq_v1.02.zip" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="" +CHECKSUM_MD5="34ca164ce011b682522431fc332c0cb6" +BUILD { + echo "Nothing to be done. To install this font, run haikuporter with -i option" +} + +INSTALL { + FONTDIR=${DESTDIR}/`finddir B_COMMON_FONTS_DIRECTORY`/nafees-nastaleeq + mkdir -p ${FONTDIR} + cp "Nafees Nastaleeq v1.02.ttf" ${FONTDIR} +} + +LICENSE="CRULP" +COPYRIGHT="2004 Center for Research in Urdu Language Processing" diff --git a/media-fonts/nafees-riqa/licenses/CRULP b/media-fonts/nafees-riqa/licenses/CRULP new file mode 100644 index 000000000..3bbef24a0 --- /dev/null +++ b/media-fonts/nafees-riqa/licenses/CRULP @@ -0,0 +1,19 @@ +License Agreement +  +Copyright (c) 2004 by Center for Research in Urdu Language Processing (CRULP), National University of Computer and Emerging Sciences, Lahore, Pakistan. All Rights Reserved. + +Permission is hereby granted, free of charge, to any person obtaining a copy of the font accompanying this license ("Font") and associated documentation files (the "Font Software"), to reproduce and distribute the Font Software, including without limitation the rights to use, copy, merge, publish, distribute, and/or sell copies of the Font Software, and to permit persons to whom the Font Software is furnished to do so, subject to the following conditions: + +1. The above copyright and trademark notices and this permission notice shall be included in all copies of one or more of the Font Software typefaces. + +2. The Font Software may be modified, altered, or added to, and in particular the designs of glyphs or characters in the Fonts may be modified and additional glyphs or characters may be added to the Fonts, only if the font is renamed to names not containing either the words "Nafees" or the word "CRULP". + +3. This License becomes null and void to the extent applicable to Font or Font Software that has been modified and is distributed under the "Nafees*" names. + +4. The Font Software may be sold as part of a larger software package but no copy of one or more of the Font Software typefaces may be sold by itself. + +5. The font software is provided "as is", without warranty of any kind, express or implied, including but not limited to any warranties of merchantability, fitness for a particular purpose and noninfringement of copyright, patent, trademark, or other right. In no event shall CRULP or NUCES be liable for any claim, damages or other liability, including any general, special, indirect, incidental, or consequential damages, whether in an action of contract, or otherwise, arising from, out of the use or inability to use the font software or from other dealings in the font software. + +6. Except as contained in this notice, the names of "CRULP" or "Nafees" shall not be used in advertising or otherwise to promote the sale, use or other dealings in this Font Software without prior written authorization from CRULP. + +7. As a special exception, if you create a document which uses this font, and embed this font or unaltered portions of this font into the document, this font does not by itself cause the resulting document to  be covered by the GNU General Public License. This exception does not however invalidate any other reasons why the document might be covered by the GNU General Public License. If you modify this font, you may extend this exception to your version of the font, but you are not obligated to do so. If you do not wish to do so, delete this exception statement from your version diff --git a/media-fonts/nafees-riqa/nafees-riqa-1.00.bep b/media-fonts/nafees-riqa/nafees-riqa-1.00.bep new file mode 100644 index 000000000..805653aed --- /dev/null +++ b/media-fonts/nafees-riqa/nafees-riqa-1.00.bep @@ -0,0 +1,19 @@ +DESCRIPTION="Open Type Font for writng Urdu in Riqa script based on Unicode standard" +HOMEPAGE="http://www.crulp.org/software/localization/Fonts/nafeesRiqa.html" +SRC_URI="http://www.crulp.org/Downloads/localization/fonts/NafeesRiqa/Nafees_Riqa_v1.0.zip" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="" +CHECKSUM_MD5="504c6ada41a408575a120daf2a110b6f" +BUILD { + echo "Nothing to be done. To install this font, run haikuporter with -i option" +} + +INSTALL { + FONTDIR=${DESTDIR}/`finddir B_COMMON_FONTS_DIRECTORY`/nafees-riqa + mkdir -p ${FONTDIR} + cp "Nafees Riqa v1.0.ttf" ${FONTDIR} +} + +LICENSE="CRULP" +COPYRIGHT="2004 Center for Research in Urdu Language Processing" diff --git a/media-fonts/nanumfont/licenses/SIL Open Font License v1.1 b/media-fonts/nanumfont/licenses/SIL Open Font License v1.1 new file mode 100644 index 000000000..075d1aefb --- /dev/null +++ b/media-fonts/nanumfont/licenses/SIL Open Font License v1.1 @@ -0,0 +1,91 @@ +This Font Software is licensed under the SIL Open Font License, Version 1.1. +This license is copied below, and is also available with a FAQ at: +http://scripts.sil.org/OFL + + +----------------------------------------------------------- +SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 +----------------------------------------------------------- + +PREAMBLE +The goals of the Open Font License (OFL) are to stimulate worldwide +development of collaborative font projects, to support the font creation +efforts of academic and linguistic communities, and to provide a free and +open framework in which fonts may be shared and improved in partnership +with others. + +The OFL allows the licensed fonts to be used, studied, modified and +redistributed freely as long as they are not sold by themselves. The +fonts, including any derivative works, can be bundled, embedded, +redistributed and/or sold with any software provided that any reserved +names are not used by derivative works. The fonts and derivatives, +however, cannot be released under any other type of license. The +requirement for fonts to remain under this license does not apply +to any document created using the fonts or their derivatives. + +DEFINITIONS +"Font Software" refers to the set of files released by the Copyright +Holder(s) under this license and clearly marked as such. This may +include source files, build scripts and documentation. + +"Reserved Font Name" refers to any names specified as such after the +copyright statement(s). + +"Original Version" refers to the collection of Font Software components as +distributed by the Copyright Holder(s). + +"Modified Version" refers to any derivative made by adding to, deleting, +or substituting -- in part or in whole -- any of the components of the +Original Version, by changing formats or by porting the Font Software to a +new environment. + +"Author" refers to any designer, engineer, programmer, technical +writer or other person who contributed to the Font Software. + +PERMISSION & CONDITIONS +Permission is hereby granted, free of charge, to any person obtaining +a copy of the Font Software, to use, study, copy, merge, embed, modify, +redistribute, and sell modified and unmodified copies of the Font +Software, subject to the following conditions: + +1) Neither the Font Software nor any of its individual components, +in Original or Modified Versions, may be sold by itself. + +2) Original or Modified Versions of the Font Software may be bundled, +redistributed and/or sold with any software, provided that each copy +contains the above copyright notice and this license. These can be +included either as stand-alone text files, human-readable headers or +in the appropriate machine-readable metadata fields within text or +binary files as long as those fields can be easily viewed by the user. + +3) No Modified Version of the Font Software may use the Reserved Font +Name(s) unless explicit written permission is granted by the corresponding +Copyright Holder. This restriction only applies to the primary font name as +presented to the users. + +4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font +Software shall not be used to promote, endorse or advertise any +Modified Version, except to acknowledge the contribution(s) of the +Copyright Holder(s) and the Author(s) or with their explicit written +permission. + +5) The Font Software, modified or unmodified, in part or in whole, +must be distributed entirely under this license, and must not be +distributed under any other license. The requirement for fonts to +remain under this license does not apply to any document created +using the Font Software. + +TERMINATION +This license becomes null and void if any of the above conditions are +not met. + +DISCLAIMER +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE +COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL +DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM +OTHER DEALINGS IN THE FONT SOFTWARE. diff --git a/media-fonts/nanumfont/nanumfont-2.0.bep b/media-fonts/nanumfont/nanumfont-2.0.bep new file mode 100644 index 000000000..8f0cc9baf --- /dev/null +++ b/media-fonts/nanumfont/nanumfont-2.0.bep @@ -0,0 +1,19 @@ +DESCRIPTION="Korean monospace font distributed by NHN" +HOMEPAGE="http://dev.naver.com/projects/nanumfont" +SRC_URI="http://dev.naver.com/frs/download.php/441/NanumGothicCoding-2.0.zip" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="" +CHECKSUM_MD5="6214a5844454c96faeac9a60539c7daf" +BUILD { + echo "No building required." +} + +INSTALL { + FONTDIR=${DESTDIR}/`finddir B_COMMON_FONTS_DIRECTORY`/nanumfont + mkdir -p ${FONTDIR} + cp -r *.ttf ${FONTDIR}/ +} + +LICENSE="SIL Open Font License v1.1" +COPYRIGHT="2009 NHN Corp." diff --git a/media-fonts/scheherazade-font/licenses/SIL Open Font License v1.1 b/media-fonts/scheherazade-font/licenses/SIL Open Font License v1.1 new file mode 100644 index 000000000..075d1aefb --- /dev/null +++ b/media-fonts/scheherazade-font/licenses/SIL Open Font License v1.1 @@ -0,0 +1,91 @@ +This Font Software is licensed under the SIL Open Font License, Version 1.1. +This license is copied below, and is also available with a FAQ at: +http://scripts.sil.org/OFL + + +----------------------------------------------------------- +SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 +----------------------------------------------------------- + +PREAMBLE +The goals of the Open Font License (OFL) are to stimulate worldwide +development of collaborative font projects, to support the font creation +efforts of academic and linguistic communities, and to provide a free and +open framework in which fonts may be shared and improved in partnership +with others. + +The OFL allows the licensed fonts to be used, studied, modified and +redistributed freely as long as they are not sold by themselves. The +fonts, including any derivative works, can be bundled, embedded, +redistributed and/or sold with any software provided that any reserved +names are not used by derivative works. The fonts and derivatives, +however, cannot be released under any other type of license. The +requirement for fonts to remain under this license does not apply +to any document created using the fonts or their derivatives. + +DEFINITIONS +"Font Software" refers to the set of files released by the Copyright +Holder(s) under this license and clearly marked as such. This may +include source files, build scripts and documentation. + +"Reserved Font Name" refers to any names specified as such after the +copyright statement(s). + +"Original Version" refers to the collection of Font Software components as +distributed by the Copyright Holder(s). + +"Modified Version" refers to any derivative made by adding to, deleting, +or substituting -- in part or in whole -- any of the components of the +Original Version, by changing formats or by porting the Font Software to a +new environment. + +"Author" refers to any designer, engineer, programmer, technical +writer or other person who contributed to the Font Software. + +PERMISSION & CONDITIONS +Permission is hereby granted, free of charge, to any person obtaining +a copy of the Font Software, to use, study, copy, merge, embed, modify, +redistribute, and sell modified and unmodified copies of the Font +Software, subject to the following conditions: + +1) Neither the Font Software nor any of its individual components, +in Original or Modified Versions, may be sold by itself. + +2) Original or Modified Versions of the Font Software may be bundled, +redistributed and/or sold with any software, provided that each copy +contains the above copyright notice and this license. These can be +included either as stand-alone text files, human-readable headers or +in the appropriate machine-readable metadata fields within text or +binary files as long as those fields can be easily viewed by the user. + +3) No Modified Version of the Font Software may use the Reserved Font +Name(s) unless explicit written permission is granted by the corresponding +Copyright Holder. This restriction only applies to the primary font name as +presented to the users. + +4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font +Software shall not be used to promote, endorse or advertise any +Modified Version, except to acknowledge the contribution(s) of the +Copyright Holder(s) and the Author(s) or with their explicit written +permission. + +5) The Font Software, modified or unmodified, in part or in whole, +must be distributed entirely under this license, and must not be +distributed under any other license. The requirement for fonts to +remain under this license does not apply to any document created +using the Font Software. + +TERMINATION +This license becomes null and void if any of the above conditions are +not met. + +DISCLAIMER +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE +COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL +DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM +OTHER DEALINGS IN THE FONT SOFTWARE. diff --git a/media-fonts/scheherazade-font/scheherazade-font-1.005.bep b/media-fonts/scheherazade-font/scheherazade-font-1.005.bep new file mode 100644 index 000000000..307e71ece --- /dev/null +++ b/media-fonts/scheherazade-font/scheherazade-font-1.005.bep @@ -0,0 +1,20 @@ +DESCRIPTION="Arabic script font" +HOMEPAGE="http://scripts.sil.org/ArabicFonts_Download" +SRC_URI="http://scripts.sil.org/cms/scripts/render_download.php?format=file&media_id=Scheherazade_OT_1_005&filename=ScherazadeRegOT-1.005.zip" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="" +CHECKSUM_MD5="3c7e7d7f93802162effe2b517af98be0" + +BUILD { + echo "No building required." +} + +INSTALL { + FONTDIR=${DESTDIR}/`finddir B_COMMON_FONTS_DIRECTORY`/scheherazade + mkdir -p ${FONTDIR} + cp -r *.ttf ${FONTDIR} +} + +LICENSE="SIL Open Font License v1.1" +COPYRIGHT="2004-2011 SIL International" \ No newline at end of file diff --git a/media-fonts/ukijorgfonts/licenses/SIL Open Font License v1.1 b/media-fonts/ukijorgfonts/licenses/SIL Open Font License v1.1 new file mode 100644 index 000000000..075d1aefb --- /dev/null +++ b/media-fonts/ukijorgfonts/licenses/SIL Open Font License v1.1 @@ -0,0 +1,91 @@ +This Font Software is licensed under the SIL Open Font License, Version 1.1. +This license is copied below, and is also available with a FAQ at: +http://scripts.sil.org/OFL + + +----------------------------------------------------------- +SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 +----------------------------------------------------------- + +PREAMBLE +The goals of the Open Font License (OFL) are to stimulate worldwide +development of collaborative font projects, to support the font creation +efforts of academic and linguistic communities, and to provide a free and +open framework in which fonts may be shared and improved in partnership +with others. + +The OFL allows the licensed fonts to be used, studied, modified and +redistributed freely as long as they are not sold by themselves. The +fonts, including any derivative works, can be bundled, embedded, +redistributed and/or sold with any software provided that any reserved +names are not used by derivative works. The fonts and derivatives, +however, cannot be released under any other type of license. The +requirement for fonts to remain under this license does not apply +to any document created using the fonts or their derivatives. + +DEFINITIONS +"Font Software" refers to the set of files released by the Copyright +Holder(s) under this license and clearly marked as such. This may +include source files, build scripts and documentation. + +"Reserved Font Name" refers to any names specified as such after the +copyright statement(s). + +"Original Version" refers to the collection of Font Software components as +distributed by the Copyright Holder(s). + +"Modified Version" refers to any derivative made by adding to, deleting, +or substituting -- in part or in whole -- any of the components of the +Original Version, by changing formats or by porting the Font Software to a +new environment. + +"Author" refers to any designer, engineer, programmer, technical +writer or other person who contributed to the Font Software. + +PERMISSION & CONDITIONS +Permission is hereby granted, free of charge, to any person obtaining +a copy of the Font Software, to use, study, copy, merge, embed, modify, +redistribute, and sell modified and unmodified copies of the Font +Software, subject to the following conditions: + +1) Neither the Font Software nor any of its individual components, +in Original or Modified Versions, may be sold by itself. + +2) Original or Modified Versions of the Font Software may be bundled, +redistributed and/or sold with any software, provided that each copy +contains the above copyright notice and this license. These can be +included either as stand-alone text files, human-readable headers or +in the appropriate machine-readable metadata fields within text or +binary files as long as those fields can be easily viewed by the user. + +3) No Modified Version of the Font Software may use the Reserved Font +Name(s) unless explicit written permission is granted by the corresponding +Copyright Holder. This restriction only applies to the primary font name as +presented to the users. + +4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font +Software shall not be used to promote, endorse or advertise any +Modified Version, except to acknowledge the contribution(s) of the +Copyright Holder(s) and the Author(s) or with their explicit written +permission. + +5) The Font Software, modified or unmodified, in part or in whole, +must be distributed entirely under this license, and must not be +distributed under any other license. The requirement for fonts to +remain under this license does not apply to any document created +using the Font Software. + +TERMINATION +This license becomes null and void if any of the above conditions are +not met. + +DISCLAIMER +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE +COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL +DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM +OTHER DEALINGS IN THE FONT SOFTWARE. diff --git a/media-fonts/ukijorgfonts/ukijorgfonts-1.0.bep b/media-fonts/ukijorgfonts/ukijorgfonts-1.0.bep new file mode 100644 index 000000000..5620593ce --- /dev/null +++ b/media-fonts/ukijorgfonts/ukijorgfonts-1.0.bep @@ -0,0 +1,21 @@ +DESCRIPTION="Uyghur Computer Science Association font project" +HOMEPAGE="http://www.ukij.org/fonts/" +SRC_URI="http://ukijorgfonts.googlecode.com/files/ukijorgfonts.zip" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="" +CHECKSUM_MD5="e50ed1b90f96cad12e31f8769bd598dc" +BUILD { + echo "Nothing to be done. To install this font, run haikuporter with -i option" +} + +INSTALL { + FONTDIR=${DESTDIR}/`finddir B_COMMON_FONTS_DIRECTORY`/ukijorgfonts + mkdir -p ${FONTDIR} + cp *.ttf ${FONTDIR} +} + +LICENSE="SIL Open Font License v1.1 + GNU LGPL v2 + GNU GPL v2" +COPYRIGHT="2004-2011 Uyghur Computer Science Association" diff --git a/media-fonts/x-series-fonts/x-series-fonts-2.0.bep b/media-fonts/x-series-fonts/x-series-fonts-2.0.bep new file mode 100644 index 000000000..93c2f2064 --- /dev/null +++ b/media-fonts/x-series-fonts/x-series-fonts-2.0.bep @@ -0,0 +1,131 @@ +DESCRIPTION="X Series 2 fonts are built on freely available fonts and extended to support Persian, Arabic, Urdu, Pashto, Dari, Uzbek, Kurdish, Uighur, old Turkish (Ottoman) and modern Turkish (Roman)." +HOMEPAGE="http://wiki.irmug.com/index.php/X_Series_2" +SRC_URI="http://irmug.com/downloads/dl.php?id=21" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="" +CHECKSUM_MD5="1e45723ebad5e748d4b5f6f28074833f" +BUILD { + cd Zar +} + +INSTALL { + FONTDIR=${DESTDIR}/`finddir B_COMMON_FONTS_DIRECTORY`/x-series + mkdir -p ${FONTDIR} + wget http://irmug.com/downloads/dl.php?id=21 + unzip -o Zar.zip + cd Zar + cp -f *.ttf ${FONTDIR}/ + + wget http://irmug.com/downloads/dl.php?id=3 + unzip -o Niloofar.zip + cd Niloofar + cp -f *.ttf ${FONTDIR}/ + + wget http://irmug.com/downloads/dl.php?id=2 + unzip -o Khoramshahr.zip + cd Khoramshahr + cp -f *.ttf ${FONTDIR}/ + + wget http://www.irmug.com/downloads/dl.php?id=1 + unzip -o Kayhan.zip + cd Kayhan + cp -f *.ttf ${FONTDIR}/ + + wget http://irmug.com/downloads/dl.php?id=17 + unzip -o Yagut.zip + cd Yagut + cp -f *.ttf ${FONTDIR}/ + + wget http://irmug.com/downloads/dl.php?id=5 + unzip -o Riyaz.zip + cd Riyaz + cp -f *.ttf ${FONTDIR}/ + + wget http://irmug.com/downloads/dl.php?id=6 + unzip -o Roya.zip + cd Roya + cp -f *.ttf ${FONTDIR}/ + + wget http://irmug.com/downloads/dl.php?id=7 + unzip -o Shafigh.zip + cd Shafigh + cp -f *.ttf ${FONTDIR}/ + + wget http://irmug.com/downloads/dl.php?id=9 + unzip -o "Shafigh Kurd.zip" + cd "Shafigh Kurd" + cp -f *.ttf ${FONTDIR}/ + + wget http://irmug.com/downloads/dl.php?id=8 + unzip -o "Shafigh Uzbek.zip" + cd "Shafigh Uzbek" + cp -f *.ttf ${FONTDIR}/ + + wget http://irmug.com/downloads/dl.php?id=10 + unzip -o Shiraz.zip + cd Shiraz + cp -f *.ttf ${FONTDIR}/ + + wget http://irmug.com/downloads/dl.php?id=11 + unzip -o Sols.zip + cd Sols + cp -f *.ttf ${FONTDIR}/ + + wget http://irmug.com/downloads/dl.php?id=12 + unzip -o Tabriz.zip + cd Tabriz + cp -f *.ttf ${FONTDIR}/ + + wget http://irmug.com/downloads/dl.php?id=13 + unzip -o Titre.zip + cd Titre + cp -f *.ttf ${FONTDIR}/ + + wget http://irmug.com/downloads/dl.php?id=14 + unzip -o Traffic.zip + cd Traffic + cp -f *.ttf ${FONTDIR}/ + + wget http://irmug.com/downloads/dl.php?id=4 + unzip -o Paatch.zip + cd Paatch + cp -f *.ttf ${FONTDIR}/ + + wget http://irmug.com/downloads/dl.php?id=15 + unzip -o Vahid.zip + cd Vahid + cp -f *.ttf ${FONTDIR}/ + + wget http://irmug.com/downloads/dl.php?id=16 + unzip -o Vosta.zip + cd Vosta + cp -f *.ttf ${FONTDIR}/ + + wget http://irmug.com/downloads/dl.php?id=19 + unzip -o Yekan.zip + cd Yekan + cp -f *.ttf ${FONTDIR}/ + + wget http://irmug.com/downloads/dl.php?id=20 + unzip -o Yermook.zip + cd Yermook + cp -f *.ttf ${FONTDIR}/ + + wget http://irmug.com/downloads/dl.php?id=18 + unzip -o Yas.zip + cd Yas + cp -f *.ttf ${FONTDIR}/ + + wget http://irmug.com/downloads/dl.php?id=22 + unzip -o Ziba.zip + cd Ziba + cp -f *.ttf ${FONTDIR}/ + + + + +} + +LICENSE="GNU GPL v2" +#COPYRIGHT="" diff --git a/media-gfx/flam3/flam3-3.0.bep b/media-gfx/flam3/flam3-3.0.bep index e5faf7032..3f3aa7c32 100644 --- a/media-gfx/flam3/flam3-3.0.bep +++ b/media-gfx/flam3/flam3-3.0.bep @@ -14,7 +14,7 @@ BUILD { fi libtoolize --force --copy --install autoreconf -i - ./configure --prefix=/boot/common + ./configure --prefix=`finddir B_COMMON_DIRECTORY` make } diff --git a/media-gfx/fontforge/fontforge-201005010.bep b/media-gfx/fontforge/fontforge-201005010.bep index 1cee88b67..d4cadf981 100644 --- a/media-gfx/fontforge/fontforge-201005010.bep +++ b/media-gfx/fontforge/fontforge-201005010.bep @@ -10,7 +10,7 @@ BUILD { libtoolize --force --copy --install aclocal autoconf - ./configure --prefix=/boot/common + ./configure --prefix=`finddir B_COMMON_DIRECTORY` make } diff --git a/media-gfx/graphviz/graphviz-2.24.bep b/media-gfx/graphviz/graphviz-2.24.bep index 72d6651e1..2285c4260 100644 --- a/media-gfx/graphviz/graphviz-2.24.bep +++ b/media-gfx/graphviz/graphviz-2.24.bep @@ -7,22 +7,23 @@ STATUS_HAIKU="stable" DEPEND="" BUILD { cd graphviz-2.24.0 - cp /boot/common/share/libtool/config/config.guess config - cp /boot/common/share/libtool/config/config.guess lib/gd/config - cp /boot/common/share/libtool/config/config.guess libltdl - cp /boot/common/share/libtool/config/config.sub config - cp /boot/common/share/libtool/config/config.sub lib/gd/config - cp /boot/common/share/libtool/config/config.sub libltdl + libtoolize -fci + aclocal -I m4 autoconf - ./configure --prefix=/boot/common --disable-shared --enable-static CFLAGS="-O0" LDFLAGS="-L/boot/common/lib -liconv" + ./configure --prefix=`finddir B_COMMON_DIRECTORY` \ + --disable-shared \ + --enable-static \ + CFLAGS="-O0" \ + LDFLAGS="-L`finddir B_COMMON_LIB_DIRECTORY` -liconv" make } INSTALL { cd graphviz-2.24.0 make install - cd /boot/common/bin + cd `finddir B_COMMON_BIN_DIRECTORY` ln -s dot_static dot } + LICENSE="CPL v1.0" COPYRIGHT="1994-2010 AT&T Corp." diff --git a/media-gfx/graphviz/graphviz-2.26.3.bep b/media-gfx/graphviz/graphviz-2.26.3.bep index 17830cce1..702281e4d 100644 --- a/media-gfx/graphviz/graphviz-2.26.3.bep +++ b/media-gfx/graphviz/graphviz-2.26.3.bep @@ -1,5 +1,5 @@ -DESCRIPTION="graphviz - Open Source Graph Visualization Software." -HOMEPAGE="http://www.graphviz.org/" +DESCRIPTION="graphviz - Open Source Graph Visualization Software." +HOMEPAGE="http://www.graphviz.org/" SRC_URI="http://www.graphviz.org/pub/graphviz/stable/SOURCES/graphviz-2.26.3.tar.gz" CHECKSUM_MD5="6f45946fa622770c45609778c0a982ee" REVISION="1" @@ -7,17 +7,20 @@ STATUS_HAIKU="stable" DEPEND="" BUILD { cd graphviz-2.26.3 - libtoolize --force --copy --install + libtoolize -fci autoconf - ./configure --prefix=/boot/common --disable-shared --enable-static --disable-perl CFLAGS="-O0" LDFLAGS="-L/boot/common/lib -liconv" + ./configure --prefix=`finddir B_COMMON_DIRECTORY` \ + --datarootdir=`finddir B_COMMON_DATA_DIRECTORY` \ + --mandir=`finddir B_COMMON_DOCUMENTATION_DIRECTORY`/man \ + --enable-shared \ + --disable-perl make } INSTALL { cd graphviz-2.26.3 make install - cd ${DESTDIR}/boot/common/bin - ln -s dot_static dot } + LICENSE="CPL v1.0" COPYRIGHT="1994-2010 AT&T Corp." diff --git a/media-gfx/graphviz/patches/graphviz-2.26.3.patch b/media-gfx/graphviz/patches/graphviz-2.26.3.patch index e0a582001..3fcfede3b 100644 --- a/media-gfx/graphviz/patches/graphviz-2.26.3.patch +++ b/media-gfx/graphviz/patches/graphviz-2.26.3.patch @@ -4,7 +4,7 @@ diff -up graphviz-2.26.3/config.h.in.orig graphviz-2.26.3/config.h.in @@ -427,6 +427,9 @@ /* Define to 1 if you have struct dioattr */ #undef HAVE_STRUCT_DIOATTR - + +/* Define to 1 if you have the header file. */ +#undef HAVE_SYSEXITS_H + @@ -14,13 +14,13 @@ diff -up graphviz-2.26.3/config.h.in.orig graphviz-2.26.3/config.h.in @@ -578,6 +581,9 @@ /* Define to the one symbol short name of this package. */ #undef PACKAGE_TARNAME - + +/* Define to the home page for this package. */ +#undef PACKAGE_URL + /* Define to the version of this package. */ #undef PACKAGE_VERSION - + diff -up graphviz-2.26.3/configure.ac.orig graphviz-2.26.3/configure.ac --- graphviz-2.26.3/configure.ac.orig 2010-01-26 09:00:29.029622272 -0700 +++ graphviz-2.26.3/configure.ac 2010-03-18 18:03:33.265289728 -0600 @@ -82,9 +82,52 @@ diff -up graphviz-2.26.3/lib/gd/gd_png.c.orig graphviz-2.26.3/lib/gd/gd_png.c @@ -150,7 +150,7 @@ BGD_DECLARE(gdImagePtr) gdImageCreateFro return NULL; } - + - if (!png_check_sig (sig, 8)) { /* bad signature */ + if (png_sig_cmp(sig, 0, 8)) { /* bad signature */ return NULL; /* bad signature */ } - + +diff -up graphviz-2.26.3/lib/gvc/gvcext.h.orig graphviz-2.26.3/lib/gvc/gvcext.h +--- graphviz-2.26.3/lib/gvc/gvcext.h.orig 2009-07-08 17:14:20.054525952 +0200 ++++ graphviz-2.26.3/lib/gvc/gvcext.h 2011-04-13 19:38:04.150470656 +0200 +@@ -65,6 +65,9 @@ extern "C" { + + typedef struct gvplugin_available_s gvplugin_available_t; + ++#undef lt_preloaded_symbols ++#define lt_preloaded_symbols lt_GRAPHVIZ_LTX_preloaded_symbols ++ + /*visual studio*/ + #ifdef WIN32_DLL + #ifndef GVC_EXPORTS +diff -up graphviz-2.26.3/lib/vmalloc/vmhdr.h.orig graphviz-2.26.3/lib/vmalloc/vmhdr.h +--- graphviz-2.26.3/lib/vmalloc/vmhdr.h.orig 2009-06-03 03:10:55.040894464 +0200 ++++ graphviz-2.26.3/lib/vmalloc/vmhdr.h 2011-04-04 18:51:05.289931264 +0200 +@@ -54,6 +54,10 @@ extern "C" { + #include + #include "FEATURE/vmalloc" + ++#ifdef __HAIKU__ ++ #undef _hdr_malloc ++#endif ++ + #endif /*_PACKAGE_ast*/ + + #undef free +diff -up graphviz-2.26.3/lib/common/const.h.orig graphviz-2.26.3/lib/common/const.h +--- graphviz-2.26.3/lib/common/const.h.orig 2009-08-28 21:46:42.059506688 +0200 ++++ graphviz-2.26.3/lib/common/const.h 2011-02-18 18:48:44.856162304 +0100 +@@ -67,7 +67,11 @@ + #define DEFAULT_FONTSIZE 14.0 + #define DEFAULT_LABEL_FONTSIZE 11.0 /* for head/taillabel */ + #define MIN_FONTSIZE 1.0 +-#define DEFAULT_FONTNAME "Times-Roman" ++#ifdef __HAIKU__ ++ #define DEFAULT_FONTNAME "DejaVuSans" ++#else ++ #define DEFAULT_FONTNAME "Times-Roman" ++#endif + #define DEFAULT_FILL "lightgrey" + #define LINESPACING 1.20 + diff --git a/media-gfx/hqx/hqx-1.1.bep b/media-gfx/hqx/hqx-1.1.bep new file mode 100644 index 000000000..ba9a5e07f --- /dev/null +++ b/media-gfx/hqx/hqx-1.1.bep @@ -0,0 +1,25 @@ +DESCRIPTION="hqx ('hq' stands for 'high quality' and 'x' stands for magnification) is one of the pixel art scaling algorithms developed by Maxim Stepin" +HOMEPAGE="http://code.google.com/p/hqx/" +SRC_URI="http://hqx.googlecode.com/files/hqx-1.1.tar.gz" +REVISION="1" +STATUS_HAIKU="untested" +DEPEND="media-libs/devil >= 1.7.8" +MESSAGE="This port only builds with gcc4. Use 'setgcc gcc4' before building." + +CHECKSUM_MD5="e4d3132b5f3614a75975b62fe6a066bb" +BUILD { + cd hqx-1.1 + + ./configure --prefix=`finddir B_COMMON_DIRECTORY` + make +} + +INSTALL { + + cd hqx-1.1 + make install +} + +LICENSE="GNU LGPL v2" +COPYRIGHT="2003 Maxim Stepin, + 2010 Cameron Zemek" diff --git a/media-gfx/imagemagick/imagemagick-6.6.1-10.bep b/media-gfx/imagemagick/imagemagick-6.6.1-10.bep index c80a9415d..21b575066 100644 --- a/media-gfx/imagemagick/imagemagick-6.6.1-10.bep +++ b/media-gfx/imagemagick/imagemagick-6.6.1-10.bep @@ -1,6 +1,6 @@ DESCRIPTION="ImageMagick - A collection of tools and libraries for many image formats" HOMEPAGE="A collection of tools and libraries for many image formats" -SRC_URI="ftp://ftp.imagemagick.org/pub/ImageMagick/ImageMagick.tar.gz" +SRC_URI="http://www.imagemagick.org/download/legacy/ImageMagick-6.6.1-10.tar.gz" REVISION="1" STATUS_HAIKU="stable" DEPEND="media-libs/libpng, @@ -19,7 +19,7 @@ BUILD { aclocal -I m4 autoconf automake - ./configure --prefix=/boot/common \ + ./configure --prefix=`finddir B_COMMON_DIRECTORY` \ --enable-shared \ --enable-fast-install \ --with-modules=yes \ diff --git a/media-gfx/pngcrush/pngcrush-1.7.6.bep b/media-gfx/pngcrush/pngcrush-1.7.6.bep index ef7238fe3..20dcd81d1 100644 --- a/media-gfx/pngcrush/pngcrush-1.7.6.bep +++ b/media-gfx/pngcrush/pngcrush-1.7.6.bep @@ -12,7 +12,7 @@ BUILD { INSTALL { cd pngcrush-1.7.6-nolib - cp -a -f pngcrush /boot/common/bin + cp -a -f pngcrush `finddir B_COMMON_BIN_DIRECTORY` } LICENSE="LibPNG" COPYRIGHT="1998-2009 Glenn Randers-Pehrson diff --git a/media-libs/aalib/aalib-1.4rc4.bep b/media-libs/aalib/aalib-1.4rc4.bep new file mode 100644 index 000000000..34b9d7925 --- /dev/null +++ b/media-libs/aalib/aalib-1.4rc4.bep @@ -0,0 +1,29 @@ +DESCRIPTION="aalib is an ASCII rendering 2D library" +HOMEPAGE="http://aa-project.sourceforge.net/aalib/" +SRC_URI="http://prdownloads.sourceforge.net/aa-project/aalib-1.4rc4.tar.gz" +#CHECKSUM_MD5="fddc3c704c5489de2a3cf0fedfec59db" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="" +BUILD { + cd aalib-1.4.0 + libtoolize --force --copy --install +# aclocal +# autoconf +# automake + MANDIR=`finddir B_COMMON_DOCUMENTATION_DIRECTORY`/man + LIBDIR=`finddir B_COMMON_LIB_DIRECTORY` + ./configure --prefix=`finddir B_COMMON_DIRECTORY` \ + --libdir=$LIBDIR \ + --mandir=$MANDIR \ + --enable-static + make +} + +INSTALL { + cd aalib-1.4.0 + make install +} + +LICENSE="Public Domain" +#COPYRIGHT="" diff --git a/media-libs/agar/agar-1.4.1.bep b/media-libs/agar/agar-1.4.1.bep new file mode 100644 index 000000000..5c13d6e2d --- /dev/null +++ b/media-libs/agar/agar-1.4.1.bep @@ -0,0 +1,26 @@ +DESCRIPTION="a modern open-source, cross-platform toolkit for graphical applications" +HOMEPAGE="http://libagar.org/index.html.en" +SRC_URI="http://stable.hypertriton.com/agar/agar-1.4.1.tar.gz" +REVISION="1" +STATUS_HAIKU="broken" +DEPEND="" +CHECKSUM_MD5="ce71fb11ad79c926a968a4ed29053820" +BUILD { + cd agar-1.4.1 + ./configure --prefix=`finddir B_COMMON_DIRECTORY` + make +} + +INSTALL { + cd agar-1.4.1 + make install +} + +TEST { + cd agar-1.4.1 +# make test +# make check +} + +LICENSE="BSD (2-clause)" +COPYRIGHT="2002-2011 Hypertrition, Inc." diff --git a/media-libs/allegro/allegro-4.4.1.1.bep b/media-libs/allegro/allegro-4.4.1.1.bep index 470abd7ef..c4a2019cd 100644 --- a/media-libs/allegro/allegro-4.4.1.1.bep +++ b/media-libs/allegro/allegro-4.4.1.1.bep @@ -7,11 +7,12 @@ STATUS_HAIKU="stable" DEPEND="dev-util/cmake >= 2.6.0 media-libs/libvorbis >= 1.2.3 media-libs/libogg >= 1.1.4" + BUILD { cd allegro-4.4.1.1 - mkdir -p `finddir B_COMMON_DIRECTORY`/share/info + mkdir -p `finddir B_COMMON_DOCUMENTATION_DIRECTORY`/info mkdir -p `finddir B_COMMON_DOCUMENTATION_DIRECTORY`/man - cmake . -DINFODIR:=`finddir B_COMMON_DIRECTORY`/share/info \ + cmake . -DINFODIR:=`finddir B_COMMON_DOCUMENTATION_DIRECTORY`/info \ -DMANDIR:=`finddir B_COMMON_DOCUMENTATION_DIRECTORY`/man make } diff --git a/media-libs/allegro/allegro-4.4.x-svn.bep b/media-libs/allegro/allegro-4.4.x-svn.bep new file mode 100644 index 000000000..ca03a5837 --- /dev/null +++ b/media-libs/allegro/allegro-4.4.x-svn.bep @@ -0,0 +1,25 @@ +DESCRIPTION="Allegro game programming library" +HOMEPAGE="http://alleg.sourceforge.net/" +SRC_URI="svn+https://alleg.svn.sourceforge.net/svnroot/alleg/allegro/branches/4.4" +#CHECKSUM_MD5="0f1cfff8f2cf88e5c91a667d9fd386ec" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="dev-util/cmake >= 2.6.0 + media-libs/libvorbis >= 1.2.3 + media-libs/libogg >= 1.1.4" +BUILD { + cd allegro-4.4.x-svn + mkdir -p `finddir B_COMMON_DIRECTORY`/share/info + mkdir -p `finddir B_COMMON_DOCUMENTATION_DIRECTORY`/man + cmake . -DINFODIR:=`finddir B_COMMON_DIRECTORY`/share/info \ + -DMANDIR:=`finddir B_COMMON_DOCUMENTATION_DIRECTORY`/man + make +} + +INSTALL { + cd allegro-4.4.x-svn + make install +} + +LICENSE="Allegro" +COPYRIGHT="1998-2011 Shawn Hargreaves et al." diff --git a/media-libs/allegro/patches/allegro-4.4.x-svn.patch b/media-libs/allegro/patches/allegro-4.4.x-svn.patch new file mode 100644 index 000000000..2e81e77f1 --- /dev/null +++ b/media-libs/allegro/patches/allegro-4.4.x-svn.patch @@ -0,0 +1,51 @@ +diff -urN allegro-4.4.x-svn/CMakeLists.txt allegro-4.4.x-svn-haiku/CMakeLists.txt +--- allegro-4.4.x-svn/CMakeLists.txt 2012-11-18 01:16:37.000000000 -0800 ++++ allegro-4.4.x-svn-haiku/CMakeLists.txt 2012-11-18 01:06:24.541065216 -0800 +@@ -291,18 +291,18 @@ + endif(COMPILER_GCC) + endif(APPLE) + +-if(BEOS) ++if(HAIKU) + if(CMAKE_SYSTEM_NAME STREQUAL Haiku) + set(ALLEGRO_HAIKU 1) +- else(CMAKE_SYSTEM_NAME STREQUAL Haiku) ++ else(CMAKE_SYSTEM_NAME STREQUAL BeOS) + set(ALLEGRO_BEOS 1) + endif(CMAKE_SYSTEM_NAME STREQUAL Haiku) + set(WFLAGS "-W -Wall -Wno-unused -Wno-multichar") + set(WFLAGS_C_ONLY "") + set(WFLAGS_CXX_ONLY "-Wno-ctor-dtor-privacy") +-endif(BEOS) ++endif(HAIKU) + +-if(UNIX AND NOT APPLE AND NOT BEOS) ++if(UNIX AND NOT APPLE AND NOT HAIKU) + set(ALLEGRO_UNIX 1) + endif() + +@@ -628,10 +628,10 @@ + + # -- Haiku/BeOS -- + +-if(BEOS) ++if(HAIKU) + list(APPEND PLATFORM_SOURCES ${ALLEGRO_SRC_BEOS_FILES}) + list(APPEND PLATFORM_LIBS game midi device) +-endif(BEOS) ++endif(HAIKU) + + # -- Mac OS X -- + +@@ -727,9 +727,9 @@ + if(ALLEGRO_WITH_XWINDOWS) + add_headers("" include/xalleg.h) + endif(ALLEGRO_WITH_XWINDOWS) +-if(BEOS) ++if(HAIKU) + add_headers("" include/bealleg.h) +-endif(BEOS) ++endif(HAIKU) + + #-----------------------------------------------------------------------------# + # diff --git a/media-libs/cal3d/cal3d-0.11.0.bep b/media-libs/cal3d/cal3d-0.11.0.bep index 410f95eac..1522e449d 100644 --- a/media-libs/cal3d/cal3d-0.11.0.bep +++ b/media-libs/cal3d/cal3d-0.11.0.bep @@ -11,7 +11,7 @@ BUILD { aclocal autoconf automake - ./configure --prefix=/boot/common + ./configure --prefix=`finddir B_COMMON_DIRECTORY` make } diff --git a/media-libs/devil/devil-1.7.8.bep b/media-libs/devil/devil-1.7.8.bep index 8f058ef6d..29a5e75d9 100644 --- a/media-libs/devil/devil-1.7.8.bep +++ b/media-libs/devil/devil-1.7.8.bep @@ -14,7 +14,7 @@ BUILD { cd devil-1.7.8 libtoolize --force --copy --install autoreconf -i - ./configure --prefix=/boot/common + ./configure --prefix=`finddir B_COMMON_DIRECTORY` make } diff --git a/media-libs/djvulibre/djvulibre-3.5.25.bep b/media-libs/djvulibre/djvulibre-3.5.25.bep new file mode 100644 index 000000000..a4355f690 --- /dev/null +++ b/media-libs/djvulibre/djvulibre-3.5.25.bep @@ -0,0 +1,26 @@ +DESCRIPTION="DjVu is a web-centric format and software platform for distributing documents and images" +HOMEPAGE="http://djvulibre.sourceforge.net/" +SRC_URI="http://downloads.sourceforge.net/project/djvu/DjVuLibre/3.5.25/djvulibre-3.5.25.2.tar.gz" +CHECKSUM_MD5="994e2ff1d4ae6a763764dfe20509826e" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="" +MESSAGE="This port only builds with gcc4. Use 'setgcc gcc4' before building." +BUILD { + cd djvulibre-3.5.25 + COMMON_DIR=`finddir B_COMMON_DIRECTORY` + ./configure --prefix=`finddir B_COMMON_DIRECTORY` \ + --mandir=`finddir B_COMMON_DOCUMENTATION_DIRECTORY`/man \ + --datadir=`finddir B_COMMON_DATA_DIRECTORY` + make +} + +INSTALL { + cd djvulibre-3.5.25 + make install +} + +LICENSE="GNU GPL v2" +COPYRIGHT="2002 Leon Bottou and Yann Le Cun. + 2001 AT&T + 1999-2001 LizardTech, Inc." diff --git a/media-libs/djvulibre/patches/djvulibre-3.5.25.patch b/media-libs/djvulibre/patches/djvulibre-3.5.25.patch new file mode 100644 index 000000000..1d12ad8fd --- /dev/null +++ b/media-libs/djvulibre/patches/djvulibre-3.5.25.patch @@ -0,0 +1,12 @@ +diff -Naur djvulibre-3.5.25/libdjvu/miniexp.cpp djvulibre-3.5.25-haiku/libdjvu/miniexp.cpp +--- djvulibre-3.5.25/libdjvu/miniexp.cpp 2012-03-17 23:49:02.048758784 +0100 ++++ djvulibre-3.5.25-haiku/libdjvu/miniexp.cpp 2012-03-25 14:42:11.949223424 +0200 +@@ -1010,7 +1010,7 @@ + if (io == &miniexp_io && !CompatCounter::count) + return (*minilisp_getc)(); /* compatibility hack */ + FILE *f = (io->data[0]) ? (FILE*)(io->data[0]) : stdin; +- return ::getc(f); ++ return getc(f); + } + + static int diff --git a/media-libs/faac/faac-1.28.bep b/media-libs/faac/faac-1.28.bep new file mode 100644 index 000000000..5d03c0a98 --- /dev/null +++ b/media-libs/faac/faac-1.28.bep @@ -0,0 +1,28 @@ +DESCRIPTION="FAAC is an MPEG-4 and MPEG-2 AAC encoder" +HOMEPAGE="http://www.audiocoding.com/" +SRC_URI="http://downloads.sourceforge.net/faac/faac-1.28.tar.bz2" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="" +CHECKSUM_MD5="c5dde68840cefe46532089c9392d1df0" +MESSAGE="See FAAC file in licenses directory for restrictions on binary releases. Binary releases may require a patent license in some countries." +BUILD { + cd faac-1.28 + libtoolize --force --copy --install + aclocal + autoconf + MANDIR=`finddir B_COMMON_DOCUMENTATION_DIRECTORY`/man + LIBDIR=`finddir B_COMMON_LIB_DIRECTORY` + ./configure --prefix=`finddir B_COMMON_DIRECTORY` \ + --libdir=$LIBDIR \ + --mandir=$MANDIR + make +} + +INSTALL { + cd faac-1.28 + make install +} + +LICENSE="FAAC" +COPYRIGHT="2001 M. Bakker" diff --git a/media-libs/faac/licenses/FAAC b/media-libs/faac/licenses/FAAC new file mode 100644 index 000000000..8b08ee0a5 --- /dev/null +++ b/media-libs/faac/licenses/FAAC @@ -0,0 +1,70 @@ +__________ +COPYRIGHTS + +FAAC is based on the ISO MPEG-4 reference code. For this base code the +following license applies: + + +********************************************************************** +This software module was originally developed by + +FirstName LastName (CompanyName) + +and edited by + +FirstName LastName (CompanyName) +FirstName LastName (CompanyName) + +in the course of development of the MPEG-2 NBC/MPEG-4 Audio standard +ISO/IEC 13818-7, 14496-1,2 and 3. This software module is an +implementation of a part of one or more MPEG-2 NBC/MPEG-4 Audio tools +as specified by the MPEG-2 NBC/MPEG-4 Audio standard. ISO/IEC gives +users of the MPEG-2 NBC/MPEG-4 Audio standards free license to this +software module or modifications thereof for use in hardware or +software products claiming conformance to the MPEG-2 NBC/ MPEG-4 Audio +standards. Those intending to use this software module in hardware or +software products are advised that this use may infringe existing +patents. The original developer of this software module and his/her +company, the subsequent editors and their companies, and ISO/IEC have +no liability for use of this software module or modifications thereof +in an implementation. Copyright is not released for non MPEG-2 +NBC/MPEG-4 Audio conforming products. The original developer retains +full right to use the code for his/her own purpose, assign or donate +the code to a third party and to inhibit third party from using the +code for non MPEG-2 NBC/MPEG-4 Audio conforming products. This +copyright notice must be included in all copies or derivative works. + +Copyright (c) 1997. +********************************************************************** + + +For the changes made for the FAAC project the GNU Library General +Public License (LGPL), version 2 1991 applies. For the changes the +following statement applies: + +********************************************************************** +FAAC - Freeware Advanced Audio Coder +Copyright (C) 2001 M. Bakker + +This library is free software; you can redistribute it and/or +modify it under the terms of the GNU Lesser General Public +License as published by the Free Software Foundation; either +version 2.1 of the License, or (at your option) any later version. + +This library is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +Lesser General Public License for more details. + +You should have received a copy of the GNU Lesser General Public +License along with this library; if not, write to the Free Software +Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +********************************************************************** + + + +Please note that the use of this software may require the payment of +patent royalties. You need to consider this issue before you start +building derivative works. We are not warranting or indemnifying you in +any way for patent royalities! YOU ARE SOLELY RESPONSIBLE FOR YOUR OWN +ACTIONS! \ No newline at end of file diff --git a/media-libs/faad2/faad2-2.7.bep b/media-libs/faad2/faad2-2.7.bep index d97c7acee..215d00dbb 100644 --- a/media-libs/faad2/faad2-2.7.bep +++ b/media-libs/faad2/faad2-2.7.bep @@ -1,5 +1,5 @@ -DESCRIPTION="FAAD2 is an open source MPEG-4 and MPEG-2 AAC decoder" -HOMEPAGE="http://www.audiocoding.com/" +DESCRIPTION="FAAD2 is an open source MPEG-4 and MPEG-2 AAC decoder" +HOMEPAGE="http://www.audiocoding.com/" SRC_URI="http://downloads.sourceforge.net/faac/faad2-2.7.tar.gz" REVISION="1" STATUS_HAIKU="stable" @@ -12,11 +12,7 @@ BUILD { aclocal autoconf MANDIR=`finddir B_COMMON_DOCUMENTATION_DIRECTORY`/man - if [ -n "$(setgcc | grep '2')" ]; then - LIBDIR=`finddir B_COMMON_LIB_DIRECTORY` - else - LIBDIR=`finddir B_COMMON_LIB_DIRECTORY`/gcc4 - fi + LIBDIR=`finddir B_COMMON_LIB_DIRECTORY` ./configure --prefix=`finddir B_COMMON_DIRECTORY` \ --libdir=$LIBDIR \ --mandir=$MANDIR diff --git a/media-libs/fitz/fitz-1.0.bep b/media-libs/fitz/fitz-1.0.bep new file mode 100644 index 000000000..aab114c98 --- /dev/null +++ b/media-libs/fitz/fitz-1.0.bep @@ -0,0 +1,28 @@ +DESCRIPTION="Fitz is a library that is part of MuPDF. The renderer in MuPDF is tailored for high quality anti-aliased graphics. It renders text with metrics and spacing accurate to within fractions of a pixel for the highest fidelity in reproducing the look of a printed page on screen." +HOMEPAGE="http://code.google.com/p/mupdf/" +SRC_URI="http://mupdf.googlecode.com/files/mupdf-1.0-source.tar.gz" +CHECKSUM_MD5="d986ab98e2b035b7abd61afc474562b3" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="jbig2dec >= 0.11 + openjpeg >= 1.5.0 + jpeg >= 8d + zlib >= 1.2.5 + freetype >=2.4.9" +BUILD { + cd mupdf-1.0-source + make libs +} + +INSTALL { + cd mupdf-1.0-source + make install \ + prefix=${DESTDIR}/`finddir B_COMMON_DIRECTORY` \ + bindir=${DESTDIR}/`finddir B_COMMON_BIN_DIRECTORY` \ + libdir=${DESTDIR}/`finddir B_COMMON_LIB_DIRECTORY` \ + incdir=${DESTDIR}/`finddir B_COMMON_HEADERS_DIRECTORY` \ + mandir=${DESTDIR}/`finddir B_COMMON_DOCUMENTATION_DIRECTORY`/man +} + +LICENSE="GNU GPL v3" +COPYRIGHT="2007 Free Software Foundation, Inc." diff --git a/media-libs/fitz/patches/fitz-1.0.patch b/media-libs/fitz/patches/fitz-1.0.patch new file mode 100644 index 000000000..6946f4464 --- /dev/null +++ b/media-libs/fitz/patches/fitz-1.0.patch @@ -0,0 +1,36 @@ +diff -Naur mupdf-1.0-source/Makefile mupdf-1.0-source-haiku/Makefile +--- mupdf-1.0-source/Makefile 2012-04-24 16:41:33.029097984 +0000 ++++ mupdf-1.0-source-haiku/Makefile 2012-06-07 17:13:57.000000000 +0000 +@@ -12,8 +12,8 @@ + # Do not specify CFLAGS or LIBS on the make invocation line - specify + # XCFLAGS or XLIBS instead. Make ignores any lines in the makefile that + # set a variable that was set on the command line. +-CFLAGS += $(XCFLAGS) -Ifitz -Ipdf -Ixps -Icbz -Iscripts +-LIBS += $(XLIBS) -lfreetype -ljbig2dec -ljpeg -lopenjpeg -lz -lm ++CFLAGS += $(XCFLAGS) -Ifitz -Ipdf -Ixps -Icbz -Iscripts -I/boot/develop/headers/3rdparty/freetype2 ++LIBS += -L/boot/common/lib/ -lfreetype -ljbig2dec -ljpeg -lopenjpeg -lz -lroot + + include Makerules + include Makethird +@@ -144,7 +144,7 @@ + + ifeq "$(NOX11)" "" + MUPDF := $(OUT)/mupdf +-$(MUPDF) : $(FITZ_LIB) $(THIRD_LIBS) ++$(MUPDF) : $(FITZ_LIB) + $(MUPDF) : $(addprefix $(OUT)/, x11_main.o x11_image.o pdfapp.o) + $(LINK_CMD) $(X11_LIBS) + endif +@@ -167,11 +167,10 @@ + incdir ?= $(prefix)/include + mandir ?= $(prefix)/share/man + +-install: $(FITZ_LIB) $(MU_APPS) $(MUPDF) ++install: $(FITZ_LIB) + install -d $(bindir) $(libdir) $(incdir) $(mandir)/man1 + install $(FITZ_LIB) $(libdir) + install fitz/memento.h fitz/fitz.h pdf/mupdf.h xps/muxps.h cbz/mucbz.h $(incdir) +- install $(MU_APPS) $(MUPDF) $(bindir) + install $(wildcard apps/man/*.1) $(mandir)/man1 + + # --- Clean and Default --- diff --git a/media-libs/flac/flac-1.2.1.bep b/media-libs/flac/flac-1.2.1.bep index 21f69bcc4..1a5b26f0a 100644 --- a/media-libs/flac/flac-1.2.1.bep +++ b/media-libs/flac/flac-1.2.1.bep @@ -7,20 +7,28 @@ STATUS_HAIKU="stable" DEPEND="gettext >= 0.17" BUILD { cd flac-1.2.1 + haikuporter -b libiconv-1.13.1 + cp -a `haikuporter -t`/dev-libs/libiconv/work/libiconv-1.13.1/srcm4/. m4 libtoolize --force --copy --install - MANDIR=`finddir B_COMMON_DOCUMENTATION_DIRECTORY`/man - LIBDIR=`finddir B_COMMON_LIB_DIRECTORY` - ./autogen.sh --prefix=`finddir B_COMMON_DIRECTORY` \ - --libdir=$LIBDIR \ - --mandir=$MANDIR + aclocal -I m4 + autoconf + COMMON_DOCS=`finddir B_COMMON_DOCUMENTATION_DIRECTORY` + sed -i 's/m4datadir = $(datadir)\/aclocal/m4datadir = `finddir B_COMMON_DATA_DIRECTORY`\/aclocal/g' src/libFLAC/M* + sed -i 's/m4datadir = $(datadir)\/aclocal/m4datadir = `finddir B_COMMON_DATA_DIRECTORY`\/aclocal/g' src/libFLAC++/M* + automake + ./configure --prefix=`finddir B_COMMON_DIRECTORY` \ + --datarootdir=$COMMON_DOCS \ + --docdir=$COMMON_DOCS/doc/flac \ + --libdir=`finddir B_COMMON_LIB_DIRECTORY` \ + --mandir=$COMMON_DOCS/man make - } INSTALL { cd flac-1.2.1 make install } + LICENSE="GNU LGPL v2.1 GNU GPL v2 BSD (3-clause)" diff --git a/media-libs/fontconfig/fontconfig-2.10.0.bep b/media-libs/fontconfig/fontconfig-2.10.0.bep new file mode 100644 index 000000000..271be1d39 --- /dev/null +++ b/media-libs/fontconfig/fontconfig-2.10.0.bep @@ -0,0 +1,37 @@ +DESCRIPTION="Fontconfig is a library for font customization and configuration." +HOMEPAGE="http://www.freedesktop.org/wiki/Software/fontconfig" +SRC_URI="http://www.freedesktop.org/software/fontconfig/release/fontconfig-2.10.0.tar.bz2" +CHECKSUM_MD5="3950e82cf5885b41cba8a2bf466aa6f9" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="dev-util/pkgconfig >= 0.23 + media-libs/freetype >= 2.4.9" +BUILD { + cd fontconfig-2.10.0 + mkdir -p `finddir B_USER_CACHE_DIRECTORY` + libtoolize --force --copy --install + aclocal + autoconf + automake + FONTS_DIR=`finddir B_SYSTEM_FONTS_DIRECTORY` + FONTS_DIR2=`finddir B_COMMON_FONTS_DIRECTORY` + FONTS_DIR3=`finddir B_BEOS_FONTS_DIRECTORY` + FONTS_DIR4=`finddir B_USER_FONTS_DIRECTORY` + CACHE_DIR=`finddir B_USER_CACHE_DIRECTORY` + DOCS_DIR=`finddir B_COMMON_DOCUMENTATION_DIRECTORY` + DATA_DIR=`finddir B_COMMON_DATA_DIRECTORY` + ./configure --prefix=`finddir B_COMMON_DIRECTORY` \ + --enable-libxml2 \ + --with-default-fonts=${FONTS_DIR} \ + --with-add-fonts=${FONTS_DIR2},${FONTS_DIR3},${FONTS_DIR4} \ + --with-cache-dir=${CACHE_DIR} \ + --mandir=${DOCS_DIR}/man \ + --docdir=${DOCS_DIR}/doc \ + --datarootdir=${DATA_DIR} + make +} + +INSTALL { + cd fontconfig-2.10.0 + make install +} diff --git a/media-libs/fontconfig/fontconfig-2.10.2.bep b/media-libs/fontconfig/fontconfig-2.10.2.bep new file mode 100644 index 000000000..b082b6fd1 --- /dev/null +++ b/media-libs/fontconfig/fontconfig-2.10.2.bep @@ -0,0 +1,37 @@ +DESCRIPTION="Fontconfig is a library for font customization and configuration." +HOMEPAGE="http://www.freedesktop.org/wiki/Software/fontconfig" +SRC_URI="http://www.freedesktop.org/software/fontconfig/release/fontconfig-2.10.2.tar.bz2" +CHECKSUM_MD5="2f239690057d1438aa282e051f721d08" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="dev-util/pkgconfig >= 0.23 + media-libs/freetype >= 2.4.9" +BUILD { + cd fontconfig-2.10.2 + mkdir -p `finddir B_USER_CACHE_DIRECTORY` + libtoolize --force --copy --install + aclocal + autoconf + automake + FONTS_DIR=`finddir B_SYSTEM_FONTS_DIRECTORY` + FONTS_DIR2=`finddir B_COMMON_FONTS_DIRECTORY` + FONTS_DIR3=`finddir B_BEOS_FONTS_DIRECTORY` + FONTS_DIR4=`finddir B_USER_FONTS_DIRECTORY` + CACHE_DIR=`finddir B_USER_CACHE_DIRECTORY` + DOCS_DIR=`finddir B_COMMON_DOCUMENTATION_DIRECTORY` + DATA_DIR=`finddir B_COMMON_DATA_DIRECTORY` + ./configure --prefix=`finddir B_COMMON_DIRECTORY` \ + --enable-libxml2 \ + --with-default-fonts=${FONTS_DIR} \ + --with-add-fonts=${FONTS_DIR2},${FONTS_DIR3},${FONTS_DIR4} \ + --with-cache-dir=${CACHE_DIR} \ + --mandir=${DOCS_DIR}/man \ + --docdir=${DOCS_DIR}/doc \ + --datarootdir=${DATA_DIR} + make +} + +INSTALL { + cd fontconfig-2.10.2 + make install +} diff --git a/media-libs/fontconfig/fontconfig-2.8.0.bep b/media-libs/fontconfig/fontconfig-2.8.0.bep deleted file mode 100644 index 12c084014..000000000 --- a/media-libs/fontconfig/fontconfig-2.8.0.bep +++ /dev/null @@ -1,28 +0,0 @@ -DESCRIPTION="Fontconfig is a library for font customization and configuration." -HOMEPAGE="http://fontconfig.org" -SRC_URI="http://fontconfig.org/release/fontconfig-2.8.0.tar.gz" -CHECKSUM_MD5="77e15a92006ddc2adbb06f840d591c0e" -REVISION="1" -STATUS_HAIKU="broken" -DEPEND="dev-util/pkgconfig >= 0.23" -BUILD { - cd fontconfig-2.8.0 - mkdir -p `finddir B_USER_CACHE_DIRECTORY` - libtoolize --force --copy --install - echo 'AC_CONFIG_MACRO_DIR([m4])' >> configure.in - aclocal - autoconf - automake - FONTS_DIR=`finddir B_SYSTEM_FONTS_DIRECTORY` - FONTS_DIR2=`finddir B_COMMON_FONTS_DIRECTORY` - FONTS_DIR3=`finddir B_BEOS_FONTS_DIRECTORY` - FONTS_DIR4=`finddir B_USER_FONTS_DIRECTORY` - CACHE_DIR=`finddir B_USER_CACHE_DIRECTORY` - ./configure --prefix=/boot/common --enable-libxml2 --with-default-fonts=${FONTS_DIR} --with-add-fonts=${FONTS_DIR2},${FONTS_DIR3},${FONTS_DIR4} --with-cache-dir=${CACHE_DIR} - make -} - -INSTALL { - cd fontconfig-2.8.0 - make install -} diff --git a/media-libs/fontconfig/patches/fontconfig-2.10.0.patch b/media-libs/fontconfig/patches/fontconfig-2.10.0.patch new file mode 100644 index 000000000..40083e093 --- /dev/null +++ b/media-libs/fontconfig/patches/fontconfig-2.10.0.patch @@ -0,0 +1,12 @@ +diff -ur fontconfig-2.10.0/src/fcatomic.c fontconfig-2.10.0-haiku/src/fcatomic.c +--- fontconfig-2.10.0/src/fcatomic.c 2012-06-17 21:49:30.023855104 -0400 ++++ fontconfig-2.10.0-haiku/src/fcatomic.c 2012-07-18 19:39:56.629145600 -0400 +@@ -132,7 +132,7 @@ + return FcFalse; + } + ret = link ((char *) atomic->tmp, (char *) atomic->lck); +- if (ret < 0 && errno == EPERM) ++ if (ret < 0 && (errno == EPERM || errno == B_UNSUPPORTED)) + { + /* the filesystem where atomic->lck points to may not supports + * the hard link. so better try to fallback diff --git a/media-libs/freealut/freealut-1.1.0.bep b/media-libs/freealut/freealut-1.1.0.bep index f9c6fdb51..33cdd225b 100644 --- a/media-libs/freealut/freealut-1.1.0.bep +++ b/media-libs/freealut/freealut-1.1.0.bep @@ -11,7 +11,7 @@ BUILD { cd freealut-1.1.0 libtoolize --force --copy --install ./autogen.sh - ./configure --prefix=/boot/common + ./configure --prefix=`finddir B_COMMON_DIRECTORY` make } diff --git a/media-libs/freeimage/freeimage-3.15.3.bep b/media-libs/freeimage/freeimage-3.15.3.bep new file mode 100644 index 000000000..a24b5c2f4 --- /dev/null +++ b/media-libs/freeimage/freeimage-3.15.3.bep @@ -0,0 +1,24 @@ +DESCRIPTION="FreeImage is an Open Source library project for developers who would like to support popular graphics image formats like PNG, BMP, JPEG, TIFF and others as needed by today's multimedia applications" +HOMEPAGE="http://freeimage.sourceforge.net" +SRC_URI="http://downloads.sourceforge.net/freeimage/FreeImage3153.zip" +REVISION="1" +CHECKSUM_MD5="6c305b4086500ff8541c596ea6fc7cd7" +STATUS_HAIKU="stable" +MESSAGE="This port only builds with gcc4. Use 'setgcc gcc4' before building." +DEPEND="" +BUILD { + cd FreeImage + make -f Makefile.gnu \ + INCDIR=`finddir B_COMMON_HEADERS_DIRECTORY` \ + INSTALLDIR=`finddir B_COMMON_LIB_DIRECTORY` +} + +INSTALL { + cd FreeImage + make -f Makefile.gnu install \ + INCDIR=${DESTDIR}/`finddir B_COMMON_HEADERS_DIRECTORY` \ + INSTALLDIR=${DESTDIR}/`finddir B_COMMON_LIB_DIRECTORY` +} + +LICENSE="GNU GPL v2" +COPYRIGHT="2003-2010 FreeImage Project" diff --git a/media-libs/freeimage/patches/freeimage-3.15.3.patch b/media-libs/freeimage/patches/freeimage-3.15.3.patch new file mode 100644 index 000000000..4f9288cbb --- /dev/null +++ b/media-libs/freeimage/patches/freeimage-3.15.3.patch @@ -0,0 +1,16 @@ +diff -Naur FreeImage/Makefile.gnu FreeImage-haiku/Makefile.gnu +--- FreeImage/Makefile.gnu 2012-03-10 19:24:28.065011712 +0000 ++++ FreeImage-haiku/Makefile.gnu 2012-08-12 16:23:37.864550912 +0000 +@@ -62,9 +62,9 @@ + + install: + install -d $(INCDIR) $(INSTALLDIR) +- install -m 644 -o root -g root $(HEADER) $(INCDIR) +- install -m 644 -o root -g root $(STATICLIB) $(INSTALLDIR) +- install -m 755 -o root -g root $(SHAREDLIB) $(INSTALLDIR) ++ install -m 644 $(HEADER) $(INCDIR) ++ install -m 644 $(STATICLIB) $(INSTALLDIR) ++ install -m 755 $(SHAREDLIB) $(INSTALLDIR) + ln -sf $(SHAREDLIB) $(INSTALLDIR)/$(VERLIBNAME) + ln -sf $(VERLIBNAME) $(INSTALLDIR)/$(LIBNAME) + # ldconfig diff --git a/media-libs/freetype/freetype-2.3.11.bep b/media-libs/freetype/freetype-2.3.11.bep index f8a474fcb..d3cf73bb5 100644 --- a/media-libs/freetype/freetype-2.3.11.bep +++ b/media-libs/freetype/freetype-2.3.11.bep @@ -8,7 +8,7 @@ DEPEND="" BUILD { cd freetype-2.3.11 sh ./autogen.sh - ./configure --prefix=/boot/common --includedir=/boot/develop/headers/3rdparty + ./configure --prefix=`finddir B_COMMON_DIRECTORY` --includedir=/boot/develop/headers/3rdparty make } diff --git a/media-libs/freetype/freetype-2.4.11.bep b/media-libs/freetype/freetype-2.4.11.bep new file mode 100644 index 000000000..eba796d93 --- /dev/null +++ b/media-libs/freetype/freetype-2.4.11.bep @@ -0,0 +1,22 @@ +DESCRIPTION="Freetype - A Free, High-Quality, and Portable Font Engine" +HOMEPAGE="http://www.freetype.org" +SRC_URI="http://download.savannah.gnu.org/releases/freetype/freetype-2.4.11.tar.bz2" +CHECKSUM_MD5="b93435488942486c8d0ca22e8f768034" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="" +BUILD { + cd freetype-2.4.11 + sh ./autogen.sh + ./configure --prefix=`finddir B_COMMON_DIRECTORY` \ + --includedir=/boot/develop/headers/3rdparty \ + --datarootdir=`finddir B_COMMON_DATA_DIRECTORY` + make +} + +INSTALL { + cd freetype-2.4.11 + make install +} +LICENSE="FreeType" +COPYRIGHT="1996-2013 David Turner, Robert Wilhelm, Werner Lemberg, et al." diff --git a/media-libs/freetype/freetype-2.4.2.bep b/media-libs/freetype/freetype-2.4.2.bep index 06afc9334..a8b96329f 100644 --- a/media-libs/freetype/freetype-2.4.2.bep +++ b/media-libs/freetype/freetype-2.4.2.bep @@ -8,7 +8,7 @@ DEPEND="" BUILD { cd freetype-2.4.2 sh ./autogen.sh - ./configure --prefix=/boot/common --includedir=/boot/develop/headers/3rdparty + ./configure --prefix=`finddir B_COMMON_DIRECTORY` --includedir=/boot/develop/headers/3rdparty make } diff --git a/media-libs/freetype/freetype-2.4.4.bep b/media-libs/freetype/freetype-2.4.4.bep index 65ba77d85..ea267c28f 100644 --- a/media-libs/freetype/freetype-2.4.4.bep +++ b/media-libs/freetype/freetype-2.4.4.bep @@ -8,7 +8,7 @@ DEPEND="" BUILD { cd freetype-2.4.4 sh ./autogen.sh - ./configure --prefix=/boot/common --includedir=/boot/develop/headers/3rdparty + ./configure --prefix=`finddir B_COMMON_DIRECTORY` --includedir=/boot/develop/headers/3rdparty make } diff --git a/media-libs/freetype/freetype-2.4.6.bep b/media-libs/freetype/freetype-2.4.6.bep new file mode 100644 index 000000000..fc759031f --- /dev/null +++ b/media-libs/freetype/freetype-2.4.6.bep @@ -0,0 +1,22 @@ +DESCRIPTION="Freetype - A Free, High-Quality, and Portable Font Engine" +HOMEPAGE="http://www.freetype.org" +SRC_URI="http://download.savannah.gnu.org/releases/freetype/freetype-2.4.6.tar.bz2" +CHECKSUM_MD5="5e6510613f612809d2d7862592b92ab7" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="" +BUILD { + cd freetype-2.4.6 + sh ./autogen.sh + ./configure --prefix=`finddir B_COMMON_DIRECTORY` \ + --includedir=/boot/develop/headers/3rdparty \ + --datarootdir=`finddir B_COMMON_DATA_DIRECTORY` + make +} + +INSTALL { + cd freetype-2.4.6 + make install +} +LICENSE="FreeType" +COPYRIGHT="1996-2011 David Turner, Robert Wilhelm, Werner Lemberg, et al." diff --git a/media-libs/freetype/freetype-2.4.9-with-subpixel-rendering-enabled.bep b/media-libs/freetype/freetype-2.4.9-with-subpixel-rendering-enabled.bep new file mode 100644 index 000000000..088c810cf --- /dev/null +++ b/media-libs/freetype/freetype-2.4.9-with-subpixel-rendering-enabled.bep @@ -0,0 +1,22 @@ +DESCRIPTION="Freetype - A Free, High-Quality, and Portable Font Engine" +HOMEPAGE="http://www.freetype.org" +SRC_URI="http://download.savannah.gnu.org/releases/freetype/freetype-2.4.9.tar.bz2" +CHECKSUM_MD5="77a893dae81fd5b896632715ca041179" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="" +BUILD { + cd freetype-2.4.9 + sh ./autogen.sh + ./configure --prefix=`finddir B_COMMON_DIRECTORY` \ + --includedir=/boot/develop/headers/3rdparty \ + --datarootdir=`finddir B_COMMON_DATA_DIRECTORY` + make +} + +INSTALL { + cd freetype-2.4.9 + make install +} +LICENSE="FreeType" +COPYRIGHT="1996-2012 David Turner, Robert Wilhelm, Werner Lemberg, et al." diff --git a/media-libs/freetype/freetype-2.4.9.bep b/media-libs/freetype/freetype-2.4.9.bep new file mode 100644 index 000000000..088c810cf --- /dev/null +++ b/media-libs/freetype/freetype-2.4.9.bep @@ -0,0 +1,22 @@ +DESCRIPTION="Freetype - A Free, High-Quality, and Portable Font Engine" +HOMEPAGE="http://www.freetype.org" +SRC_URI="http://download.savannah.gnu.org/releases/freetype/freetype-2.4.9.tar.bz2" +CHECKSUM_MD5="77a893dae81fd5b896632715ca041179" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="" +BUILD { + cd freetype-2.4.9 + sh ./autogen.sh + ./configure --prefix=`finddir B_COMMON_DIRECTORY` \ + --includedir=/boot/develop/headers/3rdparty \ + --datarootdir=`finddir B_COMMON_DATA_DIRECTORY` + make +} + +INSTALL { + cd freetype-2.4.9 + make install +} +LICENSE="FreeType" +COPYRIGHT="1996-2012 David Turner, Robert Wilhelm, Werner Lemberg, et al." diff --git a/media-libs/freetype/patches/freetype-2.4.9-with-subpixel-rendering-enabled.patch b/media-libs/freetype/patches/freetype-2.4.9-with-subpixel-rendering-enabled.patch new file mode 100644 index 000000000..407d769c7 --- /dev/null +++ b/media-libs/freetype/patches/freetype-2.4.9-with-subpixel-rendering-enabled.patch @@ -0,0 +1,12 @@ +diff -urN freetype-2.4.9/include/freetype/config/ftoption.h freetype-2.4.9-enable-subpixel-rendering/include/freetype/config/ftoption.h +--- freetype-2.4.9/include/freetype/config/ftoption.h 2011-07-20 04:46:15.035913728 +0000 ++++ freetype-2.4.9-enable-subpixel-rendering/include/freetype/config/ftoption.h 2012-09-05 16:30:50.453509120 +0000 +@@ -92,7 +92,7 @@ + /* This is done to allow FreeType clients to run unmodified, forcing */ + /* them to display normal gray-level anti-aliased glyphs. */ + /* */ +-/* #define FT_CONFIG_OPTION_SUBPIXEL_RENDERING */ ++#define FT_CONFIG_OPTION_SUBPIXEL_RENDERING + + + /*************************************************************************/ diff --git a/media-libs/ftgl/ftgl-2.1-svn.bep b/media-libs/ftgl/ftgl-2.1-svn.bep index ce0ec4a76..4c482e482 100644 --- a/media-libs/ftgl/ftgl-2.1-svn.bep +++ b/media-libs/ftgl/ftgl-2.1-svn.bep @@ -9,8 +9,9 @@ DEPEND="pkgconfig >= 0.23" BUILD { cd ftgl-2.1-svn libtoolize --copy --force --install + aclocal --install -I m4 ./autogen.sh - ./configure --prefix=/boot/common + ./configure --prefix=`finddir B_COMMON_DIRECTORY` make } diff --git a/media-libs/ftgl/ftgl-2.1.3.bep b/media-libs/ftgl/ftgl-2.1.3.bep index 61523a430..83126fce8 100644 --- a/media-libs/ftgl/ftgl-2.1.3.bep +++ b/media-libs/ftgl/ftgl-2.1.3.bep @@ -1,5 +1,5 @@ -DESCRIPTION="FTGL is a free cross-platform Open Source C++ library that uses Freetype2 to simplify rendering fonts in OpenGL applications" -HOMEPAGE="http://sourceforge.net/projects/ftgl" +DESCRIPTION="FTGL is a free cross-platform Open Source C++ library that uses Freetype2 to simplify rendering fonts in OpenGL applications" +HOMEPAGE="http://sourceforge.net/projects/ftgl" SRC_URI="http://downloads.sourceforge.net/project/ftgl/FTGL%20Source/2.1.3%7Erc5/ftgl-2.1.3-rc5.tar.gz" CHECKSUM_MD5="fcf4d0567b7de9875d4e99a9f7423633" REVISION="3" @@ -8,16 +8,13 @@ DEPEND="pkgconfig >= 0.23" BUILD { cd ftgl-2.1.3~rc5 - cp /boot/common/share/aclocal/libtool.m4 m4 - cp /boot/common/share/aclocal/ltoptions.m4 m4 - cp /boot/common/share/aclocal/ltversion.m4 m4 - cp /boot/common/share/aclocal/ltsugar.m4 m4 - cp /boot/common/share/aclocal/lt~obsolete.m4 m4 echo "AC_CONFIG_MACRO_DIR([m4]) >> configure.in" libtoolize --copy --force --install - aclocal -I m4 + aclocal --install -I m4 ./autogen.sh - ./configure --prefix=/boot/common + COMMON_DOCS=`finddir B_COMMON_DOCUMENTATION_DIRECTORY` + ./configure --prefix=`finddir B_COMMON_DIRECTORY` \ + --datarootdir=$COMMON_DOCS/doc/ftgl make } diff --git a/media-libs/giflib/giflib-4.1.6.bep b/media-libs/giflib/giflib-4.1.6.bep index ea60b5a13..886c54f3f 100644 --- a/media-libs/giflib/giflib-4.1.6.bep +++ b/media-libs/giflib/giflib-4.1.6.bep @@ -1,16 +1,18 @@ DESCRIPTION="giflib - A library for processing GIFs" HOMEPAGE="http://sourceforge.net/projects/giflib/" -SRC_URI="http://sourceforge.net/projects/giflib/files/giflib%204.x/giflib-4.1.6/giflib-4.1.6.tar.bz2/download" -CHECKSUM_MD5="7125644155ae6ad33dbc9fc15a14735f" -REVISION="1" +SRC_URI="http://freefr.dl.sourceforge.net/project/giflib/giflib-4.x/giflib-4.1.6/giflib-4.1.6.tar.gz" +CHECKSUM_MD5="4ff2ecec336b9724c5190f06e8a40f9e" +REVISION="3" STATUS_HAIKU="stable" DEPEND="" BUILD { cd giflib-4.1.6 + sed -i 's#gl/gl.h#GL/gl.h#' configure.ac + sed -i 's#gl.gl.h#GL/gl.h#' lib/dev2gif.c libtoolize --force --copy --install ./autogen.sh - ./configure --prefix=/boot/common + ./configure --prefix=`finddir B_COMMON_DIRECTORY` make } diff --git a/media-libs/guilib/guilib-1.2.1.bep b/media-libs/guilib/guilib-1.2.1.bep index d4cef349f..c04395032 100644 --- a/media-libs/guilib/guilib-1.2.1.bep +++ b/media-libs/guilib/guilib-1.2.1.bep @@ -10,18 +10,12 @@ BUILD { rm aclocal.m4 rm acinclude.m4 echo "AC_CONFIG_MACRO_DIR([m4])" >> configure.in - libtoolize --force --copy --install - cp /boot/common/share/aclocal/libtool.m4 acinclude - cp /boot/common/share/aclocal/ltoptions.m4 acinclude - cp /boot/common/share/aclocal/ltversion.m4 acinclude - cp /boot/common/share/aclocal/ltsugar.m4 acinclude - cp /boot/common/share/aclocal/lt~obsolete.m4 acinclude + libtoolize -fci + aclocal --install -I m4 ./autogen.sh - MANDIR=`finddir B_COMMON_DOCUMENTATION_DIRECTORY`/man - LIBDIR=`finddir B_COMMON_LIB_DIRECTORY` ./configure --prefix=`finddir B_COMMON_DIRECTORY` \ - --libdir=$LIBDIR \ - --mandir=$MANDIR + --libdir=`finddir B_COMMON_LIB_DIRECTORY` \ + --mandir=`finddir B_COMMON_DOCUMENTATION_DIRECTORY`/man make } @@ -29,4 +23,5 @@ INSTALL { cd GUIlib-1.2.1 make install } -LICENSE="Public Domain" + +#LICENSE="Public Domain" diff --git a/media-libs/ilmbase/ilmbase-1.0.1.bep b/media-libs/ilmbase/ilmbase-1.0.1.bep index 9cd591226..72cc3fdff 100644 --- a/media-libs/ilmbase/ilmbase-1.0.1.bep +++ b/media-libs/ilmbase/ilmbase-1.0.1.bep @@ -9,7 +9,7 @@ BUILD { cd ilmbase-1.0.1 libtoolize --copy --force --install ./bootstrap - ./configure --prefix=/boot/common + ./configure --prefix=`finddir B_COMMON_DIRECTORY` make } diff --git a/media-libs/ilmbase/ilmbase-1.0.2.bep b/media-libs/ilmbase/ilmbase-1.0.2.bep index 26ab2ea1c..23c6197f2 100644 --- a/media-libs/ilmbase/ilmbase-1.0.2.bep +++ b/media-libs/ilmbase/ilmbase-1.0.2.bep @@ -10,7 +10,7 @@ BUILD { cd ilmbase-1.0.2 libtoolize --copy --force --install ./bootstrap - ./configure --prefix=/boot/common + ./configure --prefix=`finddir B_COMMON_DIRECTORY` make } diff --git a/media-libs/jasper/jasper-1.900.1.bep b/media-libs/jasper/jasper-1.900.1.bep index cef9ac0a6..9c8c58270 100644 --- a/media-libs/jasper/jasper-1.900.1.bep +++ b/media-libs/jasper/jasper-1.900.1.bep @@ -12,7 +12,7 @@ BUILD { autoconf automake chmod 777 configure - ./configure --prefix=/boot/common --enable-shared + ./configure --prefix=`finddir B_COMMON_DIRECTORY` --enable-shared make } @@ -20,5 +20,5 @@ INSTALL { cd jasper-1.900.1 make install } -LICENSE="JasPer2.0" +LICENSE="JasPer v2" COPYRIGHT="1999-2007 Michael D. Adams" diff --git a/media-libs/jasper/licenses/JasPer v2 b/media-libs/jasper/licenses/JasPer v2 new file mode 100644 index 000000000..f817ef43a --- /dev/null +++ b/media-libs/jasper/licenses/JasPer v2 @@ -0,0 +1,51 @@ +JasPer License Version 2.0 + +Copyright (c) 2001-2006 Michael David Adams +Copyright (c) 1999-2000 Image Power, Inc. +Copyright (c) 1999-2000 The University of British Columbia + +All rights reserved. + +Permission is hereby granted, free of charge, to any person (the +"User") obtaining a copy of this software and associated documentation +files (the "Software"), to deal in the Software without restriction, +including without limitation the rights to use, copy, modify, merge, +publish, distribute, and/or sell copies of the Software, and to permit +persons to whom the Software is furnished to do so, subject to the +following conditions: + +1. The above copyright notices and this permission notice (which +includes the disclaimer below) shall be included in all copies or +substantial portions of the Software. + +2. The name of a copyright holder shall not be used to endorse or +promote products derived from the Software without specific prior +written permission. + +THIS DISCLAIMER OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS +LICENSE. NO USE OF THE SOFTWARE IS AUTHORIZED HEREUNDER EXCEPT UNDER +THIS DISCLAIMER. THE SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS +"AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING +BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT OF THIRD PARTY RIGHTS. IN NO +EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL +INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING +FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, +NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION +WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. NO ASSURANCES ARE +PROVIDED BY THE COPYRIGHT HOLDERS THAT THE SOFTWARE DOES NOT INFRINGE +THE PATENT OR OTHER INTELLECTUAL PROPERTY RIGHTS OF ANY OTHER ENTITY. +EACH COPYRIGHT HOLDER DISCLAIMS ANY LIABILITY TO THE USER FOR CLAIMS +BROUGHT BY ANY OTHER ENTITY BASED ON INFRINGEMENT OF INTELLECTUAL +PROPERTY RIGHTS OR OTHERWISE. AS A CONDITION TO EXERCISING THE RIGHTS +GRANTED HEREUNDER, EACH USER HEREBY ASSUMES SOLE RESPONSIBILITY TO SECURE +ANY OTHER INTELLECTUAL PROPERTY RIGHTS NEEDED, IF ANY. THE SOFTWARE +IS NOT FAULT-TOLERANT AND IS NOT INTENDED FOR USE IN MISSION-CRITICAL +SYSTEMS, SUCH AS THOSE USED IN THE OPERATION OF NUCLEAR FACILITIES, +AIRCRAFT NAVIGATION OR COMMUNICATION SYSTEMS, AIR TRAFFIC CONTROL +SYSTEMS, DIRECT LIFE SUPPORT MACHINES, OR WEAPONS SYSTEMS, IN WHICH +THE FAILURE OF THE SOFTWARE OR SYSTEM COULD LEAD DIRECTLY TO DEATH, +PERSONAL INJURY, OR SEVERE PHYSICAL OR ENVIRONMENTAL DAMAGE ("HIGH +RISK ACTIVITIES"). THE COPYRIGHT HOLDERS SPECIFICALLY DISCLAIM ANY +EXPRESS OR IMPLIED WARRANTY OF FITNESS FOR HIGH RISK ACTIVITIES. + diff --git a/media-libs/jbig2dec/jbig2dec-0.11.bep b/media-libs/jbig2dec/jbig2dec-0.11.bep new file mode 100644 index 000000000..96224f0ff --- /dev/null +++ b/media-libs/jbig2dec/jbig2dec-0.11.bep @@ -0,0 +1,24 @@ +DESCRIPTION="jbig2dec is a decoder implementation of the JBIG2 image compression format" +HOMEPAGE="http://jbig2dec.sourceforge.net/" +SRC_URI="http://sourceforge.net/projects/jbig2dec/files/jbig2dec/0.11/jbig2dec-0.11.tar.gz" +CHECKSUM_MD5="1f61e144852c86563fee6e5ddced63f1" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="" +BUILD { + cd jbig2dec-0.11 + libtoolize --force --copy --install + aclocal + autoconf + ./configure --prefix=`finddir B_COMMON_DIRECTORY` \ + --mandir=`finddir B_COMMON_DOCUMENTATION_DIRECTORY`/man + make +} + +INSTALL { + cd jbig2dec-0.11 + make install +} + +LICENSE="GNU GPL v3" +COPYRIGHT="2001-2009 Artifex Software, Inc." diff --git a/media-libs/jgmod/jgmod-0.99.bep b/media-libs/jgmod/jgmod-0.99.bep index 102e2a658..07dedc4f6 100644 --- a/media-libs/jgmod/jgmod-0.99.bep +++ b/media-libs/jgmod/jgmod-0.99.bep @@ -2,12 +2,11 @@ DESCRIPTION="jgmod is a MOD music playing add-on library for Allegro" HOMEPAGE="http://guan.is-a-geek.com/jgmod/jgmod.html" COPYRIGHT="1997-2002 Guan Foo Wah" LICENSE="JGMOD" - SRC_URI="http://guan.is-a-geek.com/jgmod/jgmod.zip" -REVISION="1" +REVISION="2" STATUS_HAIKU="stable" DEPEND="media-libs/allegro >= 4.4" -CHECKSUM_MD5="ecc08a8200df6a6f6073635bb092c03b" +CHECKSUM_MD5="0e6e540ffadced9283251a7f86c106fe" BUILD { cd jgmod diff --git a/media-libs/jpeg/jpeg-7.bep b/media-libs/jpeg/jpeg-7.bep index 59a31efe7..119a1b211 100644 --- a/media-libs/jpeg/jpeg-7.bep +++ b/media-libs/jpeg/jpeg-7.bep @@ -11,7 +11,7 @@ BUILD { libtoolize --force --copy --install automake --add-missing autoconf - ./configure --prefix=/boot/common --enable-shared + ./configure --prefix=`finddir B_COMMON_DIRECTORY` --enable-shared make } diff --git a/media-libs/jpeg/jpeg-8b.bep b/media-libs/jpeg/jpeg-8b.bep index 351313e8c..d25212bf5 100644 --- a/media-libs/jpeg/jpeg-8b.bep +++ b/media-libs/jpeg/jpeg-8b.bep @@ -11,7 +11,7 @@ BUILD { libtoolize --force --copy --install automake --add-missing autoconf - ./configure --prefix=/boot/common --enable-shared + ./configure --prefix=`finddir B_COMMON_DIRECTORY` --enable-shared make } diff --git a/media-libs/jpeg/jpeg-8c.bep b/media-libs/jpeg/jpeg-8c.bep index 2ac7d0f51..95a9958ce 100644 --- a/media-libs/jpeg/jpeg-8c.bep +++ b/media-libs/jpeg/jpeg-8c.bep @@ -2,7 +2,7 @@ DESCRIPTION="jpeg" HOMEPAGE="http://www.ijg.org" SRC_URI="http://www.ijg.org/files/jpegsrc.v8c.tar.gz" CHECKSUM_MD5="a2c10c04f396a9ce72894beb18b4e1f9" -REVISION="1" +REVISION="2" STATUS_HAIKU="stable" DEPEND="" BUILD { @@ -11,7 +11,9 @@ BUILD { libtoolize --force --copy --install automake --add-missing autoconf - ./configure --prefix=/boot/common --enable-shared + ./configure --prefix=`finddir B_COMMON_DIRECTORY` \ + --mandir=`finddir B_COMMON_DOCUMENTATION_DIRECTORY`/man \ + --enable-shared make } diff --git a/media-libs/jpeg/jpeg-8d.bep b/media-libs/jpeg/jpeg-8d.bep new file mode 100644 index 000000000..5a6db9b8a --- /dev/null +++ b/media-libs/jpeg/jpeg-8d.bep @@ -0,0 +1,27 @@ +DESCRIPTION="jpeg" +HOMEPAGE="http://www.ijg.org" +SRC_URI="http://www.ijg.org/files/jpegsrc.v8d.tar.gz" +CHECKSUM_MD5="52654eb3b2e60c35731ea8fc87f1bd29" +REVISION="2" +STATUS_HAIKU="stable" +DEPEND="" +BUILD { + cd jpeg-8d + aclocal + libtoolize --force --copy --install + automake --add-missing + autoconf + ./configure --prefix=`finddir B_COMMON_DIRECTORY` \ + --mandir=`finddir B_COMMON_DOCUMENTATION_DIRECTORY`/man \ + --enable-shared + make +} + +INSTALL { + cd jpeg-8d + make install +} + +LICENSE="JPEG" +COPYRIGHT="1991-2011, Thomas G. Lane, Guido Vollbeding. All Rights Reserved" + diff --git a/media-libs/jpeg/patches/jpeg-8d.patch b/media-libs/jpeg/patches/jpeg-8d.patch new file mode 100644 index 000000000..a7080547d --- /dev/null +++ b/media-libs/jpeg/patches/jpeg-8d.patch @@ -0,0 +1,24 @@ +diff -ru jpeg-8d/jpeglib.h jpeg-8d/jpeglib.h +--- jpeg-8d/jpeglib.h 2012-08-23 22:37:22.000000000 +0200 ++++ jpeg-8d/jpeglib.h 2012-01-04 23:58:28.723311670 +0100 +@@ -26,6 +26,9 @@ + #endif + #include "jmorecfg.h" /* seldom changed options */ + ++#ifdef __HAIKU__ ++#include ++#endif + + #ifdef __cplusplus + #ifndef DONT_USE_EXTERN_C +@@ -732,6 +733,10 @@ + const char * const * addon_message_table; /* Non-library errors */ + int first_addon_message; /* code for first string in addon table */ + int last_addon_message; /* code for last string in addon table */ ++ ++#ifdef __HAIKU__ ++ jmp_buf long_jump_buffer; ++#endif + }; + + diff --git a/media-libs/ladspa-sdk/ladspa-sdk-1.13.bep b/media-libs/ladspa-sdk/ladspa-sdk-1.13.bep new file mode 100644 index 000000000..196f9d5ba --- /dev/null +++ b/media-libs/ladspa-sdk/ladspa-sdk-1.13.bep @@ -0,0 +1,16 @@ +DESCRIPTION="Linux Audio Developer's Simple Plugin API" +HOMEPAGE="http://www.ladspa.org/" +SRC_URI="http://www.ladspa.org/download/ladspa_sdk_1.13.tgz" +STATUS_HAIKU="stable" +COPYRIGHT="Copyright (C) 2000-2002 Richard W.E. Furse, Paul Barton-Davis, Stefan Westerfeld." +LICENSE="GNU LGPL v2.1" +REVISION="1" +CHECKSUM_MD5="671be3e1021d0722cadc7fb27054628e" +BUILD { + cd ladspa_sdk/src + make +} +INSTALL { + cd ladspa_sdk/src + make install +} diff --git a/media-libs/ladspa-sdk/patches/ladspa-sdk-1.13.patch b/media-libs/ladspa-sdk/patches/ladspa-sdk-1.13.patch new file mode 100644 index 000000000..2cb5fcf3d --- /dev/null +++ b/media-libs/ladspa-sdk/patches/ladspa-sdk-1.13.patch @@ -0,0 +1,50 @@ +diff -Naur ladspa_sdk-1.13/src/makefile ladspa_sdk-1.13-haiku/src/makefile +--- ladspa_sdk/src/makefile 2007-11-06 10:42:45.008388608 +0000 ++++ ladspa_sdk-haiku/src/makefile 2012-12-17 19:04:36.860094464 +0000 +@@ -4,9 +4,9 @@ + # + # Change these if you want to install somewhere else. + +-INSTALL_PLUGINS_DIR = /usr/lib/ladspa/ +-INSTALL_INCLUDE_DIR = /usr/include/ +-INSTALL_BINARY_DIR = /usr/bin/ ++INSTALL_PLUGINS_DIR = ${DESTDIR}/`finddir B_COMMON_LIB_DIRECTORY` ++INSTALL_INCLUDE_DIR = ${DESTDIR}/`finddir B_COMMON_HEADERS_DIRECTORY` ++INSTALL_BINARY_DIR = ${DESTDIR}/`finddir B_COMMON_BIN_DIRECTORY` + + ############################################################################### + # +@@ -14,7 +14,6 @@ + # + + INCLUDES = -I. +-LIBRARIES = -ldl -lm + CFLAGS = $(INCLUDES) -Wall -Werror -O3 -fPIC + CXXFLAGS = $(CFLAGS) + PLUGINS = ../plugins/amp.so \ +@@ -46,22 +45,10 @@ + # TARGETS + # + +-test: /tmp/test.wav ../snd/noise.wav always +- @echo --------------------------------------------- +- @echo First listen to the white noise input signal: +- @echo --------------------------------------------- +- -sndfile-play ../snd/noise.wav +- @echo ------------------------- +- @echo Compare to plugin output. +- @echo ------------------------- +- @echo Should be a noise band around 6000Hz, repeated quietly after 1s. +- -sndfile-play /tmp/test.wav +- @echo Test complete. +- + install: targets +- -mkdirhier $(INSTALL_PLUGINS_DIR) +- -mkdirhier $(INSTALL_INCLUDE_DIR) +- -mkdirhier $(INSTALL_BINARY_DIR) ++ mkdir -p $(INSTALL_PLUGINS_DIR) ++ mkdir -p $(INSTALL_INCLUDE_DIR) ++ mkdir -p $(INSTALL_BINARY_DIR) + cp ../plugins/* $(INSTALL_PLUGINS_DIR) + cp ladspa.h $(INSTALL_INCLUDE_DIR) + cp ../bin/* $(INSTALL_BINARY_DIR) diff --git a/media-libs/lcms/lcms-1.18a.bep b/media-libs/lcms/lcms-1.18a.bep index c69d55306..00157df16 100644 --- a/media-libs/lcms/lcms-1.18a.bep +++ b/media-libs/lcms/lcms-1.18a.bep @@ -11,7 +11,7 @@ BUILD { aclocal automake autoconf - ./configure --prefix=/boot/common CFLAGS=-O0 + ./configure --prefix=`finddir B_COMMON_DIRECTORY` CFLAGS=-O0 make } diff --git a/media-libs/lcms/lcms-1.19.bep b/media-libs/lcms/lcms-1.19.bep index c3b120250..3b1a1421e 100644 --- a/media-libs/lcms/lcms-1.19.bep +++ b/media-libs/lcms/lcms-1.19.bep @@ -11,7 +11,7 @@ BUILD { aclocal automake autoconf - ./configure --prefix=/boot/common CFLAGS=-O0 + ./configure --prefix=`finddir B_COMMON_DIRECTORY` CFLAGS=-O0 make } diff --git a/media-libs/leptonica/leptonica-1.68.bep b/media-libs/leptonica/leptonica-1.68.bep new file mode 100644 index 000000000..979d047af --- /dev/null +++ b/media-libs/leptonica/leptonica-1.68.bep @@ -0,0 +1,31 @@ +DESCRIPTION="An open source C library for efficient image processing and image analysis operations." +HOMEPAGE="http://code.google.com/p/leptonica" +SRC_URI="http://www.leptonica.org/source/leptonica-1.68.tar.gz" +REVISION="1" +STATUS_HAIKU="broken" +DEPEND="" +CHECKSUM_MD5="5cd7092f9ff2ca7e3f3e73bfcd556403" +BUILD { + cd leptonica-1.68 + libtoolize + aclocal + autoconf + ./configure --prefix=`finddir B_COMMON_DIRECTORY` + make +} + +INSTALL { + cd leptonica-1.68 + make install +} + +TEST { + cd leptonica-1.68 +# make test +# make check +} + +LICENSE="Apache v2 + GNU GPL v1" +COPYRIGHT="1985-1995 HP labs + 2011 Google Inc." diff --git a/media-libs/libao/libao-1.0.0.bep b/media-libs/libao/libao-1.0.0.bep index 2e52ba1e3..65c91b962 100644 --- a/media-libs/libao/libao-1.0.0.bep +++ b/media-libs/libao/libao-1.0.0.bep @@ -11,11 +11,13 @@ BUILD { aclocal autoconf automake - MANDIR=`finddir B_COMMON_DOCUMENTATION_DIRECTORY`/man + sed -i 's/$(datadir)\/aclocal/`finddir B_COMMON_DATA_DIRECTORY`\/aclocal/g' M* + COMMON_DOCS=`finddir B_COMMON_DOCUMENTATION_DIRECTORY` LIBDIR=`finddir B_COMMON_LIB_DIRECTORY` ./configure --prefix=`finddir B_COMMON_DIRECTORY` \ --libdir=$LIBDIR \ - --mandir=$MANDIR + --datarootdir=$COMMON_DOCS \ + --mandir=$COMMON_DOCS/man make } diff --git a/media-libs/libass/libass-0.10.1.bep b/media-libs/libass/libass-0.10.1.bep new file mode 100644 index 000000000..99767580b --- /dev/null +++ b/media-libs/libass/libass-0.10.1.bep @@ -0,0 +1,24 @@ +DESCRIPTION="Library for SSA/ASS subtitles rendering" +HOMEPAGE="http://code.google.com/p/libass/" +SRC_URI="http://libass.googlecode.com/files/libass-0.10.1.tar.gz" +REVISION="1" +STATUS_HAIKU="stable" +MESSAGE="This port only builds with gcc4. Use 'setgcc gcc4' before building." +CHECKSUM_MD5="6cace482a013a3c4bf3b31a68ac66026" +DEPEND="pkgconfig >= 0.23 + freetype >= 2.0" + +BUILD { + cd libass-0.10.1 + configure --prefix=`finddir B_COMMON_DIRECTORY` + make +} + +INSTALL { + cd libass-0.10.1 + make install +} + +LICENSE="BSD (3-clause)" +COPYRIGHT="2006 Evgeniy Stepanov + 2009 Grigori Goronzy" diff --git a/media-libs/libass/libass-0.9.11.bep b/media-libs/libass/libass-0.9.11.bep new file mode 100644 index 000000000..f86497901 --- /dev/null +++ b/media-libs/libass/libass-0.9.11.bep @@ -0,0 +1,24 @@ +DESCRIPTION="Library for SSA/ASS subtitles rendering" +HOMEPAGE="http://code.google.com/p/libass/" +SRC_URI="http://libass.googlecode.com/files/libass-0.9.11.tar.bz2" +REVISION="1" +STATUS_HAIKU="stable" +MESSAGE="This port only builds with gcc4. Use 'setgcc gcc4' before building." +CHECKSUM_MD5="f9042884397002ba40aa89dc7d34f59f" +DEPEND="pkgconfig >= 0.23 + freetype >= 2.0" + +BUILD { + cd libass-0.9.11 + configure --prefix=`finddir B_COMMON_DIRECTORY` + make +} + +INSTALL { + cd libass-0.9.11 + make install +} + +LICENSE="BSD (3-clause)" +COPYRIGHT="2006 Evgeniy Stepanov + 2009 Grigori Goronzy" diff --git a/media-libs/libbluray/libbluray-0.2.2.bep b/media-libs/libbluray/libbluray-0.2.2.bep new file mode 100644 index 000000000..2484d3694 --- /dev/null +++ b/media-libs/libbluray/libbluray-0.2.2.bep @@ -0,0 +1,25 @@ +DESCRIPTION="libbluray" +HOMEPAGE="http://www.videolan.org/developers/libbluray.html" +SRC_URI="ftp://ftp.videolan.org/pub/videolan/libbluray/0.2.2/libbluray-0.2.2.tar.bz2" +CHECKSUM_MD5="cb3254de43276861ea6b07c603f4651c" +REVISION="1" +STATUS_HAIKU="stable" +MESSAGE="The port only builds with gcc4. Use 'setgcc gcc4' before building." +DEPEND="" +BUILD { + cd libbluray-0.2.2 + ./configure --prefix=`finddir B_COMMON_DIRECTORY` + make +} + +INSTALL { + cd libbluray-0.2.2 + make install +} +LICENSE="GNU LGPL v2.1" +COPYRIGHT="2010, hpi1 + 2010, fraxinas + 2010, John Stebbins + 2010, Joakim + 2010, Obliter0n + 2010, William Hahne" diff --git a/media-libs/libcddb/libcddb-1.3.2.bep b/media-libs/libcddb/libcddb-1.3.2.bep index 2ffef668d..43eb3b6db 100644 --- a/media-libs/libcddb/libcddb-1.3.2.bep +++ b/media-libs/libcddb/libcddb-1.3.2.bep @@ -3,7 +3,7 @@ HOMEPAGE="http://libcddb.sourceforge.net" SRC_URI="http://prdownloads.sourceforge.net/libcddb/libcddb-1.3.2.tar.bz2" REVISION="1" STATUS_HAIKU="stable" -DEPEND="" +DEPEND="gettext >= 0.18.1.1-dev" CHECKSUM_MD5="8bb4a6f542197e8e9648ae597cd6bc8a" BUILD { cd libcddb-1.3.2 diff --git a/media-libs/libcoverart/libcoverart-1.0.0.bep b/media-libs/libcoverart/libcoverart-1.0.0.bep new file mode 100644 index 000000000..6fce1e477 --- /dev/null +++ b/media-libs/libcoverart/libcoverart-1.0.0.bep @@ -0,0 +1,28 @@ +DESCRIPTION="Development library geared towards developers who wish to add cover art capabilites to their applications." +HOMEPAGE="http://" +SRC_URI="https://github.com/downloads/metabrainz/libcoverart/libcoverart-1.0.0.tar.gz" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="dev-libs/jansson >= 2.4 + net-misc/neon >= 0.29.6" +CHECKSUM_MD5="6380056bb4bc1a69790e706b4d506f50" +BUILD { + cd libcoverart-{PROJECT_VERSION} + cmake . + make +} + +INSTALL { + cd libcoverart-{PROJECT_VERSION} + make install +} + +TEST { + cd libcoverart-{PROJECT_VERSION} + make test + cd tests + ./test +} + +LICENSE="GNU LGPL v2" +COPYRIGHT="2012 Andrew Hawkins" diff --git a/media-libs/libdca/libdca-0.0.5.bep b/media-libs/libdca/libdca-0.0.5.bep index aeec2a94b..e76da1d66 100644 --- a/media-libs/libdca/libdca-0.0.5.bep +++ b/media-libs/libdca/libdca-0.0.5.bep @@ -8,7 +8,7 @@ DEPEND="" BUILD { cd libdca-0.0.5 ./bootstrap - ./configure --prefix=/boot/common + ./configure --prefix=`finddir B_COMMON_DIRECTORY` make } @@ -16,3 +16,8 @@ INSTALL { cd libdca-0.0.5 make install } + +LICENSE="GNU GPL v2" +COPYRIGHT="2004 Gildas Bazin + 2000-2003 Michel Lespinasse + 1999-2000 Aaron Holtzman " diff --git a/media-libs/libdiscid/libdiscid-0.3.0.bep b/media-libs/libdiscid/libdiscid-0.3.0.bep new file mode 100644 index 000000000..8c64d1bed --- /dev/null +++ b/media-libs/libdiscid/libdiscid-0.3.0.bep @@ -0,0 +1,27 @@ +DESCRIPTION="Client library to create MusicBrainz enabled tagging applications" +HOMEPAGE="http://musicbrainz.org/doc/libdiscid" +SRC_URI="http://ftp.musicbrainz.org/pub/musicbrainz/libdiscid/libdiscid-0.3.0.tar.gz" +REVISION="1" +STATUS_HAIKU="broken" +DEPEND="" +CHECKSUM_MD5="17e51260062b7583e5981c82cf618127" +MESSAGE="This port only builds with gcc4. Use 'setgcc gcc4' before building." + +BUILD { + cd libdiscid-0.3.0 + cmake . + make +} + +INSTALL { + cd libdiscid-0.3.0 + make install +} + +TEST { + cd libdiscid-0.3.0 + make test +} + +LICENSE="GNU LGPL v2.1" +COPYRIGHT="2012 Andrew Hawkins" diff --git a/media-libs/libdvdcss/libdvdcss-1.2.10.bep b/media-libs/libdvdcss/libdvdcss-1.2.10.bep index 509ccc51d..fe0d6ef85 100644 --- a/media-libs/libdvdcss/libdvdcss-1.2.10.bep +++ b/media-libs/libdvdcss/libdvdcss-1.2.10.bep @@ -11,7 +11,7 @@ BUILD { aclocal autoconf automake - ./configure --prefix=/boot/common + ./configure --prefix=`finddir B_COMMON_DIRECTORY` make } diff --git a/media-libs/libdvdcss/libdvdcss-1.2.12.bep b/media-libs/libdvdcss/libdvdcss-1.2.12.bep new file mode 100644 index 000000000..2b69402a5 --- /dev/null +++ b/media-libs/libdvdcss/libdvdcss-1.2.12.bep @@ -0,0 +1,21 @@ +DESCRIPTION="libdvdcss" +HOMEPAGE="http://www.videolan.org/developers/libdvdcss.html" +SRC_URI="http://download.videolan.org/pub/libdvdcss/1.2.12/libdvdcss-1.2.12.tar.bz2" +CHECKSUM_MD5="2218a193900e3203aa10dc24cdf54275" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="" +BUILD { + cd libdvdcss-1.2.12 + libtoolize --force --copy --install + aclocal + autoconf + automake + ./configure --prefix=`finddir B_COMMON_DIRECTORY` + make +} + +INSTALL { + cd libdvdcss-1.2.12 + make install +} diff --git a/media-libs/libdvdcss/patches/libdvdcss-1.2.12.patch b/media-libs/libdvdcss/patches/libdvdcss-1.2.12.patch new file mode 100644 index 000000000..ecfdd28be --- /dev/null +++ b/media-libs/libdvdcss/patches/libdvdcss-1.2.12.patch @@ -0,0 +1,12 @@ +diff -Naur libdvdcss-1.2.12/configure.ac libdvdcss-1.2.12-haiku/configure.ac +--- libdvdcss-1.2.12/configure.ac 2012-03-11 23:07:47.053739520 +0000 ++++ libdvdcss-1.2.12-haiku/configure.ac 2012-12-15 02:07:39.623378432 +0000 +@@ -35,7 +35,7 @@ + AC_DEFINE(SYS_CYGWIN, 1, Have a Cygwin system.)) + AC_DEFINE(WIN32, 1, Using Win32.) + ;; +- xbeos*) ++ xbeos*|xhaiku*) + AC_DEFINE(SYS_BEOS, 1, Have a BeOS system.) + ;; + xos2*) diff --git a/media-libs/libdvdnav/libdvdnav-4.1.3.bep b/media-libs/libdvdnav/libdvdnav-4.1.3.bep index d6932c896..ec98982b9 100644 --- a/media-libs/libdvdnav/libdvdnav-4.1.3.bep +++ b/media-libs/libdvdnav/libdvdnav-4.1.3.bep @@ -10,7 +10,7 @@ BUILD { cd libdvdnav-4.1.3 ./autogen.sh CFLAGS="-I/boot/common/include -DHAVE_DVDCSS_DVDCSS_H " \ - ./configure --prefix=/boot/common + ./configure --prefix=`finddir B_COMMON_DIRECTORY` make } diff --git a/media-libs/libdvdnav/libdvdnav-4.2.0.bep b/media-libs/libdvdnav/libdvdnav-4.2.0.bep new file mode 100644 index 000000000..99a06b297 --- /dev/null +++ b/media-libs/libdvdnav/libdvdnav-4.2.0.bep @@ -0,0 +1,25 @@ +DESCRIPTION="libdvdnav" +HOMEPAGE="http://www.mplayerhq.hu/design7/news.html" +SRC_URI="http://dvdnav.mplayerhq.hu/releases/libdvdnav-4.2.0.tar.bz2" +CHECKSUM_MD5="53be8903f9802e101929a3451203bbf6" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="media-libs/libdvdcss >= 1.20.10 + media-libs/libdvdread >= 4.2.0" +BUILD { + cd libdvdnav-4.2.0 + ./autogen.sh + ./configure --prefix=`finddir B_COMMON_DIRECTORY` \ + --datadir=`finddir B_COMMON_DATA_DIRECTORY` \ + --enable-shared --enable-static + make +} + +INSTALL { + cd libdvdnav-4.2.0 + make install +} + +LICENSE="GNU GPL v2" +COPYRIGHT="2000 Rich Wareham + 2001-2004 the dvdnav project" diff --git a/media-libs/libdvdnav/patches/libdvdnav-4.2.0.patch b/media-libs/libdvdnav/patches/libdvdnav-4.2.0.patch new file mode 100644 index 000000000..cbe9021c4 --- /dev/null +++ b/media-libs/libdvdnav/patches/libdvdnav-4.2.0.patch @@ -0,0 +1,20 @@ +--- libdvdnav-4.2.0/configure.ac 2011-10-07 20:20:59.001572864 +0000 ++++ libdvdnav-4.2.0-haiku/configure.ac 2012-04-09 16:41:25.801112064 +0000 +@@ -143,7 +143,7 @@ + THREAD_CFLAGS="-I/usr/local/include -D_THREAD_SAFE" + CFLAGS="$THREAD_CFLAGS $CFLAGS" + ;; +- *mingw32* | *cygwin*) ++ *mingw32* | *cygwin* | *haiku*) + ;; + *) + AC_CHECK_LIB(pthread, pthread_create, +@@ -168,6 +168,8 @@ + *os2*) + LDFLAGS="-no-undefined -Zbin-files $LDFLAGS" + ;; ++ *haiku*) ++ ;; + *) + AC_CHECK_LIB(c, dlopen, + DYNAMIC_LD_LIBS="", diff --git a/media-libs/libdvdread/libdvdread-4.1.3.bep b/media-libs/libdvdread/libdvdread-4.1.3.bep index b2d8d2e2f..44e410dff 100644 --- a/media-libs/libdvdread/libdvdread-4.1.3.bep +++ b/media-libs/libdvdread/libdvdread-4.1.3.bep @@ -8,7 +8,7 @@ DEPEND="" BUILD { cd libdvdread-4.1.3 ./autogen.sh - ./configure --prefix=/boot/common + ./configure --prefix=`finddir B_COMMON_DIRECTORY` make } diff --git a/media-libs/libdvdread/libdvdread-4.2.0.bep b/media-libs/libdvdread/libdvdread-4.2.0.bep new file mode 100644 index 000000000..20479a269 --- /dev/null +++ b/media-libs/libdvdread/libdvdread-4.2.0.bep @@ -0,0 +1,25 @@ +DESCRIPTION="libdvdread" +HOMEPAGE="http://www.mplayerhq.hu/design7/news.html" +SRC_URI="http://dvdnav.mplayerhq.hu/releases/libdvdread-4.2.0.tar.bz2" +CHECKSUM_MD5="ab7a19d3ab1a437ae754ef477d6231a4" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="" +BUILD { + cd libdvdread-4.2.0 + ./autogen.sh + ./configure --prefix=`finddir B_COMMON_DIRECTORY` \ + --datadir=`finddir B_COMMON_DATA_DIRECTORY` \ + --enable-shared --enable-static + make +} + +INSTALL { + cd libdvdread-4.2.0 + make install +} + +LICENSE="GNU GPL v2" +COPYRIGHT="1998-1999 Eric Smith + 2000-2002 Björn Englund + 2000-2003 Håkan Hjort, et al." diff --git a/media-libs/libdvdread/libdvdread-svn1168.bep b/media-libs/libdvdread/libdvdread-svn1168.bep index 79c12aa0e..01b1a3b6c 100644 --- a/media-libs/libdvdread/libdvdread-svn1168.bep +++ b/media-libs/libdvdread/libdvdread-svn1168.bep @@ -11,7 +11,7 @@ BUILD { aclocal autoconf ./autogen.sh - ./configure --prefix=/boot/common + ./configure --prefix=`finddir B_COMMON_DIRECTORY` make } diff --git a/media-libs/libdvdread/libdvdread-svn1226.bep b/media-libs/libdvdread/libdvdread-svn1226.bep new file mode 100644 index 000000000..3315cd103 --- /dev/null +++ b/media-libs/libdvdread/libdvdread-svn1226.bep @@ -0,0 +1,23 @@ +DESCRIPTION="libdvdread is a library for DVD navigation tools" +HOMEPAGE="http://mplayerhq.hu" +SRC_URI="http://download.m0k.org/handbrake/contrib/libdvdread-svn1168.tar.gz" +CHECKSUM_MD5="39cb0b27cc6b05e4f5c849dececf1f7a" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="" +BUILD { + cd libdvdread + svn up -r 1226 + libtoolize --force --copy --install + aclocal + autoconf + ./autogen.sh + ./configure --prefix=`finddir B_COMMON_DIRECTORY` \ + --datarootdir=`finddir B_COMMON_DATA_DIRECTORY` + make +} + +INSTALL { + cd libdvdread + make install +} diff --git a/media-libs/libdvdread/patches/libdvdread-4.2.0.patch b/media-libs/libdvdread/patches/libdvdread-4.2.0.patch new file mode 100644 index 000000000..7ca237fcc --- /dev/null +++ b/media-libs/libdvdread/patches/libdvdread-4.2.0.patch @@ -0,0 +1,22 @@ +--- libdvdread-4.2.0/configure.ac 2011-10-07 20:20:59.008912896 +0000 ++++ libdvdread-4.2.0-haiku/configure.ac 2012-04-09 16:22:42.155713536 +0000 +@@ -148,6 +148,8 @@ + *os2*) + LDFLAGS="-no-undefined -Zbin-files $LDFLAGS" + ;; ++ *haiku*) ++ ;; + *) + AC_CHECK_LIB(c, dlopen, + DYNAMIC_LD_LIBS="", +--- libdvdread-4.2.0/src/bswap.h 2008-10-09 22:04:24.005242880 +0000 ++++ libdvdread-4.2.0-haiku/src/bswap.h 2012-04-09 16:24:41.829947904 +0000 +@@ -73,7 +73,7 @@ + * functionality! + */ + +-#elif defined(__FreeBSD__) || defined(__sun) || defined(__bsdi__) || defined(WIN32) || defined(__CYGWIN__) || defined(__BEOS__) || defined(__OS2__) ++#elif defined(__FreeBSD__) || defined(__sun) || defined(__bsdi__) || defined(WIN32) || defined(__CYGWIN__) || defined(__BEOS__) || defined(__OS2__)|| defined(__HAIKU__) + #define B2N_16(x) \ + x = ((((x) & 0xff00) >> 8) | \ + (((x) & 0x00ff) << 8)) diff --git a/media-libs/libdvdread/patches/libdvdread-svn1168.patch b/media-libs/libdvdread/patches/libdvdread-svn1168.patch new file mode 100644 index 000000000..f92ea62f7 --- /dev/null +++ b/media-libs/libdvdread/patches/libdvdread-svn1168.patch @@ -0,0 +1,26 @@ +Index: libdvdread/src/bswap.h +=================================================================== +--- libdvdread/src/bswap.h (revision 1168) ++++ libdvdread/src/bswap.h (working copy) +@@ -73,7 +73,7 @@ + * functionality! + */ + +-#elif defined(__FreeBSD__) || defined(__sun) || defined(__bsdi__) || defined(WIN32) || defined(__CYGWIN__) || defined(__BEOS__) || defined(__OS2__) ++#elif defined(__FreeBSD__) || defined(__sun) || defined(__bsdi__) || defined(WIN32) || defined(__CYGWIN__) || defined(__BEOS__) || defined(__HAIKU__) || defined(__OS2__) + #define B2N_16(x) \ + x = ((((x) & 0xff00) >> 8) | \ + (((x) & 0x00ff) << 8)) +Index: configure.ac +=================================================================== +--- libdvdread/configure.ac (revision 1168) ++++ libdvdread/configure.ac (working copy) +@@ -148,6 +148,8 @@ + *os2*) + LDFLAGS="-no-undefined -Zbin-files $LDFLAGS" + ;; ++ *haiku*) ++ ;; + *) + AC_CHECK_LIB(c, dlopen, + DYNAMIC_LD_LIBS="", diff --git a/media-libs/libdvdread/patches/libdvdread-svn1226.patch b/media-libs/libdvdread/patches/libdvdread-svn1226.patch new file mode 100644 index 000000000..345fb9cea --- /dev/null +++ b/media-libs/libdvdread/patches/libdvdread-svn1226.patch @@ -0,0 +1,26 @@ +Index: libdvdread/src/bswap.h +=================================================================== +--- libdvdread/src/bswap.h (revision 1226) ++++ libdvdread/src/bswap.h (working copy) +@@ -73,7 +73,7 @@ + * functionality! + */ + +-#elif defined(__FreeBSD__) || defined(__sun) || defined(__bsdi__) || defined(WIN32) || defined(__CYGWIN__) || defined(__BEOS__) || defined(__OS2__) ++#elif defined(__FreeBSD__) || defined(__sun) || defined(__bsdi__) || defined(WIN32) || defined(__CYGWIN__) || defined(__BEOS__) || defined(__HAIKU__) || defined(__OS2__) + #define B2N_16(x) \ + x = ((((x) & 0xff00) >> 8) | \ + (((x) & 0x00ff) << 8)) +Index: configure.ac +=================================================================== +--- libdvdread/configure.ac (revision 1226) ++++ libdvdread/configure.ac (working copy) +@@ -148,6 +148,8 @@ + *os2*) + LDFLAGS="-no-undefined -Zbin-files $LDFLAGS" + ;; ++ *haiku*) ++ ;; + *) + AC_CHECK_LIB(c, dlopen, + DYNAMIC_LD_LIBS="", diff --git a/media-libs/liblo/liblo-0.26.bep b/media-libs/liblo/liblo-0.26.bep new file mode 100644 index 000000000..7463fae96 --- /dev/null +++ b/media-libs/liblo/liblo-0.26.bep @@ -0,0 +1,27 @@ +DESCRIPTION="Lightweight OSC (Open Sound Control) Implementation" +HOMEPAGE="http://liblo.sourceforge.net/" +SRC_URI="http://downloads.sourceforge.net/liblo/liblo-0.26.tar.gz" +REVISION="1" +STATUS_HAIKU="stable" +CHECKSUM_MD5="5351de14262560e15e7f23865293b16f" +BUILD { + cd liblo-0.26 + libtoolize --force --copy --install + aclocal + autoconf + ./configure --prefix=`finddir B_COMMON_DIRECTORY` + make +} + +INSTALL { + cd liblo-0.26 + make install DESTDIR="${DESTDIR}" +} + +LICENSE="GNU LGPL v2.1" +COPYRIGHT="2008-2009 Stephen Sinclair + 2008 Kentaro Fukuchi + 2005-2008 Nicholas Humfrey + 2005 Martin Habets + 2005-2006 Steve Harris" + diff --git a/media-libs/liblo/patch/liblo-0.26.patch b/media-libs/liblo/patch/liblo-0.26.patch new file mode 100644 index 000000000..1adad275e --- /dev/null +++ b/media-libs/liblo/patch/liblo-0.26.patch @@ -0,0 +1,105 @@ +diff -aur liblo-0.26/liblo.pc.in liblo-0.26_Haiku/liblo.pc.in +--- liblo-0.26/liblo.pc.in 2008-06-02 19:10:42.012845056 -0700 ++++ liblo-0.26_Haiku/liblo.pc.in 2012-05-15 16:42:17.135528448 -0700 +@@ -6,5 +6,5 @@ + Name: liblo + Version: @PACKAGE_VERSION@ + Description: A lightweight OSC server/client library +-Libs: -L${libdir} -llo -lpthread ++Libs: -L${libdir} -llo + Cflags: -I${includedir} +diff -aur liblo-0.26/src/Makefile.am liblo-0.26_Haiku/src/Makefile.am +--- liblo-0.26/src/Makefile.am 2009-03-07 09:09:52.017825792 -0800 ++++ liblo-0.26_Haiku/src/Makefile.am 2012-05-15 16:35:36.973340672 -0700 +@@ -13,7 +13,7 @@ + + liblo_la_CFLAGS = -Wall -I$(top_srcdir) + liblo_la_SOURCES = $(SOURCE_FILES) +-liblo_la_LIBADD = -lpthread ++liblo_la_LIBADD = + liblo_la_LDFLAGS = -export-dynamic -version-info @LO_SO_VERSION@ + + noinst_PROGRAMS = testlo subtest +diff -aur liblo-0.26/src/server.c liblo-0.26_Haiku/src/server.c +--- liblo-0.26/src/server.c 2009-03-05 23:09:26.018087936 -0800 ++++ liblo-0.26_Haiku/src/server.c 2012-05-15 16:31:29.817627136 -0700 +@@ -958,44 +960,44 @@ + + //inet_ntop(s->addr.ss_family, &s->addr.padding, hostname, sizeof(hostname)); + if (s->protocol == LO_UDP && s->addr_len>0) { +- err = getnameinfo((struct sockaddr *)&s->addr, sizeof(s->addr), +- hostname, sizeof(hostname), portname, sizeof(portname), +- NI_NUMERICHOST | NI_NUMERICSERV); +- if (err) { +- switch (err) { +- case EAI_AGAIN: +- lo_throw(s, err, "Try again", path); +- break; +- case EAI_BADFLAGS: +- lo_throw(s, err, "Bad flags", path); +- break; +- case EAI_FAIL: +- lo_throw(s, err, "Failed", path); +- break; +- case EAI_FAMILY: +- lo_throw(s, err, "Cannot resolve address family", path); +- break; +- case EAI_MEMORY: +- lo_throw(s, err, "Out of memory", path); +- break; +- case EAI_NONAME: +- lo_throw(s, err, "Cannot resolve", path); +- break; ++ err = getnameinfo((struct sockaddr *)&s->addr, sizeof(struct sockaddr), ++ hostname, sizeof(hostname), portname, sizeof(portname), ++ NI_NUMERICHOST | NI_NUMERICSERV); ++ if (err) { ++ switch (err) { ++ case EAI_AGAIN: ++ lo_throw(s, err, "Try again", path); ++ break; ++ case EAI_BADFLAGS: ++ lo_throw(s, err, "Bad flags", path); ++ break; ++ case EAI_FAIL: ++ lo_throw(s, err, "Failed", path); ++ break; ++ case EAI_FAMILY: ++ lo_throw(s, err, "Cannot resolve address family", path); ++ break; ++ case EAI_MEMORY: ++ lo_throw(s, err, "Out of memory", path); ++ break; ++ case EAI_NONAME: ++ lo_throw(s, err, "Cannot resolve", path); ++ break; + #ifndef WIN32 +- case EAI_SYSTEM: +- lo_throw(s, err, strerror(err), path); +- break; +-#endif +- default: +- lo_throw(s, err, "Unknown error", path); +- break; +- } ++ case EAI_SYSTEM: ++ lo_throw(s, err, strerror(err), path); ++ break; ++#endif ++ default: ++ lo_throw(s, err, "Unknown error", path); ++ break; ++ } + +- return; +- } ++ return; ++ } + } else { +- hostname[0] = '\0'; +- portname[0] = '\0'; ++ hostname[0] = '\0'; ++ portname[0] = '\0'; + } + + diff --git a/media-libs/libmad/libmad-0.15.1.bep b/media-libs/libmad/libmad-0.15.1b.bep similarity index 91% rename from media-libs/libmad/libmad-0.15.1.bep rename to media-libs/libmad/libmad-0.15.1b.bep index 37c6a0c5b..ce4468e5c 100644 --- a/media-libs/libmad/libmad-0.15.1.bep +++ b/media-libs/libmad/libmad-0.15.1b.bep @@ -9,6 +9,7 @@ BUILD { cd libmad-0.15.1b libtoolize --force --copy --install aclocal + sed -i 's/$optimize -fforce-mem/$optimize/g' configure.ac autoconf MANDIR=`finddir B_COMMON_DOCUMENTATION_DIRECTORY`/man LIBDIR=`finddir B_COMMON_LIB_DIRECTORY` diff --git a/media-libs/libmikmod/libmikmod-3.1.11.bep b/media-libs/libmikmod/libmikmod-3.1.11.bep index 75b125d28..086377bf7 100644 --- a/media-libs/libmikmod/libmikmod-3.1.11.bep +++ b/media-libs/libmikmod/libmikmod-3.1.11.bep @@ -10,17 +10,16 @@ BUILD { rm aclocal.m4 echo "AC_CONFIG_MACRO_DIR([m4])" >> configure.in libtoolize --force --copy --install - cp /boot/common/share/aclocal/libtool.m4 m4 - cp /boot/common/share/aclocal/ltoptions.m4 m4 - cp /boot/common/share/aclocal/ltversion.m4 m4 - cp /boot/common/share/aclocal/ltsugar.m4 m4 - cp /boot/common/share/aclocal/lt~obsolete.m4 m4 - aclocal -I m4 + aclocal --install -I m4 autoconf automake --add-missing + DATADIR=`finddir B_COMMON_DATA_DIRECTORY` + INFODIR=`finddir B_COMMON_DOCUMENTATION_DIRECTORY`/info MANDIR=`finddir B_COMMON_DOCUMENTATION_DIRECTORY`/man LIBDIR=`finddir B_COMMON_LIB_DIRECTORY` ./configure --prefix=`finddir B_COMMON_DIRECTORY` \ + --datadir=$DATADIR \ + --infodir=$INFODIR \ --libdir=$LIBDIR \ --mandir=$MANDIR make @@ -30,5 +29,6 @@ INSTALL { cd libmikmod-3.1.11 make install } + LICENSE="GNU LGPL v2.1" COPYRIGHT="1998-2004 Jean-Paul Mikkers, Jake Stine, Frank Loemker, Steve McIntyre, Peter Amstutz, and Miodrag Vallat." diff --git a/media-libs/libmms/libmms-0.5.bep b/media-libs/libmms/libmms-0.5.bep index 1da705060..9b8ec7c26 100644 --- a/media-libs/libmms/libmms-0.5.bep +++ b/media-libs/libmms/libmms-0.5.bep @@ -9,7 +9,7 @@ DEPEND="dev-libs/glib >= 2.0" BUILD { cd libmms-0.5 ./autogen.sh - ./configure --prefix=/boot/common + ./configure --prefix=`finddir B_COMMON_DIRECTORY` make } diff --git a/media-libs/libmng/libmng-1.0.10.bep b/media-libs/libmng/libmng-1.0.10.bep index 2efcd067e..1b61ed321 100644 --- a/media-libs/libmng/libmng-1.0.10.bep +++ b/media-libs/libmng/libmng-1.0.10.bep @@ -13,7 +13,7 @@ BUILD { libtoolize --force --copy --install aclocal ./autogen.sh -# ./configure --prefix=/boot/common \ +# ./configure --prefix=`finddir B_COMMON_DIRECTORY` \ # LDFLAGS=-L/boot/common/lib \ # CPPFLAGS=-I/boot/common/include MANDIR=`finddir B_COMMON_DOCUMENTATION_DIRECTORY`/man diff --git a/media-libs/libmodplug/libmodplug-0.8.8.4.bep b/media-libs/libmodplug/libmodplug-0.8.8.4.bep new file mode 100644 index 000000000..183c2df62 --- /dev/null +++ b/media-libs/libmodplug/libmodplug-0.8.8.4.bep @@ -0,0 +1,29 @@ +DESCRIPTION="libmodplug is a lib for playing mod files" +HOMEPAGE="http://modplug-xmms.sourceforge.net" +SRC_URI="http://sourceforge.net/projects/modplug-xmms/files/libmodplug/0.8.8.4/libmodplug-0.8.8.4.tar.gz" +CHECKSUM_MD5="fddc3c704c5489de2a3cf0fedfec59db" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="" +BUILD { + cd libmodplug-0.8.8.4 + libtoolize --force --copy --install + aclocal + autoconf + automake + MANDIR=`finddir B_COMMON_DOCUMENTATION_DIRECTORY`/man + LIBDIR=`finddir B_COMMON_LIB_DIRECTORY` + ./configure --prefix=`finddir B_COMMON_DIRECTORY` \ + --libdir=$LIBDIR \ + --mandir=$MANDIR \ + --enable-static + make +} + +INSTALL { + cd libmodplug-0.8.8.4 + make install +} + +LICENSE="Public Domain" +#COPYRIGHT="" diff --git a/media-libs/libnsbmp/libnsbmp-0.0.3-HEAD.bep b/media-libs/libnsbmp/libnsbmp-0.0.3-HEAD.bep new file mode 100644 index 000000000..21da355c1 --- /dev/null +++ b/media-libs/libnsbmp/libnsbmp-0.0.3-HEAD.bep @@ -0,0 +1,19 @@ +DESCRIPTION="Libnsbmp is a decoding library for BMP and ICO image file formats" +HOMEPAGE="http://www.netsurf-browser.org/projects/libnsbmp/" +SRC_URI="git://git.netsurf-browser.org/libnsbmp.git" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="dev-util/buildsystem >= 0" + +BUILD { + cd libnsbmp-0.0.3-HEAD + make PREFIX=/boot/common +} + +INSTALL { + cd libnsbmp-0.0.3-HEAD + make install PREFIX=/boot/common +} + +LICENSE="MIT" +COPYRIGHT="2003 - 2012 The NetSurf Developers" diff --git a/media-libs/libnsbmp/libnsbmp-0.0.3.bep b/media-libs/libnsbmp/libnsbmp-0.0.3.bep new file mode 100644 index 000000000..dea51e029 --- /dev/null +++ b/media-libs/libnsbmp/libnsbmp-0.0.3.bep @@ -0,0 +1,18 @@ +DESCRIPTION="Libnsbmp is a decoding library for BMP and ICO image file formats" +HOMEPAGE="http://www.netsurf-browser.org/projects/libnsbmp/" +SRC_URI="http://download.netsurf-browser.org/libs/releases/libnsbmp-0.0.3-src.tar.gz" +REVISION="1" +STATUS_HAIKU="stable" + +BUILD { + cd libnsbmp-0.0.3 + make +} + +INSTALL { + cd libnsbmp-0.0.3 + make install +} + +LICENSE="MIT" +COPYRIGHT="2003 - 2012 The NetSurf Developers" diff --git a/media-libs/libnsgif/libnsgif-0.0.3.bep b/media-libs/libnsgif/libnsgif-0.0.3.bep new file mode 100644 index 000000000..e5598c573 --- /dev/null +++ b/media-libs/libnsgif/libnsgif-0.0.3.bep @@ -0,0 +1,18 @@ +DESCRIPTION="Libnsgif is a decoding library for the GIF image file format" +HOMEPAGE="http://www.netsurf-browser.org/projects/libnsgif/" +SRC_URI="http://download.netsurf-browser.org/libs/releases/libnsgif-0.0.3-src.tar.gz" +REVISION="1" +STATUS_HAIKU="stable" + +BUILD { + cd libnsgif-0.0.3 + make +} + +INSTALL { + cd libnsgif-0.0.3 + make install +} + +LICENSE="MIT" +COPYRIGHT="2003 - 2012 The NetSurf Developers" diff --git a/media-libs/libogg/libogg-1.1.4.bep b/media-libs/libogg/libogg-1.1.4.bep index 61194c661..2859a806d 100644 --- a/media-libs/libogg/libogg-1.1.4.bep +++ b/media-libs/libogg/libogg-1.1.4.bep @@ -11,7 +11,7 @@ BUILD { aclocal autoconf automake - ./configure --prefix=/boot/common + ./configure --prefix=`finddir B_COMMON_DIRECTORY` make } diff --git a/media-libs/libogg/libogg-1.2.0.bep b/media-libs/libogg/libogg-1.2.0.bep index e60cca9a4..b82d6c503 100644 --- a/media-libs/libogg/libogg-1.2.0.bep +++ b/media-libs/libogg/libogg-1.2.0.bep @@ -9,13 +9,11 @@ BUILD { cd libogg-1.2.0 rm aclocal.m4 mkdir -p m4 - cp /boot/common/share/aclocal/ltversion.m4 m4 libtoolize --force --copy --install echo 'AC_CONFIG_MACRO_DIR([m4]) >> configure.in' - libtoolize --force --copy --install - aclocal -I m4 + aclocal --install -I m4 autoconf - ./configure --prefix=/boot/common + ./configure --prefix=`finddir B_COMMON_DIRECTORY` make } @@ -23,5 +21,6 @@ INSTALL { cd libogg-1.2.0 make install } + LICENSE="BSD (3-clause)" COPYRIGHT="1994-2010 Xiph.Org Foundation" diff --git a/media-libs/libogg/libogg-1.2.2.bep b/media-libs/libogg/libogg-1.2.2.bep index 182564880..f1828f98e 100644 --- a/media-libs/libogg/libogg-1.2.2.bep +++ b/media-libs/libogg/libogg-1.2.2.bep @@ -9,13 +9,17 @@ BUILD { cd libogg-1.2.2 rm aclocal.m4 mkdir -p m4 - cp /boot/common/share/aclocal/ltversion.m4 m4 - libtoolize --force --copy --install + cp `aclocal --print-ac-dir`/ltversion.m4 m4 + libtoolize -fci echo 'AC_CONFIG_MACRO_DIR([m4]) >> configure.in' - libtoolize --force --copy --install - aclocal -I m4 + libtoolize -fci + aclocal --install -I m4 autoconf - ./configure --prefix=/boot/common + COMMON_DOCS=`finddir B_COMMON_DOCUMENTATION_DIRECTORY` + sed -i 's/m4datadir = $(datadir)\/aclocal/m4datadir = `finddir B_COMMON_DATA_DIRECTORY`\/aclocal/g' Make* + sed -i 's/m4datadir = $(datadir)\/aclocal/m4datadir = `finddir B_COMMON_DATA_DIRECTORY`\/aclocal/g' src/Make* + ./configure --prefix=`finddir B_COMMON_DIRECTORY` \ + --datarootdir=$COMMON_DOCS make } @@ -23,5 +27,6 @@ INSTALL { cd libogg-1.2.2 make install } + LICENSE="BSD (3-clause)" COPYRIGHT="1994-2010 Xiph.Org Foundation" diff --git a/media-libs/libogg/libogg-1.3.0.bep b/media-libs/libogg/libogg-1.3.0.bep new file mode 100644 index 000000000..ed2ac6726 --- /dev/null +++ b/media-libs/libogg/libogg-1.3.0.bep @@ -0,0 +1,22 @@ +DESCRIPTION="libogg" +HOMEPAGE="http://www.xiph.org" +SRC_URI="http://downloads.xiph.org/releases/ogg/libogg-1.3.0.tar.gz" +CHECKSUM_MD5="0a7eb40b86ac050db3a789ab65fe21c2" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="" +BUILD { + cd libogg-1.3.0 + COMMON_DOCS=`finddir B_COMMON_DOCUMENTATION_DIRECTORY` + ./configure --prefix=`finddir B_COMMON_DIRECTORY` \ + --datarootdir=$COMMON_DOCS + make +} + +INSTALL { + cd libogg-1.3.0 + make install +} + +LICENSE="BSD (3-clause)" +COPYRIGHT="1994-2011 Xiph.Org Foundation" diff --git a/media-libs/libpng/libpng-1.2.29.bep b/media-libs/libpng/libpng-1.2.29.bep index 753198c7f..3115d3d32 100644 --- a/media-libs/libpng/libpng-1.2.29.bep +++ b/media-libs/libpng/libpng-1.2.29.bep @@ -7,7 +7,7 @@ DEPEND="" BUILD { cd libpng-1.2.29 ./autogen.sh - ./configure --prefix=/boot/common + ./configure --prefix=`finddir B_COMMON_DIRECTORY` make } diff --git a/media-libs/libpng/libpng-1.2.30.bep b/media-libs/libpng/libpng-1.2.30.bep index fcd7678f9..bed0800f5 100644 --- a/media-libs/libpng/libpng-1.2.30.bep +++ b/media-libs/libpng/libpng-1.2.30.bep @@ -10,7 +10,7 @@ BUILD { cp /boot/common/share/libtool/config.sub libtoolize --force --copy ./autogen.sh - ./configure --prefix=/boot/common + ./configure --prefix=`finddir B_COMMON_DIRECTORY` make } diff --git a/media-libs/libpng/libpng-1.2.40.bep b/media-libs/libpng/libpng-1.2.40.bep index b8068c8c4..e43975616 100644 --- a/media-libs/libpng/libpng-1.2.40.bep +++ b/media-libs/libpng/libpng-1.2.40.bep @@ -9,7 +9,7 @@ BUILD { cd libpng-1.2.40 libtoolize --force --copy ./autogen.sh - ./configure --prefix=/boot/common + ./configure --prefix=`finddir B_COMMON_DIRECTORY` make } diff --git a/media-libs/libpng/libpng-1.2.41.bep b/media-libs/libpng/libpng-1.2.41.bep index c234b6bd3..f18fd1c07 100644 --- a/media-libs/libpng/libpng-1.2.41.bep +++ b/media-libs/libpng/libpng-1.2.41.bep @@ -9,7 +9,7 @@ BUILD { cd libpng-1.2.41 libtoolize --force --copy ./autogen.sh - ./configure --prefix=/boot/common + ./configure --prefix=`finddir B_COMMON_DIRECTORY` make } diff --git a/media-libs/libpng/libpng-1.2.43.bep b/media-libs/libpng/libpng-1.2.43.bep index b1799be79..869e467ce 100644 --- a/media-libs/libpng/libpng-1.2.43.bep +++ b/media-libs/libpng/libpng-1.2.43.bep @@ -9,7 +9,7 @@ BUILD { cd libpng-1.2.43 libtoolize --force --copy ./autogen.sh - ./configure --prefix=/boot/common + ./configure --prefix=`finddir B_COMMON_DIRECTORY` make } diff --git a/media-libs/libpng/libpng-1.2.44.bep b/media-libs/libpng/libpng-1.2.44.bep index fc7140bb6..2a9d84070 100644 --- a/media-libs/libpng/libpng-1.2.44.bep +++ b/media-libs/libpng/libpng-1.2.44.bep @@ -9,7 +9,7 @@ BUILD { cd libpng-1.2.44 libtoolize --force --copy ./autogen.sh - ./configure --prefix=/boot/common + ./configure --prefix=`finddir B_COMMON_DIRECTORY` make } diff --git a/media-libs/libpng/libpng-1.2.46.bep b/media-libs/libpng/libpng-1.2.46.bep new file mode 100644 index 000000000..9917b9c14 --- /dev/null +++ b/media-libs/libpng/libpng-1.2.46.bep @@ -0,0 +1,23 @@ +DESCRIPTION="libpng" +HOMEPAGE="http://www.libpng.org" +SRC_URI="http://prdownloads.sourceforge.net/libpng/libpng-1.2.46.tar.gz?download" +CHECKSUM_MD5="03ddfc17ad321db93f984581e9415d22" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="" +BUILD { + cd libpng-1.2.46 + libtoolize --force --copy + ./autogen.sh + ./configure --prefix=`finddir B_COMMON_DIRECTORY` + make +} + +INSTALL { + cd libpng-1.2.46 + make install +} +LICENSE="LibPNG" +COPYRIGHT="1998-2011 Glenn Randers-Pehrson + 1996-1997 Andreas Dilger + 1995-1996 Guy Eric Schalnat, Group 42, Inc." diff --git a/media-libs/libpng/libpng-1.4.1.bep b/media-libs/libpng/libpng-1.4.1.bep index bbda2e3ac..d5c4a7bc7 100644 --- a/media-libs/libpng/libpng-1.4.1.bep +++ b/media-libs/libpng/libpng-1.4.1.bep @@ -9,7 +9,7 @@ BUILD { cd libpng-1.4.1 libtoolize --force --copy ./autogen.sh - ./configure --prefix=/boot/common + ./configure --prefix=`finddir B_COMMON_DIRECTORY` make } diff --git a/media-libs/libpng/libpng-1.4.2.bep b/media-libs/libpng/libpng-1.4.2.bep index 259663fed..72bb98aae 100644 --- a/media-libs/libpng/libpng-1.4.2.bep +++ b/media-libs/libpng/libpng-1.4.2.bep @@ -14,7 +14,7 @@ BUILD { cd libpng-1.4.2 libtoolize --force --copy ./autogen.sh - ./configure --prefix=/boot/common + ./configure --prefix=`finddir B_COMMON_DIRECTORY` make } diff --git a/media-libs/libpng/libpng-1.4.3.bep b/media-libs/libpng/libpng-1.4.3.bep index 64b28e178..dd7d1af3f 100644 --- a/media-libs/libpng/libpng-1.4.3.bep +++ b/media-libs/libpng/libpng-1.4.3.bep @@ -14,7 +14,7 @@ BUILD { cd libpng-1.4.3 libtoolize --force --copy ./autogen.sh - ./configure --prefix=/boot/common + ./configure --prefix=`finddir B_COMMON_DIRECTORY` make } diff --git a/media-libs/libpng/libpng-1.4.4.bep b/media-libs/libpng/libpng-1.4.4.bep index aef563ec2..7950fef2c 100644 --- a/media-libs/libpng/libpng-1.4.4.bep +++ b/media-libs/libpng/libpng-1.4.4.bep @@ -14,7 +14,7 @@ BUILD { cd libpng-1.4.4 libtoolize --force --copy ./autogen.sh - ./configure --prefix=/boot/common + ./configure --prefix=`finddir B_COMMON_DIRECTORY` make } diff --git a/media-libs/libpng/libpng-1.5.0.bep b/media-libs/libpng/libpng-1.5.0.bep index 1067a1923..e8a1f7ac7 100644 --- a/media-libs/libpng/libpng-1.5.0.bep +++ b/media-libs/libpng/libpng-1.5.0.bep @@ -14,7 +14,8 @@ BUILD { cd libpng-1.5.0 libtoolize --force --copy ./autogen.sh - ./configure --prefix=/boot/common + ./configure --prefix=`finddir B_COMMON_DIRECTORY` \ + --mandir=`finddir B_COMMON_DOCUMENTATION_DIRECTORY`/man make } diff --git a/media-libs/libpng/libpng-1.5.12.bep b/media-libs/libpng/libpng-1.5.12.bep new file mode 100644 index 000000000..6afaf8263 --- /dev/null +++ b/media-libs/libpng/libpng-1.5.12.bep @@ -0,0 +1,25 @@ +DESCRIPTION="libpng" +HOMEPAGE="http://www.libpng.org" +COPYRIGHT="1998-2011 Glenn Randers-Pehrson + 1996-1997 Andreas Dilger + 1995-1996 Guy Eric Schalnat, Group 42, Inc." +LICENSE="LibPNG" + +SRC_URI="http://prdownloads.sourceforge.net/libpng/libpng-1.5.12.tar.gz?download" +CHECKSUM_MD5="8ea7f60347a306c5faf70b977fa80e28" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="" +BUILD { + cd libpng-1.5.12 + libtoolize --force --copy + ./autogen.sh + ./configure --prefix=`finddir B_COMMON_DIRECTORY` \ + --mandir=`finddir B_COMMON_DOCUMENTATION_DIRECTORY`/man + make +} + +INSTALL { + cd libpng-1.5.12 + make install +} diff --git a/media-libs/libpng/libpng-1.5.13.bep b/media-libs/libpng/libpng-1.5.13.bep new file mode 100644 index 000000000..89333093c --- /dev/null +++ b/media-libs/libpng/libpng-1.5.13.bep @@ -0,0 +1,30 @@ +DESCRIPTION="Portable Network Graghpics library" +HOMEPAGE="http://www.libpng.org" +SRC_URI="http://prdownloads.sourceforge.net/libpng/libpng-1.5.13.tar.gz?download" +CHECKSUM_MD5="9c5a584d4eb5fe40d0f1bc2090112c65" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="" +BUILD { + cd libpng-1.5.13 + libtoolize --force --copy + ./autogen.sh + ./configure --prefix=`finddir B_COMMON_DIRECTORY` \ + --mandir=`finddir B_COMMON_DOCUMENTATION_DIRECTORY`/man + make +} + +INSTALL { + cd libpng-1.5.13 + make install +} + +TEST { + cd libpng-1.5.13 + make test +} + +COPYRIGHT="1998-2012 Glenn Randers-Pehrson + 1996-1997 Andreas Dilger + 1995-1996 Guy Eric Schalnat, Group 42, Inc." +LICENSE="LibPNG" diff --git a/media-libs/libpng/libpng-1.5.2.bep b/media-libs/libpng/libpng-1.5.2.bep new file mode 100644 index 000000000..ceba7bf1a --- /dev/null +++ b/media-libs/libpng/libpng-1.5.2.bep @@ -0,0 +1,25 @@ +DESCRIPTION="libpng" +HOMEPAGE="http://www.libpng.org" +COPYRIGHT="1998-2011 Glenn Randers-Pehrson + 1996-1997 Andreas Dilger + 1995-1996 Guy Eric Schalnat, Group 42, Inc." +LICENSE="LibPNG" + +SRC_URI="http://prdownloads.sourceforge.net/libpng/libpng-1.5.2.tar.gz?download" +CHECKSUM_MD5="31d448eb93a1646359a23f1b23434ab3" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="" +BUILD { + cd libpng-1.5.2 + libtoolize --force --copy + ./autogen.sh + ./configure --prefix=`finddir B_COMMON_DIRECTORY` \ + --mandir=`finddir B_COMMON_DOCUMENTATION_DIRECTORY`/man + make +} + +INSTALL { + cd libpng-1.5.2 + make install +} diff --git a/media-libs/libpng/libpng-1.5.4.bep b/media-libs/libpng/libpng-1.5.4.bep new file mode 100644 index 000000000..3cec3fe68 --- /dev/null +++ b/media-libs/libpng/libpng-1.5.4.bep @@ -0,0 +1,25 @@ +DESCRIPTION="libpng" +HOMEPAGE="http://www.libpng.org" +COPYRIGHT="1998-2011 Glenn Randers-Pehrson + 1996-1997 Andreas Dilger + 1995-1996 Guy Eric Schalnat, Group 42, Inc." +LICENSE="LibPNG" + +SRC_URI="http://prdownloads.sourceforge.net/libpng/libpng-1.5.4.tar.gz?download" +CHECKSUM_MD5="dea4d1fd671160424923e92ff0cdda78" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="" +BUILD { + cd libpng-1.5.4 + libtoolize --force --copy + ./autogen.sh + ./configure --prefix=`finddir B_COMMON_DIRECTORY` \ + --mandir=`finddir B_COMMON_DOCUMENTATION_DIRECTORY`/man + make +} + +INSTALL { + cd libpng-1.5.4 + make install +} diff --git a/media-libs/libpng/libpng-1.5.7.bep b/media-libs/libpng/libpng-1.5.7.bep new file mode 100644 index 000000000..5c86a6209 --- /dev/null +++ b/media-libs/libpng/libpng-1.5.7.bep @@ -0,0 +1,25 @@ +DESCRIPTION="libpng" +HOMEPAGE="http://www.libpng.org" +COPYRIGHT="1998-2011 Glenn Randers-Pehrson + 1996-1997 Andreas Dilger + 1995-1996 Guy Eric Schalnat, Group 42, Inc." +LICENSE="LibPNG" + +SRC_URI="http://prdownloads.sourceforge.net/libpng/libpng-1.5.7.tar.gz?download" +CHECKSUM_MD5="944b56a84b65d94054cc73d7ff965de8" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="" +BUILD { + cd libpng-1.5.7 + libtoolize --force --copy + ./autogen.sh + ./configure --prefix=`finddir B_COMMON_DIRECTORY` \ + --mandir=`finddir B_COMMON_DOCUMENTATION_DIRECTORY`/man + make +} + +INSTALL { + cd libpng-1.5.7 + make install +} diff --git a/media-libs/libsamplerate/libsamplerate-0.1.8.bep b/media-libs/libsamplerate/libsamplerate-0.1.8.bep new file mode 100644 index 000000000..fb08c551e --- /dev/null +++ b/media-libs/libsamplerate/libsamplerate-0.1.8.bep @@ -0,0 +1,21 @@ +DESCRIPTION="libsamplerate" +HOMEPAGE="http://www.mega-nerd.com/SRC/" +COPYRIGHT="Copyright (C) 2002-2011 Erik de Castro Lopo " +LICENSE="GNU GPL v2" + +SRC_URI="http://www.mega-nerd.com/SRC/libsamplerate-0.1.8.tar.gz" +CHECKSUM_MD5="1c7fb25191b4e6e3628d198a66a84f47" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="" +BUILD { + cd libsamplerate-0.1.8 + ./configure --prefix=`finddir B_COMMON_DIRECTORY` \ + --mandir=`finddir B_COMMON_DOCUMENTATION_DIRECTORY`/man + make +} + +INSTALL { + cd libsamplerate-0.1.8 + make install +} diff --git a/media-libs/libsdl/libsdl-1.2-hg.bep b/media-libs/libsdl/libsdl-1.2-hg.bep index d2148dd3d..217a36dae 100644 --- a/media-libs/libsdl/libsdl-1.2-hg.bep +++ b/media-libs/libsdl/libsdl-1.2-hg.bep @@ -7,28 +7,26 @@ STATUS_HAIKU="stable" DEPEND="" BUILD { cd libsdl-1.2-hg - ./autogen.sh - rm aclocal.m4 - echo "AC_CONFIG_MACRO_DIR([acinclude])" >> configure.in - libtoolize --force --copy --install - aclocal -I acinclude + cp `aclocal --print-ac-dir`/libtool.m4 acinclude ./autogen.sh MANDIR=`finddir B_COMMON_DOCUMENTATION_DIRECTORY`/man LIBDIR=`finddir B_COMMON_LIB_DIRECTORY` ./configure --prefix=`finddir B_COMMON_DIRECTORY` \ + --datarootdir=`finddir B_COMMON_DATA_DIRECTORY` \ --libdir=$LIBDIR \ --mandir=$MANDIR + cp /boot/common/bin/libtool . make } INSTALL { cd libsdl-1.2-hg make install + cp ../../sdl-config `which sdl-config` } TEST { cd libsdl-1.2-hg/test - autogen.sh ./configure make echo testvidoinfo diff --git a/media-libs/libsdl/libsdl-1.2.14.bep b/media-libs/libsdl/libsdl-1.2.14.bep index 308e19e8c..68e0ae7dd 100644 --- a/media-libs/libsdl/libsdl-1.2.14.bep +++ b/media-libs/libsdl/libsdl-1.2.14.bep @@ -10,16 +10,19 @@ BUILD { ./autogen.sh rm aclocal.m4 echo "AC_CONFIG_MACRO_DIR([acinclude])" >> configure.in - libtoolize --force --copy --install + libtoolize -fci aclocal -I acinclude ./autogen.sh - ./configure --prefix=/boot/common + ./configure --prefix=`finddir B_COMMON_DIRECTORY` \ + --datadir=`finddir B_COMMON_DATA_DIRECTORY` \ + --mandir=`finddir B_COMMON_DOCUMENTATION_DIRECTORY`/man make } INSTALL { cd SDL-1.2.14 make install + } LICENSE="GNU LGPL v2.1" COPYRIGHT="1997-2009 Sam Lantinga" diff --git a/media-libs/libsdl/libsdl-1.2.15.bep b/media-libs/libsdl/libsdl-1.2.15.bep new file mode 100644 index 000000000..7618b080a --- /dev/null +++ b/media-libs/libsdl/libsdl-1.2.15.bep @@ -0,0 +1,101 @@ +DESCRIPTION="Simple Direct Media Layer" +HOMEPAGE="http://www.libsdl.org/" +SRC_URI="http://www.libsdl.org/release/SDL-1.2.15.tar.gz" +CHECKSUM_MD5="9d96df8417572a2afb781a7c4c811a85" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="" +BUILD { + cd SDL-1.2.15 + ./autogen.sh + rm aclocal.m4 + echo "AC_CONFIG_MACRO_DIR([acinclude])" >> configure.in + libtoolize -fci + aclocal -I acinclude + ./autogen.sh + MANDIR=`finddir B_COMMON_DOCUMENTATION_DIRECTORY`/man + LIBDIR=`finddir B_COMMON_LIB_DIRECTORY` + ./configure --prefix=`finddir B_COMMON_DIRECTORY` \ + --datarootdir=`finddir B_COMMON_DATA_DIRECTORY` \ + --libdir=$LIBDIR \ + --mandir=$MANDIR + make +} + +INSTALL { + cd SDL-1.2.15 + make install +} + +TEST { + cd SDL-1.2.15/test + ./configure + make + echo testvidoinfo + testvidinfo + echo testgl + testgl + echo testwm + testwm + echo testhread + testhread + echo testsprite + testsprite + echo testdyngl + testdyngl + echo testoverlay + testoverlay + echo testoverlay2 + testoverlay2 + echo threadwin + threadwin + echo testalpha + testalpha + echo testiconv + testiconv + echo testtimer + testtimer + echo graywin + graywin + echo testerror + testerror + echo torturethread + torturethread + echo testbitmap + testbitmap + echo testjoystick + testjoystick + echo testver + testver + echo testfile + testfile + echo testpalette + testpalette + echo loopwave + loopwave + echo testblitspeed + testblitspeed + echo testkeys + testkeys + echo testcursor + testcursor + echo checkkeys + checkkeys + echo testgamma + testgamma + echo testplatform + testplatform + echo testcdrom + testcdrom + echo testloadso + testloadso + echo testwim + testwin + echo testsem + testsem + echo testlock + testlock +} + +LICENSE="GNU LGPL v2.1" +COPYRIGHT="1997-2012 Sam Lantinga" diff --git a/media-libs/libsdl/libsdl-1.3-gsoc.bep b/media-libs/libsdl/libsdl-1.3-gsoc.bep new file mode 100644 index 000000000..7d5af823c --- /dev/null +++ b/media-libs/libsdl/libsdl-1.3-gsoc.bep @@ -0,0 +1,33 @@ +DESCRIPTION="Simple Direct Media Layer" +HOMEPAGE="http://www.libsdl.org/" +SRC_URI="hg+http://bitbucket.org/antifinidictor/haiku-sdl-1.3" +#CHECKSUM_MD5="e52086d1b508fa0b76c52ee30b55bec4" +REVISION="1" +STATUS_HAIKU="broken" +MESSAGE="This is a work in progress and not ready for release." +DEPEND="" +BUILD { + cd libsdl-1.3-gsoc + ./autogen.sh + MANDIR=`finddir B_COMMON_DOCUMENTATION_DIRECTORY`/man + LIBDIR=`finddir B_COMMON_LIB_DIRECTORY` + ./configure --prefix=`finddir B_COMMON_DIRECTORY` \ + --libdir=$LIBDIR \ + --mandir=$MANDIR + make +} + +INSTALL { + cd libsdl-1.3-gsoc + make install +} + +TEST { + cd libsdl-1.3-gsoc/test + ./autogen + ./configure + make +} + +LICENSE="Zlib" +COPYRIGHT="1997-2011 Sam Lantinga" diff --git a/media-libs/libsdl/libsdl-1.3-hg.bep b/media-libs/libsdl/libsdl-1.3-hg.bep deleted file mode 100644 index 37763a8ee..000000000 --- a/media-libs/libsdl/libsdl-1.3-hg.bep +++ /dev/null @@ -1,29 +0,0 @@ -DESCRIPTION="Simple Direct Media Layer" -HOMEPAGE="http://www.libsdl.org/" -SRC_URI="hg+http://hg.libsdl.org/SDL" -#CHECKSUM_MD5="e52086d1b508fa0b76c52ee30b55bec4" -REVISION="1" -STATUS_HAIKU="broken" -MESSAGE="bwindow support does not yet exist for libsdl-1.3, patches welcome" -DEPEND="" -BUILD { - cd libsdl-1.3-hg - ./autogen.sh - MANDIR=`finddir B_COMMON_DOCUMENTATION_DIRECTORY`/man - if [ -n "$(setgcc | grep '2')" ]; then - LIBDIR=`finddir B_COMMON_LIB_DIRECTORY` - else - LIBDIR=`finddir B_COMMON_LIB_DIRECTORY`/gcc4 - fi - ./configure --prefix=`finddir B_COMMON_DIRECTORY` \ - --libdir=$LIBDIR \ - --mandir=$MANDIR - make -} - -INSTALL { - cd libsdl-1.3-hg - make install -} -LICENSE="GNU LGPL v2.1" -COPYRIGHT="1997-2010 Sam Lantinga" diff --git a/media-libs/libsdl/libsdl-2.0-hg-cmake.bep b/media-libs/libsdl/libsdl-2.0-hg-cmake.bep new file mode 100644 index 000000000..5ff197a01 --- /dev/null +++ b/media-libs/libsdl/libsdl-2.0-hg-cmake.bep @@ -0,0 +1,28 @@ +DESCRIPTION="Simple Direct Media Layer" +HOMEPAGE="http://www.libsdl.org/" +SRC_URI="hg+http://hg.libsdl.org/SDL" +#CHECKSUM_MD5="e52086d1b508fa0b76c52ee30b55bec4" +REVISION="1" +STATUS_HAIKU="unstable" +DEPEND="" +BUILD { + cd libsdl-2.0-hg-cmake +# MANDIR=`finddir B_COMMON_DOCUMENTATION_DIRECTORY`/man +# LIBDIR=`finddir B_COMMON_LIB_DIRECTORY` +# DATADIR=`finddir B_COMMON_DATA_DIRECTORY` +# mkdir build_haiku +# cd build_haiku +# ../configure --prefix=`finddir B_COMMON_DIRECTORY` \ +# --libdir=$LIBDIR \ +# --mandir=$MANDIR \ +# --datadir=$DATADIR + cmake . + make +} + +INSTALL { + cd libsdl-2.0-hg-cmake + make install +} +LICENSE="Zlib" +COPYRIGHT="1997-2013 Sam Lantinga" diff --git a/media-libs/libsdl/libsdl-2.0-hg.bep b/media-libs/libsdl/libsdl-2.0-hg.bep new file mode 100644 index 000000000..502f3163f --- /dev/null +++ b/media-libs/libsdl/libsdl-2.0-hg.bep @@ -0,0 +1,27 @@ +DESCRIPTION="Simple Direct Media Layer" +HOMEPAGE="http://www.libsdl.org/" +SRC_URI="hg+http://hg.libsdl.org/SDL" +#CHECKSUM_MD5="e52086d1b508fa0b76c52ee30b55bec4" +REVISION="1" +STATUS_HAIKU="unstable" +DEPEND="" +BUILD { + cd libsdl-2.0-hg + MANDIR=`finddir B_COMMON_DOCUMENTATION_DIRECTORY`/man + LIBDIR=`finddir B_COMMON_LIB_DIRECTORY` + DATADIR=`finddir B_COMMON_DATA_DIRECTORY` + mkdir build_haiku + cd build_haiku + ../configure --prefix=`finddir B_COMMON_DIRECTORY` \ + --libdir=$LIBDIR \ + --mandir=$MANDIR \ + --datadir=$DATADIR + make +} + +INSTALL { + cd libsdl-2.0-hg/build_haiku + make install +} +LICENSE="Zlib" +COPYRIGHT="1997-2012 Sam Lantinga" diff --git a/media-libs/libsdl/patches/libsdl-1.2-hg.patch b/media-libs/libsdl/patches/libsdl-1.2-hg.patch index 9cd66e8a5..acc475381 100644 --- a/media-libs/libsdl/patches/libsdl-1.2-hg.patch +++ b/media-libs/libsdl/patches/libsdl-1.2-hg.patch @@ -1,38 +1,51 @@ -diff -r 930614179450 libsdl-1.2-hg/src/video/bwindow/SDL_BWin.h ---- libsdl-1.2-hg/src/video/bwindow/SDL_BWin.h Fri Dec 03 16:55:25 2010 -0800 -+++ libsdl-1.2-hg-haiku/src/video/bwindow/SDL_BWin.h Thu Dec 23 09:38:48 2010 +0000 -@@ -113,7 +113,9 @@ - SDL_GLView = new BGLView(Bounds(), "SDL GLView", - B_FOLLOW_ALL_SIDES, (B_WILL_DRAW|B_FRAME_EVENTS), - gl_flags); -- SDL_GLView->EnableDirectMode(true); -+ //TODO: Figure out why directmode isn't working -+ //SDL_GLView->EnableDirectMode(true); -+ SDL_GLView->EnableDirectMode(false); - } - if ( the_view != SDL_GLView ) { - if ( the_view ) { -@@ -133,17 +135,17 @@ - } - if ( the_view != SDL_View ) { - if ( the_view ) { --#if SDL_VIDEO_OPENGL -- if ( the_view == SDL_GLView ) { -- SDL_GLView->UnlockGL(); -- } --#endif - RemoveChild(the_view); - } - AddChild(SDL_View); - the_view = SDL_View; - } - } -+#if SDL_VIDEO_OPENGL -+ if ( the_view == SDL_GLView ) { -+ SDL_GLView->UnlockGL(); -+ } -+#endif - Unlock(); - return(retval); - } - +--- libsdl-1.2-hg/src/audio/baudio/SDL_beaudio.cc dim. nov. 04 19:07:49 2012 +0100 ++++ b/src/audio/baudio/SDL_beaudio.cc mar. janv. 01 22:41:22 2013 +0100 +@@ -199,11 +199,11 @@ + return (-1); + } + +- format.buffer_size = spec->samples; +- + /* Calculate the final parameters for this audio specification */ + SDL_CalculateAudioSpec(spec); + ++ format.buffer_size = spec->size; ++ + /* Subscribe to the audio stream (creates a new thread) */ + { sigset_t omask; + SDL_MaskSignals(&omask); + return (-1); + } +diff -r 9cff1c7c0fff src/video/bwindow/SDL_sysvideo.cc +--- libsdl-1.2-hg/src/video/bwindow/SDL_sysvideo.cc dim. juin 03 05:03:45 2012 -0400 ++++ b/src/video/bwindow/SDL_sysvideo.cc sam. juin 09 11:01:28 2012 +0200 +@@ -456,14 +456,6 @@ + // printf("Going windowed\n"); + SDL_Win->SetFullScreen(fullscreen); + +- // Calculate offsets for centering the window (in window mode) and for +- // dentering the bitmap (in full screen mode). +- BRect bounds = bscreen.Frame(); +- bounds.PrintToStream(); +- int32 cx = (bounds.IntegerWidth() - width)/2; +- int32 cy = (bounds.IntegerHeight() - height)/2; +- +- // printf ("cx = %d, cy = %d\n", cx, cy); + if (!SDL_Win->IsFullScreen()) { + // printf("Doing not fullscreen stuff.\n"); + // We are not in full screen mode, so we want to change the window +@@ -471,9 +463,13 @@ + SDL_Win->ResizeTo(width, height); + + // And also center the window and reset the drawing offset. +- SDL_Win->MoveTo(cx, cy); + SDL_Win->SetXYOffset(0, 0); + } else { ++ // Calculate offsets for centering the bitmap ++ BRect bounds = bscreen.Frame(); ++ int32 cx = (bounds.IntegerWidth() - width)/2; ++ int32 cy = (bounds.IntegerHeight() - height)/2; ++ + // printf("Doing fullscreen stuff."); + // Center the bitmap whenever we are in full screen mode. + SDL_Win->SetXYOffset(cx, cy); diff --git a/media-libs/libsdl/sdl-config b/media-libs/libsdl/sdl-config new file mode 100644 index 000000000..7e19ca3a8 --- /dev/null +++ b/media-libs/libsdl/sdl-config @@ -0,0 +1,77 @@ +#!/bin/sh + +libDir=`finddir B_SYSTEM_LIB_DIRECTORY` + +# Determine which GCC we're running +if [ -f "$libDir"/libsupc++.so ] ; then + HAIKU_GCC_VERSION=4 +else + HAIKU_GCC_VERSION=2 +fi + +SETGCC_OUTPUT=`setgcc` +CURRENT_COMPILER=${SETGCC_OUTPUT: -1:1} + +if [ $CURRENT_COMPILER == $HAIKU_GCC_VERSION ] ; then + libdir=`finddir B_COMMON_LIB_DIRECTORY` +else + libdir=`finddir B_COMMON_LIB_DIRECTORY`/gcc$CURRENT_COMPILER +fi + +prefix=/boot/common +exec_prefix=${prefix} +exec_prefix_set=no + +#usage="\ +#Usage: sdl-config [--prefix[=DIR]] [--exec-prefix[=DIR]] [--version] [--cflags] [--libs]" +usage="\ +Usage: sdl-config [--prefix[=DIR]] [--exec-prefix[=DIR]] [--version] [--cflags] [--libs] [--static-libs]" + +if test $# -eq 0; then + echo "${usage}" 1>&2 + exit 1 +fi + +while test $# -gt 0; do + case "$1" in + -*=*) optarg=`echo "$1" | LC_ALL="C" sed 's/[-_a-zA-Z0-9]*=//'` ;; + *) optarg= ;; + esac + + case $1 in + --prefix=*) + prefix=$optarg + if test $exec_prefix_set = no ; then + exec_prefix=$optarg + fi + ;; + --prefix) + echo $prefix + ;; + --exec-prefix=*) + exec_prefix=$optarg + exec_prefix_set=yes + ;; + --exec-prefix) + echo $exec_prefix + ;; + --version) + echo 1.2.15 + ;; + --cflags) + echo -I${prefix}/include/SDL -D_GNU_SOURCE=1 + ;; +# --libs) +# echo -L$libdir -lSDL +# ;; +# --static-libs) + --libs|--static-libs) + echo -L$libdir -lSDL -liconv -lGL -lroot -lbe -lmedia -lgame -ldevice -ltextencoding + ;; + *) + echo "${usage}" 1>&2 + exit 1 + ;; + esac + shift +done diff --git a/media-libs/libsndfile/libsndfile-1.0.21.bep b/media-libs/libsndfile/libsndfile-1.0.21.bep index 0cb0eae0a..9558dd293 100644 --- a/media-libs/libsndfile/libsndfile-1.0.21.bep +++ b/media-libs/libsndfile/libsndfile-1.0.21.bep @@ -1,6 +1,6 @@ DESCRIPTION="Libsndfile is a C library for reading and writing files containing sampled sound" HOMEPAGE="http://www.mega-nerd.com/libsndfile" -SRC_URI="http://www.mega-nerd.com/libsndfile/files/libsndfile-1.0.21.tar.gz" +SRC_URI="http://ports-space.haiku-files.org/source/libsndfile_1.0.21.orig.tar.gz" CHECKSUM_MD5="880a40ec636ab2185b97f8927299b292" REVISION="1" MESSAGE="This port only builds with gcc4. Use 'setgcc gcc4' before building." @@ -13,18 +13,17 @@ DEPEND="media-libs/flac >= 1.2.1 BUILD { cd libsndfile-1.0.21 rm aclocal.m4 - cp /boot/common/share/aclocal/libtool.m4 M4 - cp /boot/common/share/aclocal/ltoptions.m4 M4 - cp /boot/common/share/aclocal/ltversion.m4 M4 - cp /boot/common/share/aclocal/ltsugar.m4 M4 - cp /boot/common/share/aclocal/lt~obsolete.m4 M4 echo "AC_CONFIG_MACRO_DIR([M4]) >> configure.in" libtoolize --force --copy --install - aclocal -I M4 + aclocal --install -I M4 + sed -i 's/htmldocdir=$prefix\/share\/doc\/libsndfile1-dev\/html/htmldocdir=`finddir B_COMMON_DOCUMENTATION_DIRECTORY`\/doc\/libsndfile1-dev\/html/' configure.ac autoconf autoheader automake - ./configure --prefix=/boot/common + COMMON_DOCS=`finddir B_COMMON_DOCUMENTATION_DIRECTORY` + export htmldocdir=$COMMON_DOCS/doc/libsndfile-dev/html + ./configure --prefix=`finddir B_COMMON_DIRECTORY` \ + --mandir=$COMMON_DOCS/man make } diff --git a/media-libs/libsvgtiny/libsvgtiny-0-HEAD.bep b/media-libs/libsvgtiny/libsvgtiny-0-HEAD.bep new file mode 100644 index 000000000..341c1439c --- /dev/null +++ b/media-libs/libsvgtiny/libsvgtiny-0-HEAD.bep @@ -0,0 +1,22 @@ +DESCRIPTION="Libsvgtiny is an implementation of SVG Tiny written in C" +HOMEPAGE="http://www.netsurf-browser.org/projects/libsvgtiny" +SRC_URI="git://git.netsurf-browser.org/libsvgtiny.git" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="dev-libs/libxml2 >= 2.7.7 + dev-util/gperf >= 3.0.4 + dev-util/buildsystem >= 0 + dev-libs/libwapcaplet >= 0.1.1-HEAD + net-libs/libdom >= 0" +#CHECKSUM_MD5="" +BUILD { + cd libsvgtiny-0-HEAD + make PREFIX=/boot/common +} + +INSTALL { + cd libsvgtiny-0-HEAD + make install PREFIX=/boot/common +} +LICENSE="MIT" +COPYRIGHT="2003-2012 The NetSurf Developers" diff --git a/media-libs/libtheora/libtheora-1.1.1.bep b/media-libs/libtheora/libtheora-1.1.1.bep index bd849b7f1..922a87a52 100644 --- a/media-libs/libtheora/libtheora-1.1.1.bep +++ b/media-libs/libtheora/libtheora-1.1.1.bep @@ -3,18 +3,17 @@ HOMEPAGE="http://www.theora.org/" SRC_URI="http://downloads.xiph.org/releases/theora/libtheora-1.1.1.tar.bz2" REVISION="1" STATUS_HAIKU="stable" -DEPEND="" +DEPEND="media-libs/libogg >= 1.2.0 + media-libs/libvorbis >= 1.3.0" CHECKSUM_MD5="292ab65cedd5021d6b7ddd117e07cd8e" BUILD { cd libtheora-1.1.1 libtoolize --force --copy --install aclocal -I m4 autoconf - MANDIR=`finddir B_COMMON_DOCUMENTATION_DIRECTORY`/man - LIBDIR=`finddir B_COMMON_LIB_DIRECTORY` + COMMON_DOCS=`finddir B_COMMON_DOCUMENTATION_DIRECTORY` ./configure --prefix=`finddir B_COMMON_DIRECTORY` \ - --libdir=$LIBDIR \ - --mandir=$MANDIR \ + --datarootdir=$COMMON_DOCS \ --disable-asm make } diff --git a/media-libs/libvorbis/libvorbis-1.2.3.bep b/media-libs/libvorbis/libvorbis-1.2.3.bep index 8673e98af..cf406657e 100644 --- a/media-libs/libvorbis/libvorbis-1.2.3.bep +++ b/media-libs/libvorbis/libvorbis-1.2.3.bep @@ -9,15 +9,10 @@ BUILD { cd libvorbis-1.2.3 libtoolize --force --copy --install mkdir -p m4 - cp /boot/common/share/aclocal/libtool.m4 m4 - cp /boot/common/share/aclocal/ltoptions.m4 m4 - cp /boot/common/share/aclocal/ltversion.m4 m4 - cp /boot/common/share/aclocal/ltsugar.m4 m4 - cp /boot/common/share/aclocal/lt~obsolete.m4 m4 - aclocal -I m4 + aclocal --install -I m4 autoconf automake - ./configure --prefix=/boot/common + ./configure --prefix=`finddir B_COMMON_DIRECTORY` make } @@ -25,5 +20,6 @@ INSTALL { cd libvorbis-1.2.3 make install } + LICENSE="BSD (3-clause)" COPYRIGHT="1994-2010 Xiph.Org Foundation" diff --git a/media-libs/libvorbis/libvorbis-1.3.1.bep b/media-libs/libvorbis/libvorbis-1.3.1.bep index 9be00e826..b618fa7a6 100644 --- a/media-libs/libvorbis/libvorbis-1.3.1.bep +++ b/media-libs/libvorbis/libvorbis-1.3.1.bep @@ -10,15 +10,10 @@ BUILD { cd libvorbis-1.3.1 libtoolize --force --copy --install mkdir -p m4 - cp /boot/common/share/aclocal/libtool.m4 m4 - cp /boot/common/share/aclocal/ltoptions.m4 m4 - cp /boot/common/share/aclocal/ltversion.m4 m4 - cp /boot/common/share/aclocal/ltsugar.m4 m4 - cp /boot/common/share/aclocal/lt~obsolete.m4 m4 - aclocal -I m4 + aclocal --install -I m4 autoconf automake - ./configure --prefix=/boot/common + ./configure --prefix=`finddir B_COMMON_DIRECTORY` make } diff --git a/media-libs/libvorbis/libvorbis-1.3.2.bep b/media-libs/libvorbis/libvorbis-1.3.2.bep index 4bef031cb..b2c084782 100644 --- a/media-libs/libvorbis/libvorbis-1.3.2.bep +++ b/media-libs/libvorbis/libvorbis-1.3.2.bep @@ -8,17 +8,15 @@ DEPEND="dev-util/pkgconfig >= 0.23 media-libs/libogg >= 1.2.0" BUILD { cd libvorbis-1.3.2 - libtoolize --force --copy --install + libtoolize -fci mkdir -p m4 - cp /boot/common/share/aclocal/libtool.m4 m4 - cp /boot/common/share/aclocal/ltoptions.m4 m4 - cp /boot/common/share/aclocal/ltversion.m4 m4 - cp /boot/common/share/aclocal/ltsugar.m4 m4 - cp /boot/common/share/aclocal/lt~obsolete.m4 m4 - aclocal -I m4 + aclocal --install -I m4 autoconf automake - ./configure --prefix=/boot/common + sed -i 's/-lvorbis -lm/-lvorbis/' vorbis.pc.in + COMMON_DOCS=`finddir B_COMMON_DOCUMENTATION_DIRECTORY` + ./configure --prefix=`finddir B_COMMON_DIRECTORY` \ + --datarootdir=$COMMON_DOCS make } diff --git a/media-libs/libvpx/libvpx-0.9.2-git.bep b/media-libs/libvpx/libvpx-0.9.2-git.bep index d18144221..9eb7d31d4 100644 --- a/media-libs/libvpx/libvpx-0.9.2-git.bep +++ b/media-libs/libvpx/libvpx-0.9.2-git.bep @@ -6,7 +6,7 @@ STATUS_HAIKU="stable" DEPEND="" BUILD { cd libvpx-0.9.2-git - ./configure --prefix=/boot/common \ + ./configure --prefix=`finddir B_COMMON_DIRECTORY` \ --enable-pic \ --enable-vp8 make diff --git a/media-libs/libvpx/libvpx-1.0.0.bep b/media-libs/libvpx/libvpx-1.0.0.bep new file mode 100644 index 000000000..ce97faebd --- /dev/null +++ b/media-libs/libvpx/libvpx-1.0.0.bep @@ -0,0 +1,24 @@ +DESCRIPTION="libvpx - WebM VP8 Codec SDK" +HOMEPAGE="http://www.webmproject.org" +SRC_URI="http://webm.googlecode.com/files/libvpx-v1.0.0.tar.bz2" +CHECKSUM_MD5="d987b5140412edd37d2c6b10c29ad484" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="" +BUILD { + cd libvpx-v1.0.0 + ./configure --prefix=`finddir B_COMMON_DIRECTORY` \ + --enable-pic \ + --enable-vp8 + make +} + +INSTALL { + cd libvpx-v1.0.0 + make install +} + +LICENSE="BSD (3-clause)" +COPYRIGHT="2009-2012 Google Inc., + The Mozilla Foundation and + The Xiph.Org Foundation" diff --git a/media-libs/libvpx/patches/libvpx-1.0.0.patch b/media-libs/libvpx/patches/libvpx-1.0.0.patch new file mode 100644 index 000000000..da04b72ff --- /dev/null +++ b/media-libs/libvpx/patches/libvpx-1.0.0.patch @@ -0,0 +1,66 @@ +diff -ruN libvpx-v1.0.0/build/make/configure.sh libvpx-v1.0.0-haiku/build/make/configure.sh +--- libvpx-v1.0.0/build/make/configure.sh 2012-01-27 18:36:39.038535168 +0000 ++++ libvpx-v1.0.0-haiku/build/make/configure.sh 2012-03-14 00:47:54.780926976 +0000 +@@ -579,6 +579,9 @@ + *solaris2.10) + tgt_os=solaris + ;; ++ *haiku*) ++ tgt_os=haiku ++ ;; + esac + + if [ -n "$tgt_isa" ] && [ -n "$tgt_os" ]; then +@@ -909,8 +912,8 @@ + esac + ;; + gcc*) +- add_cflags -m${bits} +- add_ldflags -m${bits} ++ enabled haiku || add_cflags -m${bits} ++ enabled haiku || add_ldflags -m${bits} + link_with_cc=gcc + tune_cflags="-march=" + setup_gnu_toolchain +@@ -939,7 +942,7 @@ + add_asflags -f x64 + enabled debug && add_asflags -g cv8 + ;; +- linux*|solaris*) ++ linux*|solaris*|haiku*) + add_asflags -f elf${bits} + enabled debug && [ "${AS}" = yasm ] && add_asflags -g dwarf2 + enabled debug && [ "${AS}" = nasm ] && add_asflags -g +@@ -1019,6 +1022,7 @@ + case ${toolchain} in + *-win*);; + *-android-gcc);; ++ *-haiku*);; + *) check_header pthread.h && add_extralibs -lpthread + esac + fi +diff -ruN libvpx-v1.0.0/configure libvpx-v1.0.0-haiku/configure +--- libvpx-v1.0.0/configure 2012-01-27 18:36:39.039583744 +0000 ++++ libvpx-v1.0.0-haiku/configure 2012-03-14 00:46:37.182976512 +0000 +@@ -107,6 +107,7 @@ + all_platforms="${all_platforms} x86-darwin9-gcc" + all_platforms="${all_platforms} x86-darwin9-icc" + all_platforms="${all_platforms} x86-darwin10-gcc" ++all_platforms="${all_platforms} x86-haiku-gcc" + all_platforms="${all_platforms} x86-linux-gcc" + all_platforms="${all_platforms} x86-linux-icc" + all_platforms="${all_platforms} x86-solaris-gcc" +diff -ruN libvpx-v1.0.0/examples.mk libvpx-v1.0.0-haiku/examples.mk +--- libvpx-v1.0.0/examples.mk 2012-01-27 18:36:39.040108032 +0000 ++++ libvpx-v1.0.0-haiku/examples.mk 2012-03-14 00:46:37.187432960 +0000 +@@ -113,7 +113,9 @@ + # We should not link to math library (libm) on RVCT + # when building for bare-metal targets + ifeq ($(CONFIG_OS_SUPPORT), yes) +-CODEC_EXTRA_LIBS-$(CONFIG_VP8) += m ++ ifneq ($(TOOLCHAIN),x86-haiku-gcc) ++ CODEC_EXTRA_LIBS-$(CONFIG_VP8) += m ++ endif + else + ifeq ($(CONFIG_GCC), yes) + CODEC_EXTRA_LIBS-$(CONFIG_VP8) += m diff --git a/media-libs/libwebp/libwebp-0.1.2-git.bep b/media-libs/libwebp/libwebp-0.1.2-git.bep new file mode 100644 index 000000000..7ee89fb3a --- /dev/null +++ b/media-libs/libwebp/libwebp-0.1.2-git.bep @@ -0,0 +1,21 @@ +DESCRIPTION="library for encoding and decoding WebP image files" +HOMEPAGE="http://code.google.com/p/webp" +SRC_URI="git+git://review.webmproject.org/libwebp.git" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="" +BUILD { + cd libwebp-0.1.2-git + ./autogen.sh + ./configure --prefix=`finddir B_COMMON_DIRECTORY` \ + --mandir=`finddir B_COMMON_DOCUMENTATION_DIRECTORY`/man + make +} + +INSTALL { + cd libwebp-0.1.2-git + make install +} + +LICENSE="BSD (3-clause)" +COPYRIGHT="2011 Google Inc." diff --git a/media-libs/libwebp/libwebp-0.1.3.bep b/media-libs/libwebp/libwebp-0.1.3.bep new file mode 100644 index 000000000..061e805d0 --- /dev/null +++ b/media-libs/libwebp/libwebp-0.1.3.bep @@ -0,0 +1,22 @@ +DESCRIPTION="library for encoding and decoding WebP image files" +HOMEPAGE="http://code.google.com/p/webp" +SRC_URI="http://webp.googlecode.com/files/libwebp-0.1.3.tar.gz" +CHECKSUM_MD5="254d4670e14e9ed881f0536b006ab336" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="" +BUILD { + cd libwebp-0.1.3 + ./autogen.sh + ./configure --prefix=`finddir B_COMMON_DIRECTORY` \ + --mandir=`finddir B_COMMON_DOCUMENTATION_DIRECTORY`/man + make +} + +INSTALL { + cd libwebp-0.1.3 + make install +} + +LICENSE="BSD (3-clause)" +COPYRIGHT="2011 Google Inc." diff --git a/media-libs/lv2/lv2-1.2.0.bep b/media-libs/lv2/lv2-1.2.0.bep new file mode 100644 index 000000000..d422249be --- /dev/null +++ b/media-libs/lv2/lv2-1.2.0.bep @@ -0,0 +1,29 @@ +DESCRIPTION="portable plugin standard for audio systems" +MESSAGE="Graphviz must be installed before installation of doxygen." +HOMEPAGE="http://lv2plug.in" +SRC_URI="http://lv2plug.in/spec/lv2-1.2.0.tar.bz2" +CHECKSUM_MD5="323b851563b4da1ad2c0faf5c76f0e3a" +REVISION="1" +STATUS_HAIKU="untested" +DEPEND="app-doc/doxygen>=1.6.1 + media-gfx/graphviz>=2.24 + media-libs/libsndfile>=1.0.21 + dev-python/rdflib>=3.2.0 + dev-python/pyxml>=0.8.4" +BUILD { + cd lv2-1.2.0 + sed -e '1,2s:/usr/bin/env:/bin/env:g' waf > waf2 + cp waf2 waf + rm waf2 + ./waf configure --prefix=`finddir B_COMMON_DIRECTORY` \ + --mandir=`finddir B_COMMON_DOCUMENTATION_DIRECTORY`/man \ + --docdir=`finddir B_COMMON_DOCUMENTATION_DIRECTORY`/doc + ./waf build +} + +INSTALL { + cd lv2-1.2.0 + ./waf install +} +LICENSE="Public Domain" +COPYRIGHT="2006-2012 Steve Harris, David Robillard" diff --git a/media-libs/mediainfo/mediainfo-0.7.61.bep b/media-libs/mediainfo/mediainfo-0.7.61.bep new file mode 100644 index 000000000..ba77d79b4 --- /dev/null +++ b/media-libs/mediainfo/mediainfo-0.7.61.bep @@ -0,0 +1,24 @@ +DESCRIPTION="MediaInfo is a convenient unified display of the most relevant technical and tag data for video and audio files." +HOMEPAGE="http://mediainfo.sourceforge.net/" +SRC_URI="http://mediaarea.net/download/binary/mediainfo/0.7.61/MediaInfo_CLI_0.7.61_GNU_FromSource.tar.bz2" +CHECKSUM_MD5="20adddbf70fb947799955ebc21132849" +REVISION="1" +STATUS_HAIKU="stable" +MESSAGE="This port only builds with gcc4. Use 'setgcc gcc4' before building." +DEPEND="" +BUILD { + cd MediaInfo_CLI_GNU_FromSource + + cp `finddir B_COMMON_DATA_DIRECTORY`/libtool/config/config.* ZenLib/Project/GNU/Library + cp `finddir B_COMMON_DATA_DIRECTORY`/libtool/config/config.* MediaInfoLib/Project/GNU/Library + cp `finddir B_COMMON_DATA_DIRECTORY`/libtool/config/config.* MediaInfo/Project/GNU/CLI + + ./CLI_Compile.sh +} + +INSTALL { + cd MediaInfo_CLI_GNU_FromSource/MediaInfo/Project/GNU/CLI + make install prefix=`finddir B_COMMON_DIRECTORY` +} +LICENSE="GNU LGPL v2.1" +COPYRIGHT="2002-2012 MediaArea.net SARL. All rights reserved." diff --git a/media-libs/mediainfo/patches/mediainfo-0.7.61.patch b/media-libs/mediainfo/patches/mediainfo-0.7.61.patch new file mode 100644 index 000000000..49b839ab0 --- /dev/null +++ b/media-libs/mediainfo/patches/mediainfo-0.7.61.patch @@ -0,0 +1,91 @@ +diff -Naur MediaInfo_CLI_GNU_FromSource/MediaInfoLib/Project/GNU/Library/libmediainfo.pc.in MediaInfo_CLI_GNU_FromSource-haiku/MediaInfoLib/Project/GNU/Library/libmediainfo.pc.in +--- MediaInfo_CLI_GNU_FromSource/MediaInfoLib/Project/GNU/Library/libmediainfo.pc.in 2012-10-21 21:32:39.055050240 +0000 ++++ MediaInfo_CLI_GNU_FromSource-haiku/MediaInfoLib/Project/GNU/Library/libmediainfo.pc.in 2012-12-03 20:00:08.240123904 +0000 +@@ -3,11 +3,11 @@ + libdir=@libdir@ + includedir=@includedir@ + Unicode=@MediaInfoLib_Unicode@ +-Libs_Static=@libdir@/lib@MediaInfoLib_LibName@.a ${libdir}/libzen.a -lpthread -lz ++Libs_Static=@libdir@/lib@MediaInfoLib_LibName@.a ${libdir}/libzen.a -lz + la_name=lib@MediaInfoLib_LibName@.la + + Name: libmediainfo + Version: @PACKAGE_VERSION@ + Description: MediaInfoLib +-Libs: -L@libdir@ -l@MediaInfoLib_LibName@ -lzen -lz -lpthread ++Libs: -L@libdir@ -l@MediaInfoLib_LibName@ -lzen -lz + Cflags: -I@includedir@ @MediaInfoLib_CXXFLAGS@ +diff -Naur MediaInfo_CLI_GNU_FromSource/ZenLib/Project/GNU/Library/configure MediaInfo_CLI_GNU_FromSource-haiku/ZenLib/Project/GNU/Library/configure +--- MediaInfo_CLI_GNU_FromSource/ZenLib/Project/GNU/Library/configure 2012-10-21 21:32:46.003670016 +0000 ++++ MediaInfo_CLI_GNU_FromSource-haiku/ZenLib/Project/GNU/Library/configure 2012-12-03 20:00:08.639893504 +0000 +@@ -19110,8 +19110,8 @@ + fi + + +-ZenLib_LIBS="-L$(pwd) -lzen -lpthread -lstdc++ $ZenLib_LIBS" +-ZenLib_LIBS_Static="$(pwd)/.libs/libzen.a -lpthread -lstdc++ $ZenLib_LIBS_Static" ++ZenLib_LIBS="-L$(pwd) -lzen -lstdc++ $ZenLib_LIBS" ++ZenLib_LIBS_Static="$(pwd)/.libs/libzen.a -lstdc++ $ZenLib_LIBS_Static" + + + if test "$enable_wstring_missing" = "yes"; then +@@ -19288,7 +19288,7 @@ + fi + fi + +-LDFLAGS="$LDFLAGS -lpthread -lstdc++" ++LDFLAGS="$LDFLAGS -lstdc++" + + + +diff -Naur MediaInfo_CLI_GNU_FromSource/ZenLib/Project/GNU/Library/configure.ac MediaInfo_CLI_GNU_FromSource-haiku/ZenLib/Project/GNU/Library/configure.ac +--- MediaInfo_CLI_GNU_FromSource/ZenLib/Project/GNU/Library/configure.ac 2012-10-21 21:32:46.002359296 +0000 ++++ MediaInfo_CLI_GNU_FromSource-haiku/ZenLib/Project/GNU/Library/configure.ac 2012-12-03 20:00:08.646184960 +0000 +@@ -122,8 +122,8 @@ + dnl ------------------------------------------------------------------------- + dnl Common + dnl +-ZenLib_LIBS="-L$(pwd) -lzen -lpthread -lstdc++ $ZenLib_LIBS" +-ZenLib_LIBS_Static="$(pwd)/.libs/libzen.a -lpthread -lstdc++ $ZenLib_LIBS_Static" ++ZenLib_LIBS="-L$(pwd) -lzen -lstdc++ $ZenLib_LIBS" ++ZenLib_LIBS_Static="$(pwd)/.libs/libzen.a -lstdc++ $ZenLib_LIBS_Static" + + dnl ######################################################################### + dnl ### C/C++ compiler options used to compile +@@ -221,7 +221,7 @@ + dnl ------------------------------------------------------------------------- + dnl External libs + dnl +-LDFLAGS="$LDFLAGS -lpthread -lstdc++" ++LDFLAGS="$LDFLAGS -lstdc++" + + dnl ######################################################################### + dnl ### Output +diff -Naur MediaInfo_CLI_GNU_FromSource/ZenLib/Project/GNU/Library/libzen.pc.in MediaInfo_CLI_GNU_FromSource-haiku/ZenLib/Project/GNU/Library/libzen.pc.in +--- MediaInfo_CLI_GNU_FromSource/ZenLib/Project/GNU/Library/libzen.pc.in 2012-10-21 21:32:46.003932160 +0000 ++++ MediaInfo_CLI_GNU_FromSource-haiku/ZenLib/Project/GNU/Library/libzen.pc.in 2012-12-03 20:00:08.653262848 +0000 +@@ -4,10 +4,10 @@ + includedir=@includedir@ + Unicode=@ZenLib_Unicode@ + WstringMissing=@ZenLib_wstring_missing@ +-Libs_Static=@libdir@/libzen.a -lpthread ++Libs_Static=@libdir@/libzen.a + + Name: libzen + Version: @PACKAGE_VERSION@ + Description: ZenLib +-Libs: -L@libdir@ -lzen -lpthread -lstdc++ ++Libs: -L@libdir@ -lzen -lstdc++ + Cflags: -I${includedir} @ZenLib_CXXFLAGS@ +diff -Naur MediaInfo_CLI_GNU_FromSource/ZenLib/Source/ZenLib/Conf.h MediaInfo_CLI_GNU_FromSource-haiku/ZenLib/Source/ZenLib/Conf.h +--- MediaInfo_CLI_GNU_FromSource/ZenLib/Source/ZenLib/Conf.h 2012-10-21 21:32:46.000262144 +0000 ++++ MediaInfo_CLI_GNU_FromSource-haiku/ZenLib/Source/ZenLib/Conf.h 2012-12-03 20:29:36.678428672 +0000 +@@ -80,7 +80,7 @@ + || defined(__unix) || defined(__unix__) \ + || defined(____SVR4____) || defined(__LINUX__) || defined(__sgi) \ + || defined(__hpux) || defined(sun) || defined(__SUN__) || defined(_AIX) \ +- || defined(__EMX__) || defined(__VMS) || defined(__BEOS__) ++ || defined(__EMX__) || defined(__VMS) || defined(__BEOS__) || defined(__HAIKU__) + #ifndef UNIX + #define UNIX + #endif diff --git a/media-libs/musicbrainz/musicbrainz-5.0.1.bep b/media-libs/musicbrainz/musicbrainz-5.0.1.bep new file mode 100644 index 000000000..3f00634d5 --- /dev/null +++ b/media-libs/musicbrainz/musicbrainz-5.0.1.bep @@ -0,0 +1,27 @@ +DESCRIPTION="The MusicBrainz Client Library (for accessing the latest XML based web service" +HOMEPAGE="http://musicbrainz.org/doc/libmusicbrainz" +SRC_URI="https://github.com/downloads/metabrainz/libmusicbrainz/libmusicbrainz-5.0.1.tar.gz" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="" +CHECKSUM_MD5="a0406b94c341c2b52ec0fe98f57cadf3" +MESSAGE="This port only builds with gcc4. Use 'setgcc gcc4' before building." + +BUILD { + cd libmusicbrainz-5.0.1 + cmake . + make +} + +INSTALL { + cd libmusicbrainz-5.0.1 + make install +} + +TEST { + cd libmusicbrainz-5.0.1 + make test +} + +LICENSE="GNU LGPL v2.1" +COPYRIGHT="2012 Andrew Hawkins" diff --git a/media-libs/openal/openal-1.13.bep b/media-libs/openal/openal-1.13.bep new file mode 100644 index 000000000..466527faa --- /dev/null +++ b/media-libs/openal/openal-1.13.bep @@ -0,0 +1,23 @@ +DESCRIPTION="OpenAL - A software implementation of the OpenAL 3D audio API" +HOMEPAGE="http://kcat.strangesoft.net/openal.html" +SRC_URI="http://kcat.strangesoft.net/openal-releases/openal-soft-1.13.tar.bz2" +CHECKSUM_MD5="58b7d2809790c70681b825644c5f3614" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="dev-util/cmake >= 2.8.0" + +BUILD { + cd openal-soft-1.13 + cmake . + make +} + +INSTALL { + cd openal-soft-1.13 + make install +} + +LICENSE="GNU LGPL v2.1" +COPYRIGHT="1999-2000 Loki Software + 2005-2011 OpenAL Soft team" + diff --git a/media-libs/openal/patches/openal-1.13.patch b/media-libs/openal/patches/openal-1.13.patch new file mode 100644 index 000000000..634d011b9 --- /dev/null +++ b/media-libs/openal/patches/openal-1.13.patch @@ -0,0 +1,315 @@ +diff -Naur openal-soft-1.13/Alc/ALc.c openal-soft-1.13-haiku/Alc/ALc.c +--- openal-soft-1.13/Alc/ALc.c 2011-02-09 17:52:19.006291456 -0200 ++++ openal-soft-1.13-haiku/Alc/ALc.c 2011-05-02 01:08:32.000000000 -0300 +@@ -60,6 +60,9 @@ + #ifdef HAVE_SOLARIS + { "solaris", alc_solaris_init, alc_solaris_deinit, alc_solaris_probe, EmptyFuncs }, + #endif ++#ifdef HAVE_HAIKU ++ { "haiku", alc_haiku_init, alc_haiku_deinit, alc_haiku_probe, EmptyFuncs }, ++#endif + #ifdef HAVE_DSOUND + { "dsound", alcDSoundInit, alcDSoundDeinit, alcDSoundProbe, EmptyFuncs }, + #endif +diff -Naur openal-soft-1.13/Alc/haiku.cpp openal-soft-1.13-haiku/Alc/haiku.cpp +--- openal-soft-1.13/Alc/haiku.cpp 1969-12-31 21:00:00.000000000 -0300 ++++ openal-soft-1.13-haiku/Alc/haiku.cpp 2011-05-02 01:06:54.000000000 -0300 +@@ -0,0 +1,214 @@ ++/** ++ * OpenAL cross platform audio library ++ * Copyright (C) 1999-2010 by authors. ++ * This library is free software; you can redistribute it and/or ++ * modify it under the terms of the GNU Library General Public ++ * License as published by the Free Software Foundation; either ++ * version 2 of the License, or (at your option) any later version. ++ ++ * This library is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ * Library General Public License for more details. ++ * ++ * You should have received a copy of the GNU Library General Public ++ * License along with this library; if not, write to the ++ * Free Software Foundation, Inc., 59 Temple Place - Suite 330, ++ * Boston, MA 02111-1307, USA. ++ * Or go to http://www.gnu.org/copyleft/lgpl.html ++ */ ++ ++#include "config.h" ++#include ++#include ++#include ++ ++#include "alMain.h" ++#include "AL/al.h" ++#include "AL/alc.h" ++ ++#include ++ ++void alc_haiku_init(BackendFuncs *func_list); ++void alc_haiku_deinit(); ++void alc_haiku_probe(int type); ++ ++static const ALCchar haiku_device[] = "Haiku Software"; ++ ++void alc_haiku_init(BackendFuncs *func_list) ++{ ++ ++ ALCboolean HaikuOpenPlayback(ALCdevice *dev, const ALCchar *devName); ++ void HaikuPlayBufferCb(void *dev /* void *cookie */, void *buffer, size_t buf_sz, const media_raw_audio_format &fmt); ++ void HaikuClosePlayback(ALCdevice *dev); ++ ALCboolean HaikuResetPlayback(ALCdevice *dev); ++ void HaikuStopPlayback(ALCdevice *dev); ++ ++ ALCboolean HaikuOpenCapture(ALCdevice *dev, const ALCchar *devName); ++ void HaikuCloseCapture(ALCdevice *dev); ++ void HaikuStartCapture(ALCdevice *dev); ++ void HaikuStopCapture(ALCdevice *dev); ++ ALCuint HaikuAvailableSamples(ALCdevice *Dev); ++ void HaikuCaptureSamples(ALCdevice *dev, ALCvoid *pBuf, ALCuint lSamples); ++ ++ static BackendFuncs HaikuFuncs = { ++ HaikuOpenPlayback, ++ HaikuClosePlayback, ++ HaikuResetPlayback, ++ HaikuStopPlayback, ++ HaikuOpenCapture, ++ HaikuCloseCapture, ++ HaikuStartCapture, ++ HaikuStopCapture, ++ HaikuCaptureSamples, ++ HaikuAvailableSamples ++ }; ++ ++ ++ *func_list = HaikuFuncs; ++} ++ ++void alc_haiku_deinit() ++{ ++} ++ ++void alc_haiku_probe(int type) ++{ ++#ifdef HAVE_STAT ++ struct stat buf; ++ if(stat(GetConfigValue("haiku", "device", "/dev/audio"), &buf) != 0) ++ return; ++#endif ++ ++ if(type == DEVICE_PROBE) ++ AppendDeviceList(haiku_device); ++ else if(type == ALL_DEVICE_PROBE) ++ AppendAllDeviceList(haiku_device); ++} ++ ++typedef struct { ++ BSoundPlayer *pl; ++ ALCdevice *device; ++ ALuint frameSize; ++} HaikuData; ++ ++ALCboolean HaikuOpenPlayback(ALCdevice *dev, const ALCchar *devName) ++{ ++ void HaikuPlayBufferCb(void *dev /* void *cookie */, void *buffer, size_t buf_sz, const media_raw_audio_format &fmt); ++ ++ if (!devName) ++ devName = haiku_device; ++ else if (strcmp(devName, haiku_device) != 0) ++ return ALC_FALSE; ++ ++ HaikuData *data = new HaikuData; ++ data = (HaikuData*)calloc(1, sizeof(HaikuData)); ++ data->device = dev; ++ dev->szDeviceName = strdup(devName); ++ dev->ExtraData = data; ++ ++ media_raw_audio_format fmt; ++ fmt.frame_rate = dev->Frequency; ++ fmt.channel_count = ChannelsFromDevFmt(dev->FmtChans); ++ switch (dev->FmtType) { ++ case DevFmtByte: fmt.format = fmt.B_AUDIO_CHAR; break; ++ case DevFmtUByte: fmt.format = fmt.B_AUDIO_UCHAR; break; ++ case DevFmtShort: fmt.format = fmt.B_AUDIO_SHORT; break; ++ case DevFmtUShort: ++ delete data; dev->ExtraData = 0; ++ return ALC_FALSE; ++ case DevFmtFloat: fmt.format = fmt.B_AUDIO_FLOAT; break; ++ } ++ { ++ union { ++ char bytes[2]; ++ short data; ++ } test; ++ test.data = 10; ++ if (test.bytes[0] == 10) ++ fmt.byte_order = B_MEDIA_LITTLE_ENDIAN; ++ else ++ fmt.byte_order = B_MEDIA_BIG_ENDIAN; ++ } ++ fmt.buffer_size = 4096; ++ ++ data->pl = new BSoundPlayer(&fmt, "OpenAL sound player", HaikuPlayBufferCb, NULL, dev); ++ if (data->pl->InitCheck() != B_OK) { ++ delete data->pl; ++ delete data; ++ dev->ExtraData = 0; ++ return ALC_FALSE; ++ } ++ data->frameSize = FrameSizeFromDevFmt(dev->FmtChans, dev->FmtType); ++ return ALC_TRUE; ++} ++void HaikuPlayBufferCb(void *cookie, void *buffer, size_t buf_sz, const media_raw_audio_format &fmt) ++{ ++ (void)fmt; ++ ALCdevice *dev = (ALCdevice*)cookie; ++ HaikuData *data = (HaikuData*)dev->ExtraData; ++ aluMixData(dev, buffer, buf_sz / data->frameSize); ++} ++ ++void HaikuClosePlayback(ALCdevice *dev) { ++ HaikuData *data = (HaikuData*)dev->ExtraData; ++ data->pl->Stop(true, true); ++ delete data->pl; ++ delete data; dev->ExtraData = 0; ++} ++ ++ALCboolean HaikuResetPlayback(ALCdevice *dev) ++{ ++ HaikuData *data = (HaikuData*)dev->ExtraData; ++ data->pl->Stop(true, true); ++ ++ ALuint64 bufSize = dev->UpdateSize; ++ bufSize = bufSize / data->frameSize + (bufSize % data->frameSize > 0) ? 1 : 0; // Divide with round up ++ bufSize *= bufSize; ++ dev->UpdateSize = bufSize; ++ ++ data->pl->Start(); ++ return ALC_TRUE; ++} ++ ++void HaikuStopPlayback(ALCdevice *dev) { ++ HaikuData *data = (HaikuData*)dev->ExtraData; ++ data->pl->Stop(true, true); ++ return; ++} ++ ++ALCboolean HaikuOpenCapture(ALCdevice *dev, const ALCchar *devName) ++{ ++ (void)dev; ++ (void)devName; ++ return ALC_FALSE; ++} ++ ++void HaikuCloseCapture(ALCdevice *dev) ++{ ++ (void)dev; ++} ++ ++void HaikuStartCapture(ALCdevice *dev) ++{ ++ (void)dev; ++} ++ ++void HaikuStopCapture(ALCdevice *dev) ++{ ++ (void)dev; ++} ++ ++ALCuint HaikuAvailableSamples(ALCdevice *Dev) ++{ ++ (void)Dev; ++ return 0; ++} ++ ++void HaikuCaptureSamples(ALCdevice *dev, ALCvoid *pBuf, ALCuint lSamples) ++{ ++ (void)dev; ++ (void)pBuf; ++ (void)lSamples; ++} ++ +diff -Naur openal-soft-1.13/CMakeLists.txt openal-soft-1.13-haiku/CMakeLists.txt +--- openal-soft-1.13/CMakeLists.txt 2011-02-15 18:05:40.000000000 -0200 ++++ openal-soft-1.13-haiku/CMakeLists.txt 2011-05-02 01:08:32.000000000 -0300 +@@ -16,10 +16,12 @@ + INCLUDE(CheckSymbolExists) + INCLUDE(CheckCCompilerFlag) + INCLUDE(CheckCSourceCompiles) ++INCLUDE(CheckCXXCompilerFlag) ++INCLUDE(CheckCXXSourceCompiles) + INCLUDE(CheckTypeSize) + + +-PROJECT(OpenAL C) ++PROJECT(OpenAL C CXX) + + + SET(CMAKE_ALLOW_LOOSE_LOOP_CONSTRUCTS TRUE) +@@ -28,6 +30,7 @@ + OPTION(ALSA "Check for ALSA backend" ON) + OPTION(OSS "Check for OSS backend" ON) + OPTION(SOLARIS "Check for Solaris backend" ON) ++OPTION(HAIKU "Check for Haiku backend" ON) + OPTION(DSOUND "Check for DirectSound backend" ON) + OPTION(WINMM "Check for Windows Multimedia backend" ON) + OPTION(PORTAUDIO "Check for PortAudio backend" ON) +@@ -334,6 +337,7 @@ + SET(HAVE_ALSA 0) + SET(HAVE_OSS 0) + SET(HAVE_SOLARIS 0) ++SET(HAVE_HAIKU 0) + SET(HAVE_DSOUND 0) + SET(HAVE_WINMM 0) + SET(HAVE_PORTAUDIO 0) +@@ -378,6 +382,24 @@ + ENDIF() + ENDIF() + ++# Check Haiku backend ++IF(HAIKU) ++ CHECK_CXX_SOURCE_COMPILES("#include ++ int main(void) ++ { ++ BSoundPlayer *player; ++ return 0; ++ } ++ " HAVE_SOUND_PLAYER_H) ++ IF(HAVE_SOUND_PLAYER_H) ++ SET(HAVE_HAIKU 1) ++ SET(ALC_OBJS ${ALC_OBJS} Alc/haiku.cpp) ++ SET(BACKENDS "${BACKENDS} Haiku,") ++ SET(EXTRA_LIBS be ${EXTRA_LIBS}) ++ SET(EXTRA_LIBS media ${EXTRA_LIBS}) ++ ENDIF() ++ENDIF() ++ + # Check DSound/MMSystem backend + IF(DSOUND) + CHECK_INCLUDE_FILE(dsound.h HAVE_DSOUND_H) +diff -Naur openal-soft-1.13/OpenAL32/Include/alMain.h openal-soft-1.13-haiku/OpenAL32/Include/alMain.h +--- openal-soft-1.13/OpenAL32/Include/alMain.h 2011-02-09 17:50:49.001835008 -0200 ++++ openal-soft-1.13-haiku/OpenAL32/Include/alMain.h 2011-05-02 01:08:32.000000000 -0300 +@@ -276,6 +276,9 @@ + void alc_solaris_init(BackendFuncs *func_list); + void alc_solaris_deinit(void); + void alc_solaris_probe(int type); ++void alc_haiku_init(BackendFuncs *func_list); ++void alc_haiku_deinit(void); ++void alc_haiku_probe(int type); + void alcDSoundInit(BackendFuncs *func_list); + void alcDSoundDeinit(void); + void alcDSoundProbe(int type); +diff -Naur openal-soft-1.13/config.h.in openal-soft-1.13-haiku/config.h.in +--- openal-soft-1.13/config.h.in 2010-06-08 05:56:28.066846720 -0300 ++++ openal-soft-1.13-haiku/config.h.in 2011-05-02 01:08:32.000000000 -0300 +@@ -13,6 +13,9 @@ + /* Define if we have the Solaris backend */ + #cmakedefine HAVE_SOLARIS + ++/* Define if we have the Haiku backend */ ++#cmakedefine HAVE_HAIKU ++ + /* Define if we have the DSound backend */ + #cmakedefine HAVE_DSOUND + diff --git a/media-libs/openjpeg/openjpeg-1.3.bep b/media-libs/openjpeg/openjpeg-1.3.bep deleted file mode 100644 index a82c46f45..000000000 --- a/media-libs/openjpeg/openjpeg-1.3.bep +++ /dev/null @@ -1,17 +0,0 @@ -DESCRIPTION="OpenJPEG library is an open-source JPEG 2000 codec written in C language" -HOMEPAGE="http://www.openjpeg.org/" -SRC_URI="http://openjpeg.googlecode.com/files/openjpeg_v1_3.tar.gz" -CHECKSUM_MD5="f9a3ccfa91ac34b589e9bf7577ce8ff9" -REVISION="1" -STATUS_HAIKU="stable" -DEPEND="" -BUILD { - cd OpenJPEG_v1_3 - ./configure --build=i586-pc-beos --prefix=/boot/common - make -} - -INSTALL { - cd OpenJPEG_v1_3 - make install -} diff --git a/media-libs/openjpeg/openjpeg-1.5.0.bep b/media-libs/openjpeg/openjpeg-1.5.0.bep new file mode 100644 index 000000000..63604c945 --- /dev/null +++ b/media-libs/openjpeg/openjpeg-1.5.0.bep @@ -0,0 +1,36 @@ +DESCRIPTION="OpenJPEG is an Open-source C-Library for JPEG 2000" +HOMEPAGE="http://www.openjpeg.org/" +SRC_URI="http://openjpeg.googlecode.com/files/openjpeg-1.5.0.tar.gz" +CHECKSUM_MD5="e5d66193ddfa59a87da1eb08ea86293b" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="" +BUILD { + cd openjpeg-1.5.0 + ./bootstrap.sh + COMMON_DOCS=`finddir B_COMMON_DOCUMENTATION_DIRECTORY` + COMMON_BIN=`finddir B_COMMON_BIN_DIRECTORY` + COMMON_DIR=`finddir B_COMMON_DIRECTORY` + ./configure \ + --prefix=$COMMON_DIR \ + --mandir=$COMMON_DOCS/man \ + --docdir=$COMMON_DOCS/doc/openjpeg \ + --enable-mj2 \ + --enable-jpwl \ + --enable-jpip + make +} + +INSTALL { + cd openjpeg-1.5.0 + make install +} + +LICENSE="BSD (2-clause)" +COPYRIGHT="2002-2012, Communications and Remote Sensing Laboratory, Universite catholique de Louvain (UCL), Belgium + 2002-2012 Professor Benoit Macq + 2003-2012 Antonin Descampe + 2003-2009 Francois-Olivier Devaux + 2005 Herve Drolon, FreeImage Team + 2002-2003 Yannick Verschueren + 2001-2003 David Janssens" diff --git a/media-libs/openjpeg/patches/openjpeg-1.3.patch b/media-libs/openjpeg/patches/openjpeg-1.3.patch deleted file mode 100644 index 16dc3018a..000000000 --- a/media-libs/openjpeg/patches/openjpeg-1.3.patch +++ /dev/null @@ -1,27 +0,0 @@ -diff -Naur OpenJPEG_v1_3/Makefile OpenJPEG_v1_3-haiku/Makefile ---- OpenJPEG_v1_3/Makefile 2007-12-21 10:39:41.000000000 +0000 -+++ OpenJPEG_v1_3-haiku/Makefile 2009-11-03 21:15:52.000000000 +0000 -@@ -11,7 +11,7 @@ - CC = gcc - AR = ar - --PREFIX = /usr -+PREFIX = /boot/common - INSTALL_LIBDIR = $(PREFIX)/lib - INSTALL_INCLUDE = $(PREFIX)/include - -@@ -58,11 +58,11 @@ - - install: OpenJPEG - install -d '$(DESTDIR)$(INSTALL_LIBDIR)' '$(DESTDIR)$(INSTALL_INCLUDE)' -- install -m 644 -o root -g root $(STATICLIB) '$(DESTDIR)$(INSTALL_LIBDIR)' -+ install -m 644 -o baron -g users $(STATICLIB) '$(DESTDIR)$(INSTALL_LIBDIR)' - ranlib '$(DESTDIR)$(INSTALL_LIBDIR)/$(STATICLIB)' -- install -m 755 -o root -g root $(SHAREDLIB) '$(DESTDIR)$(INSTALL_LIBDIR)' -+ install -m 755 -o baron -g users $(SHAREDLIB) '$(DESTDIR)$(INSTALL_LIBDIR)' - ln -sf $(SHAREDLIB) '$(DESTDIR)$(INSTALL_LIBDIR)/$(LIBNAME)' -- install -m 644 -o root -g root libopenjpeg/openjpeg.h '$(DESTDIR)$(INSTALL_INCLUDE)' -+ install -m 644 -o baron -g users libopenjpeg/openjpeg.h '$(DESTDIR)$(INSTALL_INCLUDE)' - -ldconfig - - clean: diff --git a/media-libs/plib/plib-1.8.5.bep b/media-libs/plib/plib-1.8.5.bep index cf223871e..460ce966e 100644 --- a/media-libs/plib/plib-1.8.5.bep +++ b/media-libs/plib/plib-1.8.5.bep @@ -10,7 +10,7 @@ BUILD { cd plib-1.8.5 libtoolize --force --copy --install ./autogen.sh - ./configure --prefix=/boot/common + ./configure --prefix=`finddir B_COMMON_DIRECTORY` make } diff --git a/media-libs/schroedinger/patches/schroedinger-1.0.11.patch b/media-libs/schroedinger/patches/schroedinger-1.0.11.patch new file mode 100644 index 000000000..c495e9017 --- /dev/null +++ b/media-libs/schroedinger/patches/schroedinger-1.0.11.patch @@ -0,0 +1,13 @@ +--- schroedinger-1.0.11/configure.ac 2012-01-23 01:32:45.012320768 +0000 ++++ schroedinger-1.0.11-haiku/configure.ac 2012-04-09 11:35:40.101187584 +0000 +@@ -85,6 +85,10 @@ + PTHREAD_CFLAGS= + PTHREAD_LIBS=-pthread + ;; ++ haiku*) ++ PTHREAD_CFLAGS= ++ PTHREAD_LIBS= ++ ;; + *) + PTHREAD_CFLAGS= + PTHREAD_LIBS=-lpthread diff --git a/media-libs/schroedinger/schroedinger-1.0.11.bep b/media-libs/schroedinger/schroedinger-1.0.11.bep new file mode 100644 index 000000000..94cee4162 --- /dev/null +++ b/media-libs/schroedinger/schroedinger-1.0.11.bep @@ -0,0 +1,25 @@ +DESCRIPTION="Schroedinger Dirac Video codec" +HOMEPAGE="http://www.diracvideo.org" +SRC_URI="http://diracvideo.org/download/schroedinger/schroedinger-1.0.11.tar.gz" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="dev-util/pkg-config >= 0.23 + dev-lang/orc >= 0.4.16" +CHECKSUM_MD5="da6af08e564ca1157348fb8d92efc891" +BUILD { + cd schroedinger-1.0.11 + autoconf + COMMON_DOCS=`finddir B_COMMON_DOCUMENTATION_DIRECTORY` + ./configure --prefix=`finddir B_COMMON_DIRECTORY` \ + --datadir=`finddir B_COMMON_DATA_DIRECTORY` \ + --mandir=$COMMON_DOCS/man + make +} + +INSTALL { + cd schroedinger-1.0.11 + make install +} + +LICENSE="MIT" +COPYRIGHT="2006 BBC and Fluendo" diff --git a/media-libs/sdl-gfx/sdl-gfx-2.0.23.bep b/media-libs/sdl-gfx/sdl-gfx-2.0.23.bep new file mode 100644 index 000000000..44752b346 --- /dev/null +++ b/media-libs/sdl-gfx/sdl-gfx-2.0.23.bep @@ -0,0 +1,27 @@ +DESCRIPTION="SDL_gfx - SDL graphics drawing primitives and other support functions" +HOMEPAGE="http://www.ferzkopp.net/joomla/content/view/19/14/" +SRC_URI="http://www.ferzkopp.net/Software/SDL_gfx-2.0/SDL_gfx-2.0.23.tar.gz" +CHECKSUM_MD5="fcc3c4f2d1b4943409bf7e67dd65d03a" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="media-libs/libsdl >= 1.2.14" +BUILD { + cd SDL_gfx-2.0.23 + libtoolize --force --copy --install + aclocal + autoconf + automake + MANDIR=`finddir B_COMMON_DOCUMENTATION_DIRECTORY`/man + LIBDIR=`finddir B_COMMON_LIB_DIRECTORY` + ./configure --prefix=`finddir B_COMMON_DIRECTORY` \ + --libdir=$LIBDIR \ + --mandir=$MANDIR + make +} + +INSTALL { + cd SDL_gfx-2.0.23 + make install +} +LICENSE="Zlib" +COPYRIGHT="1999-2011 A. Schiffler" diff --git a/media-libs/sdl-image/sdl-image-1.2-hg.bep b/media-libs/sdl-image/sdl-image-1.2-hg.bep new file mode 100644 index 000000000..5ab8e0d40 --- /dev/null +++ b/media-libs/sdl-image/sdl-image-1.2-hg.bep @@ -0,0 +1,35 @@ +DESCRIPTION="Simple Direct Media Layer Image Library" +HOMEPAGE="http://www.libsdl.org/projects/SDL_image" +SRC_URI="hg+http://hg.libsdl.org/SDL_image#SDL-1.2" +#CHECKSUM_MD5="6c06584b31559e2b59f2b982d0d1f628" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="media-libs/libsdl >= 1.2.14 + media-libs/jpeg >= 8b + media-libs/libpng >= 1.2.44 < 1.4.0 + media-libs/tiff >= 3.8.2 + media-libs/giflib >= 4.1.6 + media-libs/libwebp >= 0.1.3" +BUILD { + cd sdl-image-1.2-hg + libtoolize --force --copy --install + aclocal --install -I acinclude + ./autogen.sh + MANDIR=`finddir B_COMMON_DOCUMENTATION_DIRECTORY`/man + LIBDIR=`finddir B_COMMON_LIB_DIRECTORY` + ./configure --prefix=`finddir B_COMMON_DIRECTORY` \ + --enable-bmp --enable-lbm --enable-pcx \ + --enable-pnm --enable-tga --enable-xcf --enable-xpm --enable-xv \ + --enable-gif --enable-jpg --disable-jpg-shared \ + --libdir=$LIBDIR \ + --mandir=$MANDIR + make +} + +INSTALL { + cd sdl-image-1.2-hg + make install +} + +LICENSE="Zlib" +COPYRIGHT="1997-2012 Sam Lantinga" diff --git a/media-libs/sdl-image/sdl-image-1.2.10.bep b/media-libs/sdl-image/sdl-image-1.2.10.bep index 8c6f80750..49613d96e 100644 --- a/media-libs/sdl-image/sdl-image-1.2.10.bep +++ b/media-libs/sdl-image/sdl-image-1.2.10.bep @@ -10,13 +10,8 @@ DEPEND="media-libs/jpeg >= 8b media-libs/giflib >= 4.1.6" BUILD { cd SDL_image-1.2.10 - cp /boot/common/share/aclocal/libtool.m4 acinclude - cp /boot/common/share/aclocal/ltoptions.m4 acinclude - cp /boot/common/share/aclocal/ltversion.m4 acinclude - cp /boot/common/share/aclocal/ltsugar.m4 acinclude - cp /boot/common/share/aclocal/lt~obsolete.m4 acinclude libtoolize --force --copy --install - aclocal -I acinclude + aclocal --install -I acinclude ./autogen.sh MANDIR=`finddir B_COMMON_DOCUMENTATION_DIRECTORY`/man LIBDIR=`finddir B_COMMON_LIB_DIRECTORY` @@ -33,3 +28,6 @@ INSTALL { cd SDL_image-1.2.10 make install } + +LICENSE="GNU LGPL v2.1" +COPYRIGHT="1997-2011 Sam Lantinga" diff --git a/media-libs/sdl-image/sdl-image-1.2.12.bep b/media-libs/sdl-image/sdl-image-1.2.12.bep new file mode 100644 index 000000000..8641128f6 --- /dev/null +++ b/media-libs/sdl-image/sdl-image-1.2.12.bep @@ -0,0 +1,35 @@ +DESCRIPTION="Simple Direct Media Layer Image Library" +HOMEPAGE="http://www.libsdl.org/projects/SDL_image" +SRC_URI="http://www.libsdl.org/projects/SDL_image/release/SDL_image-1.2.12.tar.gz" +CHECKSUM_MD5="a0f9098ebe5400f0bdc9b62e60797ecb" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="media-libs/libsdl >= 1.2.14 + media-libs/jpeg >= 8b + media-libs/libpng >= 1.2.46 + media-libs/tiff >= 3.8.2 + media-libs/giflib >= 4.1.6 + media-libs/libwebp >= 0.1.3" +BUILD { + cd SDL_image-1.2.12 + libtoolize --force --copy --install + aclocal --install -I acinclude + ./autogen.sh + MANDIR=`finddir B_COMMON_DOCUMENTATION_DIRECTORY`/man + LIBDIR=`finddir B_COMMON_LIB_DIRECTORY` + ./configure --prefix=`finddir B_COMMON_DIRECTORY` \ + --enable-bmp --enable-lbm --enable-pcx \ + --enable-pnm --enable-tga --enable-xcf --enable-xpm --enable-xv \ + --enable-gif --enable-jpg --disable-jpg-shared \ + --libdir=$LIBDIR \ + --mandir=$MANDIR + make +} + +INSTALL { + cd SDL_image-1.2.12 + make install +} + +LICENSE="Zlib" +COPYRIGHT="1997-2012 Sam Lantinga" diff --git a/media-libs/sdl-image/sdl-image-1.2.6.bep b/media-libs/sdl-image/sdl-image-1.2.6.bep index cf1a78ace..d52989c78 100644 --- a/media-libs/sdl-image/sdl-image-1.2.6.bep +++ b/media-libs/sdl-image/sdl-image-1.2.6.bep @@ -14,7 +14,7 @@ BUILD { aclocal autoconf ./autogen.sh - ./configure --prefix=/boot/common LDFLAGS=-L/boot/common/lib CPPFLAGS=-I/boot/common/include + ./configure --prefix=`finddir B_COMMON_DIRECTORY` LDFLAGS=-L/boot/common/lib CPPFLAGS=-I/boot/common/include make } diff --git a/media-libs/sdl-image/sdl-image-1.2.8.bep b/media-libs/sdl-image/sdl-image-1.2.8.bep index 95808196b..3f0fd1054 100644 --- a/media-libs/sdl-image/sdl-image-1.2.8.bep +++ b/media-libs/sdl-image/sdl-image-1.2.8.bep @@ -7,15 +7,10 @@ STATUS_HAIKU="stable" DEPEND="" BUILD { cd SDL_image-1.2.8 - cp /boot/common/share/aclocal/libtool.m4 acinclude - cp /boot/common/share/aclocal/ltoptions.m4 acinclude - cp /boot/common/share/aclocal/ltversion.m4 acinclude - cp /boot/common/share/aclocal/ltsugar.m4 acinclude - cp /boot/common/share/aclocal/lt~obsolete.m4 acinclude libtoolize --force --copy --install - aclocal -I acinclude + aclocal --install -I acinclude ./autogen.sh - ./configure --prefix=/boot/common + ./configure --prefix=`finddir B_COMMON_DIRECTORY` make } diff --git a/media-libs/sdl-image/sdl-image-1.2.9.bep b/media-libs/sdl-image/sdl-image-1.2.9.bep index b036e73b4..3318cb3db 100644 --- a/media-libs/sdl-image/sdl-image-1.2.9.bep +++ b/media-libs/sdl-image/sdl-image-1.2.9.bep @@ -7,15 +7,10 @@ STATUS_HAIKU="stable" DEPEND="" BUILD { cd SDL_image-1.2.9 - cp /boot/common/share/aclocal/libtool.m4 acinclude - cp /boot/common/share/aclocal/ltoptions.m4 acinclude - cp /boot/common/share/aclocal/ltversion.m4 acinclude - cp /boot/common/share/aclocal/ltsugar.m4 acinclude - cp /boot/common/share/aclocal/lt~obsolete.m4 acinclude libtoolize --force --copy --install - aclocal -I acinclude + aclocal --install -I acinclude ./autogen.sh - ./configure --prefix=/boot/common + ./configure --prefix=`finddir B_COMMON_DIRECTORY` make } diff --git a/media-libs/sdl-mixer/sdl-mixer-1.2-hg.bep b/media-libs/sdl-mixer/sdl-mixer-1.2-hg.bep new file mode 100644 index 000000000..c25d1478c --- /dev/null +++ b/media-libs/sdl-mixer/sdl-mixer-1.2-hg.bep @@ -0,0 +1,32 @@ +DESCRIPTION="Simple Direct Layer Mixer Library" +HOMEPAGE="http://www.libsdl.org/projects/SDL_mixer/" +SRC_URI="hg+http://hg.libsdl.org/SDL_mixer/#SDL-1.2" +#CHECKSUM_MD5="" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="libsdl >= 1.2.14 + media-libs/flac >= 1.2.1 + media-libs/libmad >= 0.15.1 + media-libs/libvorbis >= 1.3.1 + media-libs/libmikmod >= 3.1.11 + media-libs/libogg >= 1.2.0 + media-libs/smpeg >= 0.4.5" + +BUILD { + cd sdl-mixer-1.2-hg + MANDIR=`finddir B_COMMON_DOCUMENTATION_DIRECTORY`/man + LIBDIR=`finddir B_COMMON_LIB_DIRECTORY` + ./configure --prefix=`finddir B_COMMON_DIRECTORY` \ + --libdir=$LIBDIR \ + --mandir=$MANDIR \ + --enable-music-midi + make +} + +INSTALL { + cd sdl-mixer-1.2-hg + make install +} + +LICENSE="Zlib" +COPYRIGHT="1997-2012 Sam Lantinga" diff --git a/media-libs/sdl-mixer/sdl-mixer-1.2.10.bep b/media-libs/sdl-mixer/sdl-mixer-1.2.10.bep index a4014acc5..930a94ac7 100644 --- a/media-libs/sdl-mixer/sdl-mixer-1.2.10.bep +++ b/media-libs/sdl-mixer/sdl-mixer-1.2.10.bep @@ -9,13 +9,9 @@ BUILD { cd SDL_mixer-1.2.10 libtoolize --force --copy --install cp ltmain.sh build-scripts/ltmain.sh - cp /boot/common/share/aclocal/libtool.m4 acinclude - cp /boot/common/share/aclocal/ltoptions.m4 acinclude - cp /boot/common/share/aclocal/ltversion.m4 acinclude - cp /boot/common/share/aclocal/ltsugar.m4 acinclude - cp /boot/common/share/aclocal/lt~obsolete.m4 acinclude + aclocal --install -I acinclude ./autogen.sh - ./configure --prefix=/boot/common + ./configure --prefix=`finddir B_COMMON_DIRECTORY` make } @@ -23,5 +19,6 @@ INSTALL { cd SDL_mixer-1.2.10 make install } + LICENSE="GNU LGPL v2.1" COPYRIGHT="1997-2009 Sam Lantinga" diff --git a/media-libs/sdl-mixer/sdl-mixer-1.2.11.bep b/media-libs/sdl-mixer/sdl-mixer-1.2.11.bep index ae4d98c06..964492470 100644 --- a/media-libs/sdl-mixer/sdl-mixer-1.2.11.bep +++ b/media-libs/sdl-mixer/sdl-mixer-1.2.11.bep @@ -15,11 +15,7 @@ BUILD { cd SDL_mixer-1.2.11 libtoolize --force --copy --install cp ltmain.sh build-scripts/ltmain.sh - cp /boot/common/share/aclocal/libtool.m4 acinclude - cp /boot/common/share/aclocal/ltoptions.m4 acinclude - cp /boot/common/share/aclocal/ltversion.m4 acinclude - cp /boot/common/share/aclocal/ltsugar.m4 acinclude - cp /boot/common/share/aclocal/lt~obsolete.m4 acinclude + aclocal --install -I acinclude ./autogen.sh MANDIR=`finddir B_COMMON_DOCUMENTATION_DIRECTORY`/man LIBDIR=`finddir B_COMMON_LIB_DIRECTORY` diff --git a/media-libs/sdl-mixer/sdl-mixer-1.2.12.bep b/media-libs/sdl-mixer/sdl-mixer-1.2.12.bep new file mode 100644 index 000000000..a884056b7 --- /dev/null +++ b/media-libs/sdl-mixer/sdl-mixer-1.2.12.bep @@ -0,0 +1,34 @@ +DESCRIPTION="Simple Direct Layer Mixer Library" +HOMEPAGE="http://www.libsdl.org/projects/SDL_mixer/" +SRC_URI="http://www.libsdl.org/projects/SDL_mixer/release/SDL_mixer-1.2.12.tar.gz" +CHECKSUM_MD5="e03ff73d77a55e3572ad0217131dc4a1" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="libsdl >= 1.2.14 + media-libs/flac >= 1.2.1 + media-libs/libmad >= 0.15.1 + media-libs/libvorbis >= 1.3.1 + media-libs/libmikmod >= 3.1.11 + media-libs/libogg >= 1.2.0 + media-libs/smpeg >= 0.4.5" + +BUILD { + cd SDL_mixer-1.2.12 + libtoolize --force --copy --install + aclocal --install -I acinclude + ./autogen.sh + MANDIR=`finddir B_COMMON_DOCUMENTATION_DIRECTORY`/man + LIBDIR=`finddir B_COMMON_LIB_DIRECTORY` + ./configure --prefix=`finddir B_COMMON_DIRECTORY` \ + --libdir=$LIBDIR \ + --mandir=$MANDIR \ + --enable-music-midi + make +} + +INSTALL { + cd SDL_mixer-1.2.12 + make install +} +LICENSE="Zlib" +COPYRIGHT="1997-2012 Sam Lantinga" diff --git a/media-libs/sdl-mixer/sdl-mixer-1.2.9.bep b/media-libs/sdl-mixer/sdl-mixer-1.2.9.bep index a7fe10083..c9bf5b91b 100644 --- a/media-libs/sdl-mixer/sdl-mixer-1.2.9.bep +++ b/media-libs/sdl-mixer/sdl-mixer-1.2.9.bep @@ -9,13 +9,9 @@ BUILD { cd SDL_mixer-1.2.9 libtoolize --force --copy --install cp ltmain.sh build-scripts/ltmain.sh - cp /boot/common/share/aclocal/libtool.m4 acinclude - cp /boot/common/share/aclocal/ltoptions.m4 acinclude - cp /boot/common/share/aclocal/ltversion.m4 acinclude - cp /boot/common/share/aclocal/ltsugar.m4 acinclude - cp /boot/common/share/aclocal/lt~obsolete.m4 acinclude + aclocal --install -I acinclude ./autogen.sh - ./configure --prefix=/boot/common + ./configure --prefix=`finddir B_COMMON_DIRECTORY` make } diff --git a/media-libs/sdl-net/patches/sdl-net-1.2.8.patch b/media-libs/sdl-net/patches/sdl-net-1.2.8.patch new file mode 100644 index 000000000..d51642a8e --- /dev/null +++ b/media-libs/sdl-net/patches/sdl-net-1.2.8.patch @@ -0,0 +1,13 @@ +diff -urN SDL_net-1.2.8/chat.cpp SDL_net-1.2.8-haiku/chat.cpp +--- SDL_net-1.2.8/chat.cpp 2012-01-15 16:20:10.063963136 +0000 ++++ SDL_net-1.2.8-haiku/chat.cpp 2012-02-29 23:58:48.552861696 +0000 +@@ -18,9 +18,6 @@ + misrepresented as being the original software. + 3. This notice may not be removed or altered from any source distribution. + */ +- Pleasanton, CA 94588 (USA) +- slouken@devolution.com +-*/ + + /* Note that this isn't necessarily the way to run a chat system. + This is designed to excercise the network code more than be really diff --git a/media-libs/sdl-net/sdl-net-1.2-hg.bep b/media-libs/sdl-net/sdl-net-1.2-hg.bep new file mode 100644 index 000000000..30f868251 --- /dev/null +++ b/media-libs/sdl-net/sdl-net-1.2-hg.bep @@ -0,0 +1,27 @@ +DESCRIPTION="Simple Direct Media Layer Net Library" +HOMEPAGE="http://www.libsdl.org/projects/SDL_net" +SRC_URI="hg+http://hg.libsdl.org/SDL_net" +#CHECKSUM_MD5="6bd4662d1423810f3140d4da21b6d912" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="" +BUILD { + cd sdl-net-1.2-hg + aclocal --force --install -I acinclude + libtoolize -fci + ./autogen.sh + MANDIR=`finddir B_COMMON_DOCUMENTATION_DIRECTORY`/man + LIBDIR=`finddir B_COMMON_LIB_DIRECTORY` + ./configure --prefix=`finddir B_COMMON_DIRECTORY` \ + --libdir=$LIBDIR \ + --mandir=$MANDIR + make +} + +INSTALL { + cd sdl-net-1.2-hg + make install +} + +LICENSE="Zlib" +COPYRIGHT="1997-2012 Sam Lantinga" diff --git a/media-libs/sdl-net/sdl-net-1.2.7.bep b/media-libs/sdl-net/sdl-net-1.2.7.bep index 3e3f0e124..fbc4fe049 100644 --- a/media-libs/sdl-net/sdl-net-1.2.7.bep +++ b/media-libs/sdl-net/sdl-net-1.2.7.bep @@ -7,8 +7,8 @@ STATUS_HAIKU="stable" DEPEND="" BUILD { cd SDL_net-1.2.7 - cp /boot/common/share/aclocal/libtool.m4 acinclude/libtool.m4 - libtoolize --copy --force --install + aclocal --force --install -I acinclude + libtoolize -fci ./autogen.sh MANDIR=`finddir B_COMMON_DOCUMENTATION_DIRECTORY`/man LIBDIR=`finddir B_COMMON_LIB_DIRECTORY` @@ -22,5 +22,6 @@ INSTALL { cd SDL_net-1.2.7 make install } + LICENSE="GNU LGPL v2.1" COPYRIGHT="1997-2009 Sam Lantinga" diff --git a/media-libs/sdl-net/sdl-net-1.2.8.bep b/media-libs/sdl-net/sdl-net-1.2.8.bep new file mode 100644 index 000000000..7a5dfd4a8 --- /dev/null +++ b/media-libs/sdl-net/sdl-net-1.2.8.bep @@ -0,0 +1,27 @@ +DESCRIPTION="Simple Direct Media Layer Net Library" +HOMEPAGE="http://www.libsdl.org/projects/SDL_net" +SRC_URI="http://www.libsdl.org/projects/SDL_net/release/SDL_net-1.2.8.tar.gz" +CHECKSUM_MD5="20e64e61d65662db66c379034f11f718" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="" +BUILD { + cd SDL_net-1.2.8 + aclocal --force --install -I acinclude + libtoolize -fci + ./autogen.sh + MANDIR=`finddir B_COMMON_DOCUMENTATION_DIRECTORY`/man + LIBDIR=`finddir B_COMMON_LIB_DIRECTORY` + ./configure --prefix=`finddir B_COMMON_DIRECTORY` \ + --libdir=$LIBDIR \ + --mandir=$MANDIR + make +} + +INSTALL { + cd SDL_net-1.2.8 + make install +} + +LICENSE="Zlib" +COPYRIGHT="1997-2012 Sam Lantinga" diff --git a/media-libs/sdl-rtf/sdl-rtf-0.1.0.bep b/media-libs/sdl-rtf/sdl-rtf-0.1.0.bep index ce482c217..9b81a0285 100644 --- a/media-libs/sdl-rtf/sdl-rtf-0.1.0.bep +++ b/media-libs/sdl-rtf/sdl-rtf-0.1.0.bep @@ -10,14 +10,9 @@ BUILD { rm aclocal.m4 rm acinclude.m4 mkdir -p m4 - cp /boot/common/share/aclocal/libtool.m4 m4 - cp /boot/common/share/aclocal/ltoptions.m4 m4 - cp /boot/common/share/aclocal/ltversion.m4 m4 - cp /boot/common/share/aclocal/ltsugar.m4 m4 - cp /boot/common/share/aclocal/lt~obsolete.m4 m4 echo "AC_CONFIG_MACRO_DIR([m4]) >> configure.in" libtoolize --copy --force --install - aclocal -I m4 + aclocal --install -I m4 ./autogen.sh MANDIR=`finddir B_COMMON_DOCUMENTATION_DIRECTORY`/man LIBDIR=`finddir B_COMMON_LIB_DIRECTORY` @@ -31,5 +26,6 @@ INSTALL { cd SDL_rtf-0.1.0 make install } + LICENSE="GNU LGPL v2" COPYRIGHT="2003-2009 Sam Lantinga" diff --git a/media-libs/sdl-sound/sdl-sound-1.0-hg.bep b/media-libs/sdl-sound/sdl-sound-1.0-hg.bep new file mode 100644 index 000000000..275fb2fca --- /dev/null +++ b/media-libs/sdl-sound/sdl-sound-1.0-hg.bep @@ -0,0 +1,24 @@ +DESCRIPTION="sdl-sound" +HOMEPAGE="http://www.icculus.org/SDL_sound" +SRC_URI="hg+http://hg.icculus.org/icculus/SDL_sound" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="media-libs/libogg >= 1.1.4" +BUILD { + cd sdl-sound-1.0-hg + libtoolize --copy --force --install + ./bootstrap + MANDIR=`finddir B_COMMON_DOCUMENTATION_DIRECTORY`/man + LIBDIR=`finddir B_COMMON_LIB_DIRECTORY` + ./configure --prefix=`finddir B_COMMON_DIRECTORY` \ + --libdir=$LIBDIR \ + --mandir=$MANDIR + make +} + +INSTALL { + cd sdl-sound-1.0-hg + make install +} +LICENSE="GNU LGPL v2.1" +COPYRIGHT="2001-2011 Ryan C. Gordon" diff --git a/media-libs/sdl-ttf/sdl-ttf-2.0-hg.bep b/media-libs/sdl-ttf/sdl-ttf-2.0-hg.bep new file mode 100644 index 000000000..df5fda109 --- /dev/null +++ b/media-libs/sdl-ttf/sdl-ttf-2.0-hg.bep @@ -0,0 +1,30 @@ +DESCRIPTION="Simple Direct Media Layer Image Library" +HOMEPAGE="http://www.libsdl.org/projects/SDL_ttf" +SRC_URI="hg+http://hg.libsdl.org/SDL_ttf" +#CHECKSUM_MD5="814e6e17e8879254208d23b3b7e0354b" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="media-libs/libsdl >= 1.2.12 + dev-util/pkgconfig >= 0.9" +BUILD { + cd sdl-ttf-2.0-hg + rm -f acinclude.m4 + libtoolize --copy --force --install + aclocal --install -I acinclude + echo "AC_CONFIG_MACRO_DIR([acinclude]) > configure.in" + ./autogen.sh + MANDIR=`finddir B_COMMON_DOCUMENTATION_DIRECTORY`/man + LIBDIR=`finddir B_COMMON_LIB_DIRECTORY` + ./configure --prefix=`finddir B_COMMON_DIRECTORY` \ + --libdir=$LIBDIR \ + --mandir=$MANDIR + make +} + +INSTALL { + cd sdl-ttf-2.0-hg + make install +} + +LICENSE="Zlib" +COPYRIGHT="1997-2012 Sam Lantinga" diff --git a/media-libs/sdl-ttf/sdl-ttf-2.0.10.bep b/media-libs/sdl-ttf/sdl-ttf-2.0.10.bep index 004216101..15cd7c98e 100644 --- a/media-libs/sdl-ttf/sdl-ttf-2.0.10.bep +++ b/media-libs/sdl-ttf/sdl-ttf-2.0.10.bep @@ -10,11 +10,7 @@ BUILD { cd SDL_ttf-2.0.10 rm -f acinclude.m4 libtoolize --copy --force --install - cp /boot/common/share/aclocal/libtool.m4 acinclude - cp /boot/common/share/aclocal/ltoptions.m4 acinclude - cp /boot/common/share/aclocal/ltversion.m4 acinclude - cp /boot/common/share/aclocal/ltsugar.m4 acinclude - cp /boot/common/share/aclocal/lt~obsolete.m4 acinclude + aclocal --install -I acinclude echo "AC_CONFIG_MACRO_DIR([acinclude]) > configure.in" ./autogen.sh MANDIR=`finddir B_COMMON_DOCUMENTATION_DIRECTORY`/man @@ -29,5 +25,6 @@ INSTALL { cd SDL_ttf-2.0.10 make install } + LICENSE="GNU LGPL v2.1" COPYRIGHT="1997-2010 Sam Lantinga" diff --git a/media-libs/sdl-ttf/sdl-ttf-2.0.11.bep b/media-libs/sdl-ttf/sdl-ttf-2.0.11.bep new file mode 100644 index 000000000..28f407403 --- /dev/null +++ b/media-libs/sdl-ttf/sdl-ttf-2.0.11.bep @@ -0,0 +1,31 @@ +DESCRIPTION="Simple Direct Media Layer Image Library" +HOMEPAGE="http://www.libsdl.org/projects/SDL_ttf" +SRC_URI="http://www.libsdl.org/projects/SDL_ttf/release/SDL_ttf-2.0.11.tar.gz" +CHECKSUM_MD5="61e29bd9da8d245bc2471d1b2ce591aa" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="media-libs/libsdl >= 1.2.12 + dev-util/pkgconfig >= 0.9" +BUILD { + cd SDL_ttf-2.0.11 + rm -f acinclude.m4 + libtoolize --copy --force --install + aclocal --install -I acinclude + echo "AC_CONFIG_MACRO_DIR([acinclude]) > configure.in" + ./autogen.sh + MANDIR=`finddir B_COMMON_DOCUMENTATION_DIRECTORY`/man + LIBDIR=`finddir B_COMMON_LIB_DIRECTORY` + ./configure --prefix=`finddir B_COMMON_DIRECTORY` \ + --libdir=$LIBDIR \ + --mandir=$MANDIR + make +} + +INSTALL { + cd SDL_ttf-2.0.11 + make install +} + +LICENSE="Zlib" +COPYRIGHT="1997-2012 Sam Lantinga" + diff --git a/media-libs/sdl-ttf/sdl-ttf-2.0.9.bep b/media-libs/sdl-ttf/sdl-ttf-2.0.9.bep index 6235541fc..18f5cb80d 100644 --- a/media-libs/sdl-ttf/sdl-ttf-2.0.9.bep +++ b/media-libs/sdl-ttf/sdl-ttf-2.0.9.bep @@ -14,7 +14,7 @@ BUILD { touch NEWS AUTHORS ChangeLog automake --add-missing --force-missing --warnings=none autoconf - ./configure --prefix=/boot/common + ./configure --prefix=`finddir B_COMMON_DIRECTORY` make } diff --git a/media-libs/smjpeg/smjpeg-0.2.1.bep b/media-libs/smjpeg/smjpeg-0.2.1.bep index 04d65bbaa..2208d923a 100644 --- a/media-libs/smjpeg/smjpeg-0.2.1.bep +++ b/media-libs/smjpeg/smjpeg-0.2.1.bep @@ -10,13 +10,8 @@ BUILD { rm -f aclocal.m4 echo "AC_CONFIG_MACRO_DIR([m4]) > configure.in" mkdir m4 - cp /boot/common/share/aclocal/libtool.m4 m4 - cp /boot/common/share/aclocal/ltoptions.m4 m4 - cp /boot/common/share/aclocal/ltversion.m4 m4 - cp /boot/common/share/aclocal/ltsugar.m4 m4 - cp /boot/common/share/aclocal/lt~obsolete.m4 m4 libtoolize --copy --force --install - aclocal -I m4 + aclocal --install -I m4 automake --foreign --add-missing autoconf MANDIR=`finddir B_COMMON_DOCUMENTATION_DIRECTORY`/man @@ -31,5 +26,6 @@ INSTALL { cd smjpeg-0.2.1 make install } + LICENSE="GNU LGPL v2" COPYRIGHT="1999-2004 Sam Lantinga, Joe Tennies." diff --git a/media-libs/smpeg/smpeg-0.4.5.bep b/media-libs/smpeg/smpeg-0.4.5.bep index 836d52a80..76a86a1ff 100644 --- a/media-libs/smpeg/smpeg-0.4.5.bep +++ b/media-libs/smpeg/smpeg-0.4.5.bep @@ -9,20 +9,16 @@ BUILD { rm -f acinclude.m4 rm -f aclocal.m4 echo "AC_CONFIG_MACRO_DIR([acinclude]) > configure.in" - cp /boot/common/share/aclocal/libtool.m4 acinclude - cp /boot/common/share/aclocal/ltoptions.m4 acinclude - cp /boot/common/share/aclocal/ltversion.m4 acinclude - cp /boot/common/share/aclocal/ltsugar.m4 acinclude - cp /boot/common/share/aclocal/lt~obsolete.m4 acinclude libtoolize --copy --force --install - aclocal -I acinclude + aclocal --install -I acinclude automake --foreign --add-missing autoconf MANDIR=`finddir B_COMMON_DOCUMENTATION_DIRECTORY`/man LIBDIR=`finddir B_COMMON_LIB_DIRECTORY` ./configure --prefix=`finddir B_COMMON_DIRECTORY` \ --libdir=$LIBDIR \ - --mandir=$MANDIR + --mandir=$MANDIR \ + --datadir=`finddir B_COMMON_DATA_DIRECTORY` make } @@ -30,5 +26,6 @@ INSTALL { cd smpeg-0.4.5 make install } + LICENSE="GNU LGPL v2" COPYRIGHT="1999-2004 Sam Lantinga, Joe Tennies." diff --git a/media-libs/speex/speex-1.2-git.bep b/media-libs/speex/speex-1.2-git.bep index 2dc5e5938..320e8878a 100644 --- a/media-libs/speex/speex-1.2-git.bep +++ b/media-libs/speex/speex-1.2-git.bep @@ -10,11 +10,12 @@ BUILD { libtoolize --copy --force --install echo 'AC_CONFIG_MACRO_DIR([m4])' >> configure.ac autogen.sh --prefix=`finddir B_COMMON_DIRECTORY` - MANDIR=`finddir B_COMMON_DOCUMENTATION_DIRECTORY`/man - LIBDIR=`finddir B_COMMON_LIB_DIRECTORY` + sed -i 's/$(datadir)\/aclocal/`finddir B_COMMON_DATA_DIRECTORY`\/aclocal/g' M* + COMMON_DOCS=`finddir B_COMMON_DOCUMENTATION_DIRECTORY` ./configure --prefix=`finddir B_COMMON_DIRECTORY` \ - --libdir=$LIBDIR \ - --mandir=$MANDIR + --datarootdir=$COMMON_DOCS \ + --libdir=`finddir B_COMMON_LIB_DIRECTORY` \ + --mandir=$COMMON_DIR/man make } diff --git a/media-libs/speex/speex-1.2rc1.bep b/media-libs/speex/speex-1.2rc1.bep index 6b26f3293..e8d06c9ed 100644 --- a/media-libs/speex/speex-1.2rc1.bep +++ b/media-libs/speex/speex-1.2rc1.bep @@ -2,20 +2,26 @@ DESCRIPTION="Speex" HOMEPAGE="http://www.speex.org" SRC_URI="http://downloads.xiph.org/releases/speex/speex-1.2rc1.tar.gz" CHECKSUM_MD5="c4438b22c08e5811ff10e2b06ee9b9ae" -REVISION="1" +REVISION="2" STATUS_HAIKU="stable" -DEPEND="" +DEPEND="pkgconfig >= 0.25 + libogg > 1.3.0" BUILD { cd speex-1.2rc1 libtoolize --copy --force --install aclocal automake autoconf - ./configure --prefix=`finddir B_COMMON_DIRECTORY` + COMMON_DOCS=`finddir B_COMMON_DOCUMENTATION_DIRECTORY` + ./configure --prefix=`finddir B_COMMON_DIRECTORY` \ + --datadir=`finddir B_COMMON_DATA_DIRECTORY` \ + --docdir=$COMMON_DOCS/doc/speex \ + --mandir=$COMMON_DOCS/man make } INSTALL { + cd speex-1.2rc1 make install } LICENSE="Speex" diff --git a/media-libs/taglib/patches/taglib-1.7.1.patch b/media-libs/taglib/patches/taglib-1.7.1.patch new file mode 100644 index 000000000..ed6c8556e --- /dev/null +++ b/media-libs/taglib/patches/taglib-1.7.1.patch @@ -0,0 +1,96 @@ +diff -urN taglib-1.7.1/taglib/ape/apefooter.cpp taglib-1.7.1-haiku/taglib/ape/apefooter.cpp +--- taglib-1.7.1/taglib/ape/apefooter.cpp 2011-03-11 13:15:38.020709376 +0000 ++++ taglib-1.7.1-haiku/taglib/ape/apefooter.cpp 2011-04-11 03:16:26.167772160 +0000 +@@ -24,7 +24,7 @@ + * http://www.mozilla.org/MPL/ * + ***************************************************************************/ + +-#include ++#include + #include + + #include +diff -urN taglib-1.7.1/taglib/mpeg/id3v2/id3v2header.cpp taglib-1.7.1-haiku/taglib/mpeg/id3v2/id3v2header.cpp +--- taglib-1.7.1/taglib/mpeg/id3v2/id3v2header.cpp 2011-03-11 13:15:38.031719424 +0000 ++++ taglib-1.7.1-haiku/taglib/mpeg/id3v2/id3v2header.cpp 2011-04-11 02:24:30.000000000 +0000 +@@ -23,7 +23,7 @@ + * http://www.mozilla.org/MPL/ * + ***************************************************************************/ + +-#include ++#include + #include + + #include +diff -urN taglib-1.7.1/taglib/mpeg/id3v2/id3v2synchdata.cpp taglib-1.7.1-haiku/taglib/mpeg/id3v2/id3v2synchdata.cpp +--- taglib-1.7.1/taglib/mpeg/id3v2/id3v2synchdata.cpp 2011-03-11 13:15:38.031981568 +0000 ++++ taglib-1.7.1-haiku/taglib/mpeg/id3v2/id3v2synchdata.cpp 2011-04-11 02:23:58.000000000 +0000 +@@ -23,7 +23,7 @@ + * http://www.mozilla.org/MPL/ * + ***************************************************************************/ + +-#include ++#include + + #include "id3v2synchdata.h" + +diff -urN taglib-1.7.1/taglib/toolkit/tbytevector.cpp taglib-1.7.1-haiku/taglib/toolkit/tbytevector.cpp +--- taglib-1.7.1/taglib/toolkit/tbytevector.cpp 2011-03-11 13:15:38.038797312 +0000 ++++ taglib-1.7.1-haiku/taglib/toolkit/tbytevector.cpp 2011-04-11 02:26:04.000000000 +0000 +@@ -23,7 +23,7 @@ + * http://www.mozilla.org/MPL/ * + ***************************************************************************/ + +-#include ++#include + + #include + #include +diff -urN taglib-1.7.1/taglib/toolkit/tbytevector.h taglib-1.7.1-haiku/taglib/toolkit/tbytevector.h +--- taglib-1.7.1/taglib/toolkit/tbytevector.h 2011-03-11 13:15:38.038797312 +0000 ++++ taglib-1.7.1-haiku/taglib/toolkit/tbytevector.h 2011-04-11 02:22:38.000000000 +0000 +@@ -30,7 +30,7 @@ + #include "taglib_export.h" + + #include +-#include ++#include + + namespace TagLib { + +diff -urN taglib-1.7.1/taglib/toolkit/tstring.cpp taglib-1.7.1-haiku/taglib/toolkit/tstring.cpp +--- taglib-1.7.1/taglib/toolkit/tstring.cpp 2011-03-11 13:15:38.040108032 +0000 ++++ taglib-1.7.1-haiku/taglib/toolkit/tstring.cpp 2011-04-11 02:25:40.000000000 +0000 +@@ -27,7 +27,7 @@ + #include "unicode.h" + #include "tdebug.h" + +-#include ++#include + + #include + +diff -urN taglib-1.7.1/taglib/toolkit/tstring.h taglib-1.7.1-haiku/taglib/toolkit/tstring.h +--- taglib-1.7.1/taglib/toolkit/tstring.h 2011-03-11 13:15:38.040108032 +0000 ++++ taglib-1.7.1-haiku/taglib/toolkit/tstring.h 2011-04-11 02:23:07.000000000 +0000 +@@ -31,7 +31,7 @@ + #include "tbytevector.h" + + #include +-#include ++#include + + /*! + * \relates TagLib::String +diff -urN taglib-1.7.1/taglib/toolkit/tstringlist.h taglib-1.7.1-haiku/taglib/toolkit/tstringlist.h +--- taglib-1.7.1/taglib/toolkit/tstringlist.h 2011-03-11 13:15:38.040370176 +0000 ++++ taglib-1.7.1-haiku/taglib/toolkit/tstringlist.h 2011-04-11 02:23:30.000000000 +0000 +@@ -31,7 +31,7 @@ + #include "tbytevectorlist.h" + #include "taglib_export.h" + +-#include ++#include + + namespace TagLib { + diff --git a/media-libs/taglib/patches/taglib-1.7.patch b/media-libs/taglib/patches/taglib-1.7.patch new file mode 100644 index 000000000..2ce32dfb7 --- /dev/null +++ b/media-libs/taglib/patches/taglib-1.7.patch @@ -0,0 +1,96 @@ +diff -urN taglib-1.7/taglib/ape/apefooter.cpp taglib-1.7-haiku/taglib/ape/apefooter.cpp +--- taglib-1.7/taglib/ape/apefooter.cpp 2011-03-11 13:15:38.020709376 +0000 ++++ taglib-1.7-haiku/taglib/ape/apefooter.cpp 2011-04-11 03:16:26.167772160 +0000 +@@ -24,7 +24,7 @@ + * http://www.mozilla.org/MPL/ * + ***************************************************************************/ + +-#include ++#include + #include + + #include +diff -urN taglib-1.7/taglib/mpeg/id3v2/id3v2header.cpp taglib-1.7-haiku/taglib/mpeg/id3v2/id3v2header.cpp +--- taglib-1.7/taglib/mpeg/id3v2/id3v2header.cpp 2011-03-11 13:15:38.031719424 +0000 ++++ taglib-1.7-haiku/taglib/mpeg/id3v2/id3v2header.cpp 2011-04-11 02:24:30.000000000 +0000 +@@ -23,7 +23,7 @@ + * http://www.mozilla.org/MPL/ * + ***************************************************************************/ + +-#include ++#include + #include + + #include +diff -urN taglib-1.7/taglib/mpeg/id3v2/id3v2synchdata.cpp taglib-1.7-haiku/taglib/mpeg/id3v2/id3v2synchdata.cpp +--- taglib-1.7/taglib/mpeg/id3v2/id3v2synchdata.cpp 2011-03-11 13:15:38.031981568 +0000 ++++ taglib-1.7-haiku/taglib/mpeg/id3v2/id3v2synchdata.cpp 2011-04-11 02:23:58.000000000 +0000 +@@ -23,7 +23,7 @@ + * http://www.mozilla.org/MPL/ * + ***************************************************************************/ + +-#include ++#include + + #include "id3v2synchdata.h" + +diff -urN taglib-1.7/taglib/toolkit/tbytevector.cpp taglib-1.7-haiku/taglib/toolkit/tbytevector.cpp +--- taglib-1.7/taglib/toolkit/tbytevector.cpp 2011-03-11 13:15:38.038797312 +0000 ++++ taglib-1.7-haiku/taglib/toolkit/tbytevector.cpp 2011-04-11 02:26:04.000000000 +0000 +@@ -23,7 +23,7 @@ + * http://www.mozilla.org/MPL/ * + ***************************************************************************/ + +-#include ++#include + + #include + #include +diff -urN taglib-1.7/taglib/toolkit/tbytevector.h taglib-1.7-haiku/taglib/toolkit/tbytevector.h +--- taglib-1.7/taglib/toolkit/tbytevector.h 2011-03-11 13:15:38.038797312 +0000 ++++ taglib-1.7-haiku/taglib/toolkit/tbytevector.h 2011-04-11 02:22:38.000000000 +0000 +@@ -30,7 +30,7 @@ + #include "taglib_export.h" + + #include +-#include ++#include + + namespace TagLib { + +diff -urN taglib-1.7/taglib/toolkit/tstring.cpp taglib-1.7-haiku/taglib/toolkit/tstring.cpp +--- taglib-1.7/taglib/toolkit/tstring.cpp 2011-03-11 13:15:38.040108032 +0000 ++++ taglib-1.7-haiku/taglib/toolkit/tstring.cpp 2011-04-11 02:25:40.000000000 +0000 +@@ -27,7 +27,7 @@ + #include "unicode.h" + #include "tdebug.h" + +-#include ++#include + + #include + +diff -urN taglib-1.7/taglib/toolkit/tstring.h taglib-1.7-haiku/taglib/toolkit/tstring.h +--- taglib-1.7/taglib/toolkit/tstring.h 2011-03-11 13:15:38.040108032 +0000 ++++ taglib-1.7-haiku/taglib/toolkit/tstring.h 2011-04-11 02:23:07.000000000 +0000 +@@ -31,7 +31,7 @@ + #include "tbytevector.h" + + #include +-#include ++#include + + /*! + * \relates TagLib::String +diff -urN taglib-1.7/taglib/toolkit/tstringlist.h taglib-1.7-haiku/taglib/toolkit/tstringlist.h +--- taglib-1.7/taglib/toolkit/tstringlist.h 2011-03-11 13:15:38.040370176 +0000 ++++ taglib-1.7-haiku/taglib/toolkit/tstringlist.h 2011-04-11 02:23:30.000000000 +0000 +@@ -31,7 +31,7 @@ + #include "tbytevectorlist.h" + #include "taglib_export.h" + +-#include ++#include + + namespace TagLib { + diff --git a/media-libs/taglib/taglib-1.7.1.bep b/media-libs/taglib/taglib-1.7.1.bep new file mode 100644 index 000000000..d8a160ffd --- /dev/null +++ b/media-libs/taglib/taglib-1.7.1.bep @@ -0,0 +1,21 @@ +DESCRIPTION="TagLib Audio Meta-Data Library" +HOMEPAGE="http://github.com/taglib" +SRC_URI="http://github.com/downloads/taglib/taglib/taglib-1.7.1.tar.gz" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="" +CHECKSUM_MD5="aa0f7e2d9700bbb78c5f990ed2f5d9b6" +BUILD { + cd taglib-1.7.1 + cmake . + make +} + +INSTALL { + cd taglib-1.7.1 + make install +} + +LICENSE="GNU LGPL v2 + MPL v1.1" +COPYRIGHT="2002-2012 Scott Wheeler" diff --git a/media-libs/taglib/taglib-1.7.2.bep b/media-libs/taglib/taglib-1.7.2.bep new file mode 100644 index 000000000..d8aba64fd --- /dev/null +++ b/media-libs/taglib/taglib-1.7.2.bep @@ -0,0 +1,21 @@ +DESCRIPTION="TagLib Audio Meta-Data Library" +HOMEPAGE="http://github.com/taglib" +SRC_URI="http://github.com/downloads/taglib/taglib/taglib-1.7.2.tar.gz" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="cmake" +CHECKSUM_MD5="b0a9e797d3833fb933c7c3176de3d720" +BUILD { + cd taglib-1.7.2 + cmake . + make +} + +INSTALL { + cd taglib-1.7.2 + make install +} + +LICENSE="GNU LGPL v2 + MPL v1.1" +COPYRIGHT="2002-2012 Scott Wheeler" diff --git a/media-libs/taglib/taglib-1.7.bep b/media-libs/taglib/taglib-1.7.bep new file mode 100644 index 000000000..0716bb487 --- /dev/null +++ b/media-libs/taglib/taglib-1.7.bep @@ -0,0 +1,21 @@ +DESCRIPTION="TagLib Audio Meta-Data Library" +HOMEPAGE="http://developer.kde.org/~wheeler/taglib.html" +SRC_URI="http://developer.kde.org/~wheeler/files/src/taglib-1.7.tar.gz" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="" +CHECKSUM_MD5="6a7e312668f153fa905a81714aebc257" +BUILD { + cd taglib-1.7 + cmake . + make +} + +INSTALL { + cd taglib-1.7 + make install +} + +LICENSE="GNU LGPL v2 + MPL v1.1" +COPYRIGHT="2002-2011 Scott Wheeler" diff --git a/media-libs/taglib/taglib-1.8.bep b/media-libs/taglib/taglib-1.8.bep new file mode 100644 index 000000000..a7abbd2ff --- /dev/null +++ b/media-libs/taglib/taglib-1.8.bep @@ -0,0 +1,21 @@ +DESCRIPTION="TagLib Audio Meta-Data Library" +HOMEPAGE="http://github.com/taglib" +SRC_URI="http://github.com/downloads/taglib/taglib/taglib-1.8.tar.gz" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="" +CHECKSUM_MD5="dcb8bd1b756f2843e18b1fdf3aaeee15" +BUILD { + cd taglib-1.8 + cmake . + make +} + +INSTALL { + cd taglib-1.8 + make install +} + +LICENSE="GNU LGPL v2 + MPL v1.1" +COPYRIGHT="2002-2012 Scott Wheeler" diff --git a/media-libs/tiff/tiff-3.8.2.bep b/media-libs/tiff/tiff-3.8.2.bep index d5d586ac8..4a2338e42 100644 --- a/media-libs/tiff/tiff-3.8.2.bep +++ b/media-libs/tiff/tiff-3.8.2.bep @@ -16,7 +16,7 @@ BUILD { autoconf autoheader automake - ./configure --prefix=/boot/common + ./configure --prefix=`finddir B_COMMON_DIRECTORY` make } diff --git a/media-libs/tiff/tiff-3.9.1.bep b/media-libs/tiff/tiff-3.9.1.bep index 8d36999e2..d0aa4e446 100644 --- a/media-libs/tiff/tiff-3.9.1.bep +++ b/media-libs/tiff/tiff-3.9.1.bep @@ -12,7 +12,7 @@ BUILD { autoconf autoheader automake - ./configure --prefix=/boot/common + ./configure --prefix=`finddir B_COMMON_DIRECTORY` make } diff --git a/media-libs/tiff/tiff-3.9.4.bep b/media-libs/tiff/tiff-3.9.4.bep index 2207c254e..4718a9b5f 100644 --- a/media-libs/tiff/tiff-3.9.4.bep +++ b/media-libs/tiff/tiff-3.9.4.bep @@ -12,7 +12,7 @@ BUILD { autoconf autoheader automake - ./configure --prefix=/boot/common + ./configure --prefix=`finddir B_COMMON_DIRECTORY` make } diff --git a/media-libs/tiff/tiff-3.9.6.bep b/media-libs/tiff/tiff-3.9.6.bep new file mode 100644 index 000000000..a8fc84aaa --- /dev/null +++ b/media-libs/tiff/tiff-3.9.6.bep @@ -0,0 +1,22 @@ +DESCRIPTION="Tiff library" +HOMEPAGE="http://www.libtiff.org" +SRC_URI="ftp://ftp.remotesensing.org/pub/libtiff/tiff-3.9.6.tar.gz" +CHECKSUM_MD5="6920f3bf628d791d49f268b83612ed23" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="" +BUILD { + cd tiff-3.9.6 + libtoolize --force --copy --install + aclocal -I m4 + autoconf + autoheader + automake + ./configure --prefix=`finddir B_COMMON_DIRECTORY` + make +} + +INSTALL { + cd tiff-3.9.6 + make install +} diff --git a/media-libs/tiff/tiff-4.0.2.bep b/media-libs/tiff/tiff-4.0.2.bep new file mode 100644 index 000000000..c94a19245 --- /dev/null +++ b/media-libs/tiff/tiff-4.0.2.bep @@ -0,0 +1,22 @@ +DESCRIPTION="Tiff library" +HOMEPAGE="http://www.libtiff.org" +SRC_URI="ftp://ftp.remotesensing.org/pub/libtiff/tiff-4.0.2.tar.gz" +CHECKSUM_MD5="04a08fa1e07e696e820a0c3f32465a13" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="" +BUILD { + cd tiff-4.0.2 + libtoolize --force --copy --install + aclocal -I m4 + autoconf + autoheader + automake + ./configure --prefix=`finddir B_COMMON_DIRECTORY` + make +} + +INSTALL { + cd tiff-4.0.2 + make install +} diff --git a/media-libs/vigra/vigra-1.8.0.bep b/media-libs/vigra/vigra-1.8.0.bep new file mode 100644 index 000000000..dee691ec6 --- /dev/null +++ b/media-libs/vigra/vigra-1.8.0.bep @@ -0,0 +1,21 @@ +DESCRIPTION="C++ computer vision library with emphasize on customizable algorithms and data structures. " +HOMEPAGE="http://hci.iwr.uni-heidelberg.de/vigra/" +SRC_URI="http://hci.iwr.uni-heidelberg.de/vigra/vigra-1.8.0-src.tar.gz" +CHECKSUM_MD5="15c5544448e529ee60020758ab6be264" +REVISION="1" +STATUS_HAIKU="stable" +MESSAGE="The port only builds with gcc4. Use 'setgcc gcc4' before building." +DEPEND="cmake" +BUILD { + cd vigra-1.8.0 + cmake CMakelists.txt + make +} + +INSTALL { + cd vigra-1.8.0 + make install +} + +LICENSE="MIT" +COPYRIGHT="1998-2010 by Ullrich Koethe" diff --git a/media-libs/waave/waave-1.01.bep b/media-libs/waave/waave-1.01.bep new file mode 100644 index 000000000..2c42eff3f --- /dev/null +++ b/media-libs/waave/waave-1.01.bep @@ -0,0 +1,26 @@ +DESCRIPTION="The audio/video engine - Why Another Audio Video Engine" +HOMEPAGE="http://waave.sourceforge.net" +SRC_URI="http://sourceforge.net/projects/waave/files/waave-1.01.tar.gz/download" +REVISION="1" +STATUS_HAIKU="broken" +DEPEND="media-libs/libsdl >= 1.2.15 + media-video/ffmeg >= 0.10.2" +CHECKSUM_MD5="7f168d3122a3889ee6da3a380cfe1c99" +BUILD { + cd waave-1.01 + ./configure --prefix=`finddir B_COMMON_DIRECTORY` + make +} + +INSTALL { + cd waave-1.01 + make install +} + +TEST { + cd waave-1.01/test + make +} + +LICENSE="GNU GPL v3" +COPYRIGHT="2012 Baptiste Pellegrin" diff --git a/media-libs/x264/patches/x264-20120803.patch b/media-libs/x264/patches/x264-20120803.patch new file mode 100644 index 000000000..6e48d2cc2 --- /dev/null +++ b/media-libs/x264/patches/x264-20120803.patch @@ -0,0 +1,12 @@ +--- x264-snapshot-20120803-2245.orig/configure 2012-08-03 20:45:03.065273856 +0000 ++++ x264-snapshot-20120803-2245/configure 2012-08-04 12:56:56.527171584 +0000 +@@ -520,6 +520,9 @@ + fi + HAVE_GETOPT_LONG=0 + ;; ++ *haiku*) ++ SYS="haiku" ++ ;; + *) + die "Unknown system $host, edit the configure" + ;; diff --git a/media-libs/x264/x264-20120803.bep b/media-libs/x264/x264-20120803.bep new file mode 100644 index 000000000..21aed8d29 --- /dev/null +++ b/media-libs/x264/x264-20120803.bep @@ -0,0 +1,20 @@ +DESCRIPTION="x264 h.264/AVC encoder" +HOMEPAGE="http://www.videolan.org/developers/x264.html" +SRC_URI="ftp://download.videolan.org/pub/videolan/x264/snapshots/x264-snapshot-20120803-2245.tar.bz2" +CHECKSUM_MD5="0ce9048809a447b89aaecd7c8c8b2e0d" +REVISION="1" +MESSAGE="The port only builds with gcc4. Use 'setgcc gcc4' before building." +STATUS_HAIKU="stable" +DEPEND="" +BUILD { + cd x264-snapshot-20120803-2245 + ./configure --prefix=`finddir B_COMMON_DIRECTORY` + make +} + +INSTALL { + cd x264-snapshot-20120803-2245 + make install-lib-static +} +LICENSE="GNU GPL v2" +COPYRIGHT="2003-2012 http://www.videolan.org/developers/x264.html" diff --git a/media-sound/bladeenc/bladeenc-0.94.2.bep b/media-sound/bladeenc/bladeenc-0.94.2.bep index 370691c87..dd03383d4 100644 --- a/media-sound/bladeenc/bladeenc-0.94.2.bep +++ b/media-sound/bladeenc/bladeenc-0.94.2.bep @@ -11,7 +11,7 @@ BUILD { aclocal automake --add-missing autoconf - ./configure --prefix=/boot/common + ./configure --prefix=`finddir B_COMMON_DIRECTORY` make } diff --git a/media-sound/fluidsynth/fluidsynth-1.1-midi-buffer.bep b/media-sound/fluidsynth/fluidsynth-1.1-midi-buffer.bep new file mode 100644 index 000000000..093c96677 --- /dev/null +++ b/media-sound/fluidsynth/fluidsynth-1.1-midi-buffer.bep @@ -0,0 +1,24 @@ +DESCRIPTION="A branch for adding a new function to the FluidSynth API, fluid_player_add_mem." +HOMEPAGE="https://code.launchpad.net/~mgiuca/fluidsynth/midi-buffer" +SRC_URI="bzr+lp:~mgiuca/fluidsynth/midi-buffer" +#CHECKSUM_MD5="" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="dev-libs/glib >= 2.24.1 + media-libs/libsndfile >= 1.0.18" + +BUILD { + cd fluidsynth-1.1-midi-buffer + cd fluidsynth + cmake . + make +} + +INSTALL { + cd fluidsynth-1.1-midi-buffer + cd fluidsynth + make install +} + +LICENSE="GNU LGPL v2.1" +COPYRIGHT="2007-2011 Matt Giuca, Josh Green, Pedro Lopez-Cabanillas, David Henningsson" diff --git a/media-sound/fluidsynth/fluidsynth-1.1.3.bep b/media-sound/fluidsynth/fluidsynth-1.1.3.bep new file mode 100644 index 000000000..d4792455e --- /dev/null +++ b/media-sound/fluidsynth/fluidsynth-1.1.3.bep @@ -0,0 +1,22 @@ +DESCRIPTION="Fluidsynth is a software real-time synthesizer based on the Soundfont 2 specifications." +HOMEPAGE="http://www.fluidsynth.org/" +SRC_URI="http://sourceforge.net/projects/fluidsynth/files/fluidsynth-1.1.3/fluidsynth-1.1.3.tar.bz2/download" +CHECKSUM_MD5="6e35225b088eae0c2af0b78097941655" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="dev-libs/glib >= 2.24.1 + media-libs/libsndfile >= 1.0.18" + +BUILD { + cd fluidsynth-1.1.3 + cmake . + make +} + +INSTALL { + cd fluidsynth-1.1.3 + make install +} + +LICENSE="GNU LGPL v2.1" +COPYRIGHT="2007-2010 Josh Green, Pedro Lopez-Cabanillas, David Henningsson" diff --git a/media-sound/fluidsynth/fluidsynth-1.1.6.bep b/media-sound/fluidsynth/fluidsynth-1.1.6.bep new file mode 100644 index 000000000..86ea54247 --- /dev/null +++ b/media-sound/fluidsynth/fluidsynth-1.1.6.bep @@ -0,0 +1,23 @@ +DESCRIPTION="Fluidsynth is a software real-time synthesizer based on the Soundfont 2 specifications." +HOMEPAGE="http://www.fluidsynth.org/" +SRC_URI="http://sourceforge.net/projects/fluidsynth/files/fluidsynth-1.1.6/fluidsynth-1.1.6.tar.bz2/download" +CHECKSUM_MD5="f6e696690e989098f70641364fdffad7" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="dev-libs/glib >= 2.26.1 + media-libs/libsndfile >= 1.0.21 + sys-libs/readline >= 6.0" + +BUILD { + cd fluidsynth-1.1.6 + cmake . + make +} + +INSTALL { + cd fluidsynth-1.1.6 + make install prefix=`finddir B_COMMON_DIRECTORY` +} + +LICENSE="GNU LGPL v2.1" +COPYRIGHT="2007-2012 Josh Green, Pedro Lopez-Cabanillas, David Henningsson" diff --git a/media-sound/fluidsynth/patches/fluidsynth-1.1-midi-buffer.patch b/media-sound/fluidsynth/patches/fluidsynth-1.1-midi-buffer.patch new file mode 100644 index 000000000..e21a1f21f --- /dev/null +++ b/media-sound/fluidsynth/patches/fluidsynth-1.1-midi-buffer.patch @@ -0,0 +1,38 @@ +diff -Naur fluidsynth-1.1-midi-buffer/fluidsynth/CMakeLists.txt fluidsynth-1.1-midi-buffer-haiku/fluidsynth/CMakeLists.txt +--- fluidsynth-1.1-midi-buffer/fluidsynth/CMakeLists.txt 2011-04-24 20:59:42.047710208 -0300 ++++ fluidsynth-1.1-midi-buffer-haiku/fluidsynth/CMakeLists.txt 2011-04-24 21:01:20.278134784 -0300 +@@ -166,10 +166,18 @@ + add_definitions ( -mms-bitfields ) + endif ( MINGW ) + else ( WIN32 ) +-# Check PThreads, but not in Windows +- find_package ( Pthreads REQUIRED ) +- set ( HAVE_LIBPTHREAD ${PTHREADS_FOUND} ) +- set ( LIBFLUID_LIBS "m" ) ++ ++if (UNIX AND NOT BEOS) ++# Check PThreads, but not in Windows ++ find_package ( Pthreads REQUIRED ) ++ set ( HAVE_LIBPTHREAD ${PTHREADS_FOUND} ) ++ set ( LIBFLUID_LIBS "m" ) ++endif (UNIX AND NOT BEOS) ++ ++if (BEOS) ++set ( LIBFLUID_LIBS "network") ++endif (BEOS) ++ + endif ( WIN32 ) + + # IBM OS/2 +diff -Naur fluidsynth-1.1-midi-buffer/fluidsynth/src/utils/fluid_sys.h fluidsynth-1.1-midi-buffer-haiku/fluidsynth/src/utils/fluid_sys.h +--- fluidsynth-1.1-midi-buffer/fluidsynth/src/utils/fluid_sys.h 2011-04-24 20:59:42.047710208 -0300 ++++ fluidsynth-1.1-midi-buffer-haiku/fluidsynth/src/utils/fluid_sys.h 2011-04-24 21:02:01.829685760 -0300 +@@ -335,7 +335,7 @@ + sample data. + */ + +-#if defined(HAVE_SYS_MMAN_H) && !defined(__OS2__) ++#if defined(HAVE_SYS_MMAN_H) && !defined(__OS2__) && !defined(__HAIKU__) + #define fluid_mlock(_p,_n) mlock(_p, _n) + #define fluid_munlock(_p,_n) munlock(_p,_n) + #else diff --git a/media-sound/fluidsynth/patches/fluidsynth-1.1.3.patch b/media-sound/fluidsynth/patches/fluidsynth-1.1.3.patch new file mode 100644 index 000000000..a43b39386 --- /dev/null +++ b/media-sound/fluidsynth/patches/fluidsynth-1.1.3.patch @@ -0,0 +1,34 @@ +diff -Naur fluidsynth-1.1.3/CMakeLists.txt fluidsynth-1.1.3-haiku/CMakeLists.txt +--- fluidsynth-1.1.3/CMakeLists.txt 2010-10-10 22:16:30.031457280 -0300 ++++ fluidsynth-1.1.3-haiku/CMakeLists.txt 2011-04-24 14:21:01.000000000 -0300 +@@ -152,9 +152,18 @@ + endif ( MINGW ) + else ( WIN32 ) + # Check PThreads, but not in Windows ++ ++if (UNIX AND NOT BEOS) ++# Check PThreads, but not in Windows + find_package ( Pthreads REQUIRED ) + set ( HAVE_LIBPTHREAD ${PTHREADS_FOUND} ) + set ( LIBFLUID_LIBS "m" ) ++endif (UNIX AND NOT BEOS) ++ ++if (BEOS) ++set ( LIBFLUID_LIBS "network") ++endif (BEOS) ++ + endif ( WIN32 ) + + # IBM OS/2 +diff -Naur fluidsynth-1.1.3/src/utils/fluid_sys.h fluidsynth-1.1.3-haiku/src/utils/fluid_sys.h +--- fluidsynth-1.1.3/src/utils/fluid_sys.h 2010-10-10 22:16:30.022806528 -0300 ++++ fluidsynth-1.1.3-haiku/src/utils/fluid_sys.h 2011-04-24 14:17:52.000000000 -0300 +@@ -335,7 +335,7 @@ + sample data. + */ + +-#if defined(HAVE_SYS_MMAN_H) && !defined(__OS2__) ++#if defined(HAVE_SYS_MMAN_H) && !defined(__OS2__) && !defined(__HAIKU__) + #define fluid_mlock(_p,_n) mlock(_p, _n) + #define fluid_munlock(_p,_n) munlock(_p,_n) + #else diff --git a/media-sound/fluidsynth/patches/fluidsynth-1.1.6.patch b/media-sound/fluidsynth/patches/fluidsynth-1.1.6.patch new file mode 100644 index 000000000..d37506392 --- /dev/null +++ b/media-sound/fluidsynth/patches/fluidsynth-1.1.6.patch @@ -0,0 +1,35 @@ +diff -urN fluidsynth-1.1.6/CMakeLists.txt fluidsynth-1.1.6-haiku/CMakeLists.txt +--- fluidsynth-1.1.6/CMakeLists.txt ++++ fluidsynth-1.1.6/haiku/CMakeLists.txt +@@ -168,9 +168,16 @@ + endif ( MINGW ) + else ( WIN32 ) + # Check PThreads, but not in Windows +- find_package ( Pthreads REQUIRED ) +- set ( HAVE_LIBPTHREAD ${PTHREADS_FOUND} ) +- set ( LIBFLUID_LIBS "m" ) ++if (UNIX AND NOT HAIKU) ++# Check PThreads, but not in Windows ++ find_package ( Pthreads REQUIRED ) ++ set ( HAVE_LIBPTHREAD ${PTHREADS_FOUND} ) ++ set ( LIBFLUID_LIBS "m" ) ++endif (UNIX AND NOT HAIKU) ++ ++if (HAIKU) ++set ( LIBFLUID_LIBS "network") ++endif (HAIKU) + endif ( WIN32 ) + + # IBM OS/2 +diff -Naur fluidsynth-1.1.6/src/utils/fluid_sys.h fluidsynth-1.1.3-haiku/src/utils/fluid_sys.h +--- fluidsynth-1.1.6/src/utils/fluid_sys.h ++++ fluidsynth-1.1.6-haiku/src/utils/fluid_sys.h +@@ -335,7 +335,7 @@ + sample data. + */ + +-#if defined(HAVE_SYS_MMAN_H) && !defined(__OS2__) ++#if defined(HAVE_SYS_MMAN_H) && !defined(__OS2__) && !defined(__HAIKU__) + #define fluid_mlock(_p,_n) mlock(_p, _n) + #define fluid_munlock(_p,_n) munlock(_p,_n) + #else diff --git a/media-sound/gogo-no-coda/gogo-no-coda-3.13.bep b/media-sound/gogo-no-coda/gogo-no-coda-3.13.bep new file mode 100644 index 000000000..a69303f3f --- /dev/null +++ b/media-sound/gogo-no-coda/gogo-no-coda-3.13.bep @@ -0,0 +1,21 @@ +DESCRIPTION="Mp3 encoder based on LAME3.88, which is optimized for Enhanced 3D Now!/SSE/SSE2 and dual-CPUs." +HOMEPAGE="https://github.com/teragonaudio/gogo-no-coda" +SRC_URI="https://github.com/teragonaudio/gogo-no-coda/archive/master.zip" +CHECKSUM_MD5="b60ae82f7fc70cbefd2e4003b9e13c8f" +REVISION="1" +STATUS_HAIKU="stable" +MESSAGE="This port only builds with gcc2. Use 'setgcc gcc2' before building." +DEPEND="dev-lang/nasm" + +BUILD { + cd gogo-no-coda-master/linux + make +} + +INSTALL { + cd gogo-no-coda-master/linux + make install prefix=`finddir B_COMMON_DIRECTORY` +} + +LICENSE="GNU LGPL v2" +COPYRIGHT="2001-2003 Respective gogo-no-coda creators" diff --git a/media-sound/gogo-no-coda/patches/gogo-no-coda-3.13.patch b/media-sound/gogo-no-coda/patches/gogo-no-coda-3.13.patch new file mode 100644 index 000000000..09dd4e49e --- /dev/null +++ b/media-sound/gogo-no-coda/patches/gogo-no-coda-3.13.patch @@ -0,0 +1,117 @@ +diff -Naur gogo-no-coda-master/engine/i386/cpu.c gogo-no-coda-master-haiku/engine/i386/cpu.c +--- gogo-no-coda-master/engine/i386/cpu.c 2011-05-17 09:51:26.045350912 +0000 ++++ gogo-no-coda-master-haiku/engine/i386/cpu.c 2012-12-30 16:42:53.811073536 +0000 +@@ -162,7 +162,7 @@ + } + return nCPU; + +-#elif defined(BeOS) ++#elif defined(BeOS) || defined(__HAIKU__) + + system_info udtsystem_info; + get_system_info(&udtsystem_info); +diff -Naur gogo-no-coda-master/engine/i386/fftsse.nas gogo-no-coda-master-haiku/engine/i386/fftsse.nas +--- gogo-no-coda-master/engine/i386/fftsse.nas 2011-05-17 09:51:26.045613056 +0000 ++++ gogo-no-coda-master-haiku/engine/i386/fftsse.nas 2012-12-30 16:42:53.823656448 +0000 +@@ -23,14 +23,14 @@ + Q_SQRT2 dd 1.41421356237, 1.41421356237, 1.41421356237, 1.41421356237 + + Q_1 dd 1.0, 1.0, 1.0, 1.0 +-costab dd 9.238795325112867e-01F, 9.238795325112867e-01F, 9.238795325112867e-01F, 9.238795325112867e-01F +- dd 3.826834323650898e-01F, 3.826834323650898e-01F, 3.826834323650898e-01F, 3.826834323650898e-01F +- dd 9.951847266721969e-01F, 9.951847266721969e-01F, 9.951847266721969e-01F, 9.951847266721969e-01F +- dd 9.801714032956060e-02F, 9.801714032956060e-02F, 9.801714032956060e-02F, 9.801714032956060e-02F +- dd 9.996988186962042e-01F, 9.996988186962042e-01F, 9.996988186962042e-01F, 9.996988186962042e-01F +- dd 2.454122852291229e-02F, 2.454122852291229e-02F, 2.454122852291229e-02F, 2.454122852291229e-02F +- dd 9.999811752826011e-01F, 9.999811752826011e-01F, 9.999811752826011e-01F, 9.999811752826011e-01F +- dd 6.135884649154475e-03F, 6.135884649154475e-03F, 6.135884649154475e-03F, 6.135884649154475e-03F ++costab dd 9.238795325112867e-01, 9.238795325112867e-01, 9.238795325112867e-01, 9.238795325112867e-01 ++ dd 3.826834323650898e-01, 3.826834323650898e-01, 3.826834323650898e-01, 3.826834323650898e-01 ++ dd 9.951847266721969e-01, 9.951847266721969e-01, 9.951847266721969e-01, 9.951847266721969e-01 ++ dd 9.801714032956060e-02, 9.801714032956060e-02, 9.801714032956060e-02, 9.801714032956060e-02 ++ dd 9.996988186962042e-01, 9.996988186962042e-01, 9.996988186962042e-01, 9.996988186962042e-01 ++ dd 2.454122852291229e-02, 2.454122852291229e-02, 2.454122852291229e-02, 2.454122852291229e-02 ++ dd 9.999811752826011e-01, 9.999811752826011e-01, 9.999811752826011e-01, 9.999811752826011e-01 ++ dd 6.135884649154475e-03, 6.135884649154475e-03, 6.135884649154475e-03, 6.135884649154475e-03 + + align 32 + revLongInit db 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 +diff -Naur gogo-no-coda-master/engine/i386/makecfg.c gogo-no-coda-master-haiku/engine/i386/makecfg.c +--- gogo-no-coda-master/engine/i386/makecfg.c 2011-05-17 09:51:26.045875200 +0000 ++++ gogo-no-coda-master-haiku/engine/i386/makecfg.c 2012-12-30 16:42:53.837812224 +0000 +@@ -18,7 +18,7 @@ + RW_t RW; + RO_t RO; + +-#if (defined(WIN32) || defined(__linux__) || defined(__os2__)) && !defined(__BORLANDC__) && !defined(__MINGW32_VERSION) ++#if (defined(WIN32) || defined(__linux__) || defined(__os2__) || defined(__HAIKU__)) && !defined(__BORLANDC__) && !defined(__MINGW32_VERSION) + #define USE_BSS + #endif + +diff -Naur gogo-no-coda-master/linux/Makefile gogo-no-coda-master-haiku/linux/Makefile +--- gogo-no-coda-master/linux/Makefile 2011-05-17 09:51:26.057147392 +0000 ++++ gogo-no-coda-master-haiku/linux/Makefile 2012-12-30 16:44:48.008912896 +0000 +@@ -8,6 +8,8 @@ + ####################################################### + + TARGET = gogo ++prefix = ++BINDIR = $(prefix)/bin + + ####################################################### + +@@ -16,12 +18,11 @@ + AS = nasm -i../engine/i386/ + LD = gcc + MAKECFG = makecfg +-LIBS = -lm + VPATH = ../engine:../engine/i386:../file_io + + LDFLAGS = $(PROF) + AFLAGS = -f elf -D__unix__ $(E3DN) +-CFLAGS = -Wall $(PROF) -DNDEBUG ++CFLAGS = -Wall $(PROF) -D__unix__ + #CFLAGS += -Wpointer-arith -Wshadow -Wwrite-strings -Wconversion -Waggregate-return -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wredundant-decls -Wnested-externs + + CFLAGS += -DHAVE_CONFIG_H -DLAMEPARSE -DLAMESNDFILE +@@ -97,7 +98,6 @@ + #COBJS += $(LIBSNDCOBJS) + + # if FreeBSD then change -lc_r +-LIBS += -lpthread + CFLAGS += -DUSE_PTHREAD + COBJS += thread.o + +@@ -105,9 +105,10 @@ + + all: $(TARGET) + +-install : $(TARGET) +- cp $(TARGET) /usr/local/bin +- strip /usr/local/bin/$(TARGET) ++install : $(TARGET) $(BINDIR) ++ mkdir -p $(DESTDIR)$(BINDIR) ++ install -m 0755 $(TARGET) $(DESTDIR)$(BINDIR) ++ strip $(DESTDIR)$(BINDIR)/$(TARGET) + + $(TARGET): $(COBJS) $(AOBJS) + $(LD) $(COBJS) $(AOBJS) $(LDFLAGS) -o $(TARGET) $(LIBS) +diff -Naur gogo-no-coda-master/main.c gogo-no-coda-master-haiku/main.c +--- gogo-no-coda-master/main.c 2011-05-17 09:51:26.057409536 +0000 ++++ gogo-no-coda-master-haiku/main.c 2012-12-30 16:42:53.853803008 +0000 +@@ -5,13 +5,13 @@ + * Copyright(C) 2001,2002,2003 gogo-developer + */ + +-#if defined(__linux__) || defined(__ppc__) || defined(__FreeBSD__) ++#if defined(__linux__) || defined(__ppc__) || defined(__FreeBSD__) || defined(__HAIKU__) + #define USE_ITIMER + #include + #include + #include + #endif +-#if defined(__linux__) || defined(__os2__) || defined(__ppc__) || defined(__CYGWIN32__) || defined(__FreeBSD__) ++#if defined(__linux__) || defined(__os2__) || defined(__ppc__) || defined(__CYGWIN32__) || defined(__FreeBSD__) || defined(__HAIKU__) + # define min(x,y) (((x)<(y))?(x):(y)) + # define max(x,y) (((x)>(y))?(x):(y)) + #endif diff --git a/media-sound/jack2/jack2-1.9.8.bep b/media-sound/jack2/jack2-1.9.8.bep new file mode 100644 index 000000000..9f83969e5 --- /dev/null +++ b/media-sound/jack2/jack2-1.9.8.bep @@ -0,0 +1,23 @@ +DESCRIPTION="jack2 is a C++ version of the JACK low-latency audio server for multi-processor machines." +HOMEPAGE="https://github.com/Barrett17/jack2-for-haiku" +SRC_URI="git://github.com/Barrett17/jack2-for-haiku.git" +REVISION="1" +STATUS_HAIKU="unstable" +DEPEND="media-libs/libsamplerate >= 0.1.8 + media-libs/libsndfile >= 1.0.21" +#CHECKSUM_MD5="" +MESSAGE="This port only builds with gcc4." +BUILD { + cd jack2-1.9.8 + python ./waf configure --prefix=/boot/common/ + python ./waf build +} + +INSTALL { + cd jack2-1.9.8 + python ./waf build install +} + +LICENSE="GNU GPL v2" +COPYRIGHT="2001-2011 Paul Davis." + diff --git a/media-sound/lame/lame-3.98.4.bep b/media-sound/lame/lame-3.98.4.bep index b7d6b7dba..d5f82fbe4 100644 --- a/media-sound/lame/lame-3.98.4.bep +++ b/media-sound/lame/lame-3.98.4.bep @@ -14,7 +14,7 @@ BUILD { libtoolize --force --copy --install aclocal -I m4 autoconf --warnings=none - ./configure --prefix=/boot/common --without-gtk + ./configure --prefix=`finddir B_COMMON_DIRECTORY` --without-gtk make } diff --git a/media-sound/lame/lame-3.99.bep b/media-sound/lame/lame-3.99.bep new file mode 100644 index 000000000..79a54d80d --- /dev/null +++ b/media-sound/lame/lame-3.99.bep @@ -0,0 +1,26 @@ +DESCRIPTION="LAME Ain't an MP3 Encoder" +HOMEPAGE="http://lame.sourceforge.net/" +SRC_URI="http://downloads.sourceforge.net/project/lame/lame/3.99/lame-3.99.tar.gz" +CHECKSUM_MD5="7abacd1d0a65a63733335786015626db" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="" +BUILD { + cd lame-3.99 + mkdir -p m4 +# configure checks for gtk, but they didn't include the gtk.m4 so we need to. + cp ../../patches/gtk.m4 m4 + echo 'AC_CONFIG_MACRO_DIR([m4])' >> configure.in + libtoolize --force --copy --install + aclocal -I m4 + autoconf --warnings=none + ./configure --prefix=`finddir B_COMMON_DIRECTORY` --without-gtk + make +} + +INSTALL { + cd lame-3.99 + make install +} +LICENSE="GNU LGPL v2" +COPYRIGHT="1998-2011 Mike Cheng et al." diff --git a/media-sound/lame/lame-398-2.bep b/media-sound/lame/lame-398-2.bep index 3d47050eb..35b0cb71b 100644 --- a/media-sound/lame/lame-398-2.bep +++ b/media-sound/lame/lame-398-2.bep @@ -11,7 +11,7 @@ BUILD { aclocal autoconf automake - ./configure --prefix=/boot/common + ./configure --prefix=`finddir B_COMMON_DIRECTORY` make } diff --git a/media-sound/lame/patches/lame-3.99.patch b/media-sound/lame/patches/lame-3.99.patch new file mode 100644 index 000000000..5769c5d69 --- /dev/null +++ b/media-sound/lame/patches/lame-3.99.patch @@ -0,0 +1,13 @@ +diff -urN lame-3.99/configure.in lame-3.99-haiku/configure.in +--- lame-3.99/configure.in 2010-06-21 14:16:05.000000000 +0000 ++++ lame-3.99-haiku/configure.in 2010-06-21 15:12:31.000000000 +0000 +@@ -343,6 +343,9 @@ + *solaris*) + LIBS="$LIBS -lnsl" + ;; ++ *haiku*) ++ LIBS="$LIBS -lnetwork" ++ ;; + esac + fi + fi diff --git a/media-sound/milkytracker/milkytracker-0.90.85.bep b/media-sound/milkytracker/milkytracker-0.90.85.bep new file mode 100644 index 000000000..6a8dd7a64 --- /dev/null +++ b/media-sound/milkytracker/milkytracker-0.90.85.bep @@ -0,0 +1,29 @@ +DESCRIPTION="Fasttracker 2 inspired music tracker" +HOMEPAGE="www.orangejua.de/milkytracker.shtml" +SRC_URI="http://www.orangejua.de/archives/MilkyTracker-0.90.85-haiku-2-source.zip" +CHECKSUM_MD5="9d844e81527aa397aa06d648099af2f4" +STATUS_HAIKU="stable" +REVISION="1" +DEPEND="media-libs/libsdl >= 1.2 + sys-libs/zlib >= 1.2.5" + +BUILD { + cd 'MilkyTracker Source Code'/platforms/haiku + bash ./Add_Jamfiles.sh + cd ../.. + jam +} + +INSTALL { + cd 'MilkyTracker Source Code'/src/tracker + APPDIR=`finddir B_APPS_DIRECTORY`/MilkyTracker + APPSETTINGSDIR=`finddir B_USER_SETTINGS_DIRECTORY`/MilkyTracker/ + mkdir -p ${DESTDIR}/${APPSETTINGSDIR} + mkdir -p ${DESTDIR}/${APPDIR} + cp -af MilkyTracker ${DESTDIR}/${APPDIR} + cd haiku/MilkySettings + cp -af MilkySettings ${DESTDIR}/${APPSETTINGSDIR} +} + +LICENSE="GNU GPL v3" +COPYRIGHT="1994-2006 Peter Barth, Christopher O'Neill, Antti S. Lankila, Varthall, Andrew Simper, David Ross, Stuart Caie, Claudio Matsuoka" diff --git a/media-sound/mpg123/mpg123-1.12.1.bep b/media-sound/mpg123/mpg123-1.12.1.bep index 6164581a5..361107799 100644 --- a/media-sound/mpg123/mpg123-1.12.1.bep +++ b/media-sound/mpg123/mpg123-1.12.1.bep @@ -10,7 +10,7 @@ BUILD { libtoolize --force --copy --install aclocal autoconf - ./configure --prefix=/boot/common --disable-aligncheck + ./configure --prefix=`finddir B_COMMON_DIRECTORY` --disable-aligncheck make } diff --git a/media-sound/naspro/naspro-0.2.9-hg.bep b/media-sound/naspro/naspro-0.2.9-hg.bep index bf56aa1da..7129d2e0f 100644 --- a/media-sound/naspro/naspro-0.2.9-hg.bep +++ b/media-sound/naspro/naspro-0.2.9-hg.bep @@ -8,7 +8,7 @@ DEPEND="" BUILD { cd naspro-0.2.9-hg/naspro-core ./autogen.sh - ./configure --prefix=/boot/common + ./configure --prefix=`finddir B_COMMON_DIRECTORY` make } diff --git a/media-sound/ocp/ocp-0.1.21-git.bep b/media-sound/ocp/ocp-0.1.21-git.bep new file mode 100644 index 000000000..f300ccc3b --- /dev/null +++ b/media-sound/ocp/ocp-0.1.21-git.bep @@ -0,0 +1,26 @@ +DESCRIPTION="ocp - Open Cubic Player, a music player ported from DOS" +HOMEPAGE="http://stian.cubic.org/project-ocp.php" +SRC_URI="git://git.code.sf.net/p/opencubicplayer/code" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="media-libs/libvorbis >= 1.3.1 + media-libs/libogg >= 1.2.2 + sys-devel/gettext >= 0.18.1.1 + media-libs/libsdl >= 1.2.14" +# media-libs/flac >= 1.2.1" +# ncurses zlib ... cf. ocp.spec +MESSAGE="This port requires gcc4" +BUILD { + cd code + autoconf + CPPFLAGS=-I/boot/common/include LDFLAGS=-L/boot/common/lib ./configure --prefix=`finddir B_COMMON_DIRECTORY` + make +} + +INSTALL { + cd code + make install +} + +LICENSE="GNU GPL v2" +COPYRIGHT="1994-2012 Niklas Beisert, Stian Skjelstad and others" diff --git a/media-sound/ocp/ocp-snapshot20110319.bep b/media-sound/ocp/ocp-snapshot20110319.bep new file mode 100644 index 000000000..1998800f0 --- /dev/null +++ b/media-sound/ocp/ocp-snapshot20110319.bep @@ -0,0 +1,27 @@ +DESCRIPTION="ocp - Open Cubic Player, a music player ported from DOS" +HOMEPAGE="http://stian.cubic.org/project-ocp.php" +SRC_URI="http://stian.cubic.org/ocp/ocp-snapshot-20110319.tar.bz2" +CHECKSUM_MD5="4adb34d39053e06bca00aa6b4ec8dd93" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="media-libs/libvorbis >= 1.3.1 + media-libs/libogg >= 1.2.2 + sys-devel/gettext >= 0.18.1.1 + media-libs/libsdl >= 1.2.14" +# media-libs/flac >= 1.2.1" +# ncurses zlib ... cf. ocp.spec +MESSAGE="This port requires gcc4" +BUILD { + cd ocp-snapshot-20110319 + autoconf + CPPFLAGS=-I/boot/common/include LDFLAGS=-L/boot/common/lib ./configure --prefix=`finddir B_COMMON_DIRECTORY` + make +} + +INSTALL { + cd ocp-snapshot-20110319 + make install +} + +LICENSE="GNU GPL v2" +COPYRIGHT="1994-2011 Niklas Beisert, Stian Skjelstad and others" diff --git a/media-sound/ocp/ocp-snapshot20110320.bep b/media-sound/ocp/ocp-snapshot20110320.bep new file mode 100644 index 000000000..0df6d4339 --- /dev/null +++ b/media-sound/ocp/ocp-snapshot20110320.bep @@ -0,0 +1,27 @@ +DESCRIPTION="ocp - Open Cubic Player, a music player ported from DOS" +HOMEPAGE="http://stian.cubic.org/project-ocp.php" +SRC_URI="http://stian.cubic.org/ocp/ocp-snapshot-20110320.tar.bz2" +CHECKSUM_MD5="febb786fc6c1450a404578369a1f2adc" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="media-libs/libvorbis >= 1.3.1 + media-libs/libogg >= 1.2.2 + sys-devel/gettext >= 0.18.1.1 + media-libs/libsdl >= 1.2.14" +# media-libs/flac >= 1.2.1" +# ncurses zlib ... cf. ocp.spec +MESSAGE="This port requires gcc4" +BUILD { + cd ocp-snapshot-20110320 + autoconf + CPPFLAGS=-I/boot/common/include LDFLAGS=-L/boot/common/lib ./configure --prefix=`finddir B_COMMON_DIRECTORY` + make +} + +INSTALL { + cd ocp-snapshot-20110320 + make install +} + +LICENSE="GNU GPL v2" +COPYRIGHT="1994-2011 Niklas Beisert, Stian Skjelstad and others" diff --git a/media-sound/ocp/patches/ocp-snapshot20110319.patch b/media-sound/ocp/patches/ocp-snapshot20110319.patch new file mode 100644 index 000000000..dfb3e8d8d --- /dev/null +++ b/media-sound/ocp/patches/ocp-snapshot20110319.patch @@ -0,0 +1,504 @@ +diff -ur ../ocp-snapshot-20110319.org/Makefile.in ./Makefile.in +--- ../ocp-snapshot-20110319.org/Makefile.in 2011-03-19 01:04:33.008650752 +0100 ++++ ocp-snapshot-20110319/Makefile.in 2011-03-19 02:03:20.319291392 +0100 +@@ -165,7 +165,7 @@ + $(MAKE) -C doc TOPDIR="../$(TOPDIR)" + + ocp: boot/kickload.o +- $(CC) $(LDFLAGS) -o $@ $^ -pthread @DL_LIBS@ @EFENCE_LIBS@ @DUMA_LIBS@ ++ $(CC) $(LDFLAGS) -o $@ $^ @PTHREAD_LIBS@ @DL_LIBS@ @EFENCE_LIBS@ @DUMA_LIBS@ + + ocp.hlp: doc/opencp.dox goodies/helpc/ocphhc + goodies/helpc/ocphhc doc/opencp.dox $@ +@@ -207,7 +207,7 @@ + rm -Rf config.h autom4te.cache Rules.make config.log config.status Makefile ocp.ini desktop/opencubicplayer.desktop doc/texi/faq.texi doc/texi/install.texi doc/texi/ocp.texi goodies/pack/Makefile goodies/helpc/Makefile + + fstypes$(LIB_SUFFIX): dirs $(fstypes_so) +- $(CC) $(SHARED_FLAGS) $(ICONV_LIBS) -o $@ $(fstypes_so) ++ $(CC) $(SHARED_FLAGS) $(ICONV_LIBS) $(LDFLAGS) -o $@ $(fstypes_so) + + libocp$(LIB_SUFFIX): $(libocp_so) + $(CC) $(SHARED_FLAGS) $(STATIC_LIBS) -o $@ $(libocp_so) +diff -ur ../ocp-snapshot-20110319.org/boot/kickload.c ./boot/kickload.c +--- ../ocp-snapshot-20110319.org/boot/kickload.c 2011-03-19 01:04:33.044826624 +0100 ++++ ocp-snapshot-20110319/boot/kickload.c 2011-03-19 02:03:20.439091200 +0100 +@@ -601,6 +601,8 @@ + + #ifdef __linux + dir=get_current_dir_name(); ++#elif defined(HAVE_GETCWD) ++ dir=getcwd(malloc(PATH_MAX), PATH_MAX); + #else /* BSD */ + dir=getwd(malloc(PATH_MAX)); + #endif +diff -ur ../ocp-snapshot-20110319.org/boot/pmain.c ./boot/pmain.c +--- ../ocp-snapshot-20110319.org/boot/pmain.c 2011-03-19 01:04:33.045350912 +0100 ++++ ocp-snapshot-20110319/boot/pmain.c 2011-03-19 15:09:03.064749568 +0100 +@@ -110,7 +110,7 @@ + printf(" curses : ncurses driver\n"); + printf(" x11 : x11 driver\n"); + printf(" vcsa : vcsa/fb linux console driver\n"); +- printf(" sdl : SDL video driverr\n"); ++ printf(" sdl : SDL video driver\n"); + printf("\nExample : ocp -fl0,r1 -vp75,f2 -spdevpdisk -sr48000 ftstar.xm\n"); + printf(" (for nice HD rendering of modules)\n"); + return errHelpPrinted; +diff -ur ../ocp-snapshot-20110319.org/config.h.in ./config.h.in +--- ../ocp-snapshot-20110319.org/config.h.in 2011-03-19 01:04:33.066060288 +0100 ++++ ocp-snapshot-20110319/config.h.in 2011-03-19 02:05:09.172490752 +0100 +@@ -190,6 +190,8 @@ + + #undef DLLVERSION + ++#undef HAVE_GETCWD ++ + #undef HAVE_MEMMEM + + #undef HAVE_QSORT +diff -ur ../ocp-snapshot-20110319.org/configure.ac ./configure.ac +--- ../ocp-snapshot-20110319.org/configure.ac 2011-03-19 01:04:33.051642368 +0100 ++++ ocp-snapshot-20110319/configure.ac 2011-03-19 02:44:49.498860032 +0100 +@@ -29,6 +29,7 @@ + AC_C_BIGENDIAN + + AC_SUBST(SHARED_FLAGS) ++AC_SUBST(PTHREAD_LIBS) + AC_SUBST(LIB_SUFFIX) + target=`gcc -dumpmachine` + case "$target" in +@@ -36,10 +37,18 @@ + SHARED_FLAGS="-dynamiclib -flat_namespace -undefined suppress" + CFLAGS="$CFLAGS -fno-common" + CXXFLAGS="$CXXFLAGS -fno-common" ++ PTHREAD_LIBS=-pthread + LIB_SUFFIX=.dylib + ;; ++ *-haiku*) ++ SHARED_FLAGS=-shared ++ LIB_SUFFIX=.so ++ PTHREAD_LIBS= ++ with_desktop_file_install=no ++ ;; + *) + SHARED_FLAGS=-shared ++ PTHREAD_LIBS=-pthread + LIB_SUFFIX=.so + ;; + esac +@@ -172,6 +181,7 @@ + ]) + ) + ++AC_CHECK_FUNCS(getcwd) + AC_CHECK_FUNCS(memmem) + AC_CHECK_FUNCS(qsort) + AC_CHECK_FUNCS(sysconf) +diff -ur ../ocp-snapshot-20110319.org/stuff/compat.c ./stuff/compat.c +--- ../ocp-snapshot-20110319.org/stuff/compat.c 2011-03-19 01:04:33.053739520 +0100 ++++ ocp-snapshot-20110319/stuff/compat.c 2011-03-19 02:10:17.354418688 +0100 +@@ -204,7 +204,7 @@ + *src=toupper(*src); + src++; + } +- return src; ++ return retval; + } + + #endif +diff -ur ../ocp-snapshot-20110319.org/devp/Makefile ./devp/Makefile +--- ../ocp-snapshot-20110319.org/devp/Makefile 2011-03-19 01:04:33.048234496 +0100 ++++ ocp-snapshot-20110319/devp/Makefile 2011-03-19 03:37:27.953679872 +0100 +@@ -13,7 +13,11 @@ + COREAUDIO_SO=devpcoreaudio$(LIB_SUFFIX) + endif + +-all: devpnone$(LIB_SUFFIX) devpdisk$(LIB_SUFFIX) $(OSS_SO) $(ALSA_SO) $(COREAUDIO_SO) ++ifeq ($(HAVE_SDL),1) ++SDL_SO=devpsdl$(LIB_SUFFIX) ++endif ++ ++all: devpnone$(LIB_SUFFIX) devpdisk$(LIB_SUFFIX) $(OSS_SO) $(ALSA_SO) $(COREAUDIO_SO) $(SDL_SO) + + devpnone_so=devpnone.o + devpnone$(LIB_SUFFIX): $(devpnone_so) +@@ -35,6 +39,10 @@ + devpcoreaudio$(LIB_SUFFIX):$(devpcoreaudio_so) + $(CC) $(SHARED_FLAGS) -o $@ $^ $(COREAUDIO_LIBS) + ++devpsdl_so=devpsdl.o ++devpsdl$(LIB_SUFFIX):$(devpsdl_so) ++ $(CC) $(SHARED_FLAGS) -o $@ $^ $(SDL_LIBS) ++ + clean: + rm -f *.o *$(LIB_SUFFIX) + +@@ -49,6 +57,9 @@ + ifeq ($(HAVE_COREAUDIO),1) + $(CP) $(COREAUDIO_SO) "$(DESTDIR)$(LIBDIR)" + endif ++ifeq ($(HAVE_SDL),1) ++ $(CP) $(SDL_SO) "$(DESTDIR)$(LIBDIR)" ++endif + + uninstall: + rm -f "$(DESTDIR)$(LIBDIR)/devpnone$(LIB_SUFFIX)" "$(DESTDIR)$(LIBDIR)/devpdisk$(LIB_SUFFIX)" +@@ -61,6 +72,9 @@ + ifeq ($(HAVE_COREAUDIO),1) + rm -f "$(DESTDIR)$(LIBDIR)/$(COREAUDIO_SO)" + endif ++ifeq ($(HAVE_SDL),1) ++ rm -f "$(DESTDIR)$(LIBDIR)/$(SDL_SO)" ++endif + + devposs.o: devposs.c \ + ../config.h \ +@@ -120,3 +134,12 @@ + ../dev/player.h \ + ../stuff/imsrtns.h + $(CC) devpcoreaudio.c -o $@ -c $(DEVPCOREAUDIO_CFLAGS) ++ ++devpsdl.o: devpsdl.c \ ++ ../config.h \ ++ ../types.h \ ++ ../boot/plinkman.h \ ++ ../dev/imsdev.h \ ++ ../dev/player.h \ ++ ../stuff/imsrtns.h ++ $(CC) devpsdl.c -o $@ -c $(SDL_CFLAGS) $(DEVPSDL_CFLAGS) +diff -ur ../ocp-snapshot-20110319.org/ocp.ini.in ./ocp.ini.in +--- ../ocp-snapshot-20110319.org/ocp.ini.in 2011-03-19 01:04:33.065798144 +0100 ++++ ocp-snapshot-20110319/ocp.ini.in 2011-03-20 15:56:58.479199232 +0100 +@@ -136,6 +136,9 @@ + path=/dev/dsp + mixer=/dev/mixer + ++[devpSDL] ++ link=devpsdl ++ + [devpDisk] + link=devpdisk + +--- /dev/null 2011-03-20 15:34:50.648381000 +0100 ++++ ocp-snapshot-20110319/devp/devpsdl.c 2011-03-20 21:05:30.579862528 +0100 +@@ -0,0 +1,321 @@ ++/* OpenCP Module Player ++ * copyright (c) '11 François Revol ++ * ++ * SDL Player device ++ * ++ * derived from the CoreAudio Player device ++ * copyright (c) '06-'10 Stian Skjelstad ++ * ++ * This program is free software; you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License as published by ++ * the Free Software Foundation; either version 2 of the License, or ++ * (at your option) any later version. ++ * ++ * This program is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with this program; if not, write to the Free Software ++ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. ++ * ++ * revision history: (please note changes here) ++ * -fr110319 François Revol ++ * -copied from devpcoreaudio ++ */ ++ ++#include "config.h" ++#include ++#include ++#include ++#include ++#include ++#include ++#include "types.h" ++#include "boot/plinkman.h" ++#include "dev/imsdev.h" ++#include "dev/player.h" ++#include "stuff/timer.h" ++#include "stuff/imsrtns.h" ++ ++/*#define PRINT(a) fprintf(stderr, a)*/ ++#define PRINT(a) do {} while(0) ++ ++extern struct sounddevice plrSDL; ++ ++/*static SDL_AudioSpec sdlSpec;*/ ++ ++/* stolen from devpcoreaudio.c */ ++ ++static void *playbuf=0; ++static int buflen; ++volatile static int kernpos, cachepos, bufpos; /* in bytes */ ++/* kernpos = kernel write header ++ * bufpos = the write header given out of this driver */ ++ ++/* playbuf kernpos cachepos bufpos buflen ++ * | | kernlen | | | ++ * | | cachelen | | ++ * ++ * on flush, we update all variables> * on getbufpos we return kernpos-(1 sample) as safe point to buffer up to ++ * on getplaypos we use last known kernpos if locked, else update kernpos ++ */ ++ ++ ++volatile static int cachelen, kernlen; /* to make life easier */ ++ ++volatile static uint32_t playpos; /* how many samples have we done totally */ ++ ++/* Avoid deadlocks due to signals catched when in the critical section */ ++#define SDL_LockAudio() \ ++ sigset_t _orgmask; \ ++ sigset_t _mask; \ ++ sigemptyset(&_mask); \ ++ sigaddset(&_mask, SIGALRM); \ ++ sigprocmask(SIG_BLOCK, &_mask, &_orgmask); \ ++ SDL_LockAudio() ++ ++#define SDL_UnlockAudio() \ ++ SDL_UnlockAudio(); \ ++ sigprocmask(SIG_SETMASK, &_orgmask, NULL) ++ ++ ++void theRenderProc(void *userdata, Uint8 *stream, int len) ++{ ++ int i, i2; ++ int done = 0; ++ ++#ifdef SDL_DEBUG ++ PRINT(("%s(,,%d)\n", __FUNCTION__, len)); ++#endif ++ ++ memset(stream, 0, len); ++ ++ SDL_LockAudio(); ++ ++ i = cachelen;/* >>2 *stereo + 16it */ ++ if (i > len) ++ i = len; ++ ++ kernlen = done = i; ++ cachelen -= i; ++ cachepos = kernpos; ++ ++ if ((i+kernpos)>buflen) ++ { ++ i2 = ( i + kernpos ) % buflen; ++ i = i - i2; ++ } else { ++ i2 = 0; ++ } ++ ++ memcpy(stream, playbuf+kernpos, i); ++ if (i2) ++ memcpy(stream+i, playbuf, i2); ++ ++ kernpos = (kernpos+i+i2)%buflen; ++ ++ SDL_UnlockAudio(); ++ ++ if (done < len) ++ fprintf(stderr, "%s: got %d of %d\n", __FUNCTION__, done, len); ++ /*PRINT(("%s: got %d of %d\n", __FUNCTION__, done, len));*/ ++} ++ ++ ++/* stolen from devposs */ ++static int sdlGetBufPos(void) ++{ ++ int retval; ++ PRINT(("%s()\n", __FUNCTION__)); ++ ++ /* this thing is utterly broken */ ++ ++ SDL_LockAudio(); ++ if (kernpos==bufpos) ++ { ++ if (cachelen|kernlen) ++ { ++ retval=kernpos; ++ SDL_UnlockAudio(); ++ return retval; ++ } ++ } ++ retval=(kernpos+buflen-4 /* 1 sample = 4 bytes*/)%buflen; ++ SDL_UnlockAudio(); ++ return retval; ++} ++ ++static int sdlGetPlayPos(void) ++{ ++ int retval; ++ PRINT(("%s()\n", __FUNCTION__)); ++ ++ SDL_LockAudio(); ++ retval=cachepos; ++ SDL_UnlockAudio(); ++ return retval; ++} ++ ++static void sdlIdle(void) ++{ ++ PRINT(("%s()\n", __FUNCTION__)); ++} ++ ++static void sdlAdvanceTo(unsigned int pos) ++{ ++ PRINT(("%s(%u)\n", __FUNCTION__, pos)); ++ SDL_LockAudio(); ++ ++ cachelen+=(pos-bufpos+buflen)%buflen; ++ bufpos=pos; ++ ++ SDL_UnlockAudio(); ++} ++ ++static uint32_t sdlGetTimer(void) ++{ ++ long retval; ++ PRINT(("%s()\n", __FUNCTION__)); ++ ++ SDL_LockAudio(); ++ ++ retval=playpos-kernlen; ++ ++ SDL_UnlockAudio(); ++ ++ return imuldiv(retval, 65536>>(2/*stereo+bit16*/), plrRate); ++} ++ ++static void sdlStop(void) ++{ ++ PRINT(("%s()\n", __FUNCTION__)); ++ /* TODO, forceflush */ ++ ++ SDL_PauseAudio(1); ++ ++ if (playbuf) ++ { ++ free(playbuf); ++ playbuf=0; ++ } ++ ++ plrGetBufPos=0; ++ plrGetPlayPos=0; ++ plrIdle=0; ++ plrAdvanceTo=0; ++ plrGetTimer=0; ++ ++ SDL_CloseAudio(); ++} ++ ++static int sdlPlay(void **buf, unsigned int *len) ++{ ++ SDL_AudioSpec desired; ++ int status; ++ PRINT(("%s(,&%d)\n", __FUNCTION__, *len)); ++ ++ if ((*len)<(plrRate&~3)) ++ *len=plrRate&~3; ++ if ((*len)>(plrRate*4)) ++ *len=plrRate*4; ++ playbuf=*buf=malloc(*len); ++ ++ memset(*buf, 0x80008000, (*len)>>2); ++ buflen = *len; ++ ++ cachepos=0; ++ kernpos=0; ++ bufpos=0; ++ cachelen=0; ++ kernlen=0; ++ ++ playpos=0; ++ ++ plrGetBufPos=sdlGetBufPos; ++ plrGetPlayPos=sdlGetPlayPos; ++ plrIdle=sdlIdle; ++ plrAdvanceTo=sdlAdvanceTo; ++ plrGetTimer=sdlGetTimer; ++ ++ ++ desired.freq = plrRate; ++ desired.format = AUDIO_S16SYS; ++ desired.channels = 2; ++ desired.samples = *len; ++ desired.callback = theRenderProc; ++ desired.userdata = NULL; ++ ++ status=SDL_OpenAudio(&desired, NULL); ++ if (status < 0) ++ { ++ fprintf(stderr, "[SDL] SDL_OpenAudio returned %d (%s)\n", (int)status, SDL_GetError()); ++ free(*buf); ++ *buf = playbuf = 0; ++ plrGetBufPos = 0; ++ plrGetPlayPos = 0; ++ plrIdle = 0; ++ plrAdvanceTo = 0; ++ plrGetTimer = 0; ++ return 0; ++ } ++ /*plrRate = sdlSpec.freq;*/ ++ SDL_PauseAudio(0); ++ return 1; ++} ++ ++static void sdlSetOptions(unsigned int rate, int opt) ++{ ++ PRINT(("%s(%u, %d)\n", __FUNCTION__, rate, opt)); ++ plrRate=rate; /* fixed */ ++ plrOpt=PLR_STEREO|PLR_16BIT|PLR_SIGNEDOUT; /* fixed fixed fixed */ ++} ++ ++static int sdlInit(const struct deviceinfo *c) ++{ ++ char drivername[FILENAME_MAX]; ++ int status; ++ PRINT(("%s()\n", __FUNCTION__)); ++ status = SDL_InitSubSystem(SDL_INIT_AUDIO); ++ if (status == 0) ++ { ++ fprintf(stderr, "[SDL] Using driver %s\n", SDL_AudioDriverName(drivername, sizeof(drivername))); ++ plrSetOptions=sdlSetOptions; ++ plrPlay=sdlPlay; ++ plrStop=sdlStop; ++ return 1; ++ } ++ fprintf(stderr, "[SDL] SDL_InitSubSystem returned %d (%s)\n", (int)status, SDL_GetError()); ++ return 0; ++} ++ ++static void sdlClose(void) ++{ ++ PRINT(("%s()\n", __FUNCTION__)); ++ SDL_QuitSubSystem(SDL_INIT_AUDIO); ++ plrSetOptions=0; ++ plrPlay=0; ++ plrStop=0; ++} ++ ++static int sdlDetect(struct deviceinfo *card) ++{ ++ PRINT(("%s()\n", __FUNCTION__)); ++ ++ /* ao is now created, the above is needed only ONCE */ ++ card->devtype=&plrSDL; ++ card->port=0; ++ card->port2=0; ++ card->subtype=-1; ++ card->mem=0; ++ card->chan=2; ++ ++ return 1; ++} ++ ++ ++struct sounddevice plrSDL={SS_PLAYER, 0, "SDL Player", sdlDetect, sdlInit, sdlClose, 0}; ++ ++char *dllinfo="driver plrSDL"; ++struct linkinfostruct dllextinfo = {"devpsdl", "OpenCP Player Device: None (c) 1994-09 Niklas Beisert, Tammo Hinrichs", DLLVERSION, 0 LINKINFOSTRUCT_NOEVENTS}; diff --git a/media-sound/schismtracker/schismtracker-20100713.bep b/media-sound/schismtracker/schismtracker-20100713.bep index c6989404e..d1c10a5d2 100644 --- a/media-sound/schismtracker/schismtracker-20100713.bep +++ b/media-sound/schismtracker/schismtracker-20100713.bep @@ -13,7 +13,7 @@ BUILD { autoconf autoheader automake --add-missing - ./configure --prefix=/boot/common + ./configure --prefix=`finddir B_COMMON_DIRECTORY` make } diff --git a/media-sound/twolame/twolame-0.3.13.bep b/media-sound/twolame/twolame-0.3.13.bep new file mode 100644 index 000000000..4fc7b7d54 --- /dev/null +++ b/media-sound/twolame/twolame-0.3.13.bep @@ -0,0 +1,24 @@ +DESCRIPTION="TwoLAME MPEG Audio Layer 2 encoder" +HOMEPAGE="http://www.twolame.org" +SRC_URI="http://downloads.sourceforge.net/twolame/twolame-0.3.13.tar.gz" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="" +CHECKSUM_MD5="4113d8aa80194459b45b83d4dbde8ddb" +BUILD { + cd twolame-0.3.13 + COMMON_DOCS=`finddir B_COMMON_DOCUMENTATION_DIRECTORY` + ./configure --prefix=`finddir B_COMMON_DIRECTORY` \ + --datadir=`finddir B_COMMON_DATA_DIRECTORY` \ + --docdir=$COMMON_DOCS/doc/twolame \ + --mandir=$COMMON_DOCS/man + make +} + +INSTALL { + cd twolame-0.3.13 + make install +} + +LICENSE="GNU LGPL v2.1" +COPYRIGHT="2004-2006 The TwoLAME Project" diff --git a/media-sound/vorbis-tools/vorbis-tools-1.2.0.bep b/media-sound/vorbis-tools/vorbis-tools-1.2.0.bep index b3dcd6efb..6e314d7c3 100644 --- a/media-sound/vorbis-tools/vorbis-tools-1.2.0.bep +++ b/media-sound/vorbis-tools/vorbis-tools-1.2.0.bep @@ -11,7 +11,7 @@ BUILD { aclocal -I m4 automake autoconf - ./configure --prefix=/boot/common + ./configure --prefix=`finddir B_COMMON_DIRECTORY` make } diff --git a/media-sound/vorbis-tools/vorbis-tools-1.4.0.bep b/media-sound/vorbis-tools/vorbis-tools-1.4.0.bep index 891733d53..9ee4fdad5 100644 --- a/media-sound/vorbis-tools/vorbis-tools-1.4.0.bep +++ b/media-sound/vorbis-tools/vorbis-tools-1.4.0.bep @@ -14,7 +14,10 @@ BUILD { aclocal -I m4 automake autoconf - ./configure --prefix=/boot/common + COMMON_DOCS=`finddir B_COMMON_DOCUMENTATION_DIRECTORY` + ./configure --prefix=`finddir B_COMMON_DIRECTORY` \ + --datarootdir=`finddir B_COMMON_DATA_DIRECTORY` \ + --mandir=$COMMON_DOCS/man make } diff --git a/media-video/ffmpeg/ffmpeg-0.10.2-vlc.bep b/media-video/ffmpeg/ffmpeg-0.10.2-vlc.bep new file mode 100644 index 000000000..9d69e0e65 --- /dev/null +++ b/media-video/ffmpeg/ffmpeg-0.10.2-vlc.bep @@ -0,0 +1,27 @@ +DESCRIPTION="FFmpeg is a complete, cross-platform solution to record, convert and stream audio and video. It includes libavcodec - the leading audio/video codec library." +HOMEPAGE="http://www.ffmpeg.org" +SRC_URI="http://www.ffmpeg.org/releases/ffmpeg-0.10.2.tar.bz2" +CHECKSUM_MD5="de1bd5fc4bbf3ef730a5361ee596fedd" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="media-libs/libogg >= 1.3.0 + media-libs/speex >= 1.2rc1 + media-libs/libtheora >= 1.1.0 + media-libs/libvorbis >= 1.3.2 + media-libs/libvpx >= 1.0.0" +BUILD { + cd ffmpeg-0.10.2 + ./configure --prefix=`finddir B_COMMON_DIRECTORY` --disable-debug --enable-shared \ + --enable-libvorbis --enable-libspeex --enable-libtheora --enable-libvpx \ + --enable-gpl --datadir=`finddir B_COMMON_DATA_DIRECTORY` + make +} + +INSTALL { + cd ffmpeg-0.10.2 + make install +} + +LICENSE="GNU GPL v2" +COPYRIGHT="2000-2003 Fabrice Bellard + 2003-2012 the FFmpeg developers" diff --git a/media-video/ffmpeg/ffmpeg-0.10.2.bep b/media-video/ffmpeg/ffmpeg-0.10.2.bep new file mode 100644 index 000000000..30b0122b7 --- /dev/null +++ b/media-video/ffmpeg/ffmpeg-0.10.2.bep @@ -0,0 +1,28 @@ +DESCRIPTION="FFmpeg is a complete, cross-platform solution to record, convert and stream audio and video. It includes libavcodec - the leading audio/video codec library." +HOMEPAGE="http://www.ffmpeg.org" +SRC_URI="http://www.ffmpeg.org/releases/ffmpeg-0.10.2.tar.bz2" +CHECKSUM_MD5="de1bd5fc4bbf3ef730a5361ee596fedd" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="media-libs/libogg >= 1.3.0 + media-libs/speex >= 1.2rc1 + media-libs/libtheora >= 1.1.0 + media-libs/libvorbis >= 1.3.2 + media-libs/libvpx >= 1.0.0" +BUILD { + cd ffmpeg-0.10.2 + ./configure --prefix=`finddir B_COMMON_DIRECTORY` --disable-debug --enable-shared \ + --enable-libvorbis --enable-libspeex --enable-libtheora --enable-libvpx \ + --datadir=`finddir B_COMMON_DATA_DIRECTORY` + make +} + +INSTALL { + cd ffmpeg-0.10.2 + make install +} + +LICENSE="GNU LGPL v2.1 + GNU GPL v2" +COPYRIGHT="2000-2003 Fabrice Bellard + 2003-2012 the FFmpeg developers" diff --git a/media-video/ffmpeg/ffmpeg-0.10.bep b/media-video/ffmpeg/ffmpeg-0.10.bep new file mode 100644 index 000000000..0df10e0e6 --- /dev/null +++ b/media-video/ffmpeg/ffmpeg-0.10.bep @@ -0,0 +1,27 @@ +DESCRIPTION="FFmpeg is a complete, cross-platform solution to record, convert and stream audio and video. It includes libavcodec - the leading audio/video codec library." +HOMEPAGE="http://www.ffmpeg.org" +SRC_URI="http://www.ffmpeg.org/releases/ffmpeg-0.10.tar.bz2" +CHECKSUM_MD5="dc665cc599a739e3c5262ccdac13d129" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="media-libs/libogg >= 1.3.0 + media-libs/speex >= 1.2rc1 + media-libs/libtheora >= 1.1.0 + media-libs/libvorbis >= 1.3.2 + media-libs/libvpx >= 1.0.0" +BUILD { + cd ffmpeg-0.10 + ./configure --prefix=`finddir B_COMMON_DIRECTORY` --disable-debug --enable-shared \ + --enable-libvorbis --enable-libspeex --enable-libtheora --enable-libvpx + make +} + +INSTALL { + cd ffmpeg-0.10 + make install +} + +LICENSE="GNU LGPL v2.1 + GNU GPL v2" +COPYRIGHT="2000-2003 Fabrice Bellard + 2003-2012 the FFmpeg developers" diff --git a/media-video/ffmpeg/ffmpeg-0.11.1.bep b/media-video/ffmpeg/ffmpeg-0.11.1.bep new file mode 100644 index 000000000..d1921cc63 --- /dev/null +++ b/media-video/ffmpeg/ffmpeg-0.11.1.bep @@ -0,0 +1,28 @@ +DESCRIPTION="FFmpeg is a complete, cross-platform solution to record, convert and stream audio and video. It includes libavcodec - the leading audio/video codec library." +HOMEPAGE="http://www.ffmpeg.org" +SRC_URI="http://www.ffmpeg.org/releases/ffmpeg-0.11.1.tar.bz2" +CHECKSUM_MD5="ff8cb914f657e164dd60ea1008b555a8" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="media-libs/libogg >= 1.3.0 + media-libs/speex >= 1.2rc1 + media-libs/libtheora >= 1.1.0 + media-libs/libvorbis >= 1.3.2 + media-libs/libvpx >= 1.0.0" +BUILD { + cd ffmpeg-0.11.1 + ./configure --prefix=`finddir B_COMMON_DIRECTORY` --disable-debug --enable-shared \ + --enable-libvorbis --enable-libspeex --enable-libtheora --enable-libvpx \ + --datadir=`finddir B_COMMON_DATA_DIRECTORY` + make +} + +INSTALL { + cd ffmpeg-0.11.1 + make install +} + +LICENSE="GNU LGPL v2.1 + GNU GPL v2" +COPYRIGHT="2000-2003 Fabrice Bellard + 2003-2012 the FFmpeg developers" diff --git a/media-video/ffmpeg/ffmpeg-0.5.bep b/media-video/ffmpeg/ffmpeg-0.5.bep index 35bb5a1b3..8cd65dcd9 100644 --- a/media-video/ffmpeg/ffmpeg-0.5.bep +++ b/media-video/ffmpeg/ffmpeg-0.5.bep @@ -7,7 +7,7 @@ STATUS_HAIKU="stable" DEPEND="" BUILD { cd ffmpeg-0.5 - ./configure --prefix=/boot/common --disable-debug --disable-mmx --enable-shared + ./configure --prefix=`finddir B_COMMON_DIRECTORY` --disable-debug --disable-mmx --enable-shared make } diff --git a/media-video/ffmpeg/ffmpeg-0.6.bep b/media-video/ffmpeg/ffmpeg-0.6.bep index 3a0f1fc15..861154286 100644 --- a/media-video/ffmpeg/ffmpeg-0.6.bep +++ b/media-video/ffmpeg/ffmpeg-0.6.bep @@ -7,7 +7,7 @@ STATUS_HAIKU="stable" DEPEND="" BUILD { cd ffmpeg-0.6 - ./configure --prefix=/boot/common --disable-debug --disable-mmx --enable-shared + ./configure --prefix=`finddir B_COMMON_DIRECTORY` --disable-debug --disable-mmx --enable-shared make } diff --git a/media-video/ffmpeg/ffmpeg-23081.bep b/media-video/ffmpeg/ffmpeg-23081.bep index 3b6a4cf9e..6a0cbb238 100644 --- a/media-video/ffmpeg/ffmpeg-23081.bep +++ b/media-video/ffmpeg/ffmpeg-23081.bep @@ -8,7 +8,7 @@ DEPEND="" BUILD { cd ffmpeg-23081 chmod 777 configure - ./configure --prefix=/boot/common --disable-debug --disable-mmx --enable-shared --enable-gpl + ./configure --prefix=`finddir B_COMMON_DIRECTORY` --disable-debug --disable-mmx --enable-shared --enable-gpl make } diff --git a/media-video/ffmpeg/ffmpeg-7407.bep b/media-video/ffmpeg/ffmpeg-7407.bep index e8e842956..2f2d3e0d2 100644 --- a/media-video/ffmpeg/ffmpeg-7407.bep +++ b/media-video/ffmpeg/ffmpeg-7407.bep @@ -8,7 +8,7 @@ DEPEND="" BUILD { cd ffmpeg-7407 chmod 777 configure - ./configure --prefix=/boot/common --disable-debug --disable-mmx --enable-shared --enable-gpl --enable-pp + ./configure --prefix=`finddir B_COMMON_DIRECTORY` --disable-debug --disable-mmx --enable-shared --enable-gpl --enable-pp make } diff --git a/media-video/ffmpeg/patches/ffmpeg-0.10-gcc2.patch b/media-video/ffmpeg/patches/ffmpeg-0.10-gcc2.patch new file mode 100644 index 000000000..935cd7276 --- /dev/null +++ b/media-video/ffmpeg/patches/ffmpeg-0.10-gcc2.patch @@ -0,0 +1,268 @@ +diff --git a/cmdutils.c b/cmdutils.c +index 386db3d..f918600 100644 +--- ffmpeg-0.10/cmdutils.c ++++ ffmpeg-0.10/cmdutils.c +@@ -89,7 +89,7 @@ static void log_callback_report(void *ptr, int level, const char *fmt, va_list v + char line[1024]; + static int print_prefix = 1; + +- va_copy(vl2, vl); ++ __va_copy(vl2, vl); + av_log_default_callback(ptr, level, fmt, vl); + av_log_format_line(ptr, level, fmt, vl2, line, sizeof(line), &print_prefix); + va_end(vl2); +diff --git a/ffmpeg.c b/ffmpeg.c +index 463e1f4..245e8b5 100644 +--- ffmpeg-0.10/ffmpeg.c ++++ ffmpeg-0.10/ffmpeg.c +@@ -1247,9 +1247,11 @@ need_realloc: + av_fifo_size(ost->fifo) / (enc->channels * osize); // FIXME wrong + + if (ost->audio_resample) { ++ uint8_t *buftmp2[] = { buftmp }; ++ const uint8_t *buf2[] = { buf }; + buftmp = audio_buf; +- size_out = swr_convert(ost->swr, ( uint8_t*[]){buftmp}, audio_buf_size / (enc->channels * osize), +- (const uint8_t*[]){buf }, size / (dec->channels * isize)); ++ size_out = swr_convert(ost->swr, buftmp2, audio_buf_size / (enc->channels * osize), ++ buf2, size / (dec->channels * isize)); + size_out = size_out * enc->channels * osize; + } else { + buftmp = buf; +diff --git a/ffprobe.c b/ffprobe.c +index ca6133e..43f9d39 100644 +--- ffmpeg-0.10/ffprobe.c ++++ ffmpeg-0.10/ffprobe.c +@@ -293,7 +293,9 @@ static void writer_print_time(WriterContext *wctx, const char *key, + writer_print_string(wctx, key, "N/A", 1); + } else { + double d = ts * av_q2d(*time_base); +- value_string(buf, sizeof(buf), (struct unit_value){.val.d=d, .unit=unit_second_str}); ++ struct unit_value value2 = {.unit=unit_second_str}; ++ value2.val.d = d; ++ value_string(buf, sizeof(buf), value2); + writer_print_string(wctx, key, buf, 0); + } + } +@@ -1249,8 +1251,8 @@ static void writer_register_all(void) + #define print_str_opt(k, v) writer_print_string(w, k, v, 1) + #define print_time(k, v, tb) writer_print_time(w, k, v, tb) + #define print_ts(k, v) writer_print_ts(w, k, v) +-#define print_val(k, v, u) writer_print_string(w, k, \ +- value_string(val_str, sizeof(val_str), (struct unit_value){.val.i = v, .unit=u}), 0) ++#define print_val(k, v, u) value2.val.i = v; value2.unit=u; writer_print_string(w, k, \ ++ value_string(val_str, sizeof(val_str), value2), 0); + #define print_section_header(s) writer_print_section_header(w, s) + #define print_section_footer(s) writer_print_section_footer(w, s) + #define show_tags(metadata) writer_show_tags(w, metadata) +@@ -1261,6 +1263,7 @@ static void show_packet(WriterContext *w, AVFormatContext *fmt_ctx, AVPacket *pk + AVStream *st = fmt_ctx->streams[pkt->stream_index]; + struct print_buf pbuf = {.s = NULL}; + const char *s; ++ struct unit_value value2; + + print_section_header("packet"); + s = av_get_media_type_string(st->codec->codec_type); +@@ -1404,6 +1407,7 @@ static void show_stream(WriterContext *w, AVFormatContext *fmt_ctx, int stream_i + const char *s; + AVRational display_aspect_ratio; + struct print_buf pbuf = {.s = NULL}; ++ struct unit_value value2; + + print_section_header("stream"); + +@@ -1516,6 +1520,7 @@ static void show_format(WriterContext *w, AVFormatContext *fmt_ctx) + { + char val_str[128]; + int64_t size = fmt_ctx->pb ? avio_size(fmt_ctx->pb) : -1; ++ struct unit_value value2; + + print_section_header("format"); + print_str("filename", fmt_ctx->filename); +@@ -1524,9 +1529,9 @@ static void show_format(WriterContext *w, AVFormatContext *fmt_ctx) + print_str("format_long_name", fmt_ctx->iformat->long_name); + print_time("start_time", fmt_ctx->start_time, &AV_TIME_BASE_Q); + print_time("duration", fmt_ctx->duration, &AV_TIME_BASE_Q); +- if (size >= 0) print_val ("size", size, unit_byte_str); ++ if (size >= 0) { print_val ("size", size, unit_byte_str); } + else print_str_opt("size", "N/A"); +- if (fmt_ctx->bit_rate > 0) print_val ("bit_rate", fmt_ctx->bit_rate, unit_bit_per_second_str); ++ if (fmt_ctx->bit_rate > 0) { print_val ("bit_rate", fmt_ctx->bit_rate, unit_bit_per_second_str); } + else print_str_opt("bit_rate", "N/A"); + show_tags(fmt_ctx->metadata); + print_section_footer("format"); +diff --git a/libavcodec/aacenc.c b/libavcodec/aacenc.c +index 55f0286..35d5f1a 100644 +--- ffmpeg-0.10/libavcodec/aacenc.c ++++ ffmpeg-0.10/libavcodec/aacenc.c +@@ -223,8 +223,9 @@ WINDOW_FUNC(eight_short) + const float *pwindow = sce->ics.use_kb_window[1] ? ff_aac_kbd_short_128 : ff_sine_128; + const float *in = audio + 448; + float *out = sce->ret; ++ int w; + +- for (int w = 0; w < 8; w++) { ++ for (w = 0; w < 8; w++) { + dsp->vector_fmul (out, in, w ? pwindow : swindow, 128); + out += 128; + in += 128; +@@ -686,11 +687,12 @@ static av_cold int dsp_init(AVCodecContext *avctx, AACEncContext *s) + + static av_cold int alloc_buffers(AVCodecContext *avctx, AACEncContext *s) + { ++ int ch; + FF_ALLOCZ_OR_GOTO(avctx, s->buffer.samples, 3 * 1024 * s->channels * sizeof(s->buffer.samples[0]), alloc_fail); + FF_ALLOCZ_OR_GOTO(avctx, s->cpe, sizeof(ChannelElement) * s->chan_map[0], alloc_fail); + FF_ALLOCZ_OR_GOTO(avctx, avctx->extradata, 5 + FF_INPUT_BUFFER_PADDING_SIZE, alloc_fail); + +- for(int ch = 0; ch < s->channels; ch++) ++ for(ch = 0; ch < s->channels; ch++) + s->planar_samples[ch] = s->buffer.samples + 3 * 1024 * ch; + + return 0; +diff --git a/libavutil/pixdesc.c b/libavutil/pixdesc.c +index e73fbfe..3cde56c 100644 +--- ffmpeg-0.10/libavutil/pixdesc.c ++++ ffmpeg-0.10/libavutil/pixdesc.c +@@ -1096,12 +1096,6 @@ const AVPixFmtDescriptor av_pix_fmt_descriptors[PIX_FMT_NB] = { + .log2_chroma_h = 1, + .flags = PIX_FMT_HWACCEL, + }, +- [PIX_FMT_VDA_VLD] = { +- .name = "vda_vld", +- .log2_chroma_w = 1, +- .log2_chroma_h = 1, +- .flags = PIX_FMT_HWACCEL, +- }, + [PIX_FMT_GRAY8A] = { + .name = "gray8a", + .nb_components = 2, +@@ -1110,16 +1104,6 @@ const AVPixFmtDescriptor av_pix_fmt_descriptors[PIX_FMT_NB] = { + { 0, 1, 2, 0, 7 }, /* A */ + }, + }, +- [PIX_FMT_GBR24P] = { +- .name = "gbr24p", +- .nb_components= 3, +- .comp = { +- { 1, 0, 1, 0, 7 }, /* B */ +- { 0, 0, 1, 0, 7 }, /* G */ +- { 2, 0, 1, 0, 7 }, /* R */ +- }, +- .flags = PIX_FMT_PLANAR | PIX_FMT_RGB, +- }, + [PIX_FMT_GBRP] = { + .name = "gbrp", + .nb_components = 3, +diff --git a/libswscale/swscale_unscaled.c b/libswscale/swscale_unscaled.c +index e1ba799..3820056 100644 +--- ffmpeg-0.10/libswscale/swscale_unscaled.c ++++ ffmpeg-0.10/libswscale/swscale_unscaled.c +@@ -370,30 +370,38 @@ static int planarRgbToRgbWrapper(SwsContext *c, const uint8_t* src[], int srcStr + } + + switch (c->dstFormat) { +- case PIX_FMT_BGR24: +- gbr24ptopacked24((const uint8_t* []) {src[1], src[0], src[2]}, (int []) {srcStride[1], srcStride[0], srcStride[2]}, ++ case PIX_FMT_BGR24: { ++ const uint8_t* src2[] = {src[1], src[0], src[2]}; ++ int srcStride2[] = {srcStride[1], srcStride[0], srcStride[2]}; ++ gbr24ptopacked24(src2, srcStride2, + dst[0] + srcSliceY * dstStride[0], dstStride[0], srcSliceH, c->srcW); + break; +- +- case PIX_FMT_RGB24: +- gbr24ptopacked24((const uint8_t* []) {src[2], src[0], src[1]}, (int []) {srcStride[2], srcStride[0], srcStride[1]}, ++ } ++ case PIX_FMT_RGB24: { ++ const uint8_t* src2[] = {src[2], src[0], src[1]}; ++ int srcStride2[] = {srcStride[2], srcStride[0], srcStride[1]}; ++ gbr24ptopacked24(src2, srcStride2, + dst[0] + srcSliceY * dstStride[0], dstStride[0], srcSliceH, c->srcW); + break; +- ++ } + case PIX_FMT_ARGB: + alpha_first = 1; +- case PIX_FMT_RGBA: +- gbr24ptopacked32((const uint8_t* []) {src[2], src[0], src[1]}, (int []) {srcStride[2], srcStride[0], srcStride[1]}, ++ case PIX_FMT_RGBA: { ++ const uint8_t* src2[] = {src[2], src[0], src[1]}; ++ int srcStride2[] = {srcStride[2], srcStride[0], srcStride[1]}; ++ gbr24ptopacked32(src2, srcStride2, + dst[0] + srcSliceY * dstStride[0], dstStride[0], srcSliceH, alpha_first, c->srcW); + break; +- ++ } + case PIX_FMT_ABGR: + alpha_first = 1; +- case PIX_FMT_BGRA: +- gbr24ptopacked32((const uint8_t* []) {src[1], src[0], src[2]}, (int []) {srcStride[1], srcStride[0], srcStride[2]}, ++ case PIX_FMT_BGRA: { ++ const uint8_t* src2[] = {src[1], src[0], src[2]}; ++ int srcStride2[] = {srcStride[1], srcStride[0], srcStride[2]}; ++ gbr24ptopacked32(src2, srcStride2, + dst[0] + srcSliceY * dstStride[0], dstStride[0], srcSliceH, alpha_first, c->srcW); + break; +- ++ } + default: + av_log(c, AV_LOG_ERROR, "unsupported planar RGB conversion %s -> %s\n", + av_get_pix_fmt_name(c->srcFormat), av_get_pix_fmt_name(c->dstFormat)); +diff --git a/configure b/configure +--- ffmpeg-0.10/configure 2012-01-26 22:15:59.047710208 +0000 ++++ ffmpeg-0.10-haiku/configure 2012-03-28 22:30:34.330563584 +0000 +@@ -1359,7 +1359,6 @@ + + aligned_stack_if_any="ppc x86" + fast_64bit_if_any="alpha ia64 mips64 parisc64 ppc64 sparc64 x86_64" +-fast_clz_if_any="alpha armv5te avr32 mips ppc x86" + fast_unaligned_if_any="armv6 ppc x86" + + inline_asm_deps="!tms470" +@@ -1866,7 +1865,7 @@ + CC_O='-o $@' + CXX_O='-o $@' + +-host_cflags='-D_ISOC99_SOURCE -O3 -g' ++host_cflags='-D_ISOC99_SOURCE -O2 -g' + host_libs='-lm' + + target_path='$(CURDIR)' +@@ -1948,6 +1947,7 @@ + done + + enable $ARCH_EXT_LIST $ALL_TESTS ++disable sse + + die_unknown(){ + echo "Unknown option \"$1\"." +@@ -2144,7 +2144,7 @@ + CC_DEPFLAGS='-MMD -MF $(@:.o=.d) -MT $@' + AS_DEPFLAGS='-MMD -MF $(@:.o=.d) -MT $@' + fi +- speed_cflags='-O3' ++ speed_cflags='-O2' + size_cflags='-Os' + elif $cc --version 2>/dev/null | grep -q Intel; then + cc_type=icc +@@ -2831,10 +2831,6 @@ + struct { int x; } __attribute__((packed)) x; + EOF + +-check_cc <fifo) / (enc->channels * osize); // FIXME wrong + + if (ost->audio_resample) { ++ uint8_t *buftmp2[] = { buftmp }; ++ const uint8_t *buf2[] = { buf }; + buftmp = audio_buf; +- size_out = swr_convert(ost->swr, ( uint8_t*[]){buftmp}, audio_buf_size / (enc->channels * osize), +- (const uint8_t*[]){buf }, size / (dec->channels * isize)); ++ size_out = swr_convert(ost->swr, buftmp2, audio_buf_size / (enc->channels * osize), ++ buf2, size / (dec->channels * isize)); + size_out = size_out * enc->channels * osize; + } else { + buftmp = buf; +diff --git a/ffprobe.c b/ffprobe.c +index ca6133e..43f9d39 100644 +--- ffmpeg-0.10.2/ffprobe.c ++++ ffmpeg-0.10.2/ffprobe.c +@@ -293,7 +293,9 @@ static void writer_print_time(WriterContext *wctx, const char *key, + writer_print_string(wctx, key, "N/A", 1); + } else { + double d = ts * av_q2d(*time_base); +- value_string(buf, sizeof(buf), (struct unit_value){.val.d=d, .unit=unit_second_str}); ++ struct unit_value value2 = {.unit=unit_second_str}; ++ value2.val.d = d; ++ value_string(buf, sizeof(buf), value2); + writer_print_string(wctx, key, buf, 0); + } + } +@@ -1249,8 +1251,8 @@ static void writer_register_all(void) + #define print_str_opt(k, v) writer_print_string(w, k, v, 1) + #define print_time(k, v, tb) writer_print_time(w, k, v, tb) + #define print_ts(k, v) writer_print_ts(w, k, v) +-#define print_val(k, v, u) writer_print_string(w, k, \ +- value_string(val_str, sizeof(val_str), (struct unit_value){.val.i = v, .unit=u}), 0) ++#define print_val(k, v, u) value2.val.i = v; value2.unit=u; writer_print_string(w, k, \ ++ value_string(val_str, sizeof(val_str), value2), 0); + #define print_section_header(s) writer_print_section_header(w, s) + #define print_section_footer(s) writer_print_section_footer(w, s) + #define show_tags(metadata) writer_show_tags(w, metadata) +@@ -1261,6 +1263,7 @@ static void show_packet(WriterContext *w, AVFormatContext *fmt_ctx, AVPacket *pk + AVStream *st = fmt_ctx->streams[pkt->stream_index]; + struct print_buf pbuf = {.s = NULL}; + const char *s; ++ struct unit_value value2; + + print_section_header("packet"); + s = av_get_media_type_string(st->codec->codec_type); +@@ -1404,6 +1407,7 @@ static void show_stream(WriterContext *w, AVFormatContext *fmt_ctx, int stream_i + const char *s; + AVRational display_aspect_ratio; + struct print_buf pbuf = {.s = NULL}; ++ struct unit_value value2; + + print_section_header("stream"); + +@@ -1516,6 +1520,7 @@ static void show_format(WriterContext *w, AVFormatContext *fmt_ctx) + { + char val_str[128]; + int64_t size = fmt_ctx->pb ? avio_size(fmt_ctx->pb) : -1; ++ struct unit_value value2; + + print_section_header("format"); + print_str("filename", fmt_ctx->filename); +@@ -1524,9 +1529,9 @@ static void show_format(WriterContext *w, AVFormatContext *fmt_ctx) + print_str("format_long_name", fmt_ctx->iformat->long_name); + print_time("start_time", fmt_ctx->start_time, &AV_TIME_BASE_Q); + print_time("duration", fmt_ctx->duration, &AV_TIME_BASE_Q); +- if (size >= 0) print_val ("size", size, unit_byte_str); ++ if (size >= 0) { print_val ("size", size, unit_byte_str); } + else print_str_opt("size", "N/A"); +- if (fmt_ctx->bit_rate > 0) print_val ("bit_rate", fmt_ctx->bit_rate, unit_bit_per_second_str); ++ if (fmt_ctx->bit_rate > 0) { print_val ("bit_rate", fmt_ctx->bit_rate, unit_bit_per_second_str); } + else print_str_opt("bit_rate", "N/A"); + show_tags(fmt_ctx->metadata); + print_section_footer("format"); +diff --git a/libavcodec/aacenc.c b/libavcodec/aacenc.c +index 55f0286..35d5f1a 100644 +--- ffmpeg-0.10.2/libavcodec/aacenc.c ++++ ffmpeg-0.10.2/libavcodec/aacenc.c +@@ -223,8 +223,9 @@ WINDOW_FUNC(eight_short) + const float *pwindow = sce->ics.use_kb_window[1] ? ff_aac_kbd_short_128 : ff_sine_128; + const float *in = audio + 448; + float *out = sce->ret; ++ int w; + +- for (int w = 0; w < 8; w++) { ++ for (w = 0; w < 8; w++) { + dsp->vector_fmul (out, in, w ? pwindow : swindow, 128); + out += 128; + in += 128; +@@ -686,11 +687,12 @@ static av_cold int dsp_init(AVCodecContext *avctx, AACEncContext *s) + + static av_cold int alloc_buffers(AVCodecContext *avctx, AACEncContext *s) + { ++ int ch; + FF_ALLOCZ_OR_GOTO(avctx, s->buffer.samples, 3 * 1024 * s->channels * sizeof(s->buffer.samples[0]), alloc_fail); + FF_ALLOCZ_OR_GOTO(avctx, s->cpe, sizeof(ChannelElement) * s->chan_map[0], alloc_fail); + FF_ALLOCZ_OR_GOTO(avctx, avctx->extradata, 5 + FF_INPUT_BUFFER_PADDING_SIZE, alloc_fail); + +- for(int ch = 0; ch < s->channels; ch++) ++ for(ch = 0; ch < s->channels; ch++) + s->planar_samples[ch] = s->buffer.samples + 3 * 1024 * ch; + + return 0; +diff --git a/libavutil/pixdesc.c b/libavutil/pixdesc.c +index e73fbfe..3cde56c 100644 +--- ffmpeg-0.10.2/libavutil/pixdesc.c ++++ ffmpeg-0.10.2/libavutil/pixdesc.c +@@ -1096,12 +1096,6 @@ const AVPixFmtDescriptor av_pix_fmt_descriptors[PIX_FMT_NB] = { + .log2_chroma_h = 1, + .flags = PIX_FMT_HWACCEL, + }, +- [PIX_FMT_VDA_VLD] = { +- .name = "vda_vld", +- .log2_chroma_w = 1, +- .log2_chroma_h = 1, +- .flags = PIX_FMT_HWACCEL, +- }, + [PIX_FMT_GRAY8A] = { + .name = "gray8a", + .nb_components = 2, +@@ -1110,16 +1104,6 @@ const AVPixFmtDescriptor av_pix_fmt_descriptors[PIX_FMT_NB] = { + { 0, 1, 2, 0, 7 }, /* A */ + }, + }, +- [PIX_FMT_GBR24P] = { +- .name = "gbr24p", +- .nb_components= 3, +- .comp = { +- { 1, 0, 1, 0, 7 }, /* B */ +- { 0, 0, 1, 0, 7 }, /* G */ +- { 2, 0, 1, 0, 7 }, /* R */ +- }, +- .flags = PIX_FMT_PLANAR | PIX_FMT_RGB, +- }, + [PIX_FMT_GBRP] = { + .name = "gbrp", + .nb_components = 3, +diff --git a/libswscale/swscale_unscaled.c b/libswscale/swscale_unscaled.c +index e1ba799..3820056 100644 +--- ffmpeg-0.10.2/libswscale/swscale_unscaled.c ++++ ffmpeg-0.10.2/libswscale/swscale_unscaled.c +@@ -370,30 +370,38 @@ static int planarRgbToRgbWrapper(SwsContext *c, const uint8_t* src[], int srcStr + } + + switch (c->dstFormat) { +- case PIX_FMT_BGR24: +- gbr24ptopacked24((const uint8_t* []) {src[1], src[0], src[2]}, (int []) {srcStride[1], srcStride[0], srcStride[2]}, ++ case PIX_FMT_BGR24: { ++ const uint8_t* src2[] = {src[1], src[0], src[2]}; ++ int srcStride2[] = {srcStride[1], srcStride[0], srcStride[2]}; ++ gbr24ptopacked24(src2, srcStride2, + dst[0] + srcSliceY * dstStride[0], dstStride[0], srcSliceH, c->srcW); + break; +- +- case PIX_FMT_RGB24: +- gbr24ptopacked24((const uint8_t* []) {src[2], src[0], src[1]}, (int []) {srcStride[2], srcStride[0], srcStride[1]}, ++ } ++ case PIX_FMT_RGB24: { ++ const uint8_t* src2[] = {src[2], src[0], src[1]}; ++ int srcStride2[] = {srcStride[2], srcStride[0], srcStride[1]}; ++ gbr24ptopacked24(src2, srcStride2, + dst[0] + srcSliceY * dstStride[0], dstStride[0], srcSliceH, c->srcW); + break; +- ++ } + case PIX_FMT_ARGB: + alpha_first = 1; +- case PIX_FMT_RGBA: +- gbr24ptopacked32((const uint8_t* []) {src[2], src[0], src[1]}, (int []) {srcStride[2], srcStride[0], srcStride[1]}, ++ case PIX_FMT_RGBA: { ++ const uint8_t* src2[] = {src[2], src[0], src[1]}; ++ int srcStride2[] = {srcStride[2], srcStride[0], srcStride[1]}; ++ gbr24ptopacked32(src2, srcStride2, + dst[0] + srcSliceY * dstStride[0], dstStride[0], srcSliceH, alpha_first, c->srcW); + break; +- ++ } + case PIX_FMT_ABGR: + alpha_first = 1; +- case PIX_FMT_BGRA: +- gbr24ptopacked32((const uint8_t* []) {src[1], src[0], src[2]}, (int []) {srcStride[1], srcStride[0], srcStride[2]}, ++ case PIX_FMT_BGRA: { ++ const uint8_t* src2[] = {src[1], src[0], src[2]}; ++ int srcStride2[] = {srcStride[1], srcStride[0], srcStride[2]}; ++ gbr24ptopacked32(src2, srcStride2, + dst[0] + srcSliceY * dstStride[0], dstStride[0], srcSliceH, alpha_first, c->srcW); + break; +- ++ } + default: + av_log(c, AV_LOG_ERROR, "unsupported planar RGB conversion %s -> %s\n", + av_get_pix_fmt_name(c->srcFormat), av_get_pix_fmt_name(c->dstFormat)); +diff --git a/configure b/configure +--- ffmpeg-0.10.2/configure 2012-01-26 22:15:59.047710208 +0000 ++++ ffmpeg-0.10-haiku/configure 2012-03-28 22:30:34.330563584 +0000 +@@ -1359,7 +1359,6 @@ + + aligned_stack_if_any="ppc x86" + fast_64bit_if_any="alpha ia64 mips64 parisc64 ppc64 sparc64 x86_64" +-fast_clz_if_any="alpha armv5te avr32 mips ppc x86" + fast_unaligned_if_any="armv6 ppc x86" + + inline_asm_deps="!tms470" +@@ -1866,7 +1865,7 @@ + CC_O='-o $@' + CXX_O='-o $@' + +-host_cflags='-D_ISOC99_SOURCE -O3 -g' ++host_cflags='-D_ISOC99_SOURCE -O2 -g' + host_libs='-lm' + + target_path='$(CURDIR)' +@@ -1948,6 +1947,7 @@ + done + + enable $ARCH_EXT_LIST $ALL_TESTS ++disable sse + + die_unknown(){ + echo "Unknown option \"$1\"." +@@ -2144,7 +2144,7 @@ + CC_DEPFLAGS='-MMD -MF $(@:.o=.d) -MT $@' + AS_DEPFLAGS='-MMD -MF $(@:.o=.d) -MT $@' + fi +- speed_cflags='-O3' ++ speed_cflags='-O2' + size_cflags='-Os' + elif $cc --version 2>/dev/null | grep -q Intel; then + cc_type=icc +@@ -2831,10 +2831,6 @@ + struct { int x; } __attribute__((packed)) x; + EOF + +-check_cc <streams[pkt->stream_index]; + struct print_buf pbuf = {.s = NULL}; + const char *s; ++ struct unit_value value2; + + print_section_header("packet"); + s = av_get_media_type_string(st->codec->codec_type); +@@ -1516,6 +1520,7 @@ static void show_format(WriterContext *w, AVFormatContext *fmt_ctx) + { + char val_str[128]; + int64_t size = fmt_ctx->pb ? avio_size(fmt_ctx->pb) : -1; ++ struct unit_value value2; + + print_section_header("format"); + print_str("filename", fmt_ctx->filename); +@@ -1524,9 +1529,9 @@ static void show_format(WriterContext *w, AVFormatContext *fmt_ctx) + print_str("format_long_name", fmt_ctx->iformat->long_name); + print_time("start_time", fmt_ctx->start_time, &AV_TIME_BASE_Q); + print_time("duration", fmt_ctx->duration, &AV_TIME_BASE_Q); +- if (size >= 0) print_val ("size", size, unit_byte_str); ++ if (size >= 0) { print_val ("size", size, unit_byte_str); } + else print_str_opt("size", "N/A"); +- if (fmt_ctx->bit_rate > 0) print_val ("bit_rate", fmt_ctx->bit_rate, unit_bit_per_second_str); ++ if (fmt_ctx->bit_rate > 0) { print_val ("bit_rate", fmt_ctx->bit_rate, unit_bit_per_second_str); } + else print_str_opt("bit_rate", "N/A"); + show_tags(fmt_ctx->metadata); + print_section_footer("format"); +diff --git a/libavutil/pixdesc.c b/libavutil/pixdesc.c +index e73fbfe..3cde56c 100644 +--- ffmpeg-0.11.1/libavutil/pixdesc.c ++++ ffmpeg-0.11.1/libavutil/pixdesc.c +@@ -1096,12 +1096,6 @@ const AVPixFmtDescriptor av_pix_fmt_descriptors[PIX_FMT_NB] = { + .log2_chroma_h = 1, + .flags = PIX_FMT_HWACCEL, + }, +- [PIX_FMT_VDA_VLD] = { +- .name = "vda_vld", +- .log2_chroma_w = 1, +- .log2_chroma_h = 1, +- .flags = PIX_FMT_HWACCEL, +- }, + [PIX_FMT_GRAY8A] = { + .name = "gray8a", + .nb_components = 2, + +diff --git a/configure b/configure +--- ffmpeg-0.11.1/configure 2012-01-26 22:15:59.047710208 +0000 ++++ ffmpeg-0.10-haiku/configure 2012-03-28 22:30:34.330563584 +0000 +@@ -1359,7 +1359,6 @@ + + aligned_stack_if_any="ppc x86" + fast_64bit_if_any="alpha ia64 mips64 parisc64 ppc64 sparc64 x86_64" +-fast_clz_if_any="alpha armv5te avr32 mips ppc x86" + fast_unaligned_if_any="armv6 ppc x86" + + inline_asm_deps="!tms470" +@@ -1866,7 +1865,7 @@ + CC_O='-o $@' + CXX_O='-o $@' + +-host_cflags='-D_ISOC99_SOURCE -O3 -g' ++host_cflags='-D_ISOC99_SOURCE -O2 -g' + host_libs='-lm' + + target_path='$(CURDIR)' +@@ -1948,6 +1947,7 @@ + done + + enable $ARCH_EXT_LIST $ALL_TESTS ++disable sse + + die_unknown(){ + echo "Unknown option \"$1\"." +@@ -2144,7 +2144,7 @@ + CC_DEPFLAGS='-MMD -MF $(@:.o=.d) -MT $@' + AS_DEPFLAGS='-MMD -MF $(@:.o=.d) -MT $@' + fi +- speed_cflags='-O3' ++ speed_cflags='-O2' + size_cflags='-Os' + elif $cc --version 2>/dev/null | grep -q Intel; then + cc_type=icc +@@ -2831,10 +2831,6 @@ + struct { int x; } __attribute__((packed)) x; + EOF + +-check_cc <out_channel_layouts); + + if(out_rate > 0) { +- out_samplerates = avfilter_make_format_list((int[]){ out_rate, -1 }); ++ int rate_tmp[] = { out_rate, -1 }; ++ out_samplerates = avfilter_make_format_list(rate_tmp); + } else { + out_samplerates = ff_all_samplerates(); + } + avfilter_formats_ref(out_samplerates, &outlink->in_samplerates); + + if(out_format != AV_SAMPLE_FMT_NONE) { +- out_formats = avfilter_make_format_list((int[]){ out_format, -1 }); ++ int format_tmp[] = { out_format, -1 }; ++ out_formats = avfilter_make_format_list(format_tmp); + } else + out_formats = avfilter_make_all_formats(AVMEDIA_TYPE_AUDIO); + avfilter_formats_ref(out_formats, &outlink->in_formats); + + if(out_layout) { +- out_layouts = avfilter_make_format64_list((int64_t[]){ out_layout, -1 }); ++ int64_t layout_tmp[] = { out_layout, -1 }; ++ out_layouts = avfilter_make_format64_list(layout_tmp); + } else + out_layouts = ff_all_channel_layouts(); + ff_channel_layouts_ref(out_layouts, &outlink->in_channel_layouts); +diff a/libswresample/x86/swresample_x86.c b/libswresample/x86/swresample_x86.c +--- ffmpeg-0.11.1/libswresample/x86/swresample_x86.c 2012-08-06 22:49:12.765984768 +0000 ++++ ffmpeg-0.11.1/libswresample/x86/swresample_x86.c 2012-08-06 22:57:04.826015744 +0000 +@@ -25,7 +25,7 @@ + #define PROTO2(pre, out, cap) PROTO(pre, int16, out, cap) PROTO(pre, int32, out, cap) PROTO(pre, float, out, cap) + #define PROTO3(pre, cap) PROTO2(pre, int16, cap) PROTO2(pre, int32, cap) PROTO2(pre, float, cap) + #define PROTO4(pre) PROTO3(pre, mmx) PROTO3(pre, sse) PROTO3(pre, sse2) PROTO3(pre, ssse3) PROTO3(pre, sse4) PROTO3(pre, avx) +-PROTO4() ++PROTO4( ) + PROTO4(_pack_2ch) + PROTO4(_pack_6ch) + PROTO4(_unpack_2ch) +diff -u a/libavcodec/pngenc.c b/libavcodec/pngenc.c +--- ffmpeg-0.11.1/libavcodec/pngenc.c 2012-08-06 22:49:04.337117184 +0000 ++++ ffmpeg-0.11.1/libavcodec/pngenc.c 2012-08-06 23:04:38.048758784 +0000 +@@ -55,8 +55,9 @@ + int x, mask, dst_x, j, b, bpp; + uint8_t *d; + const uint8_t *s; ++ int mask_tmp[] = {0x80, 0x08, 0x88, 0x22, 0xaa, 0x55, 0xff}; + +- mask = (int[]){0x80, 0x08, 0x88, 0x22, 0xaa, 0x55, 0xff}[pass]; ++ mask = mask_tmp[pass]; + switch(bits_per_pixel) { + case 1: + memset(dst, 0, row_size); +diff -u a/libswscale/swscale_unscaled.c b/libswscale/swscale_unscaled.c +--- ffmpeg-0.11.1/libswscale/swscale_unscaled.c 2012-08-06 22:49:12.936902656 +0000 ++++ ffmpeg-0.11.1/libswscale/swscale_unscaled.c 2012-08-06 23:18:25.574095360 +0000 +@@ -472,38 +472,40 @@ + } + + switch (c->dstFormat) { +- case PIX_FMT_BGR24: +- gbr24ptopacked24((const uint8_t *[]) { src[1], src[0], src[2] }, +- (int []) { srcStride[1], srcStride[0], srcStride[2] }, +- dst[0] + srcSliceY * dstStride[0], dstStride[0], ++ case PIX_FMT_BGR24: { ++ const uint8_t* src2[] = {src[1], src[0], src[2]}; ++ int srcStride2[] = {srcStride[1], srcStride[0], srcStride[2]}; ++ gbr24ptopacked24(src2, srcStride2, dst[0] + srcSliceY * dstStride[0], dstStride[0], + srcSliceH, c->srcW); + break; +- +- case PIX_FMT_RGB24: +- gbr24ptopacked24((const uint8_t *[]) { src[2], src[0], src[1] }, +- (int []) { srcStride[2], srcStride[0], srcStride[1] }, +- dst[0] + srcSliceY * dstStride[0], dstStride[0], ++ } ++ case PIX_FMT_RGB24: { ++ const uint8_t* src2[] = {src[2], src[0], src[1]}; ++ int srcStride2[] = {srcStride[2], srcStride[0], srcStride[1]}; ++ gbr24ptopacked24(src2, srcStride2, dst[0] + srcSliceY * dstStride[0], dstStride[0], + srcSliceH, c->srcW); + break; +- ++ } + case PIX_FMT_ARGB: + alpha_first = 1; +- case PIX_FMT_RGBA: +- gbr24ptopacked32((const uint8_t *[]) { src[2], src[0], src[1] }, +- (int []) { srcStride[2], srcStride[0], srcStride[1] }, ++ case PIX_FMT_RGBA: { ++ const uint8_t* src2[] = {src[2], src[0], src[1]}; ++ int srcStride2[] = {srcStride[2], srcStride[0], srcStride[1]}; ++ gbr24ptopacked32(src2, srcStride2, + dst[0] + srcSliceY * dstStride[0], dstStride[0], + srcSliceH, alpha_first, c->srcW); + break; +- ++ } + case PIX_FMT_ABGR: + alpha_first = 1; +- case PIX_FMT_BGRA: +- gbr24ptopacked32((const uint8_t *[]) { src[1], src[0], src[2] }, +- (int []) { srcStride[1], srcStride[0], srcStride[2] }, ++ case PIX_FMT_BGRA: { ++ const uint8_t* src2[] = {src[1], src[0], src[2]}; ++ int srcStride2[] = {srcStride[1], srcStride[0], srcStride[2]}; ++ gbr24ptopacked32(src2, srcStride2, + dst[0] + srcSliceY * dstStride[0], dstStride[0], + srcSliceH, alpha_first, c->srcW); + break; +- ++ } + default: + av_log(c, AV_LOG_ERROR, + "unsupported planar RGB conversion %s -> %s\n", +diff -u a/ffprobe.c b/ffprobe.c +--- ffmpeg-0.11.1/ffprobe.c 2012-08-06 22:49:00.930873344 +0000 ++++ ffmpeg-0.11.1/ffprobe.c 2012-08-06 23:26:28.951844864 +0000 +@@ -312,7 +312,9 @@ + writer_print_string(wctx, key, "N/A", 1); + } else { + double d = ts * av_q2d(*time_base); +- value_string(buf, sizeof(buf), (struct unit_value){.val.d=d, .unit=unit_second_str}); ++ struct unit_value value2 = {.unit=unit_second_str}; ++ value2.val.d = d; ++ value_string(buf, sizeof(buf), value2); + writer_print_string(wctx, key, buf, 0); + } + } +@@ -1188,7 +1190,7 @@ + #define print_time(k, v, tb) writer_print_time(w, k, v, tb) + #define print_ts(k, v) writer_print_ts(w, k, v) + #define print_val(k, v, u) value2.val.i = v; value2.unit=u; writer_print_string(w, k, \ +- value_string(val_str, sizeof(val_str), value2), 0); ++ value_string(val_str, sizeof(val_str), value2), 0); + #define print_section_header(s) writer_print_section_header(w, s) + #define print_section_footer(s) writer_print_section_footer(w, s) + #define show_tags(metadata) writer_show_tags(w, metadata) +@@ -1357,6 +1359,7 @@ + const char *s; + AVRational display_aspect_ratio; + AVBPrint pbuf; ++ struct unit_value value2; + + av_bprint_init(&pbuf, 1, AV_BPRINT_SIZE_UNLIMITED); + +@@ -1447,7 +1450,7 @@ + print_fmt("time_base", "%d/%d", stream->time_base.num, stream->time_base.den); + print_time("start_time", stream->start_time, &stream->time_base); + print_time("duration", stream->duration, &stream->time_base); +- if (dec_ctx->bit_rate > 0) print_val ("bit_rate", dec_ctx->bit_rate, unit_bit_per_second_str); ++ if (dec_ctx->bit_rate > 0) { print_val ("bit_rate", dec_ctx->bit_rate, unit_bit_per_second_str); } + else print_str_opt("bit_rate", "N/A"); + if (stream->nb_frames) print_fmt ("nb_frames", "%"PRId64, stream->nb_frames); + else print_str_opt("nb_frames", "N/A"); diff --git a/media-video/handbrake/handbrake-0.9.5.bep b/media-video/handbrake/handbrake-0.9.5.bep index 80addcb24..ba4f05613 100644 --- a/media-video/handbrake/handbrake-0.9.5.bep +++ b/media-video/handbrake/handbrake-0.9.5.bep @@ -3,7 +3,7 @@ HOMEPAGE="http://www.handbrake.fr" SRC_URI="http://handbrake.fr/rotation.php?file=HandBrake-0.9.5.tar.bz2" CHECKSUM_MD5="e17d3663fc36a985fe43e188695e3196" REVISION="1" -STATUS_HAIKU="stable" +STATUS_HAIKU="broken" DEPEND="dev-libs/libxml2 >= 2.7.7 media-libs/lame >= 3.98 media-libs/faac >= 1.28 @@ -30,7 +30,7 @@ BUILD { sed -i 's/MODULES += contrib\/libass/ /' make/include/main.defs sed -i 's/MODULES += contrib\/dvdread/ /' make/include/main.defs - ./configure --prefix=/boot/common + ./configure --prefix=`finddir B_COMMON_DIRECTORY` cd build make } diff --git a/media-video/vlc/patches/vlc-2.0.5.patch b/media-video/vlc/patches/vlc-2.0.5.patch new file mode 100644 index 000000000..349f686b4 --- /dev/null +++ b/media-video/vlc/patches/vlc-2.0.5.patch @@ -0,0 +1,552 @@ +--- vlc-2.0.5-orig/configure.ac 2012-10-22 09:03:51.049545216 +0000 ++++ vlc-2.0.5/configure.ac 2012-12-25 23:08:34.519045120 +0000 +@@ -279,11 +279,18 @@ + SYS=os2 + LDFLAGS_save="${LDFLAGS_save} -Zomf -Zbin-files -Zargs-wild"; LDFLAGS="${LDFLAGS_save}" + ;; ++ *haiku*) ++ SYS=haiku ++ VLC_ADD_LIBS([libvlccore libvlc vlc],[-lnetwork -lbe]) ++ VLC_ADD_PLUGIN([haiku_aout]) ++ VLC_ADD_LIBS([haiku_aout],[-lmedia]) ++ ;; + *) + SYS="${host_os}" + ;; + esac + AM_CONDITIONAL(HAVE_DARWIN, test "${SYS}" = "darwin") ++AM_CONDITIONAL(HAVE_HAIKU, test "${SYS}" = "haiku") + AM_CONDITIONAL(HAVE_LINUX, test "${SYS}" = "linux") + AM_CONDITIONAL(HAVE_OS2, test "${SYS}" = "os2") + AM_CONDITIONAL(HAVE_WIN32, test "${SYS}" = "mingw32") +@@ -513,10 +520,13 @@ + dnl Check for system libs needed + need_libc=false + ++#this fails to detect that we have if_nameindex and if_nametoindex on haiku ++#and then it dails to detect that we don't have tdestroy... ++ + dnl Check for usual libc functions + AC_CHECK_DECLS([nanosleep],,,[#include ]) + AC_CHECK_FUNCS([daemon fcntl fstatvfs fork getenv getpwuid_r if_nameindex if_nametoindex isatty lstat memalign mmap openat pread posix_fadvise posix_madvise setlocale stricmp strnicmp strptime uselocale]) +-AC_REPLACE_FUNCS([atof atoll dirfd fdopendir flockfile fsync getdelim getpid gmtime_r inet_pton lldiv localtime_r nrand48 rewind setenv strcasecmp strcasestr strdup strlcpy strncasecmp strndup strnlen strsep strtof strtok_r strtoll swab tdestroy]) ++AC_REPLACE_FUNCS([atof atoll dirfd fdopendir flockfile fsync getdelim getpid gmtime_r inet_pton lldiv localtime_r nrand48 rewind setenv strcasecmp strcasestr strdup strlcpy strncasecmp strndup strnlen strsep strtof strtok_r strtoll swab]) + AC_CHECK_FUNCS(fdatasync,, + [AC_DEFINE(fdatasync, fsync, [Alias fdatasync() to fsync() if missing.]) + ]) +@@ -578,6 +588,9 @@ + AS_IF([test "${SYS}" = "mingwce"], [ + SOCKET_LIBS="-lws2" + ]) ++ AS_IF([test "${SYS}" = "haiku"], [ ++ SOCKET_LIBS="-lnetwork" ++ ]) + ]) + LIBS="$LIBS_save" + AS_IF([test -n "$SOCKET_LIBS"], [ +@@ -3110,7 +3123,7 @@ + if test "${SYS}" != "darwin"; then + VLC_ADD_PLUGIN([vout_sdl]) + fi +- if test "${SYS}" != "mingw32" -a "${SYS}" != "os2"; then ++ if test "${SYS}" != "mingw32" -a "${SYS}" != "haiku"; then + VLC_ADD_LIBS([vout_sdl],[${X_LIBS} ${X_PRE_LIBS} -lX11]) + fi + VLC_ADD_CFLAGS([vout_sdl],[${SDL_CFLAGS}]) +@@ -4155,7 +4168,7 @@ + dnl Stuff used by the program + dnl + VERSION_MESSAGE="${VERSION} ${CODENAME}" +-COPYRIGHT_MESSAGE="Copyright © ${COPYRIGHT_YEARS} VLC authors and VideoLAN" ++COPYRIGHT_MESSAGE="Copyright (C) ${COPYRIGHT_YEARS} VLC authors and VideoLAN" + AC_DEFINE_UNQUOTED(VERSION_MESSAGE, "${VERSION_MESSAGE}", [Simple version string]) + AC_DEFINE_UNQUOTED(COPYRIGHT_MESSAGE, "${COPYRIGHT_MESSAGE}", [Copyright string]) + AC_DEFINE_UNQUOTED(COPYRIGHT_YEARS, "${COPYRIGHT_YEARS}", [The copyright years]) + +--- vlc-2.0.3-orig/src/modules/bank.c 2011-12-08 18:00:28.032243712 +0000 ++++ vlc-2.0.5/src/modules/bank.c 2012-07-30 22:00:12.285736960 +0000 +@@ -71,28 +71,30 @@ + modules.head = module; + } + +-#ifdef __ELF__ +-# ifdef __GNUC__ +-__attribute__((weak)) +-# else +-# pragma weak vlc_static_modules +-# endif +-extern vlc_plugin_cb vlc_static_modules[]; +- +-static void module_InitStaticModules(void) +-{ +- if (!vlc_static_modules) +- return; +- +- for (unsigned i = 0; vlc_static_modules[i]; i++) { +- module_t *module = module_InitStatic (vlc_static_modules[i]); +- if (likely(module != NULL)) +- module_StoreBank (module); +- } +-} +-#else ++//Haiku bug #8288 ++//#ifdef __ELF__ ++//# ifdef __GNUC__ ++//__attribute__((weak)) ++//# else ++//# pragma weak vlc_static_modules ++//# endif ++//extern vlc_plugin_cb vlc_static_modules[]; ++// ++//static void module_InitStaticModules(void) ++//{ ++// if (!vlc_static_modules) ++// return; ++// ++// for (unsigned i = 0; vlc_static_modules[i]; i++) { ++// module_t *module = module_InitStatic (vlc_static_modules[i]); ++// if (likely(module != NULL)) ++// module_StoreBank (module); ++// } ++//} ++//#else + static void module_InitStaticModules(void) { } +-#endif ++//#endif ++ + + /** + * Init bank +--- vlc-2.0.3-orig/include/vlc_threads.h 2012-01-27 23:03:32.051904512 +0000 ++++ vlc-2.0.5/include/vlc_threads.h 2012-07-30 22:08:53.845414400 +0000 +@@ -124,7 +124,13 @@ + typedef pthread_cond_t vlc_cond_t; + #define VLC_STATIC_COND PTHREAD_COND_INITIALIZER + typedef pthread_rwlock_t vlc_rwlock_t; ++// Haiku bug #8798 ++#ifdef __HAIKU__ ++#define VLC_STATIC_RWLOCK \ ++ { VLC_STATIC_MUTEX, VLC_STATIC_COND, 0, 0, 0 } ++#else + #define VLC_STATIC_RWLOCK PTHREAD_RWLOCK_INITIALIZER ++#endif + typedef pthread_key_t vlc_threadvar_t; + typedef struct vlc_timer *vlc_timer_t; + +--- vlc-2.0.3-orig/include/vlc_fixups.h 2012-01-30 21:37:14.052428800 +0000 ++++ vlc-2.0.5/include/vlc_fixups.h 2012-07-30 22:21:46.086245376 +0000 +@@ -246,10 +246,13 @@ + #endif + + /* Socket stuff */ ++// configure doesn't detect these, likely not linking to -lnetwork, must investigate ++#ifndef __HAIKU__ + #ifndef HAVE_INET_PTON + int inet_pton(int, const char *, void *); + const char *inet_ntop(int, const void *, char *, int); + #endif ++#endif + + #ifndef HAVE_STRUCT_POLLFD + enum +@@ -276,6 +279,8 @@ + # define poll(a, b, c) vlc_poll(a, b, c) + #endif + ++// or these ++#ifndef __HAIKU__ + #ifndef HAVE_IF_NAMEINDEX + #include + struct if_nameindex +@@ -289,6 +294,7 @@ + # define if_nameindex() (errno = ENOBUFS, NULL) + # define if_freenameindex(list) (void)0 + #endif ++#endif + + /* search.h */ + #ifndef HAVE_SEARCH_H +--- vlc-2.0.3-orig/bin/override.c 2011-12-08 18:00:25.033554432 +0000 ++++ vlc-2.0.5/bin/override.c 2012-07-31 20:19:54.136314880 +0000 +@@ -124,6 +124,8 @@ + * + * Some evil libraries modify the environment. We currently ignore the calls as + * they could crash the process. This may cause funny behaviour though. */ ++#ifndef __HAIKU__ ++//not working + int putenv (char *str) + { + if (override) +@@ -133,7 +135,7 @@ + } + return CALL(putenv, str); + } +- ++#endif + int setenv (const char *name, const char *value, int overwrite) + { + if (override) +--- vlc-2.0.3-orig/modules/text_renderer/freetype.c 2012-06-20 18:07:49.059244544 +0000 ++++ vlc-2.0.5/modules/text_renderer/freetype.c 2012-08-04 15:22:01.509870080 +0000 +@@ -58,6 +58,9 @@ + #elif defined( HAVE_MAEMO ) + # define DEFAULT_FONT_FILE "/usr/share/fonts/nokia/nosnb.ttf" + # define DEFAULT_FAMILY "Nokia Sans Bold" ++#elif defined(__HAIKU__) ++# define DEFAULT_FONT_FILE "/boot/system/data/fonts/ttfonts/DejaVuSans.ttf" ++# define DEFAULT_FAMILY "DejaVu Sans" + #else + # define DEFAULT_FONT_FILE "/usr/share/fonts/truetype/freefont/FreeSerifBold.ttf" + # define DEFAULT_FAMILY "Serif Bold" +--- vlc-2.0.3-orig/modules/audio_output/haiku.cpp 1970-01-01 00:00:00.000000000 +0000 ++++ vlc-2.0.5/modules/audio_output/haiku.cpp 2012-08-06 23:15:46.251396096 +0000 +@@ -0,0 +1,197 @@ ++/***************************************************************************** ++ * Haiku.cpp - Haiku Media Kit audio output ++ ***************************************************************************** ++ * Copyright (C) 1999, 2000, 2001, 2012 the VideoLAN team ++ * ++ * Authors: Jean-Marc Dressler ++ * Samuel Hocevar ++ * Eric Petit ++ * Cian Duffy ++ * ++ * This program is free software; you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License as published by ++ * the Free Software Foundation; either version 2 of the License, or ++ * (at your option) any later version. ++ * ++ * This program is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with this program; if not, write to the Free Software ++ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA. ++ *****************************************************************************/ ++ ++/***************************************************************************** ++ * Preamble ++ *****************************************************************************/ ++#include ++#include /* malloc(), free() */ ++#include ++#include ++ ++#include ++#include ++using namespace std; ++ ++#include ++#include ++ ++#ifdef HAVE_CONFIG_H ++# include "config.h" ++#endif ++ ++#include ++#include ++#include ++ ++/***************************************************************************** ++ * aout_sys_t: BeOS audio output method descriptor ++ *****************************************************************************/ ++ ++queue a_queue; ++ ++struct aout_sys_t ++{ ++ BSoundPlayer * p_player; ++ mtime_t latency; ++ media_raw_audio_format * p_format; ++}; ++ ++/***************************************************************************** ++ * Local prototypes. ++ *****************************************************************************/ ++static void Close ( vlc_object_t * ); ++static void Pause (audio_output_t *, bool, mtime_t); ++static void Play (audio_output_t *, block_t *); ++ ++static void Flush (audio_output_t *, bool);static int Open ( vlc_object_t * ); ++static void BufferProc ( void * p_aout, void * p_buffer, size_t size, ++ const media_raw_audio_format & format ); ++ ++/***************************************************************************** ++ * Module descriptor ++ *****************************************************************************/ ++vlc_module_begin () ++ set_shortname( "haiku_aout" ) ++ set_description( N_("Haiku Media Kit audio output") ) ++ set_capability( "audio output", 100 ) ++ set_category( CAT_AUDIO ) ++ set_subcategory( SUBCAT_AUDIO_AOUT ) ++ set_callbacks( Open, Close ) ++vlc_module_end () ++/***************************************************************************** ++ * OpenAudio ++ *****************************************************************************/ ++static int Open( vlc_object_t * p_this ) ++{ ++ audio_output_t *p_aout = (audio_output_t *)p_this; ++ p_aout->sys = (aout_sys_t*)malloc( sizeof( aout_sys_t ) ); ++ if( p_aout->sys == NULL ) ++ { ++ return VLC_ENOMEM; ++ } ++ ++ aout_sys_t * p_sys = p_aout->sys; ++ ++ audio_format_t format = p_aout->format; ++ ++ int i_nb_channels = aout_FormatNbChannels( &format ); ++ ++// media_raw_audio_format must be passed to BSoundPlayer ++ p_sys->p_format = (media_raw_audio_format*) ++ malloc( sizeof( media_raw_audio_format ) ); ++ ++ p_aout->format.i_format = VLC_CODEC_FI32; ++ p_aout->format.i_physical_channels = AOUT_CHAN_LEFT | AOUT_CHAN_RIGHT; ++ p_aout->format.i_rate = 44100; ++ ++ p_sys->p_format->channel_count = i_nb_channels; ++ p_sys->p_format->frame_rate = p_aout->format.i_rate; ++ p_sys->p_format->format = media_raw_audio_format::B_AUDIO_INT; ++ p_sys->p_format->byte_order = B_MEDIA_LITTLE_ENDIAN; ++ // 'magic' number obtained from checking what size the buffers being ++ // passed by the callback were ++ // in theory, any buffer size should work ++ p_sys->p_format->buffer_size = 9216; ++ ++ aout_VolumeSoftInit( p_aout ); ++ ++ //BSoundPlayer init - format, name, buffer producer, notifier, cookie ++ ++ p_sys->p_player = new BSoundPlayer( p_sys->p_format, "player", BufferProc, NULL, NULL ); ++ if( p_sys->p_player->InitCheck() != B_OK ) ++ { ++ msg_Err( p_aout, "BSoundPlayer InitCheck failed" ); ++ delete p_sys->p_player; ++ free( p_sys ); ++ } ++ p_sys->latency = p_sys->p_player->Latency(); ++ ++ p_aout->pf_play = Play; ++ p_aout->pf_pause = Pause; ++ p_aout->pf_flush = Flush; ++ ++ return VLC_SUCCESS; ++ ++} ++ ++/***************************************************************************** ++ * BufferProc- buffer producer function ++ *****************************************************************************/ ++static void BufferProc( void * _p_aout, void * _p_buffer, size_t i_size, ++ const media_raw_audio_format &format ) ++{ ++// Load buffer ++ for (size_t i = 0; i < i_size; i++) ++ { ++ uint8 data = a_queue.front(); ++ vlc_memset(_p_buffer + i, data, 1); ++ a_queue.pop(); ++ } ++ ++} ++/***************************************************************************** ++ * CloseAudio ++ *****************************************************************************/ ++static void Close( vlc_object_t * p_this ) ++{ ++ printf("Close Called"); ++ audio_output_t *p_aout = (audio_output_t *)p_this; ++ struct aout_sys_t *p_sys; ++ p_aout->sys = p_sys; ++ ++ /* Clean up */ ++ p_sys->p_player->Stop(); ++ delete p_sys->p_player; ++ free( p_sys ); ++} ++ ++ ++static void Play (audio_output_t *aout, block_t *block) ++{ ++ aout_sys_t * p_sys = aout->sys; ++ ++// load buffer to STL queue, sample by sample ++ for (size_t i = 0; i < block->i_buffer; i++) ++ { ++ a_queue.push(block->p_buffer[i]); ++ } ++ ++ p_sys->p_player->Start(); ++ p_sys->p_player->SetHasData( true ); ++// release buffer ++ block_Release (block); ++} ++ ++ ++static void Pause (audio_output_t *aout, bool pause, mtime_t date) ++{ ++} ++ ++ ++static void Flush (audio_output_t *aout, bool wait) ++{ ++} ++ +--- vlc-2.0.3-orig/modules/audio_output/Modules.am 2011-12-08 18:00:26.046923776 +0000 ++++ vlc-2.0.5/modules/audio_output/Modules.am 2012-08-04 15:40:24.463208448 +0000 +@@ -6,6 +6,7 @@ + SOURCES_jack = jack.c + SOURCES_audioqueue = audioqueue.c + SOURCES_opensles_android = opensles_android.c ++SOURCES_haiku_aout = haiku.cpp + + libadummy_plugin_la_SOURCES = adummy.c + libadummy_plugin_la_CFLAGS = $(AM_CFLAGS) +--- vlc-2.0.3-orig/src/haiku/specific.cpp 1970-01-01 00:00:00.000000000 +0000 ++++ vlc-2.0.5/src/haiku/specific.cpp 2012-08-05 12:18:40.333185024 +0000 +@@ -0,0 +1,57 @@ ++/***************************************************************************** ++ * specific.c: stubs for POSIX OS-specific initialization ++ ***************************************************************************** ++ * Copyright © 2008 Rémi Denis-Courmont ++ * ++ * This program is free software; you can redistribute it and/or modify it ++ * under the terms of the GNU Lesser General Public License as published by ++ * the Free Software Foundation; either version 2.1 of the License, or ++ * (at your option) any later version. ++ * ++ * This program is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU Lesser General Public License for more details. ++ * ++ * You should have received a copy of the GNU Lesser General Public License ++ * along with this program; if not, write to the Free Software Foundation, ++ * Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA. ++ *****************************************************************************/ ++ ++#ifdef HAVE_CONFIG_H ++# include "config.h" ++#endif ++ ++#include ++ ++ ++#include ++extern "C" ++{ ++#include "../libvlc.h" ++#include ++ ++ ++static void set_libvlc_path (void) ++{ ++ psz_vlcpath = (char *)PKGLIBDIR; ++} ++ ++void system_Init (void) ++{ ++ BApplication app("application/x-vnd.videolan"); ++ pthread_once_t once = PTHREAD_ONCE_INIT; ++ ++ pthread_once (&once, set_libvlc_path); ++} ++ ++void system_Configure (libvlc_int_t *libvlc, ++ int argc, const char *const argv[]) ++{ ++ (void)libvlc; (void)argc; (void)argv; ++} ++ ++void system_End (void) ++{ ++} ++} +--- vlc-2.0.3-orig/src/Makefile.am 2012-05-15 12:41:19.024641536 +0000 ++++ vlc-2.0.5/src/Makefile.am 2012-08-05 01:50:39.982253568 +0000 +@@ -221,6 +221,9 @@ + if HAVE_OS2 + libvlccore_la_SOURCES += $(SOURCES_libvlc_os2) + else ++if HAVE_HAIKU ++libvlccore_la_SOURCES += $(SOURCES_libvlc_haiku) ++else + libvlccore_la_SOURCES += $(SOURCES_libvlc_other) + endif + endif +@@ -228,6 +231,7 @@ + endif + endif + endif ++endif + if BUILD_HTTPD + libvlccore_la_SOURCES += $(SOURCES_libvlc_httpd) + endif +@@ -287,6 +291,16 @@ + os2/specific.c \ + $(NULL) + ++SOURCES_libvlc_haiku = \ ++ posix/dirs.c \ ++ misc/atomic.c \ ++ posix/filesystem.c \ ++ network/poll.c \ ++ posix/thread.c \ ++ posix/plugin.c \ ++ haiku/specific.cpp \ ++ $(NULL) ++ + SOURCES_libvlc_other = \ + posix/dirs.c \ + misc/atomic.c \ + +--- vlc-2.0.3-orig/modules/gui/qt4/qt4.cpp 2012-07-02 00:47:23.031457280 +0000 ++++ vlc-2.0.5/modules/gui/qt4/qt4.cpp 2012-12-11 21:52:28.551288832 +0000 +@@ -628,7 +628,7 @@ + if( !p_wnd->handle.hwnd ) + return VLC_EGENERIC; + +-#elif defined (Q_WS_MAC) ++#elif defined (Q_WS_MAC) || defined(Q_WS_HAIKU) + p_wnd->handle.nsobject = (void *)p_mi->getVideo( &i_x, &i_y, &i_width, &i_height ); + if( !p_wnd->handle.nsobject ) + return VLC_EGENERIC; + +--- vlc-2.0.3-orig/src/network/io.c 2012-04-27 17:14:57.020709376 +0000 ++++ vlc-2.0.5/src/network/io.c 2012-12-11 21:34:34.143392768 +0000 +@@ -215,7 +215,9 @@ + switch (ptr->ai_socktype) + { + case SOCK_STREAM: ++#ifdef SOCK_RDM + case SOCK_RDM: ++#endif + case SOCK_SEQPACKET: + #ifdef SOCK_DCCP + case SOCK_DCCP: +--- vlc-2.0.5-orig/modules/video_output/sdl.c 2011-12-08 18:00:27.022282240 +0000 ++++ vlc-2.0.5/modules/video_output/sdl.c 2012-12-20 21:47:16.280494080 +0000 +@@ -40,7 +40,7 @@ + + #include + +-#if !defined(WIN32) && !defined(__OS2__) ++#if !defined(WIN32) && !defined(__OS2__) && !defined(__HAIKU__) + # ifdef X_DISPLAY_MISSING + # error Xlib required due to XInitThreads + # endif +@@ -116,7 +116,7 @@ + vout_display_t *vd = (vout_display_t *)object; + vout_display_sys_t *sys; + +-#if !defined(WIN32) && !defined(__OS2__) ++#if !defined(WIN32) && !defined(__OS2__) && !defined(__HAIKU__) + if (!vlc_xlib_init (object)) + return VLC_EGENERIC; + #endif diff --git a/media-video/vlc/vlc-0.8.6i.bep b/media-video/vlc/vlc-0.8.6i.bep index b863b4a49..0cc7f3333 100644 --- a/media-video/vlc/vlc-0.8.6i.bep +++ b/media-video/vlc/vlc-0.8.6i.bep @@ -15,7 +15,7 @@ CHECKSUM_MD5="fd852166d1705573cd7768a06117ed51" BUILD { cd vlc-0.8.6i libtoolize --force --copy --install - ./configure --prefix=/boot/common + ./configure --prefix=`finddir B_COMMON_DIRECTORY` make } diff --git a/media-video/vlc/vlc-1.1.5-20101107.bep b/media-video/vlc/vlc-1.1.5-20101107.bep index 10b092218..53aca8ef8 100644 --- a/media-video/vlc/vlc-1.1.5-20101107.bep +++ b/media-video/vlc/vlc-1.1.5-20101107.bep @@ -19,7 +19,7 @@ CHECKSUM_MD5="9ab7d8218ff37e362f996fd7d8879dbc" BUILD { cd vlc-1.1.5 ./bootstrap - ./configure --prefix=/boot/common --disable-postproc --disable-xcb --disable-skins2 --disable-qt4 --disable-libgcrypt --disable-remoteosd + ./configure --prefix=`finddir B_COMMON_DIRECTORY` --disable-postproc --disable-xcb --disable-skins2 --disable-qt4 --disable-libgcrypt --disable-remoteosd make } diff --git a/media-video/vlc/vlc-2.0.5.bep b/media-video/vlc/vlc-2.0.5.bep new file mode 100644 index 000000000..8fc3003ea --- /dev/null +++ b/media-video/vlc/vlc-2.0.5.bep @@ -0,0 +1,40 @@ +DESCRIPTION="vlc - media player" +HOMEPAGE="http://www.videolan.org/vlc/" +SRC_URI="http://download.videolan.org/pub/videolan/vlc/2.0.5/vlc-2.0.5.tar.xz" +REVISION="1" +STATUS_HAIKU="unstable" +MESSAGE="This port only builds on gcc4 systems" +DEPEND="faad2, + libdca, + libdvdnav >= 4.2.0, + libmatroska, + libmad, + a52dec, + schroedinger, + twolame, + lua >= 5.1.4, + taglib >= 1.7, + libbluray, + lame >= 3.98.4, + libgcrypt, + libcddb, + x264, + flac, + ffmpeg = 0.10.2-vlc + libsdl + sdl-image" +CHECKSUM_MD5="4f959c0766ada8cea5a72c65fce94ebe" +BUILD { + cd vlc-2.0.5 + bootstrap + ./configure --prefix=`finddir B_COMMON_DIRECTORY` --with-kde-solid=no --disable-xcb --enable-run-as-root --enable-static + make +} + +INSTALL { + cd vlc-2.0.5 + make install +} + +LICENSE="GNU GPL v2" +COPYRIGHT="1998-2012" diff --git a/net-ftp/tnftp/tnftp-20091122.bep b/net-ftp/tnftp/tnftp-20091122.bep index f118ab3b4..44df64778 100644 --- a/net-ftp/tnftp/tnftp-20091122.bep +++ b/net-ftp/tnftp/tnftp-20091122.bep @@ -12,7 +12,7 @@ BUILD { autoconf automake autoheader - ./configure --prefix=/boot/common + ./configure --prefix=`finddir B_COMMON_DIRECTORY` make } diff --git a/net-irc/irssi/irssi-0.8.15.bep b/net-irc/irssi/irssi-0.8.15.bep new file mode 100644 index 000000000..6399e319a --- /dev/null +++ b/net-irc/irssi/irssi-0.8.15.bep @@ -0,0 +1,28 @@ +DESCRIPTION="Irssi is a command line irc client" +HOMEPAGE="http://www.irssi.org/" +SRC_URI="http://www.irssi.org/files/irssi-0.8.15.tar.gz" +CHECKSUM_MD5="870db8e319f640c2bf446c30d0c24ef6" +REVISION="1" + +STATUS_HAIKU="untested" +DEPEND="sys-devel/gettext >= 0.18.1 + dev-util/pkgconfig >= 0.25 + dev-libs/glib >= 2.24.2" + +BUILD { + cd irssi-0.8.15 + libtoolize --force --copy --install + autoreconf -i + sed -i.bak 's/\$withval\/include\/ncurses.h/\/boot\/develop\/headers\/3rdparty\/ncurses.h/g' configure + ./configure --prefix=`finddir B_COMMON_DIRECTORY` --with-ncurses=`finddir B_COMMON_DIRECTORY` + make + +} + +INSTALL { + cd irssi-0.8.15 + make install +} + +LICENSE="GNU GPL v2" +COPYRIGHT="1999-2012 Timo Sirainen" diff --git a/net-irc/rhapsody-irc/patches/rhapsody-irc-0.28b.patch b/net-irc/rhapsody-irc/patches/rhapsody-irc-0.28b.patch new file mode 100644 index 000000000..82a32bbd2 --- /dev/null +++ b/net-irc/rhapsody-irc/patches/rhapsody-irc-0.28b.patch @@ -0,0 +1,38 @@ +diff -ur rhapsody-0.28b.org/configure rhapsody-0.28b/configure +--- rhapsody-0.28b.org/configure 2006-02-24 07:46:19.017301504 +0100 ++++ rhapsody-0.28b/configure 2012-11-22 20:29:15.727973888 +0100 +@@ -168,6 +168,25 @@ + + STDDOCSPATH="/usr/share/doc/rhapsody" + ++elif [ "$OS" = "Haiku" ] ; then ++ CCPATH="/boot/develop/tools/gnupro/bin /boot/develop/bin" ++ CURSESPATH="/boot/develop/headers/3rdparty /boot/develop/headers /boot/develop/headers/gnu" ++ ++ GCCBASELIBS="-lncurses -lnetwork" ++ GCCBASELIBPATHS="" ++ GCCBASEINCPATHS="" ++ GCCBASEFLAGS="-g -Wall -Wno-unused" ++ ++ CCBASELIBS="" ++ CCBASELIBPATHS="" ++ CCBASEINCPATHS="" ++ CCBASEFLAGS="" ++ ++ STDDOCSPATH="`finddir B_COMMON_DOCUMENTATION_DIRECTORY`/rhapsody" ++ if [ -z "$INSTALLPATH" ] ; then ++ INSTALLPATH="`finddir B_COMMON_BIN_DIRECTORY`" ++ fi ++ + elif [ "$OS" = "HP-UX" ] ; then + CCPATH="/bin /usr/bin /usr/local/bin" + CURSESPATH="/usr/include /usr/local/include /usr/include/ncurses /usr/local/include/ncurses" +@@ -235,7 +254,7 @@ + # Set install, docs, header and lib path if not provided # + ########################################################### + +-if [ $USER = "root" ] ; then ++if [ $USER = "root" -o "$UID" = "0" ] ; then + echo "Running as root." + + if [ -z "$INSTALLPATH" ] ; then diff --git a/net-irc/rhapsody-irc/rhapsody-irc-0.28b.bep b/net-irc/rhapsody-irc/rhapsody-irc-0.28b.bep new file mode 100644 index 000000000..922b8640b --- /dev/null +++ b/net-irc/rhapsody-irc/rhapsody-irc-0.28b.bep @@ -0,0 +1,21 @@ +DESCRIPTION="Text console IRC client" +HOMEPAGE="http://rhapsody.sourceforge.net/" +SRC_URI="http://downloads.sourceforge.net/project/rhapsody/rhapsody/Rhapsody%20IRC%200.28b/rhapsody_0.28b.tgz" +REVISION="1" +STATUS_HAIKU="untested" +DEPEND="" +CHECKSUM_MD5="0792de636a2625a826491e387fcb1305" + +BUILD { + cd rhapsody-0.28b + ./configure + make +} + +INSTALL { + cd rhapsody-0.28b + make install +} + +COPYRIGHT="2006 Adrian Gonera" +LICENSE="GNU GPL v2" diff --git a/net-libs/enet/patches/enet-1.2.2.patch b/net-libs/enet/patches/enet-1.2.2.patch new file mode 100644 index 000000000..86802132d --- /dev/null +++ b/net-libs/enet/patches/enet-1.2.2.patch @@ -0,0 +1,12 @@ +diff -Naur enet-1.2.2/configure.ac enet-1.2.2-haiku/configure.ac +--- enet-1.2.2/configure.ac 2010-05-20 13:55:27.056623104 -0300 ++++ enet-1.2.2-haiku/configure.ac 2011-04-24 01:31:41.000000000 -0300 +@@ -16,6 +16,8 @@ + + AC_CHECK_MEMBER(struct msghdr.msg_flags, [AC_DEFINE(HAS_MSGHDR_FLAGS)], , [#include ]) + ++AC_CHECK_LIB(network, connect) ++ + AC_CHECK_TYPE(socklen_t, [AC_DEFINE(HAS_SOCKLEN_T)], , + #include + #include diff --git a/net-libs/gnutls/gnutls-2.8.6.bep b/net-libs/gnutls/gnutls-2.8.6.bep index c4a7d7797..274b38205 100644 --- a/net-libs/gnutls/gnutls-2.8.6.bep +++ b/net-libs/gnutls/gnutls-2.8.6.bep @@ -22,7 +22,7 @@ BUILD { libtoolize --force --copy --install autoreconf cd .. - ./configure --prefix=/boot/common + ./configure --prefix=`finddir B_COMMON_DIRECTORY` make } INSTALL { diff --git a/net-libs/hubbub/hubbub-0.1.2-HEAD.bep b/net-libs/hubbub/hubbub-0.1.2-HEAD.bep new file mode 100644 index 000000000..f39828ea1 --- /dev/null +++ b/net-libs/hubbub/hubbub-0.1.2-HEAD.bep @@ -0,0 +1,20 @@ +DESCRIPTION="Hubbub is an HTML5 compliant parsing library" +HOMEPAGE="http://www.netsurf-browser.org/projects/hubbub/" +SRC_URI="git://git.netsurf-browser.org/libhubbub.git" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="dev-util/buildsystem >= 0 + dev-libs/libparserutils >= 0.1.1" + +BUILD { + cd hubbub-0.1.2-HEAD + make PREFIX=/boot/common +} + +INSTALL { + cd hubbub-0.1.2-HEAD + make install PREFIX=/boot/common +} + +LICENSE="MIT" +COPYRIGHT="2003 - 2012 The NetSurf Developers" diff --git a/net-libs/hubbub/hubbub-0.1.2.bep b/net-libs/hubbub/hubbub-0.1.2.bep new file mode 100644 index 000000000..18e4c6314 --- /dev/null +++ b/net-libs/hubbub/hubbub-0.1.2.bep @@ -0,0 +1,19 @@ +DESCRIPTION="Hubbub is an HTML5 compliant parsing library" +HOMEPAGE="http://www.netsurf-browser.org/projects/hubbub/" +SRC_URI="http://download.netsurf-browser.org/libs/releases/hubbub-0.1.2-src.tar.gz" +REVISION="1" +STATUS_HAIKU="stable" + +BUILD { + cd hubbub-0.1.2 + make +} + +INSTALL { + cd hubbub-0.1.2 + make install +} + +LICENSE="MIT + GNU GPL v2" +COPYRIGHT="2003 - 2012 The NetSurf Developers" diff --git a/net-libs/libdom/libdom-0.bep b/net-libs/libdom/libdom-0.bep new file mode 100644 index 000000000..a7992f9d9 --- /dev/null +++ b/net-libs/libdom/libdom-0.bep @@ -0,0 +1,20 @@ +DESCRIPTION="LibDOM is an implementation of the W3C DOM" +HOMEPAGE="http://www.netsurf-browser.org/projects/libdom/" +SRC_URI="git://git.netsurf-browser.org/libdom.git" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="dev-lib/hubbub >= 0.1.2-HEAD" + +BUILD { + cd libdom-0 + make PREFIX=/boot/common +} + +INSTALL { + cd libdom-0 + make install PREFIX=/boot/common +} + +LICENSE="MIT + GNU GPL v2" +COPYRIGHT="2003 - 2012 The NetSurf Developers" diff --git a/net-libs/libs3/libs3-2.0.bep b/net-libs/libs3/libs3-2.0.bep new file mode 100644 index 000000000..7d2683e9c --- /dev/null +++ b/net-libs/libs3/libs3-2.0.bep @@ -0,0 +1,20 @@ +DESCRIPTION="C Library API for Amazon S3" +HOMEPAGE="http://libs3.ischo.com.s3.amazonaws.com/index.html" +SRC_URI="http://libs3.ischo.com.s3.amazonaws.com/libs3-2.0.tar.gz" +CHECKSUM_MD5="e52da69ddc11019e98cf8246fc55b4e1" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="dev-libs/libxml2>=2.7.3 + net-misc/curl>=7.18.2" + +BUILD { + cd libs3-2.0 + make DESTDIR=${DESTDIR}/`finddir B_COMMON_DIRECTORY` +} + +INSTALL { + cd libs3-2.0 + make install DESTDIR=${DESTDIR}/`finddir B_COMMON_DIRECTORY` +} +LICENSE="GNU GPL v3" +COPYRIGHT="2008 Bryan Ischo" diff --git a/net-libs/libs3/patches/libs3-2.0.patch b/net-libs/libs3/patches/libs3-2.0.patch new file mode 100644 index 000000000..33e5aacad --- /dev/null +++ b/net-libs/libs3/patches/libs3-2.0.patch @@ -0,0 +1,36 @@ +diff -Naur libs3-2.0/GNUmakefile libs3-2.0-haiku/GNUmakefile +--- libs3-2.0/GNUmakefile 2011-09-28 08:16:09.000000000 +0000 ++++ libs3-2.0-haiku/GNUmakefile 2012-12-12 16:19:46.457965568 +0000 +@@ -134,7 +134,7 @@ + -D_ISOC99_SOURCE \ + -D_POSIX_C_SOURCE=200112L + +-LDFLAGS = $(CURL_LIBS) $(LIBXML2_LIBS) -lpthread ++LDFLAGS = $(CURL_LIBS) $(LIBXML2_LIBS) + + + # -------------------------------------------------------------------------- +diff -Naur libs3-2.0/src/request_context.c libs3-2.0-haiku/src/request_context.c +--- libs3-2.0/src/request_context.c 2011-09-28 08:16:09.000000000 +0000 ++++ libs3-2.0-haiku/src/request_context.c 2012-12-12 14:04:42.375652352 +0000 +@@ -29,6 +29,8 @@ + #include + #include "request.h" + #include "request_context.h" ++#include /* memset */ ++#include /* close */ + + + S3Status S3_create_request_context(S3RequestContext **requestContextReturn) +diff -Naur libs3-2.0/src/s3.c libs3-2.0-haiku/src/s3.c +--- libs3-2.0/src/s3.c 2011-09-28 08:16:09.000000000 +0000 ++++ libs3-2.0-haiku/src/s3.c 2012-12-12 14:31:37.335020032 +0000 +@@ -52,7 +52,7 @@ + #endif + + // Also needed for Windows, because somehow MinGW doesn't define this +-extern int putenv(char *); ++//extern int putenv(char *); + + + // Command-line options, saved as globals ------------------------------------ diff --git a/net-libs/libtorrent/libtorrent-0.12.5.bep b/net-libs/libtorrent/libtorrent-0.12.5.bep index 7f08558ef..cb29cf3cb 100644 --- a/net-libs/libtorrent/libtorrent-0.12.5.bep +++ b/net-libs/libtorrent/libtorrent-0.12.5.bep @@ -13,7 +13,7 @@ DEPEND="dev-util/pkgconfig >= 0.23 BUILD { cd libtorrent-0.12.5 autoreconf -vfi - ./configure --prefix=/boot/common --disable-mincore + ./configure --prefix=`finddir B_COMMON_DIRECTORY` --disable-mincore make } diff --git a/net-libs/libyahoo2/libyahoo2-1.0.1.bep b/net-libs/libyahoo2/libyahoo2-1.0.1.bep new file mode 100644 index 000000000..73e0b396a --- /dev/null +++ b/net-libs/libyahoo2/libyahoo2-1.0.1.bep @@ -0,0 +1,22 @@ +DESCRIPTION="libyahoo2 - A C library for Yahoo! Messenger" +HOMEPAGE="http://libyahoo2.sourceforge.net/" +SRC_URI="http://sourceforge.net/projects/libyahoo2/files/libyahoo2/1.0.1/libyahoo2-1.0.1.tar.bz2/download" +DEPEND="glib >= 1.2.8" +REVISION="1" +CHECKSUM_MD5="e62dd7bc2dd77622cc0987a4dbf9b38c" +BUILD { + cd libyahoo2-1.0.1 + libtoolize --force --copy --install + aclocal + autoconf + automake + ./configure --prefix=`finddir B_COMMON_DIRECTORY` + make +} + +INSTALL { + cd libyahoo2-1.0.1 + make install +} +LICENSE="GNU GPL v2" +COPYRIGHT="Copyright 2002-2010 The libyahoo2 Project Authors and Contributors" diff --git a/net-libs/libyahoo2/patches/libyahoo2-1.0.1.patch b/net-libs/libyahoo2/patches/libyahoo2-1.0.1.patch new file mode 100644 index 000000000..d767c4fea --- /dev/null +++ b/net-libs/libyahoo2/patches/libyahoo2-1.0.1.patch @@ -0,0 +1,15 @@ +--- libyahoo2-1.0.1-haiku/configure.ac 2010-07-27 01:13:13.015466496 +0000 ++++ libyahoo2-1.0.1/configure.ac 2012-12-11 17:26:38.095682560 +0000 +@@ -43,9 +43,9 @@ + + # Checks for libraries. + enable_sample_client="yes" +-AC_SEARCH_LIBS(socket, socket, , +- [AC_SEARCH_LIBS(socket, socket, LIBS="$LIBS -lnsl", +- enable_sample_client="no", -lnsl)]) ++AC_SEARCH_LIBS(socket, socket network) ++AC_SEARCH_LIBS(gethostbyname2, bind nsl resolv) ++AC_CHECK_LIB(rt, clock_gettime) + + # Checks for header files. + AC_HEADER_STDC diff --git a/net-misc/axel/axel-2.4.bep b/net-misc/axel/axel-2.4.bep index 5f5fcf432..f8a7e1722 100644 --- a/net-misc/axel/axel-2.4.bep +++ b/net-misc/axel/axel-2.4.bep @@ -7,7 +7,7 @@ STATUS_HAIKU="stable" DEPEND="" BUILD { cd axel-2.4 - ./configure --prefix=/boot/common --i18n=0 + ./configure --prefix=`finddir B_COMMON_DIRECTORY` --i18n=0 make } diff --git a/net-misc/curl/curl-7.18.2.bep b/net-misc/curl/curl-7.18.2.bep index c9ec2b81e..2dfa3a06c 100644 --- a/net-misc/curl/curl-7.18.2.bep +++ b/net-misc/curl/curl-7.18.2.bep @@ -11,7 +11,7 @@ BUILD { aclocal automake autoconf - ./configure --prefix=/boot/common + ./configure --prefix=`finddir B_COMMON_DIRECTORY` make } diff --git a/net-misc/curl/curl-7.19.1.bep b/net-misc/curl/curl-7.19.1.bep index 0a0d28bf1..2aa33457c 100644 --- a/net-misc/curl/curl-7.19.1.bep +++ b/net-misc/curl/curl-7.19.1.bep @@ -11,7 +11,7 @@ BUILD { aclocal automake autoconf - ./configure --prefix=/boot/common + ./configure --prefix=`finddir B_COMMON_DIRECTORY` make } diff --git a/net-misc/curl/curl-7.19.2.bep b/net-misc/curl/curl-7.19.2.bep index 532e9551b..a5aec318b 100644 --- a/net-misc/curl/curl-7.19.2.bep +++ b/net-misc/curl/curl-7.19.2.bep @@ -11,7 +11,7 @@ BUILD { aclocal automake autoconf - ./configure --prefix=/boot/common + ./configure --prefix=`finddir B_COMMON_DIRECTORY` make } diff --git a/net-misc/curl/curl-7.19.5.bep b/net-misc/curl/curl-7.19.5.bep index b6752dd0f..00a363fbe 100644 --- a/net-misc/curl/curl-7.19.5.bep +++ b/net-misc/curl/curl-7.19.5.bep @@ -11,7 +11,7 @@ BUILD { aclocal automake autoconf - ./configure --prefix=/boot/common + ./configure --prefix=`finddir B_COMMON_DIRECTORY` make } diff --git a/net-misc/curl/curl-7.19.7.bep b/net-misc/curl/curl-7.19.7.bep index b54985dd2..8f1b9aab4 100644 --- a/net-misc/curl/curl-7.19.7.bep +++ b/net-misc/curl/curl-7.19.7.bep @@ -7,7 +7,7 @@ STATUS_HAIKU="stable" DEPEND="" BUILD { cd curl-7.19.7 - cmake -DCMAKE_INSTALL_PREFIX=/boot/common -DCURL_DISABLE_LDAP=ON . + cmake -DCMAKE_INSTALL_PREFIX=`finddir B_COMMON_DIRECTORY` -DCURL_DISABLE_LDAP=ON . make } diff --git a/net-misc/curl/curl-7.20.0.bep b/net-misc/curl/curl-7.20.0.bep index 20f959de8..904bc0e74 100644 --- a/net-misc/curl/curl-7.20.0.bep +++ b/net-misc/curl/curl-7.20.0.bep @@ -9,7 +9,7 @@ BUILD { cd curl-7.20.0 libtoolize --force --copy --install autoconf - ./configure --prefix=/boot/common + ./configure --prefix=`finddir B_COMMON_DIRECTORY` make } diff --git a/net-misc/curl/curl-7.20.1.bep b/net-misc/curl/curl-7.20.1.bep index cc1cd220c..56a82aeb8 100644 --- a/net-misc/curl/curl-7.20.1.bep +++ b/net-misc/curl/curl-7.20.1.bep @@ -9,7 +9,7 @@ BUILD { cd curl-7.20.1 libtoolize --force --copy --install autoconf - ./configure --prefix=/boot/common + ./configure --prefix=`finddir B_COMMON_DIRECTORY` make } diff --git a/net-misc/curl/curl-7.21.1.bep b/net-misc/curl/curl-7.21.1.bep index 40456a4cd..eb7349259 100644 --- a/net-misc/curl/curl-7.21.1.bep +++ b/net-misc/curl/curl-7.21.1.bep @@ -9,7 +9,7 @@ BUILD { cd curl-7.21.1 libtoolize --force --copy --install autoconf - ./configure --prefix=/boot/common + ./configure --prefix=`finddir B_COMMON_DIRECTORY` make } diff --git a/net-misc/curl/curl-7.21.2.bep b/net-misc/curl/curl-7.21.2.bep index 2156fa05e..1a0e915f9 100644 --- a/net-misc/curl/curl-7.21.2.bep +++ b/net-misc/curl/curl-7.21.2.bep @@ -9,7 +9,7 @@ BUILD { cd curl-7.21.2 libtoolize --force --copy --install autoconf - ./configure --prefix=/boot/common + ./configure --prefix=`finddir B_COMMON_DIRECTORY` make } diff --git a/net-misc/curl/curl-7.21.3.bep b/net-misc/curl/curl-7.21.3.bep index cac99c075..8d4c718da 100644 --- a/net-misc/curl/curl-7.21.3.bep +++ b/net-misc/curl/curl-7.21.3.bep @@ -9,7 +9,7 @@ BUILD { cd curl-7.21.3 libtoolize --force --copy --install autoconf - ./configure --prefix=/boot/common + ./configure --prefix=`finddir B_COMMON_DIRECTORY` make } diff --git a/net-misc/curl/curl-7.21.6.bep b/net-misc/curl/curl-7.21.6.bep new file mode 100644 index 000000000..117f23860 --- /dev/null +++ b/net-misc/curl/curl-7.21.6.bep @@ -0,0 +1,29 @@ +DESCRIPTION="curl and libcurl" +HOMEPAGE="http://curl.haxx.se" +SRC_URI="http://curl.haxx.se/download/curl-7.21.6.tar.bz2" +CHECKSUM_MD5="6611989a81ebd7b03a35adc3001ddee0" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="" +BUILD { + cd curl-7.21.6 + libtoolize --force --copy --install + autoconf + ./configure --prefix=`finddir B_COMMON_DIRECTORY` \ + --enable-ipv6 \ + --mandir=`finddir B_COMMON_DOCUMENTATION_DIRECTORY`/man + make +} + +INSTALL { + cd curl-7.21.6 + make install +} + +TEST { + cd curl-7.21.6 + make check +} + +LICENSE="Curl" +COPYRIGHT="1996-2011, Daniel Stenberg, . All rights reserved." diff --git a/net-misc/curl/curl-7.21.7.bep b/net-misc/curl/curl-7.21.7.bep new file mode 100644 index 000000000..a06380a11 --- /dev/null +++ b/net-misc/curl/curl-7.21.7.bep @@ -0,0 +1,30 @@ +DESCRIPTION="curl and libcurl" +HOMEPAGE="http://curl.haxx.se" +SRC_URI="http://curl.haxx.se/download/curl-7.21.7.tar.bz2" +CHECKSUM_MD5="5f6d50c4d4ee38c57fe37e3cff75adbd" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="" +BUILD { + cd curl-7.21.7 + libtoolize --force --copy --install + autoconf + ./configure --prefix=`finddir B_COMMON_DIRECTORY` \ + --enable-ipv6 \ + --mandir=`finddir B_COMMON_DOCUMENTATION_DIRECTORY`/man \ + --with-ca-bundle=`finddir B_COMMON_DATA_DIRECTORY`/ssl/cert.pem + make +} + +INSTALL { + cd curl-7.21.7 + make install +} + +TEST { + cd curl-7.21.7 + make check +} + +LICENSE="Curl" +COPYRIGHT="1996-2011, Daniel Stenberg, . All rights reserved." diff --git a/net-misc/curl/curl-7.22.0.bep b/net-misc/curl/curl-7.22.0.bep new file mode 100644 index 000000000..50d927213 --- /dev/null +++ b/net-misc/curl/curl-7.22.0.bep @@ -0,0 +1,30 @@ +DESCRIPTION="curl and libcurl" +HOMEPAGE="http://curl.haxx.se" +SRC_URI="http://curl.haxx.se/download/curl-7.22.0.tar.bz2" +CHECKSUM_MD5="bdb5c226d37c4a6082c70e7ef6f63060" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="" +BUILD { + cd curl-7.22.0 + libtoolize --force --copy --install + autoconf + ./configure --prefix=`finddir B_COMMON_DIRECTORY` \ + --enable-ipv6 \ + --mandir=`finddir B_COMMON_DOCUMENTATION_DIRECTORY`/man \ + --with-ca-bundle=`finddir B_COMMON_DATA_DIRECTORY`/ssl/cert.pem + make +} + +INSTALL { + cd curl-7.22.0 + make install +} + +TEST { + cd curl-7.22.0 + make check +} + +LICENSE="Curl" +COPYRIGHT="1996-2011, Daniel Stenberg, . All rights reserved." diff --git a/net-misc/curl/curl-7.24.0.bep b/net-misc/curl/curl-7.24.0.bep new file mode 100644 index 000000000..2510ae640 --- /dev/null +++ b/net-misc/curl/curl-7.24.0.bep @@ -0,0 +1,30 @@ +DESCRIPTION="curl and libcurl" +HOMEPAGE="http://curl.haxx.se" +SRC_URI="http://curl.haxx.se/download/curl-7.24.0.tar.bz2" +CHECKSUM_MD5="f912221d75eb8d8fe08900eaf011b023" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="" +BUILD { + cd curl-7.24.0 + libtoolize --force --copy --install + autoconf + ./configure --prefix=`finddir B_COMMON_DIRECTORY` \ + --enable-ipv6 \ + --mandir=`finddir B_COMMON_DOCUMENTATION_DIRECTORY`/man \ + --with-ca-bundle=`finddir B_COMMON_DATA_DIRECTORY`/ssl/cert.pem + make +} + +INSTALL { + cd curl-7.24.0 + make install +} + +TEST { + cd curl-7.24.0 + make check +} + +LICENSE="Curl" +COPYRIGHT="1996-2012, Daniel Stenberg, . All rights reserved." diff --git a/net-misc/curl/curl-7.25.0.bep b/net-misc/curl/curl-7.25.0.bep new file mode 100644 index 000000000..63d578dd4 --- /dev/null +++ b/net-misc/curl/curl-7.25.0.bep @@ -0,0 +1,30 @@ +DESCRIPTION="curl and libcurl" +HOMEPAGE="http://curl.haxx.se" +SRC_URI="http://curl.haxx.se/download/curl-7.25.0.tar.bz2" +CHECKSUM_MD5="f0303d47d9d3e6e4f08c2863c6504823" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="" +BUILD { + cd curl-7.25.0 + libtoolize --force --copy --install + autoconf + ./configure --prefix=`finddir B_COMMON_DIRECTORY` \ + --enable-ipv6 \ + --mandir=`finddir B_COMMON_DOCUMENTATION_DIRECTORY`/man \ + --with-ca-bundle=`finddir B_COMMON_DATA_DIRECTORY`/ssl/cert.pem + make +} + +INSTALL { + cd curl-7.25.0 + make install +} + +TEST { + cd curl-7.25.0 + make check +} + +LICENSE="Curl" +COPYRIGHT="1996-2012, Daniel Stenberg, . All rights reserved." diff --git a/net-misc/curl/curl-7.26.0.bep b/net-misc/curl/curl-7.26.0.bep new file mode 100644 index 000000000..6159dc157 --- /dev/null +++ b/net-misc/curl/curl-7.26.0.bep @@ -0,0 +1,30 @@ +DESCRIPTION="curl and libcurl" +HOMEPAGE="http://curl.haxx.se" +SRC_URI="http://curl.haxx.se/download/curl-7.26.0.tar.bz2" +CHECKSUM_MD5="bfa80f01b3d300359cfb4d409b6136a3" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="" +BUILD { + cd curl-7.26.0 + libtoolize --force --copy --install + autoconf + ./configure --prefix=`finddir B_COMMON_DIRECTORY` \ + --enable-ipv6 \ + --mandir=`finddir B_COMMON_DOCUMENTATION_DIRECTORY`/man \ + --with-ca-bundle=`finddir B_COMMON_DATA_DIRECTORY`/ssl/cert.pem + make +} + +INSTALL { + cd curl-7.26.0 + make install +} + +TEST { + cd curl-7.26.0 + make check +} + +LICENSE="Curl" +COPYRIGHT="1996-2012, Daniel Stenberg, . All rights reserved." diff --git a/net-misc/curl/curl-7.28.1.bep b/net-misc/curl/curl-7.28.1.bep new file mode 100644 index 000000000..db5cc8c17 --- /dev/null +++ b/net-misc/curl/curl-7.28.1.bep @@ -0,0 +1,30 @@ +DESCRIPTION="curl and libcurl" +HOMEPAGE="http://curl.haxx.se" +SRC_URI="http://curl.haxx.se/download/curl-7.28.1.tar.bz2" +CHECKSUM_MD5="26eb081c999b0e203770869427e9a93d" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="" +BUILD { + cd curl-7.28.1 + libtoolize --force --copy --install + autoconf + ./configure --prefix=`finddir B_COMMON_DIRECTORY` \ + --enable-ipv6 \ + --mandir=`finddir B_COMMON_DOCUMENTATION_DIRECTORY`/man \ + --with-ca-bundle=`finddir B_COMMON_DATA_DIRECTORY`/ssl/cert.pem + make +} + +INSTALL { + cd curl-7.28.1 + make install +} + +TEST { + cd curl-7.28.1 + make check +} + +LICENSE="Curl" +COPYRIGHT="1996-2012, Daniel Stenberg, . All rights reserved." diff --git a/net-misc/curl/patches/curl-7.22.0.patch b/net-misc/curl/patches/curl-7.22.0.patch new file mode 100644 index 000000000..3ec7d21f3 --- /dev/null +++ b/net-misc/curl/patches/curl-7.22.0.patch @@ -0,0 +1,15 @@ +--- curl-7.22.0/m4/curl-openssl.m4 2011-06-13 21:09:52.046137344 +0000 ++++ curl-7.22.0-haiku/m4/curl-openssl.m4 2011-09-14 22:16:54.307232768 +0000 +@@ -61,6 +61,12 @@ + tst_verfix=`echo $curl_cv_def_OPENSSL_VERSION_NUMBER | cut -c 7` + tst_api=0x$tst_vermaj$tst_vermin$tst_verfix + ;; ++ x12) ++ tst_vermaj=`echo $curl_cv_def_OPENSSL_VERSION_NUMBER | cut -c 3` ++ tst_vermin=`echo $curl_cv_def_OPENSSL_VERSION_NUMBER | cut -c 5` ++ tst_verfix=`echo $curl_cv_def_OPENSSL_VERSION_NUMBER | cut -c 8` ++ tst_api=0x$tst_vermaj$tst_vermin$tst_verfix ++ ;; + *) + tst_api="unknown" + ;; diff --git a/net-misc/curl/patches/curl-7.25.0.patch b/net-misc/curl/patches/curl-7.25.0.patch new file mode 100644 index 000000000..661357c4e --- /dev/null +++ b/net-misc/curl/patches/curl-7.25.0.patch @@ -0,0 +1,12 @@ +diff -urN curl-7.25.0/m4/curl-openssl.m4 curl-7.25.0-haiku/m4/curl-openssl.m4 +--- curl-7.25.0/m4/curl-openssl.m4 2012-03-08 11:35:25.043515904 -0800 ++++ curl-7.25.0-haiku/m4/curl-openssl.m4 2012-04-01 21:44:11.908066816 -0700 +@@ -55,7 +55,7 @@ + tst_verfix=`echo $curl_cv_def_OPENSSL_VERSION_NUMBER | cut -c 5` + tst_api=0x$tst_vermaj$tst_vermin$tst_verfix + ;; +- x11|x10) ++ x12|x11|x10) + tst_vermaj=`echo $curl_cv_def_OPENSSL_VERSION_NUMBER | cut -c 3` + tst_vermin=`echo $curl_cv_def_OPENSSL_VERSION_NUMBER | cut -c 5` + tst_verfix=`echo $curl_cv_def_OPENSSL_VERSION_NUMBER | cut -c 7` diff --git a/net-misc/curl/patches/curl-7.26.0.patch b/net-misc/curl/patches/curl-7.26.0.patch new file mode 100644 index 000000000..4d29699bd --- /dev/null +++ b/net-misc/curl/patches/curl-7.26.0.patch @@ -0,0 +1,12 @@ +diff -urN curl-7.26.0/m4/curl-openssl.m4 curl-7.26.0-haiku/m4/curl-openssl.m4 +--- curl-7.26.0/m4/curl-openssl.m4 2012-03-08 11:35:25.043515904 -0800 ++++ curl-7.26.0-haiku/m4/curl-openssl.m4 2012-04-01 21:44:11.908066816 -0700 +@@ -55,7 +55,7 @@ + tst_verfix=`echo $curl_cv_def_OPENSSL_VERSION_NUMBER | cut -c 5` + tst_api=0x$tst_vermaj$tst_vermin$tst_verfix + ;; +- x11|x10) ++ x12|x11|x10) + tst_vermaj=`echo $curl_cv_def_OPENSSL_VERSION_NUMBER | cut -c 3` + tst_vermin=`echo $curl_cv_def_OPENSSL_VERSION_NUMBER | cut -c 5` + tst_verfix=`echo $curl_cv_def_OPENSSL_VERSION_NUMBER | cut -c 7` diff --git a/net-misc/mediatomb/mediatomb-0.12.1.bep b/net-misc/mediatomb/mediatomb-0.12.1.bep index a69c2a5e5..4fcad94e2 100644 --- a/net-misc/mediatomb/mediatomb-0.12.1.bep +++ b/net-misc/mediatomb/mediatomb-0.12.1.bep @@ -24,12 +24,7 @@ INSTALL { make install } -TEST { - cd generic-1.2.3 -# make test -# make check -} - -LICENSE="2005 Gena Batyan, Sergey 'Jin' Bostandzhyan +LICENSE="GNU GPL v2" +COPYRIGHT="2005 Gena Batyan, Sergey 'Jin' Bostandzhyan 2006-2010 Gena Batyan, Sergey 'Jin' Bostandzhyan, Leonhard Wimmer" -COPYRIGHT="GNU GPL v2" + diff --git a/net-misc/minidlna/minidlna-1.0.21.bep b/net-misc/minidlna/minidlna-1.0.21.bep new file mode 100644 index 000000000..03bf74f5f --- /dev/null +++ b/net-misc/minidlna/minidlna-1.0.21.bep @@ -0,0 +1,28 @@ +DESCRIPTION="MiniDLNA MiniDLNA (aka ReadyDLNA) is server software with the aim of being fully compliant with DLNA/UPnP-AV clients." +HOMEPAGE="http://sourceforge.net/projects/minidlna/" +SRC_URI="http://sourceforge.net/projects/minidlna/files/minidlna/1.0.21/minidlna_1.0.21_src.tar.gz" +REVISION="1" +STATUS_HAIKU="broken" +DEPEND="dev-db/sqlite >= 3.0 + media-libs/jpeg >= 6b + media-libs/libogg >= 1.2.0 + media-libs/ffmpeg >= 0.6 + media-libs/flac >= 1.2.1 + media-libs/libvorbis >= 1.3.1 + media-lib/libid3tag >= 0.15.1b" + +CHECKSUM_MD5="a53e0008ad225843a1782e4af6e5bf0b" +BUILD { + cd minidlna-1.0.21 + make +} + +INSTALL { + cd minidlna-1.0.21 + make install +} + +LICENSE="GNU GPL v2 + BSD (3-clause)" +COPYRIGHT="2008-2009 Justin Maggard + 2008-2009 Justin Maggard (portions of MiniUPnP project)" diff --git a/net-misc/neon/neon-0.29.1.bep b/net-misc/neon/neon-0.29.1.bep index 355e356b5..1736b67db 100644 --- a/net-misc/neon/neon-0.29.1.bep +++ b/net-misc/neon/neon-0.29.1.bep @@ -9,7 +9,7 @@ CHECKSUM_MD5="eb4eac0499cb6fced6e3b11e4b720ebb" BUILD { cd neon-0.29.1 autogen.sh - ./configure --prefix=/boot/common --with-ssl --with-libxml2 --enable-shared + ./configure --prefix=`finddir B_COMMON_DIRECTORY` --with-ssl --with-libxml2 --enable-shared make } diff --git a/net-misc/neon/neon-0.29.3.bep b/net-misc/neon/neon-0.29.3.bep index 4723aa2fa..074fcef9e 100644 --- a/net-misc/neon/neon-0.29.3.bep +++ b/net-misc/neon/neon-0.29.3.bep @@ -9,7 +9,7 @@ CHECKSUM_MD5="ba1015b59c112d44d7797b62fe7bee51" BUILD { cd neon-0.29.3 autogen.sh - ./configure --prefix=/boot/common --with-ssl --with-libxml2 --enable-shared + ./configure --prefix=`finddir B_COMMON_DIRECTORY` --with-ssl --with-libxml2 --enable-shared make } diff --git a/net-misc/neon/neon-0.29.4.bep b/net-misc/neon/neon-0.29.4.bep index 606d28616..8634d568f 100644 --- a/net-misc/neon/neon-0.29.4.bep +++ b/net-misc/neon/neon-0.29.4.bep @@ -9,7 +9,7 @@ CHECKSUM_MD5="29438dbdaee84db2d7fbc73248a92d93" BUILD { cd neon-0.29.4 autogen.sh - ./configure --prefix=/boot/common --with-ssl --with-libxml2 --enable-shared + ./configure --prefix=`finddir B_COMMON_DIRECTORY` --with-ssl --with-libxml2 --enable-shared make } diff --git a/net-misc/openssh/openssh-5.4p1.bep b/net-misc/openssh/openssh-5.4p1.bep index a4c08ee35..50854a365 100644 --- a/net-misc/openssh/openssh-5.4p1.bep +++ b/net-misc/openssh/openssh-5.4p1.bep @@ -9,14 +9,9 @@ BUILD { cp ../patches/pathnames-haiku.h openssh-5.4p1/pathnames.h cd openssh-5.4p1 mkdir -p m4 - cp /boot/common/share/aclocal/libtool.m4 m4 - cp /boot/common/share/aclocal/ltoptions.m4 m4 - cp /boot/common/share/aclocal/ltversion.m4 m4 - cp /boot/common/share/aclocal/ltsugar.m4 m4 - cp /boot/common/share/aclocal/lt~obsolete.m4 m4 echo 'AC_CONFIG_MACRO_DIR([m4])' >> configure.ac libtoolize --force --copy - aclocal -I m4 + aclocal --install -I m4 autoconf ./configure --prefix=`finddir B_COMMON_DIRECTORY` \ --sbindir=`finddir B_COMMON_BIN_DIRECTORY` \ diff --git a/net-misc/openssh/openssh-5.5p1.bep b/net-misc/openssh/openssh-5.5p1.bep index 1fd0ca7b6..c07b09b58 100644 --- a/net-misc/openssh/openssh-5.5p1.bep +++ b/net-misc/openssh/openssh-5.5p1.bep @@ -10,14 +10,9 @@ BUILD { cd openssh-5.5p1 autoconf mkdir -p m4 - cp /boot/common/share/aclocal/libtool.m4 m4 - cp /boot/common/share/aclocal/ltoptions.m4 m4 - cp /boot/common/share/aclocal/ltversion.m4 m4 - cp /boot/common/share/aclocal/ltsugar.m4 m4 - cp /boot/common/share/aclocal/lt~obsolete.m4 m4 echo 'AC_CONFIG_MACRO_DIR([m4])' >> configure.ac libtoolize --force --copy - aclocal -I m4 + aclocal --install -I m4 autoconf ./configure --prefix=`finddir B_COMMON_DIRECTORY` \ --sbindir=`finddir B_COMMON_BIN_DIRECTORY` \ diff --git a/net-misc/openssh/openssh-5.6p1.bep b/net-misc/openssh/openssh-5.6p1.bep index c571ad810..e2691ddfe 100644 --- a/net-misc/openssh/openssh-5.6p1.bep +++ b/net-misc/openssh/openssh-5.6p1.bep @@ -10,14 +10,9 @@ BUILD { cd openssh-5.6p1 autoconf mkdir -p m4 - cp /boot/common/share/aclocal/libtool.m4 m4 - cp /boot/common/share/aclocal/ltoptions.m4 m4 - cp /boot/common/share/aclocal/ltversion.m4 m4 - cp /boot/common/share/aclocal/ltsugar.m4 m4 - cp /boot/common/share/aclocal/lt~obsolete.m4 m4 echo 'AC_CONFIG_MACRO_DIR([m4])' >> configure.ac libtoolize --force --copy - aclocal -I m4 + aclocal --install -I m4 autoconf ./configure --prefix=`finddir B_COMMON_DIRECTORY` \ --sbindir=`finddir B_COMMON_BIN_DIRECTORY` \ diff --git a/net-misc/openssh/openssh-5.7p1.bep b/net-misc/openssh/openssh-5.7p1.bep index 252fb3e06..6763b784f 100644 --- a/net-misc/openssh/openssh-5.7p1.bep +++ b/net-misc/openssh/openssh-5.7p1.bep @@ -11,14 +11,9 @@ BUILD { cd openssh-5.7p1 autoconf mkdir -p m4 - cp /boot/common/share/aclocal/libtool.m4 m4 - cp /boot/common/share/aclocal/ltoptions.m4 m4 - cp /boot/common/share/aclocal/ltversion.m4 m4 - cp /boot/common/share/aclocal/ltsugar.m4 m4 - cp /boot/common/share/aclocal/lt~obsolete.m4 m4 echo 'AC_CONFIG_MACRO_DIR([m4])' >> configure.ac libtoolize --force --copy - aclocal -I m4 + aclocal --install -I m4 autoconf ./configure --prefix=`finddir B_COMMON_DIRECTORY` \ --sbindir=`finddir B_COMMON_BIN_DIRECTORY` \ diff --git a/net-misc/openssh/openssh-5.8p1.bep b/net-misc/openssh/openssh-5.8p1.bep index c429a702f..07b4d6461 100644 --- a/net-misc/openssh/openssh-5.8p1.bep +++ b/net-misc/openssh/openssh-5.8p1.bep @@ -11,11 +11,7 @@ BUILD { cd openssh-5.8p1 autoconf mkdir -p m4 - cp /boot/common/share/aclocal/libtool.m4 m4 - cp /boot/common/share/aclocal/ltoptions.m4 m4 - cp /boot/common/share/aclocal/ltversion.m4 m4 - cp /boot/common/share/aclocal/ltsugar.m4 m4 - cp /boot/common/share/aclocal/lt~obsolete.m4 m4 + aclocal --install -I m4 echo 'AC_CONFIG_MACRO_DIR([m4])' >> configure.ac libtoolize --force --copy aclocal -I m4 @@ -29,7 +25,7 @@ BUILD { --includedir=`finddir B_COMMON_DIRECTORY`/include \ --datadir=`finddir B_COMMON_DATA_DIRECTORY` \ --mandir=`finddir B_COMMON_DOCUMENTATION_DIRECTORY`/man \ - --docdir=`finddir B_COMMON_DOCUMENTATION_DIRECTORY` \ + --docdir=`finddir B_COMMON_DOCUMENTATION_DIRECTORY`/doc \ --sysconfdir=`finddir B_COMMON_SETTINGS_DIRECTORY`/ssh \ --with-default-path=${PATH} \ --with-md5-passwords \ diff --git a/net-misc/openssh/openssh-5.8p2.bep b/net-misc/openssh/openssh-5.8p2.bep new file mode 100644 index 000000000..d5d99c515 --- /dev/null +++ b/net-misc/openssh/openssh-5.8p2.bep @@ -0,0 +1,52 @@ +DESCRIPTION="OpenSSH" +HOMEPAGE="http://www.openssh.com/" +SRC_URI="http://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-5.8p2.tar.gz + http://obsd.cec.mtu.edu/pub/OpenBSD/OpenSSH/portable/openssh-5.8p2.tar.gz" +REVISION="3" +STATUS_HAIKU="stable" +DEPEND="dev-libs/openssl >= 1.0.0 + dev-libs/libedit >= 20090923" +CHECKSUM_MD5="0541579adf9d55abb15ef927048d372e" +BUILD { + cd openssh-5.8p2 + autoconf + mkdir -p m4 + aclocal --install -I m4 + echo 'AC_CONFIG_MACRO_DIR([m4])' >> configure.ac + libtoolize --force --copy + aclocal -I m4 + autoconf + COMMON_DOCS=`finddir B_COMMON_DOCUMENTATION_DIRECTORY` + COMMON_BIN=`finddir B_COMMON_BIN_DIRECTORY` + COMMON_DIR=`finddir B_COMMON_DIRECTORY` + ./configure --prefix=$COMMON_DIR \ + --sbindir=$COMMON_BIN \ + --bindir=$COMMON_BIN \ + --libexecdir=$COMMON_BIN \ + --sysconfdir=`finddir B_USER_SETTINGS_DIRECTORY`/ssh \ + --libdir=`finddir B_COMMON_LIB_DIRECTORY` \ + --includedir=$COMMON_DIR/include \ + --datadir=`finddir B_COMMON_DATA_DIRECTORY` \ + --mandir=$COMMON_DOCS/man \ + --sysconfdir=`finddir B_COMMON_SETTINGS_DIRECTORY`/ssh \ + --with-default-path=${PATH} \ + --with-md5-passwords \ + --disable-utmpx \ + --with-libedit + make +} + +INSTALL { + cd openssh-5.8p2 + make install DESTDIR="${DESTDIR}" + mkdir -p ${DESTDIR}/boot/common/boot/post_install + cp -f $(haikuporter -t)/net-misc/openssh/sshd_keymaker.sh ${DESTDIR}/boot/common/boot/post_install +} + +TEST { + cd openssh-5.8p2 + make tests +} + +LICENSE="OpenSSH" +COPYRIGHT="2005-2011 Tatu Ylonen et al." diff --git a/net-misc/openssh/openssh-5.9p1.bep b/net-misc/openssh/openssh-5.9p1.bep new file mode 100644 index 000000000..b99bf3fd4 --- /dev/null +++ b/net-misc/openssh/openssh-5.9p1.bep @@ -0,0 +1,52 @@ +DESCRIPTION="OpenSSH" +HOMEPAGE="http://www.openssh.com/" +SRC_URI="http://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-5.9p1.tar.gz + http://obsd.cec.mtu.edu/pub/OpenBSD/OpenSSH/portable/openssh-5.9p1.tar.gz" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="dev-libs/openssl >= 1.0.0 + dev-libs/libedit >= 20090923" +CHECKSUM_MD5="afe17eee7e98d3b8550cc349834a85d0" +BUILD { + cd openssh-5.9p1 + autoconf + mkdir -p m4 + aclocal --install -I m4 + echo 'AC_CONFIG_MACRO_DIR([m4])' >> configure.ac + libtoolize --force --copy + aclocal -I m4 + autoconf + COMMON_DOCS=`finddir B_COMMON_DOCUMENTATION_DIRECTORY` + COMMON_BIN=`finddir B_COMMON_BIN_DIRECTORY` + COMMON_DIR=`finddir B_COMMON_DIRECTORY` + ./configure --prefix=$COMMON_DIR \ + --sbindir=$COMMON_BIN \ + --bindir=$COMMON_BIN \ + --libexecdir=$COMMON_BIN \ + --sysconfdir=`finddir B_USER_SETTINGS_DIRECTORY`/ssh \ + --libdir=`finddir B_COMMON_LIB_DIRECTORY` \ + --includedir=$COMMON_DIR/include \ + --datadir=`finddir B_COMMON_DATA_DIRECTORY` \ + --mandir=$COMMON_DOCS/man \ + --sysconfdir=`finddir B_COMMON_SETTINGS_DIRECTORY`/ssh \ + --with-default-path=${PATH} \ + --with-md5-passwords \ + --disable-utmpx \ + --with-libedit + make +} + +INSTALL { + cd openssh-5.9p1 + make install DESTDIR="${DESTDIR}" + mkdir -p ${DESTDIR}/boot/common/boot/post_install + cp -f $(haikuporter -t)/net-misc/openssh/sshd_keymaker.sh ${DESTDIR}/boot/common/boot/post_install +} + +TEST { + cd openssh-5.9p1 + make tests +} + +LICENSE="OpenSSH" +COPYRIGHT="2005-2011 Tatu Ylonen et al." diff --git a/net-misc/openssh/openssh-6.0p1.bep b/net-misc/openssh/openssh-6.0p1.bep new file mode 100644 index 000000000..dfc6c758d --- /dev/null +++ b/net-misc/openssh/openssh-6.0p1.bep @@ -0,0 +1,51 @@ +DESCRIPTION="OpenSSH" +HOMEPAGE="http://www.openssh.com/" +SRC_URI="http://openbsd.mirrorcatalogs.com/pub/OpenBSD/OpenSSH/portable/openssh-6.0p1.tar.gz" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="dev-libs/openssl >= 1.0.0 + dev-libs/libedit >= 20090923" +CHECKSUM_MD5="3c9347aa67862881c5da3f3b1c08da7b" +BUILD { + cd openssh-6.0p1 + autoconf + mkdir -p m4 + aclocal --install -I m4 + echo 'AC_CONFIG_MACRO_DIR([m4])' >> configure.ac + libtoolize --force --copy + aclocal -I m4 + autoconf + COMMON_DOCS=`finddir B_COMMON_DOCUMENTATION_DIRECTORY` + COMMON_BIN=`finddir B_COMMON_BIN_DIRECTORY` + COMMON_DIR=`finddir B_COMMON_DIRECTORY` + ./configure --prefix=$COMMON_DIR \ + --sbindir=$COMMON_BIN \ + --bindir=$COMMON_BIN \ + --libexecdir=$COMMON_BIN \ + --sysconfdir=`finddir B_USER_SETTINGS_DIRECTORY`/ssh \ + --libdir=`finddir B_COMMON_LIB_DIRECTORY` \ + --includedir=$COMMON_DIR/include \ + --datadir=`finddir B_COMMON_DATA_DIRECTORY` \ + --mandir=$COMMON_DOCS/man \ + --sysconfdir=`finddir B_COMMON_SETTINGS_DIRECTORY`/ssh \ + --with-default-path=${PATH} \ + --with-md5-passwords \ + --disable-utmpx \ + --with-libedit + make +} + +INSTALL { + cd openssh-6.0p1 + make install DESTDIR="${DESTDIR}" + mkdir -p ${DESTDIR}/boot/common/boot/post_install + cp -f $(haikuporter -t)/net-misc/openssh/sshd_keymaker.sh ${DESTDIR}/boot/common/boot/post_install +} + +TEST { + cd openssh + make tests +} + +LICENSE="OpenSSH" +COPYRIGHT="2005-2012 Tatu Ylonen et al." diff --git a/net-misc/openssh/openssh-6.1p1.bep b/net-misc/openssh/openssh-6.1p1.bep new file mode 100644 index 000000000..774fd80b5 --- /dev/null +++ b/net-misc/openssh/openssh-6.1p1.bep @@ -0,0 +1,52 @@ +DESCRIPTION="OpenSSH" +HOMEPAGE="http://www.openssh.com/" +SRC_URI="http://openbsd.mirrorcatalogs.com/pub/OpenBSD/OpenSSH/portable/openssh-6.1p1.tar.gz" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="dev-libs/openssl >= 1.0.0 + dev-libs/libedit >= 20090923" +CHECKSUM_MD5="3345cbf4efe90ffb06a78670ab2d05d5" +BUILD { + cd openssh-6.1p1 + autoconf + mkdir -p m4 + aclocal --install -I m4 + echo 'AC_CONFIG_MACRO_DIR([m4])' >> configure.ac + libtoolize --force --copy + aclocal -I m4 + autoconf + COMMON_DOCS=`finddir B_COMMON_DOCUMENTATION_DIRECTORY` + COMMON_BIN=`finddir B_COMMON_BIN_DIRECTORY` + COMMON_DIR=`finddir B_COMMON_DIRECTORY` + ./configure --prefix=$COMMON_DIR \ + --sbindir=$COMMON_BIN \ + --bindir=$COMMON_BIN \ + --libexecdir=$COMMON_BIN \ + --sysconfdir=`finddir B_USER_SETTINGS_DIRECTORY`/ssh \ + --libdir=`finddir B_COMMON_LIB_DIRECTORY` \ + --includedir=$COMMON_DIR/include \ + --datadir=`finddir B_COMMON_DATA_DIRECTORY` \ + --mandir=$COMMON_DOCS/man \ + --sysconfdir=`finddir B_COMMON_SETTINGS_DIRECTORY`/ssh \ + --with-default-path=${PATH} \ + --with-md5-passwords \ + --disable-utmpx \ + --with-libedit + make +} + +INSTALL { + cd openssh-6.1p1 + make install DESTDIR="${DESTDIR}" + mkdir -p ${DESTDIR}/boot/common/boot/post_install + cp -f $(haikuporter -t)/net-misc/openssh/sshd_keymaker.sh ${DESTDIR}/boot/common/boot/post_install +} + +TEST { + cd openssh-6.1p1 + + make tests +} + +LICENSE="OpenSSH" +COPYRIGHT="2005-2012 Tatu Ylonen et al." diff --git a/net-misc/openssh/openssh-6.2p1.bep b/net-misc/openssh/openssh-6.2p1.bep new file mode 100644 index 000000000..478b6ea04 --- /dev/null +++ b/net-misc/openssh/openssh-6.2p1.bep @@ -0,0 +1,53 @@ +DESCRIPTION="OpenSSH" +HOMEPAGE="http://www.openssh.com/" +SRC_URI="http://ftp5.usa.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-6.2p1.tar.gz" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="dev-libs/openssl >= 1.0.0 + dev-libs/libedit >= 20090923" +CHECKSUM_MD5="7b2d9dd75b5cf267ea1737ec75500316" +BUILD { + cd openssh-6.2p1 +# sed -i 's/"\$(PRIVSEP_PATH)\\" \\/\"$(PRIVSEP_PATH)\"/g' +#Makefile.in + autoconf + mkdir -p m4 + aclocal --install -I m4 + echo 'AC_CONFIG_MACRO_DIR([m4])' >> configure.ac + libtoolize --force --copy + aclocal -I m4 + autoconf + COMMON_DOCS=`finddir B_COMMON_DOCUMENTATION_DIRECTORY` + COMMON_BIN=`finddir B_COMMON_BIN_DIRECTORY` + COMMON_DIR=`finddir B_COMMON_DIRECTORY` + ./configure --prefix=$COMMON_DIR \ + --sbindir=$COMMON_BIN \ + --bindir=$COMMON_BIN \ + --libexecdir=$COMMON_BIN \ + --sysconfdir=`finddir B_USER_SETTINGS_DIRECTORY`/ssh \ + --libdir=`finddir B_COMMON_LIB_DIRECTORY` \ + --includedir=$COMMON_DIR/include \ + --datadir=`finddir B_COMMON_DATA_DIRECTORY` \ + --mandir=$COMMON_DOCS/man \ + --sysconfdir=`finddir B_COMMON_SETTINGS_DIRECTORY`/ssh \ + --with-default-path=${PATH} \ + --with-md5-passwords \ + --disable-utmpx \ + --with-libedit + make +} + +INSTALL { + cd openssh-6.2p1 + make install DESTDIR="${DESTDIR}" + mkdir -p ${DESTDIR}/boot/common/boot/post_install + cp -f $(haikuporter -t)/net-misc/openssh/sshd_keymaker.sh ${DESTDIR}/boot/common/boot/post_install +} + +TEST { + cd openssh-6.2p1 + make tests +} + +LICENSE="OpenSSH" +COPYRIGHT="2005-2013 Tatu Ylonen et al." diff --git a/net-misc/openssh/patches/openssh-5.8p2.patch b/net-misc/openssh/patches/openssh-5.8p2.patch new file mode 100644 index 000000000..4ac3769eb --- /dev/null +++ b/net-misc/openssh/patches/openssh-5.8p2.patch @@ -0,0 +1,140 @@ +diff -urN openssh-5.8p2/configure.ac openssh-5.8p2-haiku/configure.ac +--- openssh-5.8p2/configure.ac 2011-02-04 00:42:14.007077888 +0000 ++++ openssh-5.8p2-haiku/configure.ac 2011-05-04 16:01:02.093585408 +0000 +@@ -1345,7 +1345,7 @@ + LIBEDIT=`$PKGCONFIG --libs-only-l libedit` + CPPFLAGS="$CPPFLAGS `$PKGCONFIG --cflags libedit`" + else +- LIBEDIT="-ledit -lcurses" ++ AC_CHECK_LIB(curses, tgetent, [LIBEDIT="-ledit -lcurses"], AC_CHECK_LIB(ncurses, tgetent, [LIBEDIT="-ledit -lncurses"])) + fi + OTHERLIBS=`echo $LIBEDIT | sed 's/-ledit//'` + AC_CHECK_LIB(edit, el_init, +diff -urN openssh-5.8p2/pathnames.h openssh-5.8p2-haiku/pathnames.h +--- openssh-5.8p2/pathnames.h 2010-08-31 12:41:14.016252928 +0000 ++++ openssh-5.8p2-haiku/pathnames.h 2011-05-04 16:01:02.127139840 +0000 +@@ -12,7 +12,14 @@ + * called by a name other than "ssh" or "Secure Shell". + */ + +-#define ETCDIR "/etc" ++#define HAIKU_USER_SETTINGS_DIRECTORY "~/config/settings" ++#define HAIKU_COMMON_SETTINGS_DIRECTORY "/boot/common/settings" ++#define HAIKU_COMMON_BIN_DIRECTORY "/boot/common/bin" ++#define HAIKU_COMMON_VAR_DIRECTORY "/boot/common/var" ++#define HAIKU_SYSTEM_BIN_DIRECTORY "/boot/system/bin" ++ ++ ++#define ETCDIR HAIKU_COMMON_SETTINGS_DIRECTORY + + #ifndef SSHDIR + #define SSHDIR ETCDIR "/ssh" +@@ -45,7 +53,7 @@ + #define _PATH_DH_PRIMES SSHDIR "/primes" + + #ifndef _PATH_SSH_PROGRAM +-#define _PATH_SSH_PROGRAM "/usr/bin/ssh" ++#define _PATH_SSH_PROGRAM B_COMMON_BIN_DIRECTORY + #endif + + /* +@@ -58,25 +66,25 @@ + * The directory in user's home directory in which the files reside. The + * directory should be world-readable (though not all files are). + */ +-#define _PATH_SSH_USER_DIR ".ssh" ++#define _PATH_SSH_USER_DIR "config/settings/ssh" + + /* + * Per-user file containing host keys of known hosts. This file need not be + * readable by anyone except the user him/herself, though this does not + * contain anything particularly secret. + */ +-#define _PATH_SSH_USER_HOSTFILE "~/.ssh/known_hosts" ++#define _PATH_SSH_USER_HOSTFILE "/boot/home/config/settings/ssh/known_hosts" + /* backward compat for protocol 2 */ +-#define _PATH_SSH_USER_HOSTFILE2 "~/.ssh/known_hosts2" ++#define _PATH_SSH_USER_HOSTFILE2 "/boot/home/config/settings/ssh/known_hosts2" + + /* + * Name of the default file containing client-side authentication key. This + * file should only be readable by the user him/herself. + */ +-#define _PATH_SSH_CLIENT_IDENTITY ".ssh/identity" +-#define _PATH_SSH_CLIENT_ID_DSA ".ssh/id_dsa" +-#define _PATH_SSH_CLIENT_ID_ECDSA ".ssh/id_ecdsa" +-#define _PATH_SSH_CLIENT_ID_RSA ".ssh/id_rsa" ++#define _PATH_SSH_CLIENT_IDENTITY _PATH_SSH_USER_DIR "/identity" ++#define _PATH_SSH_CLIENT_ID_DSA _PATH_SSH_USER_DIR "/id_dsa" ++#define _PATH_SSH_CLIENT_ID_ECDSA _PATH_SSH_USER_DIR "/id_ecdsa" ++#define _PATH_SSH_CLIENT_ID_RSA _PATH_SSH_USER_DIR "/id_rsa" + + /* + * Configuration file in user's home directory. This file need not be +@@ -84,7 +92,7 @@ + * particularly secret. If the user's home directory resides on an NFS + * volume where root is mapped to nobody, this may need to be world-readable. + */ +-#define _PATH_SSH_USER_CONFFILE ".ssh/config" ++#define _PATH_SSH_USER_CONFFILE _PATH_SSH_USER_DIR "/config" + + /* + * File containing a list of those rsa keys that permit logging in as this +@@ -94,10 +102,10 @@ + * may need to be world-readable. (This file is read by the daemon which is + * running as root.) + */ +-#define _PATH_SSH_USER_PERMITTED_KEYS ".ssh/authorized_keys" ++#define _PATH_SSH_USER_PERMITTED_KEYS _PATH_SSH_USER_DIR "/authorized_keys" + + /* backward compat for protocol v2 */ +-#define _PATH_SSH_USER_PERMITTED_KEYS2 ".ssh/authorized_keys2" ++#define _PATH_SSH_USER_PERMITTED_KEYS2 _PATH_SSH_USER_DIR "/authorized_keys2" + + /* + * Per-user and system-wide ssh "rc" files. These files are executed with +@@ -105,7 +113,7 @@ + * passed "proto cookie" as arguments if X11 forwarding with spoofing is in + * use. xauth will be run if neither of these exists. + */ +-#define _PATH_SSH_USER_RC ".ssh/rc" ++#define _PATH_SSH_USER_RC _PATH_SSH_USER_DIR "/rc" + #define _PATH_SSH_SYSTEM_RC SSHDIR "/sshrc" + + /* +@@ -149,17 +157,16 @@ + + /* for sftp */ + #ifndef _PATH_SFTP_SERVER +-#define _PATH_SFTP_SERVER "/usr/libexec/sftp-server" ++#define _PATH_SFTP_SERVER HAIKU_COMMON_BIN_DIRECTORY"/sftp-server" + #endif + + /* chroot directory for unprivileged user when UsePrivilegeSeparation=yes */ + #ifndef _PATH_PRIVSEP_CHROOT_DIR +-#define _PATH_PRIVSEP_CHROOT_DIR "/var/empty" ++#define _PATH_PRIVSEP_CHROOT_DIR HAIKU_COMMON_VAR_DIRECTORY "/empty" + #endif +- + /* for passwd change */ + #ifndef _PATH_PASSWD_PROG +-#define _PATH_PASSWD_PROG "/usr/bin/passwd" ++#define _PATH_PASSWD_PROG HAIKU_SYSTEM_BIN_DIRECTORY "/passwd" + #endif + + #ifndef _PATH_LS +@@ -171,11 +178,11 @@ + # ifdef LOGIN_PROGRAM_FALLBACK + # define LOGIN_PROGRAM LOGIN_PROGRAM_FALLBACK + # else +-# define LOGIN_PROGRAM "/usr/bin/login" ++# define LOGIN_PROGRAM HAIKU_SYSTEM_BIN_DIRECTORY "/login" + # endif + #endif /* LOGIN_PROGRAM */ + + /* Askpass program define */ + #ifndef ASKPASS_PROGRAM +-#define ASKPASS_PROGRAM "/usr/lib/ssh/ssh-askpass" ++#define ASKPASS_PROGRAM HAIKU_COMMON_BIN_DIRECTORY "/ssh/ssh-askpass" + #endif /* ASKPASS_PROGRAM */ + diff --git a/net-misc/openssh/patches/openssh-5.9p1.patch b/net-misc/openssh/patches/openssh-5.9p1.patch new file mode 100644 index 000000000..8e7d7d818 --- /dev/null +++ b/net-misc/openssh/patches/openssh-5.9p1.patch @@ -0,0 +1,140 @@ +diff -urN openssh-5.9p1/configure.ac openssh-5.9p1-haiku/configure.ac +--- openssh-5.9p1/configure.ac 2011-02-04 00:42:14.007077888 +0000 ++++ openssh-5.9p1-haiku/configure.ac 2011-05-04 16:01:02.093585408 +0000 +@@ -1345,7 +1345,7 @@ + LIBEDIT=`$PKGCONFIG --libs-only-l libedit` + CPPFLAGS="$CPPFLAGS `$PKGCONFIG --cflags libedit`" + else +- LIBEDIT="-ledit -lcurses" ++ AC_CHECK_LIB(curses, tgetent, [LIBEDIT="-ledit -lcurses"], AC_CHECK_LIB(ncurses, tgetent, [LIBEDIT="-ledit -lncurses"])) + fi + OTHERLIBS=`echo $LIBEDIT | sed 's/-ledit//'` + AC_CHECK_LIB(edit, el_init, +diff -urN openssh-5.9p1/pathnames.h openssh-5.9p1-haiku/pathnames.h +--- openssh-5.9p1/pathnames.h 2010-08-31 12:41:14.016252928 +0000 ++++ openssh-5.9p1-haiku/pathnames.h 2011-05-04 16:01:02.127139840 +0000 +@@ -12,7 +12,14 @@ + * called by a name other than "ssh" or "Secure Shell". + */ + +-#define ETCDIR "/etc" ++#define HAIKU_USER_SETTINGS_DIRECTORY "~/config/settings" ++#define HAIKU_COMMON_SETTINGS_DIRECTORY "/boot/common/settings" ++#define HAIKU_COMMON_BIN_DIRECTORY "/boot/common/bin" ++#define HAIKU_COMMON_VAR_DIRECTORY "/boot/common/var" ++#define HAIKU_SYSTEM_BIN_DIRECTORY "/boot/system/bin" ++ ++ ++#define ETCDIR HAIKU_COMMON_SETTINGS_DIRECTORY + + #ifndef SSHDIR + #define SSHDIR ETCDIR "/ssh" +@@ -45,7 +53,7 @@ + #define _PATH_DH_PRIMES SSHDIR "/primes" + + #ifndef _PATH_SSH_PROGRAM +-#define _PATH_SSH_PROGRAM "/usr/bin/ssh" ++#define _PATH_SSH_PROGRAM B_COMMON_BIN_DIRECTORY + #endif + + /* +@@ -58,25 +66,25 @@ + * The directory in user's home directory in which the files reside. The + * directory should be world-readable (though not all files are). + */ +-#define _PATH_SSH_USER_DIR ".ssh" ++#define _PATH_SSH_USER_DIR "config/settings/ssh" + + /* + * Per-user file containing host keys of known hosts. This file need not be + * readable by anyone except the user him/herself, though this does not + * contain anything particularly secret. + */ +-#define _PATH_SSH_USER_HOSTFILE "~/.ssh/known_hosts" ++#define _PATH_SSH_USER_HOSTFILE "/boot/home/config/settings/ssh/known_hosts" + /* backward compat for protocol 2 */ +-#define _PATH_SSH_USER_HOSTFILE2 "~/.ssh/known_hosts2" ++#define _PATH_SSH_USER_HOSTFILE2 "/boot/home/config/settings/ssh/known_hosts2" + + /* + * Name of the default file containing client-side authentication key. This + * file should only be readable by the user him/herself. + */ +-#define _PATH_SSH_CLIENT_IDENTITY ".ssh/identity" +-#define _PATH_SSH_CLIENT_ID_DSA ".ssh/id_dsa" +-#define _PATH_SSH_CLIENT_ID_ECDSA ".ssh/id_ecdsa" +-#define _PATH_SSH_CLIENT_ID_RSA ".ssh/id_rsa" ++#define _PATH_SSH_CLIENT_IDENTITY _PATH_SSH_USER_DIR "/identity" ++#define _PATH_SSH_CLIENT_ID_DSA _PATH_SSH_USER_DIR "/id_dsa" ++#define _PATH_SSH_CLIENT_ID_ECDSA _PATH_SSH_USER_DIR "/id_ecdsa" ++#define _PATH_SSH_CLIENT_ID_RSA _PATH_SSH_USER_DIR "/id_rsa" + + /* + * Configuration file in user's home directory. This file need not be +@@ -84,7 +92,7 @@ + * particularly secret. If the user's home directory resides on an NFS + * volume where root is mapped to nobody, this may need to be world-readable. + */ +-#define _PATH_SSH_USER_CONFFILE ".ssh/config" ++#define _PATH_SSH_USER_CONFFILE _PATH_SSH_USER_DIR "/config" + + /* + * File containing a list of those rsa keys that permit logging in as this +@@ -94,10 +102,10 @@ + * may need to be world-readable. (This file is read by the daemon which is + * running as root.) + */ +-#define _PATH_SSH_USER_PERMITTED_KEYS ".ssh/authorized_keys" ++#define _PATH_SSH_USER_PERMITTED_KEYS _PATH_SSH_USER_DIR "/authorized_keys" + + /* backward compat for protocol v2 */ +-#define _PATH_SSH_USER_PERMITTED_KEYS2 ".ssh/authorized_keys2" ++#define _PATH_SSH_USER_PERMITTED_KEYS2 _PATH_SSH_USER_DIR "/authorized_keys2" + + /* + * Per-user and system-wide ssh "rc" files. These files are executed with +@@ -105,7 +113,7 @@ + * passed "proto cookie" as arguments if X11 forwarding with spoofing is in + * use. xauth will be run if neither of these exists. + */ +-#define _PATH_SSH_USER_RC ".ssh/rc" ++#define _PATH_SSH_USER_RC _PATH_SSH_USER_DIR "/rc" + #define _PATH_SSH_SYSTEM_RC SSHDIR "/sshrc" + + /* +@@ -149,17 +157,16 @@ + + /* for sftp */ + #ifndef _PATH_SFTP_SERVER +-#define _PATH_SFTP_SERVER "/usr/libexec/sftp-server" ++#define _PATH_SFTP_SERVER HAIKU_COMMON_BIN_DIRECTORY"/sftp-server" + #endif + + /* chroot directory for unprivileged user when UsePrivilegeSeparation=yes */ + #ifndef _PATH_PRIVSEP_CHROOT_DIR +-#define _PATH_PRIVSEP_CHROOT_DIR "/var/empty" ++#define _PATH_PRIVSEP_CHROOT_DIR HAIKU_COMMON_VAR_DIRECTORY "/empty" + #endif +- + /* for passwd change */ + #ifndef _PATH_PASSWD_PROG +-#define _PATH_PASSWD_PROG "/usr/bin/passwd" ++#define _PATH_PASSWD_PROG HAIKU_SYSTEM_BIN_DIRECTORY "/passwd" + #endif + + #ifndef _PATH_LS +@@ -171,11 +178,11 @@ + # ifdef LOGIN_PROGRAM_FALLBACK + # define LOGIN_PROGRAM LOGIN_PROGRAM_FALLBACK + # else +-# define LOGIN_PROGRAM "/usr/bin/login" ++# define LOGIN_PROGRAM HAIKU_SYSTEM_BIN_DIRECTORY "/login" + # endif + #endif /* LOGIN_PROGRAM */ + + /* Askpass program define */ + #ifndef ASKPASS_PROGRAM +-#define ASKPASS_PROGRAM "/usr/lib/ssh/ssh-askpass" ++#define ASKPASS_PROGRAM HAIKU_COMMON_BIN_DIRECTORY "/ssh/ssh-askpass" + #endif /* ASKPASS_PROGRAM */ + diff --git a/net-misc/openssh/patches/openssh-6.0p1.patch b/net-misc/openssh/patches/openssh-6.0p1.patch new file mode 100644 index 000000000..a61ef0c9e --- /dev/null +++ b/net-misc/openssh/patches/openssh-6.0p1.patch @@ -0,0 +1,139 @@ +diff -urN openssh-6.0p1/configure.ac openssh-6.0p1-haiku/configure.ac +--- openssh-6.0p1/configure.ac 2012-04-19 11:46:38.030408704 +0000 ++++ openssh-6.0p1-haiku/configure.ac 2012-09-24 16:55:13.139198464 +0000 +@@ -1432,7 +1432,7 @@ + LIBEDIT=`$PKGCONFIG --libs-only-l libedit` + CPPFLAGS="$CPPFLAGS `$PKGCONFIG --cflags libedit`" + else +- LIBEDIT="-ledit -lcurses" ++ AC_CHECK_LIB(curses, tgetent, [LIBEDIT="-ledit -lcurses"], AC_CHECK_LIB(ncurses, tgetent, [LIBEDIT="-ledit -lncurses"])) + fi + OTHERLIBS=`echo $LIBEDIT | sed 's/-ledit//'` + AC_CHECK_LIB([edit], [el_init], +diff -urN openssh-6.0p1/pathnames.h openssh-6.0p1-haiku/pathnames.h +--- openssh-6.0p1/pathnames.h 2011-05-29 11:39:38.039583744 +0000 ++++ openssh-6.0p1-haiku/pathnames.h 2012-09-24 16:55:13.148373504 +0000 +@@ -12,7 +12,14 @@ + * called by a name other than "ssh" or "Secure Shell". + */ + +-#define ETCDIR "/etc" ++#define HAIKU_USER_SETTINGS_DIRECTORY "~/config/settings" ++#define HAIKU_COMMON_SETTINGS_DIRECTORY "/boot/common/settings" ++#define HAIKU_COMMON_BIN_DIRECTORY "/boot/common/bin" ++#define HAIKU_COMMON_VAR_DIRECTORY "/boot/common/var" ++#define HAIKU_SYSTEM_BIN_DIRECTORY "/boot/system/bin" ++ ++ ++#define ETCDIR HAIKU_COMMON_SETTINGS_DIRECTORY + + #ifndef SSHDIR + #define SSHDIR ETCDIR "/ssh" +@@ -45,7 +52,7 @@ + #define _PATH_DH_PRIMES SSHDIR "/primes" + + #ifndef _PATH_SSH_PROGRAM +-#define _PATH_SSH_PROGRAM "/usr/bin/ssh" ++#define _PATH_SSH_PROGRAM HAIKU_COMMON_BIN_DIRECTORY + #endif + + /* +@@ -58,25 +65,25 @@ + * The directory in user's home directory in which the files reside. The + * directory should be world-readable (though not all files are). + */ +-#define _PATH_SSH_USER_DIR ".ssh" ++#define _PATH_SSH_USER_DIR "config/settings/ssh" + + /* + * Per-user file containing host keys of known hosts. This file need not be + * readable by anyone except the user him/herself, though this does not + * contain anything particularly secret. + */ +-#define _PATH_SSH_USER_HOSTFILE "~/.ssh/known_hosts" ++#define _PATH_SSH_USER_HOSTFILE "/boot/home/config/settings/ssh/known_hosts" + /* backward compat for protocol 2 */ +-#define _PATH_SSH_USER_HOSTFILE2 "~/.ssh/known_hosts2" ++#define _PATH_SSH_USER_HOSTFILE2 "/boot/home/config/settings/ssh/known_hosts2" + + /* + * Name of the default file containing client-side authentication key. This + * file should only be readable by the user him/herself. + */ +-#define _PATH_SSH_CLIENT_IDENTITY ".ssh/identity" +-#define _PATH_SSH_CLIENT_ID_DSA ".ssh/id_dsa" +-#define _PATH_SSH_CLIENT_ID_ECDSA ".ssh/id_ecdsa" +-#define _PATH_SSH_CLIENT_ID_RSA ".ssh/id_rsa" ++#define _PATH_SSH_CLIENT_IDENTITY _PATH_SSH_USER_DIR "/identity" ++#define _PATH_SSH_CLIENT_ID_DSA _PATH_SSH_USER_DIR "/id_dsa" ++#define _PATH_SSH_CLIENT_ID_ECDSA _PATH_SSH_USER_DIR "/id_ecdsa" ++#define _PATH_SSH_CLIENT_ID_RSA _PATH_SSH_USER_DIR "/id_rsa" + + /* + * Configuration file in user's home directory. This file need not be +@@ -84,7 +91,7 @@ + * particularly secret. If the user's home directory resides on an NFS + * volume where root is mapped to nobody, this may need to be world-readable. + */ +-#define _PATH_SSH_USER_CONFFILE ".ssh/config" ++#define _PATH_SSH_USER_CONFFILE _PATH_SSH_USER_DIR "/config" + + /* + * File containing a list of those rsa keys that permit logging in as this +@@ -94,10 +101,10 @@ + * may need to be world-readable. (This file is read by the daemon which is + * running as root.) + */ +-#define _PATH_SSH_USER_PERMITTED_KEYS ".ssh/authorized_keys" ++#define _PATH_SSH_USER_PERMITTED_KEYS _PATH_SSH_USER_DIR "/authorized_keys" + + /* backward compat for protocol v2 */ +-#define _PATH_SSH_USER_PERMITTED_KEYS2 ".ssh/authorized_keys2" ++#define _PATH_SSH_USER_PERMITTED_KEYS2 _PATH_SSH_USER_DIR "/authorized_keys2" + + /* + * Per-user and system-wide ssh "rc" files. These files are executed with +@@ -105,7 +112,7 @@ + * passed "proto cookie" as arguments if X11 forwarding with spoofing is in + * use. xauth will be run if neither of these exists. + */ +-#define _PATH_SSH_USER_RC ".ssh/rc" ++#define _PATH_SSH_USER_RC _PATH_SSH_USER_DIR "/rc" + #define _PATH_SSH_SYSTEM_RC SSHDIR "/sshrc" + + /* +@@ -149,17 +156,16 @@ + + /* for sftp */ + #ifndef _PATH_SFTP_SERVER +-#define _PATH_SFTP_SERVER "/usr/libexec/sftp-server" ++#define _PATH_SFTP_SERVER HAIKU_COMMON_BIN_DIRECTORY"/sftp-server" + #endif + + /* chroot directory for unprivileged user when UsePrivilegeSeparation=yes */ + #ifndef _PATH_PRIVSEP_CHROOT_DIR +-#define _PATH_PRIVSEP_CHROOT_DIR "/var/empty" ++#define _PATH_PRIVSEP_CHROOT_DIR HAIKU_COMMON_VAR_DIRECTORY "/empty" + #endif +- + /* for passwd change */ + #ifndef _PATH_PASSWD_PROG +-#define _PATH_PASSWD_PROG "/usr/bin/passwd" ++#define _PATH_PASSWD_PROG HAIKU_SYSTEM_BIN_DIRECTORY "/passwd" + #endif + + #ifndef _PATH_LS +@@ -171,11 +177,11 @@ + # ifdef LOGIN_PROGRAM_FALLBACK + # define LOGIN_PROGRAM LOGIN_PROGRAM_FALLBACK + # else +-# define LOGIN_PROGRAM "/usr/bin/login" ++# define LOGIN_PROGRAM HAIKU_SYSTEM_BIN_DIRECTORY "/login" + # endif + #endif /* LOGIN_PROGRAM */ + + /* Askpass program define */ + #ifndef ASKPASS_PROGRAM +-#define ASKPASS_PROGRAM "/usr/lib/ssh/ssh-askpass" ++#define ASKPASS_PROGRAM HAIKU_COMMON_BIN_DIRECTORY "/ssh/ssh-askpass" + #endif /* ASKPASS_PROGRAM */ diff --git a/net-misc/openssh/patches/openssh-6.1p1.patch b/net-misc/openssh/patches/openssh-6.1p1.patch new file mode 100644 index 000000000..fb88db8d5 --- /dev/null +++ b/net-misc/openssh/patches/openssh-6.1p1.patch @@ -0,0 +1,140 @@ +diff -urN openssh-6.1p1/configure.ac openssh-6.1p1-haiku/configure.ac +--- openssh-6.1p1/configure.ac 2011-02-04 00:42:14.007077888 +0000 ++++ openssh-6.1p1-haiku/configure.ac 2011-05-04 16:01:02.093585408 +0000 +@@ -1432,7 +1432,7 @@ + LIBEDIT=`$PKGCONFIG --libs-only-l libedit` + CPPFLAGS="$CPPFLAGS `$PKGCONFIG --cflags libedit`" + else +- LIBEDIT="-ledit -lcurses" ++ AC_CHECK_LIB(curses, tgetent, [LIBEDIT="-ledit -lcurses"], AC_CHECK_LIB(ncurses, tgetent, [LIBEDIT="-ledit -lncurses"])) + fi + OTHERLIBS=`echo $LIBEDIT | sed 's/-ledit//'` + AC_CHECK_LIB(edit, el_init, +diff -urN openssh-6.1p1/pathnames.h openssh-6.1p1-haiku/pathnames.h +--- openssh-6.1p1/pathnames.h 2010-08-31 12:41:14.016252928 +0000 ++++ openssh-6.1p1-haiku/pathnames.h 2011-05-04 16:01:02.127139840 +0000 +@@ -12,7 +12,14 @@ + * called by a name other than "ssh" or "Secure Shell". + */ + +-#define ETCDIR "/etc" ++#define HAIKU_USER_SETTINGS_DIRECTORY "~/config/settings" ++#define HAIKU_COMMON_SETTINGS_DIRECTORY "/boot/common/settings" ++#define HAIKU_COMMON_BIN_DIRECTORY "/boot/common/bin" ++#define HAIKU_COMMON_VAR_DIRECTORY "/boot/common/var" ++#define HAIKU_SYSTEM_BIN_DIRECTORY "/boot/system/bin" ++ ++ ++#define ETCDIR HAIKU_COMMON_SETTINGS_DIRECTORY + + #ifndef SSHDIR + #define SSHDIR ETCDIR "/ssh" +@@ -45,7 +53,7 @@ + #define _PATH_DH_PRIMES SSHDIR "/primes" + + #ifndef _PATH_SSH_PROGRAM +-#define _PATH_SSH_PROGRAM "/usr/bin/ssh" ++#define _PATH_SSH_PROGRAM HAIKU_COMMON_BIN_DIRECTORY + #endif + + /* +@@ -58,25 +66,25 @@ + * The directory in user's home directory in which the files reside. The + * directory should be world-readable (though not all files are). + */ +-#define _PATH_SSH_USER_DIR ".ssh" ++#define _PATH_SSH_USER_DIR "config/settings/ssh" + + /* + * Per-user file containing host keys of known hosts. This file need not be + * readable by anyone except the user him/herself, though this does not + * contain anything particularly secret. + */ +-#define _PATH_SSH_USER_HOSTFILE "~/.ssh/known_hosts" ++#define _PATH_SSH_USER_HOSTFILE "/boot/home/config/settings/ssh/known_hosts" + /* backward compat for protocol 2 */ +-#define _PATH_SSH_USER_HOSTFILE2 "~/.ssh/known_hosts2" ++#define _PATH_SSH_USER_HOSTFILE2 "/boot/home/config/settings/ssh/known_hosts2" + + /* + * Name of the default file containing client-side authentication key. This + * file should only be readable by the user him/herself. + */ +-#define _PATH_SSH_CLIENT_IDENTITY ".ssh/identity" +-#define _PATH_SSH_CLIENT_ID_DSA ".ssh/id_dsa" +-#define _PATH_SSH_CLIENT_ID_ECDSA ".ssh/id_ecdsa" +-#define _PATH_SSH_CLIENT_ID_RSA ".ssh/id_rsa" ++#define _PATH_SSH_CLIENT_IDENTITY _PATH_SSH_USER_DIR "/identity" ++#define _PATH_SSH_CLIENT_ID_DSA _PATH_SSH_USER_DIR "/id_dsa" ++#define _PATH_SSH_CLIENT_ID_ECDSA _PATH_SSH_USER_DIR "/id_ecdsa" ++#define _PATH_SSH_CLIENT_ID_RSA _PATH_SSH_USER_DIR "/id_rsa" + + /* + * Configuration file in user's home directory. This file need not be +@@ -84,7 +92,7 @@ + * particularly secret. If the user's home directory resides on an NFS + * volume where root is mapped to nobody, this may need to be world-readable. + */ +-#define _PATH_SSH_USER_CONFFILE ".ssh/config" ++#define _PATH_SSH_USER_CONFFILE _PATH_SSH_USER_DIR "/config" + + /* + * File containing a list of those rsa keys that permit logging in as this +@@ -94,10 +102,10 @@ + * may need to be world-readable. (This file is read by the daemon which is + * running as root.) + */ +-#define _PATH_SSH_USER_PERMITTED_KEYS ".ssh/authorized_keys" ++#define _PATH_SSH_USER_PERMITTED_KEYS _PATH_SSH_USER_DIR "/authorized_keys" + + /* backward compat for protocol v2 */ +-#define _PATH_SSH_USER_PERMITTED_KEYS2 ".ssh/authorized_keys2" ++#define _PATH_SSH_USER_PERMITTED_KEYS2 _PATH_SSH_USER_DIR "/authorized_keys2" + + /* + * Per-user and system-wide ssh "rc" files. These files are executed with +@@ -105,7 +113,7 @@ + * passed "proto cookie" as arguments if X11 forwarding with spoofing is in + * use. xauth will be run if neither of these exists. + */ +-#define _PATH_SSH_USER_RC ".ssh/rc" ++#define _PATH_SSH_USER_RC _PATH_SSH_USER_DIR "/rc" + #define _PATH_SSH_SYSTEM_RC SSHDIR "/sshrc" + + /* +@@ -149,17 +157,16 @@ + + /* for sftp */ + #ifndef _PATH_SFTP_SERVER +-#define _PATH_SFTP_SERVER "/usr/libexec/sftp-server" ++#define _PATH_SFTP_SERVER HAIKU_COMMON_BIN_DIRECTORY"/sftp-server" + #endif + + /* chroot directory for unprivileged user when UsePrivilegeSeparation=yes */ + #ifndef _PATH_PRIVSEP_CHROOT_DIR +-#define _PATH_PRIVSEP_CHROOT_DIR "/var/empty" ++#define _PATH_PRIVSEP_CHROOT_DIR HAIKU_COMMON_VAR_DIRECTORY "/empty" + #endif +- + /* for passwd change */ + #ifndef _PATH_PASSWD_PROG +-#define _PATH_PASSWD_PROG "/usr/bin/passwd" ++#define _PATH_PASSWD_PROG HAIKU_SYSTEM_BIN_DIRECTORY "/passwd" + #endif + + #ifndef _PATH_LS +@@ -171,11 +178,11 @@ + # ifdef LOGIN_PROGRAM_FALLBACK + # define LOGIN_PROGRAM LOGIN_PROGRAM_FALLBACK + # else +-# define LOGIN_PROGRAM "/usr/bin/login" ++# define LOGIN_PROGRAM HAIKU_SYSTEM_BIN_DIRECTORY "/login" + # endif + #endif /* LOGIN_PROGRAM */ + + /* Askpass program define */ + #ifndef ASKPASS_PROGRAM +-#define ASKPASS_PROGRAM "/usr/lib/ssh/ssh-askpass" ++#define ASKPASS_PROGRAM HAIKU_COMMON_BIN_DIRECTORY "/ssh/ssh-askpass" + #endif /* ASKPASS_PROGRAM */ + diff --git a/net-misc/openssh/patches/openssh-6.2p1.patch b/net-misc/openssh/patches/openssh-6.2p1.patch new file mode 100644 index 000000000..9b07a81f7 --- /dev/null +++ b/net-misc/openssh/patches/openssh-6.2p1.patch @@ -0,0 +1,140 @@ +diff -urN openssh-6.2p1/configure.ac openssh-6.2p1-haiku/configure.ac +--- openssh-6.2p1/configure.ac ++++ openssh-6.2p1-haiku/configure.ac +@@ -1426,7 +1426,7 @@ + LIBEDIT=`$PKGCONFIG --libs-only-l libedit` + CPPFLAGS="$CPPFLAGS `$PKGCONFIG --cflags libedit`" + else +- LIBEDIT="-ledit -lcurses" ++ AC_CHECK_LIB(curses, tgetent, [LIBEDIT="-ledit -lcurses"], AC_CHECK_LIB(ncurses, tgetent, [LIBEDIT="-ledit -lncurses"])) + fi + OTHERLIBS=`echo $LIBEDIT | sed 's/-ledit//'` + AC_CHECK_LIB(edit, el_init, +diff -urN openssh-6.2p1/pathnames.h openssh-6.2p1-haiku/pathnames.h +--- openssh-6.2p1/pathnames.h ++++ openssh-6.2p1-haiku/pathnames.h +@@ -12,7 +12,14 @@ + * called by a name other than "ssh" or "Secure Shell". + */ + +-#define ETCDIR "/etc" ++#define HAIKU_USER_SETTINGS_DIRECTORY "~/config/settings" ++#define HAIKU_COMMON_SETTINGS_DIRECTORY "/boot/common/settings" ++#define HAIKU_COMMON_BIN_DIRECTORY "/boot/common/bin" ++#define HAIKU_COMMON_VAR_DIRECTORY "/boot/common/var" ++#define HAIKU_SYSTEM_BIN_DIRECTORY "/boot/system/bin" ++ ++ ++#define ETCDIR HAIKU_COMMON_SETTINGS_DIRECTORY + + #ifndef SSHDIR + #define SSHDIR ETCDIR "/ssh" +@@ -45,7 +53,7 @@ + #define _PATH_DH_PRIMES SSHDIR "/primes" + + #ifndef _PATH_SSH_PROGRAM +-#define _PATH_SSH_PROGRAM "/usr/bin/ssh" ++#define _PATH_SSH_PROGRAM HAIKU_COMMON_BIN_DIRECTORY + #endif + + /* +@@ -58,25 +66,25 @@ + * The directory in user's home directory in which the files reside. The + * directory should be world-readable (though not all files are). + */ +-#define _PATH_SSH_USER_DIR ".ssh" ++#define _PATH_SSH_USER_DIR "config/settings/ssh" + + /* + * Per-user file containing host keys of known hosts. This file need not be + * readable by anyone except the user him/herself, though this does not + * contain anything particularly secret. + */ +-#define _PATH_SSH_USER_HOSTFILE "~/.ssh/known_hosts" ++#define _PATH_SSH_USER_HOSTFILE "/boot/home/config/settings/ssh/known_hosts" + /* backward compat for protocol 2 */ +-#define _PATH_SSH_USER_HOSTFILE2 "~/.ssh/known_hosts2" ++#define _PATH_SSH_USER_HOSTFILE2 "/boot/home/config/settings/ssh/known_hosts2" + + /* + * Name of the default file containing client-side authentication key. This + * file should only be readable by the user him/herself. + */ +-#define _PATH_SSH_CLIENT_IDENTITY ".ssh/identity" +-#define _PATH_SSH_CLIENT_ID_DSA ".ssh/id_dsa" +-#define _PATH_SSH_CLIENT_ID_ECDSA ".ssh/id_ecdsa" +-#define _PATH_SSH_CLIENT_ID_RSA ".ssh/id_rsa" ++#define _PATH_SSH_CLIENT_IDENTITY _PATH_SSH_USER_DIR "/identity" ++#define _PATH_SSH_CLIENT_ID_DSA _PATH_SSH_USER_DIR "/id_dsa" ++#define _PATH_SSH_CLIENT_ID_ECDSA _PATH_SSH_USER_DIR "/id_ecdsa" ++#define _PATH_SSH_CLIENT_ID_RSA _PATH_SSH_USER_DIR "/id_rsa" + + /* + * Configuration file in user's home directory. This file need not be +@@ -84,7 +92,7 @@ + * particularly secret. If the user's home directory resides on an NFS + * volume where root is mapped to nobody, this may need to be world-readable. + */ +-#define _PATH_SSH_USER_CONFFILE ".ssh/config" ++#define _PATH_SSH_USER_CONFFILE _PATH_SSH_USER_DIR "/config" + + /* + * File containing a list of those rsa keys that permit logging in as this +@@ -94,10 +102,10 @@ + * may need to be world-readable. (This file is read by the daemon which is + * running as root.) + */ +-#define _PATH_SSH_USER_PERMITTED_KEYS ".ssh/authorized_keys" ++#define _PATH_SSH_USER_PERMITTED_KEYS _PATH_SSH_USER_DIR "/authorized_keys" + + /* backward compat for protocol v2 */ +-#define _PATH_SSH_USER_PERMITTED_KEYS2 ".ssh/authorized_keys2" ++#define _PATH_SSH_USER_PERMITTED_KEYS2 _PATH_SSH_USER_DIR "/authorized_keys2" + + /* + * Per-user and system-wide ssh "rc" files. These files are executed with +@@ -105,7 +113,7 @@ + * passed "proto cookie" as arguments if X11 forwarding with spoofing is in + * use. xauth will be run if neither of these exists. + */ +-#define _PATH_SSH_USER_RC ".ssh/rc" ++#define _PATH_SSH_USER_RC _PATH_SSH_USER_DIR "/rc" + #define _PATH_SSH_SYSTEM_RC SSHDIR "/sshrc" + + /* +@@ -149,17 +157,16 @@ + + /* for sftp */ + #ifndef _PATH_SFTP_SERVER +-#define _PATH_SFTP_SERVER "/usr/libexec/sftp-server" ++#define _PATH_SFTP_SERVER HAIKU_COMMON_BIN_DIRECTORY"/sftp-server" + #endif + + /* chroot directory for unprivileged user when UsePrivilegeSeparation=yes */ + #ifndef _PATH_PRIVSEP_CHROOT_DIR +-#define _PATH_PRIVSEP_CHROOT_DIR "/var/empty" ++#define _PATH_PRIVSEP_CHROOT_DIR HAIKU_COMMON_VAR_DIRECTORY "/empty" + #endif +- + /* for passwd change */ + #ifndef _PATH_PASSWD_PROG +-#define _PATH_PASSWD_PROG "/usr/bin/passwd" ++#define _PATH_PASSWD_PROG HAIKU_SYSTEM_BIN_DIRECTORY "/passwd" + #endif + + #ifndef _PATH_LS +@@ -171,11 +178,11 @@ + # ifdef LOGIN_PROGRAM_FALLBACK + # define LOGIN_PROGRAM LOGIN_PROGRAM_FALLBACK + # else +-# define LOGIN_PROGRAM "/usr/bin/login" ++# define LOGIN_PROGRAM HAIKU_SYSTEM_BIN_DIRECTORY "/login" + # endif + #endif /* LOGIN_PROGRAM */ + + /* Askpass program define */ + #ifndef ASKPASS_PROGRAM +-#define ASKPASS_PROGRAM "/usr/lib/ssh/ssh-askpass" ++#define ASKPASS_PROGRAM HAIKU_COMMON_BIN_DIRECTORY "/ssh/ssh-askpass" + #endif /* ASKPASS_PROGRAM */ + diff --git a/net-misc/openssh/sshd_keymaker.sh b/net-misc/openssh/sshd_keymaker.sh index ec3ed83a6..0952fa460 100755 --- a/net-misc/openssh/sshd_keymaker.sh +++ b/net-misc/openssh/sshd_keymaker.sh @@ -1,7 +1,7 @@ #!/bin/sh _progress () { - notify --type progress --app ssh-keygen \ + notify --type progress --group ssh-keygen \ --icon /boot/system/kernel_x86 \ --messageID $0_$$ \ --title "Generating ssh keys..." \ diff --git a/net-misc/rsync/rsync-3.0.6.bep b/net-misc/rsync/rsync-3.0.6.bep index 1fcac9e1f..05957249e 100644 --- a/net-misc/rsync/rsync-3.0.6.bep +++ b/net-misc/rsync/rsync-3.0.6.bep @@ -8,7 +8,7 @@ DEPEND="" BUILD { cd rsync-3.0.6 libtoolize --force --copy --install - ./configure --prefix=/boot/common --disable-ipv6 --disable-locale --disable-debug + ./configure --prefix=`finddir B_COMMON_DIRECTORY` --disable-ipv6 --disable-locale --disable-debug make reconfigure make } diff --git a/net-misc/rsync/rsync-3.0.7.bep b/net-misc/rsync/rsync-3.0.7.bep index 95b2b5f07..8870b43cc 100644 --- a/net-misc/rsync/rsync-3.0.7.bep +++ b/net-misc/rsync/rsync-3.0.7.bep @@ -10,7 +10,13 @@ BUILD { libtoolize --force --copy --install aclocal autoconf - ./configure --prefix=/boot/common --enable-xattr-support --disable-iconv --disable-iconv-open --disable-ipv6 --disable-locale --disable-debug + ./configure --prefix=`finddir B_COMMON_DIRECTORY` \ + --mandir=`finddir B_COMMON_DOCUMENTATION_DIRECTORY`/man \ + --enable-xattr-support \ + --disable-iconv \ + --disable-iconv-open \ + --disable-locale \ + --disable-debug make reconfigure make } @@ -18,7 +24,12 @@ BUILD { INSTALL { cd rsync-3.0.7 make install -# make test } + +TEST { + cd rsync-3.0.7 + make test +} + LICENSE="GNU GPL v3" COPYRIGHT="1996-2009 by Andrew Tridgell, Wayne Davison, and others." diff --git a/net-misc/tor/patches/tor-0.2.2.35.patch b/net-misc/tor/patches/tor-0.2.2.35.patch new file mode 100644 index 000000000..ca348e840 --- /dev/null +++ b/net-misc/tor/patches/tor-0.2.2.35.patch @@ -0,0 +1,78 @@ +diff -Naur tor-0.2.2.35/configure.in tor-0.2.2.35-haiku/configure.in +--- tor-0.2.2.35/configure.in 2011-12-15 18:00:33.013893632 +0100 ++++ tor-0.2.2.35-haiku/configure.in 2011-12-18 01:13:44.216268800 +0100 +@@ -215,7 +215,7 @@ + + AC_C_BIGENDIAN + +-AC_SEARCH_LIBS(socket, [socket]) ++AC_SEARCH_LIBS(socket, [socket network]) + AC_SEARCH_LIBS(gethostbyname, [nsl]) + AC_SEARCH_LIBS(dlopen, [dl]) + AC_SEARCH_LIBS(inet_aton, [resolv]) +@@ -340,6 +340,19 @@ + fi + AC_SUBST(TOR_LIBEVENT_LIBS) + ++dnl ------------------------------------------------------ ++dnl Where do you live, libm? ++ ++dnl On some platforms (Haiku/BeOS) the math library is ++dnl part of libroot. In which case don't link against lm ++TOR_LIB_MATH="" ++save_LIBS="$LIBS" ++AC_SEARCH_LIBS(cos, [m], , AC_MSG_ERROR([Could not find libm and libcore does not provide the functions.])) ++if test "$ac_cv_search_cos" != "none required"; then ++ TOR_LIB_MATH="$ac_cv_search_cos" ++fi ++LIBS="$save_LIBS" ++AC_SUBST(TOR_LIB_MATH) + + dnl ------------------------------------------------------ + dnl Where do you live, openssl? And how do we call you? +diff -Naur tor-0.2.2.35/src/or/Makefile.am tor-0.2.2.35-haiku/src/or/Makefile.am +--- tor-0.2.2.35/src/or/Makefile.am 2011-12-15 17:28:37.048758784 +0100 ++++ tor-0.2.2.35-haiku/src/or/Makefile.am 2011-12-18 00:53:00.718536704 +0100 +@@ -43,7 +43,7 @@ + tor_LDFLAGS = @TOR_LDFLAGS_zlib@ @TOR_LDFLAGS_openssl@ @TOR_LDFLAGS_libevent@ + tor_LDADD = ./libtor.a ../common/libor.a ../common/libor-crypto.a \ + ../common/libor-event.a \ +- @TOR_ZLIB_LIBS@ -lm @TOR_LIBEVENT_LIBS@ @TOR_OPENSSL_LIBS@ @TOR_LIB_WS32@ @TOR_LIB_GDI@ ++ @TOR_ZLIB_LIBS@ @TOR_LIB_MATH@ @TOR_LIBEVENT_LIBS@ @TOR_OPENSSL_LIBS@ @TOR_LIB_WS32@ @TOR_LIB_GDI@ + + noinst_HEADERS = buffers.h circuitbuild.h circuitlist.h circuituse.h \ + command.h config.h connection_edge.h connection.h connection_or.h \ +diff -Naur tor-0.2.2.35/src/test/Makefile.am tor-0.2.2.35-haiku/src/test/Makefile.am +--- tor-0.2.2.35/src/test/Makefile.am 2011-12-15 17:28:37.022806528 +0100 ++++ tor-0.2.2.35-haiku/src/test/Makefile.am 2011-12-18 00:53:47.138412032 +0100 +@@ -25,6 +25,6 @@ + @TOR_LDFLAGS_libevent@ + test_LDADD = ../or/libtor.a ../common/libor.a ../common/libor-crypto.a \ + ../common/libor-event.a \ +- @TOR_ZLIB_LIBS@ -lm @TOR_LIBEVENT_LIBS@ @TOR_OPENSSL_LIBS@ @TOR_LIB_WS32@ @TOR_LIB_GDI@ ++ @TOR_ZLIB_LIBS@ @TOR_LIB_MATH@ @TOR_LIBEVENT_LIBS@ @TOR_OPENSSL_LIBS@ @TOR_LIB_WS32@ @TOR_LIB_GDI@ + + noinst_HEADERS = tinytest.h tinytest_macros.h test.h +diff -Naur tor-0.2.2.35/src/tools/Makefile.am tor-0.2.2.35-haiku/src/tools/Makefile.am +--- tor-0.2.2.35/src/tools/Makefile.am 2011-12-15 17:28:37.020971520 +0100 ++++ tor-0.2.2.35-haiku/src/tools/Makefile.am 2011-12-18 00:54:15.212336640 +0100 +@@ -3,16 +3,16 @@ + + tor_resolve_SOURCES = tor-resolve.c + tor_resolve_LDFLAGS = @TOR_LDFLAGS_libevent@ +-tor_resolve_LDADD = ../common/libor.a -lm @TOR_LIBEVENT_LIBS@ @TOR_LIB_WS32@ ++tor_resolve_LDADD = ../common/libor.a @TOR_LIB_MATH@ @TOR_LIBEVENT_LIBS@ @TOR_LIB_WS32@ + + tor_gencert_SOURCES = tor-gencert.c + tor_gencert_LDFLAGS = @TOR_LDFLAGS_zlib@ @TOR_LDFLAGS_openssl@ \ + @TOR_LDFLAGS_libevent@ + tor_gencert_LDADD = ../common/libor.a ../common/libor-crypto.a \ +- -lm @TOR_ZLIB_LIBS@ @TOR_LIBEVENT_LIBS@ @TOR_OPENSSL_LIBS@ @TOR_LIB_WS32@ @TOR_LIB_GDI@ ++ @TOR_LIB_MATH@ @TOR_ZLIB_LIBS@ @TOR_LIBEVENT_LIBS@ @TOR_OPENSSL_LIBS@ @TOR_LIB_WS32@ @TOR_LIB_GDI@ + + tor_checkkey_SOURCES = tor-checkkey.c + tor_checkkey_LDFLAGS = @TOR_LDFLAGS_zlib@ @TOR_LDFLAGS_openssl@ \ + @TOR_LDFLAGS_libevent@ + tor_checkkey_LDADD = ../common/libor.a ../common/libor-crypto.a \ +- -lm @TOR_ZLIB_LIBS@ @TOR_LIBEVENT_LIBS@ @TOR_OPENSSL_LIBS@ @TOR_LIB_WS32@ @TOR_LIB_GDI@ ++ @TOR_LIB_MATH@ @TOR_ZLIB_LIBS@ @TOR_LIBEVENT_LIBS@ @TOR_OPENSSL_LIBS@ @TOR_LIB_WS32@ @TOR_LIB_GDI@ diff --git a/net-misc/tor/tor-0.2.2.35.bep b/net-misc/tor/tor-0.2.2.35.bep new file mode 100644 index 000000000..d55bb8c24 --- /dev/null +++ b/net-misc/tor/tor-0.2.2.35.bep @@ -0,0 +1,29 @@ +DESCRIPTION="Anonymizing overlay network for TCP" +HOMEPAGE="http://www.torproject.org/" +SRC_URI="https://www.torproject.org/dist/tor-0.2.2.35.tar.gz" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="dev-libs/openssl >= 0.9.8 + dev-libs/libevent >= 2.0.10" +CHECKSUM_MD5="dcecf699c4b929319d5f1ce0358d4835" +BUILD { + cd tor-0.2.2.35 + autoconf + ./configure --prefix=`finddir B_COMMON_DIRECTORY` + make +} + +INSTALL { + cd tor-0.2.2.35 + make install +} + +TEST { + cd tor-0.2.2.35 + make test +} + +LICENSE="Zlib" +COPYRIGHT="2001-2004, Roger Dingledine + 2004-2006, Roger Dingledine, Nick Mathewson + 2007-2011, The Tor Project, Inc." diff --git a/net-misc/tor/tor-0.2.3.25.bep b/net-misc/tor/tor-0.2.3.25.bep new file mode 100644 index 000000000..e94e06d86 --- /dev/null +++ b/net-misc/tor/tor-0.2.3.25.bep @@ -0,0 +1,34 @@ +DESCRIPTION="Anonymizing overlay network for TCP" +HOMEPAGE="http://www.torproject.org/" +SRC_URI="https://www.torproject.org/dist/tor-0.2.3.25.tar.gz" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="dev-libs/openssl >= 0.9.8 + dev-libs/libevent >= 2.0.10" +CHECKSUM_MD5="a1c364189a9a66ed9daa8e6436489daf" + +BUILD { + cd tor-0.2.3.25 + autoconf + ./configure --prefix=`finddir B_COMMON_DIRECTORY` \ + --sysconfdir=`finddir B_COMMON_SETTINGS_DIRECTORY` \ + --datadir=`finddir B_COMMON_DATA_DIRECTORY` \ + --datarootdir=`finddir B_COMMON_DATA_DIRECTORY` \ + --disable-asciidoc + make +} + +INSTALL { + cd tor-0.2.3.25 + make install +} + +TEST { + cd tor-0.2.3.25 + make test +} + +LICENSE="Zlib" +COPYRIGHT="2001-2004 Roger Dingledine + 2004-2006 Roger Dingledine, Nick Mathewson + 2007-2011 The Tor Project, Inc." diff --git a/net-misc/wget/patches/wget-1.13.4.patch b/net-misc/wget/patches/wget-1.13.4.patch new file mode 100644 index 000000000..3145d84af --- /dev/null +++ b/net-misc/wget/patches/wget-1.13.4.patch @@ -0,0 +1,71 @@ +diff -urN wget-1.13.4/src/http.c wget-1.13.4-haiku/src/http.c +--- wget-1.13.4/src/http.c 2011-09-07 03:58:01.006291456 -0700 ++++ wget-1.13.4-haiku/src/http.c 2012-03-17 12:20:29.000000000 -0700 +@@ -1046,6 +1046,7 @@ + char separator) + { + const char *p = *source; ++ int param_type; + + while (c_isspace (*p)) ++p; + if (!*p) +@@ -1101,7 +1102,7 @@ + } + *source = p; + +- int param_type = modify_param_name(name); ++ param_type = modify_param_name(name); + if (NOT_RFC2231 != param_type) + { + modify_param_value(value, param_type); +diff -urN wget-1.13.4/src/main.c wget-1.13.4-haiku/src/main.c +--- wget-1.13.4/src/main.c 2011-09-06 06:50:11.004456448 -0700 ++++ wget-1.13.4-haiku/src/main.c 2012-03-17 12:23:37.000000000 -0700 +@@ -913,14 +913,16 @@ + int i, ret, longindex; + int nurl; + bool append_to_log = false; +- +- total_downloaded_bytes = 0; +- +- program_name = argv[0]; ++ int retconf; ++ bool use_userconfig = false; + + struct ptimer *timer = ptimer_new (); + double start_time = ptimer_measure (timer); + ++ total_downloaded_bytes = 0; ++ ++ program_name = argv[0]; ++ + i18n_initialize (); + + /* Construct the name of the executable, without the directory part. */ +@@ -948,8 +950,6 @@ + /* This seperate getopt_long is needed to find the user config + and parse it before the other user options. */ + longindex = -1; +- int retconf; +- bool use_userconfig = false; + + while ((retconf = getopt_long (argc, argv, + short_options, long_options, &longindex)) != -1) +@@ -1432,11 +1432,14 @@ + && + total_downloaded_bytes != 0) + { ++ char *wall_time; ++ char *download_time; + double end_time = ptimer_measure (timer); + ptimer_destroy (timer); +- +- char *wall_time = xstrdup (secs_to_human_time (end_time - start_time)); +- char *download_time = xstrdup (secs_to_human_time (total_download_time)); ++ ++ wall_time = xstrdup (secs_to_human_time (end_time - start_time)); ++ download_time = xstrdup (secs_to_human_time (total_download_time)); ++ + logprintf (LOG_NOTQUIET, + _("FINISHED --%s--\nTotal wall clock time: %s\n" + "Downloaded: %d files, %s in %s (%s)\n"), diff --git a/net-misc/wget/wget-1.13.4.bep b/net-misc/wget/wget-1.13.4.bep new file mode 100644 index 000000000..673ebc9ea --- /dev/null +++ b/net-misc/wget/wget-1.13.4.bep @@ -0,0 +1,20 @@ +DESCRIPTION="wget" +HOMEPAGE="http://www.gnu.org/software/wget" +SRC_URI="http://ftp.gnu.org/gnu/wget/wget-1.13.4.tar.gz" +CHECKSUM_MD5="1df489976a118b9cbe1b03502adbfc27" +REVISION="1" +STATUS_HAIKU="broken" +DEPEND="" +BUILD { + cd wget-1.13.4 + ./configure --prefix=`finddir B_COMMON_DIRECTORY` --with-ssl=openssl + make +} + +INSTALL { + cd wget-1.13.4 + make install +} + +LICENSE="GNU GPL v3" +COPYRIGHT="1996-2011 Free Software Foundation" diff --git a/net-misc/wput/wput-0.6.1.bep b/net-misc/wput/wput-0.6.1.bep index 2bf494ee7..063e55f5b 100644 --- a/net-misc/wput/wput-0.6.1.bep +++ b/net-misc/wput/wput-0.6.1.bep @@ -12,7 +12,7 @@ BUILD { libtoolize --force --copy --install aclocal -I m4 --warnings=none --force autoconf --warnings=none - ./configure --prefix=/boot/common --enable-shared --disable-nls + ./configure --prefix=`finddir B_COMMON_DIRECTORY` --enable-shared --disable-nls make } diff --git a/net-p2p/rtorrent/rtorrent-0.8.5.bep b/net-p2p/rtorrent/rtorrent-0.8.5.bep index f817a6633..b5f3f8eee 100644 --- a/net-p2p/rtorrent/rtorrent-0.8.5.bep +++ b/net-p2p/rtorrent/rtorrent-0.8.5.bep @@ -14,7 +14,7 @@ DEPEND="pkgconfig >= 0.23 BUILD { cd rtorrent-0.8.5 autoreconf -vfi - ./configure --prefix=/boot/common + ./configure --prefix=`finddir B_COMMON_DIRECTORY` make } diff --git a/net-p2p/seeks/licenses/GNU AGPL v3 b/net-p2p/seeks/licenses/GNU AGPL v3 new file mode 100644 index 000000000..dba13ed2d --- /dev/null +++ b/net-p2p/seeks/licenses/GNU AGPL v3 @@ -0,0 +1,661 @@ + GNU AFFERO GENERAL PUBLIC LICENSE + Version 3, 19 November 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU Affero General Public License is a free, copyleft license for +software and other kinds of works, specifically designed to ensure +cooperation with the community in the case of network server software. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +our General Public Licenses are intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + Developers that use our General Public Licenses protect your rights +with two steps: (1) assert copyright on the software, and (2) offer +you this License which gives you legal permission to copy, distribute +and/or modify the software. + + A secondary benefit of defending all users' freedom is that +improvements made in alternate versions of the program, if they +receive widespread use, become available for other developers to +incorporate. Many developers of free software are heartened and +encouraged by the resulting cooperation. However, in the case of +software used on network servers, this result may fail to come about. +The GNU General Public License permits making a modified version and +letting the public access it on a server without ever releasing its +source code to the public. + + The GNU Affero General Public License is designed specifically to +ensure that, in such cases, the modified source code becomes available +to the community. It requires the operator of a network server to +provide the source code of the modified version running there to the +users of that server. Therefore, public use of a modified version, on +a publicly accessible server, gives the public access to the source +code of the modified version. + + An older license, called the Affero General Public License and +published by Affero, was designed to accomplish similar goals. This is +a different license, not a version of the Affero GPL, but Affero has +released a new version of the Affero GPL which permits relicensing under +this license. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU Affero General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Remote Network Interaction; Use with the GNU General Public License. + + Notwithstanding any other provision of this License, if you modify the +Program, your modified version must prominently offer all users +interacting with it remotely through a computer network (if your version +supports such interaction) an opportunity to receive the Corresponding +Source of your version by providing access to the Corresponding Source +from a network server at no charge, through some standard or customary +means of facilitating copying of software. This Corresponding Source +shall include the Corresponding Source for any work covered by version 3 +of the GNU General Public License that is incorporated pursuant to the +following paragraph. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the work with which it is combined will remain governed by version +3 of the GNU General Public License. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU Affero General Public License from time to time. Such new versions +will be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU Affero General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU Affero General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU Affero General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +state the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License + along with this program. If not, see . + +Also add information on how to contact you by electronic and paper mail. + + If your software can interact with users remotely through a computer +network, you should also make sure that it provides a way for users to +get its source. For example, if your program is a web application, its +interface could display a "Source" link that leads users to an archive +of the code. There are many ways you could offer source, and different +solutions will be better for different programs; see section 13 for the +specific requirements. + + You should also get your employer (if you work as a programmer) or school, +if any, to sign a "copyright disclaimer" for the program, if necessary. +For more information on this, and how to apply and follow the GNU AGPL, see +. diff --git a/net-p2p/seeks/seeks-0.x-git.bep b/net-p2p/seeks/seeks-0.x-git.bep new file mode 100644 index 000000000..0b074c7a6 --- /dev/null +++ b/net-p2p/seeks/seeks-0.x-git.bep @@ -0,0 +1,23 @@ +DESCRIPTION="An Open Decentralized Platform for Collaborative Search, Filtering and content Curation" +HOMEPAGE="http://www.seeks-project.info/" +SRC_URI="git://seeks.git.sourceforge.net/gitroot/seeks/seeks" +REVISION="1" +#CHECKSUM_MD5="" +STATUS_HAIKU="untested" +#MESSAGE="This port only builds with gcc4. Use 'setgcc gcc4' before building." +# pkgconfig is only a build dependency +DEPEND="pkgconfig >= 0.25" + +BUILD { + cd seeks-0.x-git + ./autogen.sh + ./configure --prefix=`finddir B_COMMON_DIRECTORY` + make +} + +INSTALL { + cd seeks-0.x-git + make install +} +LICENSE="GNU AGPL v3" +COPYRIGHT="2006, 2009, 2010 Emmanuel Benazera, Camille Harang, Mehdi Abaakouk, Pablo Joubert, Laurent Peuch" diff --git a/net-p2p/transmission/patches/transmission-2.73.patch b/net-p2p/transmission/patches/transmission-2.73.patch new file mode 100644 index 000000000..b719e158a --- /dev/null +++ b/net-p2p/transmission/patches/transmission-2.73.patch @@ -0,0 +1,69 @@ +diff -Naur ./transmission-2.73/third-party/miniupnp/connecthostport.c ./transmission-2.73-haiku/transmission-2.73/third-party/miniupnp/connecthostport.c +--- ./transmission-2.73/third-party/miniupnp/connecthostport.c 2012-10-24 13:01:10.429654016 +0000 ++++ ./transmission-2.73-haiku/transmission-2.73/third-party/miniupnp/connecthostport.c 2012-12-08 17:06:33.040632320 +0000 +@@ -24,6 +24,7 @@ + #else /* #ifdef _WIN32 */ + #include + #include ++#include + #include + #define closesocket close + #include +diff -Naur ./transmission-2.73/third-party/miniupnp/miniupnpc.c ./transmission-2.73-haiku/transmission-2.73/third-party/miniupnp/miniupnpc.c +--- ./transmission-2.73/third-party/miniupnp/miniupnpc.c 2012-10-24 13:01:10.457703424 +0000 ++++ ./transmission-2.73-haiku/transmission-2.73/third-party/miniupnp/miniupnpc.c 2012-12-08 17:09:12.018087936 +0000 +@@ -17,7 +17,7 @@ + #endif + #endif + +-#if !defined(__OpenBSD__) && !defined(__NetBSD__) && !defined(MACOSX) && !defined(_WIN32) && !defined(__CYGWIN__) && !defined(__sun) ++#if !defined(__OpenBSD__) && !defined(__NetBSD__) && !defined(MACOSX) && !defined(_WIN32) && !defined(__CYGWIN__) && !defined(__sun) && !defined(__HAIKU__) + #define HAS_IP_MREQN + #endif + +diff -Naur ./transmission-2.73/third-party/miniupnp/portlistingparse.c ./transmission-2.73-haiku/transmission-2.73/third-party/miniupnp/portlistingparse.c +--- ./transmission-2.73/third-party/miniupnp/portlistingparse.c 2012-10-24 13:01:10.221511680 +0000 ++++ ./transmission-2.73-haiku/transmission-2.73/third-party/miniupnp/portlistingparse.c 2012-12-08 17:09:49.941359104 +0000 +@@ -28,7 +28,7 @@ + + /* Helper function */ + static UNSIGNED_INTEGER +-atoui(const char * p, int l) ++_atoui(const char * p, int l) + { + UNSIGNED_INTEGER r = 0; + while(l > 0 && *p) +@@ -92,7 +92,7 @@ + pm->remoteHost[l] = '\0'; + break; + case NewExternalPort: +- pm->externalPort = (unsigned short)atoui(data, l); ++ pm->externalPort = (unsigned short)_atoui(data, l); + break; + case NewProtocol: + if(l > 3) +@@ -101,21 +101,21 @@ + pm->protocol[l] = '\0'; + break; + case NewInternalPort: +- pm->internalPort = (unsigned short)atoui(data, l); ++ pm->internalPort = (unsigned short)_atoui(data, l); + break; + case NewInternalClient: + memcpy(pm->internalClient, data, l); + pm->internalClient[l] = '\0'; + break; + case NewEnabled: +- pm->enabled = (unsigned char)atoui(data, l); ++ pm->enabled = (unsigned char)_atoui(data, l); + break; + case NewDescription: + memcpy(pm->description, data, l); + pm->description[l] = '\0'; + break; + case NewLeaseTime: +- pm->leaseTime = atoui(data, l); ++ pm->leaseTime = _atoui(data, l); + break; + default: + break; diff --git a/net-p2p/transmission/patches/transmission-2.75.patch b/net-p2p/transmission/patches/transmission-2.75.patch new file mode 100644 index 000000000..074c85751 --- /dev/null +++ b/net-p2p/transmission/patches/transmission-2.75.patch @@ -0,0 +1,69 @@ +diff -Naur ./transmission-2.75/third-party/miniupnp/connecthostport.c ./transmission-2.75-haiku/transmission-2.75/third-party/miniupnp/connecthostport.c +--- ./transmission-2.75/third-party/miniupnp/connecthostport.c 2012-10-24 13:01:10.429654016 +0000 ++++ ./transmission-2.75-haiku/transmission-2.75/third-party/miniupnp/connecthostport.c 2012-12-08 17:06:33.040632320 +0000 +@@ -24,6 +24,7 @@ + #else /* #ifdef _WIN32 */ + #include + #include ++#include + #include + #define closesocket close + #include +diff -Naur ./transmission-2.75/third-party/miniupnp/miniupnpc.c ./transmission-2.75-haiku/transmission-2.75/third-party/miniupnp/miniupnpc.c +--- ./transmission-2.75/third-party/miniupnp/miniupnpc.c 2012-10-24 13:01:10.457703424 +0000 ++++ ./transmission-2.75-haiku/transmission-2.75/third-party/miniupnp/miniupnpc.c 2012-12-08 17:09:12.018087936 +0000 +@@ -17,7 +17,7 @@ + #endif + #endif + +-#if !defined(__OpenBSD__) && !defined(__NetBSD__) && !defined(MACOSX) && !defined(_WIN32) && !defined(__CYGWIN__) && !defined(__sun) ++#if !defined(__OpenBSD__) && !defined(__NetBSD__) && !defined(MACOSX) && !defined(_WIN32) && !defined(__CYGWIN__) && !defined(__sun) && !defined(__HAIKU__) + #define HAS_IP_MREQN + #endif + +diff -Naur ./transmission-2.75/third-party/miniupnp/portlistingparse.c ./transmission-2.75-haiku/transmission-2.75/third-party/miniupnp/portlistingparse.c +--- ./transmission-2.75/third-party/miniupnp/portlistingparse.c 2012-10-24 13:01:10.221511680 +0000 ++++ ./transmission-2.75-haiku/transmission-2.75/third-party/miniupnp/portlistingparse.c 2012-12-08 17:09:49.941359104 +0000 +@@ -28,7 +28,7 @@ + + /* Helper function */ + static UNSIGNED_INTEGER +-atoui(const char * p, int l) ++_atoui(const char * p, int l) + { + UNSIGNED_INTEGER r = 0; + while(l > 0 && *p) +@@ -92,7 +92,7 @@ + pm->remoteHost[l] = '\0'; + break; + case NewExternalPort: +- pm->externalPort = (unsigned short)atoui(data, l); ++ pm->externalPort = (unsigned short)_atoui(data, l); + break; + case NewProtocol: + if(l > 3) +@@ -101,21 +101,21 @@ + pm->protocol[l] = '\0'; + break; + case NewInternalPort: +- pm->internalPort = (unsigned short)atoui(data, l); ++ pm->internalPort = (unsigned short)_atoui(data, l); + break; + case NewInternalClient: + memcpy(pm->internalClient, data, l); + pm->internalClient[l] = '\0'; + break; + case NewEnabled: +- pm->enabled = (unsigned char)atoui(data, l); ++ pm->enabled = (unsigned char)_atoui(data, l); + break; + case NewDescription: + memcpy(pm->description, data, l); + pm->description[l] = '\0'; + break; + case NewLeaseTime: +- pm->leaseTime = atoui(data, l); ++ pm->leaseTime = _atoui(data, l); + break; + default: + break; diff --git a/net-p2p/transmission/transmission-1.72.bep b/net-p2p/transmission/transmission-1.72.bep index 5ced713ec..7bad2285c 100644 --- a/net-p2p/transmission/transmission-1.72.bep +++ b/net-p2p/transmission/transmission-1.72.bep @@ -13,7 +13,7 @@ DEPEND="dev-util/pkgconfig >= 0.23 BUILD { cd transmission-1.72 autoreconf -vfi - ./configure --prefix=/boot/common + ./configure --prefix=`finddir B_COMMON_DIRECTORY` make } diff --git a/net-p2p/transmission/transmission-1.73.bep b/net-p2p/transmission/transmission-1.73.bep index 460083399..1b0aef828 100644 --- a/net-p2p/transmission/transmission-1.73.bep +++ b/net-p2p/transmission/transmission-1.73.bep @@ -13,7 +13,7 @@ DEPEND="dev-util/pkgconfig >= 0.23 BUILD { cd transmission-1.73 autoreconf -vfi - ./configure --prefix=/boot/common + ./configure --prefix=`finddir B_COMMON_DIRECTORY` make } diff --git a/net-p2p/transmission/transmission-1.93.bep b/net-p2p/transmission/transmission-1.93.bep index 2b6c78703..1c00284ba 100644 --- a/net-p2p/transmission/transmission-1.93.bep +++ b/net-p2p/transmission/transmission-1.93.bep @@ -15,7 +15,7 @@ DEPEND="dev-util/pkgconfig >= 0.23 BUILD { cd transmission-1.93 autoreconf -vfi - ./configure --prefix=/boot/common + ./configure --prefix=`finddir B_COMMON_DIRECTORY` make } diff --git a/net-p2p/transmission/transmission-2.01.bep b/net-p2p/transmission/transmission-2.01.bep index 20c052b3b..432836baf 100644 --- a/net-p2p/transmission/transmission-2.01.bep +++ b/net-p2p/transmission/transmission-2.01.bep @@ -15,7 +15,7 @@ DEPEND="dev-util/pkgconfig >= 0.23 BUILD { cd transmission-2.01 autoreconf -vfi - ./configure --prefix=/boot/common + ./configure --prefix=`finddir B_COMMON_DIRECTORY` make } diff --git a/net-p2p/transmission/transmission-2.12.bep b/net-p2p/transmission/transmission-2.12.bep index 280fa11bc..125121a95 100644 --- a/net-p2p/transmission/transmission-2.12.bep +++ b/net-p2p/transmission/transmission-2.12.bep @@ -15,7 +15,7 @@ DEPEND="dev-util/pkgconfig >= 0.23 BUILD { cd transmission-2.12 autoreconf -vfi - ./configure --prefix=/boot/common + ./configure --prefix=`finddir B_COMMON_DIRECTORY` make } diff --git a/net-p2p/transmission/transmission-2.21.bep b/net-p2p/transmission/transmission-2.21.bep index f910f8bb0..5609c0d99 100644 --- a/net-p2p/transmission/transmission-2.21.bep +++ b/net-p2p/transmission/transmission-2.21.bep @@ -14,7 +14,15 @@ DEPEND="dev-util/pkgconfig >= 0.23 BUILD { cd transmission-2.21 autoreconf -vfi - ./configure --prefix=/boot/common + +# Transmission doesn't think it's a bug, so we will have to remove this + sed -i 's/IT_PROG_INTLTOOL(0.35.0,no-xml)/ /' configure + + ./configure --prefix=`finddir B_COMMON_DIRECTORY` \ + --disable-nls \ + --mandir=`finddir B_COMMON_DOCUMENTATION_DIRECTORY`/man \ + --localedir=`finddir B_COMMON_DATA_DIRECTORY`/locale \ + --datarootdir=`finddir B_COMMON_DOCUMENTATION_DIRECTORY` make } diff --git a/net-p2p/transmission/transmission-2.73.bep b/net-p2p/transmission/transmission-2.73.bep new file mode 100644 index 000000000..6033b9893 --- /dev/null +++ b/net-p2p/transmission/transmission-2.73.bep @@ -0,0 +1,35 @@ +DESCRIPTION="Transmission" +HOMEPAGE="http://www.transmissionbt.com/" +SRC_URI="http://download.transmissionbt.com/files/transmission-2.73.tar.bz2" +CHECKSUM_MD5="03927018656c4b54a92156ab59a8de74" +REVISION="1" +STATUS_HAIKU="stable" +MESSAGE="This port only builds with gcc4. Use 'setgcc gcc4' before building." + +# pkgconfig is only a build dependency +# note: intlool, XML-Parser, & gettext are now required +DEPEND="dev-util/pkgconfig >= 0.23 + net-misc/curl >= 7.16.3 + dev-libs/libevent >= 2.0.10 + dev-libs/openssl >= 0.9.8" + +BUILD { + cd transmission-2.73 + + ./configure --prefix=`finddir B_COMMON_DIRECTORY` \ + --disable-nls \ + --mandir=`finddir B_COMMON_DOCUMENTATION_DIRECTORY`/man \ + --localedir=`finddir B_COMMON_DATA_DIRECTORY`/locale \ + --datarootdir=`finddir B_COMMON_DOCUMENTATION_DIRECTORY` + make +} + +INSTALL { + cd transmission-2.73 + make install +} +LICENSE="Transmission + MIT + GNU GPL v2" +COPYRIGHT="2005-2011. All code is copyrighted by the respective authors." + diff --git a/net-p2p/transmission/transmission-2.75.bep b/net-p2p/transmission/transmission-2.75.bep new file mode 100644 index 000000000..7252e2e99 --- /dev/null +++ b/net-p2p/transmission/transmission-2.75.bep @@ -0,0 +1,35 @@ +DESCRIPTION="Transmission" +HOMEPAGE="http://www.transmissionbt.com/" +SRC_URI="http://download.transmissionbt.com/files/transmission-2.75.tar.bz2" +CHECKSUM_MD5="ae3a3e7532560c16324e6c8a6386ad22" +REVISION="1" +STATUS_HAIKU="stable" +MESSAGE="This port only builds with gcc4. Use 'setgcc gcc4' before building." + +# pkgconfig is only a build dependency +# note: intlool, XML-Parser, & gettext are now required +DEPEND="dev-util/pkgconfig >= 0.23 + net-misc/curl >= 7.16.3 + dev-libs/libevent >= 2.0.10 + dev-libs/openssl >= 0.9.8" + +BUILD { + cd transmission-2.75 + + ./configure --prefix=`finddir B_COMMON_DIRECTORY` \ + --disable-nls \ + --mandir=`finddir B_COMMON_DOCUMENTATION_DIRECTORY`/man \ + --localedir=`finddir B_COMMON_DATA_DIRECTORY`/locale \ + --datarootdir=`finddir B_COMMON_DOCUMENTATION_DIRECTORY` + make +} + +INSTALL { + cd transmission-2.75 + make install +} +LICENSE="Transmission + MIT + GNU GPL v2" +COPYRIGHT="2005-2013. All code is copyrighted by the respective authors." + diff --git a/net-proxy/privoxy/patches/privoxy-3.0.19.patch b/net-proxy/privoxy/patches/privoxy-3.0.19.patch new file mode 100644 index 000000000..1be72de1c --- /dev/null +++ b/net-proxy/privoxy/patches/privoxy-3.0.19.patch @@ -0,0 +1,72 @@ +diff -Naur privoxy-3.0.19-stable/configure.in privoxy-3.0.19-stable-haiku/configure.in +--- privoxy-3.0.19-stable/configure.in 2012-09-12 20:00:37.292814848 -0400 ++++ privoxy-3.0.19-stable-haiku/configure.in 2012-09-12 22:21:25.287309824 -0400 +@@ -160,7 +160,7 @@ + dnl ================================================================= + + +-if test "$EMXOS2" = yes; then ++if test "$EMXOS2" = yes || test "$host_os" = haiku; then + echo "Skipping user and group validity stuff."; + + else +@@ -677,6 +677,26 @@ + AC_SUBST(AMIGAOS_ONLY) + + dnl ================================================================= ++dnl Haiku specific ++dnl ================================================================= ++ ++if test "$host_os" = haiku; then ++ # Omit the "-pthread" flag to gcc, even when building with gcc 2.95 ++ SPECIAL_CFLAGS= ++ ++ # Haiku's pthreads implementation exists in its system library, ++ # libroot, not in a separate pthreads library ++ PTHREAD_LIB= ++ ++ # Networking code exists in libnetwork ++ SOCKET_LIB=-lnetwork ++ ++ # Search Haiku's common-library folder to find its pcre and ++ # pcreposix libraries ++ LIBS="-L/boot/common/lib $LIBS" ++fi ++ ++dnl ================================================================= + dnl Check for standard compiler stuff + dnl ================================================================= + +diff -Naur privoxy-3.0.19-stable/filters.c privoxy-3.0.19-stable-haiku/filters.c +--- privoxy-3.0.19-stable/filters.c 2012-09-12 20:00:37.720371712 -0400 ++++ privoxy-3.0.19-stable-haiku/filters.c 2012-09-12 22:21:28.150470656 -0400 +@@ -1095,6 +1095,11 @@ + char *new_url = NULL; + char *tmp; + ++ char *url_segment = NULL; ++ char **url_segments; ++ size_t max_segments; ++ int segments; ++ + assert(subject); + assert(redirect_mode); + +@@ -1117,14 +1122,13 @@ + * and look for a URL in the decoded result. + * Stop the search after the first match. + */ +- char *url_segment = NULL; ++ + /* + * XXX: This estimate is guaranteed to be high enough as we + * let ssplit() ignore empty fields, but also a bit wasteful. + */ +- size_t max_segments = strlen(subject) / 2; +- char **url_segments = malloc(max_segments * sizeof(char *)); +- int segments; ++ max_segments = strlen(subject) / 2; ++ url_segments = malloc(max_segments * sizeof(char *)); + + if (NULL == url_segments) + { diff --git a/net-proxy/privoxy/privoxy-3.0.19.bep b/net-proxy/privoxy/privoxy-3.0.19.bep new file mode 100644 index 000000000..d7dc1ebac --- /dev/null +++ b/net-proxy/privoxy/privoxy-3.0.19.bep @@ -0,0 +1,29 @@ +DESCRIPTION="A web proxy with advanced filtering capabilities for protecting privacy against Internet junk" +HOMEPAGE="http://www.privoxy.org/" +SRC_URI="http://sourceforge.net/projects/ijbswa/files/Sources/3.0.19%20%28stable%29/privoxy-3.0.19-stable-src.tar.gz/download" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="" +CHECKSUM_MD5="57acc79059565cc42eda67982842785d" + +BUILD { + cd privoxy-3.0.19-stable + autoheader + autoconf + ./configure --prefix=`finddir B_COMMON_DIRECTORY` \ + --sbindir=`finddir B_COMMON_BIN_DIRECTORY` \ + --sysconfdir=`finddir B_COMMON_ETC_DIRECTORY`/privoxy \ + --localstatedir=`finddir B_COMMON_VAR_DIRECTORY` \ + --datarootdir=`finddir B_COMMON_DOCUMENTATION_DIRECTORY` \ + --infodir=`finddir B_COMMON_DOCUMENTATION_DIRECTORY`/info \ + --mandir=`finddir B_COMMON_DOCUMENTATION_DIRECTORY`/man + make +} + +INSTALL { + cd privoxy-3.0.19-stable + make install +} + +LICENSE="GNU GPL v2" +COPYRIGHT="2001-2011 Privoxy Developers" diff --git a/net-wireless/b43-fwcutter/b43-fwcutter-012.bep b/net-wireless/b43-fwcutter/b43-fwcutter-012.bep index ee5531fe4..3f5bf8b68 100644 --- a/net-wireless/b43-fwcutter/b43-fwcutter-012.bep +++ b/net-wireless/b43-fwcutter/b43-fwcutter-012.bep @@ -1,21 +1,21 @@ DESCRIPTION="A tool for extracting the firmware from a binary Broadcom 43xx wireless driver." HOMEPAGE="http://linuxwireless.org/en/users/Drivers/b43" -SRC_URI="http://bu3sch.de/b43/fwcutter/b43-fwcutter-012.tar.bz2" +SRC_URI="http://bues.ch/b43/fwcutter/b43-fwcutter-012.tar.bz2" CHECKSUM_MD5="69eadf67b459f313a8d6b37aaabef96c" REVISION="1" STATUS_HAIKU="stable" DEPEND="" BUILD { cd b43-fwcutter-012 - svn export http://svn.haiku-os.org/haiku/haiku/trunk/src/system/libroot/posix/glibc/string/byteswap.h + wget http://cgit.haiku-os.org/haiku/plain/src/system/libroot/posix/glibc/string/byteswap.h mkdir bits - svn export http://svn.haiku-os.org/haiku/haiku/trunk/src/system/libroot/posix/glibc/include/arch/x86/bits/byteswap.h bits/byteswap.h - make PREFIX=/boot/common CFLAGS="-I. -Wall -D_BSD_SOURCE" + wget http://cgit.haiku-os.org/haiku/plain/src/system/libroot/posix/glibc/include/arch/x86/bits/byteswap.h -O bits/byteswap.h + make PREFIX=`finddir B_COMMON_DIRECTORY` CFLAGS="-I. -Wall -D_BSD_SOURCE" } INSTALL { cd b43-fwcutter-012 - make PREFIX=/boot/common install + make PREFIX=$DESTDIR/`finddir B_COMMON_DIRECTORY` install } LICENSE="GNU GPL v2" COPYRIGHT="2005 Martin Langer diff --git a/net-wireless/b43-fwcutter/patches/b43-fwcutter-012.patch b/net-wireless/b43-fwcutter/patches/b43-fwcutter-012.patch new file mode 100644 index 000000000..575dd4e3e --- /dev/null +++ b/net-wireless/b43-fwcutter/patches/b43-fwcutter-012.patch @@ -0,0 +1,14 @@ +diff -up b43-fwcutter-012/Makefile.orig b43-fwcutter-012/Makefile +--- b43-fwcutter-012/Makefile.orig 2009-06-02 09:52:55.058982400 -0600 ++++ b43-fwcutter-012/Makefile 2012-06-16 16:13:04.182452224 -0600 +@@ -24,8 +24,8 @@ $(BIN): $(OBJECTS) + install: all + -install -d -o 0 -g 0 -m 755 $(PREFIX)/bin/ + -install -o 0 -g 0 -m 755 $(BIN) $(PREFIX)/bin/ +- -install -d -o 0 -g 0 -m 755 $(PREFIX)/man/man1/ +- -install -o 0 -g 0 -m 644 $(BIN).1 $(PREFIX)/man/man1/ ++ -install -d -o 0 -g 0 -m 755 $(PREFIX)/documentation/man/man1/ ++ -install -o 0 -g 0 -m 644 $(BIN).1 $(PREFIX)/documentation/man/man1/ + + clean: + -rm -f *.o $(BIN) diff --git a/net-wireless/wpa_supplicant/patches/wpa_supplicant-0.7.3.patch b/net-wireless/wpa_supplicant/patches/wpa_supplicant-0.7.3.patch new file mode 100644 index 000000000..3e318adb4 --- /dev/null +++ b/net-wireless/wpa_supplicant/patches/wpa_supplicant-0.7.3.patch @@ -0,0 +1,2156 @@ +diff -urN wpa_supplicant-0.7.3/src/crypto/aes-internal-dec.c wpa_supplicant-0.7.3-haiku/src/crypto/aes-internal-dec.c +--- wpa_supplicant-0.7.3/src/crypto/aes-internal-dec.c 2010-09-07 17:43:39.064749568 +0200 ++++ wpa_supplicant-0.7.3-haiku/src/crypto/aes-internal-dec.c 2011-07-01 17:41:33.033292288 +0200 +@@ -32,7 +32,7 @@ + * + * @return the number of rounds for the given cipher key size. + */ +-void rijndaelKeySetupDec(u32 rk[/*44*/], const u8 cipherKey[]) ++static void rijndaelKeySetupDec(u32 rk[/*44*/], const u8 cipherKey[]) + { + int Nr = 10, i, j; + u32 temp; +diff -urN wpa_supplicant-0.7.3/src/crypto/aes-internal-enc.c wpa_supplicant-0.7.3-haiku/src/crypto/aes-internal-enc.c +--- wpa_supplicant-0.7.3/src/crypto/aes-internal-enc.c 2010-09-07 17:43:39.065536000 +0200 ++++ wpa_supplicant-0.7.3-haiku/src/crypto/aes-internal-enc.c 2011-07-01 17:42:10.033292288 +0200 +@@ -27,7 +27,7 @@ + #include "crypto.h" + #include "aes_i.h" + +-void rijndaelEncrypt(const u32 rk[/*44*/], const u8 pt[16], u8 ct[16]) ++static void rijndaelEncrypt(const u32 rk[/*44*/], const u8 pt[16], u8 ct[16]) + { + u32 s0, s1, s2, s3, t0, t1, t2, t3; + const int Nr = 10; +diff -urN wpa_supplicant-0.7.3/src/drivers/driver_bsd.c wpa_supplicant-0.7.3-haiku/src/drivers/driver_bsd.c +--- wpa_supplicant-0.7.3/src/drivers/driver_bsd.c 2010-09-07 17:43:39.009699328 +0200 ++++ wpa_supplicant-0.7.3-haiku/src/drivers/driver_bsd.c 2011-09-27 18:32:01.953679872 +0200 +@@ -48,9 +48,28 @@ + #if __NetBSD__ + #include + #endif ++#ifdef __HAIKU__ ++#include ++ ++#include ++#include ++#include ++#include ++ ++#include "net80211/ieee80211.h" ++#include "net80211/ieee80211_ioctl.h" ++#include "net80211/ieee80211_crypto.h" ++#endif /* __HAIKU__ */ + + #include "l2_packet/l2_packet.h" + ++ ++#ifdef __HAIKU__ ++void haiku_unregister_events(void *drv); ++int haiku_register_events(void *ctx, void *drv, const char *ifname, ++ void **events, void (*callback)(void *ctx, void *drv, int opcode)); ++#endif ++ + struct bsd_driver_data { + struct hostapd_data *hapd; /* back pointer */ + +@@ -65,6 +84,9 @@ + int prev_roaming; /* roaming state to restore on deinit */ + int prev_privacy; /* privacy state to restore on deinit */ + int prev_wpa; /* wpa state to restore on deinit */ ++#ifdef __HAIKU__ ++ void *events; ++#endif + }; + + /* Generic functions for hostapd and wpa_supplicant */ +@@ -82,7 +104,7 @@ + ireq.i_data = (void *) arg; + ireq.i_len = arg_len; + +- if (ioctl(drv->sock, SIOCS80211, &ireq) < 0) { ++ if (ioctl(drv->sock, SIOCS80211, &ireq, sizeof(ireq)) < 0) { + wpa_printf(MSG_ERROR, "ioctl[SIOCS80211, op=%u, val=%u, " + "arg_len=%u]: %s", op, val, arg_len, + strerror(errno)); +@@ -103,8 +125,8 @@ + ireq->i_len = arg_len; + ireq->i_data = arg; + +- if (ioctl(drv->sock, SIOCG80211, ireq) < 0) { +- wpa_printf(MSG_ERROR, "ioctl[SIOCS80211, op=%u, " ++ if (ioctl(drv->sock, SIOCG80211, ireq, sizeof(*ireq)) < 0) { ++ wpa_printf(MSG_ERROR, "ioctl[SIOCG80211, op=%u, " + "arg_len=%u]: %s", op, arg_len, strerror(errno)); + return -1; + } +@@ -144,7 +166,7 @@ + os_memset(&ifr, 0, sizeof(ifr)); + os_strlcpy(ifr.ifr_name, drv->ifname, sizeof(ifr.ifr_name)); + ifr.ifr_data = (void *)&nwid; +- if (ioctl(drv->sock, SIOCG80211NWID, &ifr) < 0 || ++ if (ioctl(drv->sock, SIOCG80211NWID, &ifr, sizeof(ifr)) < 0 || + nwid.i_len > IEEE80211_NWID_LEN) + return -1; + os_memcpy(ssid, nwid.i_nwid, nwid.i_len); +@@ -167,7 +189,7 @@ + os_memset(&ifr, 0, sizeof(ifr)); + os_strlcpy(ifr.ifr_name, drv->ifname, sizeof(ifr.ifr_name)); + ifr.ifr_data = (void *)&nwid; +- return ioctl(drv->sock, SIOCS80211NWID, &ifr); ++ return ioctl(drv->sock, SIOCS80211NWID, &ifr, sizeof(ifr)); + #else + return set80211var(drv, IEEE80211_IOC_SSID, ssid, ssid_len); + #endif +@@ -182,7 +204,7 @@ + os_memset(&ifmr, 0, sizeof(ifmr)); + os_strlcpy(ifmr.ifm_name, drv->ifname, sizeof(ifmr.ifm_name)); + +- if (ioctl(drv->sock, SIOCGIFMEDIA, &ifmr) < 0) { ++ if (ioctl(drv->sock, SIOCGIFMEDIA, &ifmr, sizeof(ifmr)) < 0) { + wpa_printf(MSG_ERROR, "%s: SIOCGIFMEDIA %s", __func__, + strerror(errno)); + return -1; +@@ -201,7 +223,7 @@ + os_strlcpy(ifr.ifr_name, drv->ifname, sizeof(ifr.ifr_name)); + ifr.ifr_media = media; + +- if (ioctl(drv->sock, SIOCSIFMEDIA, &ifr) < 0) { ++ if (ioctl(drv->sock, SIOCSIFMEDIA, &ifr, sizeof(ifr)) < 0) { + wpa_printf(MSG_ERROR, "%s: SIOCSIFMEDIA %s", __func__, + strerror(errno)); + return -1; +@@ -258,13 +280,14 @@ + static int + bsd_ctrl_iface(void *priv, int enable) + { ++#ifndef __HAIKU__ + struct bsd_driver_data *drv = priv; + struct ifreq ifr; + + os_memset(&ifr, 0, sizeof(ifr)); + os_strlcpy(ifr.ifr_name, drv->ifname, sizeof(ifr.ifr_name)); + +- if (ioctl(drv->sock, SIOCGIFFLAGS, &ifr) < 0) { ++ if (ioctl(drv->sock, SIOCGIFFLAGS, &ifr, sizeof(ifr)) < 0) { + perror("ioctl[SIOCGIFFLAGS]"); + return -1; + } +@@ -274,10 +297,11 @@ + else + ifr.ifr_flags &= ~IFF_UP; + +- if (ioctl(drv->sock, SIOCSIFFLAGS, &ifr) < 0) { ++ if (ioctl(drv->sock, SIOCSIFFLAGS, &ifr, sizeof(ifr)) < 0) { + perror("ioctl[SIOCSIFFLAGS]"); + return -1; + } ++#endif + + return 0; + } +@@ -487,6 +511,7 @@ + IEEE80211_MLME_UNAUTHORIZE, 0, addr); + } + ++#ifndef __HAIKU__ + static void + bsd_new_sta(void *priv, void *ctx, u8 addr[IEEE80211_ADDR_LEN]) + { +@@ -513,6 +538,7 @@ + no_ie: + drv_event_assoc(ctx, addr, iebuf, ielen); + } ++#endif // !__HAIKU__ + + static int + bsd_send_eapol(void *priv, const u8 *addr, const u8 *data, size_t data_len, +@@ -551,7 +577,7 @@ + os_memset(&creq, 0, sizeof(creq)); + os_strlcpy(creq.i_name, drv->ifname, sizeof(creq.i_name)); + creq.i_channel = channel; +- return ioctl(drv->sock, SIOCS80211CHANNEL, &creq); ++ return ioctl(drv->sock, SIOCS80211CHANNEL, &creq, sizeof(creq)); + #else /* SIOCS80211CHANNEL */ + return set80211param(priv, IEEE80211_IOC_CHANNEL, channel); + #endif /* SIOCS80211CHANNEL */ +@@ -644,7 +670,7 @@ + } + + +-static int ++static int + bsd_flush(void *priv) + { + u8 allsta[IEEE80211_ADDR_LEN]; +@@ -859,7 +885,7 @@ + struct ieee80211_bssid bs; + + os_strlcpy(bs.i_name, drv->ifname, sizeof(bs.i_name)); +- if (ioctl(drv->sock, SIOCG80211BSSID, &bs) < 0) ++ if (ioctl(drv->sock, SIOCG80211BSSID, &bs, sizeof(bs)) < 0) + return -1; + os_memcpy(bssid, bs.i_bssid, sizeof(bs.i_bssid)); + return 0; +@@ -979,7 +1005,7 @@ + wpa_printf(MSG_DEBUG, + "%s: ssid '%.*s' wpa ie len %u pairwise %u group %u key mgmt %u" + , __func__ +- , (unsigned int) params->ssid_len, params->ssid ++ , (int) params->ssid_len, params->ssid + , (unsigned int) params->wpa_ie_len + , params->pairwise_suite + , params->group_suite +@@ -1130,6 +1156,23 @@ + #endif /* IEEE80211_IOC_SCAN_MAX_SSID */ + } + ++#ifdef __HAIKU__ ++static void ++wpa_driver_haiku_event(void *ctx, void *drv, int opcode) ++{ ++ switch (opcode) { ++ case B_NETWORK_WLAN_JOINED: ++ wpa_supplicant_event(ctx, EVENT_ASSOC, NULL); ++ break; ++ case B_NETWORK_WLAN_LEFT: ++ wpa_supplicant_event(ctx, EVENT_DISASSOC, NULL); ++ break; ++ case B_NETWORK_WLAN_SCANNED: ++ wpa_supplicant_event(ctx, EVENT_SCAN_RESULTS, NULL); ++ break; ++ } ++} ++#else // !__HAIKU__ + static void + wpa_driver_bsd_event_receive(int sock, void *ctx, void *sock_ctx) + { +@@ -1242,6 +1285,7 @@ + break; + } + } ++#endif // !__HAIKU__ + + static void + wpa_driver_bsd_add_scan_entry(struct wpa_scan_results *res, +@@ -1260,7 +1304,11 @@ + if (result == NULL) + return; + os_memcpy(result->bssid, sr->isr_bssid, ETH_ALEN); ++#ifdef __HAIKU__ ++ result->freq = sr->isr_chan.ic_freq; ++#else + result->freq = sr->isr_freq; ++#endif + result->beacon_int = sr->isr_intval; + result->caps = sr->isr_capinfo; + result->qual = sr->isr_rssi; +@@ -1319,7 +1367,7 @@ + + pos = buf; + rest = len; +- while (rest >= sizeof(struct ieee80211req_scan_result)) { ++ while (rest >= (int) sizeof(struct ieee80211req_scan_result)) { + sr = (struct ieee80211req_scan_result *)pos; + wpa_driver_bsd_add_scan_entry(res, sr); + pos += sr->isr_len; +@@ -1431,11 +1479,18 @@ + drv->sock = socket(PF_INET, SOCK_DGRAM, 0); + if (drv->sock < 0) + goto fail1; ++#ifndef __HAIKU__ + drv->route = socket(PF_ROUTE, SOCK_RAW, 0); + if (drv->route < 0) + goto fail; + eloop_register_read_sock(drv->route, + wpa_driver_bsd_event_receive, ctx, drv); ++#else ++ if (haiku_register_events(ctx, drv, ifname, &drv->events, ++ wpa_driver_haiku_event) != 0) { ++ goto fail; ++ } ++#endif + + drv->ctx = ctx; + os_strlcpy(drv->ifname, ifname, sizeof(drv->ifname)); +@@ -1478,7 +1533,11 @@ + struct bsd_driver_data *drv = priv; + + wpa_driver_bsd_set_wpa(drv, 0); ++#ifndef __HAIKU__ + eloop_unregister_read_sock(drv->route); ++#else ++ haiku_unregister_events(drv->events); ++#endif + + /* NB: mark interface down */ + bsd_ctrl_iface(drv, 0); +diff -urN wpa_supplicant-0.7.3/src/drivers/driver_haiku_events.cpp wpa_supplicant-0.7.3-haiku/src/drivers/driver_haiku_events.cpp +--- wpa_supplicant-0.7.3/src/drivers/driver_haiku_events.cpp 1970-01-01 01:00:00.000000000 +0100 ++++ wpa_supplicant-0.7.3-haiku/src/drivers/driver_haiku_events.cpp 2011-09-27 18:54:15.247726080 +0200 +@@ -0,0 +1,103 @@ ++/* ++ * WPA Supplicant - Haiku event handling routines ++ * Copyright (c) 2010, Axel Dörfler, axeld@pinc-software.de. ++ * ++ * This program is free software; you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License version 2 as ++ * published by the Free Software Foundation. ++ * ++ * Alternatively, this software may be distributed under the terms of BSD ++ * license. ++ * ++ * See README and COPYING for more details. ++ * ++ * This file can be used as a starting point for layer2 packet implementation. ++ */ ++ ++#include ++#include ++#include ++ ++#include ++ ++#include ++ ++ ++class EventLooper : public BLooper { ++public: ++ EventLooper(void *context, void *driverData, const char *interfaceName, ++ void (*callback)(void *, void *, int)) ++ : ++ fContext(context), ++ fDriverData(driverData), ++ fInterfaceName(interfaceName), ++ fCallback(callback), ++ fQuitting(false) ++ { ++ start_watching_network(B_WATCH_NETWORK_WLAN_CHANGES, this); ++ } ++ ++ virtual ~EventLooper() ++ { ++ fQuitting = true; ++ stop_watching_network(this); ++ } ++ ++protected: ++ virtual void MessageReceived(BMessage *message) ++ { ++ if (message->what != B_NETWORK_MONITOR) { ++ BLooper::MessageReceived(message); ++ return; ++ } ++ ++ if (fQuitting) ++ return; ++ ++ BString interfaceName; ++ if (message->FindString("interface", &interfaceName) != B_OK) ++ return; ++ ++ if (fInterfaceName.FindFirst(interfaceName) < 0) { ++ // The notification is for some other interface ++ return; ++ } ++ ++ message->AddPointer("callback", (void *)fCallback); ++ message->AddPointer("context", fContext); ++ message->AddPointer("data", fDriverData); ++ be_app->PostMessage(message); ++ } ++ ++private: ++ void *fContext; ++ void *fDriverData; ++ BString fInterfaceName; ++ void (*fCallback)(void *, void *, int); ++ bool fQuitting; ++}; ++ ++ ++extern "C" void ++haiku_unregister_events(void *events) ++{ ++ EventLooper *eventLooper = (EventLooper *)events; ++ if (eventLooper->Lock()) ++ eventLooper->Quit(); ++} ++ ++ ++extern "C" int ++haiku_register_events(void *ctx, void *drv, const char *ifname, void **events, ++ void (*callback)(void *ctx, void *drv, int opcode)) ++{ ++ EventLooper *eventLooper = new(std::nothrow) EventLooper(ctx, drv, ifname, ++ callback); ++ if (eventLooper == NULL) ++ return B_NO_MEMORY; ++ ++ eventLooper->Run(); ++ ++ *events = eventLooper; ++ return 0; ++} +diff -urN wpa_supplicant-0.7.3/src/drivers/drivers.mak wpa_supplicant-0.7.3-haiku/src/drivers/drivers.mak +--- wpa_supplicant-0.7.3/src/drivers/drivers.mak 2010-09-07 17:43:39.012058624 +0200 ++++ wpa_supplicant-0.7.3-haiku/src/drivers/drivers.mak 2011-09-27 17:40:51.542638080 +0200 +@@ -45,9 +45,15 @@ + endif + DRV_CFLAGS += -DCONFIG_DRIVER_BSD + DRV_OBJS += ../src/drivers/driver_bsd.o ++ifneq ($(CONFIG_L2_PACKET), haiku) + CONFIG_L2_FREEBSD=y + CONFIG_DNET_PCAP=y + endif ++endif ++ ++ifeq ($(CONFIG_L2_PACKET), haiku) ++DRV_OBJS += ../src/drivers/driver_haiku_events.o ++endif + + ifdef CONFIG_DRIVER_TEST + DRV_CFLAGS += -DCONFIG_DRIVER_TEST +diff -urN wpa_supplicant-0.7.3/src/l2_packet/l2_packet_haiku.c wpa_supplicant-0.7.3-haiku/src/l2_packet/l2_packet_haiku.c +--- wpa_supplicant-0.7.3/src/l2_packet/l2_packet_haiku.c 1970-01-01 01:00:00.000000000 +0100 ++++ wpa_supplicant-0.7.3-haiku/src/l2_packet/l2_packet_haiku.c 2011-09-27 18:49:59.729284608 +0200 +@@ -0,0 +1,235 @@ ++/* ++ * WPA Supplicant - Layer2 packet handling for Haiku ++ * Copyright (c) 2010, Axel Dörfler, axeld@pinc-software.de. ++ * ++ * This program is free software; you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License version 2 as ++ * published by the Free Software Foundation. ++ * ++ * Alternatively, this software may be distributed under the terms of BSD ++ * license. ++ * ++ * See README and COPYING for more details. ++ * ++ * This file can be used as a starting point for layer2 packet implementation. ++ */ ++ ++#include "includes.h" ++ ++#include "common.h" ++#include "eloop.h" ++#include "l2_packet.h" ++ ++#include ++#include ++#include ++ ++ ++struct l2_packet_data { ++ char ifname[IF_NAMESIZE]; ++ union { ++ struct sockaddr_dl link_address; ++ struct sockaddr_storage link_storage; ++ }; ++ void (*rx_callback)(void *ctx, const u8 *src_addr, ++ const u8 *buf, size_t len); ++ void *rx_callback_ctx; ++ int l2_hdr; /* whether to include layer 2 (Ethernet) header data ++ * buffers */ ++ int rx_fd; ++ int tx_fd; ++}; ++ ++ ++int l2_packet_get_own_addr(struct l2_packet_data *l2, u8 *addr) ++{ ++ os_memcpy(addr, LLADDR(&l2->link_address), ETH_ALEN); ++ return 0; ++} ++ ++ ++#if 0 ++static void ++dump_block(const u8* buffer, int size, const char* prefix) ++{ ++ const int DUMPED_BLOCK_SIZE = 16; ++ int i; ++ ++ for (i = 0; i < size;) { ++ int start = i; ++ ++ printf("%s%04x ", prefix, i); ++ for (; i < start + DUMPED_BLOCK_SIZE; i++) { ++ if (!(i % 4)) ++ printf(" "); ++ ++ if (i >= size) ++ printf(" "); ++ else ++ printf("%02x", *(unsigned char*)(buffer + i)); ++ } ++ printf(" "); ++ ++ for (i = start; i < start + DUMPED_BLOCK_SIZE; i++) { ++ if (i < size) { ++ char c = buffer[i]; ++ ++ if (c < 30) ++ printf("."); ++ else ++ printf("%c", c); ++ } else ++ break; ++ } ++ printf("\n"); ++ } ++} ++#endif ++ ++ ++int l2_packet_send(struct l2_packet_data *l2, const u8 *dst_addr, u16 proto, ++ const u8 *buf, size_t len) ++{ ++ int result = -1; ++ struct sockaddr_dl to; ++ ++ if (l2 == NULL) ++ return -1; ++ ++ if (l2->l2_hdr) { ++ int result = send(l2->tx_fd, buf, len, 0); ++ if (result < 0) ++ printf("l2_packet_send failed to send: %s", strerror(errno)); ++ return result; ++ } ++ ++ memset(&to, 0, sizeof(struct sockaddr_dl)); ++ to.sdl_len = sizeof(struct sockaddr_dl); ++ to.sdl_family = AF_LINK; ++ to.sdl_e_type = htons(proto); ++ to.sdl_alen = ETHER_ADDR_LEN; ++ memcpy(LLADDR(&to), dst_addr, ETHER_ADDR_LEN); ++ ++ result = sendto(l2->tx_fd, buf, len, 0, (struct sockaddr*)&to, ++ sizeof(struct sockaddr_dl)); ++ if (result < 0) ++ printf("l2_packet_send failed to send: %s", strerror(errno)); ++ ++ return result; ++} ++ ++ ++static void l2_packet_receive(int sock, void *eloop_ctx, void *sock_ctx) ++{ ++ struct l2_packet_data *l2 = eloop_ctx; ++ struct sockaddr_dl from; ++ socklen_t fromLength = sizeof(struct sockaddr_dl); ++ ssize_t bytesReceived; ++ u8 buffer[2300]; ++ ++ bytesReceived = recvfrom(l2->rx_fd, buffer, sizeof(buffer), MSG_TRUNC, ++ (struct sockaddr*)&from, &fromLength); ++ ++ if (bytesReceived <= 0) ++ return; ++ ++ l2->rx_callback(l2->rx_callback_ctx, LLADDR(&from), buffer, bytesReceived); ++} ++ ++ ++struct l2_packet_data * l2_packet_init( ++ const char *ifname, const u8 *own_addr, unsigned short protocol, ++ void (*rx_callback)(void *ctx, const u8 *src_addr, ++ const u8 *buf, size_t len), ++ void *rx_callback_ctx, int l2_hdr) ++{ ++ struct l2_packet_data *l2; ++ struct ifreq request; ++ ++ /* check if the interface exists */ ++ if (if_nametoindex(ifname) == 0) ++ return NULL; ++ ++ l2 = os_zalloc(sizeof(struct l2_packet_data)); ++ if (l2 == NULL) ++ return NULL; ++ os_strlcpy(l2->ifname, ifname, sizeof(l2->ifname)); ++ l2->rx_callback = rx_callback; ++ l2->rx_callback_ctx = rx_callback_ctx; ++ l2->l2_hdr = l2_hdr; ++ ++ /* open connection for sending and receiving frames */ ++ l2->tx_fd = socket(AF_LINK, SOCK_DGRAM, 0); ++ if (l2->tx_fd < 0) ++ goto err1; ++ ++ /* retrieve link address */ ++ strlcpy(request.ifr_name, ifname, IF_NAMESIZE); ++ if (ioctl(l2->tx_fd, SIOCGIFADDR, &request, sizeof(struct ifreq)) < 0) ++ goto err2; ++ ++ memcpy(&l2->link_address, &request.ifr_addr, request.ifr_addr.sa_len); ++ ++ if (l2_hdr) { ++ /* we need to preserve the L2 header - this is only ++ possible by using a dedicated socket. ++ */ ++ ++ /* open connection for monitoring frames */ ++ l2->rx_fd = socket(AF_LINK, SOCK_DGRAM, 0); ++ if (l2->rx_fd < 0) ++ goto err2; ++ ++ /* start monitoring */ ++ if (ioctl(l2->rx_fd, SIOCSPACKETCAP, &request, ++ sizeof(struct ifreq)) < 0) ++ goto err2; ++ } else { ++ /* bind to protocol */ ++ l2->link_address.sdl_e_type = htons(protocol); ++ ++ if (bind(l2->tx_fd, (struct sockaddr *)&l2->link_address, ++ ((struct sockaddr *)&l2->link_address)->sa_len) < 0) ++ goto err2; ++ ++ /* we can use the same socket to receive our packets */ ++ l2->rx_fd = l2->tx_fd; ++ } ++ ++ eloop_register_read_sock(l2->rx_fd, l2_packet_receive, l2, NULL); ++ ++ return l2; ++ ++err2: ++ close(l2->tx_fd); ++err1: ++ os_free(l2); ++ return NULL; ++} ++ ++ ++void l2_packet_deinit(struct l2_packet_data *l2) ++{ ++ if (l2 == NULL) ++ return; ++ ++ if (l2->rx_fd >= 0) { ++ eloop_unregister_read_sock(l2->rx_fd); ++ /* TODO: close connection */ ++ } ++ ++ os_free(l2); ++} ++ ++ ++int l2_packet_get_ip_addr(struct l2_packet_data *l2, char *buf, size_t len) ++{ ++ /* TODO: get interface IP address */ ++ return -1; ++} ++ ++ ++void l2_packet_notify_auth_start(struct l2_packet_data *l2) ++{ ++ /* This function can be left empty */ ++} +diff -urN wpa_supplicant-0.7.3/src/utils/common.h wpa_supplicant-0.7.3-haiku/src/utils/common.h +--- wpa_supplicant-0.7.3/src/utils/common.h 2010-09-07 17:43:39.048234496 +0200 ++++ wpa_supplicant-0.7.3-haiku/src/utils/common.h 2011-07-01 17:39:20.061079552 +0200 +@@ -59,6 +59,14 @@ + } + #endif /* __APPLE__ */ + ++#if defined(__HAIKU__) ++#include ++#include ++#define bswap_16 __swap_int16 ++#define bswap_32 __swap_int32 ++#define bswap_64 __swap_int64 ++#endif /* __HAIKU__ */ ++ + #ifdef CONFIG_TI_COMPILER + #define __BIG_ENDIAN 4321 + #define __LITTLE_ENDIAN 1234 +diff -urN wpa_supplicant-0.7.3/src/utils/os_unix.c wpa_supplicant-0.7.3-haiku/src/utils/os_unix.c +--- wpa_supplicant-0.7.3/src/utils/os_unix.c 2010-09-07 17:43:39.048496640 +0200 ++++ wpa_supplicant-0.7.3-haiku/src/utils/os_unix.c 2011-07-02 18:19:53.552599552 +0200 +@@ -135,9 +135,9 @@ + + int os_daemonize(const char *pid_file) + { +-#ifdef __uClinux__ ++#if defined(__uClinux__) || defined(__HAIKU__) + return -1; +-#else /* __uClinux__ */ ++#else /* __uClinux__ || __HAIKU__ */ + if (os_daemon(0, 0)) { + perror("daemon"); + return -1; +@@ -152,7 +152,7 @@ + } + + return -0; +-#endif /* __uClinux__ */ ++#endif /* __uClinux__ || __HAIKU__ */ + } + + +diff -urN wpa_supplicant-0.7.3/src/utils/wpa_debug.h wpa_supplicant-0.7.3-haiku/src/utils/wpa_debug.h +--- wpa_supplicant-0.7.3/src/utils/wpa_debug.h 2010-09-07 17:43:39.047448064 +0200 ++++ wpa_supplicant-0.7.3-haiku/src/utils/wpa_debug.h 2011-07-02 18:17:43.390332416 +0200 +@@ -79,7 +79,7 @@ + static inline void wpa_hexdump_buf(int level, const char *title, + const struct wpabuf *buf) + { +- wpa_hexdump(level, title, wpabuf_head(buf), wpabuf_len(buf)); ++ wpa_hexdump(level, title, (u8 *)wpabuf_head(buf), wpabuf_len(buf)); + } + + /** +@@ -100,7 +100,7 @@ + static inline void wpa_hexdump_buf_key(int level, const char *title, + const struct wpabuf *buf) + { +- wpa_hexdump_key(level, title, wpabuf_head(buf), wpabuf_len(buf)); ++ wpa_hexdump_key(level, title, (u8 *)wpabuf_head(buf), wpabuf_len(buf)); + } + + /** +diff -urN wpa_supplicant-0.7.3/src/utils/wpabuf.h wpa_supplicant-0.7.3-haiku/src/utils/wpabuf.h +--- wpa_supplicant-0.7.3/src/utils/wpabuf.h 2010-09-07 17:43:39.048496640 +0200 ++++ wpa_supplicant-0.7.3-haiku/src/utils/wpabuf.h 2011-07-02 18:16:39.086769664 +0200 +@@ -85,7 +85,7 @@ + + static inline const u8 * wpabuf_head_u8(const struct wpabuf *buf) + { +- return wpabuf_head(buf); ++ return (u8 *)wpabuf_head(buf); + } + + /** +@@ -102,36 +102,36 @@ + + static inline u8 * wpabuf_mhead_u8(struct wpabuf *buf) + { +- return wpabuf_mhead(buf); ++ return (u8 *)wpabuf_mhead(buf); + } + + static inline void wpabuf_put_u8(struct wpabuf *buf, u8 data) + { +- u8 *pos = wpabuf_put(buf, 1); ++ u8 *pos = (u8 *)wpabuf_put(buf, 1); + *pos = data; + } + + static inline void wpabuf_put_le16(struct wpabuf *buf, u16 data) + { +- u8 *pos = wpabuf_put(buf, 2); ++ u8 *pos = (u8 *)wpabuf_put(buf, 2); + WPA_PUT_LE16(pos, data); + } + + static inline void wpabuf_put_be16(struct wpabuf *buf, u16 data) + { +- u8 *pos = wpabuf_put(buf, 2); ++ u8 *pos = (u8 *)wpabuf_put(buf, 2); + WPA_PUT_BE16(pos, data); + } + + static inline void wpabuf_put_be24(struct wpabuf *buf, u32 data) + { +- u8 *pos = wpabuf_put(buf, 3); ++ u8 *pos = (u8 *)wpabuf_put(buf, 3); + WPA_PUT_BE24(pos, data); + } + + static inline void wpabuf_put_be32(struct wpabuf *buf, u32 data) + { +- u8 *pos = wpabuf_put(buf, 4); ++ u8 *pos = (u8 *)wpabuf_put(buf, 4); + WPA_PUT_BE32(pos, data); + } + +diff -urN wpa_supplicant-0.7.3/wpa_supplicant/.config wpa_supplicant-0.7.3-haiku/wpa_supplicant/.config +--- wpa_supplicant-0.7.3/wpa_supplicant/.config 1970-01-01 01:00:00.000000000 +0100 ++++ wpa_supplicant-0.7.3-haiku/wpa_supplicant/.config 2011-09-27 19:04:17.648019968 +0200 +@@ -0,0 +1,120 @@ ++# for OpenSSL ++CFLAGS += -I/boot/common/include ++LIBS += -L/boot/common/lib ++ ++# for private Haiku headers ++CFLAGS += -I/Source/Haiku/trunk/src/libs/compat/freebsd_network/compat ++CFLAGS += -I/Source/Haiku/trunk/src/libs/compat/freebsd_wlan ++CFLAGS += -I/Source/Haiku/trunk/headers/private/net ++CFLAGS += -Wno-multichar ++ ++# Driver interface for FreeBSD net80211 layer (e.g., Atheros driver) ++CONFIG_DRIVER_BSD=y ++ ++# Enable IEEE 802.1X Supplicant (automatically included if any EAP method is ++# included) ++#CONFIG_IEEE8021X_EAPOL=y ++ ++# EAP-MD5 ++#CONFIG_EAP_MD5=y ++ ++# EAP-MSCHAPv2 ++#CONFIG_EAP_MSCHAPV2=y ++ ++# EAP-TLS ++#CONFIG_EAP_TLS=y ++ ++# EAL-PEAP ++#CONFIG_EAP_PEAP=y ++ ++# EAP-TTLS ++#CONFIG_EAP_TTLS=y ++ ++# EAP-GTC ++#CONFIG_EAP_GTC=y ++ ++# EAP-OTP ++#CONFIG_EAP_OTP=y ++ ++# LEAP ++#CONFIG_EAP_LEAP=y ++ ++# Wi-Fi Protected Setup (WPS) ++#CONFIG_WPS=y ++ ++# EAP-IKEv2 ++#CONFIG_EAP_IKEV2=y ++ ++# PKCS#12 (PFX) support (used to read private key and certificate file from ++# a file that usually has extension .p12 or .pfx) ++#CONFIG_PKCS12=y ++ ++# Smartcard support (i.e., private key on a smartcard), e.g., with openssl ++# engine. ++#CONFIG_SMARTCARD=y ++ ++# Select control interface backend for external programs, e.g, wpa_cli: ++# unix = UNIX domain sockets (default for Linux/*BSD) ++# udp = UDP sockets using localhost (127.0.0.1) ++# named_pipe = Windows Named Pipe (default for Windows) ++# y = use default (backwards compatibility) ++# If this option is commented out, control interface is not included in the ++# build. ++#CONFIG_CTRL_IFACE=y ++ ++# Remove debugging code that is printing out debug message to stdout. ++# This can be used to reduce the size of the wpa_supplicant considerably ++# if debugging code is not needed. The size reduction can be around 35% ++# (e.g., 90 kB). ++#CONFIG_NO_STDOUT_DEBUG=y ++ ++# Select configuration backend: ++# file = text file (e.g., wpa_supplicant.conf; note: the configuration file ++# path is given on command line, not here; this option is just used to ++# select the backend that allows configuration files to be used) ++# winreg = Windows registry (see win_example.reg for an example) ++CONFIG_BACKEND=none ++ ++# Remove configuration write functionality (i.e., to allow the configuration ++# file to be updated based on runtime configuration changes). The runtime ++# configuration can still be changed, the changes are just not going to be ++# persistent over restarts. This option can be used to reduce code size by ++# about 3.5 kB. ++CONFIG_NO_CONFIG_WRITE=y ++ ++# Remove support for configuration blobs to reduce code size by about 1.5 kB. ++CONFIG_NO_CONFIG_BLOBS=y ++ ++# Select program entry point implementation: ++# main = UNIX/POSIX like main() function (default) ++# main_winsvc = Windows service (read parameters from registry) ++# main_none = Very basic example (development use only) ++CONFIG_MAIN=main_haiku ++ ++# Select wrapper for operatins system and C library specific functions ++# unix = UNIX/POSIX like systems (default) ++# win32 = Windows systems ++# none = Empty template ++#CONFIG_OS=haiku ++ ++# Select event loop implementation ++# eloop = select() loop (default) ++# eloop_win = Windows events and WaitForMultipleObject() loop ++# eloop_none = Empty template ++#CONFIG_ELOOP=eloop ++ ++# Select layer 2 packet implementation ++# linux = Linux packet socket (default) ++# pcap = libpcap/libdnet/WinPcap ++# freebsd = FreeBSD libpcap ++# winpcap = WinPcap with receive thread ++# ndis = Windows NDISUIO (note: requires CONFIG_USE_NDISUIO=y) ++# none = Empty template ++CONFIG_L2_PACKET=haiku ++ ++# PeerKey handshake for Station to Station Link (IEEE 802.11e DLS) ++CONFIG_PEERKEY=y ++ ++# Enable mitigation against certain attacks against TKIP by delaying Michael ++# MIC error reports by a random amount of time between 0 and 60 seconds ++#CONFIG_DELAYED_MIC_ERROR_REPORT=y +diff -urN wpa_supplicant-0.7.3/wpa_supplicant/Makefile wpa_supplicant-0.7.3-haiku/wpa_supplicant/Makefile +--- wpa_supplicant-0.7.3/wpa_supplicant/Makefile 2010-09-07 17:43:39.014417920 +0200 ++++ wpa_supplicant-0.7.3-haiku/wpa_supplicant/Makefile 2011-10-05 21:46:19.671088640 +0200 +@@ -579,9 +579,11 @@ + NEED_EAP_COMMON=y + ifdef CONFIG_DYNAMIC_EAP_METHODS + CFLAGS += -DCONFIG_DYNAMIC_EAP_METHODS ++ifneq ($(CONFIG_L2_PACKET), haiku) + LIBS += -ldl -rdynamic + endif + endif ++endif + + ifdef CONFIG_AP + NEED_80211_COMMON=y +@@ -898,11 +900,23 @@ + ifdef CONFIG_SMARTCARD + ifndef CONFIG_NATIVE_WINDOWS + ifneq ($(CONFIG_L2_PACKET), freebsd) ++ifneq ($(CONFIG_L2_PACKET), haiku) + LIBS += -ldl + endif + endif + endif + endif ++endif ++ ++ifeq ($(CONFIG_L2_PACKET), haiku) ++OBJS += WirelessConfigDialog.o ++OBJS += notify_haiku.o ++LIBS += -lnetwork -lbe ++LIBS_c += -lnetwork ++ifeq ($(shell $(CC) -dumpversion | cut -d. -f1), 4) ++LIBS += -lstdc++ ++endif ++endif + + ifndef TLS_FUNCS + OBJS += ../src/crypto/tls_none.o +@@ -1270,13 +1284,21 @@ + wpa_priv: $(BCHECK) $(OBJS_priv) + $(LDO) $(LDFLAGS) -o wpa_priv $(OBJS_priv) $(LIBS) + ++ifneq ($(CONFIG_L2_PACKET), haiku) + wpa_supplicant: .config $(BCHECK) $(OBJS) $(EXTRA_progs) + $(LDO) $(LDFLAGS) -o wpa_supplicant $(OBJS) $(LIBS) $(EXTRALIBS) ++else ++wpa_supplicant: .config $(BCHECK) $(OBJS) $(EXTRA_progs) ++ $(LDO) $(LDFLAGS) -o wpa_supplicant $(OBJS) $(LIBS) $(EXTRALIBS) ++ rc -o wpa_supplicant.rsrc wpa_supplicant.rdef ++ xres -o wpa_supplicant wpa_supplicant.rsrc ++ mimeset -F wpa_supplicant ++endif + + eapol_test: .config $(OBJS_t) + $(LDO) $(LDFLAGS) -o eapol_test $(OBJS_t) $(LIBS) + +-preauth_test: .config $(OBJS_t2) ++preauth_test: .config $(OBJS_t2) + $(LDO) $(LDFLAGS) -o preauth_test $(OBJS_t2) $(LIBS) + + wpa_passphrase: $(OBJS_p) +@@ -1329,6 +1351,10 @@ + $(Q)$(CC) -c -o $@ $(CFLAGS) $< + @$(E) " CC " $< + ++%.o: %.cpp ++ $(Q)$(CC) -c -o $@ $(CFLAGS) $< ++ @$(E) " CPP " $< ++ + wpa_supplicant.exe: wpa_supplicant + mv -f $< $@ + wpa_cli.exe: wpa_cli +@@ -1346,13 +1372,13 @@ + $(STRIP) $(WINALL) + + wpa_gui/Makefile: +- qmake -o wpa_gui/Makefile wpa_gui/wpa_gui.pro ++ qmake -o wpa_gui/Makefile wpa_gui/wpa_gui.pro + + wpa_gui: wpa_gui/Makefile + $(MAKE) -C wpa_gui + + wpa_gui-qt4/Makefile: +- qmake -o wpa_gui-qt4/Makefile wpa_gui-qt4/wpa_gui.pro ++ qmake -o wpa_gui-qt4/Makefile wpa_gui-qt4/wpa_gui.pro + + wpa_gui-qt4/lang/wpa_gui_de.qm: wpa_gui-qt4/lang/wpa_gui_de.ts + lrelease wpa_gui-qt4/wpa_gui.pro +@@ -1375,6 +1401,6 @@ + $(MAKE) -C ../src clean + $(MAKE) -C dbus clean + rm -f core *~ *.o *.d eap_*.so $(ALL) $(WINALL) eapol_test preauth_test +- rm -f wpa_priv ++ rm -f wpa_priv *.rsrc + + -include $(OBJS:%.o=%.d) +diff -urN wpa_supplicant-0.7.3/wpa_supplicant/WirelessConfigDialog.cpp wpa_supplicant-0.7.3-haiku/wpa_supplicant/WirelessConfigDialog.cpp +--- wpa_supplicant-0.7.3/wpa_supplicant/WirelessConfigDialog.cpp 1970-01-01 01:00:00.000000000 +0100 ++++ wpa_supplicant-0.7.3-haiku/wpa_supplicant/WirelessConfigDialog.cpp 2011-09-27 18:52:47.483131392 +0200 +@@ -0,0 +1,255 @@ ++/* ++ * WPA Supplicant - Wireless Config Dialog ++ * Copyright (c) 2011, Michael Lotz ++ * ++ * This program is free software; you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License version 2 as ++ * published by the Free Software Foundation. ++ * ++ * Alternatively, this software may be distributed under the terms of BSD ++ * license. ++ * ++ * See README and COPYING for more details. ++ */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#include ++ ++static const uint32 kMessageCancel = 'btcl'; ++static const uint32 kMessageOk = 'btok'; ++ ++ ++class WirelessConfigView : public BView { ++public: ++ WirelessConfigView() ++ : ++ BView("WirelessConfigView", B_WILL_DRAW), ++ fPassword(NULL) ++ { ++ SetViewColor(ui_color(B_PANEL_BACKGROUND_COLOR)); ++ ++ BGroupLayout* rootLayout = new(std::nothrow) BGroupLayout(B_VERTICAL); ++ if (rootLayout == NULL) ++ return; ++ ++ SetLayout(rootLayout); ++ ++ BGridView* controls = new(std::nothrow) BGridView(); ++ if (controls == NULL) ++ return; ++ ++ BGridLayout* layout = controls->GridLayout(); ++ ++ float inset = ceilf(be_plain_font->Size() * 0.7); ++ rootLayout->SetInsets(inset, inset, inset, inset); ++ rootLayout->SetSpacing(inset); ++ layout->SetSpacing(inset, inset); ++ ++ fNetworkName = new(std::nothrow) BTextControl("Network Name:", "", ++ NULL); ++ if (fNetworkName == NULL) ++ return; ++ ++ layout->AddItem(fNetworkName->CreateLabelLayoutItem(), 0, 0); ++ layout->AddItem(fNetworkName->CreateTextViewLayoutItem(), 1, 0); ++ ++ BPopUpMenu* authMenu = new(std::nothrow) BPopUpMenu("authMode"); ++ if (authMenu == NULL) ++ return; ++ ++ fAuthOpen = new(std::nothrow) BMenuItem("Open", NULL); ++ authMenu->AddItem(fAuthOpen); ++ fAuthWEP = new(std::nothrow) BMenuItem("WEP", NULL); ++ authMenu->AddItem(fAuthWEP); ++ fAuthWPA = new(std::nothrow) BMenuItem("WPA/WPA2", NULL); ++ authMenu->AddItem(fAuthWPA); ++ ++ BMenuField* authMenuField = new(std::nothrow) BMenuField( ++ "Authentication:", authMenu); ++ if (authMenuField == NULL) ++ return; ++ ++ layout->AddItem(authMenuField->CreateLabelLayoutItem(), 0, 1); ++ layout->AddItem(authMenuField->CreateMenuBarLayoutItem(), 1, 1); ++ ++ fPassword = new(std::nothrow) BTextControl("Password:", "", NULL); ++ if (fPassword == NULL) ++ return; ++ ++ BLayoutItem* layoutItem = fPassword->CreateTextViewLayoutItem(); ++ layoutItem->SetExplicitMinSize(BSize(fPassword->StringWidth( ++ "0123456789012345678901234567890123456789") + inset, ++ B_SIZE_UNSET)); ++ ++ layout->AddItem(fPassword->CreateLabelLayoutItem(), 0, 2); ++ layout->AddItem(layoutItem, 1, 2); ++ ++ BGroupView* buttons = new(std::nothrow) BGroupView(B_HORIZONTAL); ++ if (buttons == NULL) ++ return; ++ ++ fCancelButton = new(std::nothrow) BButton("Cancel", ++ new BMessage(kMessageCancel)); ++ buttons->GroupLayout()->AddView(fCancelButton); ++ ++ buttons->GroupLayout()->AddItem(BSpaceLayoutItem::CreateGlue()); ++ ++ fOkButton = new(std::nothrow) BButton("OK", new BMessage(kMessageOk)); ++ buttons->GroupLayout()->AddView(fOkButton); ++ ++ rootLayout->AddView(controls); ++ rootLayout->AddView(buttons); ++ } ++ ++ virtual void ++ AttachedToWindow() ++ { ++ fCancelButton->SetTarget(Window()); ++ fOkButton->SetTarget(Window()); ++ } ++ ++ void ++ SetUp(BString& networkName, uint32 authMode, BString& password) ++ { ++ fNetworkName->SetText(networkName); ++ ++ switch (authMode) { ++ default: ++ case B_NETWORK_AUTHENTICATION_NONE: ++ fAuthOpen->SetMarked(true); ++ break; ++ case B_NETWORK_AUTHENTICATION_WEP: ++ fAuthWEP->SetMarked(true); ++ break; ++ case B_NETWORK_AUTHENTICATION_WPA: ++ case B_NETWORK_AUTHENTICATION_WPA2: ++ fAuthWPA->SetMarked(true); ++ break; ++ } ++ ++ fPassword->SetText(password); ++ } ++ ++ void ++ Complete(BString& networkName, uint32& authMode, BString& password) ++ { ++ networkName = fNetworkName->Text(); ++ ++ authMode = B_NETWORK_AUTHENTICATION_NONE; ++ if (fAuthWEP->IsMarked()) ++ authMode = B_NETWORK_AUTHENTICATION_WEP; ++ else if (fAuthWPA->IsMarked()) ++ authMode = B_NETWORK_AUTHENTICATION_WPA; ++ ++ password = fPassword->Text(); ++ } ++ ++private: ++ BTextControl* fNetworkName; ++ BMenuItem* fAuthOpen; ++ BMenuItem* fAuthWEP; ++ BMenuItem* fAuthWPA; ++ BTextControl* fPassword; ++ BButton* fCancelButton; ++ BButton* fOkButton; ++}; ++ ++ ++class WirelessConfigWindow : public BWindow { ++public: ++ WirelessConfigWindow(BRect frame) ++ : ++ BWindow(BRect(50, 50, 269, 302), "Connect Wireless Network", ++ B_TITLED_WINDOW, B_NOT_RESIZABLE | B_ASYNCHRONOUS_CONTROLS ++ | B_NOT_ZOOMABLE | B_AUTO_UPDATE_SIZE_LIMITS), ++ fConfigView(NULL), ++ fDoneSem(-1), ++ fResult(B_ERROR) ++ { ++ fDoneSem = create_sem(0, "wireless config done"); ++ if (fDoneSem < 0) ++ return; ++ ++ BLayout* layout = new(std::nothrow) BGroupLayout(B_HORIZONTAL); ++ if (layout == NULL) ++ return; ++ ++ SetLayout(layout); ++ ++ fConfigView = new(std::nothrow) WirelessConfigView(); ++ if (fConfigView == NULL) ++ return; ++ ++ layout->AddView(fConfigView); ++ } ++ ++ virtual ++ ~WirelessConfigWindow() ++ { ++ if (fDoneSem >= 0) ++ delete_sem(fDoneSem); ++ } ++ ++ virtual void ++ MessageReceived(BMessage* message) ++ { ++ switch (message->what) { ++ case kMessageCancel: ++ case kMessageOk: ++ fResult = message->what == kMessageCancel ? B_CANCELED : B_OK; ++ release_sem(fDoneSem); ++ return; ++ } ++ ++ BWindow::MessageReceived(message); ++ } ++ ++ status_t ++ WaitForDialog(BString& networkName, uint32& authMode, BString& password) ++ { ++ fConfigView->SetUp(networkName, authMode, password); ++ ++ CenterOnScreen(); ++ Show(); ++ ++ while (acquire_sem(fDoneSem) == B_INTERRUPTED); ++ ++ status_t result = fResult; ++ fConfigView->Complete(networkName, authMode, password); ++ ++ LockLooper(); ++ Quit(); ++ return result; ++ } ++ ++private: ++ WirelessConfigView* fConfigView; ++ sem_id fDoneSem; ++ status_t fResult; ++}; ++ ++ ++status_t ++wireless_config_dialog(BString& networkName, uint32& authMode, ++ BString& password) ++{ ++ WirelessConfigWindow* configWindow ++ = new(std::nothrow) WirelessConfigWindow(BRect(100, 100, 200, 200)); ++ if (configWindow == NULL) ++ return B_NO_MEMORY; ++ ++ return configWindow->WaitForDialog(networkName, authMode, password); ++} +diff -urN wpa_supplicant-0.7.3/wpa_supplicant/WirelessConfigDialog.h wpa_supplicant-0.7.3-haiku/wpa_supplicant/WirelessConfigDialog.h +--- wpa_supplicant-0.7.3/wpa_supplicant/WirelessConfigDialog.h 1970-01-01 01:00:00.000000000 +0100 ++++ wpa_supplicant-0.7.3-haiku/wpa_supplicant/WirelessConfigDialog.h 2011-09-27 02:07:06.396099584 +0200 +@@ -0,0 +1,2 @@ ++status_t wireless_config_dialog(BString& networkName, uint32& authMode, ++ BString& password); +diff -urN wpa_supplicant-0.7.3/wpa_supplicant/bss.c wpa_supplicant-0.7.3-haiku/wpa_supplicant/bss.c +--- wpa_supplicant-0.7.3/wpa_supplicant/bss.c 2010-09-07 17:43:39.017563648 +0200 ++++ wpa_supplicant-0.7.3-haiku/wpa_supplicant/bss.c 2011-07-02 18:17:31.991166464 +0200 +@@ -147,7 +147,7 @@ + static int are_ies_equal(const struct wpa_bss *old, + const struct wpa_scan_res *new, u32 ie) + { +- const u8 *old_ie, *new_ie; ++ const u8 *old_ie = NULL, *new_ie = NULL; + struct wpabuf *old_ie_buff = NULL; + struct wpabuf *new_ie_buff = NULL; + int new_ie_len, old_ie_len, ret, is_multi; +diff -urN wpa_supplicant-0.7.3/wpa_supplicant/config.c wpa_supplicant-0.7.3-haiku/wpa_supplicant/config.c +--- wpa_supplicant-0.7.3/wpa_supplicant/config.c 2010-09-07 17:43:39.025690112 +0200 ++++ wpa_supplicant-0.7.3-haiku/wpa_supplicant/config.c 2011-09-27 19:01:24.422838272 +0200 +@@ -1876,6 +1876,7 @@ + } + + ++#ifndef NO_CONFIG_WRITE + /** + * wpa_config_get_all - Get all options from network configuration + * @ssid: Pointer to network configuration data +@@ -1935,7 +1936,6 @@ + } + + +-#ifndef NO_CONFIG_WRITE + /** + * wpa_config_get - Get a variable in network configuration + * @ssid: Pointer to network configuration data +diff -urN wpa_supplicant-0.7.3/wpa_supplicant/main_haiku.cpp wpa_supplicant-0.7.3-haiku/wpa_supplicant/main_haiku.cpp +--- wpa_supplicant-0.7.3/wpa_supplicant/main_haiku.cpp 1970-01-01 01:00:00.000000000 +0100 ++++ wpa_supplicant-0.7.3-haiku/wpa_supplicant/main_haiku.cpp 2011-10-06 11:48:00.422051840 +0200 +@@ -0,0 +1,750 @@ ++/* ++ * WPA Supplicant / Haiku entrypoint ++ * Copyright (c) 2011, Michael Lotz ++ * ++ * This program is free software; you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License version 2 as ++ * published by the Free Software Foundation. ++ * ++ * Alternatively, this software may be distributed under the terms of BSD ++ * license. ++ * ++ * See README and COPYING for more details. ++ */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#include ++ ++#include "WirelessConfigDialog.h" ++#include "WPASupplicant.h" // private header currently inside Haiku ++ ++#include ++ ++extern "C" { ++#include "utils/includes.h" ++#include "utils/common.h" ++#include "utils/eloop.h" ++#include "common/defs.h" ++ ++#include "config.h" ++#include "notify.h" ++#include "notify_haiku.h" ++#include "wpa_supplicant_i.h" ++} ++ ++extern "C" { ++#include ++#include ++#include ++} ++ ++ ++static const uint32 kMsgJoinTimeout = 'jnto'; ++ ++ ++typedef bool (*StateChangeCallback)(const wpa_supplicant *interface, ++ BMessage *message, void *data); ++ ++ ++class StateChangeWatchingEntry { ++public: ++ StateChangeWatchingEntry( ++ const wpa_supplicant *interface, ++ StateChangeCallback callback, ++ void *data); ++ ++ bool Match(const wpa_supplicant *interface, ++ StateChangeCallback callback, ++ void *data); ++ ++ bool MessageReceived( ++ const wpa_supplicant *interface, ++ BMessage *message); ++ ++private: ++ const wpa_supplicant * fInterface; ++ StateChangeCallback fCallback; ++ void * fData; ++}; ++ ++ ++StateChangeWatchingEntry::StateChangeWatchingEntry( ++ const wpa_supplicant *interface, StateChangeCallback callback, void *data) ++ : ++ fInterface(interface), ++ fCallback(callback), ++ fData(data) ++{ ++} ++ ++ ++bool ++StateChangeWatchingEntry::Match(const wpa_supplicant *interface, ++ StateChangeCallback callback, void *data) ++{ ++ return fInterface == interface && fCallback == callback && fData == data; ++} ++ ++ ++bool ++StateChangeWatchingEntry::MessageReceived(const wpa_supplicant *interface, ++ BMessage *message) ++{ ++ if (interface != fInterface) ++ return false; ++ ++ return fCallback(interface, message, fData); ++} ++ ++ ++class WPASupplicantApp : public BApplication { ++public: ++ WPASupplicantApp(); ++virtual ~WPASupplicantApp(); ++ ++ status_t InitCheck(); ++ ++virtual void ReadyToRun(); ++virtual void MessageReceived(BMessage *message); ++ ++ status_t RunSupplicantInMainThread(); ++ ++private: ++static int32 _SupplicantThread(void *data); ++static void _EventLoopProcessEvents(int sock, ++ void *eventLoopContext, void *data); ++ ++ status_t _EnqueueAndNotify(BMessage *message); ++ status_t _NotifyEventLoop(); ++ ++ status_t _JoinNetwork(BMessage *message); ++ status_t _LeaveNetwork(BMessage *message); ++ ++ status_t _NotifyNetworkEvent(BMessage *message); ++ ++static bool _InterfaceStateChangeCallback( ++ const wpa_supplicant *interface, ++ BMessage *message, void *data); ++ ++ status_t _StartWatchingInterfaceChanges( ++ const wpa_supplicant *interface, ++ StateChangeCallback callback, void *data); ++ status_t _StopWatchingInterfaceChanges( ++ const wpa_supplicant *interface, ++ StateChangeCallback callback, void *data); ++ void _NotifyInterfaceStateChanged(BMessage *message); ++ ++ status_t fInitStatus; ++ thread_id fSupplicantThread; ++ BMessageQueue fEventQueue; ++ ++ int fNotifySockets[2]; ++ ++ BObjectList ++ fWatchingEntryList; ++ BLocker fWatchingEntryListLocker; ++ ++ wpa_global * fWPAGlobal; ++ wpa_params fWPAParameters; ++}; ++ ++ ++WPASupplicantApp::WPASupplicantApp() ++ : ++ BApplication(kWPASupplicantSignature), ++ fInitStatus(B_NO_INIT), ++ fSupplicantThread(-1), ++ fWPAGlobal(NULL) ++{ ++ fNotifySockets[0] = fNotifySockets[1] = -1; ++ ++ fInitStatus = BApplication::InitCheck(); ++ if (fInitStatus != B_OK) ++ return; ++ ++ memset(&fWPAParameters, 0, sizeof(fWPAParameters)); ++ //fWPAParameters.wpa_debug_level = MSG_DEBUG; ++ ++ fWPAGlobal = wpa_supplicant_init(&fWPAParameters); ++ if (fWPAGlobal == NULL) { ++ fInitStatus = B_ERROR; ++ return; ++ } ++ ++ if (socketpair(AF_LOCAL, SOCK_STREAM, 0, fNotifySockets) != 0) { ++ fInitStatus = errno; ++ return; ++ } ++} ++ ++ ++WPASupplicantApp::~WPASupplicantApp() ++{ ++ if (fWPAGlobal == NULL) ++ return; ++ ++ wpa_supplicant_terminate_proc(fWPAGlobal); ++ ++ // Wake the event loop up so it'll process the quit request and exit. ++ _NotifyEventLoop(); ++ ++ int32 result; ++ wait_for_thread(fSupplicantThread, &result); ++ ++ wpa_supplicant_deinit(fWPAGlobal); ++ ++ close(fNotifySockets[0]); ++ close(fNotifySockets[1]); ++} ++ ++ ++status_t ++WPASupplicantApp::InitCheck() ++{ ++ return fInitStatus; ++} ++ ++ ++void ++WPASupplicantApp::ReadyToRun() ++{ ++ fSupplicantThread = spawn_thread(_SupplicantThread, ++ "wpa_supplicant thread", B_NORMAL_PRIORITY, this); ++ if (fSupplicantThread < 0 || resume_thread(fSupplicantThread)) ++ PostMessage(B_QUIT_REQUESTED); ++} ++ ++ ++void ++WPASupplicantApp::MessageReceived(BMessage *message) ++{ ++ switch (message->what) { ++ case kMsgWPAJoinNetwork: ++ { ++ uint32 authMode = B_NETWORK_AUTHENTICATION_NONE; ++ status_t status = message->FindUInt32("authentication", &authMode); ++ if (status != B_OK || !message->HasString("name") ++ || (authMode > B_NETWORK_AUTHENTICATION_NONE ++ && !message->HasString("password"))) { ++ ++ BString password = message->FindString("password"); ++ BString networkName = message->FindString("name"); ++ ++ status = wireless_config_dialog(networkName, authMode, ++ password); ++ if (status != B_OK) { ++ BMessage reply; ++ reply.AddInt32("status", status); ++ message->SendReply(&reply); ++ return; ++ } ++ ++ message->RemoveName("authentication"); ++ message->AddUInt32("authentication", authMode); ++ message->RemoveName("password"); ++ message->AddString("password", password); ++ message->RemoveName("name"); ++ message->AddString("name", networkName); ++ } ++ ++ _EnqueueAndNotify(DetachCurrentMessage()); ++ // The event processing code will send the reply. ++ return; ++ } ++ ++ case kMsgWPALeaveNetwork: ++ { ++ _EnqueueAndNotify(DetachCurrentMessage()); ++ // The event processing code will send the reply. ++ return; ++ } ++ ++ case B_NETWORK_MONITOR: ++ { ++ _EnqueueAndNotify(DetachCurrentMessage()); ++ return; ++ } ++ ++ case kMsgSupplicantStateChanged: ++ { ++ _NotifyInterfaceStateChanged(message); ++ return; ++ } ++ ++ case kMsgJoinTimeout: ++ { ++ const wpa_supplicant *interface; ++ if (message->FindPointer("interface", (void **)&interface) != B_OK) ++ return; ++ ++ StateChangeCallback callback; ++ if (message->FindPointer("callback", (void **)&callback) != B_OK) ++ return; ++ ++ void *data; ++ if (message->FindPointer("data", (void **)&data) != B_OK) ++ return; ++ ++ if (_StopWatchingInterfaceChanges(interface, callback, data) ++ == B_OK) { ++ // The watch entry was still there, so no reply has been sent ++ // yet. We do that now by calling the callback with the timeout ++ // message. ++ callback(interface, message, data); ++ } ++ ++ return; ++ } ++ } ++ ++ BApplication::MessageReceived(message); ++} ++ ++ ++int32 ++WPASupplicantApp::_SupplicantThread(void *data) ++{ ++ WPASupplicantApp *app = (WPASupplicantApp *)data; ++ ++ // Register our notify socket with the polling event loop. ++ if (eloop_register_read_sock(app->fNotifySockets[0], ++ _EventLoopProcessEvents, app->fWPAGlobal, app) != 0) { ++ return B_ERROR; ++ } ++ ++ wpa_supplicant_run(app->fWPAGlobal); ++ ++ eloop_unregister_read_sock(app->fNotifySockets[0]); ++ ++ // There are two reasons why the supplicant thread quit: ++ // 1. The event loop was terminated because of a signal or error and the ++ // application is still there and running. ++ // 2. The app has quit and stopped the event loop. ++ // ++ // In case of 2. we're done, but in case of 1. we need to quit the still ++ // running application. We use the app messenger to reach the app if it is ++ // still running. If it already quit the SendMessage() will simply fail. ++ ++ be_app_messenger.SendMessage(B_QUIT_REQUESTED); ++ return B_OK; ++} ++ ++ ++status_t ++WPASupplicantApp::_EnqueueAndNotify(BMessage *message) ++{ ++ if (!fEventQueue.Lock()) ++ return B_ERROR; ++ ++ fEventQueue.AddMessage(message); ++ fEventQueue.Unlock(); ++ ++ return _NotifyEventLoop(); ++} ++ ++ ++status_t ++WPASupplicantApp::_NotifyEventLoop() ++{ ++ // This will interrupt the event loop and cause the message queue to be ++ // processed through the installed handler. ++ uint8 byte = 0; ++ ssize_t written = write(fNotifySockets[1], &byte, sizeof(byte)); ++ if (written < 0) ++ return written; ++ ++ return written == sizeof(byte) ? B_OK : B_ERROR; ++} ++ ++ ++void ++WPASupplicantApp::_EventLoopProcessEvents(int sock, void *eventLoopContext, ++ void *data) ++{ ++ // This function is called from the event loop only. ++ ++ WPASupplicantApp *app = (WPASupplicantApp *)data; ++ ++ uint8 bytes[25]; ++ read(app->fNotifySockets[0], bytes, sizeof(bytes)); ++ // discard them, they are just here to wake the event loop ++ ++ BMessageQueue &queue = app->fEventQueue; ++ if (!queue.Lock()) ++ return; ++ ++ while (true) { ++ BMessage *message = queue.FindMessage((int32)0); ++ if (message == NULL) ++ break; ++ ++ queue.RemoveMessage(message); ++ ++ bool needsReply = false; ++ bool deleteMessage = true; ++ status_t status = B_MESSAGE_NOT_UNDERSTOOD; ++ switch (message->what) { ++ case kMsgWPAJoinNetwork: ++ status = app->_JoinNetwork(message); ++ needsReply = status != B_OK; ++ deleteMessage = needsReply; ++ break; ++ ++ case kMsgWPALeaveNetwork: ++ status = app->_LeaveNetwork(message); ++ needsReply = status != B_OK; ++ deleteMessage = needsReply; ++ break; ++ ++ case B_NETWORK_MONITOR: ++ app->_NotifyNetworkEvent(message); ++ break; ++ } ++ ++ if (needsReply) { ++ BMessage reply; ++ reply.AddInt32("status", status); ++ message->SendReply(&reply); ++ } ++ ++ if (deleteMessage) ++ delete message; ++ } ++ ++ queue.Unlock(); ++} ++ ++ ++status_t ++WPASupplicantApp::_JoinNetwork(BMessage *message) ++{ ++ const char *interfaceName = NULL; ++ status_t status = message->FindString("device", &interfaceName); ++ if (status != B_OK) ++ return status; ++ ++ // Check if we already registered this interface. ++ wpa_supplicant *interface = wpa_supplicant_get_iface(fWPAGlobal, ++ interfaceName); ++ if (interface == NULL) { ++ wpa_interface interfaceOptions; ++ memset(&interfaceOptions, 0, sizeof(wpa_interface)); ++ ++ interfaceOptions.ifname = interfaceName; ++ ++ interface = wpa_supplicant_add_iface(fWPAGlobal, &interfaceOptions); ++ if (interface == NULL) ++ return B_NO_MEMORY; ++ } else { ++ // Disable everything ++ wpa_supplicant_disable_network(interface, NULL); ++ ++ // Try to remove any previous network ++ wpa_ssid *network = wpa_config_get_network(interface->conf, 0); ++ if (network != NULL) { ++ wpas_notify_network_removed(interface, network); ++ wpa_config_remove_network(interface->conf, network->id); ++ } ++ } ++ ++ const char *networkName = NULL; ++ status = message->FindString("name", &networkName); ++ if (status != B_OK) ++ return status; ++ ++ uint32 authMode = B_NETWORK_AUTHENTICATION_NONE; ++ status = message->FindUInt32("authentication", &authMode); ++ if (status != B_OK) ++ return status; ++ ++ const char *password = NULL; ++ if (authMode > B_NETWORK_AUTHENTICATION_NONE) { ++ status = message->FindString("password", &password); ++ if (status != B_OK) ++ return status; ++ } ++ ++ wpa_ssid *network = wpa_config_add_network(interface->conf); ++ if (network == NULL) ++ return B_NO_MEMORY; ++ ++ wpas_notify_network_added(interface, network); ++ ++ network->disabled = 1; ++ wpa_config_set_network_defaults(network); ++ ++ // Fill in the info from the join request ++ ++ // The format includes the quotes ++ BString value; ++ value = "\""; ++ value += networkName; ++ value += "\""; ++ int result = wpa_config_set(network, "ssid", value.String(), 0); ++ ++ if (result == 0) ++ result = wpa_config_set(network, "scan_ssid", "1", 1); ++ ++ if (authMode >= B_NETWORK_AUTHENTICATION_WPA) { ++ if (result == 0) ++ result = wpa_config_set(network, "proto", "WPA RSN", 2); ++ if (result == 0) ++ result = wpa_config_set(network, "key_mgmt", "WPA-PSK", 3); ++ if (result == 0) ++ result = wpa_config_set(network, "pairwise", "CCMP TKIP NONE", 4); ++ if (result == 0) { ++ result = wpa_config_set(network, "group", ++ "CCMP TKIP WEP104 WEP40", 5); ++ } ++ } else { ++ // Open or WEP. ++ if (result == 0) ++ result = wpa_config_set(network, "key_mgmt", "NONE", 6); ++ } ++ ++ if (result == 0) { ++ if (authMode == B_NETWORK_AUTHENTICATION_WEP) { ++ if (strncmp("0x", password, 2) == 0) { ++ // interpret as hex key ++ // TODO: make this non-ambiguous ++ result = wpa_config_set(network, "wep_key0", password + 2, 7); ++ } else { ++ value = "\""; ++ value += password; ++ value += "\""; ++ result = wpa_config_set(network, "wep_key0", value.String(), 8); ++ } ++ ++ if (result == 0) ++ result = wpa_config_set(network, "wep_tx_keyidx", "0", 9); ++ } else if (authMode >= B_NETWORK_AUTHENTICATION_WPA) { ++ // WPA/WPA2 ++ value = "\""; ++ value += password; ++ value += "\""; ++ result = wpa_config_set(network, "psk", value.String(), 10); ++ ++ if (result == 0) { ++ // We need to actually "apply" the PSK ++ wpa_config_update_psk(network); ++ } ++ } ++ } ++ ++ if (result != 0) { ++ wpas_notify_network_removed(interface, network); ++ wpa_config_remove_network(interface->conf, network->id); ++ return B_ERROR; ++ } ++ ++ // Set up watching for the completion event ++ _StartWatchingInterfaceChanges(interface, _InterfaceStateChangeCallback, ++ message); ++ ++ // Now attempt to connect ++ wpa_supplicant_select_network(interface, network); ++ ++ // Use a message runner to return a timeout and stop watching after a while ++ BMessage timeout(kMsgJoinTimeout); ++ timeout.AddPointer("interface", interface); ++ timeout.AddPointer("callback", (void *)_InterfaceStateChangeCallback); ++ timeout.AddPointer("data", message); ++ ++ BMessageRunner::StartSending(be_app_messenger, &timeout, ++ 15 * 1000 * 1000, 1); ++ ++ return B_OK; ++} ++ ++ ++status_t ++WPASupplicantApp::_LeaveNetwork(BMessage *message) ++{ ++ const char *interfaceName = NULL; ++ status_t status = message->FindString("device", &interfaceName); ++ if (status != B_OK) ++ return status; ++ ++ wpa_supplicant *interface = wpa_supplicant_get_iface(fWPAGlobal, ++ interfaceName); ++ if (interface == NULL) ++ return B_ENTRY_NOT_FOUND; ++ ++ if (wpa_supplicant_remove_iface(fWPAGlobal, interface) != 0) ++ return B_ERROR; ++ ++ return B_OK; ++} ++ ++ ++status_t ++WPASupplicantApp::_NotifyNetworkEvent(BMessage *message) ++{ ++ // Verify that the interface is still there. ++ BString interfaceName; ++ if (message->FindString("interface", &interfaceName) != B_OK) ++ return B_ERROR; ++ ++ interfaceName.Prepend("/dev/"); ++ wpa_supplicant *interface = wpa_supplicant_get_iface(fWPAGlobal, ++ interfaceName.String()); ++ if (interface == NULL) ++ return B_ENTRY_NOT_FOUND; ++ ++ void (*callback)(void *context, void *data, int opcode) = NULL; ++ status_t result = message->FindPointer("callback", (void **)&callback); ++ if (result != B_OK) ++ return result; ++ ++ void *context = NULL; ++ result = message->FindPointer("context", &context); ++ if (result != B_OK) ++ return result; ++ ++ void *data = NULL; ++ message->FindPointer("data", &data); ++ ++ callback(context, data, message->FindInt32("opcode")); ++ return B_OK; ++} ++ ++ ++bool ++WPASupplicantApp::_InterfaceStateChangeCallback(const wpa_supplicant *interface, ++ BMessage *message, void *data) ++{ ++ // We wait for the completion state notification ++ // TODO: We should also use the disconnect as an error case when joining, ++ // but due to the event queue being serialized any disconnect happening ++ // due to a new connect attempt would trigger that state. Either we need ++ // to have the disconnect happen synchronously before joining again or ++ // we need a way to discern one disconnect from the other, for example if ++ // there was a way to tell from which network we disconnected. ++ ++ BMessage *originalMessage = (BMessage *)data; ++ ++ int32 newState; ++ status_t result = B_ERROR; ++ if (message->what == kMsgJoinTimeout) ++ result = B_TIMED_OUT; ++ else if (message->FindInt32("newState", &newState) == B_OK) { ++ switch (newState) { ++ case WPA_COMPLETED: ++ { ++ if (originalMessage->what != kMsgWPAJoinNetwork) ++ return false; ++ ++ result = B_OK; ++ break; ++ } ++ ++ case WPA_DISCONNECTED: ++ { ++ if (originalMessage->what != kMsgWPALeaveNetwork) ++ return false; ++ ++ result = B_OK; ++ break; ++ } ++ ++ default: ++ return false; ++ } ++ } ++ ++ BMessage reply; ++ reply.AddInt32("status", result); ++ originalMessage->SendReply(&reply); ++ delete originalMessage; ++ return true; ++} ++ ++ ++status_t ++WPASupplicantApp::_StartWatchingInterfaceChanges( ++ const wpa_supplicant *interface, StateChangeCallback callback, void *data) ++{ ++ StateChangeWatchingEntry *entry ++ = new(std::nothrow) StateChangeWatchingEntry(interface, callback, data); ++ if (entry == NULL) ++ return B_NO_MEMORY; ++ ++ if (!fWatchingEntryListLocker.Lock()) { ++ delete entry; ++ return B_ERROR; ++ } ++ ++ status_t result = B_OK; ++ if (!fWatchingEntryList.AddItem(entry)) { ++ result = B_ERROR; ++ delete entry; ++ } ++ ++ fWatchingEntryListLocker.Unlock(); ++ return result; ++} ++ ++ ++status_t ++WPASupplicantApp::_StopWatchingInterfaceChanges( ++ const wpa_supplicant *interface, StateChangeCallback callback, void *data) ++{ ++ if (!fWatchingEntryListLocker.Lock()) ++ return B_ERROR; ++ ++ bool found = false; ++ for (int32 i = 0; i < fWatchingEntryList.CountItems(); i++) { ++ if (fWatchingEntryList.ItemAt(i)->Match(interface, callback, data)) { ++ delete fWatchingEntryList.RemoveItemAt(i); ++ found = true; ++ i--; ++ } ++ } ++ ++ fWatchingEntryListLocker.Unlock(); ++ return found ? B_OK : B_ENTRY_NOT_FOUND; ++} ++ ++ ++void ++WPASupplicantApp::_NotifyInterfaceStateChanged(BMessage *message) ++{ ++ const wpa_supplicant *interface; ++ if (message->FindPointer("interface", (void **)&interface) != B_OK) ++ return; ++ ++ if (!fWatchingEntryListLocker.Lock()) ++ return; ++ ++ for (int32 i = 0; i < fWatchingEntryList.CountItems(); i++) { ++ StateChangeWatchingEntry *entry = fWatchingEntryList.ItemAt(i); ++ if (entry->MessageReceived(interface, message)) { ++ delete fWatchingEntryList.RemoveItemAt(i); ++ i--; ++ } ++ } ++ ++ fWatchingEntryListLocker.Unlock(); ++} ++ ++ ++int ++main(int argc, char *argv[]) ++{ ++ WPASupplicantApp *app = new(std::nothrow) WPASupplicantApp(); ++ if (app == NULL) ++ return B_NO_MEMORY; ++ if (app->InitCheck() != B_OK) ++ return app->InitCheck(); ++ ++ app->Run(); ++ delete app; ++ return 0; ++} +diff -urN wpa_supplicant-0.7.3/wpa_supplicant/notify.c wpa_supplicant-0.7.3-haiku/wpa_supplicant/notify.c +--- wpa_supplicant-0.7.3/wpa_supplicant/notify.c 2010-09-07 17:43:39.032768000 +0200 ++++ wpa_supplicant-0.7.3-haiku/wpa_supplicant/notify.c 2011-10-05 21:46:35.427032576 +0200 +@@ -26,6 +26,10 @@ + #include "scan.h" + #include "notify.h" + ++#ifdef __HAIKU__ ++#include "notify_haiku.h" ++#endif ++ + int wpas_notify_supplicant_initialized(struct wpa_global *global) + { + #ifdef CONFIG_DBUS +@@ -81,6 +85,10 @@ + + /* notify the new DBus API */ + wpas_dbus_signal_prop_changed(wpa_s, WPAS_DBUS_PROP_STATE); ++ ++#ifdef __HAIKU__ ++ wpa_supplicant_haiku_notify_state_change(wpa_s, new_state, old_state); ++#endif + } + + +diff -urN wpa_supplicant-0.7.3/wpa_supplicant/notify_haiku.cpp wpa_supplicant-0.7.3-haiku/wpa_supplicant/notify_haiku.cpp +--- wpa_supplicant-0.7.3/wpa_supplicant/notify_haiku.cpp 1970-01-01 01:00:00.000000000 +0100 ++++ wpa_supplicant-0.7.3-haiku/wpa_supplicant/notify_haiku.cpp 2011-10-06 00:35:25.644874240 +0200 +@@ -0,0 +1,37 @@ ++/* ++ * WPA Supplicant / Haiku notification functions ++ * Copyright (c) 2011, Michael Lotz ++ * ++ * This program is free software; you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License version 2 as ++ * published by the Free Software Foundation. ++ * ++ * Alternatively, this software may be distributed under the terms of BSD ++ * license. ++ * ++ * See README and COPYING for more details. ++ */ ++ ++extern "C" { ++#include "utils/includes.h" ++#include "utils/common.h" ++#include "common/defs.h" ++#include "config.h" ++ ++#include "notify_haiku.h" ++} ++ ++#include ++#include ++ ++ ++void ++wpa_supplicant_haiku_notify_state_change(struct wpa_supplicant *wpa_s, ++ enum wpa_states new_state, enum wpa_states old_state) ++{ ++ BMessage message(kMsgSupplicantStateChanged); ++ message.AddPointer("interface", wpa_s); ++ message.AddInt32("oldState", old_state); ++ message.AddInt32("newState", new_state); ++ be_app->PostMessage(&message); ++} +diff -urN wpa_supplicant-0.7.3/wpa_supplicant/notify_haiku.h wpa_supplicant-0.7.3-haiku/wpa_supplicant/notify_haiku.h +--- wpa_supplicant-0.7.3/wpa_supplicant/notify_haiku.h 1970-01-01 01:00:00.000000000 +0100 ++++ wpa_supplicant-0.7.3-haiku/wpa_supplicant/notify_haiku.h 2011-10-06 00:43:14.880541696 +0200 +@@ -0,0 +1,26 @@ ++/* ++ * WPA Supplicant / Haiku notification functions ++ * Copyright (c) 2011, Michael Lotz ++ * ++ * This program is free software; you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License version 2 as ++ * published by the Free Software Foundation. ++ * ++ * Alternatively, this software may be distributed under the terms of BSD ++ * license. ++ * ++ * See README and COPYING for more details. ++ */ ++ ++#ifndef NOTIFY_HAIKU_H ++#define NOTIFY_HAIKU_H ++ ++static const uint32_t kMsgSupplicantStateChanged = 'stch'; ++ ++struct wpa_supplicant; ++enum wpa_states; ++ ++void wpa_supplicant_haiku_notify_state_change(struct wpa_supplicant *wpa_s, ++ enum wpa_states new_state, enum wpa_states old_state); ++ ++#endif +diff -urN wpa_supplicant-0.7.3/wpa_supplicant/wpa_supplicant.rdef wpa_supplicant-0.7.3-haiku/wpa_supplicant/wpa_supplicant.rdef +--- wpa_supplicant-0.7.3/wpa_supplicant/wpa_supplicant.rdef 1970-01-01 01:00:00.000000000 +0100 ++++ wpa_supplicant-0.7.3-haiku/wpa_supplicant/wpa_supplicant.rdef 2011-07-02 23:08:16.688652288 +0200 +@@ -0,0 +1,15 @@ ++resource app_signature "application/x-vnd.malinen-wpa_supplicant"; ++ ++resource app_flags B_EXCLUSIVE_LAUNCH | B_BACKGROUND_APP; ++ ++resource app_version { ++ major = 0, ++ middle = 7, ++ minor = 3, ++ ++ variety = B_APPV_DEVELOPMENT, ++ internal = 0, ++ ++ short_info = "wpa_supplicant", ++ long_info = "wpa_supplicant © 2003-2010, Jouni Malinen " ++}; diff --git a/net-wireless/wpa_supplicant/wpa_supplicant-0.7.3.bep b/net-wireless/wpa_supplicant/wpa_supplicant-0.7.3.bep new file mode 100644 index 000000000..ac9dcb041 --- /dev/null +++ b/net-wireless/wpa_supplicant/wpa_supplicant-0.7.3.bep @@ -0,0 +1,19 @@ +DESCRIPTION="A WPA Supplicant with support for WPA and WPA2." +HOMEPAGE="http://hostap.epitest.fi/wpa_supplicant/" +SRC_URI="http://hostap.epitest.fi/releases/wpa_supplicant-0.7.3.tar.gz" +CHECKSUM_MD5="f516f191384a9a546e3f5145c08addda" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="" +BUILD { + cd wpa_supplicant-0.7.3/wpa_supplicant + CFLAGS="-MMD -O2 -Wall" make wpa_supplicant +} +INSTALL { + cd wpa_supplicant-0.7.3/wpa_supplicant + mkdir -p ${DESTDIR}`finddir B_COMMON_BIN_DIRECTORY` + cp -v wpa_supplicant ${DESTDIR}`finddir B_COMMON_BIN_DIRECTORY`/ +} +LICENSE="BSD (2-clause) + GNU GPL v2" +COPYRIGHT="2003-2010 Jouni Malinen" diff --git a/packs/libpak/libpak-0.9.4-gcc2.bep b/packs/libpak/libpak-0.9.4-gcc2.bep new file mode 100644 index 000000000..d105198fa --- /dev/null +++ b/packs/libpak/libpak-0.9.4-gcc2.bep @@ -0,0 +1,138 @@ +DESCRIPTION="Libpak is a set of commonly used libraries." +HOMEPAGE="http://ports.haiku-files.org/wiki/LibPak" +SRC_URI="http://ports.haiku-files.org/raw-attachment/wiki/LibPak/libpak-0.9.4.zip" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="dev-libs/libedit >= 20100424 + dev-util/cmake >= 2.6 + dev-util/gperf >= 3.0.4 + dev-vcs/git >= 1.7.1 + dev-vcs/mercurial >= 1.6 + sys-devel/gettext >= 0.17" + +CHECKSUM_MD5="785751b34f60c4a28a746749a00ae8d4" +BUILD { + HPLOC=`haikuporter -t` + mkdir -p ../zips + mkdir -p ../sources + export HAIKUVERSION="r1a3" + cd libpak-0.9.4 + +## these are needed for building package in the libpak + haikuporter -i -d -y dos2unix + mv ${HPLOC}/app-text/dos2unix/*.zip ${HPLOC}/packs/libpak/zips + haikuporter -i -d -y pkgconfig-0.25 + mv ${HPLOC}/dev-util/pkgconfig/*.zip ${HPLOC}/packs/libpak/zips +## + haikuporter -y -d -i readline-6.2 + mv ${HPLOC}/sys-libs/readline/*.zip ${HPLOC}/packs/libpak/zips + + haikuporter -y -d -i lua-5.1.4-3 + mv ${HPLOC}/dev-lang/lua/*.zip ${HPLOC}/packs/libpak/zips + + haikuporter -y -d -i fribidi-0.19.2 + mv ${HPLOC}/dev-libs/fribidi/*.zip ${HPLOC}/packs/libpak/zips + + haikuporter -y -d -i libpaper-1.1.24 + mv ${HPLOC}/app-text/libpaper/*.zip ${HPLOC}/packs/libpak/zips + + haikuporter -y -c -d -i flac-1.2.1 + mv ${HPLOC}/media-libs/flac/*.zip ${HPLOC}/packs/libpak/zips + +#b haikuporter -y -c -d -i speex-1.2-git +#b mv ${HPLOC}/media-libs/speex/*.zip ${HPLOC}/packs/libpak/zips + + haikuporter -y -d -i libmng-1.0.10 + mv ${HPLOC}/media-libs/libmng/*.zip ${HPLOC}/packs/libpak/zips + + haikuporter -y -d -i libart_lgpl-2.3.21 + mv ${HPLOC}/media-libs/libart_lgpl/*.zip ${HPLOC}/packs/libpak/zips + + haikuporter -y -d -i lcms-2.1 + mv ${HPLOC}/media-libs/lcms/*.zip ${HPLOC}/packs/libpak/zips + + haikuporter -y -d -i libmad-0.15.1b + mv ${HPLOC}/media-libs/libmad/*.zip ${HPLOC}/packs/libpak/zips + + haikuporter -y -d -i libao-1.0.0 + mv ${HPLOC}/media-libs/libao/*.zip ${HPLOC}/packs/libpak/zips + + haikuporter -y -d -i libmodplug-0.8.8.1 + mv ${HPLOC}/media-libs/libmodplug/*.zip ${HPLOC}/packs/libpak/zips + + haikuporter -y -d -i libmikmod-3.1.11 + mv ${HPLOC}/media-libs/libmikmod/*.zip ${HPLOC}/packs/libpak/zips + + haikuporter -y -d -i libogg-1.2.2 + mv ${HPLOC}/media-libs/libogg/*.zip ${HPLOC}/packs/libpak/zips + + haikuporter -y -d -i libtheora-1.1.1 + mv ${HPLOC}/media-libs/libtheora/*.zip ${HPLOC}/packs/libpak/zips + + haikuporter -y -d -i libvorbis-1.3.2 + mv ${HPLOC}/media-libs/libvorbis/*.zip ${HPLOC}/packs/libpak/zips + + haikuporter -y -d -i vorbis-tools-1.4.0 + mv ${HPLOC}/media-sound/vorbis-tools/*.zip ${HPLOC}/packs/libpak/zips + + haikuporter -y -d -i physfs-2.0.1 + mv ${HPLOC}/dev-games/physfs/*.zip ${HPLOC}/packs/libpak/zips + + haikuporter -y -d -i libevent-1.4.13 + mv ${HPLOC}/dev-libs/libevent/*.zip ${HPLOC}/packs/libpak/zips + + haikuporter -y -d -i libsdl-1.2.14 + mv ${HPLOC}/media-libs/libsdl/*.zip ${HPLOC}/packs/libpak/zips + + haikuporter -y -d -i sdl-gfx-2.0.22 + mv ${HPLOC}/media-libs/sdl-gfx/*.zip ${HPLOC}/packs/libpak/zips + + haikuporter -y -d -i sdl-ttf-2.0.10 + mv ${HPLOC}/media-libs/sdl-ttf/*.zip ${HPLOC}/packs/libpak/zips + + haikuporter -y -d -i sdl-image-1.2.10 + mv ${HPLOC}/media-libs/sdl-image/*.zip ${HPLOC}/packs/libpak/zips + + haikuporter -y -d -i sge-030809 + mv ${HPLOC}/media-libs/sge/*.zip ${HPLOC}/packs/libpak/zips + + haikuporter -y -d -i smjpeg-0.2.1 + mv ${HPLOC}/media-libs/smjpeg/*.zip ${HPLOC}/packs/libpak/zips + + haikuporter -y -d -i smpeg-0.4.5 + mv ${HPLOC}/media-libs/smpeg/*.zip ${HPLOC}/packs/libpak/zips + + haikuporter -y -d -i guilib-1.2.1 + mv ${HPLOC}/media-libs/guilib/*.zip ${HPLOC}/packs/libpak/zips + + haikuporter -y -d -i sdl-net-1.2.7 + mv ${HPLOC}/media-libs/sdl-net/*.zip ${HPLOC}/packs/libpak/zips + + haikuporter -y -d -i sdl-mixer-1.2.11 + mv ${HPLOC}/media-libs/sdl-mixer/*.zip ${HPLOC}/packs/libpak/zips + + haikuporter -y -d -i sdl-sound-1.0.3 + mv ${HPLOC}/media-libs/sdl-sound/*.zip ${HPLOC}/packs/libpak/zips + + haikuporter -y -d -i allegro-4.4.1.1 + mv ${HPLOC}/media-libs/allegro/*.zip ${HPLOC}/packs/libpak/zips + + haikuporter -y -d -i dumb-0.9.3 + mv ${HPLOC}/media-libs/dumb/*.zip ${HPLOC}/packs/libpak/zips + +#b haikuporter -y -d -i jgmod-0.99 +#b mv ${HPLOC}/media-libs/jgmod/*.zip ${HPLOC}/packs/libpak/zips +} + +INSTALL { + cd libpak-0.9.4 + cd . + echo "Done. Zipped files are in the zips directory." + echo "GPL/LGPL sources are in the source directory." + #No need to install these, + #just put all the zips into the zips directory for uploading + #For GPL/LGPL software also create the patches sources .xz archives +} + +#LICENSE="" +#COPYRIGHT="" diff --git a/packs/libpak/libpak-0.9.4-gcc4.bep b/packs/libpak/libpak-0.9.4-gcc4.bep new file mode 100644 index 000000000..c6d34055c --- /dev/null +++ b/packs/libpak/libpak-0.9.4-gcc4.bep @@ -0,0 +1,145 @@ +DESCRIPTION="Libpak is a set of commonly used libraries." +HOMEPAGE="http://ports.haiku-files.org/wiki/LibPak" +SRC_URI="http://ports.haiku-files.org/raw-attachment/wiki/LibPak/libpak-0.9.4.zip" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="dev-libs/libedit >= 20100424 + dev-util/cmake >= 2.6 + dev-util/gperf >= 3.0.4 + dev-vcs/git >= 1.7.1 + dev-vcs/mercurial >= 1.6 + sys-devel/gettext >= 0.17" + +CHECKSUM_MD5="785751b34f60c4a28a746749a00ae8d4" +BUILD { + HPLOC=`haikuporter -t` + mkdir -p ../zips + mkdir -p ../sources + export HAIKUVERSION="r1a3" + cd libpak-0.9.4 + +## these are needed for building package in the libpak + haikuporter -i -d -y dos2unix + mv ${HPLOC}/app-text/dos2unix/*.zip ${HPLOC}/packs/libpak/zips + haikuporter -i -d -y pkgconfig-0.25 + mv ${HPLOC}/dev-util/pkgconfig/*.zip ${HPLOC}/packs/libpak/zips +## + haikuporter -y -d -i readline-6.2 + mv ${HPLOC}/sys-libs/readline/*.zip ${HPLOC}/packs/libpak/zips + + haikuporter -y -d -i lua-5.1.4-3 + mv ${HPLOC}/dev-lang/lua/*.zip ${HPLOC}/packs/libpak/zips + + haikuporter -y -d -i fribidi-0.19.2 + mv ${HPLOC}/dev-libs/fribidi/*.zip ${HPLOC}/packs/libpak/zips + + haikuporter -y -d -i libpaper-1.1.24 + mv ${HPLOC}/app-text/libpaper/*.zip ${HPLOC}/packs/libpak/zips + + haikuporter -y -c -d -i flac-1.2.1 + mv ${HPLOC}/media-libs/flac/*.zip ${HPLOC}/packs/libpak/zips + +#b haikuporter -y -c -d -i speex-1.2rc1 +#b mv ${HPLOC}/media-libs/speex/*.zip ${HPLOC}/packs/libpak/zips + + haikuporter -y -d -i libmng-1.0.10 + mv ${HPLOC}/media-libs/libmng/*.zip ${HPLOC}/packs/libpak/zips + + haikuporter -y -d -i libart_lgpl-2.3.21 + mv ${HPLOC}/media-libs/libart_lgpl/*.zip ${HPLOC}/packs/libpak/zips + + haikuporter -y -d -i lcms-2.1 + mv ${HPLOC}/media-libs/lcms/*.zip ${HPLOC}/packs/libpak/zips + + haikuporter -y -d -i libmad-0.15.1b + mv ${HPLOC}/media-libs/libmad/*.zip ${HPLOC}/packs/libpak/zips + + haikuporter -y -d -i libao-1.0.0 + mv ${HPLOC}/media-libs/libao/*.zip ${HPLOC}/packs/libpak/zips + + haikuporter -y -d -i libmodplug-0.8.8.1 + mv ${HPLOC}/media-libs/libmodplug/*.zip ${HPLOC}/packs/libpak/zips + + haikuporter -y -d -i libmikmod-3.1.11 + mv ${HPLOC}/media-libs/libmikmod/*.zip ${HPLOC}/packs/libpak/zips + + haikuporter -y -d -i libogg-1.2.2 + mv ${HPLOC}/media-libs/libogg/*.zip ${HPLOC}/packs/libpak/zips + + haikuporter -y -d -i libtheora-1.1.1 + mv ${HPLOC}/media-libs/libtheora/*.zip ${HPLOC}/packs/libpak/zips + + haikuporter -y -d -i libvorbis-1.3.2 + mv ${HPLOC}/media-libs/libvorbis/*.zip ${HPLOC}/packs/libpak/zips + + haikuporter -y -d -i vorbis-tools-1.4.0 + mv ${HPLOC}/media-sound/vorbis-tools/*.zip ${HPLOC}/packs/libpak/zips + +#b haikuporter -y -c -d -i physfs-2.0.1 +#b mv ${HPLOC}/dev-games/physfs/*.zip ${HPLOC}/packs/libpak/zips + + haikuporter -y -d -i libevent-2.0.10 + mv ${HPLOC}/dev-libs/libevent/*.zip ${HPLOC}/packs/libpak/zips + + haikuporter -y -d -i libsdl-1.2.14 + mv ${HPLOC}/media-libs/libsdl/*.zip ${HPLOC}/packs/libpak/zips + + haikuporter -y -d -i sdl-gfx-2.0.22 + mv ${HPLOC}/media-libs/sdl-gfx/*.zip ${HPLOC}/packs/libpak/zips + + haikuporter -y -d -i sdl-ttf-2.0.10 + mv ${HPLOC}/media-libs/sdl-ttf/*.zip ${HPLOC}/packs/libpak/zips + + haikuporter -y -d -i sdl-image-1.2.10 + mv ${HPLOC}/media-libs/sdl-image/*.zip ${HPLOC}/packs/libpak/zips + + haikuporter -y -d -i sge-030809 + mv ${HPLOC}/media-libs/sge/*.zip ${HPLOC}/packs/libpak/zips + + haikuporter -y -d -i smjpeg-0.2.1 + mv ${HPLOC}/media-libs/smjpeg/*.zip ${HPLOC}/packs/libpak/zips + + haikuporter -y -d -i smpeg-0.4.5 + mv ${HPLOC}/media-libs/smpeg/*.zip ${HPLOC}/packs/libpak/zips + + haikuporter -y -d -i guilib-1.2.1 + mv ${HPLOC}/media-libs/guilib/*.zip ${HPLOC}/packs/libpak/zips + + haikuporter -y -d -i sdl-net-1.2.7 + mv ${HPLOC}/media-libs/sdl-net/*.zip ${HPLOC}/packs/libpak/zips + + haikuporter -y -d -i sdl-mixer-1.2.11 + mv ${HPLOC}/media-libs/sdl-mixer/*.zip ${HPLOC}/packs/libpak/zips + + haikuporter -y -d -i sdl-sound-1.0.3 + mv ${HPLOC}/media-libs/sdl-sound/*.zip ${HPLOC}/packs/libpak/zips + + haikuporter -y -d -i allegro-4.4.1.1 + mv ${HPLOC}/media-libs/allegro/*.zip ${HPLOC}/packs/libpak/zips + + haikuporter -y -d -i dumb-0.9.3 + mv ${HPLOC}/media-libs/dumb/*.zip ${HPLOC}/packs/libpak/zips + + haikuporter -y -d -i jgmod-0.99 + mv ${HPLOC}/media-libs/jgmod/*.zip ${HPLOC}/packs/libpak/zips + + haikuporter -c -y -d -i box2d-2.1.2 + mv ${HPLOC}/dev-games/box2d/*.zip ${HPLOC}/packs/libpak/zips + +## these don't build correctly yet +## haikuporter -y -d -i fblend-0.4 +## mv ${HPLOC}/media-libs/fblend/*.zip ${HPLOC}/packs/libpak/zips +} + +INSTALL { + cd libpak-0.9.4 + cd . + echo "Done. Zipped files are in the zips directory." + echo "GPL/LGPL sources are in the source directory." + #No need to install these, + #just put all the zips into the zips directory for uploading + #For GPL/LGPL software also create the patches sources .xz archives +} + +#LICENSE="" +#COPYRIGHT="" diff --git a/packs/libpak/libpak-0.9.5-gcc2.bep b/packs/libpak/libpak-0.9.5-gcc2.bep new file mode 100644 index 000000000..a6c22aa88 --- /dev/null +++ b/packs/libpak/libpak-0.9.5-gcc2.bep @@ -0,0 +1,141 @@ +DESCRIPTION="Libpak is a set of commonly used libraries." +HOMEPAGE="http://ports.haiku-files.org/wiki/LibPak" +SRC_URI="http://ports.haiku-files.org/raw-attachment/wiki/LibPak/libpak-0.9.4.zip" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="dev-libs/libedit >= 20100424 + dev-util/cmake >= 2.6 + dev-util/gperf >= 3.0.4 + dev-vcs/git >= 1.7.1 + dev-vcs/mercurial >= 1.6 + sys-devel/gettext >= 0.17" + +CHECKSUM_MD5="785751b34f60c4a28a746749a00ae8d4" +BUILD { + HPLOC=`haikuporter -t` + mkdir -p ../zips + mkdir -p ../sources + export HAIKUVERSION="r1a4" + cd libpak-0.9.5 + +## these are needed for building package in the libpak + haikuporter -i -d -y dos2unix + mv ${HPLOC}/app-text/dos2unix/*.zip ${HPLOC}/packs/libpak/zips + haikuporter -i -d -y pkgconfig-0.25 + mv ${HPLOC}/dev-util/pkgconfig/*.zip ${HPLOC}/packs/libpak/zips +## + haikuporter -y -d -i readline-6.2 + mv ${HPLOC}/sys-libs/readline/*.zip ${HPLOC}/packs/libpak/zips + + haikuporter -y -d -i lua-5.1.4-3 + mv ${HPLOC}/dev-lang/lua/*.zip ${HPLOC}/packs/libpak/zips + + haikuporter -y -d -i fribidi-0.19.2 + mv ${HPLOC}/dev-libs/fribidi/*.zip ${HPLOC}/packs/libpak/zips + + haikuporter -y -d -i libpaper-1.1.24 + mv ${HPLOC}/app-text/libpaper/*.zip ${HPLOC}/packs/libpak/zips + + haikuporter -y -c -d -i flac-1.2.1 + mv ${HPLOC}/media-libs/flac/*.zip ${HPLOC}/packs/libpak/zips + + haikuporter -y -c -d -i speex-1.2rc1 + mv ${HPLOC}/media-libs/speex/*.zip ${HPLOC}/packs/libpak/zips + + haikuporter -y -d -i libmng-1.0.10 + mv ${HPLOC}/media-libs/libmng/*.zip ${HPLOC}/packs/libpak/zips + + haikuporter -y -d -i libart_lgpl-2.3.21 + mv ${HPLOC}/media-libs/libart_lgpl/*.zip ${HPLOC}/packs/libpak/zips + + haikuporter -y -d -i lcms-2.1 + mv ${HPLOC}/media-libs/lcms/*.zip ${HPLOC}/packs/libpak/zips + + haikuporter -y -d -i libmad-0.15.1b + mv ${HPLOC}/media-libs/libmad/*.zip ${HPLOC}/packs/libpak/zips + + haikuporter -y -d -i libao-1.0.0 + mv ${HPLOC}/media-libs/libao/*.zip ${HPLOC}/packs/libpak/zips + + haikuporter -y -d -i libmodplug-0.8.8.1 + mv ${HPLOC}/media-libs/libmodplug/*.zip ${HPLOC}/packs/libpak/zips + + haikuporter -y -d -i libmikmod-3.1.11 + mv ${HPLOC}/media-libs/libmikmod/*.zip ${HPLOC}/packs/libpak/zips + + haikuporter -y -c -d -i libogg-1.3.0 + mv ${HPLOC}/media-libs/libogg/*.zip ${HPLOC}/packs/libpak/zips + + haikuporter -y -c -d -i libvorbis-1.3.2 + mv ${HPLOC}/media-libs/libvorbis/*.zip ${HPLOC}/packs/libpak/zips + + haikuporter -y -c -d -i libtheora-1.1.1 + mv ${HPLOC}/media-libs/libtheora/*.zip ${HPLOC}/packs/libpak/zips + + haikuporter -y -d -i vorbis-tools-1.4.0 + mv ${HPLOC}/media-sound/vorbis-tools/*.zip ${HPLOC}/packs/libpak/zips + + haikuporter -y -d -i physfs-2.0.1 + mv ${HPLOC}/dev-games/physfs/*.zip ${HPLOC}/packs/libpak/zips + + haikuporter -y -d -i libevent-1.4.13 + mv ${HPLOC}/dev-libs/libevent/*.zip ${HPLOC}/packs/libpak/zips + + haikuporter -y -d -i libsdl-1.2.14 + mv ${HPLOC}/media-libs/libsdl/*.zip ${HPLOC}/packs/libpak/zips + + haikuporter -y -d -i sdl-gfx-2.0.22 + mv ${HPLOC}/media-libs/sdl-gfx/*.zip ${HPLOC}/packs/libpak/zips + + haikuporter -y -d -i sdl-ttf-2.0.10 + mv ${HPLOC}/media-libs/sdl-ttf/*.zip ${HPLOC}/packs/libpak/zips + + haikuporter -y -d -i sdl-image-1.2.10 + mv ${HPLOC}/media-libs/sdl-image/*.zip ${HPLOC}/packs/libpak/zips + + haikuporter -y -d -i sge-030809 + mv ${HPLOC}/media-libs/sge/*.zip ${HPLOC}/packs/libpak/zips + + haikuporter -y -d -i smjpeg-0.2.1 + mv ${HPLOC}/media-libs/smjpeg/*.zip ${HPLOC}/packs/libpak/zips + + haikuporter -y -d -i smpeg-0.4.5 + mv ${HPLOC}/media-libs/smpeg/*.zip ${HPLOC}/packs/libpak/zips + + haikuporter -y -d -i guilib-1.2.1 + mv ${HPLOC}/media-libs/guilib/*.zip ${HPLOC}/packs/libpak/zips + + haikuporter -y -d -i sdl-net-1.2.7 + mv ${HPLOC}/media-libs/sdl-net/*.zip ${HPLOC}/packs/libpak/zips + + haikuporter -y -d -i sdl-mixer-1.2.11 + mv ${HPLOC}/media-libs/sdl-mixer/*.zip ${HPLOC}/packs/libpak/zips + + haikuporter -y -d -i sdl-sound-1.0.3 + mv ${HPLOC}/media-libs/sdl-sound/*.zip ${HPLOC}/packs/libpak/zips + + haikuporter -y -d -i allegro-4.4.1.1 + mv ${HPLOC}/media-libs/allegro/*.zip ${HPLOC}/packs/libpak/zips + + haikuporter -y -d -i dumb-0.9.3 + mv ${HPLOC}/media-libs/dumb/*.zip ${HPLOC}/packs/libpak/zips + +#b haikuporter -y -d -i jgmod-0.99 +#b mv ${HPLOC}/media-libs/jgmod/*.zip ${HPLOC}/packs/libpak/zips + + haikuporter -y -c -d -i ffmpeg-0.10 + mv ${HPLOC}/media-video/ffmpeg/*.zip ${HPLOC}/packs/libpak/zips +} + +INSTALL { + cd libpak-0.9.5 + cd . + echo "Done. Zipped files are in the zips directory." + echo "GPL/LGPL sources are in the source directory." + #No need to install these, + #just put all the zips into the zips directory for uploading + #For GPL/LGPL software also create the patches sources .xz archives +} + +#LICENSE="" +#COPYRIGHT="" diff --git a/packs/libpak/libpak-0.9.6-gcc2.bep b/packs/libpak/libpak-0.9.6-gcc2.bep new file mode 100644 index 000000000..4355acd4e --- /dev/null +++ b/packs/libpak/libpak-0.9.6-gcc2.bep @@ -0,0 +1,150 @@ +DESCRIPTION="Libpak is a set of commonly used libraries." +HOMEPAGE="http://ports.haiku-files.org/wiki/LibPak" +SRC_URI="http://ports.haiku-files.org/raw-attachment/wiki/LibPak/libpak-0.9.4.zip" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="dev-libs/libedit >= 20100424 + dev-util/cmake >= 2.6 + dev-util/gperf >= 3.0.4 + dev-vcs/git >= 1.7.1 + dev-vcs/mercurial >= 1.6 + sys-devel/gettext >= 0.17" + +CHECKSUM_MD5="785751b34f60c4a28a746749a00ae8d4" +BUILD { + HPLOC=`haikuporter -t` + mkdir -p ../zips + mkdir -p ../sources + export HAIKUVERSION="r1a4" + +## these are needed for building package in the libpak + haikuporter -i -d -y dos2unix + mv ${HPLOC}/app-text/dos2unix/*.zip ${HPLOC}/packs/libpak/zips + haikuporter -i -d -y pkgconfig-0.25 + mv ${HPLOC}/dev-util/pkgconfig/*.zip ${HPLOC}/packs/libpak/zips +## + haikuporter -y -d -i readline-6.2 + mv ${HPLOC}/sys-libs/readline/*.zip ${HPLOC}/packs/libpak/zips + + haikuporter -y -d -i jpeg-8d + mv ${HPLOC}/media-libs/jpeg/*.zip ${HPLOC}/packs/libpak/zips + + haikuporter -y -d -i libpng-1.5.12 + mv ${HPLOC}/media-libs/libpng/*.zip ${HPLOC}/packs/libpak/zips + + haikuporter -y -d -i lua-5.1.4-3 + mv ${HPLOC}/dev-lang/lua/*.zip ${HPLOC}/packs/libpak/zips + + haikuporter -y -d -i fribidi-0.19.2 + mv ${HPLOC}/dev-libs/fribidi/*.zip ${HPLOC}/packs/libpak/zips + + haikuporter -y -d -i libpaper-1.1.24 + mv ${HPLOC}/app-text/libpaper/*.zip ${HPLOC}/packs/libpak/zips + + haikuporter -y -c -d -i flac-1.2.1 + mv ${HPLOC}/media-libs/flac/*.zip ${HPLOC}/packs/libpak/zips + + haikuporter -y -c -d -i speex-1.2rc1 + mv ${HPLOC}/media-libs/speex/*.zip ${HPLOC}/packs/libpak/zips + + haikuporter -y -d -i libmng-1.0.10 + mv ${HPLOC}/media-libs/libmng/*.zip ${HPLOC}/packs/libpak/zips + + haikuporter -y -d -i libart_lgpl-2.3.21 + mv ${HPLOC}/media-libs/libart_lgpl/*.zip ${HPLOC}/packs/libpak/zips + + haikuporter -y -d -i lcms-2.1 + mv ${HPLOC}/media-libs/lcms/*.zip ${HPLOC}/packs/libpak/zips + + haikuporter -y -d -i libmad-0.15.1b + mv ${HPLOC}/media-libs/libmad/*.zip ${HPLOC}/packs/libpak/zips + + haikuporter -y -d -i libao-1.0.0 + mv ${HPLOC}/media-libs/libao/*.zip ${HPLOC}/packs/libpak/zips + + haikuporter -y -d -i libmodplug-0.8.8.4 + mv ${HPLOC}/media-libs/libmodplug/*.zip ${HPLOC}/packs/libpak/zips + + haikuporter -y -d -i libmikmod-3.1.11 + mv ${HPLOC}/media-libs/libmikmod/*.zip ${HPLOC}/packs/libpak/zips + + haikuporter -y -d -i libogg-1.3.0 + mv ${HPLOC}/media-libs/libogg/*.zip ${HPLOC}/packs/libpak/zips + + haikuporter -y -d -i libvorbis-1.3.2 + mv ${HPLOC}/media-libs/libvorbis/*.zip ${HPLOC}/packs/libpak/zips + + haikuporter -y -d -i libtheora-1.1.1 + mv ${HPLOC}/media-libs/libtheora/*.zip ${HPLOC}/packs/libpak/zips + + haikuporter -y -d -i vorbis-tools-1.4.0 + mv ${HPLOC}/media-sound/vorbis-tools/*.zip ${HPLOC}/packs/libpak/zips + + haikuporter -y -d -i physfs-2.0.1 + mv ${HPLOC}/dev-games/physfs/*.zip ${HPLOC}/packs/libpak/zips + + haikuporter -y -d -i libevent-2.0.10 + mv ${HPLOC}/dev-libs/libevent/*.zip ${HPLOC}/packs/libpak/zips + + haikuporter -y -d -i freetype-2.4.9 + mv ${HPLOC}/media-libs/freetype/*.zip ${HPLOC}/packs/libpak/zips + + haikuporter -y -d -i libsdl-1.2.15 + mv ${HPLOC}/media-libs/libsdl/*.zip ${HPLOC}/packs/libpak/zips + + haikuporter -y -d -i sdl-gfx-2.0.23 + mv ${HPLOC}/media-libs/sdl-gfx/*.zip ${HPLOC}/packs/libpak/zips + + haikuporter -y -d -i sdl-ttf-2.0.11 + mv ${HPLOC}/media-libs/sdl-ttf/*.zip ${HPLOC}/packs/libpak/zips + + haikuporter -y -d -i sdl-image-1.2.12 + mv ${HPLOC}/media-libs/sdl-image/*.zip ${HPLOC}/packs/libpak/zips + + haikuporter -y -d -i sge-030809 + mv ${HPLOC}/media-libs/sge/*.zip ${HPLOC}/packs/libpak/zips + + haikuporter -y -d -i smjpeg-0.2.1 + mv ${HPLOC}/media-libs/smjpeg/*.zip ${HPLOC}/packs/libpak/zips + + haikuporter -y -d -i smpeg-0.4.5 + mv ${HPLOC}/media-libs/smpeg/*.zip ${HPLOC}/packs/libpak/zips + + haikuporter -y -d -i guilib-1.2.1 + mv ${HPLOC}/media-libs/guilib/*.zip ${HPLOC}/packs/libpak/zips + + haikuporter -y -d -i sdl-net-1.2.8 + mv ${HPLOC}/media-libs/sdl-net/*.zip ${HPLOC}/packs/libpak/zips + + haikuporter -y -d -i sdl-mixer-1.2.11 + mv ${HPLOC}/media-libs/sdl-mixer/*.zip ${HPLOC}/packs/libpak/zips + + haikuporter -y -d -i sdl-sound-1.0.3 + mv ${HPLOC}/media-libs/sdl-sound/*.zip ${HPLOC}/packs/libpak/zips + +#b haikuporter -y -d -i allegro-4.4.1.1 +#b mv ${HPLOC}/media-libs/allegro/*.zip ${HPLOC}/packs/libpak/zips + + haikuporter -y -d -i dumb-0.9.3 + mv ${HPLOC}/media-libs/dumb/*.zip ${HPLOC}/packs/libpak/zips + +#b haikuporter -y -d -i jgmod-0.99 +#b mv ${HPLOC}/media-libs/jgmod/*.zip ${HPLOC}/packs/libpak/zips + + haikuporter -y -d -i libvpx-1.0.0 + mv ${HPLOC}/media-libs/libvpx/*.zip ${HPLOC}/packs/libpak/zips + + haikuporter -y -c -d -i ffmpeg-0.10.2 + mv ${HPLOC}/media-video/ffmpeg/*.zip ${HPLOC}/packs/libpak/zips +} + +INSTALL { + echo "Done. Zipped files are in the zips directory." + echo "GPL/LGPL sources are in the source directory." + #No need to install these, + #just put all the zips into the zips directory for uploading + #For GPL/LGPL software also create the patches sources .xz archives +} + +#LICENSE="" +#COPYRIGHT="" diff --git a/packs/libpak/libpak-0.9.6-gcc4.bep b/packs/libpak/libpak-0.9.6-gcc4.bep new file mode 100644 index 000000000..508433dc2 --- /dev/null +++ b/packs/libpak/libpak-0.9.6-gcc4.bep @@ -0,0 +1,157 @@ +DESCRIPTION="Libpak is a set of commonly used libraries." +HOMEPAGE="http://ports.haiku-files.org/wiki/LibPak" +SRC_URI="http://ports.haiku-files.org/raw-attachment/wiki/LibPak/libpak-0.9.4.zip" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="dev-libs/libedit >= 20100424 + dev-util/cmake >= 2.6 + dev-util/gperf >= 3.0.4 + dev-vcs/git >= 1.7.1 + dev-vcs/mercurial >= 1.6 + sys-devel/gettext >= 0.17" + +CHECKSUM_MD5="785751b34f60c4a28a746749a00ae8d4" +BUILD { + HPLOC=`haikuporter -t` + mkdir -p ../zips + mkdir -p ../sources + export HAIKUVERSION="r1a4" + +## these are needed for building package in the libpak + haikuporter -i -d -y dos2unix + mv ${HPLOC}/app-text/dos2unix/*.zip ${HPLOC}/packs/libpak/zips + haikuporter -i -d -y pkgconfig-0.25 + mv ${HPLOC}/dev-util/pkgconfig/*.zip ${HPLOC}/packs/libpak/zips +## + haikuporter -y -d -i readline-6.2 + mv ${HPLOC}/sys-libs/readline/*.zip ${HPLOC}/packs/libpak/zips + + haikuporter -y -d -i jpeg-8d + mv ${HPLOC}/media-libs/jpeg/*.zip ${HPLOC}/packs/libpak/zips + + haikuporter -y -d -i libpng-1.5.12 + mv ${HPLOC}/media-libs/libpng/*.zip ${HPLOC}/packs/libpak/zips + + haikuporter -y -d -i lua-5.1.4-3 + mv ${HPLOC}/dev-lang/lua/*.zip ${HPLOC}/packs/libpak/zips + + haikuporter -y -d -i fribidi-0.19.2 + mv ${HPLOC}/dev-libs/fribidi/*.zip ${HPLOC}/packs/libpak/zips + + haikuporter -y -d -i libpaper-1.1.24 + mv ${HPLOC}/app-text/libpaper/*.zip ${HPLOC}/packs/libpak/zips + + haikuporter -y -c -d -i flac-1.2.1 + mv ${HPLOC}/media-libs/flac/*.zip ${HPLOC}/packs/libpak/zips + + haikuporter -y -c -d -i speex-1.2rc1 + mv ${HPLOC}/media-libs/speex/*.zip ${HPLOC}/packs/libpak/zips + + haikuporter -y -d -i libmng-1.0.10 + mv ${HPLOC}/media-libs/libmng/*.zip ${HPLOC}/packs/libpak/zips + + haikuporter -y -d -i libart_lgpl-2.3.21 + mv ${HPLOC}/media-libs/libart_lgpl/*.zip ${HPLOC}/packs/libpak/zips + + haikuporter -y -d -i lcms-2.1 + mv ${HPLOC}/media-libs/lcms/*.zip ${HPLOC}/packs/libpak/zips + + haikuporter -y -d -i libmad-0.15.1b + mv ${HPLOC}/media-libs/libmad/*.zip ${HPLOC}/packs/libpak/zips + + haikuporter -y -d -i libao-1.0.0 + mv ${HPLOC}/media-libs/libao/*.zip ${HPLOC}/packs/libpak/zips + + haikuporter -y -d -i libmodplug-0.8.8.4 + mv ${HPLOC}/media-libs/libmodplug/*.zip ${HPLOC}/packs/libpak/zips + + haikuporter -y -d -i libmikmod-3.1.11 + mv ${HPLOC}/media-libs/libmikmod/*.zip ${HPLOC}/packs/libpak/zips + + haikuporter -y -d -i libogg-1.3.0 + mv ${HPLOC}/media-libs/libogg/*.zip ${HPLOC}/packs/libpak/zips + + haikuporter -y -d -i libvorbis-1.3.2 + mv ${HPLOC}/media-libs/libvorbis/*.zip ${HPLOC}/packs/libpak/zips + + haikuporter -y -d -i libtheora-1.1.1 + mv ${HPLOC}/media-libs/libtheora/*.zip ${HPLOC}/packs/libpak/zips + + haikuporter -y -d -i vorbis-tools-1.4.0 + mv ${HPLOC}/media-sound/vorbis-tools/*.zip ${HPLOC}/packs/libpak/zips + +#b haikuporter -y -c -d -i physfs-2.0.1 +#b mv ${HPLOC}/dev-games/physfs/*.zip ${HPLOC}/packs/libpak/zips + + haikuporter -y -d -i libevent-2.0.10 + mv ${HPLOC}/dev-libs/libevent/*.zip ${HPLOC}/packs/libpak/zips + + haikuporter -y -d -i freetype-2.4.9 + mv ${HPLOC}/media-libs/freetype/*.zip ${HPLOC}/packs/libpak/zips + + haikuporter -y -d -i libsdl-1.2.15 + mv ${HPLOC}/media-libs/libsdl/*.zip ${HPLOC}/packs/libpak/zips + + haikuporter -y -d -i sdl-gfx-2.0.23 + mv ${HPLOC}/media-libs/sdl-gfx/*.zip ${HPLOC}/packs/libpak/zips + + haikuporter -y -d -i sdl-ttf-2.0.11 + mv ${HPLOC}/media-libs/sdl-ttf/*.zip ${HPLOC}/packs/libpak/zips + + haikuporter -y -d -i sdl-image-1.2.12 + mv ${HPLOC}/media-libs/sdl-image/*.zip ${HPLOC}/packs/libpak/zips + + haikuporter -y -d -i sge-030809 + mv ${HPLOC}/media-libs/sge/*.zip ${HPLOC}/packs/libpak/zips + + haikuporter -y -d -i smjpeg-0.2.1 + mv ${HPLOC}/media-libs/smjpeg/*.zip ${HPLOC}/packs/libpak/zips + + haikuporter -y -d -i smpeg-0.4.5 + mv ${HPLOC}/media-libs/smpeg/*.zip ${HPLOC}/packs/libpak/zips + + haikuporter -y -d -i guilib-1.2.1 + mv ${HPLOC}/media-libs/guilib/*.zip ${HPLOC}/packs/libpak/zips + + haikuporter -y -d -i sdl-net-1.2.8 + mv ${HPLOC}/media-libs/sdl-net/*.zip ${HPLOC}/packs/libpak/zips + + haikuporter -y -d -i sdl-mixer-1.2.11 + mv ${HPLOC}/media-libs/sdl-mixer/*.zip ${HPLOC}/packs/libpak/zips + + haikuporter -y -d -i sdl-sound-1.0.3 + mv ${HPLOC}/media-libs/sdl-sound/*.zip ${HPLOC}/packs/libpak/zips + +#b haikuporter -y -d -i allegro-4.4.1.1 +#b mv ${HPLOC}/media-libs/allegro/*.zip ${HPLOC}/packs/libpak/zips + + haikuporter -y -d -i dumb-0.9.3 + mv ${HPLOC}/media-libs/dumb/*.zip ${HPLOC}/packs/libpak/zips + +#b haikuporter -y -d -i jgmod-0.99 +#b mv ${HPLOC}/media-libs/jgmod/*.zip ${HPLOC}/packs/libpak/zips + +#b haikuporter -c -y -d -i box2d-2.1.2 +#b mv ${HPLOC}/dev-games/box2d/*.zip ${HPLOC}/packs/libpak/zips + + haikuporter -y -d -i libvpx-1.0.0 + mv ${HPLOC}/media-libs/libvpx/*.zip ${HPLOC}/packs/libpak/zips + + haikuporter -y -c -d -i ffmpeg-0.10.2 + mv ${HPLOC}/media-video/ffmpeg/*.zip ${HPLOC}/packs/libpak/zips + +## these don't build correctly yet +## haikuporter -y -d -i fblend-0.4 +## mv ${HPLOC}/media-libs/fblend/*.zip ${HPLOC}/packs/libpak/zips +} + +INSTALL { + echo "Done. Zipped files are in the zips directory." + echo "GPL/LGPL sources are in the source directory." + #No need to install these, + #just put all the zips into the zips directory for uploading + #For GPL/LGPL software also create the patches sources .xz archives +} + +#LICENSE="" +#COPYRIGHT="" diff --git a/packs/optionalpackages/optionalpackages-0.6-gcc2.bep b/packs/optionalpackages/optionalpackages-0.6-gcc2.bep new file mode 100644 index 000000000..946bdc58c --- /dev/null +++ b/packs/optionalpackages/optionalpackages-0.6-gcc2.bep @@ -0,0 +1,177 @@ +DESCRIPTION="This is the full set of optionalpackages available in Haiku's OptionalPackages file." +HOMEPAGE="http://ports.haiku-files.org/milestone/Haiku%20Optional%20Packages" +SRC_URI="http://ports.haiku-files.org/raw-attachment/milestone/Haiku%20Optional%20Packages/optionalpackages-0.5.zip" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="gcc-2.95.3 + gcc-4.4.4" + +CHECKSUM_MD5="53c19c702388a49a11f72eb6606b2051" +BUILD { + HPLOC=`haikuporter -t` + mkdir -p ../zips + mkdir -p ../sources + cd optionalpackages-0.5 + export HAIKUVERSION="r1a3" +## + +#w = works +#b = currently broken +#3 = 3rd party optional package, probably needs a .bep file + + setgcc gcc2 + +## Group 1 + haikuporter -i readline-6.2 + haikuporter -i libedit-20100424 + haikuporter -y -d -i autoconf-2.68 + mv ${HPLOC}/sys-devel/autoconf/*.zip ${HPLOC}/packs/optionalpackages/zips + haikuporter -y -d -i automake-1.11.1 + mv ${HPLOC}/sys-devel/automake/*.zip ${HPLOC}/packs/optionalpackages/zips + haikuporter -y -d -i libtool-2.4 + mv ${HPLOC}/sys-devel/libtool/*.zip ${HPLOC}/packs/optionalpackages/zips + haikuporter -y -d -i bison-2.4.3 + mv ${HPLOC}/sys-devel/bison/*.zip ${HPLOC}/packs/optionalpackages/zips + haikuporter -y -d -i m4-1.4.16 + mv ${HPLOC}/sys-devel/m4/*.zip ${HPLOC}/packs/optionalpackages/zips + haikuporter -y -d -i flex-2.5.35 + mv ${HPLOC}/sys-devel/flex/*.zip ${HPLOC}/packs/optionalpackages/zips + haikuporter -y -d -i jam-2.5 + mv ${HPLOC}/sys-devel/jam/*.zip ${HPLOC}/packs/optionalpackages/zips + haikuporter -y -d -i mkdepend-1.7 + mv ${HPLOC}/haiku-apps/mkdepend/*.zip ${HPLOC}/packs/optionalpackages/zips + haikuporter -y -d -i make-3.82 + mv ${HPLOC}/sys-devel/make/*.zip ${HPLOC}/packs/optionalpackages/zips + haikuporter -y -d -i openssl-1.0.0d + mv ${HPLOC}/dev-libs/openssl/*.zip ${HPLOC}/packs/optionalpackages/zips + haikuporter -y -d perl-5.10.1 + mv ${HPLOC}/dev-lang/perl/*.zip ${HPLOC}/packs/optionalpackages/zips + haikuporter -y -d -i cmake-2.8.4 + mv ${HPLOC}/dev-util/cmake/*.zip ${HPLOC}/packs/optionalpackages/zips + haikuporter -y -d -i yasm-1.1.0 + mv ${HPLOC}/dev-lang/yasm/*.zip ${HPLOC}/packs/optionalpackages/zips + +## Group 2 + + haikuporter -y -d -i sed-4.2.1 + mv ${HPLOC}/sys-apps/sed/*.zip ${HPLOC}/packs/optionalpackages/zips + haikuporter -y -c -d droid-113 + mv ${HPLOC}/media-fonts/droid/*.zip ${HPLOC}/packs/optionalpackages/zips + haikuporter -y -c -d wqy-microhei-0.2.0-beta + mv ${HPLOC}/media-fonts/wqy-microhei/*.zip ${HPLOC}/packs/optionalpackages/zips + haikuporter -y -c -d -i mercurial-1.8.3 + mv ${HPLOC}/dev-vcs/mercurial/*.zip ${HPLOC}/packs/optionalpackages/zips +#3 haikuporter -y -d -i ABI-compliance-checker-1.12 + haikuporter -y -d -i apr-1.4.2 + mv ${HPLOC}/dev-libs/apr/*.zip ${HPLOC}/packs/optionalpackages/zips + haikuporter -y -d -i apr-util-1.3.10 + mv ${HPLOC}/dev-libs/apr-util/*.zip ${HPLOC}/packs/optionalpackages/zips + haikuporter -y -d -i sqlite-3.7.5 + mv ${HPLOC}/dev-db/sqlite/*.zip ${HPLOC}/packs/optionalpackages/zips + haikuporter -y -d bzr-2.2.2 + mv ${HPLOC}/dev-vcs/bzr/*.zip ${HPLOC}/packs/optionalpackages/zips + haikuporter -y -d -i beae-22 + mv ${HPLOC}/haiku-apps/beae/*.zip ${HPLOC}/packs/optionalpackages/zips +#3 haikuporter -y -d -i Beam-1.2alpha +#3 haikuporter -y -d -i bebook_20081026 +#3 haikuporter -y -d -i BeHappy-1.0.6 +#3 haikuporter -y -d -i BePDF-1.1.1b3 +#3 mv ${HPLOC}/haiku-apps/bepdf/*.zip ${HPLOC}/packs/optionalpackages/zips +#3 haikuporter -y -d -i BeZillaBrowser-2.0.0.22pre + haikuporter -y -d -i burnitnow-39 + mv ${HPLOC}/haiku-apps/burnitnow/*.zip ${HPLOC}/packs/optionalpackages/zips + haikuporter -y -d -i bzip2-1.0.6 + mv ${HPLOC}/app-arch/bzip2/*.zip ${HPLOC}/packs/optionalpackages/zips + haikuporter -y -d -i ccache-3.0.1 + mv ${HPLOC}/dev-util/ccache/*.zip ${HPLOC}/packs/optionalpackages/zips + haikuporter -y -d -i cdrtools-3.01a01 + mv ${HPLOC}/app-cdr/cdrtools/*.zip ${HPLOC}/packs/optionalpackages/zips + haikuporter -y -d -i libpcre-8.12 + mv ${HPLOC}/dev-libs/libpcre/*.zip ${HPLOC}/packs/optionalpackages/zips + haikuporter -y -d -i clockwerk-78 + mv ${HPLOC}/haiku-apps/clockwerk/*.zip ${HPLOC}/packs/optionalpackages/zips + haikuporter -y -d -i curl-7.21.6 + mv ${HPLOC}/net-misc/curl/*.zip ${HPLOC}/packs/optionalpackages/zips + haikuporter -y -d -i cvs-1.12.13.1 + mv ${HPLOC}/dev-vcs/cvs/*.zip ${HPLOC}/packs/optionalpackages/zips + haikuporter -y -d -i subversion-1.6.15 + mv ${HPLOC}/dev-vcs/subversion/*.zip ${HPLOC}/packs/optionalpackages/zips + haikuporter -y -d -i texinfo-4.13a + mv ${HPLOC}/sys-apps/texinfo/*.zip ${HPLOC}/packs/optionalpackages/zips + haikuporter -y -d -i expat-2.0.1 + mv ${HPLOC}/dev-libs/expat/*.zip ${HPLOC}/packs/optionalpackages/zips + haikuporter -y -d -i fastdep-0.16 + mv ${HPLOC}/dev-util/fastdep/*.zip ${HPLOC}/packs/optionalpackages/zips +#3 haikuporter -y -d -i friss-0.5pre7 + haikuporter -y -d -i gettext-0.18.1.1 + mv ${HPLOC}/sys-devel/gettext/*.zip ${HPLOC}/packs/optionalpackages/zips + haikuporter -y -d -i git-1.7.5 + mv ${HPLOC}/dev-vcs/git/*.zip ${HPLOC}/packs/optionalpackages/zips + haikuporter -y -d -i gperf-3.0.4 + mv ${HPLOC}/dev-util/gperf/*.zip ${HPLOC}/packs/optionalpackages/zips + haikuporter -y -d -i groff-1.20.1 + mv ${HPLOC}/sys-apps/groff/*.zip ${HPLOC}/packs/optionalpackages/zips +#3 haikuporter -y -d -i KeymapSwitcher-1.2.5 + haikuporter -y -d -i libevent-2.0.10 + mv ${HPLOC}/dev-libs/libevent/*.zip ${HPLOC}/packs/optionalpackages/zips + haikuporter -y -d -i libiconv-1.13.1 + mv ${HPLOC}/dev-libs/libiconv/*.zip ${HPLOC}/packs/optionalpackages/zips +#3 haikuporter -y -d -i liblayout-1.4.0 + haikuporter -y -d -i libmng-1.0.10 + mv ${HPLOC}/media-libs/libmng/*.zip ${HPLOC}/packs/optionalpackages/zips + haikuporter -y -d -i libxml2-2.7.8 + mv ${HPLOC}/dev-libs/libxml2/*.zip ${HPLOC}/packs/optionalpackages/zips + haikuporter -y -d -i libxslt-1.1.26 + mv ${HPLOC}/dev-libs/libxslt/*.zip ${HPLOC}/packs/optionalpackages/zips +#3 haikuporter -y -d -i links + haikuporter -y -d -i man-1.6f + mv ${HPLOC}/sys-apps/man/*.zip ${HPLOC}/packs/optionalpackages/zips + haikuporter -y -d -i nano-2.2.6 + mv ${HPLOC}/app-editors/nano/*.zip ${HPLOC}/packs/optionalpackages/zips + haikuporter -y -d -i neon-0.29.6 + mv ${HPLOC}/net-misc/neon/*.zip ${HPLOC}/packs/optionalpackages/zips +#b haikuporter -y -d -i netsurf-2.6 +#b mv ${HPLOC}/www-client/netsurf/*.zip ${HPLOC}/packs/optionalpackages/zips +#3 haikuporter -y -d -i ocaml-3.11.1 +#3 haikuporter -y -d -i camlp5-5.12 +#b haikuporter -y -d -i opensound-4.2 +#b mv ${HPLOC}/media-sound/opensound/*.zip ${HPLOC}/packs/optionalpackages/zips + haikuporter -y -d -i openssh-5.8p2 + mv ${HPLOC}/net-misc/openssh/*.zip ${HPLOC}/packs/optionalpackages/zips + haikuporter -y -d -i p7zip-9.13 + mv ${HPLOC}/app-arch/p7zip/*.zip ${HPLOC}/packs/optionalpackages/zips + haikuporter -y -d -i paladin-1.3 + mv ${HPLOC}/haiku-apps/paladin/*.zip ${HPLOC}/packs/optionalpackages/zips + haikuporter -y -d -i pe-2.4.3-600 + mv ${HPLOC}/haiku-apps/pe/*.zip ${HPLOC}/packs/optionalpackages/zips +#b haikuporter -y -d python-2.7.1 +#b mv ${HPLOC}/dev-lang/python/*.zip ${HPLOC}/packs/optionalpackages/zips + haikuporter -y -d -i rsync-3.0.7 + mv ${HPLOC}/net-misc/rsync/*.zip ${HPLOC}/packs/optionalpackages/zips + haikuporter -y -d -i ruby-1.9.1 + mv ${HPLOC}/dev-lang/ruby/*.zip ${HPLOC}/packs/optionalpackages/zips + haikuporter -y -d -i tar-1.25 + mv ${HPLOC}/app-arch/tar/*.zip ${HPLOC}/packs/optionalpackages/zips +#3 haikuporter -y -d -i TimGMSoundFont +#3 haikuporter -y -d -i TrackerNewTemplates +#b haikuporter -y -d -i vim-7.3 +#b mv ${HPLOC}/app-editors/vim/*.zip ${HPLOC}/packs/optionalpackages/zips + haikuporter -y -d -i vision-908 + mv ${HPLOC}/haiku-apps/vision/*.zip ${HPLOC}/packs/optionalpackages/zips + +#3 haikuporter -y -d -i WonderBrush-2.1.2 + + +} + +INSTALL { + cd . + echo "Done. Zipped files are in the zips directory." + echo "GPL/LGPL sources are in the source directory." + #No need to install these, + #just put all the zips into the zips directory for uploading + #For GPL/LGPL software also create the patches sources .xz archives +} + +#LICENSE="" +#COPYRIGHT="" diff --git a/packs/optionalpackages/optionalpackages-0.6-gcc4.bep b/packs/optionalpackages/optionalpackages-0.6-gcc4.bep new file mode 100644 index 000000000..4a7196378 --- /dev/null +++ b/packs/optionalpackages/optionalpackages-0.6-gcc4.bep @@ -0,0 +1,177 @@ +DESCRIPTION="This is the full set of optionalpackages available in Haiku's OptionalPackages file." +HOMEPAGE="http://ports.haiku-files.org/milestone/Haiku%20Optional%20Packages" +SRC_URI="http://ports.haiku-files.org/raw-attachment/milestone/Haiku%20Optional%20Packages/optionalpackages-0.5.zip" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="sys-devel/gcc >= 4.4.4" + +CHECKSUM_MD5="53c19c702388a49a11f72eb6606b2051" +BUILD { + HPLOC=`haikuporter -t` + mkdir -p ../zips + mkdir -p ../sources + cd optionalpackages-0.5 + export HAIKUVERSION="r1a3" +## + +#w = works +#b = currently broken +#3 = 3rd party optional package, probably needs a .bep file + + + haikuporter -i readline-6.2 + haikuporter -y -d -i libedit-20100424 + haikuporter -y -d -i autoconf-2.68 + mv ${HPLOC}/sys-devel/autoconf/*.zip ${HPLOC}/packs/optionalpackages/zips + haikuporter -y -d -i automake-1.11.1 + mv ${HPLOC}/sys-devel/automake/*.zip ${HPLOC}/packs/optionalpackages/zips + haikuporter -y -d -i libtool-2.4 + mv ${HPLOC}/sys-devel/libtool/*.zip ${HPLOC}/packs/optionalpackages/zips + haikuporter -y -d -i bison-2.4.3 + mv ${HPLOC}/sys-devel/bison/*.zip ${HPLOC}/packs/optionalpackages/zips + haikuporter -y -d -i m4-1.4.16 + mv ${HPLOC}/sys-devel/m4/*.zip ${HPLOC}/packs/optionalpackages/zips + haikuporter -y -d -i flex-2.5.35 + mv ${HPLOC}/sys-devel/flex/*.zip ${HPLOC}/packs/optionalpackages/zips + haikuporter -y -d -i jam-2.5 + mv ${HPLOC}/sys-devel/jam/*.zip ${HPLOC}/packs/optionalpackages/zips + haikuporter -y -d -i mkdepend-1.7 + mv ${HPLOC}/haiku-apps/mkdepend/*.zip ${HPLOC}/packs/optionalpackages/zips + haikuporter -y -d -i make-3.82 + mv ${HPLOC}/sys-devel/make/*.zip ${HPLOC}/packs/optionalpackages/zips + haikuporter -y -d -i cmake-2.8.4 + mv ${HPLOC}/dev-util/cmake/*.zip ${HPLOC}/packs/optionalpackages/zips + haikuporter -y -d -i libxml2-2.7.8 + mv ${HPLOC}/dev-libs/libxml2/*.zip ${HPLOC}/packs/optionalpackages/zips + haikuporter -y -d -i libxslt-1.1.26 + mv ${HPLOC}/dev-libs/libxslt/*.zip ${HPLOC}/packs/optionalpackages/zips + + haikuporter -y -d -i yasm-1.1.0 + mv ${HPLOC}/dev-lang/yasm/*.zip ${HPLOC}/packs/optionalpackages/zips + haikuporter -y -d -i xz-utils-5.0.1 + mv ${HPLOC}/app-arch/xz-utils/*.zip ${HPLOC}/packs/optionalpackages/zips + haikuporter -y -d -i openssl-1.0.0d + mv ${HPLOC}/dev-libs/openssl/*.zip ${HPLOC}/packs/optionalpackages/zips + haikuporter -y -d -i curl-7.21.6 + mv ${HPLOC}/net-misc/curl/*.zip ${HPLOC}/packs/optionalpackages/zips + haikuporter -y -d -i neon-0.29.6 + mv ${HPLOC}/net-misc/neon/*.zip ${HPLOC}/packs/optionalpackages/zips + haikuporter -y -d -i cvs-1.12.13.1 + mv ${HPLOC}/dev-vcs/cvs/*.zip ${HPLOC}/packs/optionalpackages/zips + haikuporter -y -d -i subversion-1.6.15 + mv ${HPLOC}/dev-vcs/subversion/*.zip ${HPLOC}/packs/optionalpackages/zips + haikuporter -y -d -i git-1.7.5 + mv ${HPLOC}/dev-vcs/git/*.zip ${HPLOC}/packs/optionalpackages/zips + haikuporter -y -d -i openssh-5.8p2 + mv ${HPLOC}/net-misc/openssh/*.zip ${HPLOC}/packs/optionalpackages/zips + haikuporter -y -c -d -i mercurial-1.8.3 + mv ${HPLOC}/dev-vcs/mercurial/*.zip ${HPLOC}/packs/optionalpackages/zips + + + haikuporter -y -c -d droid-113 + mv ${HPLOC}/media-fonts/droid/*.zip ${HPLOC}/packs/optionalpackages/zips + haikuporter -y -d -i apr-1.4.2 + mv ${HPLOC}/dev-libs/apr/*.zip ${HPLOC}/packs/optionalpackages/zips + haikuporter -y -d -i apr-util-1.3.10 + mv ${HPLOC}/dev-libs/apr-util/*.zip ${HPLOC}/packs/optionalpackages/zips + haikuporter -y -d -i sqlite-3.7.5 + mv ${HPLOC}/dev-db/sqlite/*.zip ${HPLOC}/packs/optionalpackages/zips + haikuporter -y -d bzr-2.2.2 + mv ${HPLOC}/dev-vcs/bzr/*.zip ${HPLOC}/packs/optionalpackages/zips + haikuporter -y -d -i beae-22 + mv ${HPLOC}/haiku-apps/beae/*.zip ${HPLOC}/packs/optionalpackages/zips + haikuporter -y -d -i burnitnow-39 + mv ${HPLOC}/haiku-apps/burnitnow/*.zip ${HPLOC}/packs/optionalpackages/zips + haikuporter -y -d -i bzip2-1.0.6 + mv ${HPLOC}/app-arch/bzip2/*.zip ${HPLOC}/packs/optionalpackages/zips + haikuporter -y -d -i ccache-3.0.1 + mv ${HPLOC}/dev-util/ccache/*.zip ${HPLOC}/packs/optionalpackages/zips + haikuporter -y -d -i cdrtools-3.01a01 + mv ${HPLOC}/app-cdr/cdrtools/*.zip ${HPLOC}/packs/optionalpackages/zips + haikuporter -y -d -i texinfo-4.13a + mv ${HPLOC}/sys-apps/texinfo/*.zip ${HPLOC}/packs/optionalpackages/zips + haikuporter -y -d -i expat-2.0.1 + mv ${HPLOC}/dev-libs/expat/*.zip ${HPLOC}/packs/optionalpackages/zips + haikuporter -y -d -i fastdep-0.16 + mv ${HPLOC}/dev-util/fastdep/*.zip ${HPLOC}/packs/optionalpackages/zips + haikuporter -y -d -i gettext-0.18.1.1 + mv ${HPLOC}/sys-devel/gettext/*.zip ${HPLOC}/packs/optionalpackages/zips + haikuporter -y -d -i gperf-3.0.4 + mv ${HPLOC}/dev-util/gperf/*.zip ${HPLOC}/packs/optionalpackages/zips + haikuporter -y -d -i groff-1.20.1 + mv ${HPLOC}/sys-apps/groff/*.zip ${HPLOC}/packs/optionalpackages/zips + haikuporter -y -d -i libevent-2.0.10 + mv ${HPLOC}/dev-libs/libevent/*.zip ${HPLOC}/packs/optionalpackages/zips + haikuporter -y -d -i libiconv-1.13.1 + mv ${HPLOC}/dev-libs/libiconv/*.zip ${HPLOC}/packs/optionalpackages/zips + haikuporter -y -d -i man-1.6f + mv ${HPLOC}/sys-apps/man/*.zip ${HPLOC}/packs/optionalpackages/zips + haikuporter -y -d -i nano-2.2.6 + mv ${HPLOC}/app-editors/nano/*.zip ${HPLOC}/packs/optionalpackages/zips + haikuporter -y -d -i p7zip-9.13 + mv ${HPLOC}/app-arch/p7zip/*.zip ${HPLOC}/packs/optionalpackages/zips + haikuporter -y -d -i paladin-1.3 + mv ${HPLOC}/haiku-apps/paladin/*.zip ${HPLOC}/packs/optionalpackages/zips + haikuporter -y -d -i libpcre-8.12 + mv ${HPLOC}/dev-libs/libpcre/*.zip ${HPLOC}/packs/optionalpackages/zips + haikuporter -y -d perl-5.10.1 + mv ${HPLOC}/dev-lang/perl/*.zip ${HPLOC}/packs/optionalpackages/zips + haikuporter -y -d -i rsync-3.0.7 + mv ${HPLOC}/net-misc/rsync/*.zip ${HPLOC}/packs/optionalpackages/zips + haikuporter -y -d -i ruby-1.9.1 + mv ${HPLOC}/dev-lang/ruby/*.zip ${HPLOC}/packs/optionalpackages/zips + haikuporter -y -d -i sed-4.2.1 + mv ${HPLOC}/sys-apps/sed/*.zip ${HPLOC}/packs/optionalpackages/zips + haikuporter -y -d -i vision-908 + mv ${HPLOC}/haiku-apps/vision/*.zip ${HPLOC}/packs/optionalpackages/zips + haikuporter -y -d -i vim-7.3 + mv ${HPLOC}/app-editors/vim/*.zip ${HPLOC}/packs/optionalpackages/zips + haikuporter -y -c -d -i transmission-2.21 + mv ${HPLOC}/net-p2p/transmission/*.zip ${HPLOC}/packs/optionalpackages/zips + haikuporter -y -c -d -i pe-2.4.3-600 + mv ${HPLOC}/haiku-apps/pe/*.zip ${HPLOC}/packs/optionalpackages/zips +#b haikuporter -y -d -i opensound-4.2 +#b mv ${HPLOC}/media-sound/opensound/*.zip ${HPLOC}/packs/optionalpackages/zips +#b haikuporter -y -d python-2.7.1 +#b mv ${HPLOC}/dev-lang/python/*.zip ${HPLOC}/packs/optionalpackages/zips + haikuporter -y -d -i tar-1.25 + mv ${HPLOC}/app-arch/tar/*.zip ${HPLOC}/packs/optionalpackages/zips +#b haikuporter -y -d -i netsurf-2.6 +#b mv ${HPLOC}/www-client/netsurf/*.zip ${HPLOC}/packs/optionalpackages/zips +#b haikuporter -y -d -i clockwerk-78 +#b mv ${HPLOC}/haiku-apps/clockwerk/*.zip ${HPLOC}/packs/optionalpackages/zips + +#3 haikuporter -y -d -i ABI-compliance-checker-1.12 +#3 haikuporter -y -d -i Beam-1.2alpha +#3 haikuporter -y -d -i bebook_20081026 +#3 haikuporter -y -d -i BeHappy-1.0.6 +#3 haikuporter -y -d -i BePDF-1.1.1b3 +#3 mv ${HPLOC}/haiku-apps/bepdf/*.zip ${HPLOC}/packs/optionalpackages/zips +#3 haikuporter -y -d -i BeZillaBrowser-2.0.0.22pre +#3 haikuporter -y -d -i friss-0.5pre7 +#3 haikuporter -y -d -i KeymapSwitcher-1.2.5 +#3 haikuporter -y -d -i liblayout-1.4.0 +#3 haikuporter -y -d -i links +#3 haikuporter -y -d -i ocaml-3.11.1 +#3 haikuporter -y -d -i camlp5-5.12 +#3 haikuporter -y -d -i TimGMSoundFont +#3 haikuporter -y -d -i TrackerNewTemplates +#3 haikuporter -y -d -i WonderBrush-2.1.2 +#3 haikuporter -y -c -d -i WebPositive +#3 haikuporter -y -d -i KeymapSwitcher-1.2.5 +#3 haikuporter -y -d -i clucene-0.9.21 +#3 haikuporter -y -d -i BeZillaBrowser-2.0.0.22pre + +} + +INSTALL { + cd . + echo "Done. Zipped files are in the zips directory." + echo "GPL/LGPL sources are in the source directory." + #No need to install these, + #just put all the zips into the zips directory for uploading + #For GPL/LGPL software also create the patches sources .xz archives +} + +#LICENSE="" +#COPYRIGHT="" diff --git a/packs/optionalpackages/optionalpackages-0.7-gcc2.bep b/packs/optionalpackages/optionalpackages-0.7-gcc2.bep new file mode 100644 index 000000000..e024c32dc --- /dev/null +++ b/packs/optionalpackages/optionalpackages-0.7-gcc2.bep @@ -0,0 +1,182 @@ +DESCRIPTION="This is the full set of optionalpackages available in Haiku's OptionalPackages file." +HOMEPAGE="http://ports.haiku-files.org/milestone/Haiku%20Optional%20Packages" +SRC_URI="http://ports.haiku-files.org/raw-attachment/milestone/Haiku%20Optional%20Packages/optionalpackages-0.5.zip" +REVISION="3" +STATUS_HAIKU="stable" +DEPEND="gcc == 2.95.3 + liblayout == 1.4.0 + dev-util/cmake >= 2.8.4" + +CHECKSUM_MD5="53c19c702388a49a11f72eb6606b2051" +BUILD { + HPLOC=`haikuporter -t` + mkdir -p ../zips + mkdir -p ../sources + cd optionalpackages-0.5 + export HAIKUVERSION="r1a4" +## + +#w = works +#b = currently broken +#3 = 3rd party optional package, probably needs a .bep file + +## Group 1 + haikuporter -i readline-6.2 + haikuporter -i libedit-20120601-3.0 + haikuporter -y -d -i autoconf-2.68 + mv ${HPLOC}/sys-devel/autoconf/*.zip ${HPLOC}/packs/optionalpackages/zips + haikuporter -y -d -i automake-1.11.1 + mv ${HPLOC}/sys-devel/automake/*.zip ${HPLOC}/packs/optionalpackages/zips + haikuporter -y -d -i libtool-2.4 + mv ${HPLOC}/sys-devel/libtool/*.zip ${HPLOC}/packs/optionalpackages/zips + haikuporter -y -d -i bison-2.4.3 + mv ${HPLOC}/sys-devel/bison/*.zip ${HPLOC}/packs/optionalpackages/zips + haikuporter -y -d -i m4-1.4.16 + mv ${HPLOC}/sys-devel/m4/*.zip ${HPLOC}/packs/optionalpackages/zips + haikuporter -y -d -i flex-2.5.35 + mv ${HPLOC}/sys-devel/flex/*.zip ${HPLOC}/packs/optionalpackages/zips + haikuporter -y -d -i jam-2.5 + mv ${HPLOC}/sys-devel/jam/*.zip ${HPLOC}/packs/optionalpackages/zips + haikuporter -y -d -i mkdepend-1.7 + mv ${HPLOC}/haiku-apps/mkdepend/*.zip ${HPLOC}/packs/optionalpackages/zips + haikuporter -y -d -i make-3.82 + mv ${HPLOC}/sys-devel/make/*.zip ${HPLOC}/packs/optionalpackages/zips + haikuporter -y -d -i openssl-1.0.0j + mv ${HPLOC}/dev-libs/openssl/*.zip ${HPLOC}/packs/optionalpackages/zips + haikuporter -y -d perl-5.10.1 + mv ${HPLOC}/dev-lang/perl/*.zip ${HPLOC}/packs/optionalpackages/zips + haikuporter -y -d -i cmake-2.8.5 + mv ${HPLOC}/dev-util/cmake/*.zip ${HPLOC}/packs/optionalpackages/zips + haikuporter -y -d -i yasm-1.2.0 + mv ${HPLOC}/dev-lang/yasm/*.zip ${HPLOC}/packs/optionalpackages/zips + haikuporter -y -d -i freetype-2.4.9 + mv ${HPLOC}/media-libs/freetype/*.zip ${HPLOC}/packs/optionalpackages/zips + +## Group 2 + + haikuporter -y -d -i sed-4.2.1 + mv ${HPLOC}/sys-apps/sed/*.zip ${HPLOC}/packs/optionalpackages/zips + haikuporter -y -c -d droid-113 + mv ${HPLOC}/media-fonts/droid/*.zip ${HPLOC}/packs/optionalpackages/zips + haikuporter -y -c -d wqy-microhei-0.2.0-beta + mv ${HPLOC}/media-fonts/wqy-microhei/*.zip ${HPLOC}/packs/optionalpackages/zips + haikuporter -y -c -d -i mercurial-2.2.2 + mv ${HPLOC}/dev-vcs/mercurial/*.zip ${HPLOC}/packs/optionalpackages/zips +#3 haikuporter -y -d -i ABI-compliance-checker-1.12 + haikuporter -y -d -i apr-1.4.6 + mv ${HPLOC}/dev-libs/apr/*.zip ${HPLOC}/packs/optionalpackages/zips + haikuporter -y -d -i apr-util-1.4.1 + mv ${HPLOC}/dev-libs/apr-util/*.zip ${HPLOC}/packs/optionalpackages/zips + haikuporter -y -d -i sqlite-3.7.13 + mv ${HPLOC}/dev-db/sqlite/*.zip ${HPLOC}/packs/optionalpackages/zips + haikuporter -y -d bzr-2.5.1 + mv ${HPLOC}/dev-vcs/bzr/*.zip ${HPLOC}/packs/optionalpackages/zips + haikuporter -y -d -i beae-22 + mv ${HPLOC}/haiku-apps/beae/*.zip ${HPLOC}/packs/optionalpackages/zips + haikuporter -y -d -i beam-1.2alpha + mv ${HPLOC}/haiku-apps/beam/*.zip ${HPLOC}/packs/optionalpackages/zips +#3 haikuporter -y -d -i bebook_20081026 +#3 haikuporter -y -d -i BeHappy-1.0.6 +#3 haikuporter -y -d -i BePDF-1.1.1b3 +#3 mv ${HPLOC}/haiku-apps/bepdf/*.zip ${HPLOC}/packs/optionalpackages/zips +#3 haikuporter -y -d -i BeZillaBrowser-2.0.0.22pre + haikuporter -y -d -i burnitnow-39 + mv ${HPLOC}/haiku-apps/burnitnow/*.zip ${HPLOC}/packs/optionalpackages/zips + haikuporter -y -d -i bzip2-1.0.6 + mv ${HPLOC}/app-arch/bzip2/*.zip ${HPLOC}/packs/optionalpackages/zips + haikuporter -y -d -i ccache-3.0.1 + mv ${HPLOC}/dev-util/ccache/*.zip ${HPLOC}/packs/optionalpackages/zips + haikuporter -y -d -i cdrtools-3.01a07 + mv ${HPLOC}/app-cdr/cdrtools/*.zip ${HPLOC}/packs/optionalpackages/zips + haikuporter -y -d -i libpcre-8.21 + mv ${HPLOC}/dev-libs/libpcre/*.zip ${HPLOC}/packs/optionalpackages/zips + haikuporter -y -d -i clockwerk-80 + mv ${HPLOC}/haiku-apps/clockwerk/*.zip ${HPLOC}/packs/optionalpackages/zips + haikuporter -y -d -i curl-7.26.0 + mv ${HPLOC}/net-misc/curl/*.zip ${HPLOC}/packs/optionalpackages/zips + haikuporter -y -d -i cvs-1.12.13.1 + mv ${HPLOC}/dev-vcs/cvs/*.zip ${HPLOC}/packs/optionalpackages/zips + haikuporter -y -d -i subversion-1.6.18 + mv ${HPLOC}/dev-vcs/subversion/*.zip ${HPLOC}/packs/optionalpackages/zips + haikuporter -y -d -i texinfo-4.13a + mv ${HPLOC}/sys-apps/texinfo/*.zip ${HPLOC}/packs/optionalpackages/zips + haikuporter -y -d -i expat-2.0.1 + mv ${HPLOC}/dev-libs/expat/*.zip ${HPLOC}/packs/optionalpackages/zips + haikuporter -y -d -i fastdep-0.16 + mv ${HPLOC}/dev-util/fastdep/*.zip ${HPLOC}/packs/optionalpackages/zips + haikuporter -y -d -i friss-29 + mv ${HPLOC}/haiku-apps/friss/*.zip ${HPLOC}/packs/optionalpackages/zips + haikuporter -y -d -i gettext-0.18.1.1 + mv ${HPLOC}/sys-devel/gettext/*.zip ${HPLOC}/packs/optionalpackages/zips + haikuporter -y -d -i gitdoc-1.7.10.2 + mv ${HPLOC}/dev-vcs/gitdoc/*.zip ${HPLOC}/packs/optionalpackages/zips + haikuporter -y -d -i git-1.7.10.2 + mv ${HPLOC}/dev-vcs/git/*.zip ${HPLOC}/packs/optionalpackages/zips + haikuporter -y -d -i gperf-3.0.4 + mv ${HPLOC}/dev-util/gperf/*.zip ${HPLOC}/packs/optionalpackages/zips + haikuporter -y -d -i groff-1.20.1 + mv ${HPLOC}/sys-apps/groff/*.zip ${HPLOC}/packs/optionalpackages/zips +#3 haikuporter -y -d -i KeymapSwitcher-1.2.5 + haikuporter -y -d -i libevent-2.0.10 + mv ${HPLOC}/dev-libs/libevent/*.zip ${HPLOC}/packs/optionalpackages/zips + haikuporter -y -d -i libiconv-1.13.1 + mv ${HPLOC}/dev-libs/libiconv/*.zip ${HPLOC}/packs/optionalpackages/zips +#3 haikuporter -y -d -i liblayout-1.4.0 + haikuporter -y -d -i libmng-1.0.10 + mv ${HPLOC}/media-libs/libmng/*.zip ${HPLOC}/packs/optionalpackages/zips + haikuporter -y -d -i libxml2-2.8.0 + mv ${HPLOC}/dev-libs/libxml2/*.zip ${HPLOC}/packs/optionalpackages/zips + haikuporter -y -d -i libxslt-1.1.26 + mv ${HPLOC}/dev-libs/libxslt/*.zip ${HPLOC}/packs/optionalpackages/zips +#3 haikuporter -y -d -i links + haikuporter -y -d -i man-1.6g + mv ${HPLOC}/sys-apps/man/*.zip ${HPLOC}/packs/optionalpackages/zips + haikuporter -y -d -i nano-2.2.6 + mv ${HPLOC}/app-editors/nano/*.zip ${HPLOC}/packs/optionalpackages/zips + haikuporter -y -d -i neon-0.29.6 + mv ${HPLOC}/net-misc/neon/*.zip ${HPLOC}/packs/optionalpackages/zips +#b haikuporter -y -d -i netsurf-2.6 +#b mv ${HPLOC}/www-client/netsurf/*.zip ${HPLOC}/packs/optionalpackages/zips +#3 haikuporter -y -d -i ocaml-3.11.1 +#3 haikuporter -y -d -i camlp5-5.12 +#b haikuporter -y -d -i opensound-4.2 +#b mv ${HPLOC}/media-sound/opensound/*.zip ${HPLOC}/packs/optionalpackages/zips + haikuporter -y -d -i openssh-6.0p1 + mv ${HPLOC}/net-misc/openssh/*.zip ${HPLOC}/packs/optionalpackages/zips + haikuporter -y -d -i p7zip-9.20.1 + mv ${HPLOC}/app-arch/p7zip/*.zip ${HPLOC}/packs/optionalpackages/zips + haikuporter -y -d -i paladin-1.3 + mv ${HPLOC}/haiku-apps/paladin/*.zip ${HPLOC}/packs/optionalpackages/zips + haikuporter -y -d -i pe-2.4.3-600 + mv ${HPLOC}/haiku-apps/pe/*.zip ${HPLOC}/packs/optionalpackages/zips +#b haikuporter -y -d python-2.7.1 +#b mv ${HPLOC}/dev-lang/python/*.zip ${HPLOC}/packs/optionalpackages/zips + haikuporter -y -d -i rsync-3.0.7 + mv ${HPLOC}/net-misc/rsync/*.zip ${HPLOC}/packs/optionalpackages/zips + haikuporter -y -d -i ruby-1.9.1 + mv ${HPLOC}/dev-lang/ruby/*.zip ${HPLOC}/packs/optionalpackages/zips + haikuporter -y -d -i tar-1.26 + mv ${HPLOC}/app-arch/tar/*.zip ${HPLOC}/packs/optionalpackages/zips +#3 haikuporter -y -d -i TimGMSoundFont +#3 haikuporter -y -d -i TrackerNewTemplates +#b haikuporter -y -d -i vim-7.3 +#b mv ${HPLOC}/app-editors/vim/*.zip ${HPLOC}/packs/optionalpackages/zips + haikuporter -y -d -i vision-908 + mv ${HPLOC}/haiku-apps/vision/*.zip ${HPLOC}/packs/optionalpackages/zips + +#3 haikuporter -y -d -i WonderBrush-2.1.2 + + +} + +INSTALL { + cd . + echo "Done. Zipped files are in the zips directory." + echo "GPL/LGPL sources are in the source directory." + #No need to install these, + #just put all the zips into the zips directory for uploading + #For GPL/LGPL software also create the patches sources .xz archives +} + +#LICENSE="" +#COPYRIGHT="" diff --git a/packs/optionalpackages/optionalpackages-0.7-gcc4.bep b/packs/optionalpackages/optionalpackages-0.7-gcc4.bep new file mode 100644 index 000000000..2661a45e2 --- /dev/null +++ b/packs/optionalpackages/optionalpackages-0.7-gcc4.bep @@ -0,0 +1,176 @@ +DESCRIPTION="This is the full set of optionalpackages available in Haiku's OptionalPackages file." +HOMEPAGE="http://ports.haiku-files.org/milestone/Haiku%20Optional%20Packages" +SRC_URI="http://ports.haiku-files.org/raw-attachment/milestone/Haiku%20Optional%20Packages/optionalpackages-0.5.zip" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="sys-devel/gcc >= 4.6.2" + +CHECKSUM_MD5="53c19c702388a49a11f72eb6606b2051" +BUILD { + HPLOC=`haikuporter -t` + mkdir -p ../zips + mkdir -p ../sources + cd optionalpackages-0.5 + export HAIKUVERSION="r1a4" +## + +#w = works +#b = currently broken +#3 = 3rd party optional package, probably needs a .bep file + + + haikuporter -i readline-6.2 + haikuporter -y -d -i libedit-20120601-3.0 + haikuporter -y -d -i autoconf-2.68 + mv ${HPLOC}/sys-devel/autoconf/*.zip ${HPLOC}/packs/optionalpackages/zips + haikuporter -y -d -i automake-1.11.1 + mv ${HPLOC}/sys-devel/automake/*.zip ${HPLOC}/packs/optionalpackages/zips + haikuporter -y -d -i libtool-2.4 + mv ${HPLOC}/sys-devel/libtool/*.zip ${HPLOC}/packs/optionalpackages/zips + haikuporter -y -d -i bison-2.4.3 + mv ${HPLOC}/sys-devel/bison/*.zip ${HPLOC}/packs/optionalpackages/zips + haikuporter -y -d -i m4-1.4.16 + mv ${HPLOC}/sys-devel/m4/*.zip ${HPLOC}/packs/optionalpackages/zips + haikuporter -y -d -i flex-2.5.35 + mv ${HPLOC}/sys-devel/flex/*.zip ${HPLOC}/packs/optionalpackages/zips + haikuporter -y -d -i jam-2.5 + mv ${HPLOC}/sys-devel/jam/*.zip ${HPLOC}/packs/optionalpackages/zips + haikuporter -y -d -i mkdepend-1.7 + mv ${HPLOC}/haiku-apps/mkdepend/*.zip ${HPLOC}/packs/optionalpackages/zips + haikuporter -y -d -i make-3.82 + mv ${HPLOC}/sys-devel/make/*.zip ${HPLOC}/packs/optionalpackages/zips + haikuporter -y -d -i cmake-2.8.5 + mv ${HPLOC}/dev-util/cmake/*.zip ${HPLOC}/packs/optionalpackages/zips + haikuporter -y -d -i libxml2-2.8.0 + mv ${HPLOC}/dev-libs/libxml2/*.zip ${HPLOC}/packs/optionalpackages/zips + haikuporter -y -d -i libxslt-1.1.26 + mv ${HPLOC}/dev-libs/libxslt/*.zip ${HPLOC}/packs/optionalpackages/zips + + haikuporter -y -d -i yasm-1.2.0 + mv ${HPLOC}/dev-lang/yasm/*.zip ${HPLOC}/packs/optionalpackages/zips + haikuporter -y -d -i xz-utils-5.0.1 + mv ${HPLOC}/app-arch/xz-utils/*.zip ${HPLOC}/packs/optionalpackages/zips + haikuporter -y -d -i openssl-1.0.0j + mv ${HPLOC}/dev-libs/openssl/*.zip ${HPLOC}/packs/optionalpackages/zips + haikuporter -y -d -i curl-7.26.0 + mv ${HPLOC}/net-misc/curl/*.zip ${HPLOC}/packs/optionalpackages/zips + haikuporter -y -d -i neon-0.29.6 + mv ${HPLOC}/net-misc/neon/*.zip ${HPLOC}/packs/optionalpackages/zips + haikuporter -y -d -i cvs-1.12.13.1 + mv ${HPLOC}/dev-vcs/cvs/*.zip ${HPLOC}/packs/optionalpackages/zips + haikuporter -y -d -i subversion-1.6.18 + mv ${HPLOC}/dev-vcs/subversion/*.zip ${HPLOC}/packs/optionalpackages/zips + haikuporter -y -d -i git-1.7.10.2 + mv ${HPLOC}/dev-vcs/git/*.zip ${HPLOC}/packs/optionalpackages/zips + haikuporter -y -d -i openssh-6.0p1 + mv ${HPLOC}/net-misc/openssh/*.zip ${HPLOC}/packs/optionalpackages/zips + haikuporter -y -c -d -i mercurial-2.2.2 + mv ${HPLOC}/dev-vcs/mercurial/*.zip ${HPLOC}/packs/optionalpackages/zips + + + haikuporter -y -c -d droid-113 + mv ${HPLOC}/media-fonts/droid/*.zip ${HPLOC}/packs/optionalpackages/zips + haikuporter -y -d -i apr-1.4.6 + mv ${HPLOC}/dev-libs/apr/*.zip ${HPLOC}/packs/optionalpackages/zips + haikuporter -y -d -i apr-util-1.4.1 + mv ${HPLOC}/dev-libs/apr-util/*.zip ${HPLOC}/packs/optionalpackages/zips + haikuporter -y -d -i sqlite-3.7.13 + mv ${HPLOC}/dev-db/sqlite/*.zip ${HPLOC}/packs/optionalpackages/zips + haikuporter -y -d bzr-2.6b1 + mv ${HPLOC}/dev-vcs/bzr/*.zip ${HPLOC}/packs/optionalpackages/zips + haikuporter -y -d -i beae-22 + mv ${HPLOC}/haiku-apps/beae/*.zip ${HPLOC}/packs/optionalpackages/zips + haikuporter -y -d -i burnitnow-39 + mv ${HPLOC}/haiku-apps/burnitnow/*.zip ${HPLOC}/packs/optionalpackages/zips + haikuporter -y -d -i bzip2-1.0.6 + mv ${HPLOC}/app-arch/bzip2/*.zip ${HPLOC}/packs/optionalpackages/zips + haikuporter -y -d -i ccache-3.0.1 + mv ${HPLOC}/dev-util/ccache/*.zip ${HPLOC}/packs/optionalpackages/zips + haikuporter -y -d -i cdrtools-3.01a07 + mv ${HPLOC}/app-cdr/cdrtools/*.zip ${HPLOC}/packs/optionalpackages/zips + haikuporter -y -d -i texinfo-4.13a + mv ${HPLOC}/sys-apps/texinfo/*.zip ${HPLOC}/packs/optionalpackages/zips + haikuporter -y -d -i expat-2.0.1 + mv ${HPLOC}/dev-libs/expat/*.zip ${HPLOC}/packs/optionalpackages/zips + haikuporter -y -d -i fastdep-0.16 + mv ${HPLOC}/dev-util/fastdep/*.zip ${HPLOC}/packs/optionalpackages/zips + haikuporter -y -d -i gettext-0.18.1.1 + mv ${HPLOC}/sys-devel/gettext/*.zip ${HPLOC}/packs/optionalpackages/zips + haikuporter -y -d -i gperf-3.0.4 + mv ${HPLOC}/dev-util/gperf/*.zip ${HPLOC}/packs/optionalpackages/zips + haikuporter -y -d -i groff-1.20.1 + mv ${HPLOC}/sys-apps/groff/*.zip ${HPLOC}/packs/optionalpackages/zips + haikuporter -y -d -i libevent-2.0.10 + mv ${HPLOC}/dev-libs/libevent/*.zip ${HPLOC}/packs/optionalpackages/zips + haikuporter -y -d -i libiconv-1.13.1 + mv ${HPLOC}/dev-libs/libiconv/*.zip ${HPLOC}/packs/optionalpackages/zips + haikuporter -y -d -i man-1.6g + mv ${HPLOC}/sys-apps/man/*.zip ${HPLOC}/packs/optionalpackages/zips + haikuporter -y -d -i nano-2.2.6 + mv ${HPLOC}/app-editors/nano/*.zip ${HPLOC}/packs/optionalpackages/zips + haikuporter -y -d -i p7zip-9.20.1 + mv ${HPLOC}/app-arch/p7zip/*.zip ${HPLOC}/packs/optionalpackages/zips + haikuporter -y -d -i paladin-1.3 + mv ${HPLOC}/haiku-apps/paladin/*.zip ${HPLOC}/packs/optionalpackages/zips + haikuporter -y -d -i libpcre-8.12 + mv ${HPLOC}/dev-libs/libpcre/*.zip ${HPLOC}/packs/optionalpackages/zips + haikuporter -y -d perl-5.10.1 + mv ${HPLOC}/dev-lang/perl/*.zip ${HPLOC}/packs/optionalpackages/zips + haikuporter -y -d -i rsync-3.0.7 + mv ${HPLOC}/net-misc/rsync/*.zip ${HPLOC}/packs/optionalpackages/zips + haikuporter -y -d -i ruby-1.9.1 + mv ${HPLOC}/dev-lang/ruby/*.zip ${HPLOC}/packs/optionalpackages/zips + haikuporter -y -d -i sed-4.2.1 + mv ${HPLOC}/sys-apps/sed/*.zip ${HPLOC}/packs/optionalpackages/zips + haikuporter -y -d -i vision-908 + mv ${HPLOC}/haiku-apps/vision/*.zip ${HPLOC}/packs/optionalpackages/zips + haikuporter -y -d -i vim-7.3 + mv ${HPLOC}/app-editors/vim/*.zip ${HPLOC}/packs/optionalpackages/zips + haikuporter -y -c -d -i transmission-2.21 + mv ${HPLOC}/net-p2p/transmission/*.zip ${HPLOC}/packs/optionalpackages/zips + haikuporter -y -c -d -i pe-2.4.3-600 + mv ${HPLOC}/haiku-apps/pe/*.zip ${HPLOC}/packs/optionalpackages/zips +#b haikuporter -y -d -i opensound-4.2 +#b mv ${HPLOC}/media-sound/opensound/*.zip ${HPLOC}/packs/optionalpackages/zips +#b haikuporter -y -d python-2.7.1 +#b mv ${HPLOC}/dev-lang/python/*.zip ${HPLOC}/packs/optionalpackages/zips + haikuporter -y -d -i tar-1.26 + mv ${HPLOC}/app-arch/tar/*.zip ${HPLOC}/packs/optionalpackages/zips +#b haikuporter -y -d -i netsurf-2.6 +#b mv ${HPLOC}/www-client/netsurf/*.zip ${HPLOC}/packs/optionalpackages/zips +#b haikuporter -y -d -i clockwerk-78 +#b mv ${HPLOC}/haiku-apps/clockwerk/*.zip ${HPLOC}/packs/optionalpackages/zips + +#3 haikuporter -y -d -i ABI-compliance-checker-1.12 +#3 haikuporter -y -d -i Beam-1.2alpha +#3 haikuporter -y -d -i bebook_20081026 +#3 haikuporter -y -d -i BeHappy-1.0.6 +#3 haikuporter -y -d -i BePDF-1.1.1b3 +#3 mv ${HPLOC}/haiku-apps/bepdf/*.zip ${HPLOC}/packs/optionalpackages/zips +#3 haikuporter -y -d -i BeZillaBrowser-2.0.0.22pre +#3 haikuporter -y -d -i friss-0.5pre7 +#3 haikuporter -y -d -i KeymapSwitcher-1.2.5 +#3 haikuporter -y -d -i links +#3 haikuporter -y -d -i ocaml-3.11.1 +#3 haikuporter -y -d -i camlp5-5.12 +#3 haikuporter -y -d -i TimGMSoundFont +#3 haikuporter -y -d -i TrackerNewTemplates +#3 haikuporter -y -d -i WonderBrush-2.1.2 +#3 haikuporter -y -c -d -i WebPositive +#3 haikuporter -y -d -i KeymapSwitcher-1.2.5 +#3 haikuporter -y -d -i clucene-0.9.21 +#3 haikuporter -y -d -i BeZillaBrowser-2.0.0.22pre + +} + +INSTALL { + cd . + echo "Done. Zipped files are in the zips directory." + echo "GPL/LGPL sources are in the source directory." + #No need to install these, + #just put all the zips into the zips directory for uploading + #For GPL/LGPL software also create the patches sources .xz archives +} + +#LICENSE="" +#COPYRIGHT="" diff --git a/sci-libs/cln/cln-1.3.2.bep b/sci-libs/cln/cln-1.3.2.bep new file mode 100644 index 000000000..f1cd7d57a --- /dev/null +++ b/sci-libs/cln/cln-1.3.2.bep @@ -0,0 +1,25 @@ +DESCRIPTION="CLN is a library for efficient computations with all kinds of numbers in arbitrary precision." +HOMEPAGE="http://www.ginac.de/CLN/" +SRC_URI="http://www.ginac.de/CLN/cln-1.3.2.tar.bz2" +CHECKSUM_MD5="d897cce94d9c34d106575ed4ec865d71" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="" +MESSAGE="This port only builds with gcc4." +BUILD { + cd cln-1.3.2 + autoreconf -i + ./configure --prefix=`finddir B_COMMON_DIRECTORY` \ + --datarootdir=`finddir B_COMMON_DOCUMENTATION_DIRECTORY` + make +} + +INSTALL { + cd cln-1.3.2 + make install +} + +LICENSE="GNU GPL v2" +COPYRIGHT="Bruno Haible 1988-2008 + Alexei Sheplyakov 2008 + Richard Kreckel 2000-2009" diff --git a/sci-libs/cln/patches/cln-1.3.2.patch b/sci-libs/cln/patches/cln-1.3.2.patch new file mode 100644 index 000000000..7790747ed --- /dev/null +++ b/sci-libs/cln/patches/cln-1.3.2.patch @@ -0,0 +1,21 @@ +diff -Naur cln-1.3.2/src/base/random/cl_random_from.cc cln-1.3.2-haiku/src/base/random/cl_random_from.cc +--- cln-1.3.2/src/base/random/cl_random_from.cc 2009-05-10 22:32:30.056360960 +0200 ++++ cln-1.3.2-haiku/src/base/random/cl_random_from.cc 2012-06-14 20:16:49.920387584 +0200 +@@ -18,7 +18,7 @@ + #include "base/cl_low.h" + #include // declares rand() + +-#if defined(unix) || defined(__unix) || defined(__FreeBSD__) || defined(__NetBSD__) || defined(__DragonFly__) || defined(_AIX) || defined(sinix) || (defined(__MACH__) && defined(__APPLE__)) || (defined(__CYGWIN__) && defined(__GNUC__)) || defined(__BEOS__) ++#if defined(unix) || defined(__unix) || defined(__FreeBSD__) || defined(__NetBSD__) || defined(__DragonFly__) || defined(_AIX) || defined(sinix) || (defined(__MACH__) && defined(__APPLE__)) || (defined(__CYGWIN__) && defined(__GNUC__)) || defined(__BEOS__) || defined(__HAIKU__) + + #include + #include // declares getpid() +@@ -86,7 +86,7 @@ + { + var uint32 seed_hi; + var uint32 seed_lo; +-#if defined(unix) || defined(__unix) || defined(__FreeBSD__) || defined(__NetBSD__) || defined(__DragonFly__) || defined(_AIX) || defined(sinix) || (defined(__MACH__) && defined(__APPLE__)) || (defined(__CYGWIN__) && defined(__GNUC__)) || defined(__BEOS__) ++#if defined(unix) || defined(__unix) || defined(__FreeBSD__) || defined(__NetBSD__) || defined(__DragonFly__) || defined(_AIX) || defined(sinix) || (defined(__MACH__) && defined(__APPLE__)) || (defined(__CYGWIN__) && defined(__GNUC__)) || defined(__BEOS__) || defined(__HAIKU__) + seed_lo = get_seed(); + seed_hi = (rand() // zufällige 31 Bit (bei UNIX_BSD) bzw. 16 Bit (bei UNIX_SYSV) + << 8) ^ (uintL)(getpid()); // ca. 8 Bit von der Process ID diff --git a/sci-libs/fftw/fftw-3.2.2.bep b/sci-libs/fftw/fftw-3.2.2.bep index bc9f2bd5e..abd185311 100644 --- a/sci-libs/fftw/fftw-3.2.2.bep +++ b/sci-libs/fftw/fftw-3.2.2.bep @@ -7,7 +7,7 @@ STATUS_HAIKU="untested" DEPEND="" BUILD { cd fftw-3.2.2 - ./configure --prefix=/boot/common + ./configure --prefix=`finddir B_COMMON_DIRECTORY` make } diff --git a/sci-libs/gdal/gdal-1.7.2.bep b/sci-libs/gdal/gdal-1.7.2.bep index 3f4198de2..5e0bbc0c8 100644 --- a/sci-libs/gdal/gdal-1.7.2.bep +++ b/sci-libs/gdal/gdal-1.7.2.bep @@ -10,7 +10,7 @@ BUILD { cd gdal-1.7.2 libtoolize --force --copy --install ./autogen.sh - ./configure --prefix=/boot/common + ./configure --prefix=`finddir B_COMMON_DIRECTORY` make } diff --git a/sci-libs/gsl/gsl-1.13.bep b/sci-libs/gsl/gsl-1.13.bep index 8c3a834e7..c388c8e58 100644 --- a/sci-libs/gsl/gsl-1.13.bep +++ b/sci-libs/gsl/gsl-1.13.bep @@ -11,7 +11,7 @@ BUILD { aclocal autoconf automake - ./configure --prefix=/boot/common + ./configure --prefix=`finddir B_COMMON_DIRECTORY` make } diff --git a/sci-libs/gsl/gsl-1.14.bep b/sci-libs/gsl/gsl-1.14.bep index 079cd9924..93efa709b 100644 --- a/sci-libs/gsl/gsl-1.14.bep +++ b/sci-libs/gsl/gsl-1.14.bep @@ -11,7 +11,10 @@ BUILD { aclocal autoconf automake - ./configure --prefix=/boot/common + ./configure --prefix=`finddir B_COMMON_DIRECTORY` \ + --datarootdir=`finddir B_COMMON_DATA_DIRECTORY` \ + --infodir=`finddir B_COMMON_DOCUMENTATION_DIRECTORY`/info \ + --mandir=`finddir B_COMMON_DOCUMENTATION_DIRECTORY`/man make } @@ -19,3 +22,6 @@ INSTALL { cd gsl-1.14 make install } + +LICENSE="GNU GPL v3" +COPYRIGHT="1996-2000, 2007 Brian Gough, Gerard Jungman, Mark Galassi, James Theiler, Reid Priedhorsky, Jim Davies and others. diff --git a/sci-physics/bullet/bullet-2.78.bep b/sci-physics/bullet/bullet-2.78.bep new file mode 100644 index 000000000..b49bedd4f --- /dev/null +++ b/sci-physics/bullet/bullet-2.78.bep @@ -0,0 +1,21 @@ +DESCRIPTION="Continuous Collision Detection and Physics Library" +HOMEPAGE="http://www.bulletphysics.com/" +SRC_URI="http://bullet.googlecode.com/files/bullet-2.78-r2387.tgz" +CHECKSUM_MD5="3611456232f1c01dea8094213382d0b3" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="dev-util/cmake >= 2.8.3" + +BUILD { + cd bullet-2.78 + cmake -DBUILD_DEMOS=ON . + make +} + +INSTALL { + cd bullet-2.78 + make install +} + +LICENSE="Zlib" +COPYRIGHT="2003-2008 Erwin Coumans" diff --git a/sci-physics/bullet/patches/bullet-2.78.patch b/sci-physics/bullet/patches/bullet-2.78.patch new file mode 100644 index 000000000..0e6ef5389 --- /dev/null +++ b/sci-physics/bullet/patches/bullet-2.78.patch @@ -0,0 +1,45 @@ +diff -Nbaur bullet-2.78/Demos/MultiThreadedDemo/CMakeLists.txt bullet-2.78-haiku/Demos/MultiThreadedDemo/CMakeLists.txt +--- bullet-2.78/Demos/MultiThreadedDemo/CMakeLists.txt 2010-07-08 14:02:38.033554432 -0300 ++++ bullet-2.78-haiku/Demos/MultiThreadedDemo/CMakeLists.txt 2011-04-25 19:30:57.000000000 -0300 +@@ -25,9 +25,9 @@ + MultiThreadedDemo.cpp + MultiThreadedDemo.h + ) +-IF (UNIX) ++IF (UNIX AND NOT BEOS) + TARGET_LINK_LIBRARIES(AppMultiThreadedDemo pthread) +-ENDIF(UNIX) ++ENDIF(UNIX AND NOT BEOS) + + IF(WIN32) + IF (CMAKE_CL_64) +diff -Nbaur bullet-2.78/Demos/OpenCLClothDemo/MiniCL/CMakeLists.txt bullet-2.78-haiku/Demos/OpenCLClothDemo/MiniCL/CMakeLists.txt +--- bullet-2.78/Demos/OpenCLClothDemo/MiniCL/CMakeLists.txt 2010-09-21 20:09:18.033292288 -0300 ++++ bullet-2.78-haiku/Demos/OpenCLClothDemo/MiniCL/CMakeLists.txt 2011-04-25 19:33:03.000000000 -0300 +@@ -81,9 +81,9 @@ + COMMAND ${CMAKE_COMMAND} ARGS -E copy_if_different ${BULLET_PHYSICS_SOURCE_DIR}/Demos/OpenCLClothDemo/atiFlag.bmp ${CMAKE_CURRENT_BINARY_DIR} + ) + ENDIF() +-IF (UNIX) ++IF (UNIX AND NOT BEOS) + TARGET_LINK_LIBRARIES(AppOpenCLClothDemo_Mini pthread) +-ENDIF(UNIX) ++ENDIF(UNIX AND NOT BEOS) + + + IF (INTERNAL_ADD_POSTFIX_EXECUTABLE_NAMES) +diff -Nbaur bullet-2.78/Demos/ThreadingDemo/CMakeLists.txt bullet-2.78-haiku/Demos/ThreadingDemo/CMakeLists.txt +--- bullet-2.78/Demos/ThreadingDemo/CMakeLists.txt 2010-10-06 20:07:00.014155776 -0300 ++++ bullet-2.78-haiku/Demos/ThreadingDemo/CMakeLists.txt 2011-04-25 19:32:00.000000000 -0300 +@@ -34,9 +34,9 @@ + ) + ENDIF() + +-IF (UNIX) ++IF (UNIX AND NOT BEOS) + TARGET_LINK_LIBRARIES(AppThreadingDemo pthread) +-ENDIF(UNIX) ++ENDIF(UNIX AND NOT BEOS) + + IF (INTERNAL_ADD_POSTFIX_EXECUTABLE_NAMES) + SET_TARGET_PROPERTIES(AppThreadingDemo PROPERTIES DEBUG_POSTFIX "_Debug") diff --git a/sys-apps/coreutils/coreutils-8.5.bep b/sys-apps/coreutils/coreutils-8.5.bep index 4ab1b3322..b01781390 100644 --- a/sys-apps/coreutils/coreutils-8.5.bep +++ b/sys-apps/coreutils/coreutils-8.5.bep @@ -9,7 +9,9 @@ BUILD { cd coreutils-8.5 MANDIR=`finddir B_COMMON_DOCUMENTATION_DIRECTORY`/man ./configure --prefix=`finddir B_COMMON_DIRECTORY` \ - --mandir=${MANDIR} + --datarootdir=`finddir B_COMMON_DATA_DIRECTORY` \ + --infodir=`finddir B_COMMON_DOCUMENTATION`/info \ + --mandir=`finddir B_COMMON_DOCUMENTATION`/man make } diff --git a/sys-apps/dbus/dbus-1.6.8.bep b/sys-apps/dbus/dbus-1.6.8.bep new file mode 100644 index 000000000..6eafcc6a8 --- /dev/null +++ b/sys-apps/dbus/dbus-1.6.8.bep @@ -0,0 +1,29 @@ +DESCRIPTION="dbus message bus system" +HOMEPAGE="http://www.freedesktop.org/wiki/Software/dbus" +SRC_URI="http://dbus.freedesktop.org/releases/dbus/dbus-1.6.8.tar.gz" +CHECKSUM_MD5="3bf059c7dd5eda5f539a1b7cfe7a14a2" +REVISION="1" +STATUS_HAIKU="untested" +DEPEND="" +MESSAGE="This port only builds with gcc4. Use 'setgcc gcc4' before building." + +BUILD { + cd dbus-1.6.8 + ./configure --prefix="$(finddir B_COMMON_DIRECTORY)" \ + --datarootdir="$(finddir B_COMMON_DATA_DIRECTORY)" \ + --mandir="$(finddir B_COMMON_DOCUMENTATION_DIRECTORY)/man" + make +} + +INSTALL { + cd dbus-1.6.8 + make install +} + +TEST { + cd dbus-1.6.8 + make check +} + +LICENSE="GNU GPL v2" + diff --git a/sys-apps/dbus/patches/dbus-1.6.8.patch b/sys-apps/dbus/patches/dbus-1.6.8.patch new file mode 100644 index 000000000..d63b40a1b --- /dev/null +++ b/sys-apps/dbus/patches/dbus-1.6.8.patch @@ -0,0 +1,11 @@ +--- dbus-1.6.8/dbus/sd-daemon.c 2011-07-13 20:42:21.040108032 +0000 ++++ dbus-1.6.8-haiku/dbus/sd-daemon.c 2013-02-12 18:57:28.067108864 +0000 +@@ -32,7 +32,7 @@ + #include + #include + #include +-#include ++#include + #include + #include + #include diff --git a/sys-apps/diffutils/diffutils-2.9.bep b/sys-apps/diffutils/diffutils-2.9.bep index 7d655c9b4..bf83c0540 100644 --- a/sys-apps/diffutils/diffutils-2.9.bep +++ b/sys-apps/diffutils/diffutils-2.9.bep @@ -7,7 +7,7 @@ STATUS_HAIKU="stable" DEPEND="" BUILD { cd diffutils-2.9 - ./configure --prefix=/boot/common + ./configure --prefix=`finddir B_COMMON_DIRECTORY` make } diff --git a/sys-apps/diffutils/diffutils-3.2.bep b/sys-apps/diffutils/diffutils-3.2.bep new file mode 100644 index 000000000..9e9e9c088 --- /dev/null +++ b/sys-apps/diffutils/diffutils-3.2.bep @@ -0,0 +1,28 @@ +DESCRIPTION="Tools to make diffs and compare files." +HOMEPAGE="http://www.gnu.org/software/diffutils/" +SRC_URI="http://ftp.gnu.org/pub/gnu/diffutils/diffutils-3.2.tar.gz" +CHECKSUM_MD5="22e4deef5d8949a727b159d6bc65c1cc" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="" +BUILD { + cd diffutils-3.2 + ./configure --prefix="$(finddir B_COMMON_DIRECTORY)" \ + --datarootdir="$(finddir B_COMMON_DATA_DIRECTORY)" \ + --mandir="$(finddir B_COMMON_DOCUMENTATION_DIRECTORY)/man" \ + --infodir="$(finddir B_COMMON_DOCUMENTATION_DIRECTORY)/info" + make +} + +INSTALL { + cd diffutils-3.2 + make install +} + +TEST { + cd diffutils-3.2 + make check +} + +LICENSE="GNU GPL v3" +COPYRIGHT="1992-2011 Free Software Foundation, Inc." diff --git a/sys-apps/diffutils/patches/diffutils-3.2.patch b/sys-apps/diffutils/patches/diffutils-3.2.patch new file mode 100644 index 000000000..e56750b82 --- /dev/null +++ b/sys-apps/diffutils/patches/diffutils-3.2.patch @@ -0,0 +1,58 @@ +diff -urN diffutils-3.2/src/dir.c diffutils-3.2-c89/src/dir.c +--- diffutils-3.2/src/dir.c 2011-08-14 15:58:59.020709376 +0000 ++++ diffutils-3.2-c89/src/dir.c 2012-09-14 16:59:18.000000000 +0000 +@@ -202,6 +202,7 @@ + struct dirdata dirdata[2]; + int volatile val = EXIT_SUCCESS; + int i; ++ int v1; + + if ((cmp->file[0].desc == -1 || dir_loop (cmp, 0)) + && (cmp->file[1].desc == -1 || dir_loop (cmp, 1))) +@@ -254,6 +255,7 @@ + pretend the "next name" in that dir is very large. */ + int nameorder = (!*names[0] ? 1 : !*names[1] ? -1 + : compare_names (*names[0], *names[1])); ++ int v1; + + /* Prefer a file_name_cmp match if available. This algorithm is + O(N**2), where N is the number of names in a directory +@@ -289,7 +291,7 @@ + } + } + +- int v1 = (*handle_file) (cmp, ++ v1 = (*handle_file) (cmp, + 0 < nameorder ? 0 : *names[0]++, + nameorder < 0 ? 0 : *names[1]++); + if (val < v1) +@@ -342,7 +344,8 @@ + match = file; /* longjmp may mess up MATCH. */ + else + { +- for (char const **p = dirdata.names; *p; p++) ++ char const **p; ++ for (p = dirdata.names; *p; p++) + if (compare_names (*p, file) == 0) + { + if (file_name_cmp (*p, file) == 0) +diff -urN diffutils-3.2/src/io.c diffutils-3.2-c89/src/io.c +--- diffutils-3.2/src/io.c 2011-08-15 05:24:38.019136512 +0000 ++++ diffutils-3.2-c89/src/io.c 2012-09-14 17:02:59.000000000 +0000 +@@ -258,6 +258,7 @@ + case IGNORE_TRAILING_SPACE: + { + size_t column = 0; ++ size_t repetitions = 1; + while ((c = *p++) != '\n') + { + if (ig_white_space & IGNORE_TRAILING_SPACE +@@ -274,8 +275,6 @@ + while (isspace (c1)); + } + +- size_t repetitions = 1; +- + if (ig_white_space & IGNORE_TAB_EXPANSION) + switch (c) + { diff --git a/sys-apps/dmidecode/dmidecode-2.11.bep b/sys-apps/dmidecode/dmidecode-2.11.bep new file mode 100644 index 000000000..1810d2489 --- /dev/null +++ b/sys-apps/dmidecode/dmidecode-2.11.bep @@ -0,0 +1,23 @@ +DESCRIPTION="Reports information about your system's hardware as described in your system BIOS according to the SMBIOS/DMI standard" +HOMEPAGE="http://www.nongnu.org/dmidecode/" +SRC_URI="http://download.savannah.gnu.org/releases/dmidecode/dmidecode-2.11.tar.gz" +CHECKSUM_MD5="9fddbbc3e330bee5950b8b5d424a57cb" +REVISION="2" +STATUS_HAIKU="stable" +DEPEND="" +BUILD { + cd dmidecode-2.11 + make +} + +INSTALL { + cd dmidecode-2.11 + make install prefix=`finddir B_COMMON_DIRECTORY` \ + sbindir=`finddir B_COMMON_BIN_DIRECTORY` \ + DESTDIR="$DESTDIR" \ + mandir=`finddir B_COMMON_DOCUMENTATION_DIRECTORY`/man \ + docdir=`finddir B_COMMON_DOCUMENTATION_DIRECTORY`/doc/dmidecode +} + +LICENSE="GNU GPL v2" +COPYRIGHT="2000-2002 Alan Cox, 2002-2010 Jean Delvare" diff --git a/sys-apps/dtc/dtc-1.3.0-git.bep b/sys-apps/dtc/dtc-1.3.0-git.bep new file mode 100644 index 000000000..08edd3315 --- /dev/null +++ b/sys-apps/dtc/dtc-1.3.0-git.bep @@ -0,0 +1,27 @@ +DESCRIPTION="The Device Tree Compiler" +HOMEPAGE="http://git.jdl.com/gitweb/?p=dtc.git;a=summary" +SRC_URI="git://git.jdl.com/software/dtc.git" +REVISION="1" +STATUS_HAIKU="untested" +DEPEND="sys-devel/bison >= 2.5" +# TODO: test gcc2 build +MESSAGE="This port only builds with gcc4. Use 'setgcc gcc4' before building." +#CHECKSUM_MD5="" +BUILD { + cd dtc-1.3.0-git + make PREFIX=`finddir B_COMMON_DIRECTORY` +} + +INSTALL { + cd dtc-1.3.0-git + make install PREFIX=`finddir B_COMMON_DIRECTORY` +} + +TEST { + cd dtc-1.3.0-git + make tests +} + +LICENSE="GNU GPL v2" +COPYRIGHT="2005 David Gibson, IBM Corporation" + diff --git a/sys-apps/dtc/patches/dtc-1.3.0-git.patch b/sys-apps/dtc/patches/dtc-1.3.0-git.patch new file mode 100644 index 000000000..64b4229f5 --- /dev/null +++ b/sys-apps/dtc/patches/dtc-1.3.0-git.patch @@ -0,0 +1,66 @@ +diff --git a/Makefile dtc-1.3.0-git/Makefile +index 1169e6c..60077a5 100644 +--- a/Makefile ++++ dtc-1.3.0-git/Makefile +@@ -41,6 +41,15 @@ SHAREDLIB_EXT=so + SHAREDLIB_LINK_OPTIONS=-shared -Wl,--version-script=$(LIBFDT_version) -Wl,-soname, + endif + ++ifeq ($(HOSTOS),haiku) ++INSTALL = /bin/install ++endif ++ ++ifneq ($(HOSTOS),haiku) ++LIBDL = -ldl ++endif ++ ++ + # + # Overall rules + # +diff --git a/tests/Makefile.tests dtc-1.3.0-git/tests/Makefile.tests +index 1795466..97b6131 100644 +--- a/tests/Makefile.tests ++++ dtc-1.3.0-git/tests/Makefile.tests +@@ -50,7 +50,7 @@ $(LIB_TESTS): %: $(TESTS_PREFIX)testutils.o util.o $(LIBFDT_archive) + + $(DL_LIB_TESTS): %: %.o $(TESTS_PREFIX)testutils.o util.o $(LIBFDT_archive) + @$(VECHO) LD [libdl] $@ +- $(LINK.c) -o $@ $^ -ldl ++ $(LINK.c) -o $@ $^ $(LIBDL) + + $(LIBTREE_TESTS): %: $(TESTS_PREFIX)testutils.o $(TESTS_PREFIX)trees.o \ + util.o $(LIBFDT_archive) +diff --git a/tests/testutils.c dtc-1.3.0-git/tests/testutils.c +index f185133..66b34df 100644 +--- a/tests/testutils.c ++++ dtc-1.3.0-git/tests/testutils.c +@@ -45,16 +45,15 @@ static void sigint_handler(int signum, siginfo_t *si, void *uc) + { + cleanup(); + fprintf(stderr, "%s: %s (pid=%d)\n", test_name, +- strsignal(signum), getpid()); ++ strsignal(signum), (int)getpid()); + exit(RC_BUG); + } + + void test_init(int argc, char *argv[]) + { + int err; +- struct sigaction sa_int = { +- .sa_sigaction = sigint_handler, +- }; ++ struct sigaction sa_int = { }; ++ sa_int.sa_sigaction = sigint_handler; + + test_name = argv[0]; + +@@ -66,7 +65,7 @@ void test_init(int argc, char *argv[]) + verbose_test = 0; + + verbose_printf("Starting testcase \"%s\", pid %d\n", +- test_name, getpid()); ++ test_name, (int)getpid()); + } + + void check_mem_rsv(void *fdt, int n, uint64_t addr, uint64_t size) diff --git a/sys-apps/ed/ed-1.4.bep b/sys-apps/ed/ed-1.4.bep index 33ae0aff0..5284c8e06 100644 --- a/sys-apps/ed/ed-1.4.bep +++ b/sys-apps/ed/ed-1.4.bep @@ -7,7 +7,7 @@ STATUS_HAIKU="stable" DEPEND="" BUILD { cd ed-1.4 - ./configure --prefix=/boot/common + ./configure --prefix=`finddir B_COMMON_DIRECTORY` make } diff --git a/sys-apps/file/file-5.04.bep b/sys-apps/file/file-5.04.bep index ec95c8be7..ebeca7087 100644 --- a/sys-apps/file/file-5.04.bep +++ b/sys-apps/file/file-5.04.bep @@ -8,7 +8,7 @@ DEPEND="" BUILD { cd file-5.04 autoreconf -fvi - ./configure --prefix=/boot/common + ./configure --prefix=`finddir B_COMMON_DIRECTORY` make } diff --git a/sys-apps/file/file-5.11.bep b/sys-apps/file/file-5.11.bep new file mode 100644 index 000000000..d2af82c38 --- /dev/null +++ b/sys-apps/file/file-5.11.bep @@ -0,0 +1,22 @@ +DESCRIPTION="Identify a file's format by scanning binary data for patterns" +HOMEPAGE="ftp://ftp.astron.com/pub/file/" +SRC_URI="ftp://ftp.astron.com/pub/file/file-5.11.tar.gz" +CHECKSUM_MD5="16a407bd66d6c7a832f3a5c0d609c27b" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="" +BUILD { + cd file-5.11 + autoreconf -fvi + ./configure --prefix="$(finddir B_COMMON_DIRECTORY)" \ + --mandir="$(finddir B_COMMON_DOCUMENTATION_DIRECTORY)/man" \ + --datadir="$(finddir B_COMMON_DATA_DIRECTORY)" + make +} + +INSTALL { + cd file-5.11 + make install +} +LICENSE="BSD (2-clause)" +COPYRIGHT="1986-1999 Ian F. Darwin" diff --git a/sys-apps/file/patches/file-5.11.patch b/sys-apps/file/patches/file-5.11.patch new file mode 100644 index 000000000..99a60b72f --- /dev/null +++ b/sys-apps/file/patches/file-5.11.patch @@ -0,0 +1,20 @@ +diff -up file-5.11/configure.ac.orig file-5.11/configure.ac +--- file-5.11/configure.ac.orig 2012-02-21 12:16:29.015728640 -0700 ++++ file-5.11/configure.ac 2012-05-02 22:53:14.077594624 -0600 +@@ -142,14 +142,14 @@ else + WARNINGS="-Wall -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith \ + -Wmissing-declarations -Wredundant-decls -Wnested-externs \ + -Wsign-compare -Wreturn-type -Wswitch -Wshadow \ +- -Wcast-qual -Wwrite-strings -Wextra -Wunused-parameter -Wformat=2" ++ -Wcast-qual -Wwrite-strings" + fi], [ + if test "$GCC" = yes; then + AC_MSG_RESULT(yes) + WARNINGS="-Wall -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith \ + -Wmissing-declarations -Wredundant-decls -Wnested-externs \ + -Wsign-compare -Wreturn-type -Wswitch -Wshadow \ +- -Wcast-qual -Wwrite-strings -Wextra -Wunused-parameter -Wformat=2" ++ -Wcast-qual -Wwrite-strings" + else + WARNINGS= + AC_MSG_RESULT(no) diff --git a/sys-apps/gawk/gawk-3.1.8.bep b/sys-apps/gawk/gawk-3.1.8.bep index a79cd3030..b3c8cdc4e 100644 --- a/sys-apps/gawk/gawk-3.1.8.bep +++ b/sys-apps/gawk/gawk-3.1.8.bep @@ -8,10 +8,10 @@ CHECKSUM_MD5="52b41c6c4418b3226dfb8f82076193bb" BUILD { cd gawk-3.1.8 libtoolize --force --copy --install - - MANDIR=`finddir B_COMMON_DOCUMENTATION_DIRECTORY`/man ./configure --prefix=`finddir B_COMMON_DIRECTORY` \ - --mandir=${MANDIR} + --datarootdir=`finddir B_COMMON_DATA_DIRECTORY` \ + --libexecdir=`finddir B_COMMON_BIN_DIRECTORY` \ + --mandir=`finddir B_COMMON_DOCUMENTATION_DIRECTORY`/man make } diff --git a/sys-apps/gawk/gawk-4.0.1.bep b/sys-apps/gawk/gawk-4.0.1.bep new file mode 100644 index 000000000..798af1565 --- /dev/null +++ b/sys-apps/gawk/gawk-4.0.1.bep @@ -0,0 +1,23 @@ +DESCRIPTION="GNU awk" +HOMEPAGE="http://www.gnu.org/software/coreutils" +SRC_URI="http://ftp.gnu.org/gnu/gawk/gawk-4.0.1.tar.gz" +CHECKSUM_MD5="bab2bda483e9f32be65b43b8dab39fa5" +STATUS_HAIKU="stable" +REVISION="1" +BUILD { + cd gawk-4.0.1 + libtoolize --force --copy --install + ./configure --prefix=`finddir B_COMMON_DIRECTORY` \ + --datarootdir=`finddir B_COMMON_DATA_DIRECTORY` \ + --libexecdir=`finddir B_COMMON_LIB_DIRECTORY` \ + --mandir=`finddir B_COMMON_DOCUMENTATION_DIRECTORY`/man + make +} + +INSTALL { + cd gawk-4.0.1 + make install +} + +LICENSE="GNU GPL v3" +COPYRIGHT="2012 Free Software Foundation, Inc." \ No newline at end of file diff --git a/sys-apps/grep/grep-2.12.bep b/sys-apps/grep/grep-2.12.bep new file mode 100644 index 000000000..15fa46273 --- /dev/null +++ b/sys-apps/grep/grep-2.12.bep @@ -0,0 +1,32 @@ +DESCRIPTION="GNU regular expression matcher" +HOMEPAGE="http://www.gnu.org/software/grep/" +SRC_URI="http://ftpmirror.gnu.org/grep/grep-2.12.tar.xz" +CHECKSUM_MD5="8d2f0346d08b13c18afb81f0e8aa1e2f" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="sys-devel/gettext >= 0.17 + sys-devel/libiconv >= 1.13.1" +BUILD { + cd grep-2.12 + libtoolize --force --copy --install + aclocal -I m4 + autoconf + ./configure --prefix=`finddir B_COMMON_DIRECTORY` \ + --datarootdir=`finddir B_COMMON_DATA_DIRECTORY` \ + --infodir=`finddir B_COMMON_DOCUMENTATION_DIRECTORY`/info \ + --mandir=`finddir B_COMMON_DOCUMENTATION_DIRECTORY`/man + make +} + +INSTALL { + cd grep-2.12 + make install +} + +TEST { + cd grep-2.12 + make check +} + +LICENSE="GNU GPL v3" +COPYRIGHT="1992-2012 Free Software Foundation, Inc." diff --git a/sys-apps/grep/grep-2.14-bz2.bep b/sys-apps/grep/grep-2.14-bz2.bep new file mode 100644 index 000000000..fafecfa4a --- /dev/null +++ b/sys-apps/grep/grep-2.14-bz2.bep @@ -0,0 +1,27 @@ +DESCRIPTION="GNU regular expression matcher" +HOMEPAGE="http://www.gnu.org/software/grep/" +SRC_URI="http://ports-space.haiku-files.org/source/grep-2.14.tar.bz2" +CHECKSUM_MD5="db55b9fc67d8c0895f3c73e94e2aebe3" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="sys-devel/gettext >= 0.17 + sys-devel/libiconv >= 1.13.1" +BUILD { + cd grep-2.14 + + libtoolize --force --copy --install + aclocal -I m4 + autoconf + ./configure --prefix=`finddir B_COMMON_DIRECTORY` \ + --datarootdir=`finddir B_COMMON_DATA_DIRECTORY` \ + --infodir=`finddir B_COMMON_DOCUMENTATION_DIRECTORY`/info \ + --mandir=`finddir B_COMMON_DOCUMENTATION_DIRECTORY`/man + make +} + +INSTALL { + cd grep-2.14 + make install +} +LICENSE="GNU GPL v3" +COPYRIGHT="1992-2012 Free Software Foundation, Inc." diff --git a/sys-apps/grep/grep-2.14.bep b/sys-apps/grep/grep-2.14.bep new file mode 100644 index 000000000..cde4042d8 --- /dev/null +++ b/sys-apps/grep/grep-2.14.bep @@ -0,0 +1,34 @@ +DESCRIPTION="GNU regular expression matcher" +HOMEPAGE="http://www.gnu.org/software/grep/" +SRC_URI="http://ftp.gnu.org/pub/gnu/grep/grep-2.14.tar.xz" +CHECKSUM_MD5="d4a3f03849d1e17ce56ab76aa5a24cab" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="sys-devel/gettext >= 0.17 + sys-devel/libiconv >= 1.13.1" + +BUILD { + cd grep-2.14 + libtoolize --force --copy --install + aclocal -I m4 + autoconf + ./configure --prefix=`finddir B_COMMON_DIRECTORY` \ + --datarootdir=`finddir B_COMMON_DATA_DIRECTORY` \ + --infodir=`finddir B_COMMON_DOCUMENTATION_DIRECTORY`/info \ + --mandir=`finddir B_COMMON_DOCUMENTATION_DIRECTORY`/man \ + --disable-perl-regexp + make +} + +INSTALL { + cd grep-2.14 + make install +} + +TEST { + cd grep-2.14 + make check +} + +LICENSE="GNU GPL v3" +COPYRIGHT="1992-2012 Free Software Foundation, Inc." diff --git a/sys-apps/grep/grep-2.5.4.bep b/sys-apps/grep/grep-2.5.4.bep index 5032656dc..6b60cb53b 100644 --- a/sys-apps/grep/grep-2.5.4.bep +++ b/sys-apps/grep/grep-2.5.4.bep @@ -8,7 +8,7 @@ DEPEND="" BUILD { cd grep-2.5.4 libtoolize --force --copy --install - ./configure --prefix=/boot/common + ./configure --prefix=`finddir B_COMMON_DIRECTORY` make } @@ -16,5 +16,11 @@ INSTALL { cd grep-2.5.4 make install } + +TEST { + cd grep-2.5.4 + make check +} + LICENSE="GNU GPL v3" COPYRIGHT="1992-2010 Free Software Foundation, Inc." diff --git a/sys-apps/grep/grep-2.6.1.bep b/sys-apps/grep/grep-2.6.1.bep new file mode 100644 index 000000000..ec6be1fb0 --- /dev/null +++ b/sys-apps/grep/grep-2.6.1.bep @@ -0,0 +1,26 @@ +DESCRIPTION="GNU regular expression matcher" +HOMEPAGE="http://www.gnu.org/software/grep/" +SRC_URI="http://ftp.gnu.org/gnu/grep/grep-2.6.1.tar.gz" +CHECKSUM_MD5="8d1496da11029112a4d0986cbf09e26f" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="" +BUILD { + cd grep-2.6.1 + libtoolize --force --copy --install + ./configure --prefix=`finddir B_COMMON_DIRECTORY` + make +} + +INSTALL { + cd grep-2.6.1 + make install +} + +TEST { + cd grep-2.6.1 + make check +} + +LICENSE="GNU GPL v3" +COPYRIGHT="1992-2010 Free Software Foundation, Inc." diff --git a/sys-apps/grep/grep-2.6.3.bep b/sys-apps/grep/grep-2.6.3.bep new file mode 100644 index 000000000..dfbd623d2 --- /dev/null +++ b/sys-apps/grep/grep-2.6.3.bep @@ -0,0 +1,26 @@ +DESCRIPTION="GNU regular expression matcher" +HOMEPAGE="http://www.gnu.org/software/grep/" +SRC_URI="http://ftp.gnu.org/gnu/grep/grep-2.6.3.tar.gz" +CHECKSUM_MD5="3095b57837b312f087c0680559de7f13" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="" +BUILD { + cd grep-2.6.3 + libtoolize --force --copy --install + ./configure --prefix=`finddir B_COMMON_DIRECTORY` + make +} + +INSTALL { + cd grep-2.6.3 + make install +} + +TEST { + cd grep-2.6.3 + make check +} + +LICENSE="GNU GPL v3" +COPYRIGHT="1992-2010 Free Software Foundation, Inc." diff --git a/sys-apps/grep/grep-2.7.bep b/sys-apps/grep/grep-2.7.bep index cdefe4da3..b3db2cf09 100644 --- a/sys-apps/grep/grep-2.7.bep +++ b/sys-apps/grep/grep-2.7.bep @@ -4,13 +4,17 @@ SRC_URI="ftp://mirrors.kernel.org/gnu/grep/grep-2.7.tar.gz" CHECKSUM_MD5="e848f07e3e79aa7899345d17c7e4115e" REVISION="1" STATUS_HAIKU="stable" -DEPEND="" +DEPEND="sys-devel/gettext >= 0.17 + sys-devel/libiconv >= 1.13.1" BUILD { cd grep-2.7 libtoolize --force --copy --install aclocal -I m4 autoconf - ./configure --prefix=/boot/common + ./configure --prefix=`finddir B_COMMON_DIRECTORY` \ + --datarootdir=`finddir B_COMMON_DATA_DIRECTORY` \ + --infodir=`finddir B_COMMON_DOCUMENTATION_DIRECTORY`/info \ + --mandir=`finddir B_COMMON_DOCUMENTATION_DIRECTORY`/man make } @@ -18,5 +22,11 @@ INSTALL { cd grep-2.7 make install } + +TEST { + cd grep-2.7 + make check +} + LICENSE="GNU GPL v3" COPYRIGHT="1992-2010 Free Software Foundation, Inc." diff --git a/sys-apps/grep/patches/grep-2.12.patch b/sys-apps/grep/patches/grep-2.12.patch new file mode 100644 index 000000000..d0f9ce918 --- /dev/null +++ b/sys-apps/grep/patches/grep-2.12.patch @@ -0,0 +1,14 @@ +diff -up grep-2.12/src/kwsearch.c.orig grep-2.12/src/kwsearch.c +--- grep-2.12/src/kwsearch.c.orig 2012-02-27 02:35:19.015204352 -0700 ++++ grep-2.12/src/kwsearch.c 2012-05-02 22:46:36.262668288 -0600 +@@ -106,8 +106,9 @@ Fexecute (char const *buf, size_t size, + /* The match was a part of multibyte character, advance at least + one byte to ensure no infinite loop happens. */ + mbstate_t s; ++ size_t mb_len; + memset (&s, 0, sizeof s); +- size_t mb_len = mbrlen (mb_start, (buf + size) - (beg + offset), &s); ++ mb_len = mbrlen (mb_start, (buf + size) - (beg + offset), &s); + if (mb_len == (size_t) -2) + goto failure; + beg = mb_start; diff --git a/sys-apps/grep/patches/grep-2.14-gcc2.patch b/sys-apps/grep/patches/grep-2.14-gcc2.patch new file mode 100644 index 000000000..c59075af6 --- /dev/null +++ b/sys-apps/grep/patches/grep-2.14-gcc2.patch @@ -0,0 +1,162 @@ +diff -Naur ./grep-2.14-original/lib/fts.c ./grep-2.14/lib/fts.c +--- ./grep-2.14-original/lib/fts.c 2012-02-26 14:01:23.001310720 +0000 ++++ ./grep-2.14/lib/fts.c 2012-12-26 19:30:29.630718464 +0000 +@@ -1278,6 +1278,7 @@ + nlink_t nlinks; + bool nostat; + size_t len, maxlen, new_len; ++ size_t max_entries; + char *cp; + int dir_fd; + FTSENT *cur = sp->fts_cur; +@@ -1343,8 +1344,8 @@ + function. But when no such function is specified, we can read + entries in batches that are large enough to help us with inode- + sorting, yet not so large that we risk exhausting memory. */ +- size_t max_entries = (sp->fts_compar == NULL +- ? FTS_MAX_READDIR_ENTRIES : SIZE_MAX); ++ max_entries = (sp->fts_compar == NULL ++ ? FTS_MAX_READDIR_ENTRIES : SIZE_MAX); + + /* + * Nlinks is the number of possible entries of type directory in the +diff -Naur ./grep-2.14-original/lib/regcomp.c ./grep-2.14/lib/regcomp.c +--- ./grep-2.14-original/lib/regcomp.c 2012-07-03 12:54:55.058982400 +0000 ++++ ./grep-2.14/lib/regcomp.c 2012-12-26 19:31:31.972029952 +0000 +@@ -952,10 +952,10 @@ + internal_function + init_word_char (re_dfa_t *dfa) + { +- dfa->word_ops_used = 1; + int i = 0; + int j; + int ch = 0; ++ dfa->word_ops_used = 1; + if (BE (dfa->map_notascii == 0, 1)) + { + bitset_word_t bits0 = 0x00000000; +diff -Naur ./grep-2.14-original/src/dfasearch.c ./grep-2.14/src/dfasearch.c +--- ./grep-2.14-original/src/dfasearch.c 2012-08-07 15:01:53.033030144 +0000 ++++ ./grep-2.14/src/dfasearch.c 2012-12-26 19:33:56.699138048 +0000 +@@ -216,6 +216,7 @@ + int backref; + regoff_t start; + size_t len, best_len; ++ size_t off; + struct kwsmatch kwsm; + size_t i, ret_val; + mb_len_map_t *map = NULL; +@@ -418,7 +419,7 @@ + success: + len = end - beg; + success_in_len:; +- size_t off = beg - buf; ++ off = beg - buf; + mb_case_map_apply (map, &off, &len); + *match_size = len; + ret_val = off; +diff -Naur ./grep-2.14-original/src/kwsearch.c ./grep-2.14/src/kwsearch.c +--- ./grep-2.14-original/src/kwsearch.c 2012-06-16 17:08:38.034078720 +0000 ++++ ./grep-2.14/src/kwsearch.c 2012-12-26 19:36:28.265814016 +0000 +@@ -39,9 +39,9 @@ + ? mbtolower (pattern, &psize, &map) + : pattern); + +- kwsinit (&kwset); +- + char const *beg = pat; ++ ++ kwsinit (&kwset); + do + { + char const *lim; +@@ -81,6 +81,7 @@ + { + char const *beg, *try, *end, *mb_start; + size_t len; ++ size_t off; + char eol = eolbyte; + struct kwsmatch kwsmatch; + size_t ret_val; +@@ -100,6 +101,7 @@ + for (mb_start = beg = start_ptr ? start_ptr : buf; beg <= buf + size; beg++) + { + size_t offset = kwsexec (kwset, beg, buf + size - beg, &kwsmatch); ++ size_t mb_len; + if (offset == (size_t) -1) + goto failure; + len = kwsmatch.size[0]; +@@ -110,7 +112,7 @@ + one byte to ensure no infinite loop happens. */ + mbstate_t s; + memset (&s, 0, sizeof s); +- size_t mb_len = mbrlen (mb_start, (buf + size) - (beg + offset), &s); ++ mb_len = mbrlen (mb_start, (buf + size) - (beg + offset), &s); + if (mb_len == (size_t) -2) + goto failure; + beg = mb_start; +@@ -166,7 +168,7 @@ + --beg; + len = end - beg; + success_in_beg_and_len:; +- size_t off = beg - buf; ++ off = beg - buf; + mb_case_map_apply (map, &off, &len); + + *match_size = len; +diff -Naur ./grep-2.14-original/src/main.c ./grep-2.14/src/main.c +--- ./grep-2.14-original/src/main.c 2012-08-06 11:38:32.032768000 +0000 ++++ ./grep-2.14/src/main.c 2012-12-26 19:39:22.737411072 +0000 +@@ -460,6 +460,7 @@ + if (SEEK_HOLE != SEEK_END && usable_st_size (st)) + { + off_t cur = bufsize; ++ off_t hole_start; + if (O_BINARY || fd == STDIN_FILENO) + { + cur = lseek (fd, 0, SEEK_CUR); +@@ -468,7 +469,7 @@ + } + + /* Look for a hole after the current location. */ +- off_t hole_start = lseek (fd, cur, SEEK_HOLE); ++ hole_start = lseek (fd, cur, SEEK_HOLE); + if (0 <= hole_start) + { + if (lseek (fd, cur, SEEK_SET) < 0) +@@ -1860,6 +1861,7 @@ + size_t keycc, oldcc, keyalloc; + int with_filenames; + size_t cc; ++ struct stat tmp_stat; + int opt, status, prepended; + int prev_optind, last_recursive; + intmax_t default_context; +@@ -2223,7 +2225,6 @@ + if (show_help) + usage (EXIT_SUCCESS); + +- struct stat tmp_stat; + if (fstat (STDOUT_FILENO, &tmp_stat) == 0 && S_ISREG (tmp_stat.st_mode)) + out_stat = tmp_stat; + +diff -Naur ./grep-2.14-original/src/searchutils.c ./grep-2.14/src/searchutils.c +--- ./grep-2.14-original/src/searchutils.c 2012-06-16 17:08:38.034340864 +0000 ++++ ./grep-2.14/src/searchutils.c 2012-12-26 19:32:59.044826624 +0000 +@@ -80,6 +80,7 @@ + static mb_len_map_t *len_map; + static size_t outalloc; + size_t outlen, mb_cur_max; ++ size_t ombclen; + mbstate_t is, os; + const char *end; + char *p; +@@ -133,7 +134,7 @@ + else + { + beg += mbclen; +- size_t ombclen = wcrtomb (p, towlower ((wint_t) wc), &os); ++ ombclen = wcrtomb (p, towlower ((wint_t) wc), &os); + *m = mbclen - ombclen; + memset (m + 1, 0, ombclen - 1); + m += ombclen; diff --git a/sys-apps/grep/patches/grep-2.6.1.patch b/sys-apps/grep/patches/grep-2.6.1.patch new file mode 100644 index 000000000..8a08c6439 --- /dev/null +++ b/sys-apps/grep/patches/grep-2.6.1.patch @@ -0,0 +1,20 @@ +diff -urN grep-2.6.1/src/dfa.c grep-2.6.1-haiku/src/dfa.c +--- grep-2.6.1/src/dfa.c 2010-03-25 06:28:54.056098816 -0700 ++++ grep-2.6.1-haiku/src/dfa.c 2013-02-17 13:32:51.217055232 -0800 +@@ -2775,6 +2775,7 @@ + unsigned char eol = eolbyte; /* Likewise for eolbyte. */ + static int sbit[NOTCHAR]; /* Table for anding with d->success. */ + static int sbit_init; ++ unsigned char saved_end; + + if (! sbit_init) + { +@@ -2792,7 +2793,7 @@ + s = s1 = 0; + p = (unsigned char const *) begin; + trans = d->trans; +- unsigned char saved_end = *(unsigned char *) end; ++ saved_end = *(unsigned char *) end; + *end = eol; + + #ifdef MBS_SUPPORT diff --git a/sys-apps/groff/groff-1.20.1.bep b/sys-apps/groff/groff-1.20.1.bep index 4358a7ac1..fb330f71b 100644 --- a/sys-apps/groff/groff-1.20.1.bep +++ b/sys-apps/groff/groff-1.20.1.bep @@ -7,11 +7,15 @@ STATUS_HAIKU="stable" DEPEND="" BUILD { cd groff-1.20.1 + libtoolize --force --copy --install + aclocal -I m4 + autoconf + COMMON_DOCS=`finddir B_COMMON_DOCUMENTATION_DIRECTORY` + sed -i 's/docdir=$(datadir)\/doc\/groff\//docdir=`finddir B_COMMON_DOCUMENTATION_DIRECTORY`\/doc\/groff/g' Ma* ./configure --prefix=`finddir B_COMMON_DIRECTORY` \ --datarootdir=`finddir B_COMMON_DATA_DIRECTORY` \ - --docdir=`finddir B_COMMON_DOCUMENTATION_DIRECTORY`/doc \ - --infodir=`finddir B_COMMON_DOCUMENTATION_DIRECTORY`/info \ - --mandir=`finddir B_COMMON_DOCUMENTATION_DIRECTORY`/man + --infodir=$COMMON_DOCS/info \ + --mandir=$COMMON_DOCS/man make } @@ -20,5 +24,10 @@ INSTALL { make install } +TEST { + cd groff-1.20.1 + make check +} + LICENSE="GNU GPL v3" COPYRIGHT="2003-2009 Free Software Foundation, Inc." diff --git a/sys-apps/hgrep/hgrep b/sys-apps/hgrep/hgrep new file mode 100755 index 000000000..356dec164 --- /dev/null +++ b/sys-apps/hgrep/hgrep @@ -0,0 +1,10 @@ +#!/bin/sh + +# +# Copyright 2011, Haiku, Inc. All Rights Reserved. +# Distributed under the terms of the MIT License. +# + +find $(finddir B_COMMON_DEVELOP_DIRECTORY)/headers -type f -print0 | xargs -0 egrep "$@" + +# TODO add other header directories to search? diff --git a/sys-apps/hgrep/hgrep-1.0.1.bep b/sys-apps/hgrep/hgrep-1.0.1.bep new file mode 100644 index 000000000..5e94a7b5a --- /dev/null +++ b/sys-apps/hgrep/hgrep-1.0.1.bep @@ -0,0 +1,20 @@ +DESCRIPTION="header grep" +HOMEPAGE="http://www.ports.haiku-files.org/" +SRC_URI="http://www.ports.haiku-files.org/export/1970/haikuports/trunk/sys-apps/hgrep/hgrep-1.0.1.zip" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="" +CHECKSUM_MD5="1c11724bc9fedd058fde03b5a9f242c2" +BUILD { + cd hgrep-1.0.1 +} + +INSTALL { + cd hgrep-1.0.1 + BINDIR=`finddir B_COMMON_BIN_DIRECTORY` + mkdir -p $DESTDIR/$BINDIR + cp hgrep $DESTDIR/$BINDIR +} + +LICENSE="MIT" +COPYRIGHT="2011 Haiku, Inc." diff --git a/sys-apps/hgrep/hgrep-1.0.1.zip b/sys-apps/hgrep/hgrep-1.0.1.zip new file mode 100644 index 000000000..510a28806 Binary files /dev/null and b/sys-apps/hgrep/hgrep-1.0.1.zip differ diff --git a/sys-apps/hgrep/hgrep-1.0.bep b/sys-apps/hgrep/hgrep-1.0.bep new file mode 100644 index 000000000..c4cf23569 --- /dev/null +++ b/sys-apps/hgrep/hgrep-1.0.bep @@ -0,0 +1,20 @@ +DESCRIPTION="header grep" +HOMEPAGE="http://www.ports.haiku-files.org/" +SRC_URI="http://www.ports.haiku-files.org/export/1966/haikuports/trunk/sys-apps/hgrep/hgrep-1.0.zip" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="" +CHECKSUM_MD5="e909cea8f7ae7f6c73fe75a691b0440f" +BUILD { + cd hgrep-1.0 +} + +INSTALL { + cd hgrep-1.0 + BINDIR=`finddir B_COMMON_BIN_DIRECTORY` + mkdir -p $DESTDIR/$BINDIR + cp hgrep $DESTDIR/$BINDIR +} + +LICENSE="MIT" +COPYRIGHT="2011 Haiku, Inc." diff --git a/sys-apps/hgrep/hgrep-1.0.zip b/sys-apps/hgrep/hgrep-1.0.zip new file mode 100644 index 000000000..02d9d1785 Binary files /dev/null and b/sys-apps/hgrep/hgrep-1.0.zip differ diff --git a/sys-apps/less/less-436.bep b/sys-apps/less/less-436.bep index 4f535d195..b0199b2d6 100644 --- a/sys-apps/less/less-436.bep +++ b/sys-apps/less/less-436.bep @@ -8,7 +8,8 @@ DEPEND="" BUILD { cd less-436 autoreconf -fvi - ./configure --prefix=/boot/common --with-editor=nano + ./configure --prefix=`finddir B_COMMON_DIRECTORY` --with-editor=nano \ + --mandir=`finddir B_COMMON_DOCUMENTATION_DIRECTORY`/man make } diff --git a/sys-apps/less/less-451.bep b/sys-apps/less/less-451.bep new file mode 100644 index 000000000..1927de598 --- /dev/null +++ b/sys-apps/less/less-451.bep @@ -0,0 +1,21 @@ +DESCRIPTION="Less is a free, open-source file pager." +HOMEPAGE="http://www.greenwoodsoftware.com/less/" +SRC_URI="http://www.greenwoodsoftware.com/less/less-451.tar.gz" +CHECKSUM_MD5="765f082658002b2b46b86af4a0da1842" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="" +BUILD { + cd less-451 + autoreconf -fvi + ./configure --prefix=`finddir B_COMMON_DIRECTORY` --with-editor=nano \ + --mandir=`finddir B_COMMON_DOCUMENTATION_DIRECTORY`/man + make +} + +INSTALL { + cd less-451 + make install DESTDIR="${DESTDIR}" +} +LICENSE="GNU GPL v3" +COPYRIGHT="1984-2012 Mark Nudelman" diff --git a/sys-apps/less/patches/less-451.patch b/sys-apps/less/patches/less-451.patch new file mode 100644 index 000000000..25acb7b41 --- /dev/null +++ b/sys-apps/less/patches/less-451.patch @@ -0,0 +1,128 @@ +diff -urN less-451/cmdbuf.c less-451-haiku/cmdbuf.c +--- less-451/cmdbuf.c 2012-07-21 20:39:58.045088768 +0000 ++++ less-451-haiku/cmdbuf.c 2012-09-06 18:17:44.432799744 +0000 +@@ -1364,7 +1364,11 @@ + static char * + histfile_name() + { ++#ifdef __HAIKU__ ++ char home[B_PATH_NAME_LENGTH+B_FILE_NAME_LENGTH]; ++#else + char *home; ++#endif + char *name; + int len; + +@@ -1378,6 +1382,13 @@ + return (save(name)); + } + ++#ifdef __HAIKU__ ++ { ++ dev_t volume = dev_for_path("/boot"); ++ if (find_directory(B_USER_SETTINGS_DIRECTORY, volume, true, home, sizeof(home)) != B_OK) ++ return (NULL); ++ } ++#else + /* Otherwise, file is in $HOME. */ + home = lgetenv("HOME"); + if (home == NULL || *home == '\0') +@@ -1388,6 +1399,8 @@ + #endif + return (NULL); + } ++#endif ++ + len = strlen(home) + strlen(LESSHISTFILE) + 2; + name = (char *) ecalloc(len, sizeof(char)); + SNPRINTF2(name, len, "%s/%s", home, LESSHISTFILE); +diff -urN less-451/configure.ac less-451-haiku/configure.ac +--- less-451/configure.ac 2012-07-21 20:39:59.045613056 +0000 ++++ less-451-haiku/configure.ac 2012-09-06 18:17:49.640942080 +0000 +@@ -589,10 +589,17 @@ + * LESSHISTFILE is the filename of the history file + * (in the HOME directory). + */ +-#define LESSKEYFILE ".less" +-#define LESSKEYFILE_SYS SYSDIR "/sysless" +-#define DEF_LESSKEYINFILE ".lesskey" +-#define LESSHISTFILE ".lesshst" ++#ifdef __HAIKU__ ++# define LESSKEYFILE "less" ++# define LESSKEYFILE_SYS SYSDIR "/sysless" ++# define DEF_LESSKEYINFILE "lesskey" ++# define LESSHISTFILE "lesshst" ++#else ++# define LESSKEYFILE ".less" ++# define LESSKEYFILE_SYS SYSDIR "/sysless" ++# define DEF_LESSKEYINFILE ".lesskey" ++# define LESSHISTFILE ".lesshst" ++#endif + + + /* Settings always true on Unix. */ +diff -urN less-451/filename.c less-451-haiku/filename.c +--- less-451/filename.c 2012-07-21 20:39:58.046923776 +0000 ++++ less-451-haiku/filename.c 2012-09-06 18:17:53.399507456 +0000 +@@ -266,12 +266,23 @@ + { + register char *pathname; + ++#ifdef __HAIKU__ ++ char path[B_PATH_NAME_LENGTH+B_FILE_NAME_LENGTH]; ++ dev_t volume = dev_for_path("/boot"); ++ if (find_directory(B_USER_SETTINGS_DIRECTORY, volume, true, path, sizeof(path)) != B_OK) ++ return (NULL); ++ ++ pathname = dirfile(&path, filename); ++ if (pathname != NULL) ++ return (pathname); ++#else + /* + * Try $HOME/filename. + */ + pathname = dirfile(lgetenv("HOME"), filename); + if (pathname != NULL) + return (pathname); ++#endif + #if OS2 + /* + * Try $INIT/filename. +diff -urN less-451/less.h less-451-haiku/less.h +--- less-451/less.h 2012-07-21 20:39:59.047972352 +0000 ++++ less-451-haiku/less.h 2012-09-06 18:17:57.216268800 +0000 +@@ -93,6 +93,11 @@ + #include + #endif + ++#ifdef __HAIKU__ ++#include ++#include ++#endif ++ + #if MSDOS_COMPILER==WIN32C || OS2 + #include + #endif +diff -urN less-451/lesskey.c less-451-haiku/lesskey.c +--- less-451/lesskey.c 2012-07-21 20:39:59.049020928 +0000 ++++ less-451-haiku/lesskey.c 2012-09-06 18:18:06.898891776 +0000 +@@ -245,8 +245,19 @@ + char *p; + char *pathname; + ++#ifdef __HAIKU__ ++ char path[B_PATH_NAME_LENGTH+B_FILE_NAME_LENGTH]; ++ dev_t volume = dev_for_path("/boot"); ++ if (find_directory(B_USER_SETTINGS_DIRECTORY, volume, true, path, sizeof(path)) != B_OK) ++ return (NULL); ++ ++ pathname = mkpathname(&path, filename); ++ if (pathname != NULL) ++ return (pathname); ++#else + if ((p = getenv("HOME")) != NULL && *p != '\0') + pathname = mkpathname(p, filename); ++#endif + #if OS2 + else if ((p = getenv("INIT")) != NULL && *p != '\0') + pathname = mkpathname(p, filename); diff --git a/sys-apps/lgrep/lgrep b/sys-apps/lgrep/lgrep new file mode 100755 index 000000000..aa9a00c41 --- /dev/null +++ b/sys-apps/lgrep/lgrep @@ -0,0 +1,50 @@ +#!/bin/sh + +# +# Copyright 2011, Haiku, Inc. All Rights Reserved. +# Distributed under the terms of the MIT License. +# + +usage() { + echo `basename $0` \[-V\] \ + echo \- list files containing \ + echo " -V lists also directories searched" + echo "" + echo `basename $0` -h + echo \- Show this help + exit 0 +} + +if [ "$1" == "-V" ]; then + VERBOSE=1 + shift +else + VERBOSE=0 +fi + +if [ "$1" == "-h" ]; then + usage +fi + +if [ "x$1" == "x" ]; then + usage +fi + +LPATH=`echo $LIBRARY_PATH|sed "s|%A/lib:||"` +[ -d ./lib ] && LPATH="./lib:$LPATH" || true +LPATH=`echo $LPATH|sed "s/:/ /g"` +TEMPFILE=/boot/var/tmp/`basename $0`.$PPID +for libdir in `echo $LPATH`; do + if [ "$VERBOSE" == "1" ]; then + echo Searching in \"$libdir\"... + fi + for lib in $libdir/*.so ; do + echo "[ $lib ]" > $TEMPFILE + (nm -D $lib 2>/dev/null)|grep $1 >> $TEMPFILE + LINES=`wc -l $TEMPFILE | awk '{ print $1; }'` + if [ "$LINES" != "1" ]; then + cat $TEMPFILE + fi + done +done +rm -f $TEMPFILE diff --git a/sys-apps/lgrep/lgrep-1.0.bep b/sys-apps/lgrep/lgrep-1.0.bep new file mode 100644 index 000000000..1abb6f3fe --- /dev/null +++ b/sys-apps/lgrep/lgrep-1.0.bep @@ -0,0 +1,20 @@ +DESCRIPTION="library grep" +HOMEPAGE="http://www.ports.haiku-files.org/" +SRC_URI="http://www.ports.haiku-files.org/export/1966/haikuports/trunk/sys-apps/lgrep/lgrep-1.0.zip" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="" +CHECKSUM_MD5="2a699321a362a64d0999bf883be21452" +BUILD { + cd lgrep-1.0 +} + +INSTALL { + cd lgrep-1.0 + BINDIR=`finddir B_COMMON_BIN_DIRECTORY` + mkdir -p $DESTDIR/$BINDIR + cp lgrep $DESTDIR/$BINDIR +} + +LICENSE="MIT" +COPYRIGHT="2011 Haiku, Inc." diff --git a/sys-apps/lgrep/lgrep-1.0.zip b/sys-apps/lgrep/lgrep-1.0.zip new file mode 100644 index 000000000..eeb5ba0e6 Binary files /dev/null and b/sys-apps/lgrep/lgrep-1.0.zip differ diff --git a/sys-apps/man/man-1.6f.bep b/sys-apps/man/man-1.6f.bep index 8b8790262..3f91d74ee 100644 --- a/sys-apps/man/man-1.6f.bep +++ b/sys-apps/man/man-1.6f.bep @@ -7,7 +7,7 @@ STATUS_HAIKU="stable" DEPEND="sys-apps/groff >= 1.20.1" BUILD { cd man-1.6f - ./configure -prefix=/boot/common -sbindir=/boot/common/bin -confdir=`finddir B_COMMON_SETTINGS_DIRECTORY` + ./configure -prefix=`finddir B_COMMON_DIRECTORY` -sbindir=`finddir B_COMMON_BIN_DIRECTORY` -confdir=`finddir B_COMMON_SETTINGS_DIRECTORY` make } diff --git a/sys-apps/man/man-1.6g.bep b/sys-apps/man/man-1.6g.bep new file mode 100644 index 000000000..593d7f308 --- /dev/null +++ b/sys-apps/man/man-1.6g.bep @@ -0,0 +1,21 @@ +DESCRIPTION="Standard commands to read man pages." +HOMEPAGE="http://primates.ximian.com/~flucifredi/man/" +SRC_URI="http://primates.ximian.com/~flucifredi/man/man-1.6g.tar.gz" +CHECKSUM_MD5="ba154d5796928b841c9c69f0ae376660" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="sys-apps/groff >= 1.20.1" +BUILD { + cd man-1.6g + ./configure -prefix=`finddir B_COMMON_DIRECTORY` \ + -sbindir=`finddir B_COMMON_BIN_DIRECTORY` \ + -confdir=`finddir B_COMMON_SETTINGS_DIRECTORY` + make +} + +INSTALL { + cd man-1.6g + make install +} +LICENSE="GNU GPL v2" +COPYRIGHT="1989-2012 Free Software Foundation, Inc." diff --git a/sys-apps/man/patches/man-1.6g.patch b/sys-apps/man/patches/man-1.6g.patch new file mode 100644 index 000000000..e3171b3ca --- /dev/null +++ b/sys-apps/man/patches/man-1.6g.patch @@ -0,0 +1,82 @@ +diff -up man-1.6g/configure.orig man-1.6g/configure +--- man-1.6g/configure.orig 2010-12-31 13:28:46.006291456 -0700 ++++ man-1.6g/configure 2012-05-02 21:57:49.683147264 -0600 +@@ -287,6 +287,12 @@ if test -f /xenix; then + esac + fi + ++echo checking for Haiku ++if test `uname` = "Haiku"; then ++ LIBS="$LIBS -L/boot/system/lib -llocale" ++ mandir=`finddir B_COMMON_DOCUMENTATION_DIRECTORY`/man ++fi ++ + echo checking how to get alloca + echo ' + #ifdef __GNUC__ +diff -up man-1.6g/man2html/Makefile.in.orig man-1.6g/man2html/Makefile.in +--- man-1.6g/man2html/Makefile.in.orig 2010-12-31 13:28:46.010747904 -0700 ++++ man-1.6g/man2html/Makefile.in 2012-05-02 21:58:50.621805568 -0600 +@@ -2,7 +2,7 @@ CC = @CC@ + CFLAGS += -Wall -Wstrict-prototypes -Wmissing-prototypes + OBJECTS = man2html.o cgibase.o abbrev.o strdefs.o + EXEEXT = @EXEEXT@ +-bindir = $(DESTDIR)$(PREFIX)/usr/bin ++bindir = $(DESTDIR)$(PREFIX)/bin + mandir = $(DESTDIR)$(PREFIX)@mandir@ + vardir = $(DESTDIR)$(PREFIX)/var + httpdir = $(DESTDIR)$(PREFIX)/home/httpd +diff -up man-1.6g/src/Makefile.in.orig man-1.6g/src/Makefile.in +--- man-1.6g/src/Makefile.in.orig 2010-12-31 13:28:46.006815744 -0700 ++++ man-1.6g/src/Makefile.in 2012-05-02 21:59:22.845938688 -0600 +@@ -30,6 +30,8 @@ LDFLAGS ?= -s + + LIBOBJS = @LIBOBJS@ + ++LIBS = @LIBS@ ++ + all: man$(EXEEXT) man.conf apropos whatis makewhatis + + MANOBJS = man.o manfile.o manpath.o man-config.o man-getopt.o \ +diff -up man-1.6g/src/man.conf.in.orig man-1.6g/src/man.conf.in +--- man-1.6g/src/man.conf.in.orig 2010-10-25 18:22:24.008388608 -0600 ++++ man-1.6g/src/man.conf.in 2012-05-02 21:57:49.699400192 -0600 +@@ -36,11 +36,14 @@ + # + # Every automatically generated MANPATH includes these fields + # +-MANPATH /usr/man +-MANPATH /usr/share/man +-MANPATH /usr/local/man +-MANPATH /usr/local/share/man +-MANPATH /usr/X11R6/man ++MANPATH /boot/common/man ++MANPATH /boot/common/share/man ++MANPATH /boot/home/config/man ++MANPATH /boot/home/config/share/man ++MANPATH /boot/common/*/man ++MANPATH /boot/common/*/share/man ++MANPATH /boot/home/config/*/man ++MANPATH /boot/home/config/*/share/man + # + # Uncomment if you want to include one of these by default + # +@@ -58,15 +61,9 @@ MANPATH /usr/X11R6/man + # in the mandatory manpath already, but will keep man from statting + # lots of other nearby files and directories. + # +-MANPATH_MAP /bin /usr/share/man +-MANPATH_MAP /sbin /usr/share/man +-MANPATH_MAP /usr/bin /usr/share/man +-MANPATH_MAP /usr/sbin /usr/share/man +-MANPATH_MAP /usr/local/bin /usr/local/share/man +-MANPATH_MAP /usr/local/sbin /usr/local/share/man +-MANPATH_MAP /usr/X11R6/bin /usr/X11R6/man +-MANPATH_MAP /usr/bin/X11 /usr/X11R6/man +-MANPATH_MAP /usr/bin/mh /usr/share/man ++MANPATH_MAP /bin /boot/common/share/man ++MANPATH_MAP /boot/common/bin /boot/common/share/man ++MANPATH_MAP /boot/home/config/bin /boot/home/config/share/man + # + # NOAUTOPATH keeps man from automatically adding directories that look like + # manual page directories to the path. diff --git a/sys-apps/xinetd/xinetd-2.3.14.bep b/sys-apps/xinetd/xinetd-2.3.14.bep index 1e4318b45..4957efced 100644 --- a/sys-apps/xinetd/xinetd-2.3.14.bep +++ b/sys-apps/xinetd/xinetd-2.3.14.bep @@ -21,18 +21,18 @@ BUILD { libtoolize --force --copy --install aclocal autoconf - mkdir -p ${DESTDIR}/`finddir B_COMMON_SERVERS_DIRECTORY` + mkdir -p ${DESTDIR}/`finddir B_COMMON_BIN_DIRECTORY` mkdir -p ${DESTDIR}/`finddir B_COMMON_DOCUMENTATION_DIRECTORY`/man/man5 mkdir -p ${DESTDIR}/`finddir B_COMMON_DOCUMENTATION_DIRECTORY`/man/man8 ./configure --prefix=`finddir B_COMMON_DIRECTORY` \ - --sbindir=`finddir B_COMMON_SERVERS_DIRECTORY` \ + --sbindir=`finddir B_COMMON_BIN_DIRECTORY` \ --mandir=`finddir B_COMMON_DOCUMENTATION_DIRECTORY`/man make } INSTALL { cd xinetd-2.3.14 - mkdir -p ${DESTDIR}/`finddir B_COMMON_SERVERS_DIRECTORY` + mkdir -p ${DESTDIR}/`finddir B_COMMON_BIN_DIRECTORY` mkdir -p ${DESTDIR}/`finddir B_COMMON_DOCUMENTATION_DIRECTORY`/man/man5 mkdir -p ${DESTDIR}/`finddir B_COMMON_DOCUMENTATION_DIRECTORY`/man/man8 make install DESTDIR=${DESTDIR} diff --git a/sys-devel/autoconf/autoconf-2.65.bep b/sys-devel/autoconf/autoconf-2.65.bep index 86f450e97..17def4b3b 100644 --- a/sys-devel/autoconf/autoconf-2.65.bep +++ b/sys-devel/autoconf/autoconf-2.65.bep @@ -7,7 +7,7 @@ STATUS_HAIKU="stable" DEPEND="" BUILD { cd autoconf-2.65 - ./configure --prefix=/boot/common + ./configure --prefix=`finddir B_COMMON_DIRECTORY` make } diff --git a/sys-devel/autoconf/autoconf-2.66.bep b/sys-devel/autoconf/autoconf-2.66.bep index d70cdb3b3..fafe8e8c8 100644 --- a/sys-devel/autoconf/autoconf-2.66.bep +++ b/sys-devel/autoconf/autoconf-2.66.bep @@ -7,7 +7,7 @@ STATUS_HAIKU="stable" DEPEND="" BUILD { cd autoconf-2.66 - ./configure --prefix=/boot/common + ./configure --prefix=`finddir B_COMMON_DIRECTORY` make } diff --git a/sys-devel/autoconf/autoconf-2.67.bep b/sys-devel/autoconf/autoconf-2.67.bep index 4aae990ad..8930dea1b 100644 --- a/sys-devel/autoconf/autoconf-2.67.bep +++ b/sys-devel/autoconf/autoconf-2.67.bep @@ -7,7 +7,7 @@ STATUS_HAIKU="stable" DEPEND="" BUILD { cd autoconf-2.67 - ./configure --prefix=/boot/common + ./configure --prefix=`finddir B_COMMON_DIRECTORY` make } diff --git a/sys-devel/autoconf/autoconf-2.67xz.bep b/sys-devel/autoconf/autoconf-2.67xz.bep index bc22f6ec7..a2bda5564 100644 --- a/sys-devel/autoconf/autoconf-2.67xz.bep +++ b/sys-devel/autoconf/autoconf-2.67xz.bep @@ -7,7 +7,7 @@ STATUS_HAIKU="stable" DEPEND="" BUILD { cd autoconf-2.67 - ./configure --prefix=/boot/common + ./configure --prefix=`finddir B_COMMON_DIRECTORY` make } diff --git a/sys-devel/autoconf/autoconf-2.69.bep b/sys-devel/autoconf/autoconf-2.69.bep new file mode 100644 index 000000000..73321003d --- /dev/null +++ b/sys-devel/autoconf/autoconf-2.69.bep @@ -0,0 +1,30 @@ +DESCRIPTION="autoconf - Used to create autoconfiguration files" +HOMEPAGE="http://www.gnu.org/software/autoconf/" +SRC_URI="http://ftp.gnu.org/gnu/autoconf/autoconf-2.69.tar.xz" +CHECKSUM_MD5="50f97f4159805e374639a73e2636f22e" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="" +BUILD { + cd autoconf-2.69 + libtoolize --force --copy --install + ./configure --prefix=`finddir B_COMMON_DIRECTORY` \ + --mandir=`finddir B_COMMON_DOCUMENTATION_DIRECTORY`/man \ + --infodir=`finddir B_COMMON_DOCUMENTATION_DIRECTORY`/info \ + --datadir=`finddir B_COMMON_DATA_DIRECTORY` + make +} + +INSTALL { + cd autoconf-2.69 + make install +} + +TEST { + cd autoconf-2.69 + make check +} + +LICENSE="GNU GPL v2 + GNU GPL v3" +COPYRIGHT="1992-2012 Free Software Foundation, Inc." diff --git a/sys-devel/automake/automake-1.10.3.bep b/sys-devel/automake/automake-1.10.3.bep index d2dab1e67..fbf875cae 100644 --- a/sys-devel/automake/automake-1.10.3.bep +++ b/sys-devel/automake/automake-1.10.3.bep @@ -7,7 +7,7 @@ STATUS_HAIKU="stable" DEPEND="" BUILD { cd automake-1.10.3 - ./configure --prefix=/boot/common + ./configure --prefix=`finddir B_COMMON_DIRECTORY` make } diff --git a/sys-devel/automake/automake-1.12.2.bep b/sys-devel/automake/automake-1.12.2.bep new file mode 100644 index 000000000..491853e4b --- /dev/null +++ b/sys-devel/automake/automake-1.12.2.bep @@ -0,0 +1,31 @@ +DESCRIPTION="automake - Used to generate Makefile.in from Makefile.am" +HOMEPAGE="http://www.gnu.org/software/automake/" +SRC_URI="http://ftp.gnu.org/gnu/automake/automake-1.12.2.tar.gz" +CHECKSUM_MD5="e620cb9e0259159341c0e0d6b712b67a" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="" +BUILD { + cd automake-1.12.2 + COMMON_DOCS=`finddir B_COMMON_DOCUMENTATION_DIRECTORY` + COMMON_DATA=`finddir B_COMMON_DATA_DIRECTORY` + ./configure --prefix=`finddir B_COMMON_DIRECTORY` \ + --datadir=$COMMON_DATA \ + --docdir=$COMMON_DOCS/doc/automake \ + --infodir=$COMMON_DOCS/info \ + --mandir=$COMMON_DOCS/man + make +} + +INSTALL { + cd automake-1.12.2 + make install +} + +TEST { + cd automake-1.12.2 + make check +} + +LICENSE="GNU GPL v2" +COPYRIGHT="2012 Free Software Foundation, Inc." diff --git a/sys-devel/automake/automake-1.12.5.bep b/sys-devel/automake/automake-1.12.5.bep new file mode 100644 index 000000000..2d8fc54b8 --- /dev/null +++ b/sys-devel/automake/automake-1.12.5.bep @@ -0,0 +1,31 @@ +DESCRIPTION="automake - Used to generate Makefile.in from Makefile.am" +HOMEPAGE="http://www.gnu.org/software/automake/" +SRC_URI="http://ftp.gnu.org/gnu/automake/automake-1.12.5.tar.gz" +CHECKSUM_MD5="674f6d28f8723e0f478cb03de30f36f1" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="" +BUILD { + cd automake-1.12.5 + COMMON_DOCS=`finddir B_COMMON_DOCUMENTATION_DIRECTORY` + COMMON_DATA=`finddir B_COMMON_DATA_DIRECTORY` + ./configure --prefix=`finddir B_COMMON_DIRECTORY` \ + --datadir=$COMMON_DATA \ + --docdir=$COMMON_DOCS/doc/automake \ + --infodir=$COMMON_DOCS/info \ + --mandir=$COMMON_DOCS/man + make +} + +INSTALL { + cd automake-1.12.5 + make install +} + +TEST { + cd automake-1.12.5 + make check +} + +LICENSE="GNU GPL v2" +COPYRIGHT="2012 Free Software Foundation, Inc." diff --git a/sys-devel/automake/automake-1.13.1.bep b/sys-devel/automake/automake-1.13.1.bep new file mode 100644 index 000000000..e59db8f10 --- /dev/null +++ b/sys-devel/automake/automake-1.13.1.bep @@ -0,0 +1,32 @@ +DESCRIPTION="automake - Used to generate Makefile.in from Makefile.am" +HOMEPAGE="http://www.gnu.org/software/automake/" +SRC_URI="http://ftp.gnu.org/gnu/automake/automake-1.13.1.tar.gz" +CHECKSUM_MD5="78a0ef8216b0556b44508e7b5b0c0847" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="" +BUILD { + cd automake-1.13.1 + libtoolize --force --copy --install + COMMON_DOCS=`finddir B_COMMON_DOCUMENTATION_DIRECTORY` + COMMON_DATA=`finddir B_COMMON_DATA_DIRECTORY` + ./configure --prefix=`finddir B_COMMON_DIRECTORY` \ + --datadir=$COMMON_DATA \ + --docdir=$COMMON_DOCS/doc/automake \ + --infodir=$COMMON_DOCS/info \ + --mandir=$COMMON_DOCS/man + make +} + +INSTALL { + cd automake-1.13.1 + make install +} + +TEST { + cd automake-1.13.1 + make check +} + +LICENSE="GNU GPL v2" +COPYRIGHT="2013 Free Software Foundation, Inc." diff --git a/sys-devel/automake/automake-1.13.bep b/sys-devel/automake/automake-1.13.bep new file mode 100644 index 000000000..d31d5c63c --- /dev/null +++ b/sys-devel/automake/automake-1.13.bep @@ -0,0 +1,31 @@ +DESCRIPTION="automake - Used to generate Makefile.in from Makefile.am" +HOMEPAGE="http://www.gnu.org/software/automake/" +SRC_URI="http://ftp.gnu.org/gnu/automake/automake-1.13.tar.gz" +CHECKSUM_MD5="255661c7729d04ef2f8f58d076c89ecc" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="" +BUILD { + cd automake-1.13 + COMMON_DOCS=`finddir B_COMMON_DOCUMENTATION_DIRECTORY` + COMMON_DATA=`finddir B_COMMON_DATA_DIRECTORY` + ./configure --prefix=`finddir B_COMMON_DIRECTORY` \ + --datadir=$COMMON_DATA \ + --docdir=$COMMON_DOCS/doc/automake \ + --infodir=$COMMON_DOCS/info \ + --mandir=$COMMON_DOCS/man + make +} + +INSTALL { + cd automake-1.13 + make install +} + +TEST { + cd automake-1.13 + make check +} + +LICENSE="GNU GPL v2" +COPYRIGHT="2012 Free Software Foundation, Inc." diff --git a/sys-devel/automake/patches/automake-1.10.1.diff b/sys-devel/automake/patches/automake-1.10.1.diff deleted file mode 100644 index cbbbd8df8..000000000 --- a/sys-devel/automake/patches/automake-1.10.1.diff +++ /dev/null @@ -1,17 +0,0 @@ -diff -ur automake-1.10.1-orig/lib/config.guess automake-1.10.1/lib/config.guess ---- automake-1.10.1-orig/lib/config.guess 2008-01-19 09:54:57.000000000 +0000 -+++ automake-1.10.1/lib/config.guess 2008-03-20 23:52:43.000000000 +0000 -@@ -1216,6 +1216,12 @@ - BePC:BeOS:*:*) # BeOS running on Intel PC compatible. - echo i586-pc-beos - exit ;; -+ BeMac:Haiku:*:*) -+ echo powerpc-apple-haiku -+ exit ;; -+ BePC:Haiku:*:*) -+ echo i586-pc-haiku -+ exit ;; - SX-4:SUPER-UX:*:*) - echo sx4-nec-superux${UNAME_RELEASE} - exit ;; -Only in automake-1.10.1/lib: config.guess~ diff --git a/sys-devel/bc/bc-1.06.bep b/sys-devel/bc/bc-1.06.bep index ad7e51c46..67808119b 100644 --- a/sys-devel/bc/bc-1.06.bep +++ b/sys-devel/bc/bc-1.06.bep @@ -7,7 +7,9 @@ DEPEND="" CHECKSUM_MD5="d44b5dddebd8a7a7309aea6c36fda117" BUILD { cd bc-1.06 - ./configure --prefix=`finddir B_COMMON_DIRECTORY` + ./configure --prefix=`finddir B_COMMON_DIRECTORY` \ + --infodir=`finddir B_COMMON_DOCUMENTATION_DIRECTORY`/info \ + --mandir=`finddir B_COMMON_DOCUMENTATION_DIRECTORY`/man make } diff --git a/sys-devel/bison/bison-2.4.1.bep b/sys-devel/bison/bison-2.4.1.bep index ce04eeeb4..a537c49e8 100644 --- a/sys-devel/bison/bison-2.4.1.bep +++ b/sys-devel/bison/bison-2.4.1.bep @@ -7,7 +7,7 @@ STATUS_HAIKU="stable" DEPEND="" BUILD { cd bison-2.4.1 - ./configure --prefix=/boot/common --disable-nls + ./configure --prefix=`finddir B_COMMON_DIRECTORY` --disable-nls make } diff --git a/sys-devel/bison/bison-2.4.bep b/sys-devel/bison/bison-2.4.bep index 20d3115b2..5e6b68cc2 100644 --- a/sys-devel/bison/bison-2.4.bep +++ b/sys-devel/bison/bison-2.4.bep @@ -7,7 +7,7 @@ STATUS_HAIKU="stable" DEPEND="" BUILD { cd bison-2.4 - ./configure --prefix=/boot/common --disable-nls + ./configure --prefix=`finddir B_COMMON_DIRECTORY` --disable-nls make } diff --git a/sys-devel/bison/bison-2.5.bep b/sys-devel/bison/bison-2.5.bep new file mode 100644 index 000000000..002b5e015 --- /dev/null +++ b/sys-devel/bison/bison-2.5.bep @@ -0,0 +1,30 @@ +DESCRIPTION="bison - A yacc-compatible parser generator" +HOMEPAGE="http://www.gnu.org/software/bison/bison.html" +SRC_URI="http://ftp.gnu.org/gnu/bison/bison-2.5.tar.gz" +CHECKSUM_MD5="687e1dcd29452789d34eaeea4c25abe4" +REVISION="1" +STATUS_HAIKU="stable" +MESSAGE="This port only builds with gcc4. Use 'setgcc gcc4' before building." +DEPEND="" +BUILD { + cd bison-2.5 + ./configure --prefix=`finddir B_COMMON_DIRECTORY` \ + --datadir=`finddir B_COMMON_DATA_DIRECTORY` \ + --infodir=`finddir B_COMMON_DOCUMENTATION_DIRECTORY`/info \ + --mandir=`finddir B_COMMON_DOCUMENTATION_DIRECTORY`/man \ + --disable-nls + make +} + +INSTALL { + cd bison-2.5 + make install +} + +TEST { + cd bison-2.5 + make check +} + +LICENSE="GNU GPL v3" +COPYRIGHT="1992-2011 Free Software Foundation, Inc." diff --git a/sys-devel/bison/bison-2.6.2.bep b/sys-devel/bison/bison-2.6.2.bep new file mode 100644 index 000000000..be4759628 --- /dev/null +++ b/sys-devel/bison/bison-2.6.2.bep @@ -0,0 +1,30 @@ +DESCRIPTION="bison - A yacc-compatible parser generator" +HOMEPAGE="http://www.gnu.org/software/bison/bison.html" +SRC_URI="http://ftp.gnu.org/gnu/bison/bison-2.6.2.tar.gz" +CHECKSUM_MD5="8b8e458d4ce0cc184f1a58af93663647" +REVISION="15" +STATUS_HAIKU="stable" +MESSAGE="This port only builds with gcc4. Use 'setgcc gcc4' before building." +DEPEND="" +BUILD { + cd bison-2.6.2 + ./configure --prefix=`finddir B_COMMON_DIRECTORY` \ + --datadir=`finddir B_COMMON_DATA_DIRECTORY` \ + --infodir=`finddir B_COMMON_DOCUMENTATION_DIRECTORY`/info \ + --mandir=`finddir B_COMMON_DOCUMENTATION_DIRECTORY`/man \ + --disable-nls + make +} + +INSTALL { + cd bison-2.6.2 + make install +} + +TEST { + cd bison-2.6.2 + make check +} + +LICENSE="GNU GPL v3" +COPYRIGHT="1992-2011 Free Software Foundation, Inc." diff --git a/sys-devel/bison/patches/bison-2.5-c89.diff b/sys-devel/bison/patches/bison-2.5-c89.diff new file mode 100644 index 000000000..7be2c780d --- /dev/null +++ b/sys-devel/bison/patches/bison-2.5-c89.diff @@ -0,0 +1,29 @@ +diff -urN bison-2.5/src/AnnotationList.c bison-2.5-haiku/src/AnnotationList.c +--- bison-2.5/src/AnnotationList.c 2011-03-06 16:47:12.043515904 -0800 ++++ bison-2.5-haiku/src/AnnotationList.c 2012-08-26 09:54:44.000000000 -0700 +@@ -233,9 +233,10 @@ + AnnotationList *annotation_node = + AnnotationList__alloc_on_obstack ( + self->inadequacyNode->contributionCount, annotations_obstackp); +- annotation_node->inadequacyNode = self->inadequacyNode; + bool potential_contribution = false; + bitset *lookaheads = NULL; ++ annotation_node->inadequacyNode = self->inadequacyNode; ++ + { + ContributionIndex ci; + for (ci = 0; ci < self->inadequacyNode->contributionCount; ++ci) +diff -urN bison-2.5/src/ielr.c bison-2.5-haiku/src/ielr.c +--- bison-2.5/src/ielr.c 2011-03-06 16:47:12.044564480 -0800 ++++ bison-2.5-haiku/src/ielr.c 2012-08-26 10:05:25.000000000 -0700 +@@ -1032,9 +1032,9 @@ + lookahead sets. */ + if (!annotation_lists) + { ++ state_list *node; + timevar_push (TV_IELR_PHASE4); + initialize_LA (); +- state_list *node; + for (node = first_state; node; node = node->next) + if (!node->state->consistent) + { diff --git a/sys-devel/bison/patches/bison-2.5.patch b/sys-devel/bison/patches/bison-2.5.patch new file mode 100644 index 000000000..cf4f0c08e --- /dev/null +++ b/sys-devel/bison/patches/bison-2.5.patch @@ -0,0 +1,29 @@ +diff -urN bison-2.5/src/location.c bison-2.5-haiku/src/location.c +--- bison-2.5/src/location.c 2011-05-01 22:17:32.046137344 +0000 ++++ bison-2.5-haiku/src/location.c 2012-06-01 18:19:15.538443776 +0000 +@@ -144,11 +144,11 @@ + /* Must search in reverse since the file name field may + * contain `.' or `:'. */ + char *delim = mbsrchr (loc_str, '.'); +- aver (delim); ++ aver (delim != NULL); + *delim = '\0'; + bound->column = atoi (delim+1); + delim = mbsrchr (loc_str, ':'); +- aver (delim); ++ aver (delim != NULL); + *delim = '\0'; + bound->line = atoi (delim+1); + bound->file = uniqstr_new (loc_str); +diff -urN bison-2.5/src/muscle-tab.c bison-2.5-haiku/src/muscle-tab.c +--- bison-2.5/src/muscle-tab.c 2011-05-14 22:17:12.043253760 +0000 ++++ bison-2.5-haiku/src/muscle-tab.c 2012-06-01 18:16:05.827326464 +0000 +@@ -336,7 +336,7 @@ + { + location loc; + char const *value = muscle_find_const (key); +- aver (value); ++ aver (value != NULL); + aver (*value == '['); + aver (*++value == '['); + while (*++value) diff --git a/sys-devel/bison/patches/bison-2.6.2.patch b/sys-devel/bison/patches/bison-2.6.2.patch new file mode 100644 index 000000000..308e3e88b --- /dev/null +++ b/sys-devel/bison/patches/bison-2.6.2.patch @@ -0,0 +1,81 @@ +diff -urN bison-2.6.2/src/AnnotationList.c bison-2.6.2-haiku/src/AnnotationList.c +--- bison-2.6.2/src/AnnotationList.c 2012-03-30 05:39:19.030146560 -0700 ++++ bison-2.6.2-haiku/src/AnnotationList.c 2012-09-30 11:25:40.750518272 -0700 +@@ -230,12 +230,13 @@ + state **predecessor; + for (predecessor = predecessors[s->number]; *predecessor; ++predecessor) + { ++ bool potential_contribution = false; ++ bitset *lookaheads = NULL; + AnnotationList *annotation_node = + AnnotationList__alloc_on_obstack ( + self->inadequacyNode->contributionCount, annotations_obstackp); + annotation_node->inadequacyNode = self->inadequacyNode; +- bool potential_contribution = false; +- bitset *lookaheads = NULL; ++ + { + ContributionIndex ci; + for (ci = 0; ci < self->inadequacyNode->contributionCount; ++ci) +diff -urN bison-2.6.2/src/ielr.c bison-2.6.2-haiku/src/ielr.c +--- bison-2.6.2/src/ielr.c 2012-03-30 05:39:19.032243712 -0700 ++++ bison-2.6.2-haiku/src/ielr.c 2012-09-30 11:28:10.713555968 -0700 +@@ -1032,9 +1032,9 @@ + lookahead sets. */ + if (!annotation_lists) + { ++ state_list *node; + timevar_push (TV_IELR_PHASE4); + initialize_LA (); +- state_list *node; + for (node = first_state; node; node = node->next) + if (!node->state->consistent) + { +diff -urN bison-2.6.2/src/location.c bison-2.6.2-haiku/src/location.c +--- bison-2.6.2/src/location.c 2012-03-30 05:39:19.033030144 -0700 ++++ bison-2.6.2-haiku/src/location.c 2012-09-30 10:32:52.147587072 -0700 +@@ -144,11 +144,11 @@ + /* Must search in reverse since the file name field may + * contain `.' or `:'. */ + char *delim = mbsrchr (loc_str, '.'); +- aver (delim); ++ aver (delim != NULL); + *delim = '\0'; + bound->column = atoi (delim+1); + delim = mbsrchr (loc_str, ':'); +- aver (delim); ++ aver (delim != NULL); + *delim = '\0'; + bound->line = atoi (delim+1); + bound->file = uniqstr_new (loc_str); +diff -urN bison-2.6.2/src/muscle-tab.c bison-2.6.2-haiku/src/muscle-tab.c +--- bison-2.6.2/src/muscle-tab.c 2012-07-30 09:06:21.033816576 -0700 ++++ bison-2.6.2-haiku/src/muscle-tab.c 2012-09-30 10:32:52.255852544 -0700 +@@ -344,7 +344,7 @@ + { + location loc; + char const *value = muscle_find_const (key); +- aver (value); ++ aver (value != NULL); + aver (*value == '['); + aver (*++value == '['); + while (*++value) +diff -urN bison-2.6.2/src/scan-code.l bison-2.6.2-haiku/src/scan-code.l +--- bison-2.6.2/src/scan-code.l 2012-07-30 09:06:21.009437184 -0700 ++++ bison-2.6.2-haiku/src/scan-code.l2 2012-09-30 19:52:46.294912000 -0700 +@@ -611,12 +611,12 @@ + indent += SUB_INDENT; + if (len == 0) + { +- location sym_loc = text_loc; +- sym_loc.start.column += 1; +- sym_loc.end = sym_loc.start; + const char *format = + _("syntax error after '%c', expecting integer, letter," + " '_', '[', or '$'"); ++ location sym_loc = text_loc; ++ sym_loc.start.column += 1; ++ sym_loc.end = sym_loc.start; + complain_at_indent (sym_loc, &indent, format, dollar_or_at); + } + else if (midrule_rhs_index) diff --git a/sys-devel/clang/clang-3.0.bep b/sys-devel/clang/clang-3.0.bep new file mode 100644 index 000000000..1b9813895 --- /dev/null +++ b/sys-devel/clang/clang-3.0.bep @@ -0,0 +1,26 @@ +DESCRIPTION="clang: an llvm front end compiler for C and C++" +HOMEPAGE="http://www.llvm.org/" +SRC_URI="http://llvm.org/releases/3.0/llvm-3.0.tar.gz" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="groff" +CHECKSUM_MD5="a8e5f5f1c1adebae7b4a654c376a6005" +MESSAGE="This port only builds with gcc4. Use 'setgcc gcc4' before building." +BUILD { + cd llvm-3.0.src/tools + wget "http://llvm.org/releases/3.0/clang-3.0.tar.gz" + echo "Extracting clang llvm tool..." + tar xzf clang-3.0.tar.gz + mv clang-3.0.src clang + cd .. + ./configure --enable-optimized --prefix=`finddir B_COMMON_DIRECTORY` + make +} + +INSTALL { + cd llvm-3.0.src + make install +} + +LICENSE="UIUC" +COPYRIGHT="2003-2010 University of Illinois at Urbana-Champaign" diff --git a/sys-devel/clang/clang-3.2.bep b/sys-devel/clang/clang-3.2.bep new file mode 100644 index 000000000..56f007d2d --- /dev/null +++ b/sys-devel/clang/clang-3.2.bep @@ -0,0 +1,36 @@ +DESCRIPTION="clang: an llvm front end compiler for C and C++" +HOMEPAGE="http://www.llvm.org/" +SRC_URI="http://llvm.org/releases/3.2/llvm-3.2.src.tar.gz" +REVISION="1" +STATUS_HAIKU="untested" +DEPEND="groff" +CHECKSUM_MD5="71610289bbc819e3e15fdd562809a2d7" +MESSAGE="This port only builds with gcc4. Use 'setgcc gcc4' before building." +BUILD { + if [ ! -L /usr ]; then + ln -s /boot/system/ /usr + fi + cd llvm-3.2.src/tools + wget "http://llvm.org/releases/3.2/clang-3.2.src.tar.gz" + echo "Extracting clang llvm tool..." + tar xzf clang-3.2.src.tar.gz + mv clang-3.2.src clang + cd .. + cp -r /boot/common/data/libtool/config/. autoconf/ + cp -r /boot/common/data/libtool/config/. projects/sample/autoconf/ + ./configure --enable-optimized --prefix=`finddir B_COMMON_DIRECTORY` + make +} + +INSTALL { + cd llvm-3.2.src + make install +} + +TEST { + cd llvm-3.2.src + make check +} + +LICENSE="UIUC" +COPYRIGHT="2003-2012 University of Illinois at Urbana-Champaign" diff --git a/sys-devel/clang/licenses/UIUC b/sys-devel/clang/licenses/UIUC new file mode 100644 index 000000000..1b1047ca3 --- /dev/null +++ b/sys-devel/clang/licenses/UIUC @@ -0,0 +1,69 @@ +============================================================================== +LLVM Release License +============================================================================== +University of Illinois/NCSA +Open Source License + +Copyright (c) 2003-2011 University of Illinois at Urbana-Champaign. +All rights reserved. + +Developed by: + + LLVM Team + + University of Illinois at Urbana-Champaign + + http://llvm.org + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal with +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies +of the Software, and to permit persons to whom the Software is furnished to do +so, subject to the following conditions: + + * Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimers. + + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimers in the + documentation and/or other materials provided with the distribution. + + * Neither the names of the LLVM Team, University of Illinois at + Urbana-Champaign, nor the names of its contributors may be used to + endorse or promote products derived from this Software without specific + prior written permission. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +CONTRIBUTORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS WITH THE +SOFTWARE. + +============================================================================== +Copyrights and Licenses for Third Party Software Distributed with LLVM: +============================================================================== +The LLVM software contains code written by third parties. Such software will +have its own individual LICENSE.TXT file in the directory in which it appears. +This file will describe the copyrights, license, and restrictions which apply +to that code. + +The disclaimer of warranty in the University of Illinois Open Source License +applies to all code in the LLVM Distribution, and nothing in any of the +other licenses gives permission to use the names of the LLVM Team or the +University of Illinois to endorse or promote products derived from this +Software. + +The following pieces of software have additional or alternate copyrights, +licenses, and/or restrictions: + +Program Directory +------- --------- +Autoconf llvm/autoconf + llvm/projects/ModuleMaker/autoconf + llvm/projects/sample/autoconf +CellSPU backend llvm/lib/Target/CellSPU/README.txt +Google Test llvm/utils/unittest/googletest +OpenBSD regex llvm/lib/Support/{reg*, COPYRIGHT.regex} diff --git a/sys-devel/distcc/distcc-3.1-1.build b/sys-devel/distcc/distcc-3.1-1.build new file mode 100644 index 000000000..0a84ee52d --- /dev/null +++ b/sys-devel/distcc/distcc-3.1-1.build @@ -0,0 +1,5 @@ +cd distcc-3.1 +libtoolize --force --copy --install +./autogen.sh +./configure LDFLAGS=-L/boot/common/lib/python2.6/config --prefix=`finddir B_COMMON_DIRECTORY` +make diff --git a/sys-devel/distcc/distcc-3.1-1.install b/sys-devel/distcc/distcc-3.1-1.install new file mode 100644 index 000000000..4d4fb9d59 --- /dev/null +++ b/sys-devel/distcc/distcc-3.1-1.install @@ -0,0 +1,2 @@ +cd distcc-3.1 +make install diff --git a/sys-devel/distcc/distcc-3.1-1.patch b/sys-devel/distcc/distcc-3.1-1.patch new file mode 100644 index 000000000..465069fcf --- /dev/null +++ b/sys-devel/distcc/distcc-3.1-1.patch @@ -0,0 +1,100 @@ +diff -Naur distcc-3.1/Makefile.in distcc-3.1-haiku/Makefile.in +--- distcc-3.1/Makefile.in 2008-12-02 21:50:31.066060288 +0000 ++++ distcc-3.1-haiku/Makefile.in 2011-05-21 01:10:21.995098624 +0000 +@@ -554,7 +554,7 @@ + + # The include-server is a python app, so we use Python's build system. We pass + # the distcc version, the source location, the CPP flags (for location of the +-# includes), and the build location. ++# includes), LD flags and the build location. + include-server: + if test -z "$(INCLUDESERVER_PYTHON)"; then \ + echo "Not building $@: No suitable python found"; \ +@@ -564,6 +564,7 @@ + SRCDIR="$(srcdir)" \ + CFLAGS="$(CFLAGS) $(PYTHON_CFLAGS)" \ + CPPFLAGS="$(CPPFLAGS)" \ ++ LDFLAGS="$(LDFLAGS)" \ + $(INCLUDESERVER_PYTHON) "$(srcdir)/include_server/setup.py" \ + build \ + --build-base="$(include_server_builddir)" \ +diff -Naur distcc-3.1/configure.ac distcc-3.1-haiku/configure.ac +--- distcc-3.1/configure.ac 2008-12-02 21:50:31.066846720 +0000 ++++ distcc-3.1-haiku/configure.ac 2011-05-21 01:10:34.207618048 +0000 +@@ -329,9 +329,12 @@ + # only looks in /etc/hosts), so we only look for -lsocket if we need + # it. + AC_SEARCH_LIBS(gethostent, [nsl]) +-AC_SEARCH_LIBS(setsockopt, [socket]) ++AC_SEARCH_LIBS(setsockopt, [socket network]) + AC_SEARCH_LIBS(hstrerror, [resolv]) + AC_SEARCH_LIBS(inet_aton, [resolv]) ++AC_SEARCH_LIBS(strsep, [bsd]) ++AC_SEARCH_LIBS(wait3, [bsd]) ++AC_SEARCH_LIBS(wait4, [bsd]) + + if test x"$with_included_popt" != x"yes" && test x"$with_included_popt" != xno + then +@@ -379,6 +382,7 @@ + AC_CHECK_FUNCS([getrusage strsignal gettimeofday]) + AC_CHECK_FUNCS([getaddrinfo getnameinfo inet_ntop inet_ntoa]) + AC_CHECK_FUNCS([strndup strsep mmap strlcpy]) ++AC_CHECK_FUNCS([nice]) + + AC_CHECK_FUNCS([getloadavg]) + +@@ -471,6 +475,8 @@ + AC_DEFINE(HAVE_SOCKADDR_STORAGE, 1, [define if you have struct sockaddr_storage]),, + [#include ]) + ++AC_CHECK_MEMBERS([struct rusage.ru_minflt, struct rusage.ru_majflt]) ++ + AC_ARG_WITH(avahi, + AC_HELP_STRING([--without-avahi], [build without avahi])) + +diff -Naur distcc-3.1/src/daemon.c distcc-3.1-haiku/src/daemon.c +--- distcc-3.1/src/daemon.c 2008-12-02 21:50:25.053739520 +0000 ++++ distcc-3.1-haiku/src/daemon.c 2011-05-21 01:11:07.709361664 +0000 +@@ -172,15 +172,19 @@ + if ((ret = dcc_set_lifetime()) != 0) + dcc_exit(ret); + ++#ifdef HAVE_NICE + /* do this before giving away root */ + if (nice(opt_niceness) == -1) { + rs_log_warning("nice %d failed: %s", opt_niceness, + strerror(errno)); + /* continue anyhow */ + } ++#endif + ++#ifndef __HAIKU__ + if ((ret = dcc_discard_root()) != 0) + dcc_exit(ret); ++#endif + + /* Discard privileges before opening log so that if it's created, it has + * the right ownership. */ +diff -Naur distcc-3.1/src/exec.c distcc-3.1-haiku/src/exec.c +--- distcc-3.1/src/exec.c 2008-12-02 21:50:24.054263808 +0000 ++++ distcc-3.1-haiku/src/exec.c 2011-05-21 01:10:57.257687552 +0000 +@@ -488,12 +488,19 @@ + * critique_status(). */ + rs_trace("%s child %ld terminated with status %#x", + what, (long) ret_pid, *wait_status); ++#if defined HAVE_RUSAGE_RU_MINFLT && defined HAVE_RUSAGE_RU_MAJFLT + rs_log_info("%s times: user %ld.%06lds, system %ld.%06lds, " + "%ld minflt, %ld majflt", + what, + ru.ru_utime.tv_sec, (long) ru.ru_utime.tv_usec, + ru.ru_stime.tv_sec, (long) ru.ru_stime.tv_usec, + ru.ru_minflt, ru.ru_majflt); ++#else ++ rs_log_info("%s times: user %ld.%06lds, system %ld.%06lds", ++ what, ++ ru.ru_utime.tv_sec, (long) ru.ru_utime.tv_usec, ++ ru.ru_stime.tv_sec, (long) ru.ru_stime.tv_usec); ++#endif + + return 0; + } diff --git a/sys-devel/distcc/distcc-3.1-1.test b/sys-devel/distcc/distcc-3.1-1.test new file mode 100644 index 000000000..6bd69d58d --- /dev/null +++ b/sys-devel/distcc/distcc-3.1-1.test @@ -0,0 +1,2 @@ +cd distcc-3.1 +make check diff --git a/sys-devel/gettext/gettext-0.18.1.1-dev.bep b/sys-devel/gettext/gettext-0.18.1.1-dev.bep index cdc1bb475..dc485e35a 100644 --- a/sys-devel/gettext/gettext-0.18.1.1-dev.bep +++ b/sys-devel/gettext/gettext-0.18.1.1-dev.bep @@ -1,50 +1,22 @@ -DESCRIPTION="gettext" +DESCRIPTION="gettext-dev - full tools included" HOMEPAGE="http://www.gnu.org/software/gettext/" SRC_URI="http://ftp.gnu.org/pub/gnu/gettext/gettext-0.18.1.1.tar.gz" CHECKSUM_MD5="3dd55b952826d2b32f51308f2f91aa89" -REVISION="1" -STATUS_HAIKU="broken" -DEPEND="dev-libs/gnulib = 9999" +REVISION="2" +STATUS_HAIKU="stable" +DEPEND="" BUILD { cd gettext-0.18.1.1 - - if [ ! -e `haikuporter -t`/dev-libs/gnulib/work/gnulib-9999 ] ; then - echo "gnulib not found, so updating it now..." - haikuporter -i gnulib - fi - echo "Copying gnulib to gettext work directory..." - cp -a `haikuporter -t`/dev-libs/gnulib/work/gnulib-9999/lib/binary* gettext-tools/gnulib-lib/ - cp -a `haikuporter -t`/dev-libs/gnulib/work/gnulib-9999/lib/fseek* gettext-tools/gnulib-lib/ - cp -a `haikuporter -t`/dev-libs/gnulib/work/gnulib-9999/lib/iswblank* gettext-tools/gnulib-lib/ - cp -a `haikuporter -t`/dev-libs/gnulib/work/gnulib-9999/lib/fcntl* gettext-tools/gnulib-lib/ - - cp -a build-aux gettext-tools/ - cd gettext-tools - echo "AC_CONFIG_MACRO_DIR([m4])" >> configure.ac libtoolize --force --copy --install - cd .. - libtoolize --force --copy --install - sed -i 's/AC_INIT/AC_INIT([gettext],[0.18.1.1])/' configure.ac ./autogen.sh --quick --skip-gnulib - cd gettext-runtime - sed -i 's/AC_INIT/AC_INIT([gettext-runtime],[0.18.1.1])/' configure.ac - sed -i 's/gl_INIT_PACKAGE/dnl gl_INIT_PACKAGE was here/' configure.ac - sed -i 's/gl_WOE32_DLL/dnl gl_WOE32_DLL was here/' configure.ac - echo "AC_CONFIG_MACRO_DIR([m4])" >> configure.ac - libtoolize --force --copy --install - autoconf -Wnone - aclocal -I m4 -I gnulib-m4 --install --force - libtoolize --force --copy --install - autoconf -Wnone - export EXTRA_CONF="--disable-java" - cd ../ ./configure --prefix=`finddir B_COMMON_DIRECTORY` \ + --disable-java --without-git \ --datarootdir=`finddir B_COMMON_DATA_DIRECTORY` \ - --docdir=`finddir B_COMMON_DOCUMENTATION_DIRECTORY`/doc \ + --docdir=`finddir B_COMMON_DOCUMENTATION_DIRECTORY`/doc/gettext \ --infodir=`finddir B_COMMON_DOCUMENTATION_DIRECTORY`/info \ --localedir=`finddir B_COMMON_DATA_DIRECTORY`/locale \ --mandir=`finddir B_COMMON_DOCUMENTATION_DIRECTORY`/man - make + make } INSTALL { @@ -53,9 +25,7 @@ INSTALL { } TEST { - cd gettext-0.18.1.1/gettext-tools - make check - cd ../gettext-0.18.1.1/gettext-runtime + cd gettext-0.18.1.1/gettext-runtime/tests make check } diff --git a/sys-devel/gettext/gettext-0.18.1.1.bep b/sys-devel/gettext/gettext-0.18.1.1.bep index efab1299d..9254ac9b2 100644 --- a/sys-devel/gettext/gettext-0.18.1.1.bep +++ b/sys-devel/gettext/gettext-0.18.1.1.bep @@ -2,7 +2,7 @@ DESCRIPTION="gettext" HOMEPAGE="http://www.gnu.org/software/gettext/" SRC_URI="http://ftp.gnu.org/pub/gnu/gettext/gettext-0.18.1.1.tar.gz" CHECKSUM_MD5="3dd55b952826d2b32f51308f2f91aa89" -REVISION="1" +REVISION="2" STATUS_HAIKU="stable" DEPEND="" BUILD { @@ -24,7 +24,7 @@ BUILD { # export LDFLAGS="-lnetwork -liconv" ./configure --prefix=`finddir B_COMMON_DIRECTORY` \ --datarootdir=`finddir B_COMMON_DATA_DIRECTORY` \ - --docdir=`finddir B_COMMON_DOCUMENTATION_DIRECTORY`/doc \ + --docdir=`finddir B_COMMON_DOCUMENTATION_DIRECTORY`/doc/gettext \ --infodir=`finddir B_COMMON_DOCUMENTATION_DIRECTORY`/info \ --localedir=`finddir B_COMMON_DATA_DIRECTORY`/locale \ --mandir=`finddir B_COMMON_DOCUMENTATION_DIRECTORY`/man diff --git a/sys-devel/gettext/patches/gettext-0.18.1.1-dev.patch b/sys-devel/gettext/patches/gettext-0.18.1.1-dev.patch new file mode 100644 index 000000000..0250765dc --- /dev/null +++ b/sys-devel/gettext/patches/gettext-0.18.1.1-dev.patch @@ -0,0 +1,11 @@ +--- gettext-0.18.1.1-orig/gettext-tools/gnulib-lib/binary-io.h 2010-05-24 09:42:36.028573696 +0000 ++++ gettext-0.18.1.1/gettext-tools/gnulib-lib/binary-io.h 2012-08-03 20:17:21.155189248 +0000 +@@ -31,7 +31,7 @@ + # define O_BINARY _O_BINARY + # define O_TEXT _O_TEXT + #endif +-#if defined __BEOS__ || defined __HAIKU__ ++#if defined __BEOS__ + /* BeOS 5 and Haiku have O_BINARY and O_TEXT, but they have no effect. */ + # undef O_BINARY + # undef O_TEXT diff --git a/sys-devel/gettext/patches/gettext-0.18.1.1.patch b/sys-devel/gettext/patches/gettext-0.18.1.1.patch index 8ff3a0f51..a96aa8646 100644 --- a/sys-devel/gettext/patches/gettext-0.18.1.1.patch +++ b/sys-devel/gettext/patches/gettext-0.18.1.1.patch @@ -1,7 +1,7 @@ -diff -urN gettext-0.18.1.1/gettext-runtime/libasprintf/configure.ac gettext-0.18.1.1-haiku/gettext-runtime/libasprintf/configure.ac ---- gettext-0.18.1.1/gettext-runtime/libasprintf/configure.ac 2010-06-06 12:49:57.044040192 +0000 -+++ gettext-0.18.1.1-haiku/gettext-runtime/libasprintf/configure.ac 2011-01-14 15:54:38.003670016 +0000 -@@ -44,7 +44,7 @@ +diff -up gettext-0.18.1.1/gettext-runtime/libasprintf/configure.ac.orig gettext-0.18.1.1/gettext-runtime/libasprintf/configure.ac +--- gettext-0.18.1.1/gettext-runtime/libasprintf/configure.ac.orig 2010-06-06 06:49:57.058720256 -0600 ++++ gettext-0.18.1.1/gettext-runtime/libasprintf/configure.ac 2012-05-04 20:40:00.847511552 -0600 +@@ -44,7 +44,7 @@ LT_INIT([win32-dll]) case "$host_os" in # On Cygwin, without -no-undefined, a warning is emitted and only a static # library is built. @@ -10,10 +10,10 @@ diff -urN gettext-0.18.1.1/gettext-runtime/libasprintf/configure.ac gettext-0.18 *) LTNOUNDEF='' ;; esac AC_SUBST([LTNOUNDEF]) -diff -urN gettext-0.18.1.1/gettext-tools/configure.ac gettext-0.18.1.1-haiku/gettext-tools/configure.ac ---- gettext-0.18.1.1/gettext-tools/configure.ac 2010-06-06 20:04:04.061079552 +0000 -+++ gettext-0.18.1.1-haiku/gettext-tools/configure.ac 2011-01-14 15:54:53.031981568 +0000 -@@ -100,7 +100,7 @@ +diff -up gettext-0.18.1.1/gettext-tools/configure.ac.orig gettext-0.18.1.1/gettext-tools/configure.ac +--- gettext-0.18.1.1/gettext-tools/configure.ac.orig 2010-06-06 14:04:04.007602176 -0600 ++++ gettext-0.18.1.1/gettext-tools/configure.ac 2012-05-04 20:40:00.860880896 -0600 +@@ -100,7 +100,7 @@ LT_LANG([Windows Resource]) case "$host_os" in # On Cygwin, without -no-undefined, a warning is emitted and only a static # library is built. @@ -22,3 +22,19 @@ diff -urN gettext-0.18.1.1/gettext-tools/configure.ac gettext-0.18.1.1-haiku/get *) LTNOUNDEF='' ;; esac AC_SUBST([LTNOUNDEF]) +diff -up gettext-0.18.1.1/gettext-tools/gnulib-lib/binary-io.h.orig gettext-0.18.1.1/gettext-tools/gnulib-lib/binary-io.h +--- gettext-0.18.1.1/gettext-tools/gnulib-lib/binary-io.h.orig 2012-05-04 21:23:18.533200896 -0600 ++++ gettext-0.18.1.1/gettext-tools/gnulib-lib/binary-io.h 2012-05-04 21:23:54.882900992 -0600 +@@ -31,11 +31,6 @@ + # define O_BINARY _O_BINARY + # define O_TEXT _O_TEXT + #endif +-#if defined __BEOS__ || defined __HAIKU__ +- /* BeOS 5 and Haiku have O_BINARY and O_TEXT, but they have no effect. */ +-# undef O_BINARY +-# undef O_TEXT +-#endif + + /* SET_BINARY (fd); + changes the file descriptor fd to perform binary I/O. */ +diff -up gettext-0.18.1.1/gettext-tools/gnulib-lib/pipe2.c.orig gettext-0.18.1.1/gettext-tools/gnulib-lib/pipe2.c diff --git a/sys-devel/jam/jam-2.5.bep b/sys-devel/jam/jam-2.5.bep index ccb7453df..42d0b0c75 100644 --- a/sys-devel/jam/jam-2.5.bep +++ b/sys-devel/jam/jam-2.5.bep @@ -1,19 +1,19 @@ -DESCRIPTION="jam" -HOMEPAGE="http://www.perforce.com/jam/jam.html" -SRC_URI="svn://svn.berlios.de/haiku/buildtools/trunk/jam" +DESCRIPTION="jam" +HOMEPAGE="http://www.perforce.com/jam/jam.html" +SRC_URI="git://git.haiku-os.org/buildtools" REVISION="1" STATUS_HAIKU="stable" DEPEND="" #CHECKSUM_MD5="" BUILD { - cd jam-2.5 - jam + cd jam-2.5/jam + make } INSTALL { - cd jam-2.5 - mkdir -p ${DESTDIR}/boot/common/bin - cp -a bin.haikux86/jam ${DESTDIR}/boot/common/bin/jam + cd jam-2.5/jam + mkdir -p ${DESTDIR}`finddir B_COMMON_BIN_DIRECTORY` + cp -a bin.haikux86/jam ${DESTDIR}`finddir B_COMMON_BIN_DIRECTORY`/jam } LICENSE="Jam" COPYRIGHT="1993-2003 Christopher Seiwald" diff --git a/sys-devel/libtool/libtool-2.2.10.bep b/sys-devel/libtool/libtool-2.2.10.bep index e298ca2d0..186945748 100644 --- a/sys-devel/libtool/libtool-2.2.10.bep +++ b/sys-devel/libtool/libtool-2.2.10.bep @@ -8,7 +8,7 @@ DEPEND="" BUILD { cd libtool-2.2.10 ./bootstrap - ./configure --prefix=/boot/common + ./configure --prefix=`finddir B_COMMON_DIRECTORY` make } diff --git a/sys-devel/libtool/libtool-2.2.6.bep b/sys-devel/libtool/libtool-2.2.6.bep index a0135c4b0..edfbbcdae 100644 --- a/sys-devel/libtool/libtool-2.2.6.bep +++ b/sys-devel/libtool/libtool-2.2.6.bep @@ -8,7 +8,7 @@ DEPEND="" BUILD { cd libtool-2.2.6 ./bootstrap - ./configure --prefix=/boot/common + ./configure --prefix=`finddir B_COMMON_DIRECTORY` make } diff --git a/sys-devel/libtool/libtool-2.2.6b.bep b/sys-devel/libtool/libtool-2.2.6b.bep index d2625a7ba..20e87fecc 100644 --- a/sys-devel/libtool/libtool-2.2.6b.bep +++ b/sys-devel/libtool/libtool-2.2.6b.bep @@ -8,7 +8,7 @@ DEPEND="" BUILD { cd libtool-2.2.6b ./bootstrap - ./configure --prefix=/boot/common + ./configure --prefix=`finddir B_COMMON_DIRECTORY` make } diff --git a/sys-devel/libtool/libtool-2.2.7b.bep b/sys-devel/libtool/libtool-2.2.7b.bep index 73b77ca94..bbc0f7af6 100644 --- a/sys-devel/libtool/libtool-2.2.7b.bep +++ b/sys-devel/libtool/libtool-2.2.7b.bep @@ -8,7 +8,7 @@ DEPEND="" BUILD { cd libtool-2.2.7b ./bootstrap - ./configure --prefix=/boot/common + ./configure --prefix=`finddir B_COMMON_DIRECTORY` make } diff --git a/sys-devel/libtool/libtool-2.2.8.bep b/sys-devel/libtool/libtool-2.2.8.bep index 9ef7d80cb..58dadb83a 100644 --- a/sys-devel/libtool/libtool-2.2.8.bep +++ b/sys-devel/libtool/libtool-2.2.8.bep @@ -8,7 +8,7 @@ DEPEND="" BUILD { cd libtool-2.2.8 ./bootstrap - ./configure --prefix=/boot/common + ./configure --prefix=`finddir B_COMMON_DIRECTORY` make } diff --git a/sys-devel/libtool/libtool-2.2.x.bep b/sys-devel/libtool/libtool-2.2.x.bep index c4c27b294..6ba36a6ad 100644 --- a/sys-devel/libtool/libtool-2.2.x.bep +++ b/sys-devel/libtool/libtool-2.2.x.bep @@ -9,7 +9,7 @@ DEPEND="" BUILD { cd libtool-2.2.x ./bootstrap - ./configure --prefix=/boot/common + ./configure --prefix=`finddir B_COMMON_DIRECTORY` make } diff --git a/sys-devel/libtool/libtool-2.4.2.bep b/sys-devel/libtool/libtool-2.4.2.bep new file mode 100644 index 000000000..ffb7ebf6b --- /dev/null +++ b/sys-devel/libtool/libtool-2.4.2.bep @@ -0,0 +1,29 @@ +DESCRIPTION="libtool - a generic library support script" +HOMEPAGE="http://www.gnu.org/software/libtool" +SRC_URI="ftp://ftp.gnu.org/gnu/libtool/libtool-2.4.2.tar.gz" +CHECKSUM_MD5="d2f3b7d4627e69e13514a40e72a24d50" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="" +BUILD { + cd libtool-2.4.2 + ./bootstrap + ./configure --prefix=`finddir B_COMMON_DIRECTORY` \ + --datarootdir=`finddir B_COMMON_DATA_DIRECTORY` \ + --infodir=`finddir B_COMMON_DOCUMENTATION_DIRECTORY`/info \ + --mandir=`finddir B_COMMON_DOCUMENTATION_DIRECTORY`/man + make +} + +INSTALL { + cd libtool-2.4.2 + make install +} + +TEST { + cd libtool-2.4.2 + make check +} + +LICENSE="GNU GPL v2" +COPYRIGHT="2004-2011 Free Software Foundation, Inc." diff --git a/sys-devel/libtool/patches/libtool-2.4.2.patch b/sys-devel/libtool/patches/libtool-2.4.2.patch new file mode 100644 index 000000000..c644ca09d --- /dev/null +++ b/sys-devel/libtool/patches/libtool-2.4.2.patch @@ -0,0 +1,12 @@ +diff -urN libtool-2.4.2/libltdl/m4/libtool.m4 libtool-2.4.2-haiku/libltdl/m4/libtool.m4 +--- libtool-2.4.2/libltdl/m4/libtool.m4 2010-09-22 01:41:19.046923776 -0700 ++++ libtool-2.4.2-haiku/libltdl/m4/libtool.m4 2011-07-26 09:06:47.362807296 -0700 +@@ -2472,7 +2472,7 @@ + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LIBRARY_PATH +- shlibpath_overrides_runpath=yes ++ shlibpath_overrides_runpath=no + sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib' + hardcode_into_libs=yes + ;; diff --git a/sys-devel/llvm/licenses/UIUC b/sys-devel/llvm/licenses/UIUC new file mode 100644 index 000000000..1b1047ca3 --- /dev/null +++ b/sys-devel/llvm/licenses/UIUC @@ -0,0 +1,69 @@ +============================================================================== +LLVM Release License +============================================================================== +University of Illinois/NCSA +Open Source License + +Copyright (c) 2003-2011 University of Illinois at Urbana-Champaign. +All rights reserved. + +Developed by: + + LLVM Team + + University of Illinois at Urbana-Champaign + + http://llvm.org + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal with +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies +of the Software, and to permit persons to whom the Software is furnished to do +so, subject to the following conditions: + + * Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimers. + + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimers in the + documentation and/or other materials provided with the distribution. + + * Neither the names of the LLVM Team, University of Illinois at + Urbana-Champaign, nor the names of its contributors may be used to + endorse or promote products derived from this Software without specific + prior written permission. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +CONTRIBUTORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS WITH THE +SOFTWARE. + +============================================================================== +Copyrights and Licenses for Third Party Software Distributed with LLVM: +============================================================================== +The LLVM software contains code written by third parties. Such software will +have its own individual LICENSE.TXT file in the directory in which it appears. +This file will describe the copyrights, license, and restrictions which apply +to that code. + +The disclaimer of warranty in the University of Illinois Open Source License +applies to all code in the LLVM Distribution, and nothing in any of the +other licenses gives permission to use the names of the LLVM Team or the +University of Illinois to endorse or promote products derived from this +Software. + +The following pieces of software have additional or alternate copyrights, +licenses, and/or restrictions: + +Program Directory +------- --------- +Autoconf llvm/autoconf + llvm/projects/ModuleMaker/autoconf + llvm/projects/sample/autoconf +CellSPU backend llvm/lib/Target/CellSPU/README.txt +Google Test llvm/utils/unittest/googletest +OpenBSD regex llvm/lib/Support/{reg*, COPYRIGHT.regex} diff --git a/sys-devel/llvm/llvm-3.0.bep b/sys-devel/llvm/llvm-3.0.bep new file mode 100644 index 000000000..63e4b04b7 --- /dev/null +++ b/sys-devel/llvm/llvm-3.0.bep @@ -0,0 +1,21 @@ +DESCRIPTION="LLVM is a collection of modular and reuseable compiler and toolchain technologies." +HOMEPAGE="http://www.llvm.org/" +SRC_URI="http://llvm.org/releases/3.0/llvm-3.0.tar.gz" +REVISION="1" +STATUS_HAIKU="untested" +DEPEND="" +CHECKSUM_MD5="a8e5f5f1c1adebae7b4a654c376a6005" +MESSAGE="This port only builds with gcc4. Use 'setgcc gcc4' before building." +BUILD { + cd llvm-3.0.src + ./configure --enable-optimized --prefix=`finddir B_COMMON_DIRECTORY` + make +} + +INSTALL { + cd llvm-3.0.src + make install +} + +LICENSE="UIUC" +COPYRIGHT="2003-2011 University of Illinois at Urbana-Champaign" diff --git a/sys-devel/llvm/llvm-3.2.bep b/sys-devel/llvm/llvm-3.2.bep new file mode 100644 index 000000000..1fdabddd4 --- /dev/null +++ b/sys-devel/llvm/llvm-3.2.bep @@ -0,0 +1,26 @@ +DESCRIPTION="LLVM is a collection of modular and reuseable compiler and toolchain technologies." +HOMEPAGE="http://www.llvm.org/" +SRC_URI="http://llvm.org/releases/3.2/llvm-3.2.src.tar.gz" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="" +CHECKSUM_MD5="71610289bbc819e3e15fdd562809a2d7" +MESSAGE="This port only builds with gcc4. Use 'setgcc gcc4' before building." +BUILD { + if [ ! -L /usr ]; then + ln -s /boot/system/ /usr + fi + cd llvm-3.2.src + cp -r /boot/common/data/libtool/config/. autoconf/ + cp -r /boot/common/data/libtool/config/. projects/sample/autoconf/ + ./configure --enable-optimized --prefix=`finddir B_COMMON_DIRECTORY` + make +} + +INSTALL { + cd llvm-3.2.src + make install +} + +LICENSE="UIUC" +COPYRIGHT="2003-2012 University of Illinois at Urbana-Champaign" diff --git a/sys-devel/patch/patch-2.7.1.bep b/sys-devel/patch/patch-2.7.1.bep new file mode 100644 index 000000000..ce005d780 --- /dev/null +++ b/sys-devel/patch/patch-2.7.1.bep @@ -0,0 +1,20 @@ +DESCRIPTION="Utility to apply diffs to files" +HOMEPAGE="http://www.gnu.org/software/patch/" +SRC_URI="http://ftp.gnu.org/pub/gnu/patch/patch-2.7.1.tar.bz2" +CHECKSUM_MD5="0881a7c6477862fc395f373ada0ec6b6" +STATUS_HAIKU="stable" +REVISION="1" +BUILD { + cd patch-2.7.1 + ./configure --prefix=`finddir B_COMMON_DIRECTORY` \ + --mandir=`finddir B_COMMON_DOCUMENTATION_DIRECTORY`/man + make +} + +INSTALL { + cd patch-2.7.1 + make install +} + +LICENSE="GNU GPL v3" +COPYRIGHT="2012 Free Software Foundation, Inc." \ No newline at end of file diff --git a/sys-fs/e2fsprogs/e2fsprogs-1.43-git.bep b/sys-fs/e2fsprogs/e2fsprogs-1.43-git.bep new file mode 100644 index 000000000..cc5b02d07 --- /dev/null +++ b/sys-fs/e2fsprogs/e2fsprogs-1.43-git.bep @@ -0,0 +1,28 @@ +DESCRIPTION="Standard EXT2/EXT3/EXT4 filesystem utilities" +HOMEPAGE="http://e2fsprogs.sourceforge.net/" +SRC_URI="git://git.kernel.org/pub/scm/fs/ext2/e2fsprogs.git" +#CHECKSUM_MD5="" +REVISION="1" +STATUS_HAIKU="untested" +DEPEND="" + +BUILD { + cd e2fsprogs + autoconf + libdir=`finddir B_COMMON_LIB_DIRECTORY` + ./configure \ + --enable-symlink-build \ + --enable-symlink-install \ + --disable-tls --enable-quota=no \ + --disable-fsck \ + --enable-elf-shlibs + make +} + +INSTALL { + cd e2fsprogs + make install-libs +} + +LICENSE="GNU GPL v2" +COPYRIGHT="2004-2012 Free Software Foundation, Inc." diff --git a/sys-fs/e2fsprogs/e2fsprogs-1.43.bep b/sys-fs/e2fsprogs/e2fsprogs-1.43.bep new file mode 100644 index 000000000..298212606 --- /dev/null +++ b/sys-fs/e2fsprogs/e2fsprogs-1.43.bep @@ -0,0 +1,28 @@ +DESCRIPTION="Standard EXT2/EXT3/EXT4 filesystem utilities" +HOMEPAGE="http://e2fsprogs.sourceforge.net/" +SRC_URI="http://downloads.sourceforge.net/project/e2fsprogs/e2fsprogs-TEST/1.43-WIP-0922/e2fsprogs-1.43-WIP-2012-09-22.tar.gz?r=http%3A%2F%2Fsourceforge.net%2Fprojects%2Fe2fsprogs%2Ffiles%2Fe2fsprogs-TEST%2F1.43-WIP-0922%2F&ts=1356043363&use_mirror=switch" +CHECKSUM_MD5="653625e10de6ee038e1ee40480de9787" +REVISION="1" +STATUS_HAIKU="broken" +MESSAGE="This port only builds with gcc4. Use 'setgcc gcc4' before building." +DEPEND="" + +BUILD { + cd e2fsprogs-1.43 + autoconf + libdir=`finddir B_COMMON_LIB_DIRECTORY` + ./configure --prefix=`finddir B_COMMON_DIRECTORY` \ + USE=-loop-aes --enable-symlink-build \ + --enable-symlink-install --disable-tls \ + --enable-quota=no --disable-fsck \ + --enable-elf-shlibs + make +} + +INSTALL { + cd e2fsprogs-1.43 + make install-libs +} + +LICENSE="GNU GPL v2" +COPYRIGHT="2004-2012 Free Software Foundation, Inc." diff --git a/sys-fs/e2fsprogs/patches/e2fsprogs-1.43-git.patch b/sys-fs/e2fsprogs/patches/e2fsprogs-1.43-git.patch new file mode 100644 index 000000000..64306c456 --- /dev/null +++ b/sys-fs/e2fsprogs/patches/e2fsprogs-1.43-git.patch @@ -0,0 +1,476 @@ +diff --git a/configure.in b/configure.in +index ac3cd92..296021a 100644 +--- a/configure.in ++++ b/configure.in +@@ -96,8 +96,11 @@ AC_MSG_ERROR([--with-ldopts no longer supported; use LDFLAGS= instead])) + dnl + AC_PROG_CC + if test "$GCC" = yes; then +- RDYNAMIC="-rdynamic" +- AC_SUBST(RDYNAMIC) ++ case "$host_os" in ++ haiku*) RDYNAMIC="-Wl,-export-dynamic" ;; ++ *) RDYNAMIC="-rdynamic" ;; ++ esac ++ AC_SUBST(RDYNAMIC) + fi + AC_PROG_CPP + dnl +@@ -1051,6 +1054,7 @@ AC_CHECK_FUNCS(m4_flatten([ + backtrace + blkid_probe_get_topology + chflags ++ daemon + fallocate + fallocate64 + fchown +@@ -1094,9 +1098,10 @@ AC_CHECK_FUNCS(m4_flatten([ + dnl + dnl Check to see if -lsocket is required (solaris) to make something + dnl that uses socket() to compile; this is needed for the UUID library ++dnl Haiku needs -lnetwork to get socket(). + dnl + SOCKET_LIB='' +-AC_CHECK_LIB(socket, socket, [SOCKET_LIB=-lsocket]) ++AC_CHECK_LIB(socket, socket, [SOCKET_LIB=-lsocket],[AC_CHECK_LIB(network, socket, [SOCKET_LIB=-lnetwork])]) + AC_SUBST(SOCKET_LIB) + dnl + dnl See if optreset exists +@@ -1187,6 +1192,16 @@ linux* | gnu* | k*bsd*-gnu) + fi + fi + ;; ++haiku*) ++ if test "$prefix" = NONE ; then ++ prefix="`finddir B_COMMON_DIRECTORY`"; ++ AC_MSG_RESULT([On $host_os systems, prefix defaults to `finddir B_COMMON_DIRECTORY`]) ++ if test "$sbindir" = '${exec_prefix}/sbin' ; then ++ AC_MSG_RESULT([...and sbindir defaults to `finddir B_COMMON_DIRECTORY`/bin]) ++ mandir="`finddir B_COMMON_DIRECTORY`/bin" ++ fi ++ fi ++;; + esac + if test "$root_prefix" = NONE ; then + if test "$prefix" = NONE ; then +diff --git a/contrib/spd_readdir.c b/contrib/spd_readdir.c +index 8345fa1..b5984e9 100644 +--- a/contrib/spd_readdir.c ++++ b/contrib/spd_readdir.c +@@ -254,7 +254,7 @@ DIR *opendir(const char *name) + dirstruct = alloc_dirstruct(dir); + if (!dirstruct) { + (*real_closedir)(dir); +- errno = -ENOMEM; ++ errno = ENOMEM; + return NULL; + } + +@@ -287,7 +287,7 @@ DIR *fdopendir(int fd) + dirstruct = alloc_dirstruct(dir); + if (!dirstruct) { + (*real_closedir)(dir); +- errno = -ENOMEM; ++ errno = ENOMEM; + return NULL; + } + +diff --git a/e2fsck/e2fsck.h b/e2fsck/e2fsck.h +index 09a9d08..6cb3746 100644 +--- a/e2fsck/e2fsck.h ++++ b/e2fsck/e2fsck.h +@@ -67,7 +67,9 @@ + #define E2FSCK_ATTR(x) + #endif + ++#ifdef CONFIG_QUOTA + #include "quota/mkquota.h" ++#endif + + /* + * Exit codes used by fsck-type programs +@@ -320,7 +322,9 @@ struct e2fsck_struct { + /* + * Ext4 quota support + */ ++#ifdef CONFIG_QUOTA + quota_ctx_t qctx; ++#endif + #ifdef RESOURCE_TRACK + /* + * For timing purposes +diff --git a/e2fsck/logfile.c b/e2fsck/logfile.c +index c48b8eb..ec45dd3 100644 +--- a/e2fsck/logfile.c ++++ b/e2fsck/logfile.c +@@ -233,10 +233,14 @@ static FILE *save_output(const char *s0, const char *s1, const char *s2) + } + + if (pid == 0) { ++#ifdef HAVE_DAEMON + if (daemon(0, 0) < 0) { + perror("daemon"); + exit(1); + } ++#else ++#warning daemon() not present ++#endif + /* + * Grab the output from our parent + */ +diff --git a/e2fsck/pass1.c b/e2fsck/pass1.c +index a20b57b..253a681 100644 +--- a/e2fsck/pass1.c ++++ b/e2fsck/pass1.c +@@ -2206,11 +2206,13 @@ static void check_blocks(e2fsck_t ctx, struct problem_context *pctx, + } + } + ++#ifdef CONFIG_QUOTA + if (ino == EXT2_ROOT_INO || ino >= EXT2_FIRST_INODE(ctx->fs->super)) { + quota_data_add(ctx->qctx, inode, ino, + pb.num_blocks * fs->blocksize); + quota_data_inodes(ctx->qctx, inode, ino, +1); + } ++#endif + + if (!(fs->super->s_feature_ro_compat & + EXT4_FEATURE_RO_COMPAT_HUGE_FILE) || +diff --git a/e2fsck/pass1b.c b/e2fsck/pass1b.c +index 05cbd10..a4bae9e 100644 +--- a/e2fsck/pass1b.c ++++ b/e2fsck/pass1b.c +@@ -644,8 +644,10 @@ static void delete_file(e2fsck_t ctx, ext2_ino_t ino, + if (ctx->inode_bad_map) + ext2fs_unmark_inode_bitmap2(ctx->inode_bad_map, ino); + ext2fs_inode_alloc_stats2(fs, ino, -1, LINUX_S_ISDIR(inode.i_mode)); ++#ifdef CONFIG_QUOTA + quota_data_sub(ctx->qctx, &inode, ino, pb.dup_blocks * fs->blocksize); + quota_data_inodes(ctx->qctx, &inode, ino, -1); ++#endif + + /* Inode may have changed by block_iterate, so reread it */ + e2fsck_read_inode(ctx, ino, &inode, "delete_file"); +@@ -677,7 +679,9 @@ static void delete_file(e2fsck_t ctx, ext2_ino_t ino, + delete_file_block(fs, &blk, + BLOCK_COUNT_EXTATTR, 0, 0, &pb); + ext2fs_file_acl_block_set(fs, &inode, blk); ++#ifdef CONFIG_QUOTA + quota_data_sub(ctx->qctx, &inode, ino, fs->blocksize); ++#endif + } + } + } +diff --git a/e2fsck/pass3.c b/e2fsck/pass3.c +index a379e9b..0d3af58 100644 +--- a/e2fsck/pass3.c ++++ b/e2fsck/pass3.c +@@ -491,8 +491,10 @@ ext2_ino_t e2fsck_get_lost_and_found(e2fsck_t ctx, int fix) + ext2fs_icount_store(ctx->inode_count, ino, 2); + ext2fs_icount_store(ctx->inode_link_info, ino, 2); + ctx->lost_and_found = ino; ++#ifdef CONFIG_QUOTA + quota_data_add(ctx->qctx, &inode, ino, fs->blocksize); + quota_data_inodes(ctx->qctx, &inode, ino, +1); ++#endif + #if 0 + printf("/lost+found created; inode #%lu\n", ino); + #endif +@@ -802,7 +804,9 @@ errcode_t e2fsck_expand_directory(e2fsck_t ctx, ext2_ino_t dir, + + inode.i_size = (es.last_block + 1) * fs->blocksize; + ext2fs_iblk_add_blocks(fs, &inode, es.newblocks); ++#ifdef CONFIG_QUOTA + quota_data_add(ctx->qctx, &inode, dir, es.newblocks * fs->blocksize); ++#endif + + e2fsck_write_inode(ctx, dir, &inode, "expand_directory"); + +diff --git a/e2fsck/pass4.c b/e2fsck/pass4.c +index 2d55180..c5ca971 100644 +--- a/e2fsck/pass4.c ++++ b/e2fsck/pass4.c +@@ -64,7 +64,9 @@ static int disconnect_inode(e2fsck_t ctx, ext2_ino_t i, + e2fsck_read_bitmaps(ctx); + ext2fs_inode_alloc_stats2(fs, i, -1, + LINUX_S_ISDIR(inode->i_mode)); ++#ifdef CONFIG_QUOTA + quota_data_inodes(ctx->qctx, inode, i, -1); ++#endif + return 0; + } + } +diff --git a/e2fsck/quota.c b/e2fsck/quota.c +index 7a1476e..2dc01ff 100644 +--- a/e2fsck/quota.c ++++ b/e2fsck/quota.c +@@ -21,6 +21,7 @@ + static void move_quota_inode(ext2_filsys fs, ext2_ino_t from_ino, + ext2_ino_t to_ino, int qtype) + { ++#ifdef CONFIG_QUOTA + struct ext2_inode inode; + char qf_name[QUOTA_NAME_LEN]; + +@@ -46,10 +47,12 @@ static void move_quota_inode(ext2_filsys fs, ext2_ino_t from_ino, + /* Clear out the original inode in the inode-table block. */ + memset(&inode, 0, sizeof(struct ext2_inode)); + ext2fs_write_inode(fs, from_ino, &inode); ++#endif + } + + void e2fsck_hide_quota(e2fsck_t ctx) + { ++#ifdef CONFIG_QUOTA + struct ext2_super_block *sb = ctx->fs->super; + struct problem_context pctx; + ext2_filsys fs = ctx->fs; +@@ -79,4 +82,5 @@ void e2fsck_hide_quota(e2fsck_t ctx) + } + + return; ++#endif + } +diff --git a/e2fsck/unix.c b/e2fsck/unix.c +index 5b705ed..93e270e 100644 +--- a/e2fsck/unix.c ++++ b/e2fsck/unix.c +@@ -1616,6 +1616,7 @@ print_unsupp_features: + journal_size = -1; + + if (sb->s_feature_ro_compat & EXT4_FEATURE_RO_COMPAT_QUOTA) { ++#ifdef CONFIG_QUOTA + /* Quotas were enabled. Do quota accounting during fsck. */ + if ((sb->s_usr_quota_inum && sb->s_grp_quota_inum) || + (!sb->s_usr_quota_inum && !sb->s_grp_quota_inum)) +@@ -1624,6 +1625,11 @@ print_unsupp_features: + qtype = sb->s_usr_quota_inum ? USRQUOTA : GRPQUOTA; + + quota_init_context(&ctx->qctx, ctx->fs, qtype); ++#else ++ log_err(ctx, _("%s: e2fsck not compiled with QUOTA support,\n\t" ++ "but filesystem %s has QUOTA enabled.\n"), ++ ctx->program_name, ctx->device_name); ++#endif + } + + run_result = e2fsck_run(ctx); +@@ -1658,6 +1664,7 @@ print_unsupp_features: + } + no_journal: + ++#ifdef CONFIG_QUOTA + if (ctx->qctx) { + int i, needs_writeout; + for (i = 0; i < MAXQUOTAS; i++) { +@@ -1673,6 +1680,7 @@ no_journal: + } + quota_release_context(&ctx->qctx); + } ++#endif + + if (run_result == E2F_FLAG_RESTART) { + log_out(ctx, _("Restarting e2fsck from the beginning...\n")); +diff --git a/lib/blkid/devname.c b/lib/blkid/devname.c +index a6673c1..c2ea2f7 100644 +--- a/lib/blkid/devname.c ++++ b/lib/blkid/devname.c +@@ -40,6 +40,10 @@ + + #include "blkidP.h" + ++#ifndef makedev ++#define makedev(major,minor) (-1) ++#endif ++ + /* + * Find a dev struct in the cache by device name, if available. + * +diff --git a/lib/ext2fs/bmap64.h b/lib/ext2fs/bmap64.h +index c5384c9..4573fc6 100644 +--- a/lib/ext2fs/bmap64.h ++++ b/lib/ext2fs/bmap64.h +@@ -9,6 +9,8 @@ + * %End-Header% + */ + ++#include ++ + struct ext2_bmap_statistics { + int type; + struct timeval created; +diff --git a/lib/ext2fs/csum.c b/lib/ext2fs/csum.c +index ebd544f..f72525b 100644 +--- a/lib/ext2fs/csum.c ++++ b/lib/ext2fs/csum.c +@@ -722,6 +722,7 @@ __u16 ext2fs_group_desc_csum(ext2_filsys fs, dgrp_t group) + __u16 crc = 0; + struct ext2_group_desc *desc; + size_t size; ++ size_t offset; + + size = fs->super->s_desc_size; + if (size < EXT2_MIN_DESC_SIZE) +@@ -764,7 +765,7 @@ __u16 ext2fs_group_desc_csum(ext2_filsys fs, dgrp_t group) + } + + /* old crc16 code */ +- size_t offset = offsetof(struct ext2_group_desc, bg_checksum); ++ offset = offsetof(struct ext2_group_desc, bg_checksum); + crc = ext2fs_crc16(~0, fs->super->s_uuid, + sizeof(fs->super->s_uuid)); + crc = ext2fs_crc16(crc, &group, sizeof(group)); +diff --git a/lib/ext2fs/dblist.c b/lib/ext2fs/dblist.c +index 3503615..3236c6a 100644 +--- a/lib/ext2fs/dblist.c ++++ b/lib/ext2fs/dblist.c +@@ -365,9 +365,9 @@ int ext2fs_dblist_count(ext2_dblist dblist) + errcode_t ext2fs_dblist_get_last(ext2_dblist dblist, + struct ext2_db_entry **entry) + { +- EXT2_CHECK_MAGIC(dblist, EXT2_ET_MAGIC_DBLIST); + static struct ext2_db_entry ret_entry; + struct ext2_db_entry2 *last; ++ EXT2_CHECK_MAGIC(dblist, EXT2_ET_MAGIC_DBLIST); + + if (dblist->count == 0) + return EXT2_ET_DBLIST_EMPTY; +diff --git a/lib/ext2fs/unix_io.c b/lib/ext2fs/unix_io.c +index 19be630..d556594 100644 +--- a/lib/ext2fs/unix_io.c ++++ b/lib/ext2fs/unix_io.c +@@ -24,6 +24,9 @@ + #include "config.h" + #include + #include ++#if HAVE_STDINT_H ++#include ++#endif + #if HAVE_UNISTD_H + #include + #endif +diff --git a/lib/quota/common.h b/lib/quota/common.h +index 7f3f4b9..fee81b1 100644 +--- a/lib/quota/common.h ++++ b/lib/quota/common.h +@@ -13,9 +13,15 @@ + # endif + #endif + ++# if !defined __GNUC__ || __GNUC__ > 2 + #define log_err(format, arg ...) \ + fprintf(stderr, "[ERROR] %s:%d:%s:: " format "\n", \ + __FILE__, __LINE__, __func__, ## arg) ++#else ++#define log_err(format, arg...) \ ++ fprintf(stderr, "[ERROR] %s:%d:%s:: " format "\n", \ ++ __FILE__, __LINE__, __func__ , ## arg) ++#endif + + #ifdef DEBUG_QUOTA + # define log_debug(format, arg ...) \ +diff --git a/lib/quota/quotaio_tree.h b/lib/quota/quotaio_tree.h +index 6ee54c9..4c22c21 100644 +--- a/lib/quota/quotaio_tree.h ++++ b/lib/quota/quotaio_tree.h +@@ -6,6 +6,7 @@ + #define _LINUX_QUOTA_TREE_H + + #include ++#include + + typedef u_int32_t qid_t; /* Type in which we store ids in memory */ + +diff --git a/misc/mke2fs.c b/misc/mke2fs.c +index bbf477a..40ae31c 100644 +--- a/misc/mke2fs.c ++++ b/misc/mke2fs.c +@@ -2334,6 +2334,7 @@ static void fix_cluster_bg_counts(ext2_filsys fs) + ext2fs_free_blocks_count_set(fs->super, EXT2FS_C2B(fs, tot_free)); + } + ++#ifdef CONFIG_QUOTA + static int create_quota_inodes(ext2_filsys fs) + { + quota_ctx_t qctx; +@@ -2345,6 +2346,7 @@ static int create_quota_inodes(ext2_filsys fs) + + return 0; + } ++#endif + + int main (int argc, char *argv[]) + { +@@ -2729,9 +2731,11 @@ no_journal: + if (EXT2_HAS_RO_COMPAT_FEATURE(&fs_param, + EXT4_FEATURE_RO_COMPAT_BIGALLOC)) + fix_cluster_bg_counts(fs); ++#ifdef CONFIG_QUOTA + if (EXT2_HAS_RO_COMPAT_FEATURE(&fs_param, + EXT4_FEATURE_RO_COMPAT_QUOTA)) + create_quota_inodes(fs); ++#endif + + if (!quiet) + printf(_("Writing superblocks and " +diff --git a/misc/tune2fs.c b/misc/tune2fs.c +index c1ecae8..267b672 100644 +--- a/misc/tune2fs.c ++++ b/misc/tune2fs.c +@@ -56,7 +56,9 @@ extern int optind; + #include "jfs_user.h" + #include "util.h" + #include "blkid/blkid.h" ++#ifdef CONFIG_QUOTA + #include "quota/mkquota.h" ++#endif + + #include "../version.h" + #include "nls-enable.h" +@@ -477,6 +479,7 @@ static int rewrite_dir_block(ext2_filsys fs, + dcl->limit = ext2fs_cpu_to_le16(max_entries); + } + } else { ++ int max_entries; + /* If htree block is full then rebuild the dir */ + if (ext2fs_le16_to_cpu(dcl->count) == + ext2fs_le16_to_cpu(dcl->limit)) { +@@ -487,7 +490,7 @@ static int rewrite_dir_block(ext2_filsys fs, + * Ensure dcl->limit is small enough to leave room for + * the checksum tail. + */ +- int max_entries = (fs->blocksize - (dcl_offset + ++ max_entries = (fs->blocksize - (dcl_offset + + sizeof(struct ext2_dx_tail))) / + sizeof(struct ext2_dx_entry); + if (ext2fs_le16_to_cpu(dcl->limit) != max_entries) +@@ -1127,6 +1130,7 @@ err: + return 1; + } + ++#ifdef CONFIG_QUOTA + void handle_quota_options(ext2_filsys fs) + { + quota_ctx_t qctx; +@@ -1176,6 +1180,7 @@ void handle_quota_options(ext2_filsys fs) + + return; + } ++#endif + + void parse_quota_opts(const char *opts) + { +@@ -2547,7 +2552,13 @@ retry_open: + rc = 1; + goto closefs; + } ++#ifdef CONFIG_QUOTA + handle_quota_options(fs); ++#else ++ fputs(_("The quota feature is disabled.\n"), stderr); ++ rc = 1; ++ goto closefs; ++#endif + } + + if (U_flag) { diff --git a/sys-fs/e2fsprogs/patches/e2fsprogs-1.43.patch b/sys-fs/e2fsprogs/patches/e2fsprogs-1.43.patch new file mode 100644 index 000000000..932fe5c8e --- /dev/null +++ b/sys-fs/e2fsprogs/patches/e2fsprogs-1.43.patch @@ -0,0 +1,25 @@ +diff -urN e2fsprogs-1.43/configure.in e2fsprogs-1.43-haiku/configure.in +--- e2fsprogs-1.43/configure.in 2013-03-18 01:46:29.019922944 -0700 ++++ e2fsprogs-1.43-haiku/configure.in 2013-03-18 02:02:17.526123008 -0700 +@@ -96,8 +96,11 @@ + dnl + AC_PROG_CC + if test "$GCC" = yes; then +- RDYNAMIC="-rdynamic" +- AC_SUBST(RDYNAMIC) ++ case "$host_os" in ++ haiku*) RDYNAMIC="-Wl,-export-dynamic" ;; ++ *) RDYNAMIC="-rdynamic" ;; ++ esac ++ AC_SUBST(RDYNAMIC) + fi + AC_PROG_CPP + dnl +@@ -1097,6 +1100,7 @@ + dnl + SOCKET_LIB='' + AC_CHECK_LIB(socket, socket, [SOCKET_LIB=-lsocket]) ++AC_CHECK_LIB(network, socket, [SOCKET_LIB=-lnetwork]) + AC_SUBST(SOCKET_LIB) + dnl + dnl See if optreset exists diff --git a/sys-libs/e2fsprogs/patches/e2fsprogs-1.43-git.patch b/sys-libs/e2fsprogs/patches/e2fsprogs-1.43-git.patch new file mode 100644 index 000000000..59235accd --- /dev/null +++ b/sys-libs/e2fsprogs/patches/e2fsprogs-1.43-git.patch @@ -0,0 +1,1508 @@ +diff --git a/configure b/configure +index d47cef7..9d6fcbe 100755 +--- a/configure ++++ b/configure +@@ -1,9 +1,11 @@ + #! /bin/sh + # Guess values for system-dependent variables and create Makefiles. +-# Generated by GNU Autoconf 2.69. ++# Generated by GNU Autoconf 2.68. + # + # +-# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc. ++# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, ++# 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software ++# Foundation, Inc. + # + # + # This configure script is free software; the Free Software Foundation +@@ -132,31 +134,6 @@ export LANGUAGE + # CDPATH. + (unset CDPATH) >/dev/null 2>&1 && unset CDPATH + +-# Use a proper internal environment variable to ensure we don't fall +- # into an infinite loop, continuously re-executing ourselves. +- if test x"${_as_can_reexec}" != xno && test "x$CONFIG_SHELL" != x; then +- _as_can_reexec=no; export _as_can_reexec; +- # We cannot yet assume a decent shell, so we have to provide a +-# neutralization value for shells without unset; and this also +-# works around shells that cannot unset nonexistent variables. +-# Preserve -v and -x to the replacement shell. +-BASH_ENV=/dev/null +-ENV=/dev/null +-(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV +-case $- in # (((( +- *v*x* | *x*v* ) as_opts=-vx ;; +- *v* ) as_opts=-v ;; +- *x* ) as_opts=-x ;; +- * ) as_opts= ;; +-esac +-exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} +-# Admittedly, this is quite paranoid, since all the known shells bail +-# out after a failed `exec'. +-$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 +-as_fn_exit 255 +- fi +- # We don't want this to propagate to other subprocesses. +- { _as_can_reexec=; unset _as_can_reexec;} + if test "x$CONFIG_SHELL" = x; then + as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then : + emulate sh +@@ -190,8 +167,7 @@ if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then : + else + exitcode=1; echo positional parameters were not saved. + fi +-test x\$exitcode = x0 || exit 1 +-test -x / || exit 1" ++test x\$exitcode = x0 || exit 1" + as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO + as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO + eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" && +@@ -236,25 +212,21 @@ IFS=$as_save_IFS + + + if test "x$CONFIG_SHELL" != x; then : +- export CONFIG_SHELL +- # We cannot yet assume a decent shell, so we have to provide a +-# neutralization value for shells without unset; and this also +-# works around shells that cannot unset nonexistent variables. +-# Preserve -v and -x to the replacement shell. +-BASH_ENV=/dev/null +-ENV=/dev/null +-(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV +-case $- in # (((( +- *v*x* | *x*v* ) as_opts=-vx ;; +- *v* ) as_opts=-v ;; +- *x* ) as_opts=-x ;; +- * ) as_opts= ;; +-esac +-exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} +-# Admittedly, this is quite paranoid, since all the known shells bail +-# out after a failed `exec'. +-$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 +-exit 255 ++ # We cannot yet assume a decent shell, so we have to provide a ++ # neutralization value for shells without unset; and this also ++ # works around shells that cannot unset nonexistent variables. ++ # Preserve -v and -x to the replacement shell. ++ BASH_ENV=/dev/null ++ ENV=/dev/null ++ (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV ++ export CONFIG_SHELL ++ case $- in # (((( ++ *v*x* | *x*v* ) as_opts=-vx ;; ++ *v* ) as_opts=-v ;; ++ *x* ) as_opts=-x ;; ++ * ) as_opts= ;; ++ esac ++ exec "$CONFIG_SHELL" $as_opts "$as_myself" ${1+"$@"} + fi + + if test x$as_have_required = xno; then : +@@ -356,14 +328,6 @@ $as_echo X"$as_dir" | + + + } # as_fn_mkdir_p +- +-# as_fn_executable_p FILE +-# ----------------------- +-# Test if FILE is an executable regular file. +-as_fn_executable_p () +-{ +- test -f "$1" && test -x "$1" +-} # as_fn_executable_p + # as_fn_append VAR VALUE + # ---------------------- + # Append the text in VALUE to the end of the definition contained in VAR. Take +@@ -485,10 +449,6 @@ as_cr_alnum=$as_cr_Letters$as_cr_digits + chmod +x "$as_me.lineno" || + { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; } + +- # If we had to re-execute with $CONFIG_SHELL, we're ensured to have +- # already done that, so ensure we don't try to do so again and fall +- # in an infinite loop. This has already happened in practice. +- _as_can_reexec=no; export _as_can_reexec + # Don't try to exec as it changes $[0], causing all sort of problems + # (the dirname of $[0] is not the place where we might find the + # original and so on. Autoconf is especially sensitive to this). +@@ -523,16 +483,16 @@ if (echo >conf$$.file) 2>/dev/null; then + # ... but there are two gotchas: + # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. + # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. +- # In both cases, we have to default to `cp -pR'. ++ # In both cases, we have to default to `cp -p'. + ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || +- as_ln_s='cp -pR' ++ as_ln_s='cp -p' + elif ln conf$$.file conf$$ 2>/dev/null; then + as_ln_s=ln + else +- as_ln_s='cp -pR' ++ as_ln_s='cp -p' + fi + else +- as_ln_s='cp -pR' ++ as_ln_s='cp -p' + fi + rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file + rmdir conf$$.dir 2>/dev/null +@@ -544,8 +504,28 @@ else + as_mkdir_p=false + fi + +-as_test_x='test -x' +-as_executable_p=as_fn_executable_p ++if test -x / >/dev/null 2>&1; then ++ as_test_x='test -x' ++else ++ if ls -dL / >/dev/null 2>&1; then ++ as_ls_L_option=L ++ else ++ as_ls_L_option= ++ fi ++ as_test_x=' ++ eval sh -c '\'' ++ if test -d "$1"; then ++ test -d "$1/."; ++ else ++ case $1 in #( ++ -*)set "./$1";; ++ esac; ++ case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #(( ++ ???[sx]*):;;*)false;;esac;fi ++ '\'' sh ++ ' ++fi ++as_executable_p=$as_test_x + + # Sed expression to map a string onto a valid CPP name. + as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" +@@ -1325,6 +1305,8 @@ target=$target_alias + if test "x$host_alias" != x; then + if test "x$build_alias" = x; then + cross_compiling=maybe ++ $as_echo "$as_me: WARNING: if you wanted to set the --build type, don't use --host. ++ If a cross compiler is detected then cross compile mode will be used" >&2 + elif test "x$build_alias" != "x$host_alias"; then + cross_compiling=yes + fi +@@ -1498,7 +1480,7 @@ Optional Features: + --disable-testio-debug disable the use of the test I/O manager for debugging + --disable-libuuid do not build private uuid library + --disable-libblkid do not build private blkid library +- --enable-libquota enable quota support ++ --disable-quota disable quota support + --disable-debugfs disable support of debugfs program + --disable-imager disable support of e2image program + --disable-resizer disable support of e2resize program +@@ -1607,9 +1589,9 @@ test -n "$ac_init_help" && exit $ac_status + if $ac_init_version; then + cat <<\_ACEOF + configure +-generated by GNU Autoconf 2.69 ++generated by GNU Autoconf 2.68 + +-Copyright (C) 2012 Free Software Foundation, Inc. ++Copyright (C) 2010 Free Software Foundation, Inc. + This configure script is free software; the Free Software Foundation + gives unlimited permission to copy, distribute and modify it. + _ACEOF +@@ -1685,7 +1667,7 @@ $as_echo "$ac_try_echo"; } >&5 + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || +- test -x conftest$ac_exeext ++ $as_test_x conftest$ac_exeext + }; then : + ac_retval=0 + else +@@ -2039,8 +2021,7 @@ int + main () + { + static int test_array [1 - 2 * !(($2) >= 0)]; +-test_array [0] = 0; +-return test_array [0]; ++test_array [0] = 0 + + ; + return 0; +@@ -2056,8 +2037,7 @@ int + main () + { + static int test_array [1 - 2 * !(($2) <= $ac_mid)]; +-test_array [0] = 0; +-return test_array [0]; ++test_array [0] = 0 + + ; + return 0; +@@ -2083,8 +2063,7 @@ int + main () + { + static int test_array [1 - 2 * !(($2) < 0)]; +-test_array [0] = 0; +-return test_array [0]; ++test_array [0] = 0 + + ; + return 0; +@@ -2100,8 +2079,7 @@ int + main () + { + static int test_array [1 - 2 * !(($2) >= $ac_mid)]; +-test_array [0] = 0; +-return test_array [0]; ++test_array [0] = 0 + + ; + return 0; +@@ -2135,8 +2113,7 @@ int + main () + { + static int test_array [1 - 2 * !(($2) <= $ac_mid)]; +-test_array [0] = 0; +-return test_array [0]; ++test_array [0] = 0 + + ; + return 0; +@@ -2312,7 +2289,7 @@ This file contains any messages produced by compilers while + running configure, to aid debugging if configure makes a mistake. + + It was created by $as_me, which was +-generated by GNU Autoconf 2.69. Invocation command line was ++generated by GNU Autoconf 2.68. Invocation command line was + + $ $0 $@ + +@@ -2849,7 +2826,7 @@ do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do +- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ++ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_CC="${ac_tool_prefix}gcc" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 +@@ -2889,7 +2866,7 @@ do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do +- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ++ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_CC="gcc" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 +@@ -2942,7 +2919,7 @@ do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do +- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ++ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_CC="${ac_tool_prefix}cc" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 +@@ -2983,7 +2960,7 @@ do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do +- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ++ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then + ac_prog_rejected=yes + continue +@@ -3041,7 +3018,7 @@ do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do +- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ++ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_CC="$ac_tool_prefix$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 +@@ -3085,7 +3062,7 @@ do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do +- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ++ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_CC="$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 +@@ -3531,7 +3508,8 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext + /* end confdefs.h. */ + #include + #include +-struct stat; ++#include ++#include + /* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ + struct buf { int x; }; + FILE * (*rcsopen) (struct buf *, struct stat *, int); +@@ -3710,7 +3688,7 @@ do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do +- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ++ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_CC="${ac_tool_prefix}gcc" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 +@@ -3750,7 +3728,7 @@ do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do +- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ++ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_CC="gcc" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 +@@ -3803,7 +3781,7 @@ do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do +- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ++ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_CC="${ac_tool_prefix}cc" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 +@@ -3844,7 +3822,7 @@ do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do +- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ++ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then + ac_prog_rejected=yes + continue +@@ -3902,7 +3880,7 @@ do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do +- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ++ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_CC="$ac_tool_prefix$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 +@@ -3946,7 +3924,7 @@ do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do +- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ++ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_CC="$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 +@@ -4142,7 +4120,8 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext + /* end confdefs.h. */ + #include + #include +-struct stat; ++#include ++#include + /* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ + struct buf { int x; }; + FILE * (*rcsopen) (struct buf *, struct stat *, int); +@@ -4228,7 +4207,10 @@ ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $ + ac_compiler_gnu=$ac_cv_c_compiler_gnu + + if test "$GCC" = yes; then +- RDYNAMIC="-rdynamic" ++ case "$host_os" in ++ haiku*) RDYNAMIC="-Wl,-export-dynamic" ;; ++ *) RDYNAMIC="-rdynamic" ;; ++ esac + + fi + ac_ext=c +@@ -4791,7 +4773,7 @@ do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do +- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ++ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 +@@ -4834,7 +4816,7 @@ do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do +- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ++ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 +@@ -4998,7 +4980,7 @@ do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do +- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ++ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 +@@ -5041,7 +5023,7 @@ do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do +- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ++ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 +@@ -5188,6 +5170,7 @@ fi + + + ++QUOTA_CMT= + + + if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then +@@ -5210,7 +5193,7 @@ do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do +- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ++ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 +@@ -5253,7 +5236,7 @@ do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do +- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ++ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 +@@ -5311,19 +5294,25 @@ if test "${enable_quota+set}" = set; then : + then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: Disabling quota support" >&5 + $as_echo "Disabling quota support" >&6; } ++ QUOTA_CMT=# + else + $as_echo "#define CONFIG_QUOTA 1" >>confdefs.h + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: Enabling quota support" >&5 + $as_echo "Enabling quota support" >&6; } ++ LIBQUOTA='$(LIB)/libquota'$LIB_EXT ++ DEPLIBQUOTA=$LIBQUOTA ++ STATIC_LIBQUOTA='$(LIB)/libquota'$STATIC_LIB_EXT ++ DEPSTATIC_LIBQUOTA=$STATIC_LIBQUOTA ++ PROFILED_LIBQUOTA='$(LIB)/libquota'$PROFILED_LIB_EXT ++ DEPPROFILED_LIBQUOTA=$PROFILED_LIBQUOTA + fi + + else +- { $as_echo "$as_me:${as_lineno-$LINENO}: result: Disabling quota support by default" >&5 +-$as_echo "Disabling quota support by default" >&6; } +- +-fi ++ $as_echo "#define CONFIG_QUOTA 1" >>confdefs.h + ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: Enabling quota support by default" >&5 ++$as_echo "Enabling quota support by default" >&6; } + LIBQUOTA='$(LIB)/libquota'$LIB_EXT + DEPLIBQUOTA=$LIBQUOTA + STATIC_LIBQUOTA='$(LIB)/libquota'$STATIC_LIB_EXT +@@ -5331,6 +5320,9 @@ DEPSTATIC_LIBQUOTA=$STATIC_LIBQUOTA + PROFILED_LIBQUOTA='$(LIB)/libquota'$PROFILED_LIB_EXT + DEPPROFILED_LIBQUOTA=$PROFILED_LIBQUOTA + ++fi ++ ++ + + + +@@ -5739,7 +5731,7 @@ case $as_dir/ in #(( + # by default. + for ac_prog in ginstall scoinst install; do + for ac_exec_ext in '' $ac_executable_extensions; do +- if as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then ++ if { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; }; then + if test $ac_prog = install && + grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then + # AIX install. It has an incompatible calling convention. +@@ -5912,7 +5904,7 @@ do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do +- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ++ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_GMSGFMT="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 +@@ -6120,7 +6112,7 @@ do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do +- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ++ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 +@@ -6160,7 +6152,7 @@ do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do +- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ++ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_RANLIB="ranlib" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 +@@ -6255,7 +6247,7 @@ do + for ac_prog in grep ggrep; do + for ac_exec_ext in '' $ac_executable_extensions; do + ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext" +- as_fn_executable_p "$ac_path_GREP" || continue ++ { test -f "$ac_path_GREP" && $as_test_x "$ac_path_GREP"; } || continue + # Check for GNU ac_path_GREP and select it if it is found. + # Check for GNU $ac_path_GREP + case `"$ac_path_GREP" --version 2>&1` in +@@ -6321,7 +6313,7 @@ do + for ac_prog in egrep; do + for ac_exec_ext in '' $ac_executable_extensions; do + ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext" +- as_fn_executable_p "$ac_path_EGREP" || continue ++ { test -f "$ac_path_EGREP" && $as_test_x "$ac_path_EGREP"; } || continue + # Check for GNU ac_path_EGREP and select it if it is found. + # Check for GNU $ac_path_EGREP + case `"$ac_path_EGREP" --version 2>&1` in +@@ -6492,11 +6484,11 @@ else + int + main () + { +- ++/* FIXME: Include the comments suggested by Paul. */ + #ifndef __cplusplus +- /* Ultrix mips cc rejects this sort of thing. */ ++ /* Ultrix mips cc rejects this. */ + typedef int charset[2]; +- const charset cs = { 0, 0 }; ++ const charset cs; + /* SunOS 4.1.1 cc rejects this. */ + char const *const *pcpcc; + char **ppc; +@@ -6513,9 +6505,8 @@ main () + ++pcpcc; + ppc = (char**) pcpcc; + pcpcc = (char const *const *) ppc; +- { /* SCO 3.2v4 cc rejects this sort of thing. */ +- char tx; +- char *t = &tx; ++ { /* SCO 3.2v4 cc rejects this. */ ++ char *t; + char const *s = 0 ? (char *) 0 : (char const *) 0; + + *t++ = 0; +@@ -6531,10 +6522,10 @@ main () + iptr p = 0; + ++p; + } +- { /* AIX XL C 1.02.0.0 rejects this sort of thing, saying ++ { /* AIX XL C 1.02.0.0 rejects this saying + "k.c", line 2.27: 1506-025 (S) Operand must be a modifiable lvalue. */ +- struct s { int j; const int *ap[3]; } bx; +- struct s *b = &bx; b->j = 5; ++ struct s { int j; const int *ap[3]; }; ++ struct s *b; b->j = 5; + } + { /* ULTRIX-32 V3.1 (Rev 9) vcc rejects this */ + const int foo = 10; +@@ -7144,20 +7135,23 @@ else + /* end confdefs.h. */ + $ac_includes_default + int +-find_stack_direction (int *addr, int depth) ++find_stack_direction () + { +- int dir, dummy = 0; +- if (! addr) +- addr = &dummy; +- *addr = addr < &dummy ? 1 : addr == &dummy ? 0 : -1; +- dir = depth ? find_stack_direction (addr, depth - 1) : 0; +- return dir + dummy; ++ static char *addr = 0; ++ auto char dummy; ++ if (addr == 0) ++ { ++ addr = &dummy; ++ return find_stack_direction (); ++ } ++ else ++ return (&dummy > addr) ? 1 : -1; + } + + int +-main (int argc, char **argv) ++main () + { +- return find_stack_direction (0, argc + !argv + 20) < 0; ++ return find_stack_direction () < 0; + } + _ACEOF + if ac_fn_c_try_run "$LINENO"; then : +@@ -8803,7 +8797,7 @@ do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do +- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ++ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_INTLBISON="$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 +@@ -9608,7 +9602,7 @@ do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do +- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ++ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_LN="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 +@@ -9660,7 +9654,7 @@ do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do +- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ++ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_MV="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 +@@ -9701,7 +9695,7 @@ do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do +- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ++ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_CP="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 +@@ -9742,7 +9736,7 @@ do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do +- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ++ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_RM="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 +@@ -9783,7 +9777,7 @@ do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do +- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ++ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_CHMOD="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 +@@ -9824,7 +9818,7 @@ do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do +- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ++ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_AWK="$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 +@@ -9867,7 +9861,7 @@ do + for ac_prog in egrep; do + for ac_exec_ext in '' $ac_executable_extensions; do + ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext" +- as_fn_executable_p "$ac_path_EGREP" || continue ++ { test -f "$ac_path_EGREP" && $as_test_x "$ac_path_EGREP"; } || continue + # Check for GNU ac_path_EGREP and select it if it is found. + # Check for GNU $ac_path_EGREP + case `"$ac_path_EGREP" --version 2>&1` in +@@ -9933,7 +9927,7 @@ do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do +- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ++ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_SED="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 +@@ -9974,7 +9968,7 @@ do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do +- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ++ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_PERL="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 +@@ -10015,7 +10009,7 @@ do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do +- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ++ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_LDCONFIG="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 +@@ -10055,7 +10049,7 @@ do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do +- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ++ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_AR="${ac_tool_prefix}ar" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 +@@ -10095,7 +10089,7 @@ do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do +- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ++ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_AR="ar" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 +@@ -10147,7 +10141,7 @@ do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do +- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ++ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 +@@ -10187,7 +10181,7 @@ do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do +- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ++ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_RANLIB="ranlib" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 +@@ -10239,7 +10233,7 @@ do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do +- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ++ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_STRIP="${ac_tool_prefix}strip" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 +@@ -10279,7 +10273,7 @@ do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do +- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ++ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_STRIP="strip" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 +@@ -10330,7 +10324,7 @@ do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do +- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ++ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_MAKEINFO="makeinfo" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 +@@ -10390,7 +10384,7 @@ do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do +- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ++ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_BUILD_CC="$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 +@@ -11051,7 +11045,7 @@ if test "$ac_res" != no; then : + fi + + fi +-for ac_func in __secure_getenv backtrace blkid_probe_get_topology chflags fallocate fallocate64 fchown fdatasync fstat64 ftruncate64 getdtablesize getmntinfo getpwuid_r getrlimit getrusage jrand48 llseek lseek64 mallinfo mbstowcs memalign mmap msync nanosleep open64 pathconf posix_fadvise posix_memalign prctl setmntent setresgid setresuid srandom strcasecmp strdup strnlen strptime strtoull sync_file_range sysconf usleep utime valloc ++for ac_func in __secure_getenv backtrace blkid_probe_get_topology chflags daemon fallocate fallocate64 fchown fdatasync fstat64 ftruncate64 getdtablesize getmntinfo getpwuid_r getrlimit getrusage jrand48 llseek lseek64 mallinfo mbstowcs memalign mmap msync nanosleep open64 pathconf posix_fadvise posix_memalign prctl setmntent setresgid setresuid srandom strcasecmp strdup strnlen strptime strtoull sync_file_range sysconf usleep utime valloc + do : + as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` + ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" +@@ -11102,6 +11096,47 @@ fi + $as_echo "$ac_cv_lib_socket_socket" >&6; } + if test "x$ac_cv_lib_socket_socket" = xyes; then : + SOCKET_LIB=-lsocket ++else ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for socket in -lnetwork" >&5 ++$as_echo_n "checking for socket in -lnetwork... " >&6; } ++if ${ac_cv_lib_network_socket+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ ac_check_lib_save_LIBS=$LIBS ++LIBS="-lnetwork $LIBS" ++cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++/* end confdefs.h. */ ++ ++/* Override any GCC internal prototype to avoid an error. ++ Use char because int might match the return type of a GCC ++ builtin and then its argument prototype would still apply. */ ++#ifdef __cplusplus ++extern "C" ++#endif ++char socket (); ++int ++main () ++{ ++return socket (); ++ ; ++ return 0; ++} ++_ACEOF ++if ac_fn_c_try_link "$LINENO"; then : ++ ac_cv_lib_network_socket=yes ++else ++ ac_cv_lib_network_socket=no ++fi ++rm -f core conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext ++LIBS=$ac_check_lib_save_LIBS ++fi ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_network_socket" >&5 ++$as_echo "$ac_cv_lib_network_socket" >&6; } ++if test "x$ac_cv_lib_network_socket" = xyes; then : ++ SOCKET_LIB=-lnetwork ++fi ++ + fi + + +@@ -11321,6 +11356,18 @@ $as_echo "...and mandir defaults to /usr/share/man" >&6; } + fi + fi + ;; ++haiku*) ++ if test "$prefix" = NONE ; then ++ prefix="`finddir B_COMMON_DIRECTORY`"; ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: On $host_os systems, prefix defaults to \`finddir B_COMMON_DIRECTORY\`" >&5 ++$as_echo "On $host_os systems, prefix defaults to \`finddir B_COMMON_DIRECTORY\`" >&6; } ++ if test "$sbindir" = '${exec_prefix}/sbin' ; then ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: ...and sbindir defaults to \`finddir B_COMMON_DIRECTORY\`/bin" >&5 ++$as_echo "...and sbindir defaults to \`finddir B_COMMON_DIRECTORY\`/bin" >&6; } ++ mandir="`finddir B_COMMON_DIRECTORY`/bin" ++ fi ++ fi ++;; + esac + if test "$root_prefix" = NONE ; then + if test "$prefix" = NONE ; then +@@ -11875,16 +11922,16 @@ if (echo >conf$$.file) 2>/dev/null; then + # ... but there are two gotchas: + # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. + # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. +- # In both cases, we have to default to `cp -pR'. ++ # In both cases, we have to default to `cp -p'. + ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || +- as_ln_s='cp -pR' ++ as_ln_s='cp -p' + elif ln conf$$.file conf$$ 2>/dev/null; then + as_ln_s=ln + else +- as_ln_s='cp -pR' ++ as_ln_s='cp -p' + fi + else +- as_ln_s='cp -pR' ++ as_ln_s='cp -p' + fi + rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file + rmdir conf$$.dir 2>/dev/null +@@ -11944,16 +11991,28 @@ else + as_mkdir_p=false + fi + +- +-# as_fn_executable_p FILE +-# ----------------------- +-# Test if FILE is an executable regular file. +-as_fn_executable_p () +-{ +- test -f "$1" && test -x "$1" +-} # as_fn_executable_p +-as_test_x='test -x' +-as_executable_p=as_fn_executable_p ++if test -x / >/dev/null 2>&1; then ++ as_test_x='test -x' ++else ++ if ls -dL / >/dev/null 2>&1; then ++ as_ls_L_option=L ++ else ++ as_ls_L_option= ++ fi ++ as_test_x=' ++ eval sh -c '\'' ++ if test -d "$1"; then ++ test -d "$1/."; ++ else ++ case $1 in #( ++ -*)set "./$1";; ++ esac; ++ case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #(( ++ ???[sx]*):;;*)false;;esac;fi ++ '\'' sh ++ ' ++fi ++as_executable_p=$as_test_x + + # Sed expression to map a string onto a valid CPP name. + as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" +@@ -11975,7 +12034,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 + # values after options handling. + ac_log=" + This file was extended by $as_me, which was +-generated by GNU Autoconf 2.69. Invocation command line was ++generated by GNU Autoconf 2.68. Invocation command line was + + CONFIG_FILES = $CONFIG_FILES + CONFIG_HEADERS = $CONFIG_HEADERS +@@ -12041,10 +12100,10 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 + ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" + ac_cs_version="\\ + config.status +-configured by $0, generated by GNU Autoconf 2.69, ++configured by $0, generated by GNU Autoconf 2.68, + with options \\"\$ac_cs_config\\" + +-Copyright (C) 2012 Free Software Foundation, Inc. ++Copyright (C) 2010 Free Software Foundation, Inc. + This config.status script is free software; the Free Software Foundation + gives unlimited permission to copy, distribute and modify it." + +@@ -12134,7 +12193,7 @@ fi + _ACEOF + cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 + if \$ac_cs_recheck; then +- set X $SHELL '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion ++ set X '$SHELL' '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion + shift + \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6 + CONFIG_SHELL='$SHELL' +diff --git a/configure.in b/configure.in +index 0b96b8d..cece319 100644 +--- a/configure.in ++++ b/configure.in +@@ -96,7 +96,10 @@ AC_MSG_ERROR([--with-ldopts no longer supported; use LDFLAGS= instead])) + dnl + AC_PROG_CC + if test "$GCC" = yes; then +- RDYNAMIC="-rdynamic" ++ case "$host_os" in ++ haiku*) RDYNAMIC="-Wl,-export-dynamic" ;; ++ *) RDYNAMIC="-rdynamic" ;; ++ esac + AC_SUBST(RDYNAMIC) + fi + AC_PROG_CPP +@@ -565,20 +568,28 @@ AC_SUBST(BLKID_CMT) + dnl + dnl handle --enable-quota + dnl ++QUOTA_CMT= + PKG_PROG_PKG_CONFIG + AH_TEMPLATE([CONFIG_QUOTA], [Define to 1 to enable quota support]) + AC_ARG_ENABLE([quota], +-[ --enable-libquota enable quota support], ++[ --disable-quota disable quota support], + if test "$enableval" = "no" + then + AC_MSG_RESULT([Disabling quota support]) ++ QUOTA_CMT=# + else + AC_DEFINE(CONFIG_QUOTA, 1) + AC_MSG_RESULT([Enabling quota support]) ++ LIBQUOTA='$(LIB)/libquota'$LIB_EXT ++ DEPLIBQUOTA=$LIBQUOTA ++ STATIC_LIBQUOTA='$(LIB)/libquota'$STATIC_LIB_EXT ++ DEPSTATIC_LIBQUOTA=$STATIC_LIBQUOTA ++ PROFILED_LIBQUOTA='$(LIB)/libquota'$PROFILED_LIB_EXT ++ DEPPROFILED_LIBQUOTA=$PROFILED_LIBQUOTA + fi + , +-AC_MSG_RESULT([Disabling quota support by default]) +-) ++AC_DEFINE(CONFIG_QUOTA, 1) ++AC_MSG_RESULT([Enabling quota support by default]) + dnl + dnl Define stuff expected for quota library + dnl +@@ -588,6 +599,7 @@ STATIC_LIBQUOTA='$(LIB)/libquota'$STATIC_LIB_EXT + DEPSTATIC_LIBQUOTA=$STATIC_LIBQUOTA + PROFILED_LIBQUOTA='$(LIB)/libquota'$PROFILED_LIB_EXT + DEPPROFILED_LIBQUOTA=$PROFILED_LIBQUOTA ++) + AC_SUBST(LIBQUOTA) + AC_SUBST(DEPLIBQUOTA) + AC_SUBST(STATIC_LIBQUOTA) +@@ -1051,6 +1063,7 @@ AC_CHECK_FUNCS(m4_flatten([ + backtrace + blkid_probe_get_topology + chflags ++ daemon + fallocate + fallocate64 + fchown +@@ -1094,9 +1107,10 @@ AC_CHECK_FUNCS(m4_flatten([ + dnl + dnl Check to see if -lsocket is required (solaris) to make something + dnl that uses socket() to compile; this is needed for the UUID library ++dnl Haiku needs -lnetwork to get socket(). + dnl + SOCKET_LIB='' +-AC_CHECK_LIB(socket, socket, [SOCKET_LIB=-lsocket]) ++AC_CHECK_LIB(socket, socket, [SOCKET_LIB=-lsocket],[AC_CHECK_LIB(network, socket, [SOCKET_LIB=-lnetwork])]) + AC_SUBST(SOCKET_LIB) + dnl + dnl See if optreset exists +@@ -1187,6 +1201,16 @@ linux* | gnu* | k*bsd*-gnu) + fi + fi + ;; ++haiku*) ++ if test "$prefix" = NONE ; then ++ prefix="`finddir B_COMMON_DIRECTORY`"; ++ AC_MSG_RESULT([On $host_os systems, prefix defaults to `finddir B_COMMON_DIRECTORY`]) ++ if test "$sbindir" = '${exec_prefix}/sbin' ; then ++ AC_MSG_RESULT([...and sbindir defaults to `finddir B_COMMON_DIRECTORY`/bin]) ++ mandir="`finddir B_COMMON_DIRECTORY`/bin" ++ fi ++ fi ++;; + esac + if test "$root_prefix" = NONE ; then + if test "$prefix" = NONE ; then +diff --git a/contrib/spd_readdir.c b/contrib/spd_readdir.c +index f89832c..8d571de 100644 +--- a/contrib/spd_readdir.c ++++ b/contrib/spd_readdir.c +@@ -213,7 +213,7 @@ DIR *opendir(const char *name) + dirstruct = alloc_dirstruct(dir); + if (!dirstruct) { + (*real_closedir)(dir); +- errno = -ENOMEM; ++ errno = ENOMEM; + return NULL; + } + +@@ -246,7 +246,7 @@ DIR *fdopendir(int fd) + dirstruct = alloc_dirstruct(dir); + if (!dirstruct) { + (*real_closedir)(dir); +- errno = -ENOMEM; ++ errno = ENOMEM; + return NULL; + } + +diff --git a/e2fsck/e2fsck.h b/e2fsck/e2fsck.h +index 09a9d08..6cb3746 100644 +--- a/e2fsck/e2fsck.h ++++ b/e2fsck/e2fsck.h +@@ -67,7 +67,9 @@ + #define E2FSCK_ATTR(x) + #endif + ++#ifdef CONFIG_QUOTA + #include "quota/mkquota.h" ++#endif + + /* + * Exit codes used by fsck-type programs +@@ -320,7 +322,9 @@ struct e2fsck_struct { + /* + * Ext4 quota support + */ ++#ifdef CONFIG_QUOTA + quota_ctx_t qctx; ++#endif + #ifdef RESOURCE_TRACK + /* + * For timing purposes +diff --git a/e2fsck/logfile.c b/e2fsck/logfile.c +index 9229fbf..5a44dcb 100644 +--- a/e2fsck/logfile.c ++++ b/e2fsck/logfile.c +@@ -227,10 +227,14 @@ static FILE *save_output(const char *s0, const char *s1, const char *s2) + } + + if (pid == 0) { ++#ifdef HAVE_DAEMON + if (daemon(0, 0) < 0) { + perror("daemon"); + exit(1); + } ++#else ++#warning daemon() not present ++#endif + /* + * Grab the output from our parent + */ +diff --git a/e2fsck/pass1.c b/e2fsck/pass1.c +index a4bd956..088e922 100644 +--- a/e2fsck/pass1.c ++++ b/e2fsck/pass1.c +@@ -2177,11 +2177,13 @@ static void check_blocks(e2fsck_t ctx, struct problem_context *pctx, + } + } + ++#ifdef CONFIG_QUOTA + if (ino == EXT2_ROOT_INO || ino >= EXT2_FIRST_INODE(ctx->fs->super)) { + quota_data_add(ctx->qctx, inode, ino, + pb.num_blocks * fs->blocksize); + quota_data_inodes(ctx->qctx, inode, ino, +1); + } ++#endif + + if (!(fs->super->s_feature_ro_compat & + EXT4_FEATURE_RO_COMPAT_HUGE_FILE) || +diff --git a/e2fsck/pass1b.c b/e2fsck/pass1b.c +index 05cbd10..a4bae9e 100644 +--- a/e2fsck/pass1b.c ++++ b/e2fsck/pass1b.c +@@ -644,8 +644,10 @@ static void delete_file(e2fsck_t ctx, ext2_ino_t ino, + if (ctx->inode_bad_map) + ext2fs_unmark_inode_bitmap2(ctx->inode_bad_map, ino); + ext2fs_inode_alloc_stats2(fs, ino, -1, LINUX_S_ISDIR(inode.i_mode)); ++#ifdef CONFIG_QUOTA + quota_data_sub(ctx->qctx, &inode, ino, pb.dup_blocks * fs->blocksize); + quota_data_inodes(ctx->qctx, &inode, ino, -1); ++#endif + + /* Inode may have changed by block_iterate, so reread it */ + e2fsck_read_inode(ctx, ino, &inode, "delete_file"); +@@ -677,7 +679,9 @@ static void delete_file(e2fsck_t ctx, ext2_ino_t ino, + delete_file_block(fs, &blk, + BLOCK_COUNT_EXTATTR, 0, 0, &pb); + ext2fs_file_acl_block_set(fs, &inode, blk); ++#ifdef CONFIG_QUOTA + quota_data_sub(ctx->qctx, &inode, ino, fs->blocksize); ++#endif + } + } + } +diff --git a/e2fsck/pass3.c b/e2fsck/pass3.c +index a379e9b..0d3af58 100644 +--- a/e2fsck/pass3.c ++++ b/e2fsck/pass3.c +@@ -491,8 +491,10 @@ ext2_ino_t e2fsck_get_lost_and_found(e2fsck_t ctx, int fix) + ext2fs_icount_store(ctx->inode_count, ino, 2); + ext2fs_icount_store(ctx->inode_link_info, ino, 2); + ctx->lost_and_found = ino; ++#ifdef CONFIG_QUOTA + quota_data_add(ctx->qctx, &inode, ino, fs->blocksize); + quota_data_inodes(ctx->qctx, &inode, ino, +1); ++#endif + #if 0 + printf("/lost+found created; inode #%lu\n", ino); + #endif +@@ -802,7 +804,9 @@ errcode_t e2fsck_expand_directory(e2fsck_t ctx, ext2_ino_t dir, + + inode.i_size = (es.last_block + 1) * fs->blocksize; + ext2fs_iblk_add_blocks(fs, &inode, es.newblocks); ++#ifdef CONFIG_QUOTA + quota_data_add(ctx->qctx, &inode, dir, es.newblocks * fs->blocksize); ++#endif + + e2fsck_write_inode(ctx, dir, &inode, "expand_directory"); + +diff --git a/e2fsck/pass4.c b/e2fsck/pass4.c +index 2d55180..c5ca971 100644 +--- a/e2fsck/pass4.c ++++ b/e2fsck/pass4.c +@@ -64,7 +64,9 @@ static int disconnect_inode(e2fsck_t ctx, ext2_ino_t i, + e2fsck_read_bitmaps(ctx); + ext2fs_inode_alloc_stats2(fs, i, -1, + LINUX_S_ISDIR(inode->i_mode)); ++#ifdef CONFIG_QUOTA + quota_data_inodes(ctx->qctx, inode, i, -1); ++#endif + return 0; + } + } +diff --git a/e2fsck/quota.c b/e2fsck/quota.c +index 7a1476e..2dc01ff 100644 +--- a/e2fsck/quota.c ++++ b/e2fsck/quota.c +@@ -21,6 +21,7 @@ + static void move_quota_inode(ext2_filsys fs, ext2_ino_t from_ino, + ext2_ino_t to_ino, int qtype) + { ++#ifdef CONFIG_QUOTA + struct ext2_inode inode; + char qf_name[QUOTA_NAME_LEN]; + +@@ -46,10 +47,12 @@ static void move_quota_inode(ext2_filsys fs, ext2_ino_t from_ino, + /* Clear out the original inode in the inode-table block. */ + memset(&inode, 0, sizeof(struct ext2_inode)); + ext2fs_write_inode(fs, from_ino, &inode); ++#endif + } + + void e2fsck_hide_quota(e2fsck_t ctx) + { ++#ifdef CONFIG_QUOTA + struct ext2_super_block *sb = ctx->fs->super; + struct problem_context pctx; + ext2_filsys fs = ctx->fs; +@@ -79,4 +82,5 @@ void e2fsck_hide_quota(e2fsck_t ctx) + } + + return; ++#endif + } +diff --git a/e2fsck/unix.c b/e2fsck/unix.c +index d2b1bbd..e63a846 100644 +--- a/e2fsck/unix.c ++++ b/e2fsck/unix.c +@@ -1618,6 +1618,7 @@ print_unsupp_features: + journal_size = -1; + + if (sb->s_feature_ro_compat & EXT4_FEATURE_RO_COMPAT_QUOTA) { ++#ifdef CONFIG_QUOTA + /* Quotas were enabled. Do quota accounting during fsck. */ + if ((sb->s_usr_quota_inum && sb->s_grp_quota_inum) || + (!sb->s_usr_quota_inum && !sb->s_grp_quota_inum)) +@@ -1626,6 +1627,11 @@ print_unsupp_features: + qtype = sb->s_usr_quota_inum ? USRQUOTA : GRPQUOTA; + + quota_init_context(&ctx->qctx, ctx->fs, qtype); ++#else ++ log_err(ctx, _("%s: e2fsck not compiled with QUOTA support,\n\t" ++ "but filesystem %s has QUOTA enabled.\n"), ++ ctx->program_name, ctx->device_name); ++#endif + } + + run_result = e2fsck_run(ctx); +@@ -1660,6 +1666,7 @@ print_unsupp_features: + } + no_journal: + ++#ifdef CONFIG_QUOTA + if (ctx->qctx) { + int i, needs_writeout; + for (i = 0; i < MAXQUOTAS; i++) { +@@ -1675,6 +1682,7 @@ no_journal: + } + quota_release_context(&ctx->qctx); + } ++#endif + + if (run_result == E2F_FLAG_RESTART) { + log_out(ctx, _("Restarting e2fsck from the beginning...\n")); +diff --git a/lib/blkid/devname.c b/lib/blkid/devname.c +index a6673c1..c2ea2f7 100644 +--- a/lib/blkid/devname.c ++++ b/lib/blkid/devname.c +@@ -40,6 +40,10 @@ + + #include "blkidP.h" + ++#ifndef makedev ++#define makedev(major,minor) (-1) ++#endif ++ + /* + * Find a dev struct in the cache by device name, if available. + * +diff --git a/lib/ext2fs/bmap64.h b/lib/ext2fs/bmap64.h +index c5384c9..4573fc6 100644 +--- a/lib/ext2fs/bmap64.h ++++ b/lib/ext2fs/bmap64.h +@@ -9,6 +9,8 @@ + * %End-Header% + */ + ++#include ++ + struct ext2_bmap_statistics { + int type; + struct timeval created; +diff --git a/lib/ext2fs/csum.c b/lib/ext2fs/csum.c +index 6c2e562..c9b9f24 100644 +--- a/lib/ext2fs/csum.c ++++ b/lib/ext2fs/csum.c +@@ -724,6 +724,7 @@ __u16 ext2fs_group_desc_csum(ext2_filsys fs, dgrp_t group) + __u16 crc = 0; + struct ext2_group_desc *desc; + size_t size; ++ size_t offset; + + size = fs->super->s_desc_size; + if (size < EXT2_MIN_DESC_SIZE) +@@ -766,7 +767,7 @@ __u16 ext2fs_group_desc_csum(ext2_filsys fs, dgrp_t group) + } + + /* old crc16 code */ +- size_t offset = offsetof(struct ext2_group_desc, bg_checksum); ++ offset = offsetof(struct ext2_group_desc, bg_checksum); + crc = ext2fs_crc16(~0, fs->super->s_uuid, + sizeof(fs->super->s_uuid)); + crc = ext2fs_crc16(crc, &group, sizeof(group)); +diff --git a/lib/ext2fs/dblist.c b/lib/ext2fs/dblist.c +index ceaae8f..3d4b1a1 100644 +--- a/lib/ext2fs/dblist.c ++++ b/lib/ext2fs/dblist.c +@@ -365,9 +365,9 @@ int ext2fs_dblist_count(ext2_dblist dblist) + errcode_t ext2fs_dblist_get_last(ext2_dblist dblist, + struct ext2_db_entry **entry) + { +- EXT2_CHECK_MAGIC(dblist, EXT2_ET_MAGIC_DBLIST); + static struct ext2_db_entry ret_entry; + struct ext2_db_entry2 *last; ++ EXT2_CHECK_MAGIC(dblist, EXT2_ET_MAGIC_DBLIST); + + if (dblist->count == 0) + return EXT2_ET_DBLIST_EMPTY; +diff --git a/lib/ext2fs/unix_io.c b/lib/ext2fs/unix_io.c +index 02570f0..c20ce36 100644 +--- a/lib/ext2fs/unix_io.c ++++ b/lib/ext2fs/unix_io.c +@@ -24,6 +24,9 @@ + #include "config.h" + #include + #include ++#if HAVE_STDINT_H ++#include ++#endif + #if HAVE_UNISTD_H + #include + #endif +@@ -914,7 +917,7 @@ static errcode_t unix_discard(io_channel channel, unsigned long long block, + unsigned long long count) + { + struct unix_private_data *data; +- __uint64_t range[2]; ++ uint64_t range[2]; + int ret; + + EXT2_CHECK_MAGIC(channel, EXT2_ET_MAGIC_IO_CHANNEL); +diff --git a/lib/quota/quotaio_tree.h b/lib/quota/quotaio_tree.h +index 6ee54c9..4c22c21 100644 +--- a/lib/quota/quotaio_tree.h ++++ b/lib/quota/quotaio_tree.h +@@ -6,6 +6,7 @@ + #define _LINUX_QUOTA_TREE_H + + #include ++#include + + typedef u_int32_t qid_t; /* Type in which we store ids in memory */ + +diff --git a/misc/mke2fs.c b/misc/mke2fs.c +index a288147..1af26ee 100644 +--- a/misc/mke2fs.c ++++ b/misc/mke2fs.c +@@ -2282,6 +2282,7 @@ static void fix_cluster_bg_counts(ext2_filsys fs) + ext2fs_free_blocks_count_set(fs->super, EXT2FS_C2B(fs, tot_free)); + } + ++#ifdef CONFIG_QUOTA + static int create_quota_inodes(ext2_filsys fs) + { + quota_ctx_t qctx; +@@ -2293,6 +2294,7 @@ static int create_quota_inodes(ext2_filsys fs) + + return 0; + } ++#endif + + int main (int argc, char *argv[]) + { +@@ -2677,9 +2679,11 @@ no_journal: + if (EXT2_HAS_RO_COMPAT_FEATURE(&fs_param, + EXT4_FEATURE_RO_COMPAT_BIGALLOC)) + fix_cluster_bg_counts(fs); ++#ifdef CONFIG_QUOTA + if (EXT2_HAS_RO_COMPAT_FEATURE(&fs_param, + EXT4_FEATURE_RO_COMPAT_QUOTA)) + create_quota_inodes(fs); ++#endif + + if (!quiet) + printf(_("Writing superblocks and " +diff --git a/misc/tune2fs.c b/misc/tune2fs.c +index b290c46..b24b8c1 100644 +--- a/misc/tune2fs.c ++++ b/misc/tune2fs.c +@@ -56,7 +56,9 @@ extern int optind; + #include "jfs_user.h" + #include "util.h" + #include "blkid/blkid.h" ++#ifdef CONFIG_QUOTA + #include "quota/mkquota.h" ++#endif + + #include "../version.h" + #include "nls-enable.h" +@@ -145,7 +147,9 @@ static __u32 ok_features[3] = { + EXT4_FEATURE_RO_COMPAT_EXTRA_ISIZE| + EXT4_FEATURE_RO_COMPAT_GDT_CSUM | + EXT2_FEATURE_RO_COMPAT_SPARSE_SUPER | ++#ifdef CONFIG_QUOTA + EXT4_FEATURE_RO_COMPAT_QUOTA | ++#endif + EXT4_FEATURE_RO_COMPAT_METADATA_CSUM + }; + +@@ -164,7 +168,9 @@ static __u32 clear_ok_features[3] = { + EXT4_FEATURE_RO_COMPAT_DIR_NLINK| + EXT4_FEATURE_RO_COMPAT_EXTRA_ISIZE| + EXT4_FEATURE_RO_COMPAT_GDT_CSUM | ++#ifdef CONFIG_QUOTA + EXT4_FEATURE_RO_COMPAT_QUOTA | ++#endif + EXT4_FEATURE_RO_COMPAT_METADATA_CSUM + }; + +@@ -473,6 +479,7 @@ static int rewrite_dir_block(ext2_filsys fs, + dcl->limit = ext2fs_cpu_to_le16(max_entries); + } + } else { ++ int max_entries; + /* If htree block is full then rebuild the dir */ + if (ext2fs_le16_to_cpu(dcl->count) == + ext2fs_le16_to_cpu(dcl->limit)) { +@@ -483,7 +490,7 @@ static int rewrite_dir_block(ext2_filsys fs, + * Ensure dcl->limit is small enough to leave room for + * the checksum tail. + */ +- int max_entries = (fs->blocksize - (dcl_offset + ++ max_entries = (fs->blocksize - (dcl_offset + + sizeof(struct ext2_dx_tail))) / + sizeof(struct ext2_dx_entry); + if (ext2fs_le16_to_cpu(dcl->limit) != max_entries) +@@ -1124,6 +1131,7 @@ err: + return 1; + } + ++#ifdef CONFIG_QUOTA + void handle_quota_options(ext2_filsys fs) + { + quota_ctx_t qctx; +@@ -1169,6 +1177,7 @@ void handle_quota_options(ext2_filsys fs) + + return; + } ++#endif + + void parse_quota_opts(const char *opts) + { +@@ -2540,7 +2549,13 @@ retry_open: + rc = 1; + goto closefs; + } ++#ifdef CONFIG_QUOTA + handle_quota_options(fs); ++#else ++ fputs(_("The quota feature is disabled.\n"), stderr); ++ rc = 1; ++ goto closefs; ++#endif + } + + if (U_flag) { diff --git a/sys-libs/glu/glu-9.0.bep b/sys-libs/glu/glu-9.0.bep new file mode 100644 index 000000000..1f6601b29 --- /dev/null +++ b/sys-libs/glu/glu-9.0.bep @@ -0,0 +1,23 @@ +DESCRIPTION="glu" +HOMEPAGE="http://freedesktop.org" +SRC_URI="ftp://freedesktop.org/pub/mesa/glu/glu-9.0.0.tar.gz" +CHECKSUM_MD5="bbc57d4fe3bd3fb095bdbef6fcb977c4" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="" +BUILD { + cd glu-9.0.0 + ./configure --prefix=`finddir B_SYSTEM_DIRECTORY` \ + --datadir=`finddir B_COMMON_DATA_DIRECTORY`/ \ + --includedir=`finddir B_SYSTEM_HEADERS_DIRECTORY`/os/opengl \ + --mandir=`finddir B_COMMON_DOCUMENTATION_DIRECTORY`/man + make +} + +INSTALL { + cd glu-9.0.0 + make install DESTDIR="${DESTDIR}" +} + +LICENSE="MIT" +COPYRIGHT="Copyright (C) 1999-2012 Brian Paul and others. All Rights Reserved." diff --git a/sys-libs/mesa/buildpackage.sh b/sys-libs/mesa/buildpackage.sh new file mode 100644 index 000000000..6fc82c244 --- /dev/null +++ b/sys-libs/mesa/buildpackage.sh @@ -0,0 +1,79 @@ +#!/bin/bash +# Mesa-O-Matic +# Copyright 2011-2012, Alexander von Gluck IV +# Released under the terms of the MIT license + +# This script creates an optional package containing the +# the headers and binary code needed by the opengl kit +# to link libGL.so + +# This script is run against a *COMPILED* Mesa source tree + +echo " Welcome to Mesa-O-Matic!" +echo "-=-=-=-=-=-=-=-=-=-=-=-=-=" +echo "" + +if [[ $DEBUG -eq 1 ]]; then + echo "Debugging: enabled" +else + echo "Debugging: disabled" +fi + +####################################################################### +# END CONFIG DATA, Dragons below! +####################################################################### + +if [[ $( uname ) != "Haiku" ]]; then + echo "*************************************" + echo " I need to be run on a Haiku system!!" + echo "*************************************" + exit 1 +fi + +if [[ -z $1 ]]; then + echo "" + echo "Usage: $0 " + echo "" + exit 1 +fi + +MESA_VER="$1" +MESA_TOP="$2" +GCC_VER=`gcc -v 2>&1 | tail -1 | awk '{print $3}' | cut -d. -f1` +DATESTAMP=`date +"%Y-%m-%d"` + +echo "Bundling gcc$GCC_VER build of Mesa $MESA_VER..." + +cd $MESA_TOP + +####################################################################### +# Create Mesa optional pacakge +ZIP_HEADERS="" +echo "Collecting Mesa headers..." +for i in $(find . -name "*.h") +do + ZIP_HEADERS="$ZIP_HEADERS $i" +done + +echo "Collecting required Mesa libraries..." +rm -rf lib.haiku +mkdir -p lib.haiku +for i in $( find . -name "*.a" ) +do + cp $i lib.haiku/ +done + +if [[ $DEBUG -eq 0 ]]; then +echo "Stripping debug symbols from Mesa libraries..." +find lib.haiku -exec strip --strip-debug {} \; ; +MESADBG="" +else +MESADBG="dbg" +fi + +echo "Creating Mesa OptionalPackage..." +PLATFORM=$( uname -m ) +ZIP_FILENAME="/boot/home/mesa-${MESA_VER}-x86${MESADBG}-gcc${GCC_VER}-${DATESTAMP}.zip" +zip -r -9 $ZIP_FILENAME $ZIP_HEADERS ./lib.haiku/* + +echo "Great Success! $ZIP_FILENAME created." diff --git a/sys-libs/mesa/mesa-7.8.2.bep b/sys-libs/mesa/mesa-7.8.2.bep new file mode 100644 index 000000000..0fbc12615 --- /dev/null +++ b/sys-libs/mesa/mesa-7.8.2.bep @@ -0,0 +1,25 @@ +############################################################### +# THIS IS NOT FOR GENERAL USE! +# This builds a buildpackage for the Haiku build system to link +# the OpenGL kit!! +############################################################### + +DESCRIPTION="Mesa3D is a multi-platform GL implementation" +HOMEPAGE="http://www.freedesktop.org/" +SRC_URI="ftp://freedesktop.org/pub/mesa/7.8.2/MesaLib-7.8.2.tar.bz2" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="" +CHECKSUM_MD5="6be2d343a0089bfd395ce02aaf8adb57" +MESSAGE="This port only builds with gcc2. Not for general use." +BUILD { + export DEBUG=0 + cd Mesa-7.8.2 + make + cd .. + sh $(haikuporter -t)/sys-libs/mesa/buildpackage.sh 7.8.2 ./Mesa-7.8.2 + echo "There should be a Mesa OptionalBuild package in your home if everything went well!" +} + +LICENSE="MIT" +COPYRIGHT="1999-2012 Brian Paul All Rights Reserved." diff --git a/sys-libs/mesa/mesa-9.0.1.bep b/sys-libs/mesa/mesa-9.0.1.bep new file mode 100644 index 000000000..d03000d46 --- /dev/null +++ b/sys-libs/mesa/mesa-9.0.1.bep @@ -0,0 +1,25 @@ +############################################################### +# THIS IS NOT FOR GENERAL USE! +# This builds a buildpackage for the Haiku build system to link +# the OpenGL kit!! +############################################################### + +DESCRIPTION="Mesa3D is a multi-platform GL implementation" +HOMEPAGE="http://www.freedesktop.org/" +SRC_URI="ftp://freedesktop.org/pub/mesa/9.0.1/MesaLib-9.0.1.tar.bz2" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="scons" +CHECKSUM_MD5="97d6554c05ea7449398afe3a0ede7018" +MESSAGE="This port only builds with gcc4. Not for general use." +BUILD { + export DEBUG=0 + cd Mesa-9.0.1 + scons debug=$DEBUG + cd .. + sh $(haikuporter -t)/sys-libs/mesa/buildpackage.sh 9.0.1 ./Mesa-9.0.1 + echo "There should be a Mesa OptionalBuild package in your home if everything went well!" +} + +LICENSE="MIT" +COPYRIGHT="Copyright (C) 1999-2012 Brian Paul All Rights Reserved." diff --git a/sys-libs/mesa/mesa-9.0.2.bep b/sys-libs/mesa/mesa-9.0.2.bep new file mode 100644 index 000000000..6bc915411 --- /dev/null +++ b/sys-libs/mesa/mesa-9.0.2.bep @@ -0,0 +1,28 @@ +############################################################### +# THIS IS NOT FOR GENERAL USE! +# This builds a buildpackage for the Haiku build system to link +# the OpenGL kit!! +############################################################### + +DESCRIPTION="Mesa3D is a multi-platform GL implementation" +HOMEPAGE="http://www.freedesktop.org/" +SRC_URI="ftp://freedesktop.org/pub/mesa/9.0.2/MesaLib-9.0.2.tar.bz2" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="scons, llvm >= 3.2" +CHECKSUM_MD5="dc45d1192203e418163e0017640e1cfc" +MESSAGE="This port only builds with gcc4. Not for general use." +BUILD { + export DEBUG=0 + echo "=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=" + echo "This generates a Mesa3D build package for Haiku... not for general use" + echo "=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=" + cd Mesa-9.0.2 + scons debug=$DEBUG + cd .. + sh $(haikuporter -t)/sys-libs/mesa/buildpackage.sh 9.0.2 ./Mesa-9.0.2 + echo "There should be a Mesa OptionalBuild package in your home if everything went well!" +} + +LICENSE="MIT" +COPYRIGHT="1999-2012 Brian Paul All Rights Reserved." diff --git a/sys-libs/mesa/mesa-9.0.bep b/sys-libs/mesa/mesa-9.0.bep new file mode 100644 index 000000000..768707c1e --- /dev/null +++ b/sys-libs/mesa/mesa-9.0.bep @@ -0,0 +1,25 @@ +############################################################### +# THIS IS NOT FOR GENERAL USE! +# This builds a buildpackage for the Haiku build system to link +# the OpenGL kit!! +############################################################### + +DESCRIPTION="Mesa3D is a multi-platform GL implementation" +HOMEPAGE="http://www.freedesktop.org/" +SRC_URI="ftp://freedesktop.org/pub/mesa/9.0/MesaLib-9.0.tar.bz2" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="scons" +CHECKSUM_MD5="60e557ce407be3732711da484ab3db6c" +MESSAGE="This port only builds with gcc4. Not for general use." +BUILD { + export DEBUG=0 + cd Mesa-9.0 + scons debug=$DEBUG + cd .. + sh $(haikuporter -t)/sys-libs/mesa/buildpackage.sh 9.0 ./Mesa-9.0 + echo "There should be a Mesa OptionalBuild package in your home if everything went well!" +} + +LICENSE="MIT" +COPYRIGHT="Copyright (C) 1999-2012 Brian Paul All Rights Reserved." diff --git a/sys-libs/mesa/mesa-9.1.0.bep b/sys-libs/mesa/mesa-9.1.0.bep new file mode 100644 index 000000000..e35967ffc --- /dev/null +++ b/sys-libs/mesa/mesa-9.1.0.bep @@ -0,0 +1,28 @@ +############################################################### +# THIS IS NOT FOR GENERAL USE! +# This builds a buildpackage for the Haiku build system to link +# the OpenGL kit!! +############################################################### + +DESCRIPTION="Mesa3D is a multi-platform GL implementation" +HOMEPAGE="http://www.freedesktop.org/" +SRC_URI="ftp://freedesktop.org/pub/mesa/9.1/MesaLib-9.1.tar.bz2" +REVISION="1" +STATUS_HAIKU="unstable" +DEPEND="scons, llvm >= 3.2" +CHECKSUM_MD5="d3891e02215422e120271d976ff1947e" +MESSAGE="This port only builds with gcc4. Not for general use." +BUILD { + export DEBUG=0 + echo "=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=" + echo "This generates a Mesa3D build package for Haiku... not for general use" + echo "=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=" + cd Mesa-9.1 + scons debug=$DEBUG + cd .. + sh $(haikuporter -t)/sys-libs/mesa/buildpackage.sh 9.1.0 ./Mesa-9.1 + echo "There should be a Mesa OptionalBuild package in your home if everything went well!" +} + +LICENSE="MIT" +COPYRIGHT="1999-2012 Brian Paul All Rights Reserved." diff --git a/sys-libs/mesa/mesa-9.1.1.bep b/sys-libs/mesa/mesa-9.1.1.bep new file mode 100644 index 000000000..573804871 --- /dev/null +++ b/sys-libs/mesa/mesa-9.1.1.bep @@ -0,0 +1,28 @@ +############################################################### +# THIS IS NOT FOR GENERAL USE! +# This builds a buildpackage for the Haiku build system to link +# the OpenGL kit!! +############################################################### + +DESCRIPTION="Mesa3D is a multi-platform GL implementation" +HOMEPAGE="http://www.freedesktop.org/" +SRC_URI="ftp://freedesktop.org/pub/mesa/9.1.1/MesaLib-9.1.1.tar.bz2" +REVISION="1" +STATUS_HAIKU="unstable" +DEPEND="scons, llvm >= 3.2" +CHECKSUM_MD5="6ea2bdc3b7ecfb4257b39814b4182580" +MESSAGE="This port only builds with gcc4. Not for general use." +BUILD { + export DEBUG=1 + echo "=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=" + echo "This generates a Mesa3D build package for Haiku... not for general use" + echo "=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=" + cd Mesa-9.1.1 + scons debug=$DEBUG + cd .. + sh $(haikuporter -t)/sys-libs/mesa/buildpackage.sh 9.1.1 ./Mesa-9.1.1 + echo "There should be a Mesa OptionalBuild package in your home if everything went well!" +} + +LICENSE="MIT" +COPYRIGHT="1999-2012 Brian Paul All Rights Reserved." diff --git a/sys-libs/mesa/patches/mesa-7.8.2.patch b/sys-libs/mesa/patches/mesa-7.8.2.patch new file mode 100644 index 000000000..a01fc9d20 --- /dev/null +++ b/sys-libs/mesa/patches/mesa-7.8.2.patch @@ -0,0 +1,470 @@ +diff -Naur Mesa-7.8.2/bin/mklib Mesa-7.8.2-haiku/bin/mklib +--- Mesa-7.8.2/bin/mklib 2010-06-15 17:43:41.034865152 +0000 ++++ Mesa-7.8.2-haiku/bin/mklib 2013-02-17 22:26:13.017301504 +0000 +@@ -260,7 +260,7 @@ + NEWOBJECTS="" + for OBJ in $OBJECTS ; do + case $OBJ in +- -Wl,*) ++ -Wl,*|-L*|-l*) + echo "mklib: warning: ignoring $OBJ for static library" + ;; + *) +@@ -307,7 +307,7 @@ + # + case $ARCH in + +- 'Linux' | 'OpenBSD' | 'DragonFly' | 'GNU' | GNU/*) ++ 'Linux' | 'OpenBSD' | 'DragonFly' | 'GNU' | GNU/* | 'NetBSD') + # we assume gcc + + if [ "x$LINK" = "x" ] ; then +@@ -494,13 +494,16 @@ + OPTS="${OPTS} -Wl,-Mmapfile.scope" + fi + +- # Check if objects are SPARC v9 ++ # Check if objects are 64-bit + # file says: ELF 64-bit MSB relocatable SPARCV9 Version 1 + set ${OBJECTS} + if [ ${LINK} = "cc" -o ${LINK} = "CC" ] ; then +- SPARCV9=`file $1 | grep SPARCV9` +- if [ "${SPARCV9}" ] ; then +- OPTS="${OPTS} -xarch=v9" ++ ABI64=`file $1 | grep "ELF 64-bit"` ++ if [ "${ABI64}" ] ; then ++ case `uname -p` in ++ sparc) OPTS="${OPTS} -xarch=v9" ;; ++ i386) OPTS="${OPTS} -xarch=amd64" ;; ++ esac + fi + fi + if [ "${ALTOPTS}" ] ; then +@@ -571,20 +574,6 @@ + fi + ;; + +- 'NetBSD') +- if [ $STATIC = 1 ] ; then +- LIBNAME="lib${LIBNAME}_pic.a" +- echo "mklib: Making NetBSD PIC static library: " ${LIBNAME} +- FINAL_LIBS=`make_ar_static_lib cq 1 ${LIBNAME} ${OBJECTS}` +- else +- LIBNAME="lib${LIBNAME}.so.${MAJOR}.${MINOR}" +- echo "mklib: Making NetBSD PIC shared library: " ${LIBNAME} +- rm -f ${LIBNAME} +- ld -x -Bshareable -Bforcearchive -o ${LIBNAME} ${OBJECTS} +- FINAL_LIBS=${LIBNAME} +- fi +- ;; +- + 'IRIX' | 'IRIX64') + if [ $STATIC = 1 ] ; then + LIBNAME="lib${LIBNAME}.a" +@@ -778,9 +767,8 @@ + OPTS="${OPTS} -exported_symbols_list ${EXPORTS}" + fi + +- LINKNAME="lib${LIBNAME}.${MAJOR}.${LIBSUFFIX}" +- LINKNAME2="lib${LIBNAME}.${LIBSUFFIX}" +- LIBNAME="lib${LIBNAME}.${MAJOR}.${MINOR}.${LIBSUFFIX}" ++ LINKNAME="lib${LIBNAME}.${LIBSUFFIX}" ++ LIBNAME="lib${LIBNAME}.${MAJOR}.${LIBSUFFIX}" + + # examine first object to determine ABI + set ${OBJECTS} +@@ -793,9 +781,6 @@ + OPTS=${ALTOPTS} + fi + +- # XXX can we always add -isysroot /Developer/SDKs/MacOSX10.4u.sdk +- # to OPTS here? +- + # determine linker + if [ $CPLUSPLUS = 1 ] ; then + LINK="g++" +@@ -807,8 +792,7 @@ + + ${LINK} ${OPTS} ${LDFLAGS} -o ${LIBNAME} ${OBJECTS} ${DEPS} + ln -s ${LIBNAME} ${LINKNAME} +- ln -s ${LIBNAME} ${LINKNAME2} +- FINAL_LIBS="${LIBNAME} ${LINKNAME} ${LINKNAME2}" ++ FINAL_LIBS="${LIBNAME} ${LINKNAME}" + fi + ;; + +@@ -818,22 +802,6 @@ + FINAL_LIBS=`make_ar_static_lib -ru 0 ${LIBNAME} ${OBJECTS}` + ;; + +- 'BeOS') +- if [ $STATIC = 1 ] ; then +- LIBNAME="lib${LIBNAME}.a" +- echo "mklib: Making BeOS static library: " ${LIBNAME} +- FINAL_LIBS=`make_ar_static_lib -cru 0 ${LIBNAME} ${OBJECTS}` +- else +- LIBNAME="lib${LIBNAME}.so" +- echo "mklib: Making BeOS shared library: " ${LIBNAME} +- gcc -nostart -Xlinker "-soname=${LIBNAME}" -L/Be/develop/lib/x86 -lbe ${DEPS} ${OBJECTS} -o "${LIBNAME}" +- mimeset -f "${LIBNAME}" +- # XXX remove the Mesa3D stuff here since mklib isn't mesa-specific. +- setversion "${LIBNAME}" -app ${MAJOR} ${MINOR} ${PATCH} -short "Powered by Mesa3D!" -long "Powered by Mesa3D!" +- fi +- FINAL_LIBS=${LIBNAME} +- ;; +- + 'QNX') + LIBNAME="lib${LIBNAME}.a" + echo "mklib: Making QNX library: " ${LIBNAME} +@@ -927,6 +895,16 @@ + + CYGWIN*) + # GCC-based environment ++ ++ if [ "x$LINK" = "x" ] ; then ++ # -linker was not specified so set default link command now ++ if [ $CPLUSPLUS = 1 ] ; then ++ LINK=g++ ++ else ++ LINK=gcc ++ fi ++ fi ++ + if [ $NOPREFIX = 1 ] ; then + # No "lib" or ".so" part + echo "mklib: Making CYGWIN shared library: " ${LIBNAME} +@@ -935,7 +913,7 @@ + OPTS=${ALTOPTS} + fi + rm -f ${LIBNAME} +- ${LINK} ${OPTS} ${LDFLAGS} -o ${LIBNAME} ${OBJECTS} ${DEPS} ++ ${LINK} ${OPTS} ${LDFLAGS} -o ${LIBNAME} ${OBJECTS} ${DEPS} || exit $? + FINAL_LIBS=${LIBNAME} + else + CYGNAME="cyg${LIBNAME}" # prefix with "cyg" +@@ -943,7 +921,7 @@ + + if [ $STATIC = 1 ] ; then + LIBNAME=${LIBNAME}.a +- echo "mklib: Making" $ARCH "static library: " ${LIBNAME} ++ echo "mklib: Making CYGWIN static library: " ${LIBNAME} + OPTS="-ru" + if [ "${ALTOPTS}" ] ; then + OPTS=${ALTOPTS} +@@ -961,13 +939,7 @@ + if [ "${ALTOPTS}" ] ; then + OPTS=${ALTOPTS} + fi +- echo "mklib: Making" $ARCH "shared library: " ${CYGNAME}-${MAJOR}.dll +- +- if [ $CPLUSPLUS = 1 ] ; then +- LINK="g++" +- else +- LINK="gcc" +- fi ++ echo "mklib: Making CYGWIN shared library: " ${CYGNAME}-${MAJOR}.dll + + # rm any old libs + rm -f ${CYGNAME}-${MAJOR}.dll +@@ -976,12 +948,7 @@ + rm -f ${LIBNAME}.a + + # make lib +- ${LINK} ${OPTS} ${LDFLAGS} -o ${CYGNAME}-${MAJOR}.dll ${OBJECTS} ${DEPS} +- # make build fail if link failed +- es=$? +- if [ "$es" -ne "0" ]; then +- exit $es +- fi ++ ${LINK} ${OPTS} ${LDFLAGS} -o ${CYGNAME}-${MAJOR}.dll ${OBJECTS} ${DEPS} || exit $? + # make usual symlinks + ln -s ${LIBNAME}-${MAJOR}.dll.a ${LIBNAME}.dll.a + # finish up +@@ -992,6 +959,43 @@ + fi + ;; + ++ 'Haiku') ++ if [ $STATIC = 1 ] ; then ++ LIBNAME="lib${LIBNAME}.a" ++ if [ "x$LINK" = "x" ] ; then ++ # -linker was not specified so set default link command now ++ if [ $CPLUSPLUS = 1 ] ; then ++ LINK=g++ ++ else ++ LINK=gcc ++ fi ++ fi ++ ++ OPTS="-ru" ++ if [ "${ALTOPTS}" ] ; then ++ OPTS=${ALTOPTS} ++ fi ++ ++ echo "mklib: Making static library for Haiku: " ${LIBNAME} ++ ++ # expand .a into .o files ++ NEW_OBJECTS=`expand_archives ${LIBNAME}.obj $OBJECTS` ++ ++ # make static lib ++ FINAL_LIBS=`make_ar_static_lib ${OPTS} 1 ${LIBNAME} ${NEW_OBJECTS}` ++ ++ # remove temporary extracted .o files ++ rm -rf ${LIBNAME}.obj ++ else ++ LIBNAME="lib${LIBNAME}.so" # prefix with "lib", suffix with ".so" ++ OPTS="-shared" ++ ++ echo "mklib: Making shared library for Haiku: " ${LIBNAME} ++ ${LINK} ${OPTS} ${LDFLAGS} ${OBJECTS} ${DEPS} -o ${LIBNAME} ++ FINAL_LIBS="${LIBNAME}" ++ fi ++ ;; ++ + 'example') + # If you're adding support for a new architecture, you can + # start with this: +@@ -1021,4 +1025,9 @@ + echo "mklib: Installing" ${FINAL_LIBS} "in" ${INSTALLDIR} + test -d ${INSTALLDIR} || mkdir -p ${INSTALLDIR} + mv ${FINAL_LIBS} ${INSTALLDIR}/ ++ ++ if [ "x${FINAL_BINS}" != "x" ] ; then ++ echo "mklib: Installing" ${FINAL_BINS} "in" ${INSTALLDIR} ++ mv ${FINAL_BINS} ${INSTALLDIR}/ ++ fi + fi +diff -Naur Mesa-7.8.2/configs/current Mesa-7.8.2-haiku/configs/current +--- Mesa-7.8.2/configs/current 1970-01-01 00:00:00.000000000 +0000 ++++ Mesa-7.8.2-haiku/configs/current 2013-02-17 22:26:13.021495808 +0000 +@@ -0,0 +1,63 @@ ++# Configuration for Haiku ++# Written by Alexander von Gluck IV ++# ++# Based on the BeOS config ++# written by Philippe Houdoin ++ ++include $(TOP)/configs/default ++ ++CONFIG_NAME = haiku ++ ++# Haiku settings ++ ++DEFINES = \ ++ -DBEOS_THREADS \ ++ -DGNU_ASSEMBLER \ ++ -DUSE_X86_ASM \ ++ -DUSE_MMX_ASM \ ++ -DUSE_3DNOW_ASM \ ++ -DUSE_SSE_ASM ++ ++MESA_ASM_SOURCES = $(X86_SOURCES) ++GLAPI_ASM_SOURCES = $(X86_API) ++ ++CC = gcc ++CXX = g++ ++LD = gcc ++ ++CFLAGS = -Wall -Wno-multichar $(DEFINES) ++CXXFLAGS = $(CFLAGS) ++LDFLAGS += ++ ++# Work around aliasing bugs - developers should comment this out ++CFLAGS += -fno-strict-aliasing ++#CFLAGS += -std=c99 ++CXXFLAGS += -fno-strict-aliasing ++ ++# No makedepend on Haiku, this will solve it ++MKDEP = true ++ ++# Debug defines ++ifdef DEBUG ++ CFLAGS += -g -O0 ++ LDFLAGS += -g ++ DEFINES += -DDEBUG ++else ++ CFLAGS += -O3 ++endif ++ ++# GLU settings ++GLU_LIB_NAME = libglu.a ++GLU_LIB = glu ++ ++# Directories ++SRC_DIRS = glsl mesa/x86 mapi/glapi mesa glu ++GLU_DIRS = sgi ++DRIVER_DIRS = ++PROGRAM_DIRS = ++ ++# Library/program dependencies ++GL_LIB_DEPS = ++OSMESA_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(GL_LIB) ++GLU_LIB_DEPS = ++APP_LIB_DEPS = -lbe -L$(TOP)/$(LIB_DIR) -l$(GL_LIB) -l$(GLUT_LIB) +diff -Naur Mesa-7.8.2/configs/haiku Mesa-7.8.2-haiku/configs/haiku +--- Mesa-7.8.2/configs/haiku 1970-01-01 00:00:00.000000000 +0000 ++++ Mesa-7.8.2-haiku/configs/haiku 2013-02-17 22:26:13.031195136 +0000 +@@ -0,0 +1,63 @@ ++# Configuration for Haiku ++# Written by Alexander von Gluck IV ++# ++# Based on the BeOS config ++# written by Philippe Houdoin ++ ++include $(TOP)/configs/default ++ ++CONFIG_NAME = haiku ++ ++# Haiku settings ++ ++DEFINES = \ ++ -DBEOS_THREADS \ ++ -DGNU_ASSEMBLER \ ++ -DUSE_X86_ASM \ ++ -DUSE_MMX_ASM \ ++ -DUSE_3DNOW_ASM \ ++ -DUSE_SSE_ASM ++ ++MESA_ASM_SOURCES = $(X86_SOURCES) ++GLAPI_ASM_SOURCES = $(X86_API) ++ ++CC = gcc ++CXX = g++ ++LD = gcc ++ ++CFLAGS = -Wall -Wno-multichar $(DEFINES) ++CXXFLAGS = $(CFLAGS) ++LDFLAGS += ++ ++# Work around aliasing bugs - developers should comment this out ++CFLAGS += -fno-strict-aliasing ++#CFLAGS += -std=c99 ++CXXFLAGS += -fno-strict-aliasing ++ ++# No makedepend on Haiku, this will solve it ++MKDEP = true ++ ++# Debug defines ++ifdef DEBUG ++ CFLAGS += -g -O0 ++ LDFLAGS += -g ++ DEFINES += -DDEBUG ++else ++ CFLAGS += -O3 ++endif ++ ++# GLU settings ++GLU_LIB_NAME = libglu.a ++GLU_LIB = glu ++ ++# Directories ++SRC_DIRS = glsl mesa/x86 mapi/glapi mesa glu ++GLU_DIRS = sgi ++DRIVER_DIRS = ++PROGRAM_DIRS = ++ ++# Library/program dependencies ++GL_LIB_DEPS = ++OSMESA_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(GL_LIB) ++GLU_LIB_DEPS = ++APP_LIB_DEPS = -lbe -L$(TOP)/$(LIB_DIR) -l$(GL_LIB) -l$(GLUT_LIB) +diff -Naur Mesa-7.8.2/include/GL/gl.h Mesa-7.8.2-haiku/include/GL/gl.h +--- Mesa-7.8.2/include/GL/gl.h 2010-04-27 21:41:21.060555264 +0000 ++++ Mesa-7.8.2-haiku/include/GL/gl.h 2013-02-17 22:30:31.274989056 +0000 +@@ -67,7 +67,8 @@ + #elif defined(__CYGWIN__) && defined(USE_OPENGL32) /* use native windows opengl32 */ + # define GLAPI extern + # define GLAPIENTRY __stdcall +-#elif defined(__GNUC__) || (defined(__SUNPRO_C) && (__SUNPRO_C >= 0x590)) ++#elif (defined(__GNUC__) && ((__GNUC__ * 100 + __GNUC_MINOR__) >= 303) && \ ++ defined(__ELF__)) || (defined(__SUNPRO_C) && (__SUNPRO_C >= 0x590)) + # define GLAPI __attribute__((visibility("default"))) + # define GLAPIENTRY + #endif /* WIN32 && !CYGWIN */ +diff -Naur Mesa-7.8.2/Makefile Mesa-7.8.2-haiku/Makefile +--- Mesa-7.8.2/Makefile 2010-06-16 21:22:57.033292288 +0000 ++++ Mesa-7.8.2-haiku/Makefile 2013-02-17 22:26:13.034340864 +0000 +@@ -84,6 +84,7 @@ + freebsd-dri \ + freebsd-dri-amd64 \ + freebsd-dri-x86 \ ++haiku \ + hpux10 \ + hpux10-gcc \ + hpux10-static \ +diff -Naur Mesa-7.8.2/src/gallium/auxiliary/draw/draw_private.h Mesa-7.8.2-haiku/src/gallium/auxiliary/draw/draw_private.h +--- Mesa-7.8.2/src/gallium/auxiliary/draw/draw_private.h 2010-06-15 17:43:42.046661632 +0000 ++++ Mesa-7.8.2-haiku/src/gallium/auxiliary/draw/draw_private.h 2013-02-17 22:26:13.037486592 +0000 +@@ -70,7 +70,7 @@ + + /* This will probably become float (*data)[4] soon: + */ +- float data[][4]; ++ float (*data)[4]; + }; + + /* NOTE: It should match vertex_id size above */ +diff -Naur Mesa-7.8.2/src/gallium/auxiliary/os/os_thread.h Mesa-7.8.2-haiku/src/gallium/auxiliary/os/os_thread.h +--- Mesa-7.8.2/src/gallium/auxiliary/os/os_thread.h 2010-06-15 17:43:42.056623104 +0000 ++++ Mesa-7.8.2-haiku/src/gallium/auxiliary/os/os_thread.h 2013-02-17 22:26:13.040370176 +0000 +@@ -257,7 +257,7 @@ + * pipe_barrier + */ + +-#if defined(PIPE_OS_LINUX) || defined(PIPE_OS_BSD) || defined(PIPE_OS_SOLARIS) || defined(PIPE_OS_HAIKU) ++#if defined(PIPE_OS_LINUX) || defined(PIPE_OS_BSD) || defined(PIPE_OS_SOLARIS) + + typedef pthread_barrier_t pipe_barrier; + +diff -Naur Mesa-7.8.2/src/gallium/auxiliary/util/u_debug.h Mesa-7.8.2-haiku/src/gallium/auxiliary/util/u_debug.h +--- Mesa-7.8.2/src/gallium/auxiliary/util/u_debug.h 2010-06-15 17:43:42.000000000 +0000 ++++ Mesa-7.8.2-haiku/src/gallium/auxiliary/util/u_debug.h 2013-02-17 22:26:13.046923776 +0000 +@@ -91,8 +91,10 @@ + (void) format; /* silence warning */ + #endif + } +- +-#endif /* !PIPE_OS_HAIKU */ ++#else /* is Haiku */ ++/* Haiku provides debug_printf in libroot with OS.h */ ++#include ++#endif + + /* + * ... isn't portable so we need to pass arguments in parentheses. +diff -Naur Mesa-7.8.2/src/glu/sgi/Makefile Mesa-7.8.2-haiku/src/glu/sgi/Makefile +--- Mesa-7.8.2/src/glu/sgi/Makefile 2010-02-05 00:10:40.064487424 +0000 ++++ Mesa-7.8.2-haiku/src/glu/sgi/Makefile 2013-02-17 22:26:13.049545216 +0000 +@@ -135,13 +135,19 @@ + -mkdir $(TOP)/$(LIB_DIR) + + # Make the library: +-$(TOP)/$(LIB_DIR)/$(GLU_LIB_NAME): $(OBJECTS) ++$(TOP)/$(LIB_DIR)/lib$(GLU_LIB).so: $(OBJECTS) + $(MKLIB) -o $(GLU_LIB) -linker '$(CXX)' -ldflags '$(LDFLAGS)' \ + -major $(GLU_MAJOR) -minor $(GLU_MINOR) -patch $(GLU_TINY) \ + -cplusplus $(MKLIB_OPTIONS) -install $(TOP)/$(LIB_DIR) \ + -exports glu.exports -id $(INSTALL_LIB_DIR)/lib$(GLU_LIB).$(GLU_MAJOR).dylib \ + $(GLU_LIB_DEPS) $(OBJECTS) + ++$(TOP)/$(LIB_DIR)/lib$(GLU_LIB).a: $(OBJECTS) ++ $(MKLIB) -o $(GLU_LIB) -static -linker '$(CXX)' -ldflags '$(LDFLAGS)' \ ++ -major $(GLU_MAJOR) -minor $(GLU_MINOR) -patch $(GLU_TINY) \ ++ -cplusplus $(MKLIB_OPTIONS) -install $(TOP)/$(LIB_DIR) \ ++ -exports glu.exports -id $(INSTALL_LIB_DIR)/lib$(GLU_LIB).$(GLU_MAJOR).dylib \ ++ $(GLU_LIB_DEPS) $(OBJECTS) + + clean: + -rm -f *.o */*.o */*/*.o +diff -Naur Mesa-7.8.2/src/mesa/glapi/glapi.h Mesa-7.8.2-haiku/src/mesa/glapi/glapi.h +--- Mesa-7.8.2/src/mesa/glapi/glapi.h 2010-06-15 17:43:43.026476544 +0000 ++++ Mesa-7.8.2-haiku/src/mesa/glapi/glapi.h 2013-02-17 22:26:13.052428800 +0000 +@@ -62,7 +62,7 @@ + #endif + + +-#if defined(__GNUC__) ++#if defined(__GNUC__) && __GNUC__ > 2 + # define likely(x) __builtin_expect(!!(x), 1) + # define unlikely(x) __builtin_expect(!!(x), 0) + #else diff --git a/sys-libs/mesa/patches/mesa-9.0.1.patch b/sys-libs/mesa/patches/mesa-9.0.1.patch new file mode 100644 index 000000000..457c1ce1b --- /dev/null +++ b/sys-libs/mesa/patches/mesa-9.0.1.patch @@ -0,0 +1,52 @@ +diff -Naur Mesa-9.0.1/scons/gallium.py Mesa-9.0.1-haiku/scons/gallium.py +--- Mesa-9.0.1/scons/gallium.py 2012-11-09 12:16:31.041680896 -0600 ++++ Mesa-9.0.1-haiku/scons/gallium.py 2012-12-19 16:03:56.564658176 -0600 +@@ -361,8 +361,7 @@ + ccflags += [ + '-mstackrealign', # ensure stack is aligned + '-march=i586', # Haiku target is Pentium +- '-mtune=i686', # use i686 where we can +- '-mmmx' # use mmx math where we can ++ '-mtune=i686' # use i686 where we can + ] + if env['machine'] == 'x86_64': + ccflags += ['-m64'] +diff -Naur Mesa-9.0.1/scons/llvm.py Mesa-9.0.1-haiku/scons/llvm.py +--- Mesa-9.0.1/scons/llvm.py 2012-08-31 18:33:41.041680896 -0500 ++++ Mesa-9.0.1-haiku/scons/llvm.py 2012-12-18 23:05:50.677642240 -0600 +@@ -183,6 +183,9 @@ + if llvm_version >= distutils.version.LooseVersion('3.1'): + components.append('mcjit') + ++ if llvm_version >= distutils.version.LooseVersion('3.2'): ++ env.Append(CXXFLAGS = ('-fno-rtti',)) ++ + env.ParseConfig('llvm-config --libs ' + ' '.join(components)) + env.ParseConfig('llvm-config --ldflags') + except OSError: +diff -Naur Mesa-9.0.1/src/gallium/auxiliary/Makefile Mesa-9.0.1-haiku/src/gallium/auxiliary/Makefile +--- Mesa-9.0.1/src/gallium/auxiliary/Makefile 2012-08-31 18:33:41.050331648 -0500 ++++ Mesa-9.0.1-haiku/src/gallium/auxiliary/Makefile 2012-12-18 23:06:31.179306496 -0600 +@@ -15,6 +15,10 @@ + $(GALLIVM_CPP_SOURCES) + endif + ++# LLVM >= 3.2 requires -fno-rtti ++ifeq ($(shell expr `echo $(LLVM_VERSION) | sed -e 's/\([0-9]\)\.\([0-9]\)/\10\2/g'` \>= 302),1) ++CXXFLAGS += -fno-rtti ++endif + + include ../Makefile.template + +diff -Naur Mesa-9.0.1/src/mesa/SConscript Mesa-9.0.1-haiku/src/mesa/SConscript +--- Mesa-9.0.1/src/mesa/SConscript 2012-11-09 12:16:31.015728640 -0600 ++++ Mesa-9.0.1-haiku/src/mesa/SConscript 2012-12-19 16:32:37.285736960 -0600 +@@ -371,7 +371,7 @@ + # + # Assembly sources + # +-if env['gcc'] and env['platform'] not in ('darwin', 'windows'): ++if env['gcc'] and env['platform'] not in ('darwin', 'windows', 'haiku'): + if env['machine'] == 'x86': + env.Append(CPPDEFINES = [ + 'USE_X86_ASM', diff --git a/sys-libs/mesa/patches/mesa-9.0.2.patch b/sys-libs/mesa/patches/mesa-9.0.2.patch new file mode 100644 index 000000000..541ca854e --- /dev/null +++ b/sys-libs/mesa/patches/mesa-9.0.2.patch @@ -0,0 +1,25 @@ +diff -Naur Mesa-9.0.2/scons/llvm.py Mesa-9.0.2-haiku/scons/llvm.py +--- Mesa-9.0.2/scons/llvm.py 2013-01-22 18:09:32.066322432 +0000 ++++ Mesa-9.0.2-haiku/scons/llvm.py 2013-02-17 21:20:51.626262016 +0000 +@@ -183,6 +183,9 @@ + if llvm_version >= distutils.version.LooseVersion('3.1'): + components.append('mcjit') + ++ if llvm_version >= distutils.version.LooseVersion('3.2'): ++ env.Append(CXXFLAGS = ('-fno-rtti',)) ++ + env.ParseConfig('llvm-config --libs ' + ' '.join(components)) + env.ParseConfig('llvm-config --ldflags') + except OSError: +diff -Naur Mesa-9.0.2/src/mesa/SConscript Mesa-9.0.2-haiku/src/mesa/SConscript +--- Mesa-9.0.2/src/mesa/SConscript 2013-01-22 18:09:32.040370176 +0000 ++++ Mesa-9.0.2-haiku/src/mesa/SConscript 2013-02-17 21:20:22.510394368 +0000 +@@ -371,7 +371,7 @@ + # + # Assembly sources + # +-if env['gcc'] and env['platform'] not in ('darwin', 'windows'): ++if env['gcc'] and env['platform'] not in ('darwin', 'windows', 'haiku'): + if env['machine'] == 'x86': + env.Append(CPPDEFINES = [ + 'USE_X86_ASM', diff --git a/sys-libs/mesa/patches/mesa-9.0.patch b/sys-libs/mesa/patches/mesa-9.0.patch new file mode 100644 index 000000000..eac5cce5f --- /dev/null +++ b/sys-libs/mesa/patches/mesa-9.0.patch @@ -0,0 +1,42 @@ +diff -Naur Mesa-9.0/src/mesa/sources.mak Mesa-9.0-haiku/src/mesa/sources.mak +--- Mesa-9.0/src/mesa/sources.mak 2012-08-31 23:36:09.036700160 +0000 ++++ Mesa-9.0-haiku/src/mesa/sources.mak 2012-10-09 13:17:15.991690752 +0000 +@@ -281,7 +281,6 @@ + $(SRCDIR)x86/x86_xform.c \ + $(SRCDIR)x86/3dnow.c \ + $(SRCDIR)x86/sse.c \ +- $(SRCDIR)x86/rtasm/x86sse.c \ + $(SRCDIR)sparc/sparc.c \ + $(SRCDIR)x86-64/x86-64.c + +diff -Naur Mesa-9.0/src/mesa/tnl/t_vertex_sse.c Mesa-9.0-haiku/src/mesa/tnl/t_vertex_sse.c +--- Mesa-9.0/src/mesa/tnl/t_vertex_sse.c 2012-08-31 23:33:41.058458112 +0000 ++++ Mesa-9.0-haiku/src/mesa/tnl/t_vertex_sse.c 2012-10-09 13:20:34.234356736 +0000 +@@ -36,7 +36,7 @@ + + #if defined(USE_SSE_ASM) + +-#include "x86/rtasm/x86sse.h" ++#include "rtasm/rtasm_x86sse.h" + #include "x86/common_x86_asm.h" + + +@@ -356,7 +356,7 @@ + struct x86_reg vp0 = x86_make_reg(file_XMM, 1); + struct x86_reg vp1 = x86_make_reg(file_XMM, 2); + struct x86_reg temp2 = x86_make_reg(file_XMM, 3); +- GLubyte *fixup, *label; ++ GLuint fixup, label; + + /* Push a few regs? + */ +@@ -658,7 +658,8 @@ + p.identity = x86_make_reg(file_XMM, 6); + p.chan0 = x86_make_reg(file_XMM, 7); + +- if (!x86_init_func_size(&p.func, MAX_SSE_CODE_SIZE)) { ++ x86_init_func_size(&p.func, MAX_SSE_CODE_SIZE); ++ if (p.func.caps == 0) { + vtx->emit = NULL; + return; + } diff --git a/sys-libs/ncurses/ncurses-5.6.bep b/sys-libs/ncurses/ncurses-5.6.bep index 1cd67aeb6..69ec76766 100644 --- a/sys-libs/ncurses/ncurses-5.6.bep +++ b/sys-libs/ncurses/ncurses-5.6.bep @@ -7,7 +7,7 @@ STATUS_HAIKU="stable" DEPEND="" BUILD { cd ncurses-5.6 - ./configure --prefix=/boot/common + ./configure --prefix=`finddir B_COMMON_DIRECTORY` make } diff --git a/sys-libs/ncurses/ncurses-5.7.bep b/sys-libs/ncurses/ncurses-5.7.bep index aea58044f..06d53abd4 100644 --- a/sys-libs/ncurses/ncurses-5.7.bep +++ b/sys-libs/ncurses/ncurses-5.7.bep @@ -7,7 +7,7 @@ STATUS_HAIKU="stable" DEPEND="" BUILD { cd ncurses-5.7 - ./configure --prefix=/boot/common --with-libtool + ./configure --prefix=`finddir B_COMMON_DIRECTORY` --with-libtool make } diff --git a/sys-libs/ncurses/ncurses-5.8.bep b/sys-libs/ncurses/ncurses-5.8.bep new file mode 100644 index 000000000..8679d2720 --- /dev/null +++ b/sys-libs/ncurses/ncurses-5.8.bep @@ -0,0 +1,23 @@ +DESCRIPTION="ncurses" +HOMEPAGE="http://www.gnu.org/software/ncurses/ncurses.html" +SRC_URI="http://ftp.gnu.org/pub/gnu/ncurses/ncurses-5.8.tar.gz" +CHECKSUM_MD5="20ed3fa7599937f0ca268d9088837a64" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="" +BUILD { + cd ncurses-5.8 + ./configure --prefix=`finddir B_COMMON_DIRECTORY` \ + --datadir=`finddir B_COMMON_DATA_DIRECTORY`/ \ + --mandir=`finddir B_COMMON_DOCUMENTATION_DIRECTORY`/man \ + --with-libtool + make +} + +INSTALL { + cd ncurses-5.8 + ./misc/shlib make install DESTDIR="${DESTDIR}" +} + +LICENSE="MIT" +COPYRIGHT="1998-2011 Free Software Foundation, Inc." diff --git a/sys-libs/ncurses/ncurses-5.9.bep b/sys-libs/ncurses/ncurses-5.9.bep new file mode 100644 index 000000000..392f126e2 --- /dev/null +++ b/sys-libs/ncurses/ncurses-5.9.bep @@ -0,0 +1,24 @@ +DESCRIPTION="ncurses" +HOMEPAGE="http://www.gnu.org/software/ncurses/ncurses.html" +SRC_URI="http://ftp.gnu.org/pub/gnu/ncurses/ncurses-5.9.tar.gz" +CHECKSUM_MD5="8cb9c412e5f2d96bc6f459aa8c6282a1" +REVISION="2" +STATUS_HAIKU="stable" +DEPEND="" +BUILD { + cd ncurses-5.9 + ./configure --prefix=`finddir B_COMMON_DIRECTORY` \ + --datadir=`finddir B_COMMON_DATA_DIRECTORY` \ + --mandir=`finddir B_COMMON_DOCUMENTATION_DIRECTORY`/man \ + --with-libtool \ + --enable-termcap + make +} + +INSTALL { + cd ncurses-5.9 + ./misc/shlib make install DESTDIR="${DESTDIR}" +} + +LICENSE="MIT" +COPYRIGHT="1998-2011 Free Software Foundation, Inc." diff --git a/sys-libs/readline/readline-5.2.bep b/sys-libs/readline/readline-5.2.bep index d0553a60c..b2fbf3746 100644 --- a/sys-libs/readline/readline-5.2.bep +++ b/sys-libs/readline/readline-5.2.bep @@ -7,7 +7,7 @@ STATUS_HAIKU="stable" DEPEND="" BUILD { cd readline-5.2 - ./configure --prefix=/boot/common + ./configure --prefix=`finddir B_COMMON_DIRECTORY` make } diff --git a/sys-libs/readline/readline-6.0.bep b/sys-libs/readline/readline-6.0.bep index 807a3a1bf..77b1ff870 100644 --- a/sys-libs/readline/readline-6.0.bep +++ b/sys-libs/readline/readline-6.0.bep @@ -1,5 +1,5 @@ -DESCRIPTION="readline" -HOMEPAGE="http://cnswww.cns.cwru.edu/php/chet/readline/rltop.html" +DESCRIPTION="readline" +HOMEPAGE="http://cnswww.cns.cwru.edu/php/chet/readline/rltop.html" SRC_URI="ftp://ftp.gnu.org/gnu/readline/readline-6.0.tar.gz" CHECKSUM_MD5="b7f65a48add447693be6e86f04a63019" REVISION="1" @@ -11,11 +11,7 @@ BUILD { aclocal autoconf MANDIR=`finddir B_COMMON_DOCUMENTATION_DIRECTORY`/man - if [ -n "$(setgcc | grep '2')" ]; then - LIBDIR=`finddir B_COMMON_LIB_DIRECTORY` - else - LIBDIR=`finddir B_COMMON_LIB_DIRECTORY`/gcc4 - fi + LIBDIR=`finddir B_COMMON_LIB_DIRECTORY` ./configure --prefix=`finddir B_COMMON_DIRECTORY` \ --libdir=$LIBDIR \ --mandir=$MANDIR diff --git a/sys-libs/readline/readline-6.1.bep b/sys-libs/readline/readline-6.1.bep index 9392c2d6f..90bbcff1c 100644 --- a/sys-libs/readline/readline-6.1.bep +++ b/sys-libs/readline/readline-6.1.bep @@ -1,5 +1,5 @@ -DESCRIPTION="readline" -HOMEPAGE="http://cnswww.cns.cwru.edu/php/chet/readline/rltop.html" +DESCRIPTION="readline" +HOMEPAGE="http://cnswww.cns.cwru.edu/php/chet/readline/rltop.html" SRC_URI="ftp://ftp.gnu.org/gnu/readline/readline-6.1.tar.gz" CHECKSUM_MD5="fc2f7e714fe792db1ce6ddc4c9fb4ef3" REVISION="1" @@ -10,15 +10,11 @@ BUILD { libtoolize --force --copy --install aclocal autoconf - MANDIR=`finddir B_COMMON_DOCUMENTATION_DIRECTORY`/man - if [ -n "$(setgcc | grep '2')" ]; then - LIBDIR=`finddir B_COMMON_LIB_DIRECTORY` - else - LIBDIR=`finddir B_COMMON_LIB_DIRECTORY`/gcc4 - fi ./configure --prefix=`finddir B_COMMON_DIRECTORY` \ - --libdir=$LIBDIR \ - --mandir=$MANDIR +# --datarootdir=`finddir B_COMMON_DATA_DIRECTORY` \ + --infodir=`finddir B_COMMON_DOCUMENTATION_DIRECTORY`/info \ + --libdir=`finddir B_COMMON_LIB_DIRECTORY` \ + --mandir=`finddir B_COMMON_DOCUMENTATION_DIRECTORY`/man make } diff --git a/sys-libs/readline/readline-6.2.bep b/sys-libs/readline/readline-6.2.bep new file mode 100644 index 000000000..b1725633f --- /dev/null +++ b/sys-libs/readline/readline-6.2.bep @@ -0,0 +1,27 @@ +DESCRIPTION="readline" +HOMEPAGE="http://cnswww.cns.cwru.edu/php/chet/readline/rltop.html" +SRC_URI="ftp://ftp.gnu.org/gnu/readline/readline-6.2.tar.gz" +CHECKSUM_MD5="67948acb2ca081f23359d0256e9a271c" +REVISION="2" +STATUS_HAIKU="stable" +DEPEND="" +BUILD { + cd readline-6.2 + libtoolize --force --copy --install + aclocal + autoconf + COMMON_DOCS=`finddir B_COMMON_DOCUMENTATION_DIRECTORY` + ./configure --prefix=`finddir B_COMMON_DIRECTORY` \ + --datarootdir=`finddir B_COMMON_DATA_DIRECTORY` \ + --infodir=$COMMON_DOCS/info \ + --mandir=$COMMON_DOCS/man + make +} + +INSTALL { + cd readline-6.2 + make install DESTDIR="${DESTDIR}" +} + +LICENSE="GNU GPL v3" +COPYRIGHT="1989-2011 Free Software Foundation, Inc." diff --git a/sys-libs/slang/slang-2.2.2.bep b/sys-libs/slang/slang-2.2.2.bep index 9ac8ae01b..2f452ce71 100644 --- a/sys-libs/slang/slang-2.2.2.bep +++ b/sys-libs/slang/slang-2.2.2.bep @@ -11,7 +11,7 @@ BUILD { cp autoconf/config.guess config.guess cd .. sed -i -e '/^TERMCAP=/s:=.*:=:' configure || die - ./configure --prefix=/boot/common + ./configure --prefix=`finddir B_COMMON_DIRECTORY` make } diff --git a/sys-libs/zlib/zlib-1.2.3.bep b/sys-libs/zlib/zlib-1.2.3.bep index e08a18264..d74407c3d 100644 --- a/sys-libs/zlib/zlib-1.2.3.bep +++ b/sys-libs/zlib/zlib-1.2.3.bep @@ -7,7 +7,7 @@ STATUS_HAIKU="stable" DEPEND="" BUILD { cd zlib-1.2.3 - ./configure --prefix=/boot/common + ./configure --prefix=`finddir B_COMMON_DIRECTORY` make } @@ -16,4 +16,4 @@ INSTALL { make install } LICENSE="Zlib" -COPYRIGHT="Copyright (C) 1995-2005 Jean-loup Gailly and Mark Adler" +COPYRIGHT="1995-2005 Jean-loup Gailly and Mark Adler" diff --git a/sys-libs/zlib/zlib-1.2.5.bep b/sys-libs/zlib/zlib-1.2.5.bep index 16fd2f294..03f91d8b2 100644 --- a/sys-libs/zlib/zlib-1.2.5.bep +++ b/sys-libs/zlib/zlib-1.2.5.bep @@ -7,6 +7,7 @@ STATUS_HAIKU="stable" DEPEND="" BUILD { cd zlib-1.2.5 + sed -i 's/share\/man/documentation\/man/' CMakeLists.txt cmake . make } @@ -16,4 +17,4 @@ INSTALL { make install } LICENSE="Zlib" -COPYRIGHT="Copyright (C) 1995-2005 Jean-loup Gailly and Mark Adler" +COPYRIGHT="1995-2005 Jean-loup Gailly and Mark Adler" diff --git a/sys-libs/zlib/zlib-1.2.7.bep b/sys-libs/zlib/zlib-1.2.7.bep new file mode 100644 index 000000000..6210e8655 --- /dev/null +++ b/sys-libs/zlib/zlib-1.2.7.bep @@ -0,0 +1,21 @@ +DESCRIPTION="zlib" +HOMEPAGE="http://www.zlib.net/" +SRC_URI="http://zlib.net/zlib-1.2.7.tar.gz" +CHECKSUM_MD5="60df6a37c56e7c1366cca812414f7b85" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="" +BUILD { + cd zlib-1.2.7 + sed -i 's/share\/man/documentation\/man/' CMakeLists.txt + sed -i 's/share\/pkgconfig/lib\/pkgconfig/' CMakeLists.txt + cmake . + make +} + +INSTALL { + cd zlib-1.2.7 + make install +} +LICENSE="Zlib" +COPYRIGHT="1995-2005 Jean-loup Gailly and Mark Adler" diff --git a/sys-libs/zopfli/zopfli-999.bep b/sys-libs/zopfli/zopfli-999.bep new file mode 100644 index 000000000..9efa227a0 --- /dev/null +++ b/sys-libs/zopfli/zopfli-999.bep @@ -0,0 +1,24 @@ +DESCRIPTION="Zopfli Compression Algorithm is a zlib (gzip, deflate) compatible compressor." +HOMEPAGE="http://code.google.com/p/zopfli" +SRC_URI="git+https://code.google.com/p/zopfli/" +#CHECKSUM_MD5="abc123" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="" +MESSAGE="This port only builds with gcc4. Use 'setgcc gcc4' before building." + +BUILD { + cd zopfli-999 + sed -i 's/\-lm//' makefile + make +} + +INSTALL { + cd zopfli-999 + BINDIR=${DESTDIR}/`finddir B_COMMON_BIN_DIRECTORY` + mkdir -p ${BINDIR} + cp -r zopfli ${BINDIR}/zopfli +} + +LICENSE="Apache v2" +COPYRIGHT="2011-2013 Google Inc." diff --git a/sys-process/htop/htop-1.0.2.bep b/sys-process/htop/htop-1.0.2.bep new file mode 100644 index 000000000..5b4c800ed --- /dev/null +++ b/sys-process/htop/htop-1.0.2.bep @@ -0,0 +1,19 @@ +DESCRIPTION="htop- an interactive process viewer for Linux" +HOMEPAGE="http://htop.sourceforge.net/" +SRC_URI="http://downloads.sourceforge.net/project/htop/htop/1.0.2/htop-1.0.2.tar.gz?r=http%3A%2F%2Fsourceforge.net%2Fprojects%2Fhtop%2Ffiles%2Fhtop%2F1.0.2%2F&ts=1354198817&use_mirror=heanet" +CHECKSUM_MD5="0d01cca8df3349c74569cefebbd9919e" +REVISION="1" +STATUS_HAIKU="broken" +DEPEND="" +BUILD { + cd htop-1.0.2 + ./configure --disable-unicode --prefix=`finddir B_COMMON_DIRECTORY` + make +} + +INSTALL { + cd htop-1.0.2 + make install +} +LICENSE="GNU GPL v2" +COPYRIGHT="2004-2010 Hisham Muhammad" diff --git a/sys-process/htop/patches/htop-1.0.2.patch b/sys-process/htop/patches/htop-1.0.2.patch new file mode 100644 index 000000000..57e9442b9 --- /dev/null +++ b/sys-process/htop/patches/htop-1.0.2.patch @@ -0,0 +1,47 @@ +diff -Naur htop-1.0.2/configure htop-1.0.2-haiku/configure +--- htop-1.0.2/configure 2012-10-03 20:13:10.000000000 +0000 ++++ htop-1.0.2-haiku/configure 2012-11-29 12:07:07.717750272 +0000 +@@ -11388,13 +11388,13 @@ + + + # Checks for libraries. +-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ceil in -lm" >&5 +-$as_echo_n "checking for ceil in -lm... " >&6; } ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ceil in $LIBM" >&5 ++$as_echo_n "checking for ceil in $LIBM... " >&6; } + if test "${ac_cv_lib_m_ceil+set}" = set; then : + $as_echo_n "(cached) " >&6 + else + ac_check_lib_save_LIBS=$LIBS +-LIBS="-lm $LIBS" ++LIBS="$LIBM $LIBS" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext + /* end confdefs.h. */ + +@@ -11429,7 +11429,7 @@ + #define HAVE_LIBM 1 + _ACEOF + +- LIBS="-lm $LIBS" ++ LIBS="$LIBM $LIBS" + + else + missing_libraries="$missing_libraries libm" +diff -Naur htop-1.0.2/configure.ac htop-1.0.2-haiku/configure.ac +--- htop-1.0.2/configure.ac 2012-08-29 13:24:31.023330816 +0000 ++++ htop-1.0.2-haiku/configure.ac 2012-11-29 10:13:11.320602112 +0000 +@@ -1,3 +1,5 @@ ++ ++ + # -*- Autoconf -*- + # Process this file with autoconf to produce a configure script. + +@@ -22,7 +24,7 @@ + AC_PROG_LIBTOOL + + # Checks for libraries. +-AC_CHECK_LIB([m], [ceil], [], [missing_libraries="$missing_libraries libm"]) ++AC_CHECK_LIB(m, cos, LIBM="$LIBM") + + # Checks for header files. + AC_HEADER_DIRENT diff --git a/www-client/links/links-2.3pre2.bep b/www-client/links/links-2.3pre2.bep new file mode 100644 index 000000000..15bb7a6f7 --- /dev/null +++ b/www-client/links/links-2.3pre2.bep @@ -0,0 +1,29 @@ +DESCRIPTION="links web browser" +HOMEPAGE="http://links.twibright.com" +SRC_URI="http://links.twibright.com/download/links-2.3pre2.tar.gz" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="" +CHECKSUM_MD5="bb2a4e058c88b8ec0c9f6c0e1640555c" +BUILD { + cd links-2.3pre2 + autoconf + ./configure --prefix=`finddir B_COMMON_DIRECTORY` \ + --mandir=`finddir B_COMMON_DOCUMENTATION_DIRECTORY`/man \ + --without-x \ + --enable-utf-8 \ + --enable-graphics + rc links-beos.rdef + make + xres -o links links-beos.rsrc + mimeset links +} + +INSTALL { + cd links-2.3pre2 + make install DESTDIR=${DESTDIR} +} + +LICENSE="GNU GPL v2" +COPYRIGHT="1999 - 2011 Mikulas Patocka + 2000 - 2011 Petr Kulhavy, Karel Kulhavy, Martin Pergel" diff --git a/www-client/links/patches/links-2.1pre33.beos.002.patch b/www-client/links/patches/links-2.1pre33.beos.002.patch new file mode 100644 index 000000000..6450a54f1 --- /dev/null +++ b/www-client/links/patches/links-2.1pre33.beos.002.patch @@ -0,0 +1,3157 @@ +BeOS graphics support, use with: +./configure --prefix=$HOME/config --without-x --enable-utf-8 --enable-graphics +beres -o links-beos.rsrc links-beos.rdef +make && xres -o links links-beos.rsrc && mimeset links + +Francois Revol, revol@free.fr + +diff -urN links-2.1pre33.org/Makefile.am links-2.1pre33/Makefile.am +--- links-2.1pre33.org/Makefile.am Tue Dec 25 02:43:02 2007 ++++ links-2.1pre33/Makefile.am Sat May 3 21:32:48 2008 +@@ -4,7 +4,7 @@ + + man_MANS=links.1 + +-EXTRA_DIST=atheos.cpp $(man_MANS) BRAILLE_HOWTO KEYS BUGS TODO SITES PATCH-gpm-1.20.0-smooth-cursor PATCH-libpng-1.2.18 mailcap.pl rebuild Links_logo.png Unicode/*.cp Unicode/[!C]* intl/[!C]* graphics/*.c graphics/arrow.png graphics/gen graphics/system_font/*.png graphics/font/century_school-medium-roman-serif-vari/*.png graphics/font/century_school-bold-roman-serif-vari/*.png graphics/font/symbol-medium-roman-sans-vari/*.png graphics/font/courier-medium-roman-serif-mono/*.png graphics/font/japanese-medium-roman-sans-mono/*.png graphics/font/century_school-bold-roman-serif-vari/aliases graphics/font/century_school-medium-roman-serif-vari/aliases graphics/font/symbol-medium-roman-sans-vari/aliases doc/links_cal/*.png doc/links_cal/*.html graphics/Makefile graphics/Fontmap graphics/clip.c graphics/links.xpm graphics/makefont graphics/pdf2html graphics/spacer.png links_16x16_1.xpm links_16x16_2.xpm links_32x32.xpm links.nsi ++EXTRA_DIST=atheos.cpp beosgui.cpp $(man_MANS) BRAILLE_HOWTO KEYS BUGS TODO SITES PATCH-gpm-1.20.0-smooth-cursor PATCH-libpng-1.2.18 mailcap.pl rebuild Links_logo.png Unicode/*.cp Unicode/[!C]* intl/[!C]* graphics/*.c graphics/arrow.png graphics/gen graphics/system_font/*.png graphics/font/century_school-medium-roman-serif-vari/*.png graphics/font/century_school-bold-roman-serif-vari/*.png graphics/font/symbol-medium-roman-sans-vari/*.png graphics/font/courier-medium-roman-serif-mono/*.png graphics/font/japanese-medium-roman-sans-mono/*.png graphics/font/century_school-bold-roman-serif-vari/aliases graphics/font/century_school-medium-roman-serif-vari/aliases graphics/font/symbol-medium-roman-sans-vari/aliases doc/links_cal/*.png doc/links_cal/*.html graphics/Makefile graphics/Fontmap graphics/clip.c graphics/links.xpm graphics/makefont graphics/pdf2html graphics/spacer.png links_16x16_1.xpm links_16x16_2.xpm links_32x32.xpm links.nsi links-beos.rdef + + bin_PROGRAMS=links + +@@ -13,6 +13,11 @@ + else + endif + ++if BEOS_GR ++links_LDADD=beosgui.o -lbe ++else ++endif ++ + links_SOURCES=af_unix.c auth.c beos.c bfu.c block.c bookmarks.c cache.c charsets.c connect.c cookies.c default.c dip.c directfb.c directfb_cursors.h dither.c dns.c drivers.c error.c file.c finger.c font_include.c framebuffer.c ftp.c gif.c html.c html_gr.c html_r.c html_tbl.c http.c https.c img.c imgcache.c jpeg.c jsint.c kbd.c language.c links_icon.c listedit.c lru.c mailto.c main.c menu.c memory.c objreq.c os_dep.c pmshell.c png.c sched.c select.c session.c smb.c svgalib.c terminal.c tiff.c types.c url.c view.c view_gr.c x.c xbm.c links.h cfg.h os_dep.h os_depx.h setup.h codepage.h language.h codepage.inc entity.inc uni_7b.inc language.inc upcase.inc arrow.inc bits.h + + dist-hook: +@@ -31,7 +36,12 @@ + CXXFLAGS=@CXXFLAGS@ + + atheos.o: atheos.cpp +- $(CXX) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c atheos.cpp ++ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -o $@ -c $< ++ ++beosgui.o: beosgui.cpp ++ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -o $@ -c $< ++ ++ + + datadir = $(prefix)/@DATADIRNAME@ + LIBS = @LIBS@ +diff -urN links-2.1pre33.org/acconfig.h links-2.1pre33/acconfig.h +--- links-2.1pre33.org/acconfig.h Wed Mar 21 17:20:21 2007 ++++ links-2.1pre33/acconfig.h Sat May 3 18:30:26 2008 +@@ -113,6 +113,9 @@ + #undef GRDRV_ATHEOS + + /* */ ++#undef GRDRV_BEOS ++ ++/* */ + #undef DONT_INCLUDE_SETJMP + + /* Tiff by Brain */ +diff -urN links-2.1pre33.org/atheos.cpp links-2.1pre33/atheos.cpp +--- links-2.1pre33.org/atheos.cpp Fri Oct 22 21:11:31 2004 ++++ links-2.1pre33/atheos.cpp Sat May 3 18:30:27 2008 +@@ -207,7 +207,7 @@ + win->Unlock(); + ath_lock->Lock(); + win->Lock(); +- if (dev) dev->mouse_handler(dev, last_x = (int)p.x, last_y = (int)p.y, B_DOWN | (b == 2 ? B_RIGHT : b == 3 ? B_MIDDLE : B_LEFT)); ++ if (dev) dev->mouse_handler(dev, last_x = (int)p.x, last_y = (int)p.y, BTN_DOWN | (b == 2 ? BTN_RIGHT : b == 3 ? BTN_MIDDLE : BTN_LEFT)); + ath_lock->Unlock(); + write(wpipe, " ", 1); + } +@@ -217,7 +217,7 @@ + win->Unlock(); + ath_lock->Lock(); + win->Lock(); +- if (dev) dev->mouse_handler(dev, last_x = (int)p.x, last_y = (int)p.y, B_UP | (b == 2 ? B_RIGHT : b == 3 ? B_MIDDLE : B_LEFT)); ++ if (dev) dev->mouse_handler(dev, last_x = (int)p.x, last_y = (int)p.y, BTN_UP | (b == 2 ? BTN_RIGHT : b == 3 ? BTN_MIDDLE : BTN_LEFT)); + ath_lock->Unlock(); + write(wpipe, " ", 1); + } +@@ -227,7 +227,7 @@ + win->Unlock(); + ath_lock->Lock(); + win->Lock(); +- if (dev) dev->mouse_handler(dev, last_x = (int)p.x, last_y = (int)p.y, !b ? B_MOVE : B_DRAG | (b & 1 ? B_LEFT : b & 2 ? B_RIGHT : b & 4 ? B_MIDDLE : B_LEFT)); ++ if (dev) dev->mouse_handler(dev, last_x = (int)p.x, last_y = (int)p.y, !b ? BTN_MOVE : BTN_DRAG | (b & 1 ? BTN_LEFT : b & 2 ? BTN_RIGHT : b & 4 ? BTN_MIDDLE : BTN_LEFT)); + ath_lock->Unlock(); + write(wpipe, " ", 1); + } +@@ -237,8 +237,8 @@ + win->Unlock(); + ath_lock->Lock(); + win->Lock(); +- if (d.y) if (dev) dev->mouse_handler(dev, last_x, last_y, B_MOVE | (d.y > 0 ? B_WHEELDOWN : B_WHEELUP)); +- if (d.x) if (dev) dev->mouse_handler(dev, last_x, last_y, B_MOVE | (d.x < 0 ? B_WHEELLEFT : B_WHEELRIGHT)); ++ if (d.y) if (dev) dev->mouse_handler(dev, last_x, last_y, BTN_MOVE | (d.y > 0 ? BTN_WHEELDOWN : BTN_WHEELUP)); ++ if (d.x) if (dev) dev->mouse_handler(dev, last_x, last_y, BTN_MOVE | (d.x < 0 ? BTN_WHEELLEFT : BTN_WHEELRIGHT)); + ath_lock->Unlock(); + write(wpipe, " ", 1); + } +diff -urN links-2.1pre33.org/beos.c links-2.1pre33/beos.c +--- links-2.1pre33.org/beos.c Mon Sep 11 04:39:14 2006 ++++ links-2.1pre33/beos.c Sat May 3 21:08:27 2008 +@@ -11,8 +11,9 @@ + #include + #include + #include ++#include + #include +-#include ++#include + + #define SHS 128 + +@@ -20,6 +21,42 @@ + #define MAXINT 0x7fffffff + #endif + ++extern int ggr; ++ ++#ifdef __cplusplus ++extern "C" { ++int get_input_handle(); ++void unblock_stdin(); ++void block_stdin(); ++} ++#endif ++ ++void maybe_force_gr(void) ++{ ++ struct stat stn, stin, stout; ++ /* ++ * if stdin and out are /dev/null it's likely ++ * we have been started from the gui... ++ */ ++ if (lstat("/dev/null", &stn) < 0) ++ return; ++ if (fstat(0, &stin) < 0) ++ return; ++ if (fstat(1, &stout) < 0) ++ return; ++ if (stin.st_dev != stn.st_dev) ++ return; ++ if (stout.st_dev != stn.st_dev) ++ return; ++ if (stin.st_ino != stn.st_ino) ++ return; ++ if (stout.st_ino != stn.st_ino) ++ return; ++ ggr = 1; ++} ++ ++#if IPPROTO_TCP != 6 ++ + int be_read(int s, void *ptr, int len) + { + if (s >= SHS) return recv(s - SHS, ptr, len, 0); +@@ -90,6 +127,10 @@ + + #define PIPE_RETRIES 10 + ++#ifndef PF_INET ++#define PF_INET AF_INET ++#endif ++ + int be_pipe(int *fd) + { + int s1, s2, s3, l; +@@ -249,5 +290,22 @@ + } + return h = ohpipe[1]; + }*/ ++ ++#else /* IPPROTO_TCP != 6 */ ++ ++void block_stdin() ++{ ++} ++ ++void unblock_stdin() ++{ ++} ++ ++int get_input_handle() ++{ ++ return 0; ++} ++ ++#endif + + #endif +diff -urN links-2.1pre33.org/beosgui.cpp links-2.1pre33/beosgui.cpp +--- links-2.1pre33.org/beosgui.cpp Thu Jan 1 01:00:00 1970 ++++ links-2.1pre33/beosgui.cpp Sat May 3 23:27:52 2008 +@@ -0,0 +1,884 @@ ++/* beos.c ++ * (c) 2007 François Revol ++ * This file is a part of the Links program, released under GPL ++ */ ++ ++#ifdef __BEOS__ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++/* ++ * GUI code ++ */ ++ ++/* ++ * TODO: ++ * - BeOS doesn't handle BView::DrawBitmap() with RGB24, and links doesn't seem to handle RGB32, ++ * so the colorspace is forced into 16bpp for now. ++ * - more paste handling ? ++ * - more DnD (maybe check if in menu or not and prepend "g" ?) ++ * - handle DnD of Net+ bookmarks ++ */ ++ ++#include "cfg.h" ++ ++#ifdef GRDRV_BEOS ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++extern "C" { ++#include "links.h" ++} ++ ++//#define DBG(l...) fprintf(stderr, l); ++#define DBG(l...) {} ++ ++/* ++#ifdef debug ++#undef debug ++#endif ++#define debug(x) ++#define fprintf(x, y) ++*/ ++ ++extern struct graphics_driver beos_driver; ++ ++class LinksApplication : public BApplication { ++ public: ++ LinksApplication():BApplication("application/x-vnd.links"){} ++ virtual void RefsReceived(BMessage *message); ++ virtual bool QuitRequested(); ++}; ++ ++class LinksView; ++ ++class LinksWindow : public BWindow { ++ public: ++ LinksWindow(BRect r); ++ ~LinksWindow(); ++ virtual void FrameResized(float width, float height); ++ virtual bool QuitRequested(); ++ int resized; ++ LinksView *view; ++}; ++ ++class LinksView : public BView { ++ public: ++ LinksView(LinksWindow *w); ++ ~LinksView(); ++ virtual void Draw(BRect r); ++ virtual void MouseDown(BPoint p); ++ virtual void MouseUp(BPoint p); ++ virtual void MouseMoved(BPoint p, uint32 transit, const BMessage *dragmsg); ++ virtual void KeyDown(const char *s, int32 numBytes); ++ virtual void MessageReceived(BMessage *msg); ++ LinksWindow *win; ++ struct graphics_device *dev; ++ void d_flush(); ++ int flushing; ++ int last_x, last_y; ++}; ++ ++#define lv(dev) ((LinksView *)(dev)->driver_data) ++ ++#define lock_dev(dev) do { if (!lv(dev)->win->Lock()) return; } while (0) ++#define lock_dev0(dev) do { if (!lv(dev)->win->Lock()) return 0; } while (0) ++#define unlock_dev(dev) do { lv(dev)->win->Unlock(); } while (0) ++ ++void be_get_size(struct graphics_device *dev); ++ ++#define detach_message(dev) \ ++ BMessage *current = Looper()->DetachCurrentMessage(); \ ++ if (current) { \ ++ current->AddPointer("linksdev", dev); \ ++ } ++ ++#define pipe_message(dev) \ ++ if (current) { \ ++ write(wpipe, ¤t, sizeof(current)); \ ++ } ++ ++#define detach_and_pipe_message(dev) do { \ ++ BMessage *current = Looper()->DetachCurrentMessage(); \ ++ if (current) { \ ++ current->AddPointer("linksdev", dev); \ ++ write(wpipe, ¤t, sizeof(current)); \ ++ } \ ++} while (0) ++ ++LinksApplication *be_links_app; ++BLocker *be_lock = NULL; ++ ++int msg_pipe[2]; ++ ++thread_id be_app_thread_id; ++ ++#define rpipe (msg_pipe[0]) ++#define wpipe (msg_pipe[1]) ++ ++#define small_color (sizeof(rgb_color) <= sizeof(long)) ++#define get_color32(c, rgb) rgb_color c((rgb_color){(rgb >> 16) & 255, (rgb >> 8) & 255, rgb & 255, 255}) ++ ++color_space be_cs_desktop, be_cs_bmp; ++ ++int be_x_size, be_y_size; ++ ++int be_win_x_size, be_win_y_size; ++int be_win_x_pos, be_win_y_pos; ++ ++static BMessage *initial_refs_msg; ++ ++void LinksApplication::RefsReceived(BMessage *message) ++{ ++ entry_ref ref; ++ //if (!IsLaunching()) ++ // return; ++ BMessenger msgr(WindowAt(0)); ++ BMessage *m = new BMessage(*message); ++ m->AddSpecifier("View", (long)0); ++ //m->what = B_SIMPLE_DATA; ++ if (msgr.IsValid()) { ++ msgr.SendMessage(m); ++ } else ++ initial_refs_msg = m; ++} ++ ++bool LinksApplication::QuitRequested() ++{ ++ BApplication::QuitRequested(); ++ //printf("qc: %ld\n", CountWindows()); ++ return true; ++} ++ ++LinksWindow::LinksWindow(BRect r):BWindow(r, "Links", B_DOCUMENT_WINDOW, 0) ++{ ++ DBG("LINKSWINDOW\n"); ++ resized = 0; ++ view = NULL; ++} ++ ++LinksWindow::~LinksWindow() ++{ ++ view = NULL; ++ DBG("~LINKSWINDOW\n"); ++} ++ ++void LinksWindow::FrameResized(float width, float height) ++{ ++ resized = 1; ++} ++ ++bool LinksWindow::QuitRequested() ++{ ++ detach_and_pipe_message(view->dev); ++ return false; ++} ++ ++void do_flush(void *p_dev) ++{ ++ struct graphics_device *dev = (struct graphics_device *)p_dev; ++ LinksView *v = lv(dev); ++ v->win->Lock(); ++ v->win->Flush(); ++ v->win->Unlock(); ++ v->flushing = 0; ++} ++ ++LinksView::LinksView(LinksWindow *w):BView(w->Bounds(), "Links", B_FOLLOW_ALL, B_WILL_DRAW | B_FULL_UPDATE_ON_RESIZE | B_NAVIGABLE) ++{ ++ DBG("LINKSVIEW\n"); ++ (win = w)->AddChild(this); ++ SetViewColor(B_TRANSPARENT_32_BIT); ++ MakeFocus(); ++ w->view = this; ++ flushing = 0; ++ last_x = last_y = 0; ++} ++ ++LinksView::~LinksView() ++{ ++ win->view = NULL; ++ DBG("~LINKSVIEW\n"); ++} ++ ++void LinksView::d_flush() ++{ ++ if (flushing) return; ++ register_bottom_half(do_flush, this->dev); ++ flushing = 1; ++} ++ ++#undef select ++ ++int be_loop_select(int n, fd_set *r, fd_set *w, fd_set *e, struct timeval *t) ++{ ++ int v; ++ v = select(n, r, w, e, t); ++ check_bottom_halves(); ++ return v; ++} ++ ++void be_paste_string(struct graphics_device *dev, const char *str) ++{ ++ unsigned char *s = (unsigned char *)str; ++ int c, i; ++ while (s && *s) { ++ GET_UTF_8(s, c); ++ if (dev) dev->keyboard_handler(dev, c, 0); ++ } ++} ++ ++void be_get_event(void *dummy) ++{ ++ BMessage *msg; ++ LinksView *view = NULL; ++ LinksWindow *win = NULL; ++ struct graphics_device *dev; ++ read(rpipe, &msg, sizeof(msg)); ++ DBG("GETE\n"); ++ if (!msg) ++ return; ++ if (msg->FindPointer("linksdev", (void **)&dev) < B_OK) ++ return; ++ if (dev) { ++ view = lv(dev); ++ if (view) ++ win = dynamic_cast(view->Window()); ++ } ++ switch (msg->what) { ++ case B_QUIT_REQUESTED: ++ if (dev) ++ dev->keyboard_handler(dev, KBD_CTRL_C, 0); ++ break; ++ case _UPDATE_: ++ { ++ BRect r; ++ if (msg->FindRect("updateRect", &r) < B_OK) ++ return; ++ struct rect rr; ++ rr.x1 = (int)r.left; ++ rr.x2 = (int)r.right + 1; ++ rr.y1 = (int)r.top; ++ rr.y2 = (int)r.bottom + 1; ++ /*DBG("paint: %d %d %d %d\n", rr.x1, rr.x2, rr.y1, rr.y2);*/ ++ if (dev) { ++ if (!win->resized) dev->redraw_handler(dev, &rr); ++ else { ++ be_get_size(dev); ++ win->resized = 0; ++ dev->resize_handler(dev); ++ } ++ } ++ check_bottom_halves(); ++ } ++ break; ++ case B_MOUSE_DOWN: ++ { ++ BPoint where; ++ int32 buttons; ++ int btn = BTN_LEFT; ++ if (msg->FindInt32("buttons", &buttons) != B_OK) ++ return; ++ if (msg->FindPoint("where", &where) != B_OK) ++ return; ++ if (buttons & B_PRIMARY_MOUSE_BUTTON) ++ btn = BTN_LEFT; ++ else if (buttons & B_SECONDARY_MOUSE_BUTTON) ++ btn = BTN_RIGHT; ++ else if (buttons & B_TERTIARY_MOUSE_BUTTON) ++ btn = BTN_MIDDLE; ++ else if (buttons & (B_TERTIARY_MOUSE_BUTTON << 1)) ++ btn = BTN_FOURTH; ++ else if (buttons & (B_TERTIARY_MOUSE_BUTTON << 2)) ++ btn = BTN_FIFTH; ++ else if (buttons & (B_TERTIARY_MOUSE_BUTTON << 3)) ++ btn = BTN_SIXTH; ++ if (dev) dev->mouse_handler(dev, view->last_x = (int)where.x, view->last_y = (int)where.y, BTN_DOWN | btn); ++ } ++ break; ++ case B_MOUSE_UP: ++ { ++ BPoint where; ++ int32 buttons; ++ int btn = BTN_LEFT; ++ if (msg->FindInt32("buttons", &buttons) != B_OK) ++ return; ++ if (msg->FindPoint("where", &where) != B_OK) ++ return; ++ if (buttons & ~B_PRIMARY_MOUSE_BUTTON == 0) ++ btn = BTN_LEFT; ++ else if (buttons & ~B_SECONDARY_MOUSE_BUTTON == 0) ++ btn = BTN_RIGHT; ++ else if (buttons & ~B_TERTIARY_MOUSE_BUTTON == 0) ++ btn = BTN_MIDDLE; ++ else if (buttons & ~(B_TERTIARY_MOUSE_BUTTON << 1) == 0) ++ btn = BTN_FOURTH; ++ else if (buttons & ~(B_TERTIARY_MOUSE_BUTTON << 2) == 0) ++ btn = BTN_FIFTH; ++ else if (buttons & ~(B_TERTIARY_MOUSE_BUTTON << 3) == 0) ++ btn = BTN_SIXTH; ++ if (dev) dev->mouse_handler(dev, view->last_x = (int)where.x, view->last_y = (int)where.y, BTN_UP | btn); ++ } ++ break; ++ case B_MOUSE_MOVED: ++ { ++ BPoint where; ++ int32 buttons; ++ int btn = BTN_LEFT; ++ if (msg->FindInt32("buttons", &buttons) != B_OK) ++ return; ++ if (msg->FindPoint("where", &where) != B_OK) ++ return; ++ if (buttons & B_PRIMARY_MOUSE_BUTTON) ++ btn = BTN_LEFT; ++ else if (buttons & B_SECONDARY_MOUSE_BUTTON) ++ btn = BTN_RIGHT; ++ else if (buttons & B_TERTIARY_MOUSE_BUTTON) ++ btn = BTN_MIDDLE; ++ else if (buttons & (B_TERTIARY_MOUSE_BUTTON << 1)) ++ btn = BTN_FOURTH; ++ else if (buttons & (B_TERTIARY_MOUSE_BUTTON << 2)) ++ btn = BTN_FIFTH; ++ else if (buttons & (B_TERTIARY_MOUSE_BUTTON << 3)) ++ btn = BTN_SIXTH; ++ if (dev) dev->mouse_handler(dev, view->last_x = (int)where.x, view->last_y = (int)where.y, !buttons ? BTN_MOVE : BTN_DRAG | btn); ++ } ++ break; ++ case B_KEY_DOWN: ++ { ++ int32 modifiers; ++ int32 numBytes; ++ const char *bytes; ++ int c; ++ int mods = 0; ++ if (msg->FindInt32("modifiers", &modifiers) != B_OK) ++ return; ++ if (msg->FindString("bytes", &bytes) != B_OK) ++ return; ++ unsigned char buf[4] = { 0, 0, 0, 0 }; ++ unsigned char *ss; ++ if (modifiers & (B_LEFT_CONTROL_KEY | B_RIGHT_CONTROL_KEY | B_LEFT_COMMAND_KEY | B_RIGHT_COMMAND_KEY)) { ++ int32 raw; ++ if (msg->FindInt32("raw_char", &raw) != B_OK) ++ return; ++ buf[0] = (unsigned char)raw; ++ ss = buf; ++ } else ++ ss = (unsigned char *)bytes; ++ ++ GET_UTF_8(ss, c); ++ switch (c) { ++ case B_BACKSPACE: c = KBD_BS; break; ++ case B_ENTER: c = KBD_ENTER; break; ++ case B_SPACE: c = ' '; break; ++ case B_TAB: c = KBD_TAB; break; ++ case B_ESCAPE: c = KBD_ESC; break; ++ case B_LEFT_ARROW: c = KBD_LEFT; break; ++ case B_RIGHT_ARROW: c = KBD_RIGHT; break; ++ case B_UP_ARROW: c = KBD_UP; break; ++ case B_DOWN_ARROW: c = KBD_DOWN; break; ++ case B_INSERT: c = KBD_INS; break; ++ case B_DELETE: c = KBD_DEL; break; ++ case B_HOME: c = KBD_HOME; break; ++ case B_END: c = KBD_END; break; ++ case B_PAGE_UP: c = KBD_PAGE_UP; break; ++ case B_PAGE_DOWN: c = KBD_PAGE_DOWN; break; ++ default: if (c < 32) c = 0; ++ else modifiers &= ~(B_LEFT_SHIFT_KEY|B_RIGHT_SHIFT_KEY); ++ break; ++ } ++ if (modifiers & (B_LEFT_SHIFT_KEY|B_RIGHT_SHIFT_KEY)) ++ mods |= KBD_SHIFT; ++ if (modifiers & (B_LEFT_CONTROL_KEY|B_RIGHT_CONTROL_KEY)) ++ mods |= KBD_CTRL; ++ if (modifiers & (B_LEFT_COMMAND_KEY|B_RIGHT_COMMAND_KEY)) ++ mods |= KBD_ALT; ++ if (c) if (dev) dev->keyboard_handler(dev, c, mods); ++ } ++ break; ++ case B_MOUSE_WHEEL_CHANGED: ++ { ++ float delta_x, delta_y; ++ if (msg->FindFloat("be:wheel_delta_x", &delta_x) != B_OK) ++ delta_x = 0; ++ if (msg->FindFloat("be:wheel_delta_y", &delta_y) != B_OK) ++ delta_y = 0; ++ if (delta_y) if (dev) dev->mouse_handler(dev, view->last_x, view->last_y, BTN_MOVE | (delta_y > 0 ? BTN_WHEELDOWN : BTN_WHEELUP)); ++ if (delta_x) if (dev) dev->mouse_handler(dev, view->last_x, view->last_y, BTN_MOVE | (delta_x < 0 ? BTN_WHEELLEFT : BTN_WHEELRIGHT)); ++ } ++ break; ++ case B_PASTE: ++ if (be_clipboard->Lock()) { ++ BMessage *data = be_clipboard->Data(); ++ if (data) { ++ const char *text_plain; ++ ssize_t len; ++ //data->PrintToStream(); ++ if (data->FindData("text/plain", B_MIME_TYPE, (const void **)&text_plain, &len) == B_OK) { ++ be_paste_string(dev, text_plain); ++ } ++ } ++ be_clipboard->Unlock(); ++ } ++ break; ++ case B_REFS_RECEIVED: ++ if (dev) ++ be_paste_string(dev, "\033\ng"); ++ /* FALLTHROUGH */ ++ case B_SIMPLE_DATA: ++ { ++ /* something got dropped */ ++ entry_ref ref; ++ const char *text_plain; ++ ssize_t len; ++ //msg->PrintToStream(); ++ /* try find a file path to paste */ ++ if (msg->FindRef("refs", &ref) == B_OK) { ++ BPath path(&ref); ++ if (path.InitCheck() == B_OK) { ++ BFile f(path.Path(), B_READ_ONLY); ++ BString url; ++ if (f.InitCheck() == B_OK && f.ReadAttrString("META:url", &url) >= B_OK) { ++ be_paste_string(dev, url.String()); ++ } else ++ be_paste_string(dev, path.Path()); ++ } ++ } else if (msg->FindData("text/plain", B_MIME_TYPE, (const void **)&text_plain, &len) == B_OK) { ++ be_paste_string(dev, text_plain); ++ } ++ } ++ break; ++ default: ++ msg->PrintToStream(); ++ break; ++ } ++ delete msg; ++} ++ ++void be_get_size(struct graphics_device *dev) ++{ ++ BRect r; ++ lock_dev(dev); ++ r = lv(dev)->Bounds(); ++ unlock_dev(dev); ++ dev->size.x1 = dev->size.y1 = 0; ++ dev->size.x2 = (int)r.Width() + 1; ++ dev->size.y2 = (int)r.Height() + 1; ++} ++ ++void LinksView::Draw(BRect r) ++{ ++ detach_message(dev); ++ current->AddRect("updateRect", r); ++ pipe_message(dev); ++} ++ ++ ++void LinksView::MouseDown(BPoint p) ++{ ++ detach_and_pipe_message(dev); ++} ++ ++void LinksView::MouseUp(BPoint p) ++{ ++ detach_and_pipe_message(dev); ++} ++ ++void LinksView::MouseMoved(BPoint p, uint32 transit, const BMessage *dragmsg) ++{ ++ detach_and_pipe_message(dev); ++} ++ ++void LinksView::MessageReceived(BMessage *msg) ++{ ++ switch (msg->what) { ++ case B_REFS_RECEIVED: ++ case B_MOUSE_WHEEL_CHANGED: ++ case B_PASTE: ++ case B_SIMPLE_DATA: ++ detach_and_pipe_message(dev); ++ break; ++ default: ++ BView::MessageReceived(msg); ++ } ++} ++ ++void LinksView::KeyDown(const char *s, int32 numBytes) ++{ ++ detach_and_pipe_message(dev); ++} ++ ++unsigned char *be_get_driver_param(void) ++{ ++ return NULL; ++} ++ ++int32 be_app_thread(void *p) ++{ ++ be_links_app->Lock(); ++ be_links_app->Run(); ++ delete be_links_app; ++ return 0; ++} ++ ++unsigned char *be_init_driver(unsigned char *param, unsigned char *display) ++{ ++ be_links_app = new LinksApplication(); ++ if (!be_links_app) { ++ return stracpy((unsigned char *)"Unable to allocate Application object.\n"); ++ } ++ if (c_pipe(msg_pipe)) { ++ delete be_links_app; ++ return stracpy((unsigned char *)"Could not create pipe.\n"); ++ } ++ fcntl(rpipe, F_SETFL, O_NONBLOCK); ++ fcntl(wpipe, F_SETFL, O_NONBLOCK); ++ set_handlers(rpipe, be_get_event, NULL, NULL, NULL); ++ be_app_thread_id = spawn_thread(be_app_thread, "links_app", B_NORMAL_PRIORITY, NULL); ++ resume_thread(be_app_thread_id); ++ be_links_app->Unlock(); ++ be_cs_desktop = B_NO_COLOR_SPACE; ++ be_x_size = 640; ++ be_y_size = 480; ++ BScreen d; ++ if (d.IsValid()) { ++ be_cs_desktop = d.ColorSpace(); ++ be_x_size = (int)d.Frame().Width() + 1; ++ be_y_size = (int)d.Frame().Height() + 1; ++ } ++ be_win_y_size = be_y_size * 9 / 10; ++ be_win_x_size = be_win_y_size; ++ /* ++ DBG("%d %d\n", be_x_size, be_y_size); ++ DBG("%d %d\n", be_win_x_size, be_win_y_size); ++ */ ++ be_win_y_pos = (be_y_size - be_win_y_size) / 2; ++ be_win_x_pos = be_x_size - be_win_x_size - be_win_y_pos; ++ if (/*be_cs_desktop == B_RGB32 ||*/ be_cs_desktop == B_RGB24 || be_cs_desktop == B_RGB16 || be_cs_desktop == B_RGB15) ++ be_cs_bmp = be_cs_desktop; ++ else if (be_cs_desktop == B_RGB32 || be_cs_desktop == B_RGBA32) be_cs_bmp = B_RGB24; ++ else be_cs_bmp = B_RGB15; ++ be_cs_bmp = B_RGB16; // XXX: DEBUG ++ switch (be_cs_bmp) { ++ case B_RGB24: ++ beos_driver.depth = 0xc3; ++ break; ++ case B_RGB16: ++ beos_driver.depth = 0x82; ++ break; ++ case B_RGB15: ++ beos_driver.depth = 0x7a; ++ break; ++ default: ++ internal((unsigned char *)"unknown depth"); ++ } ++ return NULL; ++} ++ ++void be_shutdown_driver() ++{ ++ status_t ret; ++ //debug((unsigned char *)"D"); ++ close(rpipe); ++ close(wpipe); ++ set_handlers(rpipe, NULL, NULL, NULL, NULL); ++ //debug((unsigned char *)"DD"); ++ be_links_app->PostMessage(B_QUIT_REQUESTED); ++ //debug((unsigned char *)"E"); ++ wait_for_thread(be_app_thread_id, &ret); ++ //debug((unsigned char *)"F"); ++} ++ ++struct graphics_device *be_init_device() ++{ ++ LinksView *view; ++ LinksWindow *win; ++ struct graphics_device *dev = (struct graphics_device *)mem_calloc(sizeof(struct graphics_device)); ++ if (!dev) return NULL; ++ dev->drv = &beos_driver; ++ //debug((unsigned char *)"1"); ++ win = new LinksWindow(BRect(be_win_x_pos, be_win_y_pos, be_win_x_pos + be_win_x_size, be_win_y_pos + be_win_y_size)); ++ //debug((unsigned char *)"2"); ++ if (!win) { ++ mem_free(dev); ++ return NULL; ++ } ++ //debug((unsigned char *)"3"); ++ view = new LinksView(win); ++ if (!view) { ++ delete win; ++ mem_free(dev); ++ return NULL; ++ } ++ view->dev = dev; ++ dev->driver_data = view; ++ be_get_size(dev); ++ memcpy(&dev->clip, &dev->size, sizeof(struct rect)); ++ //debug((unsigned char *)"4"); ++ win->Show(); ++ win->Lock(); ++ view->MakeFocus(); ++ win->Unlock(); ++ //debug((unsigned char *)"5"); ++ if (initial_refs_msg) { ++ BMessenger msgr(win); ++ if (msgr.IsValid()) { ++ msgr.SendMessage(initial_refs_msg); ++ initial_refs_msg = NULL; ++ } ++ } ++ return dev; ++} ++ ++void be_shutdown_device(struct graphics_device *dev) ++{ ++ LinksWindow *win = lv(dev)->win; ++ unregister_bottom_half(do_flush, dev); ++ lv(dev)->dev = NULL; ++ win->PostMessage(B_QUIT_REQUESTED); ++ mem_free(dev); ++} ++ ++void be_set_title(struct graphics_device *dev, unsigned char *title) ++{ ++ LinksWindow *win = lv(dev)->win; ++ lock_dev(dev); ++ win->SetTitle((const char *)title); ++ lv(dev)->d_flush(); ++ unlock_dev(dev); ++} ++ ++/* ++int be_get_filled_bitmap(struct bitmap *bmp, long color) ++{ ++ internal((unsigned char *)"nedopsano"); ++ return 0; ++} ++*/ ++ ++int be_get_empty_bitmap(struct bitmap *bmp) ++{ ++ DBG("bmp\n"); ++//DBG("bmp (%d, %d) cs %08x\n", bmp->x, bmp->y, be_cs_bmp); ++ BRect r(0, 0, bmp->x - 1, bmp->y - 1); ++ BBitmap *b = new BBitmap(r, /*B_RGB32*/be_cs_bmp); ++ if (!b) { ++ bmp->data = NULL; ++DBG("%s: error 1\n", __FUNCTION__); ++ return 0; ++ } ++ if (!b->IsValid()) { ++ bmp->data = NULL; ++ delete b; ++DBG("%s: error 2\n", __FUNCTION__); ++ return 0; ++ } ++ if (b->LockBits() < B_OK) { ++ bmp->data = NULL; ++ delete b; ++DBG("%s: error 3\n", __FUNCTION__); ++ return 0; ++ } ++ bmp->data = b->Bits(); ++ bmp->skip = b->BytesPerRow(); ++ bmp->flags = b; ++//DBG("bmp: data %p, skip %d, flags %p\n", bmp->data, bmp->skip, bmp->flags); ++ return 0; ++} ++ ++void be_register_bitmap(struct bitmap *bmp) ++{ ++ BBitmap *b = (BBitmap *)bmp->flags; ++ b->UnlockBits(); ++} ++ ++void *be_prepare_strip(struct bitmap *bmp, int top, int lines) ++{ ++ DBG("preps\n"); ++ BBitmap *b = (BBitmap *)bmp->flags; ++ if (b->LockBits() < B_OK) ++ return NULL; ++ bmp->data = b->Bits(); ++ bmp->skip = b->BytesPerRow(); ++ return ((char *)bmp->data) + bmp->skip * top; ++} ++ ++void be_commit_strip(struct bitmap *bmp, int top, int lines) ++{ ++ BBitmap *b = (BBitmap *)bmp->flags; ++ b->UnlockBits(); ++} ++ ++void be_unregister_bitmap(struct bitmap *bmp) ++{ ++ DBG("unb\n"); ++ BBitmap *b = (BBitmap *)bmp->flags; ++ delete b; ++} ++ ++void be_draw_bitmap(struct graphics_device *dev, struct bitmap *bmp, int x, int y) ++{ ++ DBG("drawb\n"); ++ BBitmap *b = (BBitmap *)bmp->flags; ++ lock_dev(dev); ++ lv(dev)->DrawBitmap(b, b->Bounds(), BRect(x, y, x + bmp->x - 1, y + bmp->y - 1)); ++ lv(dev)->d_flush(); ++ unlock_dev(dev); ++} ++ ++void be_draw_bitmaps(struct graphics_device *dev, struct bitmap **bmp, int n, int x, int y) ++{ ++ LinksView *lvv = lv(dev); ++ lock_dev(dev); ++ while (n--) { ++ BBitmap *b = (BBitmap *)(*bmp)->flags; ++ lvv->DrawBitmap(b, b->Bounds(), BRect(x, y, x + (*bmp)->x, y + (*bmp)->y)); ++ x += (*bmp)->x; ++ bmp++; ++ } ++ lv(dev)->d_flush(); ++ unlock_dev(dev); ++} ++ ++long be_get_color(int rgb) ++{ ++ if (small_color) { ++ get_color32(c, rgb); ++ return *(long *)(void *)&c; ++ } else return rgb & 0xffffff; ++} ++ ++void be_fill_area(struct graphics_device *dev, int x1, int y1, int x2, int y2, long color) ++{ ++ DBG("fill\n"); ++ if (x1 >= x2 || y1 >= y2) return; ++ lock_dev(dev); ++ if (small_color) ++ lv(dev)->SetHighColor(*(rgb_color *)(void *)&color); ++ else ++ lv(dev)->SetHighColor(get_color32(, color)); ++ lv(dev)->FillRect(BRect(x1, y1, x2 - 1, y2 - 1)); ++ lv(dev)->d_flush(); ++ unlock_dev(dev); ++} ++ ++void be_draw_hline(struct graphics_device *dev, int x1, int y, int x2, long color) ++{ ++ DBG("hline\n"); ++ if (x1 >= x2) return; ++ lock_dev(dev); ++ if (small_color) ++ lv(dev)->SetHighColor(*(rgb_color *)(void *)&color); ++ else ++ lv(dev)->SetHighColor(get_color32(, color)); ++ lv(dev)->StrokeLine(BPoint(x1, y), BPoint(x2 - 1, y)); ++ lv(dev)->d_flush(); ++ unlock_dev(dev); ++} ++ ++void be_draw_vline(struct graphics_device *dev, int x, int y1, int y2, long color) ++{ ++ DBG("vline\n"); ++ if (y1 >= y2) return; ++ lock_dev(dev); ++ if (small_color) ++ lv(dev)->SetHighColor(*(rgb_color *)(void *)&color); ++ else ++ lv(dev)->SetHighColor(get_color32(, color)); ++ lv(dev)->StrokeLine(BPoint(x, y1), BPoint(x, y2 - 1)); ++ lv(dev)->d_flush(); ++ unlock_dev(dev); ++} ++ ++int be_hscroll(struct graphics_device *dev, struct rect_set **ignore, int sc) ++{ ++ DBG("hscroll\n"); ++ if (dev->clip.x1 >= dev->clip.x2 || dev->clip.y1 >= dev->clip.y2) return 0; ++ if (sc <= dev->clip.x1 - dev->clip.x2) return 1; ++ if (sc >= dev->clip.x2 - dev->clip.x1) return 1; ++ lock_dev0(dev); ++ if (sc > 0) lv(dev)->CopyBits(BRect(dev->clip.x1, dev->clip.y1, dev->clip.x2 - sc - 1, dev->clip.y2 - 1), BRect(dev->clip.x1 + sc, dev->clip.y1, dev->clip.x2 - 1, dev->clip.y2 - 1)); ++ else lv(dev)->CopyBits(BRect(dev->clip.x1 - sc, dev->clip.y1, dev->clip.x2 - 1, dev->clip.y2 - 1), BRect(dev->clip.x1, dev->clip.y1, dev->clip.x2 + sc - 1, dev->clip.y2 - 1)); ++ lv(dev)->d_flush(); ++ unlock_dev(dev); ++ return 1; ++} ++ ++int be_vscroll(struct graphics_device *dev, struct rect_set **ignore, int sc) ++{ ++ DBG("vscroll\n"); ++ if (!sc || dev->clip.x1 >= dev->clip.x2 || dev->clip.y1 >= dev->clip.y2) return 0; ++ if (sc <= dev->clip.y1 - dev->clip.y2) return 1; ++ if (sc >= dev->clip.y2 - dev->clip.y1) return 1; ++ lock_dev0(dev); ++ if (sc > 0) lv(dev)->CopyBits(BRect(dev->clip.x1, dev->clip.y1, dev->clip.x2 - 1, dev->clip.y2 - sc - 1), BRect(dev->clip.x1, dev->clip.y1 + sc, dev->clip.x2 - 1, dev->clip.y2 - 1)); ++ else lv(dev)->CopyBits(BRect(dev->clip.x1, dev->clip.y1 - sc, dev->clip.x2 - 1, dev->clip.y2 - 1), BRect(dev->clip.x1, dev->clip.y1, dev->clip.x2 - 1, dev->clip.y2 + sc - 1)); ++ lv(dev)->d_flush(); ++ unlock_dev(dev); ++ return 1; ++} ++ ++void be_set_clip_area(struct graphics_device *dev, struct rect *r) ++{ ++ DBG("setc\n"); ++ memcpy(&dev->clip, r, sizeof(struct rect)); ++ lock_dev(dev); ++ BRegion clip(BRect(r->x1, r->y1, r->x2 - 1, r->y2 - 1)); ++ lv(dev)->ConstrainClippingRegion(&clip); ++ unlock_dev(dev); ++} ++ ++struct graphics_driver beos_driver = { ++ (unsigned char *)"beos", ++ be_init_driver, ++ be_init_device, ++ be_shutdown_device, ++ be_shutdown_driver, ++ be_get_driver_param, ++ be_get_empty_bitmap, ++ /*be_get_filled_bitmap,*/ ++ be_register_bitmap, ++ be_prepare_strip, ++ be_commit_strip, ++ be_unregister_bitmap, ++ be_draw_bitmap, ++ be_draw_bitmaps, ++ be_get_color, ++ be_fill_area, ++ be_draw_hline, ++ be_draw_vline, ++ be_hscroll, ++ be_vscroll, ++ be_set_clip_area, ++ dummy_block, ++ dummy_unblock, ++ be_set_title, ++ NULL, /* exec */ ++ 0, /* depth */ ++ 0, 0, /* size */ ++ 0, /* flags */ ++ 0, /* codepage */ ++ NULL, /* shell */ ++}; ++ ++#endif /* GRDRV_BEOS */ ++ ++#endif +diff -urN links-2.1pre33.org/bfu.c links-2.1pre33/bfu.c +--- links-2.1pre33.org/bfu.c Fri Dec 28 07:39:58 2007 ++++ links-2.1pre33/bfu.c Sat May 3 18:30:29 2008 +@@ -466,7 +466,7 @@ + draw_to_window(win, (void (*)(struct terminal *, void *))gf_val(display_menu_txt, display_menu_gfx), menu); + break; + case EV_MOUSE: +- if ((ev->b & BM_ACT) == B_MOVE) break; ++ if ((ev->b & BM_ACT) == BTN_MOVE) break; + if (ev->x < menu->x || ev->x >= menu->x+menu->xw || ev->y < menu->y || ev->y >= menu->y+menu->yw) { + int f = 1; + for (w1 = win; (void *)w1 != &win->term->windows; w1 = w1->next) { +@@ -490,7 +490,7 @@ + if (ev->x > m1->x && ev->x < m1->x+m1->xw-1 && ev->y > m1->y && ev->y < m1->y+m1->yw-1) goto del; + f--; + } +- if ((ev->b & BM_ACT) == B_DOWN) goto del; ++ if ((ev->b & BM_ACT) == BTN_DOWN) goto del; + bbb:; + } else { + if (!(ev->x < menu->x || ev->x >= menu->x+menu->xw || ev->y < menu->y + gf_val(1, G_MENU_TOP_BORDER) || ev->y >= menu->y + menu->yw - gf_val(1, G_MENU_TOP_BORDER))) { +@@ -502,7 +502,7 @@ + scroll_menu(menu, 0); + draw_to_window(win, (void (*)(struct terminal *, void *))gf_val(display_menu_txt, display_menu_gfx), menu); + menu_oldview = menu_oldsel = -1; +- if ((ev->b & BM_ACT) == B_UP/* || menu->items[s].in_m*/) select_menu(win->term, menu); ++ if ((ev->b & BM_ACT) == BTN_UP/* || menu->items[s].in_m*/) select_menu(win->term, menu); + } + } + } +@@ -686,8 +686,8 @@ + draw_to_window(win, (void (*)(struct terminal *, void *))display_mainmenu, menu); + break; + case EV_MOUSE: +- if ((ev->b & BM_ACT) == B_MOVE) break; +- if ((ev->b & BM_ACT) == B_DOWN && ev->y >= gf_val(1, G_BFU_FONT_SIZE)) delete_window_ev(win, ev); ++ if ((ev->b & BM_ACT) == BTN_MOVE) break; ++ if ((ev->b & BM_ACT) == BTN_DOWN && ev->y >= gf_val(1, G_BFU_FONT_SIZE)) delete_window_ev(win, ev); + else if (ev->y < gf_val(1, G_BFU_FONT_SIZE)) { + int i; + int p = gf_val(2, G_MAINMENU_LEFT_BORDER); +@@ -698,7 +698,7 @@ + if (ev->x >= o && ev->x < p) { + menu->selected = i; + draw_to_window(win, (void (*)(struct terminal *, void *))display_mainmenu, menu); +- if ((ev->b & BM_ACT) == B_UP || menu->items[s].in_m) select_mainmenu(win->term, menu); ++ if ((ev->b & BM_ACT) == BTN_UP || menu->items[s].in_m) select_mainmenu(win->term, menu); + break; + } + } +@@ -1019,7 +1019,7 @@ + dlg->selected = di - dlg->items; + x_display_dlg_item(dlg, di, 1); + } +- if ((ev->b & BM_ACT) == B_UP) dlg_select_item(dlg, di); ++ if ((ev->b & BM_ACT) == BTN_UP) dlg_select_item(dlg, di); + return 1; + case D_FIELD: + case D_FIELD_PASS: +@@ -1054,7 +1054,7 @@ + dlg->selected = di - dlg->items; + x_display_dlg_item(dlg, di, 1); + } +- if ((ev->b & BM_ACT) == B_UP) dlg_select_item(dlg, di); ++ if ((ev->b & BM_ACT) == BTN_UP) dlg_select_item(dlg, di); + return 1; + } + return 0; +@@ -1193,9 +1193,9 @@ + draw_to_window(dlg->win, (void (*)(struct terminal *, void *))redraw_dialog, dlg); + break; + case EV_MOUSE: +- if ((ev->b & BM_ACT) == B_MOVE) break; ++ if ((ev->b & BM_ACT) == BTN_MOVE) break; + for (i = 0; i < dlg->n; i++) if (dlg_mouse(dlg, &dlg->items[i], ev)) break; +- if ((ev->b & BM_ACT) == B_DOWN && (ev->b & BM_BUTT) == B_MIDDLE) { ++ if ((ev->b & BM_ACT) == BTN_DOWN && (ev->b & BM_BUTT) == BTN_MIDDLE) { + di = &dlg->items[dlg->selected]; /* don't delete this!!! it's here because of jump from mouse event */ + if (di->item->type == D_FIELD || di->item->type == D_FIELD_PASS) goto clipbd_paste; + } +@@ -1388,9 +1388,9 @@ + goto bla; + } + if (ev->x == KBD_ENTER) for (i = 0; i < dlg->n; i++) +- if (dlg->dlg->items[i].type == D_BUTTON && dlg->dlg->items[i].gid & B_ENTER) goto sel; ++ if (dlg->dlg->items[i].type == D_BUTTON && dlg->dlg->items[i].gid & BTN_ENTER) goto sel; + if (ev->x == KBD_ESC) for (i = 0; i < dlg->n; i++) +- if (dlg->dlg->items[i].type == D_BUTTON && dlg->dlg->items[i].gid & B_ESC) goto sel; ++ if (dlg->dlg->items[i].type == D_BUTTON && dlg->dlg->items[i].gid & BTN_ESC) goto sel; + if (((ev->x == KBD_TAB && !ev->y) || ev->x == KBD_DOWN || ev->x == KBD_RIGHT) && (dlg->n > 1 || term->spec->braille)) { + if (term->spec->braille) dlg->brl_y = dlg->items[0].y - 3; + x_display_dlg_item(dlg, &dlg->items[dlg->selected], 0); +@@ -1426,11 +1426,11 @@ + unsigned char *end; + double d = strtod(di->cdata, (char **)(void *)&end); + if (!*di->cdata || *end) { +- msg_box(dlg->win->term, NULL, TEXT(T_BAD_NUMBER), AL_CENTER, TEXT(T_NUMBER_EXPECTED), NULL, 1, TEXT(T_CANCEL), NULL, B_ENTER | B_ESC); ++ msg_box(dlg->win->term, NULL, TEXT(T_BAD_NUMBER), AL_CENTER, TEXT(T_NUMBER_EXPECTED), NULL, 1, TEXT(T_CANCEL), NULL, BTN_ENTER | BTN_ESC); + return 1; + } + if (100*d < di->item->gid || 100*d > di->item->gnum) { +- msg_box(dlg->win->term, NULL, TEXT(T_BAD_NUMBER), AL_CENTER, TEXT(T_NUMBER_OUT_OF_RANGE), NULL, 1, TEXT(T_CANCEL), NULL, B_ENTER | B_ESC); ++ msg_box(dlg->win->term, NULL, TEXT(T_BAD_NUMBER), AL_CENTER, TEXT(T_NUMBER_OUT_OF_RANGE), NULL, 1, TEXT(T_CANCEL), NULL, BTN_ENTER | BTN_ESC); + return 1; + } + return 0; +@@ -1441,11 +1441,11 @@ + unsigned char *end; + long l = strtol(di->cdata, (char **)(void *)&end, 10); + if (!*di->cdata || *end) { +- msg_box(dlg->win->term, NULL, TEXT(T_BAD_NUMBER), AL_CENTER, TEXT(T_NUMBER_EXPECTED), NULL, 1, TEXT(T_CANCEL), NULL, B_ENTER | B_ESC); ++ msg_box(dlg->win->term, NULL, TEXT(T_BAD_NUMBER), AL_CENTER, TEXT(T_NUMBER_EXPECTED), NULL, 1, TEXT(T_CANCEL), NULL, BTN_ENTER | BTN_ESC); + return 1; + } + if (l < di->item->gid || l > di->item->gnum) { +- msg_box(dlg->win->term, NULL, TEXT(T_BAD_NUMBER), AL_CENTER, TEXT(T_NUMBER_OUT_OF_RANGE), NULL, 1, TEXT(T_CANCEL), NULL, B_ENTER | B_ESC); ++ msg_box(dlg->win->term, NULL, TEXT(T_BAD_NUMBER), AL_CENTER, TEXT(T_NUMBER_OUT_OF_RANGE), NULL, 1, TEXT(T_CANCEL), NULL, BTN_ENTER | BTN_ESC); + return 1; + } + return 0; +@@ -1456,11 +1456,11 @@ + unsigned char *end; + long l = strtol(di->cdata, (char **)(void *)&end, 16); + if (!*di->cdata || *end) { +- msg_box(dlg->win->term, NULL, TEXT(T_BAD_NUMBER), AL_CENTER, TEXT(T_NUMBER_EXPECTED), NULL, 1, TEXT(T_CANCEL), NULL, B_ENTER | B_ESC); ++ msg_box(dlg->win->term, NULL, TEXT(T_BAD_NUMBER), AL_CENTER, TEXT(T_NUMBER_EXPECTED), NULL, 1, TEXT(T_CANCEL), NULL, BTN_ENTER | BTN_ESC); + return 1; + } + if (l < di->item->gid || l > di->item->gnum) { +- msg_box(dlg->win->term, NULL, TEXT(T_BAD_NUMBER), AL_CENTER, TEXT(T_NUMBER_OUT_OF_RANGE), NULL, 1, TEXT(T_CANCEL), NULL, B_ENTER | B_ESC); ++ msg_box(dlg->win->term, NULL, TEXT(T_BAD_NUMBER), AL_CENTER, TEXT(T_NUMBER_OUT_OF_RANGE), NULL, 1, TEXT(T_CANCEL), NULL, BTN_ENTER | BTN_ESC); + return 1; + } + return 0; +@@ -1470,7 +1470,7 @@ + { + unsigned char *p; + for (p = di->cdata; *p; p++) if (*p > ' ') return 0; +- msg_box(dlg->win->term, NULL, TEXT(T_BAD_STRING), AL_CENTER, TEXT(T_EMPTY_STRING_NOT_ALLOWED), NULL, 1, TEXT(T_CANCEL), NULL, B_ENTER | B_ESC); ++ msg_box(dlg->win->term, NULL, TEXT(T_BAD_STRING), AL_CENTER, TEXT(T_EMPTY_STRING_NOT_ALLOWED), NULL, 1, TEXT(T_CANCEL), NULL, BTN_ENTER | BTN_ESC); + return 1; + } + +@@ -2218,7 +2218,7 @@ + va_start(va, check); + for (i = 1; i <= n; i++) { + dlg->items[i].type = D_BUTTON; +- dlg->items[i].gid = i == 1 ? B_ENTER : i == n ? B_ESC : 0; ++ dlg->items[i].gid = i == 1 ? BTN_ENTER : i == n ? BTN_ESC : 0; + dlg->items[i].fn = i != n || n == 1 ? input_field_ok : input_field_cancel; + dlg->items[i].dlen = 0; + dlg->items[i].text = va_arg(va, unsigned char *); +diff -urN links-2.1pre33.org/block.c links-2.1pre33/block.c +--- links-2.1pre33.org/block.c Sat Dec 31 07:31:01 2005 ++++ links-2.1pre33/block.c Sat May 3 18:30:30 2008 +@@ -227,11 +227,11 @@ + d->items[0].data = url; + d->items[0].fn = check_nonempty; + d->items[1].type = D_BUTTON; +- d->items[1].gid = B_ENTER; ++ d->items[1].gid = BTN_ENTER; + d->items[1].fn = ok_dialog; + d->items[1].text = TEXT(T_OK); + d->items[2].type = D_BUTTON; +- d->items[2].gid = B_ESC; ++ d->items[2].gid = BTN_ESC; + d->items[2].text = TEXT(T_CANCEL); + d->items[2].fn = cancel_dialog; + d->items[3].type = D_END; +diff -urN links-2.1pre33.org/bookmarks.c links-2.1pre33/bookmarks.c +--- links-2.1pre33.org/bookmarks.c Thu Oct 26 17:06:32 2006 ++++ links-2.1pre33/bookmarks.c Sat May 3 18:30:31 2008 +@@ -378,12 +378,12 @@ + } + + d->items[a+1].type = D_BUTTON; +- d->items[a+1].gid = B_ENTER; ++ d->items[a+1].gid = BTN_ENTER; + d->items[a+1].fn = ok_dialog; + d->items[a+1].text = TEXT(T_OK); + + d->items[a+2].type = D_BUTTON; +- d->items[a+2].gid = B_ESC; ++ d->items[a+2].gid = BTN_ESC; + d->items[a+2].text = TEXT(T_CANCEL); + d->items[a+2].fn = cancel_dialog; + +diff -urN links-2.1pre33.org/configure.in links-2.1pre33/configure.in +--- links-2.1pre33.org/configure.in Wed Dec 26 07:00:48 2007 ++++ links-2.1pre33/configure.in Sat May 3 18:30:33 2008 +@@ -18,7 +18,7 @@ + dnl Checks for programs. + AC_PROG_CC + +-#AC_PROG_CXX ++AC_PROG_CXX + #AC_PROG_AWK + #AM_PROG_LEX + #AC_PROG_YACC +@@ -221,7 +221,10 @@ + if test "$ac_cv_lib_socket_gethostbyname" = no; then + AC_CHECK_LIB(nsl, gethostbyname) + if test "$ac_cv_lib_nsl_gethostbyname" = no; then +- AC_ERROR([gethostbyname function not present]) ++ AC_CHECK_LIB(bind, gethostbyname) ++ if test "$ac_cv_lib_bind_gethostbyname" = no; then ++ AC_ERROR([gethostbyname function not present]) ++ fi + fi + fi + fi +@@ -321,6 +324,7 @@ + fi + #AC_CHECK_FUNC(clone, AC_DEFINE(HAVE_CLONE)) + AC_CHECK_HEADERS(atheos/threads.h) ++AC_CHECK_HEADERS(kernel/OS.h) + AC_HAVE_FUNCS(spawn_thread) + AC_HAVE_FUNCS(resume_thread) + +@@ -422,6 +426,7 @@ + + + cf_have_atheos=no ++cf_have_beos=no + + if test "$cf_use_graphics" = yes; then + AC_DEFINE(G) +@@ -433,6 +438,7 @@ + dnl AC_ARG_WITH(sdl, [ --without-sdl compile without SDL graphics driver],[if test "$withval" = no; then disable_sdl=yes; else disable_sdl=no; fi]) + AC_ARG_WITH(pmshell, [ --without-pmshell compile without PMShell graphics driver],[if test "$withval" = no; then disable_pmshell=yes; else disable_pmshell=no; fi]) + AC_ARG_WITH(atheos, [ --without-atheos compile without Atheos graphics driver],[if test "$withval" = no; then disable_atheos=yes; else disable_atheos; fi]) ++AC_ARG_WITH(beos, [ --without-beos compile without BeOS/Haiku graphics driver],[if test "$withval" = no; then disable_beos=yes; else disable_beos; fi]) + + drivers="" + +@@ -568,6 +574,31 @@ + fi + fi + ++if test "$disable_beos" != yes ; then ++ old_ext="$ac_ext" ++ ac_ext=cpp ++ AC_CHECK_HEADERS(interface/View.h) ++ AC_CHECK_HEADERS(interface/Window.h) ++ AC_CHECK_HEADERS(interface/Screen.h) ++ AC_CHECK_HEADERS(interface/Bitmap.h) ++ AC_CHECK_HEADERS(support/Locker.h) ++ AC_CHECK_HEADERS(app/Application.h) ++ ac_ext="$old_ext" ++ ++ if test "$ac_cv_header_kernel_OS_h" = yes && ++ test "$ac_cv_header_interface_View_h" = yes && ++ test "$ac_cv_header_interface_Window_h" = yes && ++ test "$ac_cv_header_interface_Screen_h" = yes && ++ test "$ac_cv_header_interface_Bitmap_h" = yes && ++ test "$ac_cv_header_support_Locker_h" = yes && ++ test "$ac_cv_header_app_Application_h" = yes; then ++ AC_PROG_CXX ++ AC_DEFINE(GRDRV_BEOS) ++ drivers="$drivers BEOS" ++ cf_have_beos=yes ++ fi ++fi ++ + AC_CHECK_LIB(z, inflate) + PKG_CHECK_MODULES(LIBPNG,libpng >= 1.0.0,pkgconfig_libpng=yes,pkgconfig_libpng=no) + if test "$pkgconfig_libpng" = "yes"; then +@@ -645,6 +676,7 @@ + + + AM_CONDITIONAL(ATHEOS_GR, test "$cf_have_atheos" = yes) ++AM_CONDITIONAL(BEOS_GR, test "$cf_have_beos" = yes) + + test "$ac_cv_have_emx" = yes && LDFLAGS="$LDFLAGS -Zexe" + +diff -urN links-2.1pre33.org/default.c links-2.1pre33/default.c +--- links-2.1pre33.org/default.c Mon Dec 24 23:33:44 2007 ++++ links-2.1pre33/default.c Sat May 3 18:30:34 2008 +@@ -452,7 +452,7 @@ + } + add_to_strn(&config_file, name); + if ((err = write_to_config_file(config_file, c))) { +- if (term) msg_box(term, NULL, TEXT(T_CONFIG_ERROR), AL_CENTER | AL_EXTD_TEXT, TEXT(T_UNABLE_TO_WRITE_TO_CONFIG_FILE), ": ", get_err_msg(-err), NULL, NULL, 1, TEXT(T_CANCEL), NULL, B_ENTER | B_ESC); ++ if (term) msg_box(term, NULL, TEXT(T_CONFIG_ERROR), AL_CENTER | AL_EXTD_TEXT, TEXT(T_UNABLE_TO_WRITE_TO_CONFIG_FILE), ": ", get_err_msg(-err), NULL, NULL, 1, TEXT(T_CANCEL), NULL, BTN_ENTER | BTN_ESC); + mem_free(c); + mem_free(config_file); + return -1; +diff -urN links-2.1pre33.org/directfb.c links-2.1pre33/directfb.c +--- links-2.1pre33.org/directfb.c Wed Nov 22 23:55:03 2006 ++++ links-2.1pre33/directfb.c Sat May 3 18:30:35 2008 +@@ -651,25 +651,25 @@ + + if (event.type == DWET_BUTTONUP) + { +- flags = B_UP; ++ flags = BTN_UP; + data->window->UngrabPointer (data->window); + } + else + { +- flags = B_DOWN; ++ flags = BTN_DOWN; + data->window->GrabPointer (data->window); + } + + switch (event.button) + { + case DIBI_LEFT: +- flags |= B_LEFT; ++ flags |= BTN_LEFT; + break; + case DIBI_RIGHT: +- flags |= B_RIGHT; ++ flags |= BTN_RIGHT; + break; + case DIBI_MIDDLE: +- flags |= B_MIDDLE; ++ flags |= BTN_MIDDLE; + break; + default: + continue; +@@ -681,8 +681,8 @@ + + case DWET_WHEEL: + gd->mouse_handler (gd, event.x, event.y, +- B_MOVE | +- (event.step > 0 ? B_WHEELUP : B_WHEELDOWN)); ++ BTN_MOVE | ++ (event.step > 0 ? BTN_WHEELUP : BTN_WHEELDOWN)); + break; + + case DWET_MOTION: +@@ -697,16 +697,16 @@ + switch (event.buttons) + { + case DIBM_LEFT: +- flags = B_DRAG | B_LEFT; ++ flags = BTN_DRAG | BTN_LEFT; + break; + case DIBM_RIGHT: +- flags = B_DRAG | B_RIGHT; ++ flags = BTN_DRAG | BTN_RIGHT; + break; + case DIBM_MIDDLE: +- flags = B_DRAG | B_MIDDLE; ++ flags = BTN_DRAG | BTN_MIDDLE; + break; + default: +- flags = B_MOVE; ++ flags = BTN_MOVE; + break; + } + +diff -urN links-2.1pre33.org/drivers.c links-2.1pre33/drivers.c +--- links-2.1pre33.org/drivers.c Mon Dec 24 23:33:44 2007 ++++ links-2.1pre33/drivers.c Sat May 3 18:30:36 2008 +@@ -31,6 +31,9 @@ + #ifdef GRDRV_ATHEOS + extern struct graphics_driver atheos_driver; + #endif ++#ifdef GRDRV_BEOS ++extern struct graphics_driver beos_driver; ++#endif + #ifdef GRDRV_SDL + extern struct graphics_driver sdl_driver; + #endif +@@ -47,6 +50,9 @@ + #endif + #ifdef GRDRV_ATHEOS + &atheos_driver, ++#endif ++#ifdef GRDRV_BEOS ++ &beos_driver, + #endif + #ifndef SPAD + #ifdef GRDRV_X +diff -urN links-2.1pre33.org/framebuffer.c links-2.1pre33/framebuffer.c +--- links-2.1pre33.org/framebuffer.c Sat Oct 27 05:36:22 2007 ++++ links-2.1pre33/framebuffer.c Sat May 3 18:30:38 2008 +@@ -322,7 +322,7 @@ + if (mouse_y < 0) mouse_y = 0; + ev.x = mouse_x; + ev.y = mouse_y; +- ev.b = B_MOVE; ++ ev.b = BTN_MOVE; + if (!current_virtual_device) return; + if (current_virtual_device->mouse_handler) current_virtual_device->mouse_handler(current_virtual_device, ev.x, ev.y, ev.b); + redraw_mouse(); +@@ -956,26 +956,26 @@ + + ev.x = mouse_x; + ev.y = mouse_y; +- if (gev.buttons & GPM_B_LEFT) ev.b = B_LEFT; +- else if (gev.buttons & GPM_B_MIDDLE) ev.b = B_MIDDLE; +- else if (gev.buttons & GPM_B_RIGHT) ev.b = B_RIGHT; ++ if (gev.buttons & GPM_B_LEFT) ev.b = BTN_LEFT; ++ else if (gev.buttons & GPM_B_MIDDLE) ev.b = BTN_MIDDLE; ++ else if (gev.buttons & GPM_B_RIGHT) ev.b = BTN_RIGHT; + else ev.b = 0; +- if (gev.type & GPM_DOWN) ev.b |= B_DOWN; +- else if (gev.type & GPM_UP) ev.b |= B_UP; +- else if (gev.type & GPM_DRAG) ev.b |= B_DRAG; +- else ev.b |= B_MOVE; ++ if (gev.type & GPM_DOWN) ev.b |= BTN_DOWN; ++ else if (gev.type & GPM_UP) ev.b |= BTN_UP; ++ else if (gev.type & GPM_DRAG) ev.b |= BTN_DRAG; ++ else ev.b |= BTN_MOVE; + + #ifndef USE_GPM_DX + if (fb_msetsize < 0) { + } else if (fb_msetsize < 10) { + fb_msetsize++; +- } else if ((ev.b & BM_ACT) == B_MOVE && !(ev.b & BM_BUTT)) { ++ } else if ((ev.b & BM_ACT) == BTN_MOVE && !(ev.b & BM_BUTT)) { + fb_mouse_setsize(); + fb_msetsize = -1; + } + #endif + +- if (((ev.b & BM_ACT) == B_MOVE && !(ev.b & BM_BUTT)) || (ev.b & BM_ACT) == B_DRAG) { ++ if (((ev.b & BM_ACT) == BTN_MOVE && !(ev.b & BM_BUTT)) || (ev.b & BM_ACT) == BTN_DRAG) { + if (can_read(fb_hgpm)) goto again; + } + +diff -urN links-2.1pre33.org/jsint.c links-2.1pre33/jsint.c +--- links-2.1pre33.org/jsint.c Sun May 27 14:23:48 2007 ++++ links-2.1pre33/jsint.c Sat May 3 18:30:39 2008 +@@ -1272,8 +1272,8 @@ + txt, /* message */ + jsid, /* data for button functions */ + 3, /* # of buttons */ +- TEXT(T_OK),js_upcall_confirm_ok_pressed,B_ENTER, /* first button */ +- TEXT(T_CANCEL),js_upcall_confirm_cancel_pressed,B_ESC, /* second button */ ++ TEXT(T_OK),js_upcall_confirm_ok_pressed,BTN_ENTER, /* first button */ ++ TEXT(T_CANCEL),js_upcall_confirm_cancel_pressed,BTN_ESC, /* second button */ + TEXT(T_KILL_SCRIPT), js_kill_script_pressed,NULL + ); + +@@ -1342,7 +1342,7 @@ + txt, /* message */ + jsid, /* data for button functions */ + 2, /* # of buttons */ +- TEXT(T_OK),js_upcall_alert_ok_pressed,B_ENTER|B_ESC, ++ TEXT(T_OK),js_upcall_alert_ok_pressed,BTN_ENTER|BTN_ESC, + TEXT(T_KILL_SCRIPT), js_kill_script_pressed,NULL + ); + +@@ -2933,8 +2933,8 @@ + jsid->n?TEXT(T_JS_IS_ATTEMPTING_TO_OPEN_NEW_WINDOW_WITH_URL):TEXT(T_JS_IS_ATTEMPTING_TO_GO_TO_URL), " \"",jsid->string,"\".",NULL, /* message */ + jsid, /* data for button functions */ + 3, /* # of buttons */ +- TEXT(T_ALLOW),js_upcall_goto_url_ok_pressed,B_ENTER, +- TEXT(T_REJECT),js_upcall_goto_url_cancel_pressed,B_ESC, ++ TEXT(T_ALLOW),js_upcall_goto_url_ok_pressed,BTN_ENTER, ++ TEXT(T_REJECT),js_upcall_goto_url_cancel_pressed,BTN_ESC, + TEXT(T_KILL_SCRIPT), js_kill_script_pressed,NULL /* dirty trick: gimme_js_id_string and gimme_js_id begins with the same long */ + ); + js_mem_free(s); +@@ -3089,8 +3089,8 @@ + TEXT(T_JS_IS_ATTEMPTING_TO_GO_INTO_HISTORY), txt, TEXT(T_TO_URL), " \"",url,"\".",NULL, /* message */ + jsid, /* data for button functions */ + 3, /* # of buttons */ +- TEXT(T_ALLOW),js_upcall_goto_history_ok_pressed,B_ENTER, +- TEXT(T_REJECT),js_upcall_goto_url_cancel_pressed,B_ESC, ++ TEXT(T_ALLOW),js_upcall_goto_history_ok_pressed,BTN_ENTER, ++ TEXT(T_REJECT),js_upcall_goto_url_cancel_pressed,BTN_ESC, + TEXT(T_KILL_SCRIPT), js_kill_script_pressed,NULL /* dirty trick: gimme_js_id_string and gimme_js_id begins with the same long */ + ); + js_mem_free(s); +diff -urN links-2.1pre33.org/kbd.c links-2.1pre33/kbd.c +--- links-2.1pre33.org/kbd.c Thu Jan 31 21:48:26 2008 ++++ links-2.1pre33/kbd.c Sat May 3 18:30:40 2008 +@@ -848,10 +848,10 @@ + ev.y = (unsigned char)(itrm->kqueue[el+3]) - ' ' - 1 + ((int)((unsigned char)(itrm->kqueue[el+4]) - ' ' - 1) << 7); + if ( ev.y & (1 << 13)) ev.y = 0; /* ev.y |= ~0 << 14; */ + switch ((itrm->kqueue[el] - ' ') ^ xterm_button) { /* Every event changhes only one bit */ +- case TW_BUTT_LEFT: ev.b = B_LEFT | ( (xterm_button & TW_BUTT_LEFT) ? B_UP : B_DOWN ); break; +- case TW_BUTT_MIDDLE: ev.b = B_MIDDLE | ( (xterm_button & TW_BUTT_MIDDLE) ? B_UP : B_DOWN ); break; +- case TW_BUTT_RIGHT: ev.b = B_RIGHT | ( (xterm_button & TW_BUTT_RIGHT) ? B_UP : B_DOWN ); break; +- case 0: ev.b = B_DRAG; ++ case TW_BUTT_LEFT: ev.b = BTN_LEFT | ( (xterm_button & TW_BUTT_LEFT) ? BTN_UP : BTN_DOWN ); break; ++ case TW_BUTT_MIDDLE: ev.b = BTN_MIDDLE | ( (xterm_button & TW_BUTT_MIDDLE) ? BTN_UP : BTN_DOWN ); break; ++ case TW_BUTT_RIGHT: ev.b = BTN_RIGHT | ( (xterm_button & TW_BUTT_RIGHT) ? BTN_UP : BTN_DOWN ); break; ++ case 0: ev.b = BTN_DRAG; + /* default : Twin protocol error */ + } + xterm_button = itrm->kqueue[el] - ' '; +@@ -859,15 +859,15 @@ + } else { + ev.x = itrm->kqueue[el+1] - ' ' - 1; + ev.y = itrm->kqueue[el+2] - ' ' - 1; +- ev.b = B_DOWN; +- if (itrm->kqueue[el] & 4) ev.b = B_DRAG; +- if ((ev.b |= (itrm->kqueue[el] & BM_BUTT) | B_DOWN) == 3) { +- ev.b = B_UP; ++ ev.b = BTN_DOWN; ++ if (itrm->kqueue[el] & 4) ev.b = BTN_DRAG; ++ if ((ev.b |= (itrm->kqueue[el] & BM_BUTT) | BTN_DOWN) == 3) { ++ ev.b = BTN_UP; + if (xterm_button != -1) ev.b |= xterm_button; + } +- /*if ((itrm->kqueue[el] & 4) && ev.b != B_UP) ev.b |= B_DRAG;*/ ++ /*if ((itrm->kqueue[el] & 4) && ev.b != BTN_UP) ev.b |= BTN_DRAG;*/ + xterm_button = -1; +- if ((ev.b & BM_ACT) == B_DOWN) xterm_button = ev.b & BM_BUTT; ++ if ((ev.b & BM_ACT) == BTN_DOWN) xterm_button = ev.b & BM_BUTT; + el += 3; + } + ev.ev = EV_MOUSE; +diff -urN links-2.1pre33.org/links-beos.rdef links-2.1pre33/links-beos.rdef +--- links-2.1pre33.org/links-beos.rdef Thu Jan 1 01:00:00 1970 ++++ links-2.1pre33/links-beos.rdef Sat May 3 23:50:16 2008 +@@ -0,0 +1,97 @@ ++/* ++** links-beos.rdef ++** ++** Automatically generated by BResourceParser on ++** Thursday, December 13, 2007 at 23:46:45. ++** ++*/ ++ ++resource(1, "BEOS:APP_FLAGS") (#'APPF') $"01000000"; ++ ++resource(1, "BEOS:APP_VERSION") #'APPV' array { ++ $"02000000010000000000000000000000210000006C696E6B7320322E31707265" ++ $"3333000000000000000000000000000000000000000000000000000000000000" ++ $"00000000000000000000000000000000000000004C696E6B732062726F777365" ++ $"7220322E31707265333300000000000000000000000000000000000000000000" ++ $"0000000000000000000000000000000000000000000000000000000000000000" ++ $"0000000000000000000000000000000000000000000000000000000000000000" ++ $"0000000000000000000000000000000000000000000000000000000000000000" ++ $"0000000000000000000000000000000000000000000000000000000000000000" ++ $"0000000000000000000000000000000000000000000000000000000000000000" ++ $"0000000000000000000000000000000000000000000000000000000000000000" ++ $"0000000000000000000000000000000000000000000000000000000000000000" ++ $"0000000000000000000000000000000000000000000000000000000000000000" ++ $"0000000000000000000000000000000000000000000000000000000000000000" ++ $"0000000000000000000000000000000000000000000000000000000000000000" ++ $"0000000000000000000000000000000000000000000000000000000000000000" ++ $"0000000000000000000000000000000000000000000000000000000000000000" ++ $"0000000000000000000000000000000000000000000000000000000000000000" ++ $"0000000000000000000000000000000000000000000000000000000000000000" ++ $"0000000000000000000000000000000000000000000000000000000000000000" ++ $"0000000000000000000000000000000000000000000000000000000000000000" ++ $"0000000000000000000000000000000000000000000000000000000000000000" ++ $"0000000000000000" ++}; ++ ++resource(101, "BEOS:L:STD_ICON") #'ICON' array { ++ $"2A2A2A2A2A2A2A2A2A2A2A2A2A2A2C0000363434343434343434343434343434" ++ $"2A2A2A2A2A2A2A2A2A2A2A2A2A2A2C0000363434343434343434343434343434" ++ $"2A2A2A2B2B2B2B2B2B2B2B2B2B2B2C0000363434343434343434343434343434" ++ $"2A2A2A3200000000000000000000000000363434343434343434343434343434" ++ $"2A2A2A2FF1313200000000000131310000363434343434343434343434343434" ++ $"2A2A2A2A2A2A2A30000000002B2A2C0000363434343434343434343434343434" ++ $"2A2A2A2A2A2A2A2F000000002A2A2C0000363434343434343434343434343434" ++ $"2A2A2A2A2A2A2A2F000000002A2A2C0000363434343434343434343434343434" ++ $"2A2A2A2A2A2A2A2F000000002A2A2C0000363434343434343434343434343434" ++ $"2A2A2A2A2A2A2A2F000000002A2A2C0000363434343434343434343434343434" ++ $"2A2A2A2A2A2A2A2F000000002A2A2C0000363434343434343434343434343434" ++ $"2A2A2A2A2A2A2A2F000000002A2A2C0000363434343434343434343434343434" ++ $"2A2A2A2A2A2A2A2F000000002A2A2C0000363434343434343434343434343434" ++ $"2A2A2A2A2A2A2A2F000000002A2A2C0000363434343434343434343434343434" ++ $"2C2C2C2C2C2C2C30000000002C2C2D0000373636363636363636363636363636" ++ $"0000000000000000000000000000000000000000000000000000000000000000" ++ $"0000000000000000000000000000000000000000000000000000000000000000" ++ $"2222222222222226000000002222230000151A1A1A1A1A1A1A1A1A1A1A1A1A1A" ++ $"20202020202020250000000020202200001A3F3F3F3F3F3F3F3F3F3F3F3F3F3F" ++ $"20202020202020250000000020202200001A3F3F3F3F3F3F3F1501113F3F3F3F" ++ $"20202020202020250000000020202200001A3F3F3F3F3F3F3F0E00133F3F3F3F" ++ $"20202020202020250000000020202200001A3F3F3F3F3F3F3F0500163F3F3F3F" ++ $"20202020202020250000000020202200001A3F3F3F3F3F3F1A0000193F3F3F3F" ++ $"20202020202020250000000020202200001A3F3F3F3F3F3F0C00001B3F3F3F3F" ++ $"20202020202020250000000020202200001A3F3F3F3F3F190000001E3F3F3F3F" ++ $"20202020202020250000000020202200001A3F3F3F3F1A030000013F3F3F3F3F" ++ $"20202020202020270000000023202200001A3F1E170C00000000043F3F3F3F3F" ++ $"2020202628292900000000000029290000040300000000000000063F3F3F3F3F" ++ $"20202027292929292929292929292900000203030303030303030B3F3F3F3F3F" ++ $"20202020202020202020202020202200001A3F3F3F3F3F3F3F3F3F3F3F3F3F3F" ++ $"20202020202020202020202020202200001A3F3F3F3F3F3F3F3F3F3F3F3F3F3F" ++ $"20202020202020202020202020202200001A3F3F3F3F3F3F3F3F3F3F3F3F3F3F" ++}; ++ ++resource(101, "BEOS:M:STD_ICON") #'MICN' array { ++ $"2A2A2A2A2A2A2A303A34343434343434" ++ $"2A2C3030303030F73A34343434343434" ++ $"2A2B2D300000EB323A34343434343434" ++ $"2A2A2A2C00002A303A34343434343434" ++ $"2A2A2A2C00002A303A34343434343434" ++ $"2A2A2A2C00002A303A34343434343434" ++ $"2A2A2A2C00002A303A34343434343434" ++ $"303030310000F1333D3A3A3A3A3A3A3A" ++ $"2626262700002629050D0D0D0D0D0D0D" ++ $"20202022000020260D3F3F3F1D143F3F" ++ $"20202022000020260D3F3F3F140A3F3F" ++ $"20202022000020260D3F3F3F090D3F3F" ++ $"20202022000020260D3F3F16000F3F3F" ++ $"20222427000026280710090000123F3F" ++ $"202225252525252807111111111A3F3F" ++ $"20202020202020260D3F3F3F3F3F3F3F" ++}; ++ ++resource(1, "BEOS:APP_SIG") (#'MIMS') "application/x-vnd.links"; ++ ++resource(1, "BEOS:FILE_TYPES") message { ++ "types" = "text/html", ++ "types" = "application/x-vnd.Be-bookmark", ++ "types" = "application/x-vnd.Be.URL.http" ++}; ++ +diff -urN links-2.1pre33.org/links.h links-2.1pre33/links.h +--- links-2.1pre33.org/links.h Thu Jan 31 21:50:40 2008 ++++ links-2.1pre33/links.h Sat May 3 18:30:41 2008 +@@ -1295,26 +1295,26 @@ + /* kbd.c */ + + #define BM_BUTT 15 +-#define B_LEFT 0 +-#define B_MIDDLE 1 +-#define B_RIGHT 2 +-#define B_FOURTH 3 +-#define B_FIFTH 4 +-#define B_SIXTH 5 +-#define B_WHEELUP 8 +-#define B_WHEELDOWN 9 +-#define B_WHEELUP1 10 +-#define B_WHEELDOWN1 11 +-#define B_WHEELLEFT 12 +-#define B_WHEELRIGHT 13 +-#define B_WHEELLEFT1 14 +-#define B_WHEELRIGHT1 15 ++#define BTN_LEFT 0 ++#define BTN_MIDDLE 1 ++#define BTN_RIGHT 2 ++#define BTN_FOURTH 3 ++#define BTN_FIFTH 4 ++#define BTN_SIXTH 5 ++#define BTN_WHEELUP 8 ++#define BTN_WHEELDOWN 9 ++#define BTN_WHEELUP1 10 ++#define BTN_WHEELDOWN1 11 ++#define BTN_WHEELLEFT 12 ++#define BTN_WHEELRIGHT 13 ++#define BTN_WHEELLEFT1 14 ++#define BTN_WHEELRIGHT1 15 + + #define BM_ACT 48 +-#define B_DOWN 0 +-#define B_UP 16 +-#define B_DRAG 32 +-#define B_MOVE 48 ++#define BTN_DOWN 0 ++#define BTN_UP 16 ++#define BTN_DRAG 32 ++#define BTN_MOVE 48 + + #define KBD_ENTER -0x100 + #define KBD_BS -0x101 +@@ -3302,15 +3302,15 @@ + #define D_FIELD_PASS 3 + #define D_BUTTON 4 + +-#define B_ENTER 1 +-#define B_ESC 2 ++#define BTN_ENTER 1 ++#define BTN_ESC 2 + + struct dialog_item_data; + struct dialog_data; + + struct dialog_item { + int type; +- int gid, gnum; /* for buttons: gid - flags B_XXX */ /* for fields: min/max */ /* for box: gid is box height */ ++ int gid, gnum; /* for buttons: gid - flags BTN_XXX */ /* for fields: min/max */ /* for box: gid is box height */ + int (*fn)(struct dialog_data *, struct dialog_item_data *); + struct history *history; + int dlen; +diff -urN links-2.1pre33.org/listedit.c links-2.1pre33/listedit.c +--- links-2.1pre33.org/listedit.c Sun Jul 8 01:23:40 2007 ++++ links-2.1pre33/listedit.c Sat May 3 18:30:43 2008 +@@ -754,7 +754,7 @@ + TEXT(T_NO_ITEMS_SELECTED), /* text */ + NULL, /* data */ + 1, /* # of buttons */ +- TEXT(T_OK),NULL,B_ESC|B_ENTER /* button1 */ ++ TEXT(T_OK),NULL,BTN_ESC|BTN_ENTER /* button1 */ + ); + else + { +@@ -936,8 +936,8 @@ + TEXT(T_FOLDER)," \"",txt,"\" ",TEXT(T_NOT_EMPTY_SURE_DELETE),NULL, /* text */ + narez, /* data for ld->delete_item */ + 2, /* # of buttons */ +- TEXT(T_NO),NULL,B_ESC, /* button1 */ +- TEXT(T_YES),delete_folder_recursively,B_ENTER /* button2 */ ++ TEXT(T_NO),NULL,BTN_ESC, /* button1 */ ++ TEXT(T_YES),delete_folder_recursively,BTN_ENTER /* button2 */ + ); + else + msg_box( +@@ -948,8 +948,8 @@ + TEXT(T_SURE_DELETE)," ",TEXT(T_fOLDER)," \"",txt,"\"?",NULL, /* null-terminated text */ + narez, /* data for ld->delete_item */ + 2, /* # of buttons */ +- TEXT(T_YES),delete_ok,B_ENTER, /* button1 */ +- TEXT(T_NO),NULL,B_ESC /* button2 */ ++ TEXT(T_YES),delete_ok,BTN_ENTER, /* button1 */ ++ TEXT(T_NO),NULL,BTN_ESC /* button2 */ + ); + } + else /* item */ +@@ -961,8 +961,8 @@ + TEXT(T_SURE_DELETE)," ",TEXT(ld->item_description)," \"",txt,"\"?",NULL, /* null-terminated text */ + narez, /* data for ld->delete_item */ + 2, /* # of buttons */ +- TEXT(T_YES),delete_ok,B_ENTER, /* button1 */ +- TEXT(T_NO),NULL,B_ESC /* button2 */ ++ TEXT(T_YES),delete_ok,BTN_ENTER, /* button1 */ ++ TEXT(T_NO),NULL,BTN_ESC /* button2 */ + ); + return 0; + } +@@ -1507,7 +1507,7 @@ + struct session *ses=(struct session *)(dlg->dlg->udata); + struct list* item; + +- if (!ld->search_word) {msg_box(ses->term, NULL, TEXT(T_SEARCH), AL_CENTER, TEXT(T_NO_PREVIOUS_SEARCH), NULL, 1, TEXT(T_CANCEL), NULL, B_ENTER | B_ESC); return;} ++ if (!ld->search_word) {msg_box(ses->term, NULL, TEXT(T_SEARCH), AL_CENTER, TEXT(T_NO_PREVIOUS_SEARCH), NULL, 1, TEXT(T_CANCEL), NULL, BTN_ENTER | BTN_ESC); return;} + + if ((item=ld->find_item(ld->current_pos,ld->search_word,direction))) + { +@@ -1523,7 +1523,7 @@ + if (!F) if (!ses->term->spec->block_cursor || ses->term->spec->braille) set_cursor(ses->term, dlg->x + DIALOG_LB, dlg->y+DIALOG_TB+ld->win_pos, dlg->x + DIALOG_LB, dlg->y+DIALOG_TB+ld->win_pos); + } + else +- msg_box(ses->term, NULL, TEXT(T_SEARCH), AL_CENTER, TEXT(T_SEARCH_STRING_NOT_FOUND), NULL, 1, TEXT(T_CANCEL), NULL, B_ENTER | B_ESC); ++ msg_box(ses->term, NULL, TEXT(T_SEARCH), AL_CENTER, TEXT(T_SEARCH_STRING_NOT_FOUND), NULL, 1, TEXT(T_CANCEL), NULL, BTN_ENTER | BTN_ESC); + + } + +@@ -1761,7 +1761,7 @@ + + case EV_MOUSE: + /* toggle select item */ +- if ((ev->b&BM_ACT)==B_DOWN&&(ev->b&BM_BUTT)==B_RIGHT) ++ if ((ev->b&BM_ACT)==BTN_DOWN&&(ev->b&BM_BUTT)==BTN_RIGHT) + { + int n,a; + struct list *l=ld->win_offset; +@@ -1793,7 +1793,7 @@ + return EVENT_PROCESSED; + } + /* click on item */ +- if ((ev->b&BM_ACT)==B_DOWN&&(ev->b&BM_BUTT)==B_LEFT) ++ if ((ev->b&BM_ACT)==BTN_DOWN&&(ev->b&BM_BUTT)==BTN_LEFT) + { + int n,a; + struct list *l=ld->win_offset; +@@ -1832,7 +1832,7 @@ + } + /* scroll with the bar */ + #ifdef G +- if (F&&((ev->b&BM_ACT)==B_DRAG&&(ev->b&BM_BUTT)==B_LEFT)) ++ if (F&&((ev->b&BM_ACT)==BTN_DRAG&&(ev->b&BM_BUTT)==BTN_LEFT)) + { + int total=get_total_items(ld); + int scroll_pos=get_scroll_pos(ld); +@@ -1876,7 +1876,7 @@ + + } + #endif +- if ((ev->b&BM_ACT)==B_DRAG&&(ev->b&BM_BUTT)==B_MIDDLE) ++ if ((ev->b&BM_ACT)==BTN_DRAG&&(ev->b&BM_BUTT)==BTN_MIDDLE) + { + long delta=(ev->y-last_mouse_y)/MOUSE_SCROLL_DIVIDER; + +@@ -1913,12 +1913,12 @@ + + } + /* mouse wheel */ +- if ((ev->b&BM_ACT)==B_MOVE&&((ev->b&BM_BUTT)==B_WHEELUP||(ev->b&BM_BUTT)==B_WHEELDOWN||(ev->b&BM_BUTT)==B_WHEELDOWN1||(ev->b&BM_BUTT)==B_WHEELUP1)) ++ if ((ev->b&BM_ACT)==BTN_MOVE&&((ev->b&BM_BUTT)==BTN_WHEELUP||(ev->b&BM_BUTT)==BTN_WHEELDOWN||(ev->b&BM_BUTT)==BTN_WHEELDOWN1||(ev->b&BM_BUTT)==BTN_WHEELUP1)) + { + int button=(ev->b)&BM_BUTT; + last_mouse_y=ev->y; + +- if (button==B_WHEELDOWN||button==B_WHEELDOWN1) /* scroll down */ ++ if (button==BTN_WHEELDOWN||button==BTN_WHEELDOWN1) /* scroll down */ + { + if (next_in_tree(ld,ld->current_pos)==ld->list)return EVENT_PROCESSED; /* already at the bottom */ + ld->current_pos=next_in_tree(ld,ld->current_pos); +@@ -1932,7 +1932,7 @@ + } + draw_to_window(dlg->win,redraw_list_line,&rd); + } +- if (button==B_WHEELUP||button==B_WHEELUP1) /* scroll up */ ++ if (button==BTN_WHEELUP||button==BTN_WHEELUP1) /* scroll up */ + { + if (ld->current_pos==ld->list)return EVENT_PROCESSED; /* already on the top */ + ld->current_pos=prev_in_tree(ld,ld->current_pos); +@@ -2043,7 +2043,7 @@ + TEXT(ld->already_in_use), + NULL, + 1, +- TEXT(T_OK),NULL,B_ENTER|B_ESC ++ TEXT(T_OK),NULL,BTN_ENTER|BTN_ESC + ); + return 1; + } +@@ -2108,7 +2108,7 @@ + d->items[a+4].fn=list_item_unselect; + + d->items[a+5].type=D_BUTTON; +- d->items[a+5].gid=B_ESC; ++ d->items[a+5].gid=BTN_ESC; + d->items[a+5].fn=cancel_dialog; + d->items[a+5].text=TEXT(T_CLOSE); + +diff -urN links-2.1pre33.org/mailto.c links-2.1pre33/mailto.c +--- links-2.1pre33.org/mailto.c Mon Dec 24 23:33:46 2007 ++++ links-2.1pre33/mailto.c Sat May 3 18:37:06 2008 +@@ -15,7 +15,7 @@ + { + unsigned char *prog, *cmd; + if (!(prog = get_prog(list)) || !*prog) { +- msg_box(term, NULL, TEXT(T_NO_PROGRAM), AL_CENTER | AL_EXTD_TEXT, TEXT(T_NO_PROGRAM_SPECIFIED_FOR), " ", name, ".", NULL, NULL, 1, TEXT(T_CANCEL), NULL, B_ENTER | B_ESC); ++ msg_box(term, NULL, TEXT(T_NO_PROGRAM), AL_CENTER | AL_EXTD_TEXT, TEXT(T_NO_PROGRAM_SPECIFIED_FOR), " ", name, ".", NULL, NULL, 1, TEXT(T_CANCEL), NULL, BTN_ENTER | BTN_ESC); + return; + } + if ((cmd = subst_file(prog, param, 0))) { +@@ -42,7 +42,7 @@ + fail1: + mem_free(user); + fail: +- if (f) msg_box(ses->term, NULL, TEXT(T_BAD_URL_SYNTAX), AL_CENTER, TEXT(T_BAD_MAILTO_URL), NULL, 1, TEXT(T_CANCEL), NULL, B_ENTER | B_ESC); ++ if (f) msg_box(ses->term, NULL, TEXT(T_BAD_URL_SYNTAX), AL_CENTER, TEXT(T_BAD_MAILTO_URL), NULL, 1, TEXT(T_CANCEL), NULL, BTN_ENTER | BTN_ESC); + } + + void tn_func(struct session *ses, unsigned char *url, struct list_head *prog, unsigned char *t1, unsigned char *t2) +@@ -71,7 +71,7 @@ + fail1: + mem_free(hh); + fail: +- if (f) msg_box(ses->term, NULL, TEXT(T_BAD_URL_SYNTAX), AL_CENTER, t2, NULL, 1, TEXT(T_CANCEL), NULL, B_ENTER | B_ESC); ++ if (f) msg_box(ses->term, NULL, TEXT(T_BAD_URL_SYNTAX), AL_CENTER, t2, NULL, 1, TEXT(T_CANCEL), NULL, BTN_ENTER | BTN_ESC); + } + + +@@ -88,7 +88,7 @@ + void mms_func(struct session *ses, unsigned char *url) + { + if (check_shell_url(url)) { +- msg_box(ses->term, NULL, TEXT(T_BAD_URL_SYNTAX), AL_CENTER, TEXT(T_MMS_URL_CONTAINS_INACCEPTABLE_CHARACTERS), NULL, 1, TEXT(T_CANCEL), NULL, B_ENTER | B_ESC); ++ msg_box(ses->term, NULL, TEXT(T_BAD_URL_SYNTAX), AL_CENTER, TEXT(T_MMS_URL_CONTAINS_INACCEPTABLE_CHARACTERS), NULL, 1, TEXT(T_CANCEL), NULL, BTN_ENTER | BTN_ESC); + return; + } + prog_func(ses->term, &mms_prog, url, TEXT(T_MMS)); +diff -urN links-2.1pre33.org/main.c links-2.1pre33/main.c +--- links-2.1pre33.org/main.c Tue Dec 11 19:45:38 2007 ++++ links-2.1pre33/main.c Sat May 3 18:30:43 2008 +@@ -277,6 +277,7 @@ + + void initialize_all_subsystems(void); + void initialize_all_subsystems_2(void); ++extern void maybe_force_gr(void); + + void init(void) + { +@@ -294,6 +295,9 @@ + retval = RET_FATAL; + goto ttt; + } ++#if defined(G) && defined(BEOS) ++ maybe_force_gr(); ++#endif + if (!(u = parse_options(g_argc - 1, g_argv + 1))) { + retval = RET_SYNTAX; + goto ttt; +diff -urN links-2.1pre33.org/menu.c links-2.1pre33/menu.c +--- links-2.1pre33.org/menu.c Mon Dec 24 23:33:46 2007 ++++ links-2.1pre33/menu.c Sat May 3 18:38:44 2008 +@@ -86,17 +86,17 @@ + + void menu_about(struct terminal *term, void *d, struct session *ses) + { +- msg_box(term, NULL, TEXT(T_ABOUT), AL_CENTER, TEXT(T_LINKS__LYNX_LIKE), NULL, 1, TEXT(T_OK), NULL, B_ENTER | B_ESC); ++ msg_box(term, NULL, TEXT(T_ABOUT), AL_CENTER, TEXT(T_LINKS__LYNX_LIKE), NULL, 1, TEXT(T_OK), NULL, BTN_ENTER | BTN_ESC); + } + + void menu_keys(struct terminal *term, void *d, struct session *ses) + { +- msg_box(term, NULL, TEXT(T_KEYS), AL_LEFT | AL_MONO, TEXT(T_KEYS_DESC), NULL, 1, TEXT(T_OK), NULL, B_ENTER | B_ESC); ++ msg_box(term, NULL, TEXT(T_KEYS), AL_LEFT | AL_MONO, TEXT(T_KEYS_DESC), NULL, 1, TEXT(T_OK), NULL, BTN_ENTER | BTN_ESC); + } + + void menu_copying(struct terminal *term, void *d, struct session *ses) + { +- msg_box(term, NULL, TEXT(T_COPYING), AL_CENTER, TEXT(T_COPYING_DESC), NULL, 1, TEXT(T_OK), NULL, B_ENTER | B_ESC); ++ msg_box(term, NULL, TEXT(T_COPYING), AL_CENTER, TEXT(T_COPYING_DESC), NULL, 1, TEXT(T_OK), NULL, BTN_ENTER | BTN_ESC); + } + + void menu_manual(struct terminal *term, void *d, struct session *ses) +@@ -157,7 +157,7 @@ + void query_exit(struct session *ses) + { + ses->exit_query = 1; +- msg_box(ses->term, NULL, TEXT(T_EXIT_LINKS), AL_CENTER, (ses->term->next == ses->term->prev && are_there_downloads()) ? TEXT(T_DO_YOU_REALLY_WANT_TO_EXIT_LINKS_AND_TERMINATE_ALL_DOWNLOADS) : (!F || ses->term->next == ses->term->prev) ? TEXT(T_DO_YOU_REALLY_WANT_TO_EXIT_LINKS) : TEXT(T_DO_YOU_REALLY_WANT_TO_CLOSE_WINDOW), ses, 2, TEXT(T_YES), (void (*)(void *))really_exit_prog, B_ENTER, TEXT(T_NO), dont_exit_prog, B_ESC); ++ msg_box(ses->term, NULL, TEXT(T_EXIT_LINKS), AL_CENTER, (ses->term->next == ses->term->prev && are_there_downloads()) ? TEXT(T_DO_YOU_REALLY_WANT_TO_EXIT_LINKS_AND_TERMINATE_ALL_DOWNLOADS) : (!F || ses->term->next == ses->term->prev) ? TEXT(T_DO_YOU_REALLY_WANT_TO_EXIT_LINKS) : TEXT(T_DO_YOU_REALLY_WANT_TO_CLOSE_WINDOW), ses, 2, TEXT(T_YES), (void (*)(void *))really_exit_prog, BTN_ENTER, TEXT(T_NO), dont_exit_prog, BTN_ESC); + } + + void exit_prog(struct terminal *term, void *d, struct session *ses) +@@ -284,7 +284,7 @@ + l = 0, a15 = init_str(); add_to_str(&a15, &l, ", "); add_num_to_str(&a15, &l, formatted_info(CI_LOCKED));add_to_str(&a15, &l, " "); + l = 0, a16 = init_str(); add_to_str(&a16, &l, "."); + +- if (!F) msg_box(term, getml(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, NULL), TEXT(T_RESOURCES), AL_LEFT | AL_EXTD_TEXT, TEXT(T_RESOURCES), a1, TEXT(T_HANDLES), a2, TEXT(T_TIMERS), a3, TEXT(T_CONNECTIONS), a4, TEXT(T_cONNECTIONS), a5, TEXT(T_CONNECTING), a6, TEXT(T_tRANSFERRING), a7, TEXT(T_KEEPALIVE), a8, TEXT(T_MEMORY_CACHE), a9, TEXT(T_BYTES), a10, TEXT(T_FILES), a11, TEXT(T_LOCKED), a12, TEXT(T_LOADING), a13, TEXT(T_FORMATTED_DOCUMENT_CACHE), a14, TEXT(T_DOCUMENTS), a15, TEXT(T_LOCKED), a16, NULL, r, 1, TEXT(T_OK), NULL, B_ENTER | B_ESC); ++ if (!F) msg_box(term, getml(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, NULL), TEXT(T_RESOURCES), AL_LEFT | AL_EXTD_TEXT, TEXT(T_RESOURCES), a1, TEXT(T_HANDLES), a2, TEXT(T_TIMERS), a3, TEXT(T_CONNECTIONS), a4, TEXT(T_cONNECTIONS), a5, TEXT(T_CONNECTING), a6, TEXT(T_tRANSFERRING), a7, TEXT(T_KEEPALIVE), a8, TEXT(T_MEMORY_CACHE), a9, TEXT(T_BYTES), a10, TEXT(T_FILES), a11, TEXT(T_LOCKED), a12, TEXT(T_LOADING), a13, TEXT(T_FORMATTED_DOCUMENT_CACHE), a14, TEXT(T_DOCUMENTS), a15, TEXT(T_LOCKED), a16, NULL, r, 1, TEXT(T_OK), NULL, BTN_ENTER | BTN_ESC); + #ifdef G + else msg_box(term, getml(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, + a12, a13, b14, b15, b16, b17, a14, a15, a16, +@@ -299,7 +299,7 @@ + TEXT(T_BYTES), b15, TEXT(T_IMAGES), b16, TEXT(T_LOCKED), + b17, TEXT(T_FONT_CACHE), c14, TEXT(T_BYTES), c15, + TEXT(T_BYTES_MAX), c16, TEXT(T_LETTERS), c17, +- TEXT(T_FORMATTED_DOCUMENT_CACHE), a14, TEXT(T_DOCUMENTS), a15, TEXT(T_LOCKED), a16, NULL, r, 1, TEXT(T_OK), NULL, B_ENTER | B_ESC); ++ TEXT(T_FORMATTED_DOCUMENT_CACHE), a14, TEXT(T_DOCUMENTS), a15, TEXT(T_LOCKED), a16, NULL, r, 1, TEXT(T_OK), NULL, BTN_ENTER | BTN_ESC); + #endif + r->win = term->windows.next; + ((struct dialog_data *)r->win->data)->dlg->abort = refresh_abort; +@@ -328,7 +328,7 @@ + add_to_str(&a, &l, "\n"); + add_to_str(&a, &l, ce->url); + } +- msg_box(term, getml(a, NULL), TEXT(T_CACHE_INFO), AL_LEFT | AL_EXTD_TEXT, TEXT(T_CACHE_CONTENT), a, NULL, r, 1, TEXT(T_OK), end_refresh, B_ENTER | B_ESC); ++ msg_box(term, getml(a, NULL), TEXT(T_CACHE_INFO), AL_LEFT | AL_EXTD_TEXT, TEXT(T_CACHE_CONTENT), a, NULL, r, 1, TEXT(T_OK), end_refresh, BTN_ENTER | BTN_ESC); + r->win = term->windows.next; + r->timer = install_timer(RESOURCE_INFO_REFRESH, (void (*)(void *))refresh, r); + /* !!! the refresh here is buggy */ +@@ -385,7 +385,7 @@ + } + #endif + p = stracpy(message); +- msg_box(term, getml(p, NULL), TEXT(T_MEMORY_INFO), AL_CENTER, p, r, 1, TEXT(T_OK), NULL, B_ENTER | B_ESC); ++ msg_box(term, getml(p, NULL), TEXT(T_MEMORY_INFO), AL_CENTER, p, r, 1, TEXT(T_OK), NULL, BTN_ENTER | BTN_ESC); + r->win = term->windows.next; + ((struct dialog_data *)r->win->data)->dlg->abort = refresh_abort; + r->timer = install_timer(RESOURCE_INFO_REFRESH, (void (*)(void *))refresh, r); +@@ -596,11 +596,11 @@ + d->items[9].dlen = sizeof(int); + d->items[9].data = (void *)&ts->braille; + d->items[10].type = D_BUTTON; +- d->items[10].gid = B_ENTER; ++ d->items[10].gid = BTN_ENTER; + d->items[10].fn = ok_dialog; + d->items[10].text = TEXT(T_OK); + d->items[11].type = D_BUTTON; +- d->items[11].gid = B_ESC; ++ d->items[11].gid = BTN_ESC; + d->items[11].fn = cancel_dialog; + d->items[11].text = TEXT(T_CANCEL); + d->items[12].type = D_END; +@@ -707,11 +707,11 @@ + d->items[8].gid = 1024; + d->items[8].gnum = 30*1024; + d->items[9].type = D_BUTTON; +- d->items[9].gid = B_ENTER; ++ d->items[9].gid = BTN_ENTER; + d->items[9].fn = ok_dialog; + d->items[9].text = TEXT(T_OK); + d->items[10].type = D_BUTTON; +- d->items[10].gid = B_ESC; ++ d->items[10].gid = BTN_ESC; + d->items[10].fn = cancel_dialog; + d->items[10].text = TEXT(T_CANCEL); + d->items[11].type = D_END; +@@ -832,11 +832,11 @@ + d->items[13].dlen = MAX_STR_LEN; + d->items[13].data = bugs->fake_referer; + d->items[14].type = D_BUTTON; +- d->items[14].gid = B_ENTER; ++ d->items[14].gid = BTN_ENTER; + d->items[14].fn = ok_dialog; + d->items[14].text = TEXT(T_OK); + d->items[15].type = D_BUTTON; +- d->items[15].gid = B_ESC; ++ d->items[15].gid = BTN_ESC; + d->items[15].fn = cancel_dialog; + d->items[15].text = TEXT(T_CANCEL); + d->items[16].type = D_END; +@@ -911,12 +911,12 @@ + a = 3; + #endif + d->items[a].type = D_BUTTON; +- d->items[a].gid = B_ENTER; ++ d->items[a].gid = BTN_ENTER; + d->items[a].fn = ok_dialog; + d->items[a].text = TEXT(T_OK); + a++; + d->items[a].type = D_BUTTON; +- d->items[a].gid = B_ESC; ++ d->items[a].gid = BTN_ESC; + d->items[a].fn = cancel_dialog; + d->items[a].text = TEXT(T_CANCEL); + a++; +@@ -1134,11 +1134,11 @@ + d->items[13].dlen = sizeof(int); + d->items[13].data = (void *)&gamma_bits; + d->items[14].type = D_BUTTON; +- d->items[14].gid = B_ENTER; ++ d->items[14].gid = BTN_ENTER; + d->items[14].fn = ok_dialog; + d->items[14].text = TEXT(T_OK); + d->items[15].type = D_BUTTON; +- d->items[15].gid = B_ESC; ++ d->items[15].gid = BTN_ESC; + d->items[15].fn = cancel_dialog; + d->items[15].text = TEXT(T_CANCEL); + d->items[16].type = D_END; +@@ -1250,11 +1250,11 @@ + d->items[3].data = (unsigned char *)&p->only_proxies; + d->items[3].dlen = sizeof(int); + d->items[4].type = D_BUTTON; +- d->items[4].gid = B_ENTER; ++ d->items[4].gid = BTN_ENTER; + d->items[4].fn = ok_dialog; + d->items[4].text = TEXT(T_OK); + d->items[5].type = D_BUTTON; +- d->items[5].gid = B_ESC; ++ d->items[5].gid = BTN_ESC; + d->items[5].fn = cancel_dialog; + d->items[5].text = TEXT(T_CANCEL); + d->items[6].type = D_END; +@@ -1343,11 +1343,11 @@ + d->items[9].data = (unsigned char *)&ftp_options; + d->items[9].dlen = sizeof(struct ftp_options); + d->items[10].type = D_BUTTON; +- d->items[10].gid = B_ENTER; ++ d->items[10].gid = BTN_ENTER; + d->items[10].fn = ok_dialog; + d->items[10].text = TEXT(T_OK); + d->items[11].type = D_BUTTON; +- d->items[11].gid = B_ESC; ++ d->items[11].gid = BTN_ESC; + d->items[11].fn = cancel_dialog; + d->items[11].text = TEXT(T_CANCEL); + d->items[12].type = D_END; +@@ -1481,11 +1481,11 @@ + } + #endif + d->items[a].type = D_BUTTON; +- d->items[a].gid = B_ENTER; ++ d->items[a].gid = BTN_ENTER; + d->items[a].fn = ok_dialog; + d->items[a++].text = TEXT(T_OK); + d->items[a].type = D_BUTTON; +- d->items[a].gid = B_ESC; ++ d->items[a].gid = BTN_ESC; + d->items[a].fn = cancel_dialog; + d->items[a++].text = TEXT(T_CANCEL); + d->items[a].type = D_END; +@@ -1498,7 +1498,7 @@ + net_options(term, xxx, yyy); + return; + } +- msg_box(term, NULL, _("Network options"), AL_CENTER, _("Warning: configuring network will terminate all running downloads. Do you really want to configure network?"), term, 2, _("Yes"), (void (*)(void *))net_options, B_ENTER, _("No"), NULL, B_ESC); ++ msg_box(term, NULL, _("Network options"), AL_CENTER, _("Warning: configuring network will terminate all running downloads. Do you really want to configure network?"), term, 2, _("Yes"), (void (*)(void *))net_options, BTN_ENTER, _("No"), NULL, BTN_ESC); + }*/ + + unsigned char mc_str[8]; +@@ -1581,12 +1581,12 @@ + d->items[a].data = (void *)&http_bugs.aggressive_cache; + a++; + d->items[a].type = D_BUTTON; +- d->items[a].gid = B_ENTER; ++ d->items[a].gid = BTN_ENTER; + d->items[a].fn = ok_dialog; + d->items[a].text = TEXT(T_OK); + a++; + d->items[a].type = D_BUTTON; +- d->items[a].gid = B_ESC; ++ d->items[a].gid = BTN_ESC; + d->items[a].fn = cancel_dialog; + d->items[a].text = TEXT(T_CANCEL); + a++; +@@ -1746,12 +1746,12 @@ + a++; + if (!F){ + d->items[a].type = D_BUTTON; +- d->items[a].gid = B_ENTER; ++ d->items[a].gid = BTN_ENTER; + d->items[a].fn = ok_dialog; + d->items[a].text = TEXT(T_OK); + a++; + d->items[a].type = D_BUTTON; +- d->items[a].gid = B_ESC; ++ d->items[a].gid = BTN_ESC; + d->items[a].fn = cancel_dialog; + d->items[a].text = TEXT(T_CANCEL); + a++; +@@ -1777,12 +1777,12 @@ + d->items[a].dlen = sizeof(int); + a++; + d->items[a].type = D_BUTTON; +- d->items[a].gid = B_ENTER; ++ d->items[a].gid = BTN_ENTER; + d->items[a].fn = ok_dialog; + d->items[a].text = TEXT(T_OK); + a++; + d->items[a].type = D_BUTTON; +- d->items[a].gid = B_ESC; ++ d->items[a].gid = BTN_ESC; + d->items[a].fn = cancel_dialog; + d->items[a].text = TEXT(T_CANCEL); + a++; +@@ -2038,12 +2038,12 @@ + } + #endif + d->items[a].type = D_BUTTON; +- d->items[a].gid = B_ENTER; ++ d->items[a].gid = BTN_ENTER; + d->items[a].fn = ok_dialog; + d->items[a].text = TEXT(T_OK); + a++; + d->items[a].type = D_BUTTON; +- d->items[a].gid = B_ESC; ++ d->items[a].gid = BTN_ESC; + d->items[a].fn = cancel_dialog; + d->items[a].text = TEXT(T_CANCEL); + a++; +@@ -2111,11 +2111,11 @@ + d->items[1].gid = 1; + d->items[1].gnum = 999; + d->items[2].type = D_BUTTON; +- d->items[2].gid = B_ENTER; ++ d->items[2].gid = BTN_ENTER; + d->items[2].fn = ok_dialog; + d->items[2].text = TEXT(T_OK); + d->items[3].type = D_BUTTON; +- d->items[3].gid = B_ESC; ++ d->items[3].gid = BTN_ESC; + d->items[3].fn = cancel_dialog; + d->items[3].text = TEXT(T_CANCEL); + d->items[4].type = D_END; +@@ -2510,8 +2510,8 @@ + TEXT(T_FILE), " ", h->file, " ", TEXT(T_ALREADY_EXISTS_AS_DOWNLOAD), " ", TEXT(T_DO_YOU_WISH_TO_OVERWRITE), NULL, + h, + 3, +- TEXT(T_OVERWRITE), does_file_exist_ok, B_ENTER, +- TEXT(T_CANCEL), does_file_exist_cancel, B_ESC, ++ TEXT(T_OVERWRITE), does_file_exist_ok, BTN_ENTER, ++ TEXT(T_CANCEL), does_file_exist_cancel, BTN_ESC, + TEXT(T_RENAME), does_file_exist_rename, NULL + ); + return; +@@ -2537,8 +2537,8 @@ + TEXT(T_FILE), " ", h->file, " ", TEXT(T_ALREADY_EXISTS), " ", TEXT(T_DO_YOU_WISH_TO_OVERWRITE), NULL, + h, + 3, +- TEXT(T_OVERWRITE), does_file_exist_ok, B_ENTER, +- TEXT(T_CANCEL), does_file_exist_cancel, B_ESC, ++ TEXT(T_OVERWRITE), does_file_exist_ok, BTN_ENTER, ++ TEXT(T_CANCEL), does_file_exist_cancel, BTN_ESC, + TEXT(T_RENAME), does_file_exist_rename, NULL + ); + } +diff -urN links-2.1pre33.org/objreq.c links-2.1pre33/objreq.c +--- links-2.1pre33.org/objreq.c Mon Dec 24 23:33:46 2007 ++++ links-2.1pre33/objreq.c Sat May 3 18:30:44 2008 +@@ -167,12 +167,12 @@ + d->items[1].data = a->passwd; + + d->items[2].type = D_BUTTON; +- d->items[2].gid = B_ENTER; ++ d->items[2].gid = BTN_ENTER; + d->items[2].fn = auth_ok; + d->items[2].text = TEXT(T_OK); + + d->items[3].type = D_BUTTON; +- d->items[3].gid = B_ESC; ++ d->items[3].gid = BTN_ESC; + d->items[3].fn = auth_cancel; + d->items[3].text = TEXT(T_CANCEL); + +diff -urN links-2.1pre33.org/os_dep.c links-2.1pre33/os_dep.c +--- links-2.1pre33.org/os_dep.c Fri Dec 28 07:40:31 2007 ++++ links-2.1pre33/os_dep.c Sat May 3 21:08:57 2008 +@@ -1071,7 +1071,7 @@ + + #if defined(BEOS) + +-#include ++#include + + int thr_sem_init = 0; + sem_id thr_sem; +@@ -1263,16 +1263,16 @@ + ev.x = ms->col; + ev.y = ms->row; + /*debug("status: %d %d %d", ms->col, ms->row, ms->fs);*/ +- if (ms->fs & (MOUSE_BN1_DOWN | MOUSE_BN2_DOWN | MOUSE_BN3_DOWN)) ev.b = status = B_DOWN | (ms->fs & MOUSE_BN1_DOWN ? B_LEFT : ms->fs & MOUSE_BN2_DOWN ? B_MIDDLE : B_RIGHT); ++ if (ms->fs & (MOUSE_BN1_DOWN | MOUSE_BN2_DOWN | MOUSE_BN3_DOWN)) ev.b = status = BTN_DOWN | (ms->fs & MOUSE_BN1_DOWN ? BTN_LEFT : ms->fs & MOUSE_BN2_DOWN ? BTN_MIDDLE : BTN_RIGHT); + else if (ms->fs & (MOUSE_MOTION_WITH_BN1_DOWN | MOUSE_MOTION_WITH_BN2_DOWN | MOUSE_MOTION_WITH_BN3_DOWN)) { +- int b = ms->fs & MOUSE_MOTION_WITH_BN1_DOWN ? B_LEFT : ms->fs & MOUSE_MOTION_WITH_BN2_DOWN ? B_MIDDLE : B_RIGHT; +- if (status == -1) b |= B_DOWN; +- else b |= B_DRAG; ++ int b = ms->fs & MOUSE_MOTION_WITH_BN1_DOWN ? BTN_LEFT : ms->fs & MOUSE_MOTION_WITH_BN2_DOWN ? BTN_MIDDLE : BTN_RIGHT; ++ if (status == -1) b |= BTN_DOWN; ++ else b |= BTN_DRAG; + ev.b = status = b; + } + else { + if (status == -1) continue; +- ev.b = (status & BM_BUTT) | B_UP; ++ ev.b = (status & BM_BUTT) | BTN_UP; + status = -1; + } + if (hard_write(oms->p[1], (unsigned char *)&ev, sizeof(struct event)) != sizeof(struct event)) break; +@@ -1598,13 +1598,13 @@ + ev.y = gev.y - 1; + if (ev.x < 0) ev.x = 0; + if (ev.y < 0) ev.y = 0; +- if (gev.buttons & GPM_B_LEFT) ev.b = B_LEFT; +- else if (gev.buttons & GPM_B_MIDDLE) ev.b = B_MIDDLE; +- else if (gev.buttons & GPM_B_RIGHT) ev.b = B_RIGHT; ++ if (gev.buttons & GPM_B_LEFT) ev.b = BTN_LEFT; ++ else if (gev.buttons & GPM_B_MIDDLE) ev.b = BTN_MIDDLE; ++ else if (gev.buttons & GPM_B_RIGHT) ev.b = BTN_RIGHT; + else return; +- if (gev.type & GPM_DOWN) ev.b |= B_DOWN; +- else if (gev.type & GPM_UP) ev.b |= B_UP; +- else if (gev.type & GPM_DRAG) ev.b |= B_DRAG; ++ if (gev.type & GPM_DOWN) ev.b |= BTN_DOWN; ++ else if (gev.type & GPM_UP) ev.b |= BTN_UP; ++ else if (gev.type & GPM_DRAG) ev.b |= BTN_DRAG; + else return; + gms->fn(gms->data, (char *)&ev, sizeof(struct event)); + } +diff -urN links-2.1pre33.org/os_dep.h links-2.1pre33/os_dep.h +--- links-2.1pre33.org/os_dep.h Wed Dec 26 07:00:48 2007 ++++ links-2.1pre33/os_dep.h Sat May 3 18:30:45 2008 +@@ -111,11 +111,15 @@ + #define SHARED_CONFIG_DIR "/etc/" + #define NO_FORK_ON_EXIT + #define ASSOC_BLOCK ++#define SET_WINDOW_TITLE_UTF_8 + + #include + #include +-#include ++#include + ++#ifdef __cplusplus ++extern "C" { ++#endif + int be_socket(int, int, int); + int be_connect(int, struct sockaddr *, int); + int be_getpeername(int, struct sockaddr *, int *); +@@ -129,6 +133,9 @@ + int be_close(int); + int be_select(int, struct fd_set *, struct fd_set *, struct fd_set *, struct timeval *); + int be_getsockopt(int, int, int, void *, int *); ++#ifdef __cplusplus ++} ++#endif + + #elif defined(RISCOS) + +diff -urN links-2.1pre33.org/os_depx.h links-2.1pre33/os_depx.h +--- links-2.1pre33.org/os_depx.h Sun Jul 8 01:23:40 2007 ++++ links-2.1pre33/os_depx.h Sat May 3 18:30:46 2008 +@@ -45,6 +45,8 @@ + #endif + + #ifdef BEOS ++#if IPPROTO_TCP != 6 ++/* net_server */ + #define socket be_socket + #define connect be_connect + #define getpeername be_getpeername +@@ -58,16 +60,22 @@ + #define close be_close + #define select be_select + #define getsockopt be_getsockopt ++/* ++#ifdef errno ++#undef errno ++#endif ++#define errno 1 ++*/ ++#endif + #ifndef PF_INET + #define PF_INET AF_INET + #endif + #ifndef SO_ERROR + #define SO_ERROR 10001 + #endif +-#ifdef errno +-#undef errno ++#ifndef FDSETSIZE ++#define FDSETSIZE FD_SETSIZE + #endif +-#define errno 1 + #endif + + #if defined(O_SIZE) && defined(__EMX__) +@@ -83,6 +91,9 @@ + #elif defined(GRDRV_ATHEOS) + #define loop_select ath_select + int ath_select(int n, fd_set *r, fd_set *w, fd_set *e, struct timeval *t); ++#elif defined(GRDRV_BEOS) ++#define loop_select be_loop_select ++int be_loop_select(int n, fd_set *r, fd_set *w, fd_set *e, struct timeval *t); + #else + #define loop_select select + #endif +diff -urN links-2.1pre33.org/pmshell.c links-2.1pre33/pmshell.c +--- links-2.1pre33.org/pmshell.c Fri Dec 28 07:40:31 2007 ++++ links-2.1pre33/pmshell.c Sat May 3 18:30:46 2008 +@@ -287,33 +287,33 @@ + case WM_BUTTON1DOWN: + pm_lock; + if (!(win = pm_lookup_window(hwnd))) { pm_unlock; break; } +- win->button |= 1 << B_LEFT; ++ win->button |= 1 << BTN_LEFT; + win->lastpos = (unsigned)mp1; +- pm_send_event(win, E_MOUSE, (unsigned)mp1 & 0xffff, win->y - ((unsigned)mp1 >> 16), B_DOWN | B_LEFT, 0); ++ pm_send_event(win, E_MOUSE, (unsigned)mp1 & 0xffff, win->y - ((unsigned)mp1 >> 16), BTN_DOWN | BTN_LEFT, 0); + pm_unlock; + break; + case WM_BUTTON2DOWN: + pm_lock; + if (!(win = pm_lookup_window(hwnd))) { pm_unlock; break; } +- win->button |= 1 << B_RIGHT; ++ win->button |= 1 << BTN_RIGHT; + win->lastpos = (unsigned)mp1; +- pm_send_event(win, E_MOUSE, (unsigned)mp1 & 0xffff, win->y - ((unsigned)mp1 >> 16), B_DOWN | B_RIGHT, 0); ++ pm_send_event(win, E_MOUSE, (unsigned)mp1 & 0xffff, win->y - ((unsigned)mp1 >> 16), BTN_DOWN | BTN_RIGHT, 0); + pm_unlock; + break; + case WM_BUTTON3DOWN: + pm_lock; + if (!(win = pm_lookup_window(hwnd))) { pm_unlock; break; } +- win->button |= 1 << B_MIDDLE; ++ win->button |= 1 << BTN_MIDDLE; + win->lastpos = (unsigned)mp1; +- pm_send_event(win, E_MOUSE, (unsigned)mp1 & 0xffff, win->y - ((unsigned)mp1 >> 16), B_DOWN | B_MIDDLE, 0); ++ pm_send_event(win, E_MOUSE, (unsigned)mp1 & 0xffff, win->y - ((unsigned)mp1 >> 16), BTN_DOWN | BTN_MIDDLE, 0); + pm_unlock; + break; + case WM_BUTTON1UP: + case WM_BUTTON1MOTIONEND: + pm_lock; + if (!(win = pm_lookup_window(hwnd))) { pm_unlock; break; } +- if (win->button & (1 << B_LEFT)) pm_send_event(win, E_MOUSE, (unsigned)mp1 & 0xffff, win->y - ((unsigned)mp1 >> 16), B_UP | B_LEFT, 0); +- win->button &= ~(1 << B_LEFT); ++ if (win->button & (1 << BTN_LEFT)) pm_send_event(win, E_MOUSE, (unsigned)mp1 & 0xffff, win->y - ((unsigned)mp1 >> 16), BTN_UP | BTN_LEFT, 0); ++ win->button &= ~(1 << BTN_LEFT); + win->lastpos = (unsigned)mp1; + pm_unlock; + break; +@@ -321,8 +321,8 @@ + case WM_BUTTON2MOTIONEND: + pm_lock; + if (!(win = pm_lookup_window(hwnd))) { pm_unlock; break; } +- if (win->button & (1 << B_RIGHT)) pm_send_event(win, E_MOUSE, (unsigned)mp1 & 0xffff, win->y - ((unsigned)mp1 >> 16), B_UP | B_RIGHT, 0); +- win->button &= ~(1 << B_RIGHT); ++ if (win->button & (1 << BTN_RIGHT)) pm_send_event(win, E_MOUSE, (unsigned)mp1 & 0xffff, win->y - ((unsigned)mp1 >> 16), BTN_UP | BTN_RIGHT, 0); ++ win->button &= ~(1 << BTN_RIGHT); + win->lastpos = (unsigned)mp1; + pm_unlock; + break; +@@ -330,8 +330,8 @@ + case WM_BUTTON3MOTIONEND: + pm_lock; + if (!(win = pm_lookup_window(hwnd))) { pm_unlock; break; } +- if (win->button & (1 << B_MIDDLE)) pm_send_event(win, E_MOUSE, (unsigned)mp1 & 0xffff, win->y - ((unsigned)mp1 >> 16), B_UP | B_MIDDLE, 0); +- win->button &= ~(1 << B_MIDDLE); ++ if (win->button & (1 << BTN_MIDDLE)) pm_send_event(win, E_MOUSE, (unsigned)mp1 & 0xffff, win->y - ((unsigned)mp1 >> 16), BTN_UP | BTN_MIDDLE, 0); ++ win->button &= ~(1 << BTN_MIDDLE); + win->lastpos = (unsigned)mp1; + pm_unlock; + break; +@@ -340,19 +340,19 @@ + if (!(win = pm_lookup_window(hwnd))) { pm_unlock; break; } + if (win->lastpos == (unsigned)mp1) { pm_unlock; break; } + win->lastpos = (unsigned)mp1; +- pm_send_mouse_event(win, (unsigned)mp1 & 0xffff, win->y - ((unsigned)mp1 >> 16), (win->button ? B_DRAG : B_MOVE) | (win->button & (1 << B_LEFT) ? B_LEFT : win->button & (1 << B_MIDDLE) ? B_MIDDLE : win->button & (1 << B_RIGHT) ? B_RIGHT : 0)); ++ pm_send_mouse_event(win, (unsigned)mp1 & 0xffff, win->y - ((unsigned)mp1 >> 16), (win->button ? BTN_DRAG : BTN_MOVE) | (win->button & (1 << BTN_LEFT) ? BTN_LEFT : win->button & (1 << BTN_MIDDLE) ? BTN_MIDDLE : win->button & (1 << BTN_RIGHT) ? BTN_RIGHT : 0)); + pm_unlock; + break; + case WM_VSCROLL: + pm_lock; + if (!(win = pm_lookup_window(hwnd))) { pm_unlock; break; } +- if ((unsigned)mp2 == SB_LINEUP << 16 || (unsigned)mp2 == SB_LINEDOWN << 16) pm_send_event(win, E_MOUSE, win->lastpos & 0xffff, win->y - (win->lastpos >> 16), ((unsigned)mp2 == SB_LINEUP << 16 ? B_WHEELUP1 : B_WHEELDOWN1) | B_MOVE, 0); ++ if ((unsigned)mp2 == SB_LINEUP << 16 || (unsigned)mp2 == SB_LINEDOWN << 16) pm_send_event(win, E_MOUSE, win->lastpos & 0xffff, win->y - (win->lastpos >> 16), ((unsigned)mp2 == SB_LINEUP << 16 ? BTN_WHEELUP1 : BTN_WHEELDOWN1) | BTN_MOVE, 0); + pm_unlock; + break; + case WM_HSCROLL: + pm_lock; + if (!(win = pm_lookup_window(hwnd))) { pm_unlock; break; } +- if ((unsigned)mp2 == SB_LINELEFT << 16 || (unsigned)mp2 == SB_LINERIGHT << 16) pm_send_event(win, E_MOUSE, win->lastpos & 0xffff, win->y - (win->lastpos >> 16), ((unsigned)mp2 == SB_LINELEFT << 16 ? B_WHEELLEFT1 : B_WHEELRIGHT1) | B_MOVE, 0); ++ if ((unsigned)mp2 == SB_LINELEFT << 16 || (unsigned)mp2 == SB_LINERIGHT << 16) pm_send_event(win, E_MOUSE, win->lastpos & 0xffff, win->y - (win->lastpos >> 16), ((unsigned)mp2 == SB_LINELEFT << 16 ? BTN_WHEELLEFT1 : BTN_WHEELRIGHT1) | BTN_MOVE, 0); + pm_unlock; + break; + } +diff -urN links-2.1pre33.org/session.c links-2.1pre33/session.c +--- links-2.1pre33.org/session.c Thu Jan 31 21:48:26 2008 ++++ links-2.1pre33/session.c Sat May 3 18:40:32 2008 +@@ -250,7 +250,7 @@ + unsigned char *u = stracpy(title); + if (strchr(u, POST_CHAR)) *strchr(u, POST_CHAR) = 0; + if (!t) return; +- msg_box(ses->term, getml(u, NULL), TEXT(T_ERROR), AL_CENTER | AL_EXTD_TEXT, TEXT(T_ERROR_LOADING), " ", u, ":\n\n", t, NULL, ses, 1, TEXT(T_CANCEL), NULL, B_ENTER | B_ESC/*, _("Retry"), NULL, 0 !!! FIXME: retry */); ++ msg_box(ses->term, getml(u, NULL), TEXT(T_ERROR), AL_CENTER | AL_EXTD_TEXT, TEXT(T_ERROR_LOADING), " ", u, ":\n\n", t, NULL, ses, 1, TEXT(T_CANCEL), NULL, BTN_ENTER | BTN_ESC/*, _("Retry"), NULL, 0 !!! FIXME: retry */); + } + + static inline unsigned char hx(int a) +@@ -520,7 +520,7 @@ + dlg->udata = down; + dlg->align = AL_CENTER; + dlg->items[0].type = D_BUTTON; +- dlg->items[0].gid = B_ENTER | B_ESC; ++ dlg->items[0].gid = BTN_ENTER | BTN_ESC; + dlg->items[0].fn = dlg_undisplay_download; + dlg->items[0].text = TEXT(T_BACKGROUND); + dlg->items[1].type = D_BUTTON; +@@ -668,7 +668,7 @@ + if (get_download_ses(down)) { + unsigned char *emsg = stracpy(errno ? strerror(errno) : "Zero returned"); + unsigned char *msg = stracpy(down->file); +- msg_box(get_download_ses(down)->term, getml(msg, emsg, NULL), TEXT(T_DOWNLOAD_ERROR), AL_CENTER | AL_EXTD_TEXT, TEXT(T_COULD_NOT_WRITE_TO_FILE), " ", msg, ": ", emsg, NULL, NULL, 1, TEXT(T_CANCEL), NULL, B_ENTER | B_ESC); ++ msg_box(get_download_ses(down)->term, getml(msg, emsg, NULL), TEXT(T_DOWNLOAD_ERROR), AL_CENTER | AL_EXTD_TEXT, TEXT(T_COULD_NOT_WRITE_TO_FILE), " ", msg, ": ", emsg, NULL, NULL, 1, TEXT(T_CANCEL), NULL, BTN_ENTER | BTN_ESC); + } + return -1; + } +@@ -758,7 +758,7 @@ + if (t) { + unsigned char *tt = stracpy(down->url); + if (strchr(tt, POST_CHAR)) *strchr(tt, POST_CHAR) = 0; +- msg_box(get_download_ses(down)->term, getml(tt, NULL), TEXT(T_DOWNLOAD_ERROR), AL_CENTER | AL_EXTD_TEXT, TEXT(T_ERROR_DOWNLOADING), " ", tt, ":\n\n", t, NULL, get_download_ses(down), 1, TEXT(T_CANCEL), NULL, B_ENTER | B_ESC/*, TEXT(T_RETRY), NULL, 0 !!! FIXME: retry */); ++ msg_box(get_download_ses(down)->term, getml(tt, NULL), TEXT(T_DOWNLOAD_ERROR), AL_CENTER | AL_EXTD_TEXT, TEXT(T_ERROR_DOWNLOADING), " ", tt, ":\n\n", t, NULL, get_download_ses(down), 1, TEXT(T_CANCEL), NULL, BTN_ENTER | BTN_ESC/*, TEXT(T_RETRY), NULL, 0 !!! FIXME: retry */); + } + } else { + if (down->prog) { +@@ -835,7 +835,7 @@ + if (!ses) goto x; + msg = stracpy(file); + msge = stracpy(strerror(errno)); +- msg_box(ses->term, getml(msg, msge, NULL), TEXT(T_DOWNLOAD_ERROR), AL_CENTER | AL_EXTD_TEXT, TEXT(T_COULD_NOT_CREATE_FILE), " ", msg, ": ", msge, NULL, NULL, 1, TEXT(T_CANCEL), NULL, B_ENTER | B_ESC); ++ msg_box(ses->term, getml(msg, msge, NULL), TEXT(T_DOWNLOAD_ERROR), AL_CENTER | AL_EXTD_TEXT, TEXT(T_COULD_NOT_CREATE_FILE), " ", msg, ": ", msge, NULL, NULL, 1, TEXT(T_CANCEL), NULL, BTN_ENTER | BTN_ESC); + goto x; + } + set_bin(h); +@@ -1580,7 +1580,7 @@ + } + u = stracpy(ce->url); + if ((uu = strchr(u, POST_CHAR))) *uu = 0; +- msg_box(term, getml(u, NULL), TEXT(T_DECOMPRESSION_ERROR), AL_CENTER | AL_EXTD_TEXT, TEXT(T_ERROR_DECOMPRESSING_), u, TEXT(T__wITH_), lib, ": ", msg, NULL, NULL, 1, TEXT(T_CANCEL), NULL, B_ENTER | B_ESC); ++ msg_box(term, getml(u, NULL), TEXT(T_DECOMPRESSION_ERROR), AL_CENTER | AL_EXTD_TEXT, TEXT(T_ERROR_DECOMPRESSING_), u, TEXT(T__wITH_), lib, ": ", msg, NULL, NULL, 1, TEXT(T_CANCEL), NULL, BTN_ENTER | BTN_ESC); + } + #endif + +@@ -2230,7 +2230,7 @@ + mem_free(file); + goto new_name; + } +- msg_box(ses->term, NULL, TEXT(T_DOWNLOAD_ERROR), AL_CENTER | AL_EXTD_TEXT, TEXT(T_COULD_NOT_CREATE_TEMPORARY_FILE), NULL, NULL, 1, TEXT(T_CANCEL), NULL, B_ENTER | B_ESC); ++ msg_box(ses->term, NULL, TEXT(T_DOWNLOAD_ERROR), AL_CENTER | AL_EXTD_TEXT, TEXT(T_COULD_NOT_CREATE_TEMPORARY_FILE), NULL, NULL, 1, TEXT(T_CANCEL), NULL, BTN_ENTER | BTN_ESC); + } + if (ses->tq_prog) mem_free(file); + tp_cancel(ses); +@@ -2452,7 +2452,7 @@ + i++; + d->items[i].type = D_BUTTON; + d->items[i].fn = prog_sel_cancel; +- d->items[i].gid = B_ESC; ++ d->items[i].gid = BTN_ESC; + d->items[i].text = TEXT(T_CANCEL); + d->items[i+1].type = D_END; + do_dialog(ses->term, d, ml); +@@ -2478,12 +2478,12 @@ + } + m1 = stracpy(ct); + if (!a) { +- if (!anonymous) msg_box(ses->term, getml(m1, NULL), TEXT(T_UNKNOWN_TYPE), AL_CENTER | AL_EXTD_TEXT, TEXT(T_CONTEN_TYPE_IS), " ", m1, ".\n", TEXT(T_DO_YOU_WANT_TO_SAVE_OR_DISLPAY_THIS_FILE), NULL, ses, 3, TEXT(T_SAVE), tp_save, B_ENTER, TEXT(T_DISPLAY), tp_display, 0, TEXT(T_CANCEL), tp_cancel, B_ESC); +- else msg_box(ses->term, getml(m1, NULL), TEXT(T_UNKNOWN_TYPE), AL_CENTER | AL_EXTD_TEXT, TEXT(T_CONTEN_TYPE_IS), " ", m1, ".\n", TEXT(T_DO_YOU_WANT_TO_SAVE_OR_DISLPAY_THIS_FILE), NULL, ses, 2, TEXT(T_DISPLAY), tp_display, B_ENTER, TEXT(T_CANCEL), tp_cancel, B_ESC); ++ if (!anonymous) msg_box(ses->term, getml(m1, NULL), TEXT(T_UNKNOWN_TYPE), AL_CENTER | AL_EXTD_TEXT, TEXT(T_CONTEN_TYPE_IS), " ", m1, ".\n", TEXT(T_DO_YOU_WANT_TO_SAVE_OR_DISLPAY_THIS_FILE), NULL, ses, 3, TEXT(T_SAVE), tp_save, BTN_ENTER, TEXT(T_DISPLAY), tp_display, 0, TEXT(T_CANCEL), tp_cancel, BTN_ESC); ++ else msg_box(ses->term, getml(m1, NULL), TEXT(T_UNKNOWN_TYPE), AL_CENTER | AL_EXTD_TEXT, TEXT(T_CONTEN_TYPE_IS), " ", m1, ".\n", TEXT(T_DO_YOU_WANT_TO_SAVE_OR_DISLPAY_THIS_FILE), NULL, ses, 2, TEXT(T_DISPLAY), tp_display, BTN_ENTER, TEXT(T_CANCEL), tp_cancel, BTN_ESC); + } else { + m2 = stracpy(a[0].label ? a[0].label : (unsigned char *)""); +- if (!anonymous) msg_box(ses->term, getml(m1, m2, NULL), TEXT(T_WHAT_TO_DO), AL_CENTER | AL_EXTD_TEXT, TEXT(T_CONTEN_TYPE_IS), " ", m1, ".\n", TEXT(T_DO_YOU_WANT_TO_OPEN_FILE_WITH), " ", m2, ", ", TEXT(T_SAVE_IT_OR_DISPLAY_IT), NULL, ses, 4, TEXT(T_OPEN), tp_open, B_ENTER, TEXT(T_SAVE), tp_save, 0, TEXT(T_DISPLAY), tp_display, 0, TEXT(T_CANCEL), tp_cancel, B_ESC); +- else msg_box(ses->term, getml(m1, m2, NULL), TEXT(T_WHAT_TO_DO), AL_CENTER | AL_EXTD_TEXT, TEXT(T_CONTEN_TYPE_IS), " ", m1, ".\n", TEXT(T_DO_YOU_WANT_TO_OPEN_FILE_WITH), " ", m2, ", ", TEXT(T_SAVE_IT_OR_DISPLAY_IT), NULL, ses, 3, TEXT(T_OPEN), tp_open, B_ENTER, TEXT(T_DISPLAY), tp_display, 0, TEXT(T_CANCEL), tp_cancel, B_ESC); ++ if (!anonymous) msg_box(ses->term, getml(m1, m2, NULL), TEXT(T_WHAT_TO_DO), AL_CENTER | AL_EXTD_TEXT, TEXT(T_CONTEN_TYPE_IS), " ", m1, ".\n", TEXT(T_DO_YOU_WANT_TO_OPEN_FILE_WITH), " ", m2, ", ", TEXT(T_SAVE_IT_OR_DISPLAY_IT), NULL, ses, 4, TEXT(T_OPEN), tp_open, BTN_ENTER, TEXT(T_SAVE), tp_save, 0, TEXT(T_DISPLAY), tp_display, 0, TEXT(T_CANCEL), tp_cancel, BTN_ESC); ++ else msg_box(ses->term, getml(m1, m2, NULL), TEXT(T_WHAT_TO_DO), AL_CENTER | AL_EXTD_TEXT, TEXT(T_CONTEN_TYPE_IS), " ", m1, ".\n", TEXT(T_DO_YOU_WANT_TO_OPEN_FILE_WITH), " ", m2, ", ", TEXT(T_SAVE_IT_OR_DISPLAY_IT), NULL, ses, 3, TEXT(T_OPEN), tp_open, BTN_ENTER, TEXT(T_DISPLAY), tp_display, 0, TEXT(T_CANCEL), tp_cancel, BTN_ESC); + } + if (n)mem_free(a); + if (ct)mem_free(ct); +@@ -2579,7 +2579,7 @@ + ses_destroy_defered_jump(ses); + if ((fn = get_external_protocol_function(url))) { + if (proxies.only_proxies && url_bypasses_socks(url)) { +- msg_box(ses->term, NULL, TEXT(T_ERROR), AL_CENTER, TEXT(T_NO_PROXY), NULL, 1, TEXT(T_CANCEL), NULL, B_ENTER | B_ESC); ++ msg_box(ses->term, NULL, TEXT(T_ERROR), AL_CENTER, TEXT(T_NO_PROXY), NULL, 1, TEXT(T_CANCEL), NULL, BTN_ENTER | BTN_ESC); + return; + } + fn(ses, url); +@@ -2751,7 +2751,7 @@ + add_to_list(sessions, ses); + if (first_use) { + first_use = 0; +- msg_box(term, NULL, TEXT(T_WELCOME), AL_CENTER | AL_EXTD_TEXT, TEXT(T_WELCOME_TO_LINKS), "\n\n", TEXT(T_BASIC_HELP), NULL, NULL, 1, TEXT(T_OK), NULL, B_ENTER | B_ESC); ++ msg_box(term, NULL, TEXT(T_WELCOME), AL_CENTER | AL_EXTD_TEXT, TEXT(T_WELCOME_TO_LINKS), "\n\n", TEXT(T_BASIC_HELP), NULL, NULL, 1, TEXT(T_OK), NULL, BTN_ENTER | BTN_ESC); + } + return ses; + } +diff -urN links-2.1pre33.org/svgalib.c links-2.1pre33/svgalib.c +--- links-2.1pre33.org/svgalib.c Sun Oct 28 02:06:25 2007 ++++ links-2.1pre33/svgalib.c Sat May 3 18:30:48 2008 +@@ -1892,80 +1892,80 @@ + /* Test movement without buttons */ + if (!(mouse_buttons & BUTTON_MASK) && moved) { + mouse_aggregate_flag=1; +- mouse_aggregate_action=B_MOVE; ++ mouse_aggregate_action=BTN_MOVE; + } + + /* Test presses */ + if ((button&MOUSE_LEFTBUTTON)&&!(mouse_buttons&MOUSE_LEFTBUTTON)){ + mouse_aggregate_flush(); +- if (mh) mh(cd,mouse_x, mouse_y,B_LEFT|B_DOWN); ++ if (mh) mh(cd,mouse_x, mouse_y,BTN_LEFT|BTN_DOWN); + } + if ((button&MOUSE_MIDDLEBUTTON)&&!(mouse_buttons&MOUSE_MIDDLEBUTTON)){ + mouse_aggregate_flush(); +- if (mh) mh(cd,mouse_x, mouse_y,B_MIDDLE|B_DOWN); ++ if (mh) mh(cd,mouse_x, mouse_y,BTN_MIDDLE|BTN_DOWN); + } + if ((button&MOUSE_RIGHTBUTTON)&&!(mouse_buttons&MOUSE_RIGHTBUTTON)){ + mouse_aggregate_flush(); +- if (mh) mh(cd,mouse_x, mouse_y,B_RIGHT|B_DOWN); ++ if (mh) mh(cd,mouse_x, mouse_y,BTN_RIGHT|BTN_DOWN); + } + if ((button&MOUSE_FOURTHBUTTON)&&!(mouse_buttons&MOUSE_FOURTHBUTTON)){ + mouse_aggregate_flush(); +- if (mh) mh(cd,mouse_x, mouse_y,B_RIGHT|B_FOURTH); ++ if (mh) mh(cd,mouse_x, mouse_y,BTN_RIGHT|BTN_FOURTH); + } + if ((button&MOUSE_FIFTHBUTTON)&&!(mouse_buttons&MOUSE_FIFTHBUTTON)){ + mouse_aggregate_flush(); +- if (mh) mh(cd,mouse_x, mouse_y,B_RIGHT|B_FIFTH); ++ if (mh) mh(cd,mouse_x, mouse_y,BTN_RIGHT|BTN_FIFTH); + } + if ((button&MOUSE_SIXTHBUTTON)&&!(mouse_buttons&MOUSE_SIXTHBUTTON)){ + mouse_aggregate_flush(); +- /*if (mh) mh(cd,mouse_x, mouse_y,B_RIGHT|B_SIXTH);*/ ++ /*if (mh) mh(cd,mouse_x, mouse_y,BTN_RIGHT|BTN_SIXTH);*/ + switch_virtual_device(VD_NEXT); + } + + /* Test releases */ + if (!(button&MOUSE_LEFTBUTTON)&&(mouse_buttons&MOUSE_LEFTBUTTON)){ + mouse_aggregate_flush(); +- if (mh) mh(cd,mouse_x, mouse_y,B_LEFT|B_UP); ++ if (mh) mh(cd,mouse_x, mouse_y,BTN_LEFT|BTN_UP); + } + if (!(button&MOUSE_MIDDLEBUTTON)&&(mouse_buttons&MOUSE_MIDDLEBUTTON)){ + mouse_aggregate_flush(); +- if (mh) mh(cd,mouse_x, mouse_y,B_MIDDLE|B_UP); ++ if (mh) mh(cd,mouse_x, mouse_y,BTN_MIDDLE|BTN_UP); + } + if (!(button&MOUSE_RIGHTBUTTON)&&(mouse_buttons&MOUSE_RIGHTBUTTON)){ + mouse_aggregate_flush(); +- if (mh) mh(cd,mouse_x, mouse_y,B_RIGHT|B_UP); ++ if (mh) mh(cd,mouse_x, mouse_y,BTN_RIGHT|BTN_UP); + } + if (!(button&MOUSE_FOURTHBUTTON)&&(mouse_buttons&MOUSE_FOURTHBUTTON)){ + mouse_aggregate_flush(); +- if (mh) mh(cd,mouse_x, mouse_y,B_FOURTH|B_UP); ++ if (mh) mh(cd,mouse_x, mouse_y,BTN_FOURTH|BTN_UP); + } + if (!(button&MOUSE_FIFTHBUTTON)&&(mouse_buttons&MOUSE_FIFTHBUTTON)){ + mouse_aggregate_flush(); +- if (mh) mh(cd,mouse_x, mouse_y,B_FIFTH|B_UP); ++ if (mh) mh(cd,mouse_x, mouse_y,BTN_FIFTH|BTN_UP); + } + if (!(button&MOUSE_SIXTHBUTTON)&&(mouse_buttons&MOUSE_SIXTHBUTTON)){ + mouse_aggregate_flush(); +- /*if (mh) mh(cd,mouse_x, mouse_y,B_SIXTH|B_UP);*/ ++ /*if (mh) mh(cd,mouse_x, mouse_y,BTN_SIXTH|BTN_UP);*/ + } + +- if (drx < 0 && mh) mh(cd, mouse_x, mouse_y, B_MOVE | B_WHEELUP); +- if (drx > 0 && mh) mh(cd, mouse_x, mouse_y, B_MOVE | B_WHEELDOWN); ++ if (drx < 0 && mh) mh(cd, mouse_x, mouse_y, BTN_MOVE | BTN_WHEELUP); ++ if (drx > 0 && mh) mh(cd, mouse_x, mouse_y, BTN_MOVE | BTN_WHEELDOWN); + +- if (dry < 0 && mh) mh(cd, mouse_x, mouse_y, B_MOVE | B_WHEELLEFT); +- if (dry > 0 && mh) mh(cd, mouse_x, mouse_y, B_MOVE | B_WHEELRIGHT); ++ if (dry < 0 && mh) mh(cd, mouse_x, mouse_y, BTN_MOVE | BTN_WHEELLEFT); ++ if (dry > 0 && mh) mh(cd, mouse_x, mouse_y, BTN_MOVE | BTN_WHEELRIGHT); + + /* Test drag */ + if (! ((button^mouse_buttons) & BUTTON_MASK ) && moved && (button & + BUTTON_MASK)){ + mouse_aggregate_flag=1; + mouse_aggregate_action=( +- button&MOUSE_LEFTBUTTON?B_LEFT: +- button&MOUSE_RIGHTBUTTON?B_RIGHT: +- button&MOUSE_MIDDLEBUTTON?B_MIDDLE: +- button&MOUSE_FOURTHBUTTON?B_FOURTH: +- button&MOUSE_FIFTHBUTTON?B_FIFTH: +- /*button&MOUSE_SIXTHBUTTON?B_SIXTH:*/ +- 0) | B_DRAG; ++ button&MOUSE_LEFTBUTTON?BTN_LEFT: ++ button&MOUSE_RIGHTBUTTON?BTN_RIGHT: ++ button&MOUSE_MIDDLEBUTTON?BTN_MIDDLE: ++ button&MOUSE_FOURTHBUTTON?BTN_FOURTH: ++ button&MOUSE_FIFTHBUTTON?BTN_FIFTH: ++ /*button&MOUSE_SIXTHBUTTON?BTN_SIXTH:*/ ++ 0) | BTN_DRAG; + } + mouse_buttons=button; + } +diff -urN links-2.1pre33.org/types.c links-2.1pre33/types.c +--- links-2.1pre33.org/types.c Tue Dec 11 19:45:39 2007 ++++ links-2.1pre33/types.c Sat May 3 18:30:50 2008 +@@ -350,11 +350,11 @@ + d->items[p].data = (unsigned char *)&new->accept_ftp; + d->items[p++].dlen = sizeof(int); + d->items[p].type = D_BUTTON; +- d->items[p].gid = B_ENTER; ++ d->items[p].gid = BTN_ENTER; + d->items[p].fn = ok_dialog; + d->items[p++].text = TEXT(T_OK); + d->items[p].type = D_BUTTON; +- d->items[p].gid = B_ESC; ++ d->items[p].gid = BTN_ESC; + d->items[p].text = TEXT(T_CANCEL); + d->items[p++].fn = cancel_dialog; + d->items[p++].type = D_END; +@@ -668,11 +668,11 @@ + d->items[1].data = ct; + d->items[1].fn = check_nonempty; + d->items[2].type = D_BUTTON; +- d->items[2].gid = B_ENTER; ++ d->items[2].gid = BTN_ENTER; + d->items[2].fn = ok_dialog; + d->items[2].text = TEXT(T_OK); + d->items[3].type = D_BUTTON; +- d->items[3].gid = B_ESC; ++ d->items[3].gid = BTN_ESC; + d->items[3].text = TEXT(T_CANCEL); + d->items[3].fn = cancel_dialog; + d->items[4].type = D_END; +diff -urN links-2.1pre33.org/view.c links-2.1pre33/view.c +--- links-2.1pre33.org/view.c Mon Dec 24 23:33:47 2007 ++++ links-2.1pre33/view.c Sat May 3 18:30:51 2008 +@@ -2028,7 +2028,7 @@ + *data = NULL; + m1 = stracpy(sv->value); + m2 = stracpy(strerror(errno)); +- msg_box(ses->term, getml(m1, m2, NULL), TEXT(T_ERROR_WHILE_POSTING_FORM), AL_CENTER | AL_EXTD_TEXT, TEXT(T_COULD_NOT_GET_FILE), " ", m1, ": ", m2, NULL, ses, 1, TEXT(T_CANCEL), NULL, B_ENTER | B_ESC); ++ msg_box(ses->term, getml(m1, m2, NULL), TEXT(T_ERROR_WHILE_POSTING_FORM), AL_CENTER | AL_EXTD_TEXT, TEXT(T_COULD_NOT_GET_FILE), " ", m1, ": ", m2, NULL, ses, 1, TEXT(T_CANCEL), NULL, BTN_ENTER | BTN_ESC); + } + + void reset_form(struct f_data_c *f, int form_num) +@@ -2878,7 +2878,7 @@ + if (!ses->search_word) { + if (!ses->last_search_word) { + no: +- msg_box(ses->term, NULL, TEXT(T_SEARCH), AL_CENTER, TEXT(T_NO_PREVIOUS_SEARCH), NULL, 1, TEXT(T_CANCEL), NULL, B_ENTER | B_ESC); ++ msg_box(ses->term, NULL, TEXT(T_SEARCH), AL_CENTER, TEXT(T_NO_PREVIOUS_SEARCH), NULL, 1, TEXT(T_CANCEL), NULL, BTN_ENTER | BTN_ESC); + return; + } + ses->search_word = stracpy(ses->last_search_word); +@@ -2910,7 +2910,7 @@ + p -= f->yw; + } + } while ((c += f->yw ? f->yw : 1) < f->f_data->y + f->yw); +- msg_box(ses->term, NULL, TEXT(T_SEARCH), AL_CENTER, TEXT(T_SEARCH_STRING_NOT_FOUND), NULL, 1, TEXT(T_CANCEL), NULL, B_ENTER | B_ESC); ++ msg_box(ses->term, NULL, TEXT(T_SEARCH), AL_CENTER, TEXT(T_SEARCH_STRING_NOT_FOUND), NULL, 1, TEXT(T_CANCEL), NULL, BTN_ENTER | BTN_ESC); + } + + void find_next_back(struct session *ses, struct f_data_c *f, int a) +@@ -3081,12 +3081,12 @@ + x = 1; + fd->vs->current_link = l - fd->f_data->links; + fd->vs->orig_link = fd->vs->current_link; +- if (l->type == L_LINK || l->type == L_BUTTON || l->type == L_CHECKBOX || l->type == L_SELECT) if ((ev->b & BM_ACT) == B_UP) { ++ if (l->type == L_LINK || l->type == L_BUTTON || l->type == L_CHECKBOX || l->type == L_SELECT) if ((ev->b & BM_ACT) == BTN_UP) { + fd->active = 1; + draw_to_window(ses->win, (void (*)(struct terminal *, void *))draw_doc_c, fd); + change_screen_status(ses); + print_screen_status(ses); +- if ((ev->b & BM_BUTT) < B_MIDDLE) x = enter(ses, fd, 0); ++ if ((ev->b & BM_BUTT) < BTN_MIDDLE) x = enter(ses, fd, 0); + else link_menu(ses->term, NULL, ses); + } + +@@ -3481,13 +3481,13 @@ + } + } + if (ev->ev == EV_MOUSE) { +- if (ev->b == (B_DOWN | B_FOURTH)) { ++ if (ev->b == (BTN_DOWN | BTN_FOURTH)) { + go_back(ses); + goto x; + } + #ifdef G + if (ses->locked_link) { +- if ((ev->b & BM_ACT) != B_MOVE) { ++ if ((ev->b & BM_ACT) != BTN_MOVE) { + ses->locked_link = 0; + #ifdef JS + /* process onblur handler of current link */ +@@ -3510,7 +3510,7 @@ + } else return; + } + #endif +- if (ev->y < gf_val(1, G_BFU_FONT_SIZE) && (ev->b & BM_ACT) == B_DOWN) { ++ if (ev->y < gf_val(1, G_BFU_FONT_SIZE) && (ev->b & BM_ACT) == BTN_DOWN) { + #ifdef G + if (F && ev->x < ses->back_size) { + go_back(ses); +@@ -3790,7 +3790,7 @@ + struct f_data_c *f; + if (!(f = current_frame(ses)) || !f->f_data) return; + if ((h = create_download_file(ses, ses->term->cwd, file, 0, 0)) < 0) return; +- if (dump_to_file(f->f_data, h)) msg_box(ses->term, NULL, TEXT(T_SAVE_ERROR), AL_CENTER, TEXT(T_ERROR_WRITING_TO_FILE), NULL, 1, TEXT(T_CANCEL), NULL, B_ENTER | B_ESC); ++ if (dump_to_file(f->f_data, h)) msg_box(ses->term, NULL, TEXT(T_SAVE_ERROR), AL_CENTER, TEXT(T_ERROR_WRITING_TO_FILE), NULL, 1, TEXT(T_CANCEL), NULL, BTN_ENTER | BTN_ESC); + close(h); + } + +@@ -4160,7 +4160,7 @@ + int l = 0; + unsigned char *a; + if (!lo || !frame || !frame->vs || !frame->f_data) { +- msg_box(term, NULL, TEXT(T_INFO), AL_LEFT, TEXT(T_YOU_ARE_NOWHERE), NULL, 1, TEXT(T_OK), NULL, B_ENTER | B_ESC); ++ msg_box(term, NULL, TEXT(T_INFO), AL_LEFT, TEXT(T_YOU_ARE_NOWHERE), NULL, 1, TEXT(T_OK), NULL, BTN_ENTER | BTN_ESC); + return; + } + s = init_str(); +@@ -4226,7 +4226,7 @@ + add_to_str(&s, &l, a); + mem_free(a); + } +- msg_box(term, getml(s, NULL), TEXT(T_INFO), AL_LEFT, s, NULL, 1, TEXT(T_OK), NULL, B_ENTER | B_ESC); ++ msg_box(term, getml(s, NULL), TEXT(T_INFO), AL_LEFT, s, NULL, 1, TEXT(T_OK), NULL, BTN_ENTER | BTN_ESC); + } + + void state_msg(struct session *ses) +@@ -4241,7 +4241,7 @@ + unsigned char *s, *ss; + int len; + if (list_empty(ses->history)) { +- msg_box(ses->term, NULL, TEXT(T_HEADER_INFO), AL_LEFT, TEXT(T_YOU_ARE_NOWHERE), NULL, 1, TEXT(T_OK), NULL, B_ENTER | B_ESC); ++ msg_box(ses->term, NULL, TEXT(T_HEADER_INFO), AL_LEFT, TEXT(T_YOU_ARE_NOWHERE), NULL, 1, TEXT(T_OK), NULL, BTN_ENTER | BTN_ESC); + return; + } + if (!find_in_cache(cur_loc(ses)->url, &ce)) { +@@ -4252,6 +4252,6 @@ + while ((ss = strstr(s, "\r\n"))) memmove(ss, ss + 1, strlen(ss)); + while (*s && s[strlen(s) - 1] == '\n') s[strlen(s) - 1] = 0; + } +- msg_box(ses->term, getml(s, NULL), TEXT(T_HEADER_INFO), AL_LEFT, s, NULL, 1, TEXT(T_OK), NULL, B_ENTER | B_ESC); ++ msg_box(ses->term, getml(s, NULL), TEXT(T_HEADER_INFO), AL_LEFT, s, NULL, 1, TEXT(T_OK), NULL, BTN_ENTER | BTN_ESC); + } + } +diff -urN links-2.1pre33.org/view_gr.c links-2.1pre33/view_gr.c +--- links-2.1pre33.org/view_gr.c Mon Dec 24 23:33:47 2007 ++++ links-2.1pre33/view_gr.c Sat May 3 18:30:52 2008 +@@ -826,7 +826,7 @@ + void g_text_mouse(struct f_data_c *fd, struct g_object_text *a, int x, int y, int b) + { + int e; +- g_set_current_link(fd, a, x, y, (b == (B_UP | B_LEFT))); ++ g_set_current_link(fd, a, x, y, (b == (BTN_UP | BTN_LEFT))); + + #ifdef JS + if (fd->vs&&fd->f_data&&fd->vs->current_link>=0&&fd->vs->current_linkf_data->nlinks) +@@ -835,16 +835,16 @@ + + struct link *l=&(fd->f_data->links[fd->vs->current_link]); + +- if (l->js_event&&l->js_event->up_code&&(b&BM_ACT)==B_UP) ++ if (l->js_event&&l->js_event->up_code&&(b&BM_ACT)==BTN_UP) + jsint_execute_code(fd,l->js_event->up_code,strlen(l->js_event->up_code),-1,-1,-1, NULL); + +- if (l->js_event&&l->js_event->down_code&&(b&BM_ACT)==B_DOWN) ++ if (l->js_event&&l->js_event->down_code&&(b&BM_ACT)==BTN_DOWN) + jsint_execute_code(fd,l->js_event->down_code,strlen(l->js_event->down_code),-1,-1,-1, NULL); + + } + #endif + +- if (b == (B_UP | B_LEFT)) { ++ if (b == (BTN_UP | BTN_LEFT)) { + int ix = ismap_x, iy = ismap_y, il = ismap_link; + ismap_x = x; + ismap_y = y; +@@ -861,7 +861,7 @@ + if (e == 2) fd->f_data->locked_on = (struct g_object *)a; + return; + } +- if (b == (B_UP | B_RIGHT)) { ++ if (b == (BTN_UP | BTN_RIGHT)) { + if (fd->vs->current_link != -1) link_menu(fd->ses->term, NULL, fd->ses); + } + } +@@ -1021,17 +1021,17 @@ + if (!fd->f_data) return 0; + switch (ev->ev) { + case EV_MOUSE: +- if ((ev->b & BM_BUTT) == B_WHEELUP) goto up; +- if ((ev->b & BM_BUTT) == B_WHEELDOWN) goto down; +- if ((ev->b & BM_BUTT) == B_WHEELUP1) goto up1; +- if ((ev->b & BM_BUTT) == B_WHEELDOWN1) goto down1; +- if ((ev->b & BM_BUTT) == B_WHEELLEFT) goto left; +- if ((ev->b & BM_BUTT) == B_WHEELRIGHT) goto right; +- if ((ev->b & BM_BUTT) == B_WHEELLEFT1) goto left1; +- if ((ev->b & BM_BUTT) == B_WHEELRIGHT1) goto right1; ++ if ((ev->b & BM_BUTT) == BTN_WHEELUP) goto up; ++ if ((ev->b & BM_BUTT) == BTN_WHEELDOWN) goto down; ++ if ((ev->b & BM_BUTT) == BTN_WHEELUP1) goto up1; ++ if ((ev->b & BM_BUTT) == BTN_WHEELDOWN1) goto down1; ++ if ((ev->b & BM_BUTT) == BTN_WHEELLEFT) goto left; ++ if ((ev->b & BM_BUTT) == BTN_WHEELRIGHT) goto right; ++ if ((ev->b & BM_BUTT) == BTN_WHEELLEFT1) goto left1; ++ if ((ev->b & BM_BUTT) == BTN_WHEELRIGHT1) goto right1; + x = ev->x; + y = ev->y; +- if ((ev->b & BM_ACT) == B_MOVE) ses->scrolling = 0; ++ if ((ev->b & BM_ACT) == BTN_MOVE) ses->scrolling = 0; + if (ses->scrolling == 1) process_sb_move(fd, ses->scrolltype ? ev->x : ev->y); + if (ses->scrolling == 2) { + fd->vs->view_pos = -ev->y + ses->scrolloff; +@@ -1039,31 +1039,31 @@ + fd->vs->orig_view_pos = fd->vs->view_pos; + fd->vs->orig_view_posx = fd->vs->view_posx; + draw_graphical_doc(fd->ses->term, fd, 1); +- if ((ev->b & BM_ACT) == B_UP) { ++ if ((ev->b & BM_ACT) == BTN_UP) { + ses->scrolling = 0; + } + break; + } + if (ses->scrolling) { +- if ((ev->b & BM_ACT) == B_UP) { ++ if ((ev->b & BM_ACT) == BTN_UP) { + ses->scrolling = 0; + } + break; + } + + +- if ((ev->b & BM_ACT) == B_DOWN && fd->f_data->vsb && ev_in_rect(ev, fd->xw - G_SCROLL_BAR_WIDTH, 0, fd->xw, fd->yw - fd->f_data->hsb * G_SCROLL_BAR_WIDTH)) { ++ if ((ev->b & BM_ACT) == BTN_DOWN && fd->f_data->vsb && ev_in_rect(ev, fd->xw - G_SCROLL_BAR_WIDTH, 0, fd->xw, fd->yw - fd->f_data->hsb * G_SCROLL_BAR_WIDTH)) { + process_sb_event(fd, ev->y, 0); + break; + } +- if ((ev->b & BM_ACT) == B_DOWN && fd->f_data->hsb && ev_in_rect(ev, 0, fd->yw - G_SCROLL_BAR_WIDTH, fd->xw - fd->f_data->vsb * G_SCROLL_BAR_WIDTH, fd->yw)) { ++ if ((ev->b & BM_ACT) == BTN_DOWN && fd->f_data->hsb && ev_in_rect(ev, 0, fd->yw - G_SCROLL_BAR_WIDTH, fd->xw - fd->f_data->vsb * G_SCROLL_BAR_WIDTH, fd->yw)) { + process_sb_event(fd, ev->x, 1); + break; + } + if (fd->f_data->vsb && ev_in_rect(ev, fd->xw - G_SCROLL_BAR_WIDTH, 0, fd->xw, fd->yw)) return 0; + if (fd->f_data->hsb && ev_in_rect(ev, 0, fd->yw - G_SCROLL_BAR_WIDTH, fd->xw, fd->yw)) return 0; + +- if ((ev->b & BM_ACT) == B_DOWN && (ev->b & BM_BUTT) == B_MIDDLE) { ++ if ((ev->b & BM_ACT) == BTN_DOWN && (ev->b & BM_BUTT) == BTN_MIDDLE) { + scrll: + ses->scrolltype = ev->x + fd->vs->view_posx; + ses->scrolloff = ev->y + fd->vs->view_pos; +@@ -1076,7 +1076,7 @@ + fd->vs->g_display_link = 0; + if (fd->vs->current_link >= 0 && fd->vs->current_link < fd->f_data->nlinks) redraw_link(fd, fd->vs->current_link); + } +- if (!(ev->b == (B_LEFT | B_UP) && fd->f_data->hlt_len && fd->f_data->start_highlight_x == -1)) { ++ if (!(ev->b == (BTN_LEFT | BTN_UP) && fd->f_data->hlt_len && fd->f_data->start_highlight_x == -1)) { + fd->vs->current_link = -1; + fd->vs->orig_link = fd->vs->current_link; + fd->f_data->root->mouse_event(fd, fd->f_data->root, ev->x + fd->vs->view_posx, ev->y + fd->vs->view_pos, ev->b); +@@ -1086,14 +1086,14 @@ + } + + /* highlight text */ +- if ((ev->b & BM_ACT) == B_DOWN && (ev->b & BM_BUTT) == B_LEFT) { /* start highlighting */ ++ if ((ev->b & BM_ACT) == BTN_DOWN && (ev->b & BM_BUTT) == BTN_LEFT) { /* start highlighting */ + fd->f_data->start_highlight_x = ev->x; + fd->f_data->start_highlight_y = ev->y; + fd->f_data->hlt_len = 0; + fd->f_data->hlt_pos = -1; + return 1; + } +- if (((ev->b & BM_ACT) == B_DRAG || (ev->b & BM_ACT) == B_UP) && (ev->b & BM_BUTT) == B_LEFT) { /* stop highlighting */ ++ if (((ev->b & BM_ACT) == BTN_DRAG || (ev->b & BM_ACT) == BTN_UP) && (ev->b & BM_BUTT) == BTN_LEFT) { /* stop highlighting */ + struct g_object_text *t; + if (fd->f_data->start_highlight_x != -1) { + if (abs(ev->x - fd->f_data->start_highlight_x) < 8 && abs(ev->y - fd->f_data->start_highlight_y) < 8) goto skip_hl; +@@ -1117,7 +1117,7 @@ + g_get_search_data(fd->f_data); + end=t->srch_pos+g_find_text_pos(t, ev->x+fd->vs->view_posx); + fd->f_data->hlt_len=end-fd->f_data->hlt_pos; +- if ((ev->b & BM_ACT) == B_UP || (ev->b & BM_ACT) == B_DRAG) { ++ if ((ev->b & BM_ACT) == BTN_UP || (ev->b & BM_ACT) == BTN_DRAG) { + unsigned char *m = memacpy(fd->f_data->srch_string + fd->f_data->hlt_pos + (fd->f_data->hlt_len > 0 ? 0 : fd->f_data->hlt_len), fd->f_data->hlt_len > 0 ? fd->f_data->hlt_len : -fd->f_data->hlt_len); + if (m) { + unsigned char *p = m; +@@ -1147,7 +1147,7 @@ + } + #endif + +- if ((ev->b & BM_ACT) == B_DOWN && (ev->b & BM_BUTT) == B_RIGHT && fd->vs->current_link == -1) goto scrll; ++ if ((ev->b & BM_ACT) == BTN_DOWN && (ev->b & BM_BUTT) == BTN_RIGHT && fd->vs->current_link == -1) goto scrll; + break; + case EV_KBD: + if (ses->locked_link && fd->vs->current_link >= 0 && fd->vs->current_link < fd->f_data->nlinks && (fd->f_data->links[fd->vs->current_link].type == L_FIELD || fd->f_data->links[fd->vs->current_link].type == L_AREA)) { +@@ -1537,7 +1537,7 @@ + g_get_search_data(f->f_data); + g_get_search(f->f_data, f->ses->search_word); + search_word = f->ses->search_word; +- if (!f->f_data->n_search_positions) msg_box(f->ses->term, NULL, TEXT(T_SEARCH), AL_CENTER, TEXT(T_SEARCH_STRING_NOT_FOUND), NULL, 1, TEXT(T_CANCEL), NULL, B_ENTER | B_ESC); ++ if (!f->f_data->n_search_positions) msg_box(f->ses->term, NULL, TEXT(T_SEARCH), AL_CENTER, TEXT(T_SEARCH_STRING_NOT_FOUND), NULL, 1, TEXT(T_CANCEL), NULL, BTN_ENTER | BTN_ESC); + + highlight_positions = f->f_data->search_positions; + highlight_lengths = f->f_data->search_lengths; +diff -urN links-2.1pre33.org/x.c links-2.1pre33/x.c +--- links-2.1pre33.org/x.c Sun Jul 8 02:04:50 2007 ++++ links-2.1pre33/x.c Sat May 3 18:30:52 2008 +@@ -552,28 +552,28 @@ + #endif + gd=x_find_gd(&(last_event.xmotion.window)); + if (!gd)break; +- a=B_LEFT; +- b=B_MOVE; ++ a=BTN_LEFT; ++ b=BTN_MOVE; + if ((last_event.xmotion.state)&Button1Mask) + { +- a=B_LEFT; +- b=B_DRAG; ++ a=BTN_LEFT; ++ b=BTN_DRAG; + #ifdef X_DEBUG + MESSAGE("left button/drag\n"); + #endif + } + if ((last_event.xmotion.state)&Button2Mask) + { +- a=B_MIDDLE; +- b=B_DRAG; ++ a=BTN_MIDDLE; ++ b=BTN_DRAG; + #ifdef X_DEBUG + MESSAGE("middle button/drag\n"); + #endif + } + if ((last_event.xmotion.state)&Button3Mask) + { +- a=B_RIGHT; +- b=B_DRAG; ++ a=BTN_RIGHT; ++ b=BTN_DRAG; + #ifdef X_DEBUG + MESSAGE("right button/drag\n"); + #endif +@@ -699,15 +699,15 @@ + switch(event.xbutton.button) + { + case 1: +- a=B_LEFT; ++ a=BTN_LEFT; + break; + + case 3: +- a=B_RIGHT; ++ a=BTN_RIGHT; + break; + + case 2: +- a=B_MIDDLE; ++ a=BTN_MIDDLE; + break; + + default: +@@ -716,7 +716,7 @@ + } + x_clip_number(&(event.xmotion.x),gd->size.x1,gd->size.x2); + x_clip_number(&(event.xmotion.y),gd->size.y1,gd->size.y2); +- gd->mouse_handler(gd,event.xbutton.x,event.xbutton.y,a|B_UP); ++ gd->mouse_handler(gd,event.xbutton.x,event.xbutton.y,a|BTN_UP); + r_xx:; + } + break; +@@ -738,31 +738,31 @@ + switch(event.xbutton.button) + { + case 1: +- a=B_LEFT; ++ a=BTN_LEFT; + break; + + case 3: +- a=B_RIGHT; ++ a=BTN_RIGHT; + break; + + case 2: +- a=B_MIDDLE; ++ a=BTN_MIDDLE; + break; + + case 4: +- a=B_WHEELUP; ++ a=BTN_WHEELUP; + break; + + case 5: +- a=B_WHEELDOWN; ++ a=BTN_WHEELDOWN; + break; + + case 6: +- a=B_WHEELLEFT; ++ a=BTN_WHEELLEFT; + break; + + case 7: +- a=B_WHEELRIGHT; ++ a=BTN_WHEELRIGHT; + break; + + default: +@@ -770,7 +770,7 @@ + } + x_clip_number(&(event.xmotion.x),gd->size.x1,gd->size.x2); + x_clip_number(&(event.xmotion.y),gd->size.y1,gd->size.y2); +- gd->mouse_handler(gd,event.xbutton.x,event.xbutton.y,a|(a != B_WHEELDOWN && a != B_WHEELUP && a != B_WHEELLEFT && a != B_WHEELRIGHT ? B_DOWN : B_MOVE)); ++ gd->mouse_handler(gd,event.xbutton.x,event.xbutton.y,a|(a != BTN_WHEELDOWN && a != BTN_WHEELUP && a != BTN_WHEELLEFT && a != BTN_WHEELRIGHT ? BTN_DOWN : BTN_MOVE)); + p_xx:; + } + break; +@@ -839,28 +839,28 @@ + #endif + gd=x_find_gd(&(last_event.xmotion.window)); + if (!gd)goto ret; +- a=B_LEFT; +- b=B_MOVE; ++ a=BTN_LEFT; ++ b=BTN_MOVE; + if ((last_event.xmotion.state)&Button1Mask) + { +- a=B_LEFT; +- b=B_DRAG; ++ a=BTN_LEFT; ++ b=BTN_DRAG; + #ifdef X_DEBUG + MESSAGE("left button/drag\n"); + #endif + } + if ((last_event.xmotion.state)&Button2Mask) + { +- a=B_MIDDLE; +- b=B_DRAG; ++ a=BTN_MIDDLE; ++ b=BTN_DRAG; + #ifdef X_DEBUG + MESSAGE("middle button/drag\n"); + #endif + } + if ((last_event.xmotion.state)&Button3Mask) + { +- a=B_RIGHT; +- b=B_DRAG; ++ a=BTN_RIGHT; ++ b=BTN_DRAG; + #ifdef X_DEBUG + MESSAGE("right button/drag\n"); + #endif diff --git a/www-client/links/patches/links-2.3pre2.patch b/www-client/links/patches/links-2.3pre2.patch new file mode 100644 index 000000000..98c9852ec --- /dev/null +++ b/www-client/links/patches/links-2.3pre2.patch @@ -0,0 +1,3199 @@ +diff -urN links-2.3pre2-orig/Makefile.am links-2.3pre2/Makefile.am +--- links-2.3pre2-orig/Makefile.am 2009-05-17 20:45:41.000000000 +0000 ++++ links-2.3pre2/Makefile.am 2011-05-13 09:05:58.243269632 +0000 +@@ -4,7 +4,7 @@ + + man_MANS=links.1 + +-EXTRA_DIST=atheos.cpp $(man_MANS) BRAILLE_HOWTO KEYS BUGS TODO SITES PATCH-gpm-1.20.0-smooth-cursor PATCH-libpng-1.2.18 mailcap.pl rebuild Links_logo.png Unicode/*.cp Unicode/[!C]* intl/[!C]* graphics/*.c graphics/arrow.png graphics/gen graphics/system_font/*.png graphics/font/century_school-medium-roman-serif-vari/*.png graphics/font/century_school-bold-roman-serif-vari/*.png graphics/font/symbol-medium-roman-sans-vari/*.png graphics/font/courier-medium-roman-serif-mono/*.png graphics/font/japanese-medium-roman-sans-mono/*.png graphics/font/century_school-bold-roman-serif-vari/aliases graphics/font/century_school-medium-roman-serif-vari/aliases graphics/font/symbol-medium-roman-sans-vari/aliases doc/links_cal/*.png doc/links_cal/*.html graphics/Makefile graphics/Fontmap graphics/clip.c graphics/links.xpm graphics/makefont graphics/pdf2html graphics/spacer.png links_16x16_1.xpm links_16x16_2.xpm links_32x32.xpm links.nsi ++EXTRA_DIST=atheos.cpp beosgui.cpp $(man_MANS) BRAILLE_HOWTO KEYS BUGS TODO SITES PATCH-gpm-1.20.0-smooth-cursor PATCH-libpng-1.2.18 mailcap.pl rebuild Links_logo.png Unicode/*.cp Unicode/[!C]* intl/[!C]* graphics/*.c graphics/arrow.png graphics/gen graphics/system_font/*.png graphics/font/century_school-medium-roman-serif-vari/*.png graphics/font/century_school-bold-roman-serif-vari/*.png graphics/font/symbol-medium-roman-sans-vari/*.png graphics/font/courier-medium-roman-serif-mono/*.png graphics/font/japanese-medium-roman-sans-mono/*.png graphics/font/century_school-bold-roman-serif-vari/aliases graphics/font/century_school-medium-roman-serif-vari/aliases graphics/font/symbol-medium-roman-sans-vari/aliases doc/links_cal/*.png doc/links_cal/*.html graphics/Makefile graphics/Fontmap graphics/clip.c graphics/links.xpm graphics/makefont graphics/pdf2html graphics/spacer.png links_16x16_1.xpm links_16x16_2.xpm links_32x32.xpm links.nsi links-beos.rdef + + bin_PROGRAMS=links + +@@ -13,6 +13,11 @@ + else + endif + ++if BEOS_GR ++links_LDADD=beosgui.o -lbe ++else ++endif ++ + links_SOURCES=af_unix.c auth.c beos.c bfu.c block.c bookmarks.c cache.c charsets.c connect.c cookies.c default.c dip.c directfb.c directfb_cursors.h dither.c dns.c drivers.c error.c file.c finger.c font_include.c framebuffer.c ftp.c gif.c html.c html_gr.c html_r.c html_tbl.c http.c https.c img.c imgcache.c jpeg.c jsint.c kbd.c language.c links_icon.c listedit.c lru.c mailto.c main.c memory.c menu.c objreq.c os_dep.c pmshell.c png.c sched.c select.c session.c smb.c svgalib.c terminal.c tiff.c types.c url.c view.c view_gr.c x.c xbm.c links.h cfg.h os_dep.h os_depx.h setup.h codepage.h language.h codepage.inc entity.inc uni_7b.inc language.inc upcase.inc arrow.inc bits.h + + dist-hook: +@@ -31,7 +36,12 @@ + CXXFLAGS=@CXXFLAGS@ + + atheos.o: atheos.cpp +- $(CXX) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c atheos.cpp ++ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -o $@ -c $< ++ ++beosgui.o: beosgui.cpp ++ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -o $@ -c $< ++ ++ + + datadir = $(prefix)/@DATADIRNAME@ + LIBS = @LIBS@ +diff -urN links-2.3pre2-orig/acconfig.h links-2.3pre2/acconfig.h +--- links-2.3pre2-orig/acconfig.h 2009-05-17 20:14:00.000000000 +0000 ++++ links-2.3pre2/acconfig.h 2011-05-13 09:04:15.857210880 +0000 +@@ -119,6 +119,9 @@ + #undef GRDRV_ATHEOS + + /* */ ++#undef GRDRV_BEOS ++ ++/* */ + #undef DONT_INCLUDE_SETJMP + + /* Tiff by Brain */ +diff -urN links-2.3pre2-orig/atheos.cpp links-2.3pre2/atheos.cpp +--- links-2.3pre2-orig/atheos.cpp 2004-10-22 18:11:31.000000000 +0000 ++++ links-2.3pre2/atheos.cpp 2011-05-13 09:04:15.882638848 +0000 +@@ -207,7 +207,7 @@ + win->Unlock(); + ath_lock->Lock(); + win->Lock(); +- if (dev) dev->mouse_handler(dev, last_x = (int)p.x, last_y = (int)p.y, B_DOWN | (b == 2 ? B_RIGHT : b == 3 ? B_MIDDLE : B_LEFT)); ++ if (dev) dev->mouse_handler(dev, last_x = (int)p.x, last_y = (int)p.y, BTN_DOWN | (b == 2 ? BTN_RIGHT : b == 3 ? BTN_MIDDLE : BTN_LEFT)); + ath_lock->Unlock(); + write(wpipe, " ", 1); + } +@@ -217,7 +217,7 @@ + win->Unlock(); + ath_lock->Lock(); + win->Lock(); +- if (dev) dev->mouse_handler(dev, last_x = (int)p.x, last_y = (int)p.y, B_UP | (b == 2 ? B_RIGHT : b == 3 ? B_MIDDLE : B_LEFT)); ++ if (dev) dev->mouse_handler(dev, last_x = (int)p.x, last_y = (int)p.y, BTN_UP | (b == 2 ? BTN_RIGHT : b == 3 ? BTN_MIDDLE : BTN_LEFT)); + ath_lock->Unlock(); + write(wpipe, " ", 1); + } +@@ -227,7 +227,7 @@ + win->Unlock(); + ath_lock->Lock(); + win->Lock(); +- if (dev) dev->mouse_handler(dev, last_x = (int)p.x, last_y = (int)p.y, !b ? B_MOVE : B_DRAG | (b & 1 ? B_LEFT : b & 2 ? B_RIGHT : b & 4 ? B_MIDDLE : B_LEFT)); ++ if (dev) dev->mouse_handler(dev, last_x = (int)p.x, last_y = (int)p.y, !b ? BTN_MOVE : BTN_DRAG | (b & 1 ? BTN_LEFT : b & 2 ? BTN_RIGHT : b & 4 ? BTN_MIDDLE : BTN_LEFT)); + ath_lock->Unlock(); + write(wpipe, " ", 1); + } +@@ -237,8 +237,8 @@ + win->Unlock(); + ath_lock->Lock(); + win->Lock(); +- if (d.y) if (dev) dev->mouse_handler(dev, last_x, last_y, B_MOVE | (d.y > 0 ? B_WHEELDOWN : B_WHEELUP)); +- if (d.x) if (dev) dev->mouse_handler(dev, last_x, last_y, B_MOVE | (d.x < 0 ? B_WHEELLEFT : B_WHEELRIGHT)); ++ if (d.y) if (dev) dev->mouse_handler(dev, last_x, last_y, BTN_MOVE | (d.y > 0 ? BTN_WHEELDOWN : BTN_WHEELUP)); ++ if (d.x) if (dev) dev->mouse_handler(dev, last_x, last_y, BTN_MOVE | (d.x < 0 ? BTN_WHEELLEFT : BTN_WHEELRIGHT)); + ath_lock->Unlock(); + write(wpipe, " ", 1); + } +diff -urN links-2.3pre2-orig/beos.c links-2.3pre2/beos.c +--- links-2.3pre2-orig/beos.c 2006-09-11 01:47:20.000000000 +0000 ++++ links-2.3pre2/beos.c 2011-05-13 09:32:23.000000000 +0000 +@@ -3,7 +3,7 @@ + * This file is a part of the Links program, released under GPL + */ + +-#ifdef __BEOS__ ++#if defined __BEOS__ || defined __HAIKU__ + + #include + #include +@@ -11,8 +11,9 @@ + #include + #include + #include ++#include + #include +-#include ++#include + + #define SHS 128 + +@@ -20,6 +21,42 @@ + #define MAXINT 0x7fffffff + #endif + ++extern int ggr; ++ ++#ifdef __cplusplus ++extern "C" { ++int get_input_handle(); ++void unblock_stdin(); ++void block_stdin(); ++} ++#endif ++ ++void maybe_force_gr(void) ++{ ++ struct stat stn, stin, stout; ++ /* ++ * if stdin and out are /dev/null it's likely ++ * we have been started from the gui... ++ */ ++ if (lstat("/dev/null", &stn) < 0) ++ return; ++ if (fstat(0, &stin) < 0) ++ return; ++ if (fstat(1, &stout) < 0) ++ return; ++ if (stin.st_dev != stn.st_dev) ++ return; ++ if (stout.st_dev != stn.st_dev) ++ return; ++ if (stin.st_ino != stn.st_ino) ++ return; ++ if (stout.st_ino != stn.st_ino) ++ return; ++ ggr = 1; ++} ++ ++#if IPPROTO_TCP != 6 ++ + int be_read(int s, void *ptr, int len) + { + if (s >= SHS) return recv(s - SHS, ptr, len, 0); +@@ -90,6 +127,10 @@ + + #define PIPE_RETRIES 10 + ++#ifndef PF_INET ++#define PF_INET AF_INET ++#endif ++ + int be_pipe(int *fd) + { + int s1, s2, s3, l; +@@ -250,4 +291,21 @@ + return h = ohpipe[1]; + }*/ + ++#else /* IPPROTO_TCP != 6 */ ++ ++void block_stdin() ++{ ++} ++ ++void unblock_stdin() ++{ ++} ++ ++int get_input_handle() ++{ ++ return 0; ++} ++ ++#endif ++ + #endif +diff -urN links-2.3pre2-orig/beosgui.cpp links-2.3pre2/beosgui.cpp +--- links-2.3pre2-orig/beosgui.cpp 1970-01-01 00:00:00.000000000 +0000 ++++ links-2.3pre2/beosgui.cpp 2011-05-13 09:04:15.932446208 +0000 +@@ -0,0 +1,884 @@ ++/* beos.c ++ * (c) 2007 François Revol ++ * This file is a part of the Links program, released under GPL ++ */ ++ ++#if defined __BEOS__ || defined __HAIKU__ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++/* ++ * GUI code ++ */ ++ ++/* ++ * TODO: ++ * - BeOS doesn't handle BView::DrawBitmap() with RGB24, and links doesn't seem to handle RGB32, ++ * so the colorspace is forced into 16bpp for now. ++ * - more paste handling ? ++ * - more DnD (maybe check if in menu or not and prepend "g" ?) ++ * - handle DnD of Net+ bookmarks ++ */ ++ ++#include "cfg.h" ++ ++#ifdef GRDRV_BEOS ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++extern "C" { ++#include "links.h" ++} ++ ++//#define DBG(l...) fprintf(stderr, l); ++#define DBG(l...) {} ++ ++/* ++#ifdef debug ++#undef debug ++#endif ++#define debug(x) ++#define fprintf(x, y) ++*/ ++ ++extern struct graphics_driver beos_driver; ++ ++class LinksApplication : public BApplication { ++ public: ++ LinksApplication():BApplication("application/x-vnd.links"){} ++ virtual void RefsReceived(BMessage *message); ++ virtual bool QuitRequested(); ++}; ++ ++class LinksView; ++ ++class LinksWindow : public BWindow { ++ public: ++ LinksWindow(BRect r); ++ ~LinksWindow(); ++ virtual void FrameResized(float width, float height); ++ virtual bool QuitRequested(); ++ int resized; ++ LinksView *view; ++}; ++ ++class LinksView : public BView { ++ public: ++ LinksView(LinksWindow *w); ++ ~LinksView(); ++ virtual void Draw(BRect r); ++ virtual void MouseDown(BPoint p); ++ virtual void MouseUp(BPoint p); ++ virtual void MouseMoved(BPoint p, uint32 transit, const BMessage *dragmsg); ++ virtual void KeyDown(const char *s, int32 numBytes); ++ virtual void MessageReceived(BMessage *msg); ++ LinksWindow *win; ++ struct graphics_device *dev; ++ void d_flush(); ++ int flushing; ++ int last_x, last_y; ++}; ++ ++#define lv(dev) ((LinksView *)(dev)->driver_data) ++ ++#define lock_dev(dev) do { if (!lv(dev)->win->Lock()) return; } while (0) ++#define lock_dev0(dev) do { if (!lv(dev)->win->Lock()) return 0; } while (0) ++#define unlock_dev(dev) do { lv(dev)->win->Unlock(); } while (0) ++ ++void be_get_size(struct graphics_device *dev); ++ ++#define detach_message(dev) \ ++ BMessage *current = Looper()->DetachCurrentMessage(); \ ++ if (current) { \ ++ current->AddPointer("linksdev", dev); \ ++ } ++ ++#define pipe_message(dev) \ ++ if (current) { \ ++ write(wpipe, ¤t, sizeof(current)); \ ++ } ++ ++#define detach_and_pipe_message(dev) do { \ ++ BMessage *current = Looper()->DetachCurrentMessage(); \ ++ if (current) { \ ++ current->AddPointer("linksdev", dev); \ ++ write(wpipe, ¤t, sizeof(current)); \ ++ } \ ++} while (0) ++ ++LinksApplication *be_links_app; ++BLocker *be_lock = NULL; ++ ++int msg_pipe[2]; ++ ++thread_id be_app_thread_id; ++ ++#define rpipe (msg_pipe[0]) ++#define wpipe (msg_pipe[1]) ++ ++#define small_color (sizeof(rgb_color) <= sizeof(long)) ++#define get_color32(c, rgb) rgb_color c((rgb_color){(rgb >> 16) & 255, (rgb >> 8) & 255, rgb & 255, 255}) ++ ++color_space be_cs_desktop, be_cs_bmp; ++ ++int be_x_size, be_y_size; ++ ++int be_win_x_size, be_win_y_size; ++int be_win_x_pos, be_win_y_pos; ++ ++static BMessage *initial_refs_msg; ++ ++void LinksApplication::RefsReceived(BMessage *message) ++{ ++ entry_ref ref; ++ //if (!IsLaunching()) ++ // return; ++ BMessenger msgr(WindowAt(0)); ++ BMessage *m = new BMessage(*message); ++ m->AddSpecifier("View", (long)0); ++ //m->what = B_SIMPLE_DATA; ++ if (msgr.IsValid()) { ++ msgr.SendMessage(m); ++ } else ++ initial_refs_msg = m; ++} ++ ++bool LinksApplication::QuitRequested() ++{ ++ BApplication::QuitRequested(); ++ //printf("qc: %ld\n", CountWindows()); ++ return true; ++} ++ ++LinksWindow::LinksWindow(BRect r):BWindow(r, "Links", B_DOCUMENT_WINDOW, 0) ++{ ++ DBG("LINKSWINDOW\n"); ++ resized = 0; ++ view = NULL; ++} ++ ++LinksWindow::~LinksWindow() ++{ ++ view = NULL; ++ DBG("~LINKSWINDOW\n"); ++} ++ ++void LinksWindow::FrameResized(float width, float height) ++{ ++ resized = 1; ++} ++ ++bool LinksWindow::QuitRequested() ++{ ++ detach_and_pipe_message(view->dev); ++ return false; ++} ++ ++void do_flush(void *p_dev) ++{ ++ struct graphics_device *dev = (struct graphics_device *)p_dev; ++ LinksView *v = lv(dev); ++ v->win->Lock(); ++ v->win->Flush(); ++ v->win->Unlock(); ++ v->flushing = 0; ++} ++ ++LinksView::LinksView(LinksWindow *w):BView(w->Bounds(), "Links", B_FOLLOW_ALL, B_WILL_DRAW | B_FULL_UPDATE_ON_RESIZE | B_NAVIGABLE) ++{ ++ DBG("LINKSVIEW\n"); ++ (win = w)->AddChild(this); ++ SetViewColor(B_TRANSPARENT_32_BIT); ++ MakeFocus(); ++ w->view = this; ++ flushing = 0; ++ last_x = last_y = 0; ++} ++ ++LinksView::~LinksView() ++{ ++ win->view = NULL; ++ DBG("~LINKSVIEW\n"); ++} ++ ++void LinksView::d_flush() ++{ ++ if (flushing) return; ++ register_bottom_half(do_flush, this->dev); ++ flushing = 1; ++} ++ ++#undef select ++ ++int be_loop_select(int n, fd_set *r, fd_set *w, fd_set *e, struct timeval *t) ++{ ++ int v; ++ v = select(n, r, w, e, t); ++ check_bottom_halves(); ++ return v; ++} ++ ++void be_paste_string(struct graphics_device *dev, const char *str) ++{ ++ unsigned char *s = (unsigned char *)str; ++ int c, i; ++ while (s && *s) { ++ GET_UTF_8(s, c); ++ if (dev) dev->keyboard_handler(dev, c, 0); ++ } ++} ++ ++void be_get_event(void *dummy) ++{ ++ BMessage *msg; ++ LinksView *view = NULL; ++ LinksWindow *win = NULL; ++ struct graphics_device *dev; ++ read(rpipe, &msg, sizeof(msg)); ++ DBG("GETE\n"); ++ if (!msg) ++ return; ++ if (msg->FindPointer("linksdev", (void **)&dev) < B_OK) ++ return; ++ if (dev) { ++ view = lv(dev); ++ if (view) ++ win = dynamic_cast(view->Window()); ++ } ++ switch (msg->what) { ++ case B_QUIT_REQUESTED: ++ if (dev) ++ dev->keyboard_handler(dev, KBD_CTRL_C, 0); ++ break; ++ case _UPDATE_: ++ { ++ BRect r; ++ if (msg->FindRect("updateRect", &r) < B_OK) ++ return; ++ struct rect rr; ++ rr.x1 = (int)r.left; ++ rr.x2 = (int)r.right + 1; ++ rr.y1 = (int)r.top; ++ rr.y2 = (int)r.bottom + 1; ++ /*DBG("paint: %d %d %d %d\n", rr.x1, rr.x2, rr.y1, rr.y2);*/ ++ if (dev) { ++ if (!win->resized) dev->redraw_handler(dev, &rr); ++ else { ++ be_get_size(dev); ++ win->resized = 0; ++ dev->resize_handler(dev); ++ } ++ } ++ check_bottom_halves(); ++ } ++ break; ++ case B_MOUSE_DOWN: ++ { ++ BPoint where; ++ int32 buttons; ++ int btn = BTN_LEFT; ++ if (msg->FindInt32("buttons", &buttons) != B_OK) ++ return; ++ if (msg->FindPoint("where", &where) != B_OK) ++ return; ++ if (buttons & B_PRIMARY_MOUSE_BUTTON) ++ btn = BTN_LEFT; ++ else if (buttons & B_SECONDARY_MOUSE_BUTTON) ++ btn = BTN_RIGHT; ++ else if (buttons & B_TERTIARY_MOUSE_BUTTON) ++ btn = BTN_MIDDLE; ++ else if (buttons & (B_TERTIARY_MOUSE_BUTTON << 1)) ++ btn = BTN_FOURTH; ++ else if (buttons & (B_TERTIARY_MOUSE_BUTTON << 2)) ++ btn = BTN_FIFTH; ++ else if (buttons & (B_TERTIARY_MOUSE_BUTTON << 3)) ++ btn = BTN_SIXTH; ++ if (dev) dev->mouse_handler(dev, view->last_x = (int)where.x, view->last_y = (int)where.y, BTN_DOWN | btn); ++ } ++ break; ++ case B_MOUSE_UP: ++ { ++ BPoint where; ++ int32 buttons; ++ int btn = BTN_LEFT; ++ if (msg->FindInt32("buttons", &buttons) != B_OK) ++ return; ++ if (msg->FindPoint("where", &where) != B_OK) ++ return; ++ if (buttons & ~B_PRIMARY_MOUSE_BUTTON == 0) ++ btn = BTN_LEFT; ++ else if (buttons & ~B_SECONDARY_MOUSE_BUTTON == 0) ++ btn = BTN_RIGHT; ++ else if (buttons & ~B_TERTIARY_MOUSE_BUTTON == 0) ++ btn = BTN_MIDDLE; ++ else if (buttons & ~(B_TERTIARY_MOUSE_BUTTON << 1) == 0) ++ btn = BTN_FOURTH; ++ else if (buttons & ~(B_TERTIARY_MOUSE_BUTTON << 2) == 0) ++ btn = BTN_FIFTH; ++ else if (buttons & ~(B_TERTIARY_MOUSE_BUTTON << 3) == 0) ++ btn = BTN_SIXTH; ++ if (dev) dev->mouse_handler(dev, view->last_x = (int)where.x, view->last_y = (int)where.y, BTN_UP | btn); ++ } ++ break; ++ case B_MOUSE_MOVED: ++ { ++ BPoint where; ++ int32 buttons; ++ int btn = BTN_LEFT; ++ if (msg->FindInt32("buttons", &buttons) != B_OK) ++ return; ++ if (msg->FindPoint("where", &where) != B_OK) ++ return; ++ if (buttons & B_PRIMARY_MOUSE_BUTTON) ++ btn = BTN_LEFT; ++ else if (buttons & B_SECONDARY_MOUSE_BUTTON) ++ btn = BTN_RIGHT; ++ else if (buttons & B_TERTIARY_MOUSE_BUTTON) ++ btn = BTN_MIDDLE; ++ else if (buttons & (B_TERTIARY_MOUSE_BUTTON << 1)) ++ btn = BTN_FOURTH; ++ else if (buttons & (B_TERTIARY_MOUSE_BUTTON << 2)) ++ btn = BTN_FIFTH; ++ else if (buttons & (B_TERTIARY_MOUSE_BUTTON << 3)) ++ btn = BTN_SIXTH; ++ if (dev) dev->mouse_handler(dev, view->last_x = (int)where.x, view->last_y = (int)where.y, !buttons ? BTN_MOVE : BTN_DRAG | btn); ++ } ++ break; ++ case B_KEY_DOWN: ++ { ++ int32 modifiers; ++ int32 numBytes; ++ const char *bytes; ++ int c; ++ int mods = 0; ++ if (msg->FindInt32("modifiers", &modifiers) != B_OK) ++ return; ++ if (msg->FindString("bytes", &bytes) != B_OK) ++ return; ++ unsigned char buf[4] = { 0, 0, 0, 0 }; ++ unsigned char *ss; ++ if (modifiers & (B_LEFT_CONTROL_KEY | B_RIGHT_CONTROL_KEY | B_LEFT_COMMAND_KEY | B_RIGHT_COMMAND_KEY)) { ++ int32 raw; ++ if (msg->FindInt32("raw_char", &raw) != B_OK) ++ return; ++ buf[0] = (unsigned char)raw; ++ ss = buf; ++ } else ++ ss = (unsigned char *)bytes; ++ ++ GET_UTF_8(ss, c); ++ switch (c) { ++ case B_BACKSPACE: c = KBD_BS; break; ++ case B_ENTER: c = KBD_ENTER; break; ++ case B_SPACE: c = ' '; break; ++ case B_TAB: c = KBD_TAB; break; ++ case B_ESCAPE: c = KBD_ESC; break; ++ case B_LEFT_ARROW: c = KBD_LEFT; break; ++ case B_RIGHT_ARROW: c = KBD_RIGHT; break; ++ case B_UP_ARROW: c = KBD_UP; break; ++ case B_DOWN_ARROW: c = KBD_DOWN; break; ++ case B_INSERT: c = KBD_INS; break; ++ case B_DELETE: c = KBD_DEL; break; ++ case B_HOME: c = KBD_HOME; break; ++ case B_END: c = KBD_END; break; ++ case B_PAGE_UP: c = KBD_PAGE_UP; break; ++ case B_PAGE_DOWN: c = KBD_PAGE_DOWN; break; ++ default: if (c < 32) c = 0; ++ else modifiers &= ~(B_LEFT_SHIFT_KEY|B_RIGHT_SHIFT_KEY); ++ break; ++ } ++ if (modifiers & (B_LEFT_SHIFT_KEY|B_RIGHT_SHIFT_KEY)) ++ mods |= KBD_SHIFT; ++ if (modifiers & (B_LEFT_CONTROL_KEY|B_RIGHT_CONTROL_KEY)) ++ mods |= KBD_CTRL; ++ if (modifiers & (B_LEFT_COMMAND_KEY|B_RIGHT_COMMAND_KEY)) ++ mods |= KBD_ALT; ++ if (c) if (dev) dev->keyboard_handler(dev, c, mods); ++ } ++ break; ++ case B_MOUSE_WHEEL_CHANGED: ++ { ++ float delta_x, delta_y; ++ if (msg->FindFloat("be:wheel_delta_x", &delta_x) != B_OK) ++ delta_x = 0; ++ if (msg->FindFloat("be:wheel_delta_y", &delta_y) != B_OK) ++ delta_y = 0; ++ if (delta_y) if (dev) dev->mouse_handler(dev, view->last_x, view->last_y, BTN_MOVE | (delta_y > 0 ? BTN_WHEELDOWN : BTN_WHEELUP)); ++ if (delta_x) if (dev) dev->mouse_handler(dev, view->last_x, view->last_y, BTN_MOVE | (delta_x < 0 ? BTN_WHEELLEFT : BTN_WHEELRIGHT)); ++ } ++ break; ++ case B_PASTE: ++ if (be_clipboard->Lock()) { ++ BMessage *data = be_clipboard->Data(); ++ if (data) { ++ const char *text_plain; ++ ssize_t len; ++ //data->PrintToStream(); ++ if (data->FindData("text/plain", B_MIME_TYPE, (const void **)&text_plain, &len) == B_OK) { ++ be_paste_string(dev, text_plain); ++ } ++ } ++ be_clipboard->Unlock(); ++ } ++ break; ++ case B_REFS_RECEIVED: ++ if (dev) ++ be_paste_string(dev, "\033\ng"); ++ /* FALLTHROUGH */ ++ case B_SIMPLE_DATA: ++ { ++ /* something got dropped */ ++ entry_ref ref; ++ const char *text_plain; ++ ssize_t len; ++ //msg->PrintToStream(); ++ /* try find a file path to paste */ ++ if (msg->FindRef("refs", &ref) == B_OK) { ++ BPath path(&ref); ++ if (path.InitCheck() == B_OK) { ++ BFile f(path.Path(), B_READ_ONLY); ++ BString url; ++ if (f.InitCheck() == B_OK && f.ReadAttrString("META:url", &url) >= B_OK) { ++ be_paste_string(dev, url.String()); ++ } else ++ be_paste_string(dev, path.Path()); ++ } ++ } else if (msg->FindData("text/plain", B_MIME_TYPE, (const void **)&text_plain, &len) == B_OK) { ++ be_paste_string(dev, text_plain); ++ } ++ } ++ break; ++ default: ++ msg->PrintToStream(); ++ break; ++ } ++ delete msg; ++} ++ ++void be_get_size(struct graphics_device *dev) ++{ ++ BRect r; ++ lock_dev(dev); ++ r = lv(dev)->Bounds(); ++ unlock_dev(dev); ++ dev->size.x1 = dev->size.y1 = 0; ++ dev->size.x2 = (int)r.Width() + 1; ++ dev->size.y2 = (int)r.Height() + 1; ++} ++ ++void LinksView::Draw(BRect r) ++{ ++ detach_message(dev); ++ current->AddRect("updateRect", r); ++ pipe_message(dev); ++} ++ ++ ++void LinksView::MouseDown(BPoint p) ++{ ++ detach_and_pipe_message(dev); ++} ++ ++void LinksView::MouseUp(BPoint p) ++{ ++ detach_and_pipe_message(dev); ++} ++ ++void LinksView::MouseMoved(BPoint p, uint32 transit, const BMessage *dragmsg) ++{ ++ detach_and_pipe_message(dev); ++} ++ ++void LinksView::MessageReceived(BMessage *msg) ++{ ++ switch (msg->what) { ++ case B_REFS_RECEIVED: ++ case B_MOUSE_WHEEL_CHANGED: ++ case B_PASTE: ++ case B_SIMPLE_DATA: ++ detach_and_pipe_message(dev); ++ break; ++ default: ++ BView::MessageReceived(msg); ++ } ++} ++ ++void LinksView::KeyDown(const char *s, int32 numBytes) ++{ ++ detach_and_pipe_message(dev); ++} ++ ++unsigned char *be_get_driver_param(void) ++{ ++ return NULL; ++} ++ ++int32 be_app_thread(void *p) ++{ ++ be_links_app->Lock(); ++ be_links_app->Run(); ++ delete be_links_app; ++ return 0; ++} ++ ++unsigned char *be_init_driver(unsigned char *param, unsigned char *display) ++{ ++ be_links_app = new LinksApplication(); ++ if (!be_links_app) { ++ return stracpy((unsigned char *)"Unable to allocate Application object.\n"); ++ } ++ if (c_pipe(msg_pipe)) { ++ delete be_links_app; ++ return stracpy((unsigned char *)"Could not create pipe.\n"); ++ } ++ fcntl(rpipe, F_SETFL, O_NONBLOCK); ++ fcntl(wpipe, F_SETFL, O_NONBLOCK); ++ set_handlers(rpipe, be_get_event, NULL, NULL, NULL); ++ be_app_thread_id = spawn_thread(be_app_thread, "links_app", B_NORMAL_PRIORITY, NULL); ++ resume_thread(be_app_thread_id); ++ be_links_app->Unlock(); ++ be_cs_desktop = B_NO_COLOR_SPACE; ++ be_x_size = 640; ++ be_y_size = 480; ++ BScreen d; ++ if (d.IsValid()) { ++ be_cs_desktop = d.ColorSpace(); ++ be_x_size = (int)d.Frame().Width() + 1; ++ be_y_size = (int)d.Frame().Height() + 1; ++ } ++ be_win_y_size = be_y_size * 9 / 10; ++ be_win_x_size = be_win_y_size; ++ /* ++ DBG("%d %d\n", be_x_size, be_y_size); ++ DBG("%d %d\n", be_win_x_size, be_win_y_size); ++ */ ++ be_win_y_pos = (be_y_size - be_win_y_size) / 2; ++ be_win_x_pos = be_x_size - be_win_x_size - be_win_y_pos; ++ if (/*be_cs_desktop == B_RGB32 ||*/ be_cs_desktop == B_RGB24 || be_cs_desktop == B_RGB16 || be_cs_desktop == B_RGB15) ++ be_cs_bmp = be_cs_desktop; ++ else if (be_cs_desktop == B_RGB32 || be_cs_desktop == B_RGBA32) be_cs_bmp = B_RGB24; ++ else be_cs_bmp = B_RGB15; ++ be_cs_bmp = B_RGB16; // XXX: DEBUG ++ switch (be_cs_bmp) { ++ case B_RGB24: ++ beos_driver.depth = 0xc3; ++ break; ++ case B_RGB16: ++ beos_driver.depth = 0x82; ++ break; ++ case B_RGB15: ++ beos_driver.depth = 0x7a; ++ break; ++ default: ++ internal((unsigned char *)"unknown depth"); ++ } ++ return NULL; ++} ++ ++void be_shutdown_driver() ++{ ++ status_t ret; ++ //debug((unsigned char *)"D"); ++ close(rpipe); ++ close(wpipe); ++ set_handlers(rpipe, NULL, NULL, NULL, NULL); ++ //debug((unsigned char *)"DD"); ++ be_links_app->PostMessage(B_QUIT_REQUESTED); ++ //debug((unsigned char *)"E"); ++ wait_for_thread(be_app_thread_id, &ret); ++ //debug((unsigned char *)"F"); ++} ++ ++struct graphics_device *be_init_device() ++{ ++ LinksView *view; ++ LinksWindow *win; ++ struct graphics_device *dev = (struct graphics_device *)mem_calloc(sizeof(struct graphics_device)); ++ if (!dev) return NULL; ++ dev->drv = &beos_driver; ++ //debug((unsigned char *)"1"); ++ win = new LinksWindow(BRect(be_win_x_pos, be_win_y_pos, be_win_x_pos + be_win_x_size, be_win_y_pos + be_win_y_size)); ++ //debug((unsigned char *)"2"); ++ if (!win) { ++ mem_free(dev); ++ return NULL; ++ } ++ //debug((unsigned char *)"3"); ++ view = new LinksView(win); ++ if (!view) { ++ delete win; ++ mem_free(dev); ++ return NULL; ++ } ++ view->dev = dev; ++ dev->driver_data = view; ++ be_get_size(dev); ++ memcpy(&dev->clip, &dev->size, sizeof(struct rect)); ++ //debug((unsigned char *)"4"); ++ win->Show(); ++ win->Lock(); ++ view->MakeFocus(); ++ win->Unlock(); ++ //debug((unsigned char *)"5"); ++ if (initial_refs_msg) { ++ BMessenger msgr(win); ++ if (msgr.IsValid()) { ++ msgr.SendMessage(initial_refs_msg); ++ initial_refs_msg = NULL; ++ } ++ } ++ return dev; ++} ++ ++void be_shutdown_device(struct graphics_device *dev) ++{ ++ LinksWindow *win = lv(dev)->win; ++ unregister_bottom_half(do_flush, dev); ++ lv(dev)->dev = NULL; ++ win->PostMessage(B_QUIT_REQUESTED); ++ mem_free(dev); ++} ++ ++void be_set_title(struct graphics_device *dev, unsigned char *title) ++{ ++ LinksWindow *win = lv(dev)->win; ++ lock_dev(dev); ++ win->SetTitle((const char *)title); ++ lv(dev)->d_flush(); ++ unlock_dev(dev); ++} ++ ++/* ++int be_get_filled_bitmap(struct bitmap *bmp, long color) ++{ ++ internal((unsigned char *)"nedopsano"); ++ return 0; ++} ++*/ ++ ++int be_get_empty_bitmap(struct bitmap *bmp) ++{ ++ DBG("bmp\n"); ++//DBG("bmp (%d, %d) cs %08x\n", bmp->x, bmp->y, be_cs_bmp); ++ BRect r(0, 0, bmp->x - 1, bmp->y - 1); ++ BBitmap *b = new BBitmap(r, /*B_RGB32*/be_cs_bmp); ++ if (!b) { ++ bmp->data = NULL; ++DBG("%s: error 1\n", __FUNCTION__); ++ return 0; ++ } ++ if (!b->IsValid()) { ++ bmp->data = NULL; ++ delete b; ++DBG("%s: error 2\n", __FUNCTION__); ++ return 0; ++ } ++ if (b->LockBits() < B_OK) { ++ bmp->data = NULL; ++ delete b; ++DBG("%s: error 3\n", __FUNCTION__); ++ return 0; ++ } ++ bmp->data = b->Bits(); ++ bmp->skip = b->BytesPerRow(); ++ bmp->flags = b; ++//DBG("bmp: data %p, skip %d, flags %p\n", bmp->data, bmp->skip, bmp->flags); ++ return 0; ++} ++ ++void be_register_bitmap(struct bitmap *bmp) ++{ ++ BBitmap *b = (BBitmap *)bmp->flags; ++ b->UnlockBits(); ++} ++ ++void *be_prepare_strip(struct bitmap *bmp, int top, int lines) ++{ ++ DBG("preps\n"); ++ BBitmap *b = (BBitmap *)bmp->flags; ++ if (b->LockBits() < B_OK) ++ return NULL; ++ bmp->data = b->Bits(); ++ bmp->skip = b->BytesPerRow(); ++ return ((char *)bmp->data) + bmp->skip * top; ++} ++ ++void be_commit_strip(struct bitmap *bmp, int top, int lines) ++{ ++ BBitmap *b = (BBitmap *)bmp->flags; ++ b->UnlockBits(); ++} ++ ++void be_unregister_bitmap(struct bitmap *bmp) ++{ ++ DBG("unb\n"); ++ BBitmap *b = (BBitmap *)bmp->flags; ++ delete b; ++} ++ ++void be_draw_bitmap(struct graphics_device *dev, struct bitmap *bmp, int x, int y) ++{ ++ DBG("drawb\n"); ++ BBitmap *b = (BBitmap *)bmp->flags; ++ lock_dev(dev); ++ lv(dev)->DrawBitmap(b, b->Bounds(), BRect(x, y, x + bmp->x - 1, y + bmp->y - 1)); ++ lv(dev)->d_flush(); ++ unlock_dev(dev); ++} ++ ++void be_draw_bitmaps(struct graphics_device *dev, struct bitmap **bmp, int n, int x, int y) ++{ ++ LinksView *lvv = lv(dev); ++ lock_dev(dev); ++ while (n--) { ++ BBitmap *b = (BBitmap *)(*bmp)->flags; ++ lvv->DrawBitmap(b, b->Bounds(), BRect(x, y, x + (*bmp)->x, y + (*bmp)->y)); ++ x += (*bmp)->x; ++ bmp++; ++ } ++ lv(dev)->d_flush(); ++ unlock_dev(dev); ++} ++ ++long be_get_color(int rgb) ++{ ++ if (small_color) { ++ get_color32(c, rgb); ++ return *(long *)(void *)&c; ++ } else return rgb & 0xffffff; ++} ++ ++void be_fill_area(struct graphics_device *dev, int x1, int y1, int x2, int y2, long color) ++{ ++ DBG("fill\n"); ++ if (x1 >= x2 || y1 >= y2) return; ++ lock_dev(dev); ++ if (small_color) ++ lv(dev)->SetHighColor(*(rgb_color *)(void *)&color); ++ else ++ lv(dev)->SetHighColor(get_color32(, color)); ++ lv(dev)->FillRect(BRect(x1, y1, x2 - 1, y2 - 1)); ++ lv(dev)->d_flush(); ++ unlock_dev(dev); ++} ++ ++void be_draw_hline(struct graphics_device *dev, int x1, int y, int x2, long color) ++{ ++ DBG("hline\n"); ++ if (x1 >= x2) return; ++ lock_dev(dev); ++ if (small_color) ++ lv(dev)->SetHighColor(*(rgb_color *)(void *)&color); ++ else ++ lv(dev)->SetHighColor(get_color32(, color)); ++ lv(dev)->StrokeLine(BPoint(x1, y), BPoint(x2 - 1, y)); ++ lv(dev)->d_flush(); ++ unlock_dev(dev); ++} ++ ++void be_draw_vline(struct graphics_device *dev, int x, int y1, int y2, long color) ++{ ++ DBG("vline\n"); ++ if (y1 >= y2) return; ++ lock_dev(dev); ++ if (small_color) ++ lv(dev)->SetHighColor(*(rgb_color *)(void *)&color); ++ else ++ lv(dev)->SetHighColor(get_color32(, color)); ++ lv(dev)->StrokeLine(BPoint(x, y1), BPoint(x, y2 - 1)); ++ lv(dev)->d_flush(); ++ unlock_dev(dev); ++} ++ ++int be_hscroll(struct graphics_device *dev, struct rect_set **ignore, int sc) ++{ ++ DBG("hscroll\n"); ++ if (dev->clip.x1 >= dev->clip.x2 || dev->clip.y1 >= dev->clip.y2) return 0; ++ if (sc <= dev->clip.x1 - dev->clip.x2) return 1; ++ if (sc >= dev->clip.x2 - dev->clip.x1) return 1; ++ lock_dev0(dev); ++ if (sc > 0) lv(dev)->CopyBits(BRect(dev->clip.x1, dev->clip.y1, dev->clip.x2 - sc - 1, dev->clip.y2 - 1), BRect(dev->clip.x1 + sc, dev->clip.y1, dev->clip.x2 - 1, dev->clip.y2 - 1)); ++ else lv(dev)->CopyBits(BRect(dev->clip.x1 - sc, dev->clip.y1, dev->clip.x2 - 1, dev->clip.y2 - 1), BRect(dev->clip.x1, dev->clip.y1, dev->clip.x2 + sc - 1, dev->clip.y2 - 1)); ++ lv(dev)->d_flush(); ++ unlock_dev(dev); ++ return 1; ++} ++ ++int be_vscroll(struct graphics_device *dev, struct rect_set **ignore, int sc) ++{ ++ DBG("vscroll\n"); ++ if (!sc || dev->clip.x1 >= dev->clip.x2 || dev->clip.y1 >= dev->clip.y2) return 0; ++ if (sc <= dev->clip.y1 - dev->clip.y2) return 1; ++ if (sc >= dev->clip.y2 - dev->clip.y1) return 1; ++ lock_dev0(dev); ++ if (sc > 0) lv(dev)->CopyBits(BRect(dev->clip.x1, dev->clip.y1, dev->clip.x2 - 1, dev->clip.y2 - sc - 1), BRect(dev->clip.x1, dev->clip.y1 + sc, dev->clip.x2 - 1, dev->clip.y2 - 1)); ++ else lv(dev)->CopyBits(BRect(dev->clip.x1, dev->clip.y1 - sc, dev->clip.x2 - 1, dev->clip.y2 - 1), BRect(dev->clip.x1, dev->clip.y1, dev->clip.x2 - 1, dev->clip.y2 + sc - 1)); ++ lv(dev)->d_flush(); ++ unlock_dev(dev); ++ return 1; ++} ++ ++void be_set_clip_area(struct graphics_device *dev, struct rect *r) ++{ ++ DBG("setc\n"); ++ memcpy(&dev->clip, r, sizeof(struct rect)); ++ lock_dev(dev); ++ BRegion clip(BRect(r->x1, r->y1, r->x2 - 1, r->y2 - 1)); ++ lv(dev)->ConstrainClippingRegion(&clip); ++ unlock_dev(dev); ++} ++ ++struct graphics_driver beos_driver = { ++ (unsigned char *)"beos", ++ be_init_driver, ++ be_init_device, ++ be_shutdown_device, ++ be_shutdown_driver, ++ be_get_driver_param, ++ be_get_empty_bitmap, ++ /*be_get_filled_bitmap,*/ ++ be_register_bitmap, ++ be_prepare_strip, ++ be_commit_strip, ++ be_unregister_bitmap, ++ be_draw_bitmap, ++ be_draw_bitmaps, ++ be_get_color, ++ be_fill_area, ++ be_draw_hline, ++ be_draw_vline, ++ be_hscroll, ++ be_vscroll, ++ be_set_clip_area, ++ dummy_block, ++ dummy_unblock, ++ be_set_title, ++ NULL, /* exec */ ++ 0, /* depth */ ++ 0, 0, /* size */ ++ 0, /* flags */ ++ 0, /* codepage */ ++ NULL, /* shell */ ++}; ++ ++#endif /* GRDRV_BEOS */ ++ ++#endif +diff -urN links-2.3pre2-orig/bfu.c links-2.3pre2/bfu.c +--- links-2.3pre2-orig/bfu.c 2011-04-19 15:17:48.000000000 +0000 ++++ links-2.3pre2/bfu.c 2011-05-13 09:04:15.983302144 +0000 +@@ -474,7 +474,7 @@ + draw_to_window(win, (void (*)(struct terminal *, void *))gf_val(display_menu_txt, display_menu_gfx), menu); + break; + case EV_MOUSE: +- if ((ev->b & BM_ACT) == B_MOVE) break; ++ if ((ev->b & BM_ACT) == BTN_MOVE) break; + if (ev->x < menu->x || ev->x >= menu->x+menu->xw || ev->y < menu->y || ev->y >= menu->y+menu->yw) { + int f = 1; + for (w1 = win; (void *)w1 != &win->term->windows; w1 = w1->next) { +@@ -498,7 +498,7 @@ + if (ev->x > m1->x && ev->x < m1->x+m1->xw-1 && ev->y > m1->y && ev->y < m1->y+m1->yw-1) goto del; + f--; + } +- if ((ev->b & BM_ACT) == B_DOWN) goto del; ++ if ((ev->b & BM_ACT) == BTN_DOWN) goto del; + bbb:; + } else { + if (!(ev->x < menu->x || ev->x >= menu->x+menu->xw || ev->y < menu->y + gf_val(1, G_MENU_TOP_BORDER) || ev->y >= menu->y + menu->yw - gf_val(1, G_MENU_TOP_BORDER))) { +@@ -510,7 +510,7 @@ + scroll_menu(menu, 0); + draw_to_window(win, (void (*)(struct terminal *, void *))gf_val(display_menu_txt, display_menu_gfx), menu); + menu_oldview = menu_oldsel = -1; +- if ((ev->b & BM_ACT) == B_UP/* || menu->items[s].in_m*/) select_menu(win->term, menu); ++ if ((ev->b & BM_ACT) == BTN_UP/* || menu->items[s].in_m*/) select_menu(win->term, menu); + } + } + } +@@ -698,8 +698,8 @@ + draw_to_window(win, (void (*)(struct terminal *, void *))display_mainmenu, menu); + break; + case EV_MOUSE: +- if ((ev->b & BM_ACT) == B_MOVE) break; +- if ((ev->b & BM_ACT) == B_DOWN && ev->y >= gf_val(1, G_BFU_FONT_SIZE)) delete_window_ev(win, ev); ++ if ((ev->b & BM_ACT) == BTN_MOVE) break; ++ if ((ev->b & BM_ACT) == BTN_DOWN && ev->y >= gf_val(1, G_BFU_FONT_SIZE)) delete_window_ev(win, ev); + else if (ev->y < gf_val(1, G_BFU_FONT_SIZE)) { + int i; + int p = gf_val(2, G_MAINMENU_LEFT_BORDER); +@@ -710,7 +710,7 @@ + if (ev->x >= o && ev->x < p) { + menu->selected = i; + draw_to_window(win, (void (*)(struct terminal *, void *))display_mainmenu, menu); +- if ((ev->b & BM_ACT) == B_UP || menu->items[s].in_m) select_mainmenu(win->term, menu); ++ if ((ev->b & BM_ACT) == BTN_UP || menu->items[s].in_m) select_mainmenu(win->term, menu); + break; + } + } +@@ -1046,7 +1046,7 @@ + dlg->selected = di - dlg->items; + x_display_dlg_item(dlg, di, 1); + } +- if ((ev->b & BM_ACT) == B_UP) dlg_select_item(dlg, di); ++ if ((ev->b & BM_ACT) == BTN_UP) dlg_select_item(dlg, di); + return 1; + case D_FIELD: + case D_FIELD_PASS: +@@ -1082,7 +1082,7 @@ + dlg->selected = di - dlg->items; + x_display_dlg_item(dlg, di, 1); + } +- if ((ev->b & BM_ACT) == B_UP) dlg_select_item(dlg, di); ++ if ((ev->b & BM_ACT) == BTN_UP) dlg_select_item(dlg, di); + return 1; + } + return 0; +@@ -1221,9 +1221,9 @@ + draw_to_window(dlg->win, (void (*)(struct terminal *, void *))redraw_dialog, dlg); + break; + case EV_MOUSE: +- if ((ev->b & BM_ACT) == B_MOVE) break; ++ if ((ev->b & BM_ACT) == BTN_MOVE) break; + for (i = 0; i < dlg->n; i++) if (dlg_mouse(dlg, &dlg->items[i], ev)) break; +- if ((ev->b & BM_ACT) == B_DOWN && (ev->b & BM_BUTT) == B_MIDDLE) { ++ if ((ev->b & BM_ACT) == BTN_DOWN && (ev->b & BM_BUTT) == BTN_MIDDLE) { + di = &dlg->items[dlg->selected]; /* don't delete this!!! it's here because of jump from mouse event */ + if (di->item->type == D_FIELD || di->item->type == D_FIELD_PASS) goto clipbd_paste; + } +@@ -1409,9 +1409,9 @@ + } + } + if (ev->x == KBD_ENTER) for (i = 0; i < dlg->n; i++) +- if (dlg->dlg->items[i].type == D_BUTTON && dlg->dlg->items[i].gid & B_ENTER) goto sel; ++ if (dlg->dlg->items[i].type == D_BUTTON && dlg->dlg->items[i].gid & BTN_ENTER) goto sel; + if (ev->x == KBD_ESC) for (i = 0; i < dlg->n; i++) +- if (dlg->dlg->items[i].type == D_BUTTON && dlg->dlg->items[i].gid & B_ESC) goto sel; ++ if (dlg->dlg->items[i].type == D_BUTTON && dlg->dlg->items[i].gid & BTN_ESC) goto sel; + if (((ev->x == KBD_TAB && !ev->y) || ev->x == KBD_DOWN || ev->x == KBD_RIGHT) && (dlg->n > 1 || term->spec->braille)) { + if (term->spec->braille) dlg->brl_y = dlg->items[0].y - 3; + x_display_dlg_item(dlg, &dlg->items[dlg->selected], 0); +@@ -1447,11 +1447,11 @@ + unsigned char *end; + double d = strtod(di->cdata, (char **)(void *)&end); + if (!*di->cdata || *end) { +- msg_box(dlg->win->term, NULL, TEXT(T_BAD_NUMBER), AL_CENTER, TEXT(T_NUMBER_EXPECTED), NULL, 1, TEXT(T_CANCEL), NULL, B_ENTER | B_ESC); ++ msg_box(dlg->win->term, NULL, TEXT(T_BAD_NUMBER), AL_CENTER, TEXT(T_NUMBER_EXPECTED), NULL, 1, TEXT(T_CANCEL), NULL, BTN_ENTER | BTN_ESC); + return 1; + } + if (100*d < di->item->gid || 100*d > di->item->gnum) { +- msg_box(dlg->win->term, NULL, TEXT(T_BAD_NUMBER), AL_CENTER, TEXT(T_NUMBER_OUT_OF_RANGE), NULL, 1, TEXT(T_CANCEL), NULL, B_ENTER | B_ESC); ++ msg_box(dlg->win->term, NULL, TEXT(T_BAD_NUMBER), AL_CENTER, TEXT(T_NUMBER_OUT_OF_RANGE), NULL, 1, TEXT(T_CANCEL), NULL, BTN_ENTER | BTN_ESC); + return 1; + } + return 0; +@@ -1462,11 +1462,11 @@ + unsigned char *end; + long l = strtol(di->cdata, (char **)(void *)&end, 10); + if (!*di->cdata || *end) { +- msg_box(dlg->win->term, NULL, TEXT(T_BAD_NUMBER), AL_CENTER, TEXT(T_NUMBER_EXPECTED), NULL, 1, TEXT(T_CANCEL), NULL, B_ENTER | B_ESC); ++ msg_box(dlg->win->term, NULL, TEXT(T_BAD_NUMBER), AL_CENTER, TEXT(T_NUMBER_EXPECTED), NULL, 1, TEXT(T_CANCEL), NULL, BTN_ENTER | BTN_ESC); + return 1; + } + if (l < di->item->gid || l > di->item->gnum) { +- msg_box(dlg->win->term, NULL, TEXT(T_BAD_NUMBER), AL_CENTER, TEXT(T_NUMBER_OUT_OF_RANGE), NULL, 1, TEXT(T_CANCEL), NULL, B_ENTER | B_ESC); ++ msg_box(dlg->win->term, NULL, TEXT(T_BAD_NUMBER), AL_CENTER, TEXT(T_NUMBER_OUT_OF_RANGE), NULL, 1, TEXT(T_CANCEL), NULL, BTN_ENTER | BTN_ESC); + return 1; + } + return 0; +@@ -1477,11 +1477,11 @@ + unsigned char *end; + long l = strtol(di->cdata, (char **)(void *)&end, 16); + if (!*di->cdata || *end) { +- msg_box(dlg->win->term, NULL, TEXT(T_BAD_NUMBER), AL_CENTER, TEXT(T_NUMBER_EXPECTED), NULL, 1, TEXT(T_CANCEL), NULL, B_ENTER | B_ESC); ++ msg_box(dlg->win->term, NULL, TEXT(T_BAD_NUMBER), AL_CENTER, TEXT(T_NUMBER_EXPECTED), NULL, 1, TEXT(T_CANCEL), NULL, BTN_ENTER | BTN_ESC); + return 1; + } + if (l < di->item->gid || l > di->item->gnum) { +- msg_box(dlg->win->term, NULL, TEXT(T_BAD_NUMBER), AL_CENTER, TEXT(T_NUMBER_OUT_OF_RANGE), NULL, 1, TEXT(T_CANCEL), NULL, B_ENTER | B_ESC); ++ msg_box(dlg->win->term, NULL, TEXT(T_BAD_NUMBER), AL_CENTER, TEXT(T_NUMBER_OUT_OF_RANGE), NULL, 1, TEXT(T_CANCEL), NULL, BTN_ENTER | BTN_ESC); + return 1; + } + return 0; +@@ -1491,7 +1491,7 @@ + { + unsigned char *p; + for (p = di->cdata; *p; p++) if (*p > ' ') return 0; +- msg_box(dlg->win->term, NULL, TEXT(T_BAD_STRING), AL_CENTER, TEXT(T_EMPTY_STRING_NOT_ALLOWED), NULL, 1, TEXT(T_CANCEL), NULL, B_ENTER | B_ESC); ++ msg_box(dlg->win->term, NULL, TEXT(T_BAD_STRING), AL_CENTER, TEXT(T_EMPTY_STRING_NOT_ALLOWED), NULL, 1, TEXT(T_CANCEL), NULL, BTN_ENTER | BTN_ESC); + return 1; + } + +@@ -2283,7 +2283,7 @@ + va_start(va, check); + for (i = 1; i <= n; i++) { + dlg->items[i].type = D_BUTTON; +- dlg->items[i].gid = i == 1 ? B_ENTER : i == n ? B_ESC : 0; ++ dlg->items[i].gid = i == 1 ? BTN_ENTER : i == n ? BTN_ESC : 0; + dlg->items[i].fn = i != n || n == 1 ? input_field_ok : input_field_cancel; + dlg->items[i].dlen = 0; + dlg->items[i].text = va_arg(va, unsigned char *); +diff -urN links-2.3pre2-orig/block.c links-2.3pre2/block.c +--- links-2.3pre2-orig/block.c 2011-04-19 15:17:48.000000000 +0000 ++++ links-2.3pre2/block.c 2011-05-13 09:04:16.001310720 +0000 +@@ -222,11 +222,11 @@ + d->items[0].data = url; + d->items[0].fn = check_nonempty; + d->items[1].type = D_BUTTON; +- d->items[1].gid = B_ENTER; ++ d->items[1].gid = BTN_ENTER; + d->items[1].fn = ok_dialog; + d->items[1].text = TEXT(T_OK); + d->items[2].type = D_BUTTON; +- d->items[2].gid = B_ESC; ++ d->items[2].gid = BTN_ESC; + d->items[2].text = TEXT(T_CANCEL); + d->items[2].fn = cancel_dialog; + d->items[3].type = D_END; +diff -urN links-2.3pre2-orig/bookmarks.c links-2.3pre2/bookmarks.c +--- links-2.3pre2-orig/bookmarks.c 2011-04-19 15:17:48.000000000 +0000 ++++ links-2.3pre2/bookmarks.c 2011-05-13 09:04:16.036438016 +0000 +@@ -370,12 +370,12 @@ + } + + d->items[a+1].type = D_BUTTON; +- d->items[a+1].gid = B_ENTER; ++ d->items[a+1].gid = BTN_ENTER; + d->items[a+1].fn = ok_dialog; + d->items[a+1].text = TEXT(T_OK); + + d->items[a+2].type = D_BUTTON; +- d->items[a+2].gid = B_ESC; ++ d->items[a+2].gid = BTN_ESC; + d->items[a+2].text = TEXT(T_CANCEL); + d->items[a+2].fn = cancel_dialog; + +diff -urN links-2.3pre2-orig/cfg.h links-2.3pre2/cfg.h +--- links-2.3pre2-orig/cfg.h 2002-05-07 10:13:18.000000000 +0000 ++++ links-2.3pre2/cfg.h 2011-05-13 09:33:41.000000000 +0000 +@@ -16,7 +16,7 @@ + /* no one will probably ever port svgalib on atheos or beos or port atheos + interface to beos, but anyway: make sure they don't clash */ + +-#ifdef __BEOS__ ++#if defined __BEOS__ || defined __HAIKU__ + #ifdef GRDRV_SVGALIB + #undef GRDRV_SVGALIB + #endif +diff -urN links-2.3pre2-orig/configure.in links-2.3pre2/configure.in +--- links-2.3pre2-orig/configure.in 2011-04-19 15:30:57.000000000 +0000 ++++ links-2.3pre2/configure.in 2011-05-13 09:04:16.068681728 +0000 +@@ -18,7 +18,7 @@ + dnl Checks for programs. + AC_PROG_CC + +-#AC_PROG_CXX ++AC_PROG_CXX + #AC_PROG_AWK + #AM_PROG_LEX + #AC_PROG_YACC +@@ -33,6 +33,7 @@ + + dnl Check for libraries + ++AC_SEARCH_LIBS(socket, socket network) + AC_CACHE_CHECK([for EMX], ac_cv_have_emx, + AC_TRY_COMPILE(, [#ifndef __EMX__ + kill me! +@@ -220,7 +221,10 @@ + if test "$ac_cv_lib_socket_gethostbyname" = no; then + AC_CHECK_LIB(nsl, gethostbyname) + if test "$ac_cv_lib_nsl_gethostbyname" = no; then +- AC_ERROR([gethostbyname function not present]) ++ AC_CHECK_LIB(bind, gethostbyname) ++ if test "$ac_cv_lib_bind_gethostbyname" = no; then ++ AC_ERROR([gethostbyname function not present]) ++ fi + fi + fi + fi +@@ -329,6 +333,7 @@ + fi + #AC_CHECK_FUNC(clone, AC_DEFINE(HAVE_CLONE)) + AC_CHECK_HEADERS(atheos/threads.h) ++AC_CHECK_HEADERS(kernel/OS.h) + AC_HAVE_FUNCS(spawn_thread) + AC_HAVE_FUNCS(resume_thread) + +@@ -458,6 +463,7 @@ + + + cf_have_atheos=no ++cf_have_beos=no + + if test "$cf_use_graphics" != no; then + AC_DEFINE(G) +@@ -469,6 +475,7 @@ + dnl AC_ARG_WITH(sdl, [ --without-sdl compile without SDL graphics driver],[if test "$withval" = no; then disable_sdl=yes; else disable_sdl=no; fi]) + AC_ARG_WITH(pmshell, [ --without-pmshell compile without PMShell graphics driver],[if test "$withval" = no; then disable_pmshell=yes; else disable_pmshell=no; fi]) + AC_ARG_WITH(atheos, [ --without-atheos compile without Atheos graphics driver],[if test "$withval" = no; then disable_atheos=yes; else disable_atheos; fi]) ++AC_ARG_WITH(beos, [ --without-beos compile without BeOS/Haiku graphics driver],[if test "$withval" = no; then disable_beos=yes; else disable_beos; fi]) + + drivers="" + +@@ -604,6 +611,31 @@ + fi + fi + ++if test "$disable_beos" != yes ; then ++ old_ext="$ac_ext" ++ ac_ext=cpp ++ AC_CHECK_HEADERS(interface/View.h) ++ AC_CHECK_HEADERS(interface/Window.h) ++ AC_CHECK_HEADERS(interface/Screen.h) ++ AC_CHECK_HEADERS(interface/Bitmap.h) ++ AC_CHECK_HEADERS(support/Locker.h) ++ AC_CHECK_HEADERS(app/Application.h) ++ ac_ext="$old_ext" ++ ++ if test "$ac_cv_header_kernel_OS_h" = yes && ++ test "$ac_cv_header_interface_View_h" = yes && ++ test "$ac_cv_header_interface_Window_h" = yes && ++ test "$ac_cv_header_interface_Screen_h" = yes && ++ test "$ac_cv_header_interface_Bitmap_h" = yes && ++ test "$ac_cv_header_support_Locker_h" = yes && ++ test "$ac_cv_header_app_Application_h" = yes; then ++ AC_PROG_CXX ++ AC_DEFINE(GRDRV_BEOS) ++ drivers="$drivers BEOS" ++ cf_have_beos=yes ++ fi ++fi ++ + AC_CHECK_LIB(z, inflate) + PKG_CHECK_MODULES(LIBPNG,libpng >= 1.0.0,pkgconfig_libpng=yes,pkgconfig_libpng=no) + if test "$pkgconfig_libpng" = "yes"; then +@@ -681,6 +713,7 @@ + + + AM_CONDITIONAL(ATHEOS_GR, test "$cf_have_atheos" = yes) ++AM_CONDITIONAL(BEOS_GR, test "$cf_have_beos" = yes) + + test "$ac_cv_have_emx" = yes && LDFLAGS="$LDFLAGS -Zexe" + +diff -urN links-2.3pre2-orig/default.c links-2.3pre2/default.c +--- links-2.3pre2-orig/default.c 2011-04-19 15:17:48.000000000 +0000 ++++ links-2.3pre2/default.c 2011-05-13 09:04:16.099876864 +0000 +@@ -449,7 +449,7 @@ + } + add_to_strn(&config_file, name); + if ((err = write_to_config_file(config_file, c))) { +- if (term) msg_box(term, NULL, TEXT(T_CONFIG_ERROR), AL_CENTER | AL_EXTD_TEXT, TEXT(T_UNABLE_TO_WRITE_TO_CONFIG_FILE), ": ", get_err_msg(-err), NULL, NULL, 1, TEXT(T_CANCEL), NULL, B_ENTER | B_ESC); ++ if (term) msg_box(term, NULL, TEXT(T_CONFIG_ERROR), AL_CENTER | AL_EXTD_TEXT, TEXT(T_UNABLE_TO_WRITE_TO_CONFIG_FILE), ": ", get_err_msg(-err), NULL, NULL, 1, TEXT(T_CANCEL), NULL, BTN_ENTER | BTN_ESC); + mem_free(c); + mem_free(config_file); + return -1; +diff -urN links-2.3pre2-orig/directfb.c links-2.3pre2/directfb.c +--- links-2.3pre2-orig/directfb.c 2008-06-10 20:53:29.000000000 +0000 ++++ links-2.3pre2/directfb.c 2011-05-13 09:04:16.108527616 +0000 +@@ -652,25 +652,25 @@ + + if (event.type == DWET_BUTTONUP) + { +- flags = B_UP; ++ flags = BTN_UP; + data->window->UngrabPointer (data->window); + } + else + { +- flags = B_DOWN; ++ flags = BTN_DOWN; + data->window->GrabPointer (data->window); + } + + switch (event.button) + { + case DIBI_LEFT: +- flags |= B_LEFT; ++ flags |= BTN_LEFT; + break; + case DIBI_RIGHT: +- flags |= B_RIGHT; ++ flags |= BTN_RIGHT; + break; + case DIBI_MIDDLE: +- flags |= B_MIDDLE; ++ flags |= BTN_MIDDLE; + break; + default: + continue; +@@ -682,8 +682,8 @@ + + case DWET_WHEEL: + gd->mouse_handler (gd, event.x, event.y, +- B_MOVE | +- (event.step > 0 ? B_WHEELUP : B_WHEELDOWN)); ++ BTN_MOVE | ++ (event.step > 0 ? BTN_WHEELUP : BTN_WHEELDOWN)); + break; + + case DWET_MOTION: +@@ -698,16 +698,16 @@ + switch (event.buttons) + { + case DIBM_LEFT: +- flags = B_DRAG | B_LEFT; ++ flags = BTN_DRAG | BTN_LEFT; + break; + case DIBM_RIGHT: +- flags = B_DRAG | B_RIGHT; ++ flags = BTN_DRAG | BTN_RIGHT; + break; + case DIBM_MIDDLE: +- flags = B_DRAG | B_MIDDLE; ++ flags = BTN_DRAG | BTN_MIDDLE; + break; + default: +- flags = B_MOVE; ++ flags = BTN_MOVE; + break; + } + +diff -urN links-2.3pre2-orig/drivers.c links-2.3pre2/drivers.c +--- links-2.3pre2-orig/drivers.c 2011-04-19 15:17:48.000000000 +0000 ++++ links-2.3pre2/drivers.c 2011-05-13 09:04:16.130285568 +0000 +@@ -31,6 +31,9 @@ + #ifdef GRDRV_ATHEOS + extern struct graphics_driver atheos_driver; + #endif ++#ifdef GRDRV_BEOS ++extern struct graphics_driver beos_driver; ++#endif + #ifdef GRDRV_SDL + extern struct graphics_driver sdl_driver; + #endif +@@ -48,6 +51,9 @@ + #ifdef GRDRV_ATHEOS + &atheos_driver, + #endif ++#ifdef GRDRV_BEOS ++ &beos_driver, ++#endif + #ifndef SPAD + #ifdef GRDRV_X + &x_driver, +diff -urN links-2.3pre2-orig/framebuffer.c links-2.3pre2/framebuffer.c +--- links-2.3pre2-orig/framebuffer.c 2011-04-19 15:17:49.000000000 +0000 ++++ links-2.3pre2/framebuffer.c 2011-05-13 09:04:16.148897792 +0000 +@@ -383,7 +383,7 @@ + if (mouse_y < 0) mouse_y = 0; + ev.x = mouse_x; + ev.y = mouse_y; +- ev.b = B_MOVE; ++ ev.b = BTN_MOVE; + if (!current_virtual_device) return; + if (current_virtual_device->mouse_handler) current_virtual_device->mouse_handler(current_virtual_device, ev.x, ev.y, ev.b); + redraw_mouse(); +@@ -1018,26 +1018,26 @@ + + ev.x = mouse_x; + ev.y = mouse_y; +- if (gev.buttons & GPM_B_LEFT) ev.b = B_LEFT; +- else if (gev.buttons & GPM_B_MIDDLE) ev.b = B_MIDDLE; +- else if (gev.buttons & GPM_B_RIGHT) ev.b = B_RIGHT; ++ if (gev.buttons & GPM_B_LEFT) ev.b = BTN_LEFT; ++ else if (gev.buttons & GPM_B_MIDDLE) ev.b = BTN_MIDDLE; ++ else if (gev.buttons & GPM_B_RIGHT) ev.b = BTN_RIGHT; + else ev.b = 0; +- if (gev.type & GPM_DOWN) ev.b |= B_DOWN; +- else if (gev.type & GPM_UP) ev.b |= B_UP; +- else if (gev.type & GPM_DRAG) ev.b |= B_DRAG; +- else ev.b |= B_MOVE; ++ if (gev.type & GPM_DOWN) ev.b |= BTN_DOWN; ++ else if (gev.type & GPM_UP) ev.b |= BTN_UP; ++ else if (gev.type & GPM_DRAG) ev.b |= BTN_DRAG; ++ else ev.b |= BTN_MOVE; + + #ifndef USE_GPM_DX + if (fb_msetsize < 0) { + } else if (fb_msetsize < 10) { + fb_msetsize++; +- } else if ((ev.b & BM_ACT) == B_MOVE && !(ev.b & BM_BUTT)) { ++ } else if ((ev.b & BM_ACT) == BTN_MOVE && !(ev.b & BM_BUTT)) { + fb_mouse_setsize(); + fb_msetsize = -1; + } + #endif + +- if (((ev.b & BM_ACT) == B_MOVE && !(ev.b & BM_BUTT)) || (ev.b & BM_ACT) == B_DRAG) { ++ if (((ev.b & BM_ACT) == BTN_MOVE && !(ev.b & BM_BUTT)) || (ev.b & BM_ACT) == BTN_DRAG) { + if (can_read(fb_hgpm)) goto again; + } + +diff -urN links-2.3pre2-orig/jsint.c links-2.3pre2/jsint.c +--- links-2.3pre2-orig/jsint.c 2008-08-15 23:37:46.000000000 +0000 ++++ links-2.3pre2/jsint.c 2011-05-13 09:04:16.185860096 +0000 +@@ -1272,8 +1272,8 @@ + txt, /* message */ + jsid, /* data for button functions */ + 3, /* # of buttons */ +- TEXT(T_OK),js_upcall_confirm_ok_pressed,B_ENTER, /* first button */ +- TEXT(T_CANCEL),js_upcall_confirm_cancel_pressed,B_ESC, /* second button */ ++ TEXT(T_OK),js_upcall_confirm_ok_pressed,BTN_ENTER, /* first button */ ++ TEXT(T_CANCEL),js_upcall_confirm_cancel_pressed,BTN_ESC, /* second button */ + TEXT(T_KILL_SCRIPT), js_kill_script_pressed,NULL + ); + +@@ -1342,7 +1342,7 @@ + txt, /* message */ + jsid, /* data for button functions */ + 2, /* # of buttons */ +- TEXT(T_OK),js_upcall_alert_ok_pressed,B_ENTER|B_ESC, ++ TEXT(T_OK),js_upcall_alert_ok_pressed,BTN_ENTER|BTN_ESC, + TEXT(T_KILL_SCRIPT), js_kill_script_pressed,NULL + ); + +@@ -2933,8 +2933,8 @@ + jsid->n?TEXT(T_JS_IS_ATTEMPTING_TO_OPEN_NEW_WINDOW_WITH_URL):TEXT(T_JS_IS_ATTEMPTING_TO_GO_TO_URL), " \"",jsid->string,"\".",NULL, /* message */ + jsid, /* data for button functions */ + 3, /* # of buttons */ +- TEXT(T_ALLOW),js_upcall_goto_url_ok_pressed,B_ENTER, +- TEXT(T_REJECT),js_upcall_goto_url_cancel_pressed,B_ESC, ++ TEXT(T_ALLOW),js_upcall_goto_url_ok_pressed,BTN_ENTER, ++ TEXT(T_REJECT),js_upcall_goto_url_cancel_pressed,BTN_ESC, + TEXT(T_KILL_SCRIPT), js_kill_script_pressed,NULL /* dirty trick: gimme_js_id_string and gimme_js_id begins with the same long */ + ); + js_mem_free(s); +@@ -3089,8 +3089,8 @@ + TEXT(T_JS_IS_ATTEMPTING_TO_GO_INTO_HISTORY), txt, TEXT(T_TO_URL), " \"",url,"\".",NULL, /* message */ + jsid, /* data for button functions */ + 3, /* # of buttons */ +- TEXT(T_ALLOW),js_upcall_goto_history_ok_pressed,B_ENTER, +- TEXT(T_REJECT),js_upcall_goto_url_cancel_pressed,B_ESC, ++ TEXT(T_ALLOW),js_upcall_goto_history_ok_pressed,BTN_ENTER, ++ TEXT(T_REJECT),js_upcall_goto_url_cancel_pressed,BTN_ESC, + TEXT(T_KILL_SCRIPT), js_kill_script_pressed,NULL /* dirty trick: gimme_js_id_string and gimme_js_id begins with the same long */ + ); + js_mem_free(s); +diff -urN links-2.3pre2-orig/kbd.c links-2.3pre2/kbd.c +--- links-2.3pre2-orig/kbd.c 2011-04-19 15:17:49.000000000 +0000 ++++ links-2.3pre2/kbd.c 2011-05-13 09:04:16.190054400 +0000 +@@ -843,10 +843,10 @@ + ev.y = (unsigned char)(itrm->kqueue[el+3]) - ' ' - 1 + ((int)((unsigned char)(itrm->kqueue[el+4]) - ' ' - 1) << 7); + if ( ev.y & (1 << 13)) ev.y = 0; /* ev.y |= ~0 << 14; */ + switch ((itrm->kqueue[el] - ' ') ^ xterm_button) { /* Every event changhes only one bit */ +- case TW_BUTT_LEFT: ev.b = B_LEFT | ( (xterm_button & TW_BUTT_LEFT) ? B_UP : B_DOWN ); break; +- case TW_BUTT_MIDDLE: ev.b = B_MIDDLE | ( (xterm_button & TW_BUTT_MIDDLE) ? B_UP : B_DOWN ); break; +- case TW_BUTT_RIGHT: ev.b = B_RIGHT | ( (xterm_button & TW_BUTT_RIGHT) ? B_UP : B_DOWN ); break; +- case 0: ev.b = B_DRAG; ++ case TW_BUTT_LEFT: ev.b = BTN_LEFT | ( (xterm_button & TW_BUTT_LEFT) ? BTN_UP : BTN_DOWN ); break; ++ case TW_BUTT_MIDDLE: ev.b = BTN_MIDDLE | ( (xterm_button & TW_BUTT_MIDDLE) ? BTN_UP : BTN_DOWN ); break; ++ case TW_BUTT_RIGHT: ev.b = BTN_RIGHT | ( (xterm_button & TW_BUTT_RIGHT) ? BTN_UP : BTN_DOWN ); break; ++ case 0: ev.b = BTN_DRAG; + /* default : Twin protocol error */ + } + xterm_button = itrm->kqueue[el] - ' '; +@@ -854,15 +854,15 @@ + } else { + ev.x = itrm->kqueue[el+1] - ' ' - 1; + ev.y = itrm->kqueue[el+2] - ' ' - 1; +- ev.b = B_DOWN; +- if (itrm->kqueue[el] & 4) ev.b = B_DRAG; +- if ((ev.b |= (itrm->kqueue[el] & BM_BUTT) | B_DOWN) == 3) { +- ev.b = B_UP; ++ ev.b = BTN_DOWN; ++ if (itrm->kqueue[el] & 4) ev.b = BTN_DRAG; ++ if ((ev.b |= (itrm->kqueue[el] & BM_BUTT) | BTN_DOWN) == 3) { ++ ev.b = BTN_UP; + if (xterm_button != -1) ev.b |= xterm_button; + } +- /*if ((itrm->kqueue[el] & 4) && ev.b != B_UP) ev.b |= B_DRAG;*/ ++ /*if ((itrm->kqueue[el] & 4) && ev.b != BTN_UP) ev.b |= BTN_DRAG;*/ + xterm_button = -1; +- if ((ev.b & BM_ACT) == B_DOWN) xterm_button = ev.b & BM_BUTT; ++ if ((ev.b & BM_ACT) == BTN_DOWN) xterm_button = ev.b & BM_BUTT; + el += 3; + } + ev.ev = EV_MOUSE; +diff -urN links-2.3pre2-orig/links-beos.rdef links-2.3pre2/links-beos.rdef +--- links-2.3pre2-orig/links-beos.rdef 1970-01-01 00:00:00.000000000 +0000 ++++ links-2.3pre2/links-beos.rdef 2011-05-13 09:04:16.208928768 +0000 +@@ -0,0 +1,97 @@ ++/* ++** links-beos.rdef ++** ++** Automatically generated by BResourceParser on ++** Thursday, December 13, 2007 at 23:46:45. ++** ++*/ ++ ++resource(1, "BEOS:APP_FLAGS") (#'APPF') $"01000000"; ++ ++resource(1, "BEOS:APP_VERSION") #'APPV' array { ++ $"02000000010000000000000000000000210000006C696E6B7320322E31707265" ++ $"3333000000000000000000000000000000000000000000000000000000000000" ++ $"00000000000000000000000000000000000000004C696E6B732062726F777365" ++ $"7220322E31707265333300000000000000000000000000000000000000000000" ++ $"0000000000000000000000000000000000000000000000000000000000000000" ++ $"0000000000000000000000000000000000000000000000000000000000000000" ++ $"0000000000000000000000000000000000000000000000000000000000000000" ++ $"0000000000000000000000000000000000000000000000000000000000000000" ++ $"0000000000000000000000000000000000000000000000000000000000000000" ++ $"0000000000000000000000000000000000000000000000000000000000000000" ++ $"0000000000000000000000000000000000000000000000000000000000000000" ++ $"0000000000000000000000000000000000000000000000000000000000000000" ++ $"0000000000000000000000000000000000000000000000000000000000000000" ++ $"0000000000000000000000000000000000000000000000000000000000000000" ++ $"0000000000000000000000000000000000000000000000000000000000000000" ++ $"0000000000000000000000000000000000000000000000000000000000000000" ++ $"0000000000000000000000000000000000000000000000000000000000000000" ++ $"0000000000000000000000000000000000000000000000000000000000000000" ++ $"0000000000000000000000000000000000000000000000000000000000000000" ++ $"0000000000000000000000000000000000000000000000000000000000000000" ++ $"0000000000000000000000000000000000000000000000000000000000000000" ++ $"0000000000000000" ++}; ++ ++resource(101, "BEOS:L:STD_ICON") #'ICON' array { ++ $"2A2A2A2A2A2A2A2A2A2A2A2A2A2A2C0000363434343434343434343434343434" ++ $"2A2A2A2A2A2A2A2A2A2A2A2A2A2A2C0000363434343434343434343434343434" ++ $"2A2A2A2B2B2B2B2B2B2B2B2B2B2B2C0000363434343434343434343434343434" ++ $"2A2A2A3200000000000000000000000000363434343434343434343434343434" ++ $"2A2A2A2FF1313200000000000131310000363434343434343434343434343434" ++ $"2A2A2A2A2A2A2A30000000002B2A2C0000363434343434343434343434343434" ++ $"2A2A2A2A2A2A2A2F000000002A2A2C0000363434343434343434343434343434" ++ $"2A2A2A2A2A2A2A2F000000002A2A2C0000363434343434343434343434343434" ++ $"2A2A2A2A2A2A2A2F000000002A2A2C0000363434343434343434343434343434" ++ $"2A2A2A2A2A2A2A2F000000002A2A2C0000363434343434343434343434343434" ++ $"2A2A2A2A2A2A2A2F000000002A2A2C0000363434343434343434343434343434" ++ $"2A2A2A2A2A2A2A2F000000002A2A2C0000363434343434343434343434343434" ++ $"2A2A2A2A2A2A2A2F000000002A2A2C0000363434343434343434343434343434" ++ $"2A2A2A2A2A2A2A2F000000002A2A2C0000363434343434343434343434343434" ++ $"2C2C2C2C2C2C2C30000000002C2C2D0000373636363636363636363636363636" ++ $"0000000000000000000000000000000000000000000000000000000000000000" ++ $"0000000000000000000000000000000000000000000000000000000000000000" ++ $"2222222222222226000000002222230000151A1A1A1A1A1A1A1A1A1A1A1A1A1A" ++ $"20202020202020250000000020202200001A3F3F3F3F3F3F3F3F3F3F3F3F3F3F" ++ $"20202020202020250000000020202200001A3F3F3F3F3F3F3F1501113F3F3F3F" ++ $"20202020202020250000000020202200001A3F3F3F3F3F3F3F0E00133F3F3F3F" ++ $"20202020202020250000000020202200001A3F3F3F3F3F3F3F0500163F3F3F3F" ++ $"20202020202020250000000020202200001A3F3F3F3F3F3F1A0000193F3F3F3F" ++ $"20202020202020250000000020202200001A3F3F3F3F3F3F0C00001B3F3F3F3F" ++ $"20202020202020250000000020202200001A3F3F3F3F3F190000001E3F3F3F3F" ++ $"20202020202020250000000020202200001A3F3F3F3F1A030000013F3F3F3F3F" ++ $"20202020202020270000000023202200001A3F1E170C00000000043F3F3F3F3F" ++ $"2020202628292900000000000029290000040300000000000000063F3F3F3F3F" ++ $"20202027292929292929292929292900000203030303030303030B3F3F3F3F3F" ++ $"20202020202020202020202020202200001A3F3F3F3F3F3F3F3F3F3F3F3F3F3F" ++ $"20202020202020202020202020202200001A3F3F3F3F3F3F3F3F3F3F3F3F3F3F" ++ $"20202020202020202020202020202200001A3F3F3F3F3F3F3F3F3F3F3F3F3F3F" ++}; ++ ++resource(101, "BEOS:M:STD_ICON") #'MICN' array { ++ $"2A2A2A2A2A2A2A303A34343434343434" ++ $"2A2C3030303030F73A34343434343434" ++ $"2A2B2D300000EB323A34343434343434" ++ $"2A2A2A2C00002A303A34343434343434" ++ $"2A2A2A2C00002A303A34343434343434" ++ $"2A2A2A2C00002A303A34343434343434" ++ $"2A2A2A2C00002A303A34343434343434" ++ $"303030310000F1333D3A3A3A3A3A3A3A" ++ $"2626262700002629050D0D0D0D0D0D0D" ++ $"20202022000020260D3F3F3F1D143F3F" ++ $"20202022000020260D3F3F3F140A3F3F" ++ $"20202022000020260D3F3F3F090D3F3F" ++ $"20202022000020260D3F3F16000F3F3F" ++ $"20222427000026280710090000123F3F" ++ $"202225252525252807111111111A3F3F" ++ $"20202020202020260D3F3F3F3F3F3F3F" ++}; ++ ++resource(1, "BEOS:APP_SIG") (#'MIMS') "application/x-vnd.links"; ++ ++resource(1, "BEOS:FILE_TYPES") message { ++ "types" = "text/html", ++ "types" = "application/x-vnd.Be-bookmark", ++ "types" = "application/x-vnd.Be.URL.http" ++}; ++ +diff -urN links-2.3pre2-orig/links.h links-2.3pre2/links.h +--- links-2.3pre2-orig/links.h 2011-04-19 15:17:49.000000000 +0000 ++++ links-2.3pre2/links.h 2011-05-13 09:04:16.239337472 +0000 +@@ -989,26 +989,26 @@ + /* kbd.c */ + + #define BM_BUTT 15 +-#define B_LEFT 0 +-#define B_MIDDLE 1 +-#define B_RIGHT 2 +-#define B_FOURTH 3 +-#define B_FIFTH 4 +-#define B_SIXTH 5 +-#define B_WHEELUP 8 +-#define B_WHEELDOWN 9 +-#define B_WHEELUP1 10 +-#define B_WHEELDOWN1 11 +-#define B_WHEELLEFT 12 +-#define B_WHEELRIGHT 13 +-#define B_WHEELLEFT1 14 +-#define B_WHEELRIGHT1 15 ++#define BTN_LEFT 0 ++#define BTN_MIDDLE 1 ++#define BTN_RIGHT 2 ++#define BTN_FOURTH 3 ++#define BTN_FIFTH 4 ++#define BTN_SIXTH 5 ++#define BTN_WHEELUP 8 ++#define BTN_WHEELDOWN 9 ++#define BTN_WHEELUP1 10 ++#define BTN_WHEELDOWN1 11 ++#define BTN_WHEELLEFT 12 ++#define BTN_WHEELRIGHT 13 ++#define BTN_WHEELLEFT1 14 ++#define BTN_WHEELRIGHT1 15 + + #define BM_ACT 48 +-#define B_DOWN 0 +-#define B_UP 16 +-#define B_DRAG 32 +-#define B_MOVE 48 ++#define BTN_DOWN 0 ++#define BTN_UP 16 ++#define BTN_DRAG 32 ++#define BTN_MOVE 48 + + #define KBD_ENTER -0x100 + #define KBD_BS -0x101 +@@ -3014,15 +3014,15 @@ + #define D_FIELD_PASS 3 + #define D_BUTTON 4 + +-#define B_ENTER 1 +-#define B_ESC 2 ++#define BTN_ENTER 1 ++#define BTN_ESC 2 + + struct dialog_item_data; + struct dialog_data; + + struct dialog_item { + int type; +- int gid, gnum; /* for buttons: gid - flags B_XXX */ /* for fields: min/max */ /* for box: gid is box height */ ++ int gid, gnum; /* for buttons: gid - flags BTN_XXX */ /* for fields: min/max */ /* for box: gid is box height */ + int (*fn)(struct dialog_data *, struct dialog_item_data *); + struct history *history; + int dlen; +diff -urN links-2.3pre2-orig/listedit.c links-2.3pre2/listedit.c +--- links-2.3pre2-orig/listedit.c 2011-04-19 15:17:49.000000000 +0000 ++++ links-2.3pre2/listedit.c 2011-05-13 09:04:16.272367616 +0000 +@@ -734,7 +734,7 @@ + TEXT(T_NO_ITEMS_SELECTED), /* text */ + NULL, /* data */ + 1, /* # of buttons */ +- TEXT(T_OK),NULL,B_ESC|B_ENTER /* button1 */ ++ TEXT(T_OK),NULL,BTN_ESC|BTN_ENTER /* button1 */ + ); + else + { +@@ -916,8 +916,8 @@ + TEXT(T_FOLDER)," \"",txt,"\" ",TEXT(T_NOT_EMPTY_SURE_DELETE),NULL, /* text */ + narez, /* data for ld->delete_item */ + 2, /* # of buttons */ +- TEXT(T_NO),NULL,B_ESC, /* button1 */ +- TEXT(T_YES),delete_folder_recursively,B_ENTER /* button2 */ ++ TEXT(T_NO),NULL,BTN_ESC, /* button1 */ ++ TEXT(T_YES),delete_folder_recursively,BTN_ENTER /* button2 */ + ); + else + msg_box( +@@ -928,8 +928,8 @@ + TEXT(T_SURE_DELETE)," ",TEXT(T_fOLDER)," \"",txt,"\"?",NULL, /* null-terminated text */ + narez, /* data for ld->delete_item */ + 2, /* # of buttons */ +- TEXT(T_YES),delete_ok,B_ENTER, /* button1 */ +- TEXT(T_NO),NULL,B_ESC /* button2 */ ++ TEXT(T_YES),delete_ok,BTN_ENTER, /* button1 */ ++ TEXT(T_NO),NULL,BTN_ESC /* button2 */ + ); + } + else /* item */ +@@ -941,8 +941,8 @@ + TEXT(T_SURE_DELETE)," ",TEXT(ld->item_description)," \"",txt,"\"?",NULL, /* null-terminated text */ + narez, /* data for ld->delete_item */ + 2, /* # of buttons */ +- TEXT(T_YES),delete_ok,B_ENTER, /* button1 */ +- TEXT(T_NO),NULL,B_ESC /* button2 */ ++ TEXT(T_YES),delete_ok,BTN_ENTER, /* button1 */ ++ TEXT(T_NO),NULL,BTN_ESC /* button2 */ + ); + return 0; + } +@@ -1485,7 +1485,7 @@ + struct session *ses=(struct session *)(dlg->dlg->udata); + struct list* item; + +- if (!ld->search_word) {msg_box(ses->term, NULL, TEXT(T_SEARCH), AL_CENTER, TEXT(T_NO_PREVIOUS_SEARCH), NULL, 1, TEXT(T_CANCEL), NULL, B_ENTER | B_ESC); return;} ++ if (!ld->search_word) {msg_box(ses->term, NULL, TEXT(T_SEARCH), AL_CENTER, TEXT(T_NO_PREVIOUS_SEARCH), NULL, 1, TEXT(T_CANCEL), NULL, BTN_ENTER | BTN_ESC); return;} + + if ((item=ld->find_item(ld->current_pos,ld->search_word,direction))) + { +@@ -1501,7 +1501,7 @@ + if (!F) if (!ses->term->spec->block_cursor || ses->term->spec->braille) set_cursor(ses->term, dlg->x + DIALOG_LB, dlg->y+DIALOG_TB+ld->win_pos, dlg->x + DIALOG_LB, dlg->y+DIALOG_TB+ld->win_pos); + } + else +- msg_box(ses->term, NULL, TEXT(T_SEARCH), AL_CENTER, TEXT(T_SEARCH_STRING_NOT_FOUND), NULL, 1, TEXT(T_CANCEL), NULL, B_ENTER | B_ESC); ++ msg_box(ses->term, NULL, TEXT(T_SEARCH), AL_CENTER, TEXT(T_SEARCH_STRING_NOT_FOUND), NULL, 1, TEXT(T_CANCEL), NULL, BTN_ENTER | BTN_ESC); + + } + +@@ -1739,7 +1739,7 @@ + + case EV_MOUSE: + /* toggle select item */ +- if ((ev->b&BM_ACT)==B_DOWN&&(ev->b&BM_BUTT)==B_RIGHT) ++ if ((ev->b&BM_ACT)==BTN_DOWN&&(ev->b&BM_BUTT)==BTN_RIGHT) + { + int n,a; + struct list *l=ld->win_offset; +@@ -1771,7 +1771,7 @@ + return EVENT_PROCESSED; + } + /* click on item */ +- if ((ev->b&BM_ACT)==B_DOWN&&(ev->b&BM_BUTT)==B_LEFT) ++ if ((ev->b&BM_ACT)==BTN_DOWN&&(ev->b&BM_BUTT)==BTN_LEFT) + { + int n,a; + struct list *l=ld->win_offset; +@@ -1810,7 +1810,7 @@ + } + /* scroll with the bar */ + #ifdef G +- if (F&&((ev->b&BM_ACT)==B_DRAG&&(ev->b&BM_BUTT)==B_LEFT)) ++ if (F&&((ev->b&BM_ACT)==BTN_DRAG&&(ev->b&BM_BUTT)==BTN_LEFT)) + { + int total=get_total_items(ld); + int scroll_pos=get_scroll_pos(ld); +@@ -1854,7 +1854,7 @@ + + } + #endif +- if ((ev->b&BM_ACT)==B_DRAG&&(ev->b&BM_BUTT)==B_MIDDLE) ++ if ((ev->b&BM_ACT)==BTN_DRAG&&(ev->b&BM_BUTT)==BTN_MIDDLE) + { + long delta=(ev->y-last_mouse_y)/MOUSE_SCROLL_DIVIDER; + +@@ -1891,12 +1891,12 @@ + + } + /* mouse wheel */ +- if ((ev->b&BM_ACT)==B_MOVE&&((ev->b&BM_BUTT)==B_WHEELUP||(ev->b&BM_BUTT)==B_WHEELDOWN||(ev->b&BM_BUTT)==B_WHEELDOWN1||(ev->b&BM_BUTT)==B_WHEELUP1)) ++ if ((ev->b&BM_ACT)==BTN_MOVE&&((ev->b&BM_BUTT)==BTN_WHEELUP||(ev->b&BM_BUTT)==BTN_WHEELDOWN||(ev->b&BM_BUTT)==BTN_WHEELDOWN1||(ev->b&BM_BUTT)==BTN_WHEELUP1)) + { + int button=(ev->b)&BM_BUTT; + last_mouse_y=ev->y; + +- if (button==B_WHEELDOWN||button==B_WHEELDOWN1) /* scroll down */ ++ if (button==BTN_WHEELDOWN||button==BTN_WHEELDOWN1) /* scroll down */ + { + if (next_in_tree(ld,ld->current_pos)==ld->list)return EVENT_PROCESSED; /* already at the bottom */ + ld->current_pos=next_in_tree(ld,ld->current_pos); +@@ -1910,7 +1910,7 @@ + } + draw_to_window(dlg->win,redraw_list_line,&rd); + } +- if (button==B_WHEELUP||button==B_WHEELUP1) /* scroll up */ ++ if (button==BTN_WHEELUP||button==BTN_WHEELUP1) /* scroll up */ + { + if (ld->current_pos==ld->list)return EVENT_PROCESSED; /* already on the top */ + ld->current_pos=prev_in_tree(ld,ld->current_pos); +@@ -2021,7 +2021,7 @@ + TEXT(ld->already_in_use), + NULL, + 1, +- TEXT(T_OK),NULL,B_ENTER|B_ESC ++ TEXT(T_OK),NULL,BTN_ENTER|BTN_ESC + ); + return 1; + } +@@ -2086,7 +2086,7 @@ + d->items[a+4].fn=list_item_unselect; + + d->items[a+5].type=D_BUTTON; +- d->items[a+5].gid=B_ESC; ++ d->items[a+5].gid=BTN_ESC; + d->items[a+5].fn=cancel_dialog; + d->items[a+5].text=TEXT(T_CLOSE); + +diff -urN links-2.3pre2-orig/mailto.c links-2.3pre2/mailto.c +--- links-2.3pre2-orig/mailto.c 2011-04-19 15:17:49.000000000 +0000 ++++ links-2.3pre2/mailto.c 2011-05-13 09:04:16.292814848 +0000 +@@ -11,7 +11,7 @@ + { + unsigned char *prog, *cmd; + if (!(prog = get_prog(list)) || !*prog) { +- msg_box(term, NULL, TEXT(T_NO_PROGRAM), AL_CENTER | AL_EXTD_TEXT, TEXT(T_NO_PROGRAM_SPECIFIED_FOR), " ", name, ".", NULL, NULL, 1, TEXT(T_CANCEL), NULL, B_ENTER | B_ESC); ++ msg_box(term, NULL, TEXT(T_NO_PROGRAM), AL_CENTER | AL_EXTD_TEXT, TEXT(T_NO_PROGRAM_SPECIFIED_FOR), " ", name, ".", NULL, NULL, 1, TEXT(T_CANCEL), NULL, BTN_ENTER | BTN_ESC); + return; + } + if ((cmd = subst_file(prog, param, 0))) { +@@ -38,7 +38,7 @@ + fail1: + mem_free(user); + fail: +- if (f) msg_box(ses->term, NULL, TEXT(T_BAD_URL_SYNTAX), AL_CENTER, TEXT(T_BAD_MAILTO_URL), NULL, 1, TEXT(T_CANCEL), NULL, B_ENTER | B_ESC); ++ if (f) msg_box(ses->term, NULL, TEXT(T_BAD_URL_SYNTAX), AL_CENTER, TEXT(T_BAD_MAILTO_URL), NULL, 1, TEXT(T_CANCEL), NULL, BTN_ENTER | BTN_ESC); + } + + static void tn_func(struct session *ses, unsigned char *url, struct list_head *prog, unsigned char *t1, unsigned char *t2) +@@ -67,7 +67,7 @@ + fail1: + mem_free(hh); + fail: +- if (f) msg_box(ses->term, NULL, TEXT(T_BAD_URL_SYNTAX), AL_CENTER, t2, NULL, 1, TEXT(T_CANCEL), NULL, B_ENTER | B_ESC); ++ if (f) msg_box(ses->term, NULL, TEXT(T_BAD_URL_SYNTAX), AL_CENTER, t2, NULL, 1, TEXT(T_CANCEL), NULL, BTN_ENTER | BTN_ESC); + } + + +@@ -91,7 +91,7 @@ + void mms_func(struct session *ses, unsigned char *url) + { + if (check_shell_url(url)) { +- msg_box(ses->term, NULL, TEXT(T_BAD_URL_SYNTAX), AL_CENTER, TEXT(T_MMS_URL_CONTAINS_INACCEPTABLE_CHARACTERS), NULL, 1, TEXT(T_CANCEL), NULL, B_ENTER | B_ESC); ++ msg_box(ses->term, NULL, TEXT(T_BAD_URL_SYNTAX), AL_CENTER, TEXT(T_MMS_URL_CONTAINS_INACCEPTABLE_CHARACTERS), NULL, 1, TEXT(T_CANCEL), NULL, BTN_ENTER | BTN_ESC); + return; + } + prog_func(ses->term, &mms_prog, url, TEXT(T_MMS)); +diff -urN links-2.3pre2-orig/main.c links-2.3pre2/main.c +--- links-2.3pre2-orig/main.c 2011-04-19 15:17:49.000000000 +0000 ++++ links-2.3pre2/main.c 2011-05-13 09:04:16.313262080 +0000 +@@ -271,6 +271,7 @@ + + void initialize_all_subsystems(void); + void initialize_all_subsystems_2(void); ++extern void maybe_force_gr(void); + + static void init(void) + { +@@ -288,6 +289,9 @@ + retval = RET_FATAL; + goto ttt; + } ++#if defined(G) && defined(BEOS) ++ maybe_force_gr(); ++#endif + if (!(u = parse_options(g_argc - 1, g_argv + 1))) { + retval = RET_SYNTAX; + goto ttt; +diff -urN links-2.3pre2-orig/menu.c links-2.3pre2/menu.c +--- links-2.3pre2-orig/menu.c 2011-04-19 15:17:49.000000000 +0000 ++++ links-2.3pre2/menu.c 2011-05-13 09:19:13.692322304 +0000 +@@ -17,17 +17,17 @@ + + static void menu_about(struct terminal *term, void *d, struct session *ses) + { +- msg_box(term, NULL, TEXT(T_ABOUT), AL_CENTER, TEXT(T_LINKS__LYNX_LIKE), NULL, 1, TEXT(T_OK), NULL, B_ENTER | B_ESC); ++ msg_box(term, NULL, TEXT(T_ABOUT), AL_CENTER, TEXT(T_LINKS__LYNX_LIKE), NULL, 1, TEXT(T_OK), NULL, BTN_ENTER | BTN_ESC); + } + + static void menu_keys(struct terminal *term, void *d, struct session *ses) + { +- msg_box(term, NULL, TEXT(T_KEYS), AL_LEFT | AL_MONO, TEXT(T_KEYS_DESC), NULL, 1, TEXT(T_OK), NULL, B_ENTER | B_ESC); ++ msg_box(term, NULL, TEXT(T_KEYS), AL_LEFT | AL_MONO, TEXT(T_KEYS_DESC), NULL, 1, TEXT(T_OK), NULL, BTN_ENTER | BTN_ESC); + } + + static void menu_copying(struct terminal *term, void *d, struct session *ses) + { +- msg_box(term, NULL, TEXT(T_COPYING), AL_CENTER, TEXT(T_COPYING_DESC), NULL, 1, TEXT(T_OK), NULL, B_ENTER | B_ESC); ++ msg_box(term, NULL, TEXT(T_COPYING), AL_CENTER, TEXT(T_COPYING_DESC), NULL, 1, TEXT(T_OK), NULL, BTN_ENTER | BTN_ESC); + } + + static void menu_manual(struct terminal *term, void *d, struct session *ses) +@@ -88,7 +88,7 @@ + void query_exit(struct session *ses) + { + ses->exit_query = 1; +- msg_box(ses->term, NULL, TEXT(T_EXIT_LINKS), AL_CENTER, (ses->term->next == ses->term->prev && are_there_downloads()) ? TEXT(T_DO_YOU_REALLY_WANT_TO_EXIT_LINKS_AND_TERMINATE_ALL_DOWNLOADS) : (!F || ses->term->next == ses->term->prev) ? TEXT(T_DO_YOU_REALLY_WANT_TO_EXIT_LINKS) : TEXT(T_DO_YOU_REALLY_WANT_TO_CLOSE_WINDOW), ses, 2, TEXT(T_YES), (void (*)(void *))really_exit_prog, B_ENTER, TEXT(T_NO), dont_exit_prog, B_ESC); ++ msg_box(ses->term, NULL, TEXT(T_EXIT_LINKS), AL_CENTER, (ses->term->next == ses->term->prev && are_there_downloads()) ? TEXT(T_DO_YOU_REALLY_WANT_TO_EXIT_LINKS_AND_TERMINATE_ALL_DOWNLOADS) : (!F || ses->term->next == ses->term->prev) ? TEXT(T_DO_YOU_REALLY_WANT_TO_EXIT_LINKS) : TEXT(T_DO_YOU_REALLY_WANT_TO_CLOSE_WINDOW), ses, 2, TEXT(T_YES), (void (*)(void *))really_exit_prog, BTN_ENTER, TEXT(T_NO), dont_exit_prog, BTN_ESC); + } + + void exit_prog(struct terminal *term, void *d, struct session *ses) +@@ -215,7 +215,7 @@ + l = 0, a15 = init_str(); add_to_str(&a15, &l, ", "); add_num_to_str(&a15, &l, formatted_info(CI_LOCKED));add_to_str(&a15, &l, " "); + l = 0, a16 = init_str(); add_to_str(&a16, &l, "."); + +- if (!F) msg_box(term, getml(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, NULL), TEXT(T_RESOURCES), AL_LEFT | AL_EXTD_TEXT, TEXT(T_RESOURCES), a1, TEXT(T_HANDLES), a2, TEXT(T_TIMERS), a3, TEXT(T_CONNECTIONS), a4, TEXT(T_cONNECTIONS), a5, TEXT(T_CONNECTING), a6, TEXT(T_tRANSFERRING), a7, TEXT(T_KEEPALIVE), a8, TEXT(T_MEMORY_CACHE), a9, TEXT(T_BYTES), a10, TEXT(T_FILES), a11, TEXT(T_LOCKED), a12, TEXT(T_LOADING), a13, TEXT(T_FORMATTED_DOCUMENT_CACHE), a14, TEXT(T_DOCUMENTS), a15, TEXT(T_LOCKED), a16, NULL, r, 1, TEXT(T_OK), NULL, B_ENTER | B_ESC); ++ if (!F) msg_box(term, getml(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, NULL), TEXT(T_RESOURCES), AL_LEFT | AL_EXTD_TEXT, TEXT(T_RESOURCES), a1, TEXT(T_HANDLES), a2, TEXT(T_TIMERS), a3, TEXT(T_CONNECTIONS), a4, TEXT(T_cONNECTIONS), a5, TEXT(T_CONNECTING), a6, TEXT(T_tRANSFERRING), a7, TEXT(T_KEEPALIVE), a8, TEXT(T_MEMORY_CACHE), a9, TEXT(T_BYTES), a10, TEXT(T_FILES), a11, TEXT(T_LOCKED), a12, TEXT(T_LOADING), a13, TEXT(T_FORMATTED_DOCUMENT_CACHE), a14, TEXT(T_DOCUMENTS), a15, TEXT(T_LOCKED), a16, NULL, r, 1, TEXT(T_OK), NULL, BTN_ENTER | BTN_ESC); + #ifdef G + else msg_box(term, getml(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, + a12, a13, b14, b15, b16, b17, a14, a15, a16, +@@ -230,7 +230,7 @@ + TEXT(T_BYTES), b15, TEXT(T_IMAGES), b16, TEXT(T_LOCKED), + b17, TEXT(T_FONT_CACHE), c14, TEXT(T_BYTES), c15, + TEXT(T_BYTES_MAX), c16, TEXT(T_LETTERS), c17, +- TEXT(T_FORMATTED_DOCUMENT_CACHE), a14, TEXT(T_DOCUMENTS), a15, TEXT(T_LOCKED), a16, NULL, r, 1, TEXT(T_OK), NULL, B_ENTER | B_ESC); ++ TEXT(T_FORMATTED_DOCUMENT_CACHE), a14, TEXT(T_DOCUMENTS), a15, TEXT(T_LOCKED), a16, NULL, r, 1, TEXT(T_OK), NULL, BTN_ENTER | BTN_ESC); + #endif + r->win = term->windows.next; + ((struct dialog_data *)r->win->data)->dlg->abort = refresh_abort; +@@ -259,7 +259,7 @@ + add_to_str(&a, &l, "\n"); + add_to_str(&a, &l, ce->url); + } +- msg_box(term, getml(a, NULL), TEXT(T_CACHE_INFO), AL_LEFT | AL_EXTD_TEXT, TEXT(T_CACHE_CONTENT), a, NULL, r, 1, TEXT(T_OK), end_refresh, B_ENTER | B_ESC); ++ msg_box(term, getml(a, NULL), TEXT(T_CACHE_INFO), AL_LEFT | AL_EXTD_TEXT, TEXT(T_CACHE_CONTENT), a, NULL, r, 1, TEXT(T_OK), end_refresh, BTN_ENTER | BTN_ESC); + r->win = term->windows.next; + r->timer = install_timer(RESOURCE_INFO_REFRESH, (void (*)(void *))refresh, r); + /* !!! the refresh here is buggy */ +@@ -311,7 +311,7 @@ + } + #endif + p = stracpy(message); +- msg_box(term, getml(p, NULL), TEXT(T_MEMORY_INFO), AL_CENTER, p, r, 1, TEXT(T_OK), NULL, B_ENTER | B_ESC); ++ msg_box(term, getml(p, NULL), TEXT(T_MEMORY_INFO), AL_CENTER, p, r, 1, TEXT(T_OK), NULL, BTN_ENTER | BTN_ESC); + r->win = term->windows.next; + ((struct dialog_data *)r->win->data)->dlg->abort = refresh_abort; + r->timer = install_timer(RESOURCE_INFO_REFRESH, (void (*)(void *))refresh, r); +@@ -526,11 +526,11 @@ + d->items[9].dlen = sizeof(int); + d->items[9].data = (void *)&ts->braille; + d->items[10].type = D_BUTTON; +- d->items[10].gid = B_ENTER; ++ d->items[10].gid = BTN_ENTER; + d->items[10].fn = ok_dialog; + d->items[10].text = TEXT(T_OK); + d->items[11].type = D_BUTTON; +- d->items[11].gid = B_ESC; ++ d->items[11].gid = BTN_ESC; + d->items[11].fn = cancel_dialog; + d->items[11].text = TEXT(T_CANCEL); + d->items[12].type = D_END; +@@ -637,11 +637,11 @@ + d->items[8].gid = 1024; + d->items[8].gnum = 30*1024; + d->items[9].type = D_BUTTON; +- d->items[9].gid = B_ENTER; ++ d->items[9].gid = BTN_ENTER; + d->items[9].fn = ok_dialog; + d->items[9].text = TEXT(T_OK); + d->items[10].type = D_BUTTON; +- d->items[10].gid = B_ESC; ++ d->items[10].gid = BTN_ESC; + d->items[10].fn = cancel_dialog; + d->items[10].text = TEXT(T_CANCEL); + d->items[11].type = D_END; +@@ -742,11 +742,11 @@ + d->items[7].dlen = MAX_STR_LEN; + d->items[7].data = header->extra_header; + d->items[8].type = D_BUTTON; +- d->items[8].gid = B_ENTER; ++ d->items[8].gid = BTN_ENTER; + d->items[8].fn = ok_dialog; + d->items[8].text = TEXT(T_OK); + d->items[9].type = D_BUTTON; +- d->items[9].gid = B_ESC; ++ d->items[9].gid = BTN_ESC; + d->items[9].fn = cancel_dialog; + d->items[9].text = TEXT(T_CANCEL); + d->items[10].type = D_END; +@@ -798,11 +798,11 @@ + d->items[7].data = (void *)&options->header; + d->items[7].dlen = sizeof(struct http_header_options); + d->items[8].type = D_BUTTON; +- d->items[8].gid = B_ENTER; ++ d->items[8].gid = BTN_ENTER; + d->items[8].fn = ok_dialog; + d->items[8].text = TEXT(T_OK); + d->items[9].type = D_BUTTON; +- d->items[9].gid = B_ESC; ++ d->items[9].gid = BTN_ESC; + d->items[9].fn = cancel_dialog; + d->items[9].text = TEXT(T_CANCEL); + d->items[10].type = D_END; +@@ -877,12 +877,12 @@ + a = 3; + #endif + d->items[a].type = D_BUTTON; +- d->items[a].gid = B_ENTER; ++ d->items[a].gid = BTN_ENTER; + d->items[a].fn = ok_dialog; + d->items[a].text = TEXT(T_OK); + a++; + d->items[a].type = D_BUTTON; +- d->items[a].gid = B_ESC; ++ d->items[a].gid = BTN_ESC; + d->items[a].fn = cancel_dialog; + d->items[a].text = TEXT(T_CANCEL); + a++; +@@ -1100,11 +1100,11 @@ + d->items[13].dlen = sizeof(int); + d->items[13].data = (void *)&gamma_bits; + d->items[14].type = D_BUTTON; +- d->items[14].gid = B_ENTER; ++ d->items[14].gid = BTN_ENTER; + d->items[14].fn = ok_dialog; + d->items[14].text = TEXT(T_OK); + d->items[15].type = D_BUTTON; +- d->items[15].gid = B_ESC; ++ d->items[15].gid = BTN_ESC; + d->items[15].fn = cancel_dialog; + d->items[15].text = TEXT(T_CANCEL); + d->items[16].type = D_END; +@@ -1226,11 +1226,11 @@ + d->items[4].data = (unsigned char *)&p->only_proxies; + d->items[4].dlen = sizeof(int); + d->items[5].type = D_BUTTON; +- d->items[5].gid = B_ENTER; ++ d->items[5].gid = BTN_ENTER; + d->items[5].fn = ok_dialog; + d->items[5].text = TEXT(T_OK); + d->items[6].type = D_BUTTON; +- d->items[6].gid = B_ESC; ++ d->items[6].gid = BTN_ESC; + d->items[6].fn = cancel_dialog; + d->items[6].text = TEXT(T_CANCEL); + d->items[7].type = D_END; +@@ -1319,11 +1319,11 @@ + d->items[9].data = (unsigned char *)&ftp_options; + d->items[9].dlen = sizeof(struct ftp_options); + d->items[10].type = D_BUTTON; +- d->items[10].gid = B_ENTER; ++ d->items[10].gid = BTN_ENTER; + d->items[10].fn = ok_dialog; + d->items[10].text = TEXT(T_OK); + d->items[11].type = D_BUTTON; +- d->items[11].gid = B_ESC; ++ d->items[11].gid = BTN_ESC; + d->items[11].fn = cancel_dialog; + d->items[11].text = TEXT(T_CANCEL); + d->items[12].type = D_END; +@@ -1469,11 +1469,11 @@ + } + #endif + d->items[a].type = D_BUTTON; +- d->items[a].gid = B_ENTER; ++ d->items[a].gid = BTN_ENTER; + d->items[a].fn = ok_dialog; + d->items[a++].text = TEXT(T_OK); + d->items[a].type = D_BUTTON; +- d->items[a].gid = B_ESC; ++ d->items[a].gid = BTN_ESC; + d->items[a].fn = cancel_dialog; + d->items[a++].text = TEXT(T_CANCEL); + d->items[a].type = D_END; +@@ -1486,7 +1486,7 @@ + net_options(term, xxx, yyy); + return; + } +- msg_box(term, NULL, _("Network options"), AL_CENTER, _("Warning: configuring network will terminate all running downloads. Do you really want to configure network?"), term, 2, _("Yes"), (void (*)(void *))net_options, B_ENTER, _("No"), NULL, B_ESC); ++ msg_box(term, NULL, _("Network options"), AL_CENTER, _("Warning: configuring network will terminate all running downloads. Do you really want to configure network?"), term, 2, _("Yes"), (void (*)(void *))net_options, BTN_ENTER, _("No"), NULL, BTN_ESC); + }*/ + + static unsigned char mc_str[8]; +@@ -1568,12 +1568,12 @@ + d->items[a].data = (void *)&aggressive_cache; + a++; + d->items[a].type = D_BUTTON; +- d->items[a].gid = B_ENTER; ++ d->items[a].gid = BTN_ENTER; + d->items[a].fn = ok_dialog; + d->items[a].text = TEXT(T_OK); + a++; + d->items[a].type = D_BUTTON; +- d->items[a].gid = B_ESC; ++ d->items[a].gid = BTN_ESC; + d->items[a].fn = cancel_dialog; + d->items[a].text = TEXT(T_CANCEL); + a++; +@@ -1733,12 +1733,12 @@ + a++; + if (!F){ + d->items[a].type = D_BUTTON; +- d->items[a].gid = B_ENTER; ++ d->items[a].gid = BTN_ENTER; + d->items[a].fn = ok_dialog; + d->items[a].text = TEXT(T_OK); + a++; + d->items[a].type = D_BUTTON; +- d->items[a].gid = B_ESC; ++ d->items[a].gid = BTN_ESC; + d->items[a].fn = cancel_dialog; + d->items[a].text = TEXT(T_CANCEL); + a++; +@@ -1764,12 +1764,12 @@ + d->items[a].dlen = sizeof(int); + a++; + d->items[a].type = D_BUTTON; +- d->items[a].gid = B_ENTER; ++ d->items[a].gid = BTN_ENTER; + d->items[a].fn = ok_dialog; + d->items[a].text = TEXT(T_OK); + a++; + d->items[a].type = D_BUTTON; +- d->items[a].gid = B_ESC; ++ d->items[a].gid = BTN_ESC; + d->items[a].fn = cancel_dialog; + d->items[a].text = TEXT(T_CANCEL); + a++; +@@ -2025,12 +2025,12 @@ + } + #endif + d->items[a].type = D_BUTTON; +- d->items[a].gid = B_ENTER; ++ d->items[a].gid = BTN_ENTER; + d->items[a].fn = ok_dialog; + d->items[a].text = TEXT(T_OK); + a++; + d->items[a].type = D_BUTTON; +- d->items[a].gid = B_ESC; ++ d->items[a].gid = BTN_ESC; + d->items[a].fn = cancel_dialog; + d->items[a].text = TEXT(T_CANCEL); + a++; +@@ -2098,11 +2098,11 @@ + d->items[1].gid = 1; + d->items[1].gnum = 999; + d->items[2].type = D_BUTTON; +- d->items[2].gid = B_ENTER; ++ d->items[2].gid = BTN_ENTER; + d->items[2].fn = ok_dialog; + d->items[2].text = TEXT(T_OK); + d->items[3].type = D_BUTTON; +- d->items[3].gid = B_ESC; ++ d->items[3].gid = BTN_ESC; + d->items[3].fn = cancel_dialog; + d->items[3].text = TEXT(T_CANCEL); + d->items[4].type = D_END; +@@ -2495,8 +2495,8 @@ + TEXT(T_FILE), " ", h->file, " ", TEXT(T_ALREADY_EXISTS_AS_DOWNLOAD), " ", TEXT(T_DO_YOU_WISH_TO_OVERWRITE), NULL, + h, + 3, +- TEXT(T_OVERWRITE), does_file_exist_ok, B_ENTER, +- TEXT(T_CANCEL), does_file_exist_cancel, B_ESC, ++ TEXT(T_OVERWRITE), does_file_exist_ok, BTN_ENTER, ++ TEXT(T_CANCEL), does_file_exist_cancel, BTN_ESC, + TEXT(T_RENAME), does_file_exist_rename, NULL + ); + return; +@@ -2525,8 +2525,8 @@ + TEXT(T_FILE), " ", h->file, " ", TEXT(T_ALREADY_EXISTS), " ", TEXT(T_DO_YOU_WISH_TO_OVERWRITE), NULL, + h, + 3, +- TEXT(T_OVERWRITE), does_file_exist_ok, B_ENTER, +- TEXT(T_CANCEL), does_file_exist_cancel, B_ESC, ++ TEXT(T_OVERWRITE), does_file_exist_ok, BTN_ENTER, ++ TEXT(T_CANCEL), does_file_exist_cancel, BTN_ESC, + TEXT(T_RENAME), does_file_exist_rename, NULL + ); + } +diff -urN links-2.3pre2-orig/objreq.c links-2.3pre2/objreq.c +--- links-2.3pre2-orig/objreq.c 2011-04-19 15:17:49.000000000 +0000 ++++ links-2.3pre2/objreq.c 2011-05-13 09:04:16.414711808 +0000 +@@ -163,12 +163,12 @@ + d->items[1].data = a->passwd; + + d->items[2].type = D_BUTTON; +- d->items[2].gid = B_ENTER; ++ d->items[2].gid = BTN_ENTER; + d->items[2].fn = auth_ok; + d->items[2].text = TEXT(T_OK); + + d->items[3].type = D_BUTTON; +- d->items[3].gid = B_ESC; ++ d->items[3].gid = BTN_ESC; + d->items[3].fn = auth_cancel; + d->items[3].text = TEXT(T_CANCEL); + +diff -urN links-2.3pre2-orig/os_dep.c links-2.3pre2/os_dep.c +--- links-2.3pre2-orig/os_dep.c 2011-04-19 15:17:49.000000000 +0000 ++++ links-2.3pre2/os_dep.c 2011-05-13 09:04:16.451674112 +0000 +@@ -1059,7 +1059,7 @@ + + #if defined(BEOS) + +-#include ++#include + + int thr_sem_init = 0; + sem_id thr_sem; +@@ -1251,16 +1251,16 @@ + ev.x = ms->col; + ev.y = ms->row; + /*debug("status: %d %d %d", ms->col, ms->row, ms->fs);*/ +- if (ms->fs & (MOUSE_BN1_DOWN | MOUSE_BN2_DOWN | MOUSE_BN3_DOWN)) ev.b = status = B_DOWN | (ms->fs & MOUSE_BN1_DOWN ? B_LEFT : ms->fs & MOUSE_BN2_DOWN ? B_MIDDLE : B_RIGHT); ++ if (ms->fs & (MOUSE_BN1_DOWN | MOUSE_BN2_DOWN | MOUSE_BN3_DOWN)) ev.b = status = BTN_DOWN | (ms->fs & MOUSE_BN1_DOWN ? BTN_LEFT : ms->fs & MOUSE_BN2_DOWN ? BTN_MIDDLE : BTN_RIGHT); + else if (ms->fs & (MOUSE_MOTION_WITH_BN1_DOWN | MOUSE_MOTION_WITH_BN2_DOWN | MOUSE_MOTION_WITH_BN3_DOWN)) { +- int b = ms->fs & MOUSE_MOTION_WITH_BN1_DOWN ? B_LEFT : ms->fs & MOUSE_MOTION_WITH_BN2_DOWN ? B_MIDDLE : B_RIGHT; +- if (status == -1) b |= B_DOWN; +- else b |= B_DRAG; ++ int b = ms->fs & MOUSE_MOTION_WITH_BN1_DOWN ? BTN_LEFT : ms->fs & MOUSE_MOTION_WITH_BN2_DOWN ? BTN_MIDDLE : BTN_RIGHT; ++ if (status == -1) b |= BTN_DOWN; ++ else b |= BTN_DRAG; + ev.b = status = b; + } + else { + if (status == -1) continue; +- ev.b = (status & BM_BUTT) | B_UP; ++ ev.b = (status & BM_BUTT) | BTN_UP; + status = -1; + } + if (hard_write(oms->p[1], (unsigned char *)&ev, sizeof(struct event)) != sizeof(struct event)) break; +@@ -1634,13 +1634,13 @@ + ev.y = gev.y - 1; + if (ev.x < 0) ev.x = 0; + if (ev.y < 0) ev.y = 0; +- if (gev.buttons & GPM_B_LEFT) ev.b = B_LEFT; +- else if (gev.buttons & GPM_B_MIDDLE) ev.b = B_MIDDLE; +- else if (gev.buttons & GPM_B_RIGHT) ev.b = B_RIGHT; ++ if (gev.buttons & GPM_B_LEFT) ev.b = BTN_LEFT; ++ else if (gev.buttons & GPM_B_MIDDLE) ev.b = BTN_MIDDLE; ++ else if (gev.buttons & GPM_B_RIGHT) ev.b = BTN_RIGHT; + else return; +- if (gev.type & GPM_DOWN) ev.b |= B_DOWN; +- else if (gev.type & GPM_UP) ev.b |= B_UP; +- else if (gev.type & GPM_DRAG) ev.b |= B_DRAG; ++ if (gev.type & GPM_DOWN) ev.b |= BTN_DOWN; ++ else if (gev.type & GPM_UP) ev.b |= BTN_UP; ++ else if (gev.type & GPM_DRAG) ev.b |= BTN_DRAG; + else return; + gms->fn(gms->data, (char *)&ev, sizeof(struct event)); + } +diff -urN links-2.3pre2-orig/os_dep.h links-2.3pre2/os_dep.h +--- links-2.3pre2-orig/os_dep.h 2007-12-26 03:13:05.000000000 +0000 ++++ links-2.3pre2/os_dep.h 2011-05-13 09:34:37.000000000 +0000 +@@ -20,7 +20,7 @@ + #define OS2 + #elif defined(_WIN32) || defined(__CYGWIN__) + #define WIN32 +-#elif defined(__BEOS__) ++#elif defined(__BEOS__) || defined(__HAIKU__) + #define BEOS + #elif defined(__riscos__) + #define RISCOS +@@ -111,11 +111,15 @@ + #define SHARED_CONFIG_DIR "/etc/" + #define NO_FORK_ON_EXIT + #define ASSOC_BLOCK ++#define SET_WINDOW_TITLE_UTF_8 + + #include + #include +-#include ++#include + ++#ifdef __cplusplus ++extern "C" { ++#endif + int be_socket(int, int, int); + int be_connect(int, struct sockaddr *, int); + int be_getpeername(int, struct sockaddr *, int *); +@@ -129,6 +133,9 @@ + int be_close(int); + int be_select(int, struct fd_set *, struct fd_set *, struct fd_set *, struct timeval *); + int be_getsockopt(int, int, int, void *, int *); ++#ifdef __cplusplus ++} ++#endif + + #elif defined(RISCOS) + +diff -urN links-2.3pre2-orig/os_depx.h links-2.3pre2/os_depx.h +--- links-2.3pre2-orig/os_depx.h 2007-07-07 02:55:24.000000000 +0000 ++++ links-2.3pre2/os_depx.h 2011-05-13 09:04:16.484966400 +0000 +@@ -45,6 +45,8 @@ + #endif + + #ifdef BEOS ++#if IPPROTO_TCP != 6 ++/* net_server */ + #define socket be_socket + #define connect be_connect + #define getpeername be_getpeername +@@ -58,16 +60,22 @@ + #define close be_close + #define select be_select + #define getsockopt be_getsockopt ++/* ++#ifdef errno ++#undef errno ++#endif ++#define errno 1 ++*/ ++#endif + #ifndef PF_INET + #define PF_INET AF_INET + #endif + #ifndef SO_ERROR + #define SO_ERROR 10001 + #endif +-#ifdef errno +-#undef errno ++#ifndef FDSETSIZE ++#define FDSETSIZE FD_SETSIZE + #endif +-#define errno 1 + #endif + + #if defined(O_SIZE) && defined(__EMX__) +@@ -83,6 +91,9 @@ + #elif defined(GRDRV_ATHEOS) + #define loop_select ath_select + int ath_select(int n, fd_set *r, fd_set *w, fd_set *e, struct timeval *t); ++#elif defined(GRDRV_BEOS) ++#define loop_select be_loop_select ++int be_loop_select(int n, fd_set *r, fd_set *w, fd_set *e, struct timeval *t); + #else + #define loop_select select + #endif +diff -urN links-2.3pre2-orig/pmshell.c links-2.3pre2/pmshell.c +--- links-2.3pre2-orig/pmshell.c 2011-04-19 15:17:49.000000000 +0000 ++++ links-2.3pre2/pmshell.c 2011-05-13 09:04:16.524025856 +0000 +@@ -287,33 +287,33 @@ + case WM_BUTTON1DOWN: + pm_lock; + if (!(win = pm_lookup_window(hwnd))) { pm_unlock; break; } +- win->button |= 1 << B_LEFT; ++ win->button |= 1 << BTN_LEFT; + win->lastpos = (unsigned)mp1; +- pm_send_event(win, E_MOUSE, (unsigned)mp1 & 0xffff, win->y - ((unsigned)mp1 >> 16), B_DOWN | B_LEFT, 0); ++ pm_send_event(win, E_MOUSE, (unsigned)mp1 & 0xffff, win->y - ((unsigned)mp1 >> 16), BTN_DOWN | BTN_LEFT, 0); + pm_unlock; + break; + case WM_BUTTON2DOWN: + pm_lock; + if (!(win = pm_lookup_window(hwnd))) { pm_unlock; break; } +- win->button |= 1 << B_RIGHT; ++ win->button |= 1 << BTN_RIGHT; + win->lastpos = (unsigned)mp1; +- pm_send_event(win, E_MOUSE, (unsigned)mp1 & 0xffff, win->y - ((unsigned)mp1 >> 16), B_DOWN | B_RIGHT, 0); ++ pm_send_event(win, E_MOUSE, (unsigned)mp1 & 0xffff, win->y - ((unsigned)mp1 >> 16), BTN_DOWN | BTN_RIGHT, 0); + pm_unlock; + break; + case WM_BUTTON3DOWN: + pm_lock; + if (!(win = pm_lookup_window(hwnd))) { pm_unlock; break; } +- win->button |= 1 << B_MIDDLE; ++ win->button |= 1 << BTN_MIDDLE; + win->lastpos = (unsigned)mp1; +- pm_send_event(win, E_MOUSE, (unsigned)mp1 & 0xffff, win->y - ((unsigned)mp1 >> 16), B_DOWN | B_MIDDLE, 0); ++ pm_send_event(win, E_MOUSE, (unsigned)mp1 & 0xffff, win->y - ((unsigned)mp1 >> 16), BTN_DOWN | BTN_MIDDLE, 0); + pm_unlock; + break; + case WM_BUTTON1UP: + case WM_BUTTON1MOTIONEND: + pm_lock; + if (!(win = pm_lookup_window(hwnd))) { pm_unlock; break; } +- if (win->button & (1 << B_LEFT)) pm_send_event(win, E_MOUSE, (unsigned)mp1 & 0xffff, win->y - ((unsigned)mp1 >> 16), B_UP | B_LEFT, 0); +- win->button &= ~(1 << B_LEFT); ++ if (win->button & (1 << BTN_LEFT)) pm_send_event(win, E_MOUSE, (unsigned)mp1 & 0xffff, win->y - ((unsigned)mp1 >> 16), BTN_UP | BTN_LEFT, 0); ++ win->button &= ~(1 << BTN_LEFT); + win->lastpos = (unsigned)mp1; + pm_unlock; + break; +@@ -321,8 +321,8 @@ + case WM_BUTTON2MOTIONEND: + pm_lock; + if (!(win = pm_lookup_window(hwnd))) { pm_unlock; break; } +- if (win->button & (1 << B_RIGHT)) pm_send_event(win, E_MOUSE, (unsigned)mp1 & 0xffff, win->y - ((unsigned)mp1 >> 16), B_UP | B_RIGHT, 0); +- win->button &= ~(1 << B_RIGHT); ++ if (win->button & (1 << BTN_RIGHT)) pm_send_event(win, E_MOUSE, (unsigned)mp1 & 0xffff, win->y - ((unsigned)mp1 >> 16), BTN_UP | BTN_RIGHT, 0); ++ win->button &= ~(1 << BTN_RIGHT); + win->lastpos = (unsigned)mp1; + pm_unlock; + break; +@@ -330,8 +330,8 @@ + case WM_BUTTON3MOTIONEND: + pm_lock; + if (!(win = pm_lookup_window(hwnd))) { pm_unlock; break; } +- if (win->button & (1 << B_MIDDLE)) pm_send_event(win, E_MOUSE, (unsigned)mp1 & 0xffff, win->y - ((unsigned)mp1 >> 16), B_UP | B_MIDDLE, 0); +- win->button &= ~(1 << B_MIDDLE); ++ if (win->button & (1 << BTN_MIDDLE)) pm_send_event(win, E_MOUSE, (unsigned)mp1 & 0xffff, win->y - ((unsigned)mp1 >> 16), BTN_UP | BTN_MIDDLE, 0); ++ win->button &= ~(1 << BTN_MIDDLE); + win->lastpos = (unsigned)mp1; + pm_unlock; + break; +@@ -340,19 +340,19 @@ + if (!(win = pm_lookup_window(hwnd))) { pm_unlock; break; } + if (win->lastpos == (unsigned)mp1) { pm_unlock; break; } + win->lastpos = (unsigned)mp1; +- pm_send_mouse_event(win, (unsigned)mp1 & 0xffff, win->y - ((unsigned)mp1 >> 16), (win->button ? B_DRAG : B_MOVE) | (win->button & (1 << B_LEFT) ? B_LEFT : win->button & (1 << B_MIDDLE) ? B_MIDDLE : win->button & (1 << B_RIGHT) ? B_RIGHT : 0)); ++ pm_send_mouse_event(win, (unsigned)mp1 & 0xffff, win->y - ((unsigned)mp1 >> 16), (win->button ? BTN_DRAG : BTN_MOVE) | (win->button & (1 << BTN_LEFT) ? BTN_LEFT : win->button & (1 << BTN_MIDDLE) ? BTN_MIDDLE : win->button & (1 << BTN_RIGHT) ? BTN_RIGHT : 0)); + pm_unlock; + break; + case WM_VSCROLL: + pm_lock; + if (!(win = pm_lookup_window(hwnd))) { pm_unlock; break; } +- if ((unsigned)mp2 == SB_LINEUP << 16 || (unsigned)mp2 == SB_LINEDOWN << 16) pm_send_event(win, E_MOUSE, win->lastpos & 0xffff, win->y - (win->lastpos >> 16), ((unsigned)mp2 == SB_LINEUP << 16 ? B_WHEELUP1 : B_WHEELDOWN1) | B_MOVE, 0); ++ if ((unsigned)mp2 == SB_LINEUP << 16 || (unsigned)mp2 == SB_LINEDOWN << 16) pm_send_event(win, E_MOUSE, win->lastpos & 0xffff, win->y - (win->lastpos >> 16), ((unsigned)mp2 == SB_LINEUP << 16 ? BTN_WHEELUP1 : BTN_WHEELDOWN1) | BTN_MOVE, 0); + pm_unlock; + break; + case WM_HSCROLL: + pm_lock; + if (!(win = pm_lookup_window(hwnd))) { pm_unlock; break; } +- if ((unsigned)mp2 == SB_LINELEFT << 16 || (unsigned)mp2 == SB_LINERIGHT << 16) pm_send_event(win, E_MOUSE, win->lastpos & 0xffff, win->y - (win->lastpos >> 16), ((unsigned)mp2 == SB_LINELEFT << 16 ? B_WHEELLEFT1 : B_WHEELRIGHT1) | B_MOVE, 0); ++ if ((unsigned)mp2 == SB_LINELEFT << 16 || (unsigned)mp2 == SB_LINERIGHT << 16) pm_send_event(win, E_MOUSE, win->lastpos & 0xffff, win->y - (win->lastpos >> 16), ((unsigned)mp2 == SB_LINELEFT << 16 ? BTN_WHEELLEFT1 : BTN_WHEELRIGHT1) | BTN_MOVE, 0); + pm_unlock; + break; + } +diff -urN links-2.3pre2-orig/session.c links-2.3pre2/session.c +--- links-2.3pre2-orig/session.c 2011-04-19 15:17:50.000000000 +0000 ++++ links-2.3pre2/session.c 2011-05-13 09:04:16.556269568 +0000 +@@ -195,7 +195,7 @@ + unsigned char *u = stracpy(title); + if (strchr(u, POST_CHAR)) *strchr(u, POST_CHAR) = 0; + if (!t) return; +- msg_box(ses->term, getml(u, NULL), TEXT(T_ERROR), AL_CENTER | AL_EXTD_TEXT, TEXT(T_ERROR_LOADING), " ", u, ":\n\n", t, NULL, ses, 1, TEXT(T_CANCEL), NULL, B_ENTER | B_ESC/*, _("Retry"), NULL, 0 !!! FIXME: retry */); ++ msg_box(ses->term, getml(u, NULL), TEXT(T_ERROR), AL_CENTER | AL_EXTD_TEXT, TEXT(T_ERROR_LOADING), " ", u, ":\n\n", t, NULL, ses, 1, TEXT(T_CANCEL), NULL, BTN_ENTER | BTN_ESC/*, _("Retry"), NULL, 0 !!! FIXME: retry */); + } + + static inline unsigned char hx(int a) +@@ -477,7 +477,7 @@ + dlg->udata = down; + dlg->align = AL_CENTER; + dlg->items[0].type = D_BUTTON; +- dlg->items[0].gid = B_ENTER | B_ESC; ++ dlg->items[0].gid = BTN_ENTER | BTN_ESC; + dlg->items[0].fn = dlg_undisplay_download; + dlg->items[0].text = TEXT(T_BACKGROUND); + dlg->items[1].type = D_BUTTON; +@@ -625,7 +625,7 @@ + if (get_download_ses(down)) { + unsigned char *emsg = stracpy(errno ? strerror(errno) : "Zero returned"); + unsigned char *msg = stracpy(down->file); +- msg_box(get_download_ses(down)->term, getml(msg, emsg, NULL), TEXT(T_DOWNLOAD_ERROR), AL_CENTER | AL_EXTD_TEXT, TEXT(T_COULD_NOT_WRITE_TO_FILE), " ", msg, ": ", emsg, NULL, NULL, 1, TEXT(T_CANCEL), NULL, B_ENTER | B_ESC); ++ msg_box(get_download_ses(down)->term, getml(msg, emsg, NULL), TEXT(T_DOWNLOAD_ERROR), AL_CENTER | AL_EXTD_TEXT, TEXT(T_COULD_NOT_WRITE_TO_FILE), " ", msg, ": ", emsg, NULL, NULL, 1, TEXT(T_CANCEL), NULL, BTN_ENTER | BTN_ESC); + } + return -1; + } +@@ -715,7 +715,7 @@ + if (t) { + unsigned char *tt = stracpy(down->url); + if (strchr(tt, POST_CHAR)) *strchr(tt, POST_CHAR) = 0; +- msg_box(get_download_ses(down)->term, getml(tt, NULL), TEXT(T_DOWNLOAD_ERROR), AL_CENTER | AL_EXTD_TEXT, TEXT(T_ERROR_DOWNLOADING), " ", tt, ":\n\n", t, NULL, get_download_ses(down), 1, TEXT(T_CANCEL), NULL, B_ENTER | B_ESC/*, TEXT(T_RETRY), NULL, 0 !!! FIXME: retry */); ++ msg_box(get_download_ses(down)->term, getml(tt, NULL), TEXT(T_DOWNLOAD_ERROR), AL_CENTER | AL_EXTD_TEXT, TEXT(T_ERROR_DOWNLOADING), " ", tt, ":\n\n", t, NULL, get_download_ses(down), 1, TEXT(T_CANCEL), NULL, BTN_ENTER | BTN_ESC/*, TEXT(T_RETRY), NULL, 0 !!! FIXME: retry */); + } + } else { + if (down->prog) { +@@ -792,7 +792,7 @@ + if (!ses) goto x; + msg = stracpy(file); + msge = stracpy(strerror(errno)); +- msg_box(ses->term, getml(msg, msge, NULL), TEXT(T_DOWNLOAD_ERROR), AL_CENTER | AL_EXTD_TEXT, TEXT(T_COULD_NOT_CREATE_FILE), " ", msg, ": ", msge, NULL, NULL, 1, TEXT(T_CANCEL), NULL, B_ENTER | B_ESC); ++ msg_box(ses->term, getml(msg, msge, NULL), TEXT(T_DOWNLOAD_ERROR), AL_CENTER | AL_EXTD_TEXT, TEXT(T_COULD_NOT_CREATE_FILE), " ", msg, ": ", msge, NULL, NULL, 1, TEXT(T_CANCEL), NULL, BTN_ENTER | BTN_ESC); + goto x; + } + set_bin(h); +@@ -1545,7 +1545,7 @@ + } + u = stracpy(ce->url); + if ((uu = strchr(u, POST_CHAR))) *uu = 0; +- msg_box(term, getml(u, NULL), TEXT(T_DECOMPRESSION_ERROR), AL_CENTER | AL_EXTD_TEXT, TEXT(T_ERROR_DECOMPRESSING_), u, TEXT(T__wITH_), lib, ": ", msg, NULL, NULL, 1, TEXT(T_CANCEL), NULL, B_ENTER | B_ESC); ++ msg_box(term, getml(u, NULL), TEXT(T_DECOMPRESSION_ERROR), AL_CENTER | AL_EXTD_TEXT, TEXT(T_ERROR_DECOMPRESSING_), u, TEXT(T__wITH_), lib, ": ", msg, NULL, NULL, 1, TEXT(T_CANCEL), NULL, BTN_ENTER | BTN_ESC); + } + #endif + +@@ -2196,7 +2196,7 @@ + mem_free(file); + goto new_name; + } +- msg_box(ses->term, NULL, TEXT(T_DOWNLOAD_ERROR), AL_CENTER | AL_EXTD_TEXT, TEXT(T_COULD_NOT_CREATE_TEMPORARY_FILE), NULL, NULL, 1, TEXT(T_CANCEL), NULL, B_ENTER | B_ESC); ++ msg_box(ses->term, NULL, TEXT(T_DOWNLOAD_ERROR), AL_CENTER | AL_EXTD_TEXT, TEXT(T_COULD_NOT_CREATE_TEMPORARY_FILE), NULL, NULL, 1, TEXT(T_CANCEL), NULL, BTN_ENTER | BTN_ESC); + } + if (ses->tq_prog) mem_free(file); + tp_cancel(ses); +@@ -2419,7 +2419,7 @@ + i++; + d->items[i].type = D_BUTTON; + d->items[i].fn = prog_sel_cancel; +- d->items[i].gid = B_ESC; ++ d->items[i].gid = BTN_ESC; + d->items[i].text = TEXT(T_CANCEL); + d->items[i+1].type = D_END; + do_dialog(ses->term, d, ml); +@@ -2445,12 +2445,12 @@ + } + m1 = stracpy(ct); + if (!a) { +- if (!anonymous) msg_box(ses->term, getml(m1, NULL), TEXT(T_UNKNOWN_TYPE), AL_CENTER | AL_EXTD_TEXT, TEXT(T_CONTEN_TYPE_IS), " ", m1, ".\n", TEXT(T_DO_YOU_WANT_TO_SAVE_OR_DISLPAY_THIS_FILE), NULL, ses, 3, TEXT(T_SAVE), tp_save, B_ENTER, TEXT(T_DISPLAY), tp_display, 0, TEXT(T_CANCEL), tp_cancel, B_ESC); +- else msg_box(ses->term, getml(m1, NULL), TEXT(T_UNKNOWN_TYPE), AL_CENTER | AL_EXTD_TEXT, TEXT(T_CONTEN_TYPE_IS), " ", m1, ".\n", TEXT(T_DO_YOU_WANT_TO_SAVE_OR_DISLPAY_THIS_FILE), NULL, ses, 2, TEXT(T_DISPLAY), tp_display, B_ENTER, TEXT(T_CANCEL), tp_cancel, B_ESC); ++ if (!anonymous) msg_box(ses->term, getml(m1, NULL), TEXT(T_UNKNOWN_TYPE), AL_CENTER | AL_EXTD_TEXT, TEXT(T_CONTEN_TYPE_IS), " ", m1, ".\n", TEXT(T_DO_YOU_WANT_TO_SAVE_OR_DISLPAY_THIS_FILE), NULL, ses, 3, TEXT(T_SAVE), tp_save, BTN_ENTER, TEXT(T_DISPLAY), tp_display, 0, TEXT(T_CANCEL), tp_cancel, BTN_ESC); ++ else msg_box(ses->term, getml(m1, NULL), TEXT(T_UNKNOWN_TYPE), AL_CENTER | AL_EXTD_TEXT, TEXT(T_CONTEN_TYPE_IS), " ", m1, ".\n", TEXT(T_DO_YOU_WANT_TO_SAVE_OR_DISLPAY_THIS_FILE), NULL, ses, 2, TEXT(T_DISPLAY), tp_display, BTN_ENTER, TEXT(T_CANCEL), tp_cancel, BTN_ESC); + } else { + m2 = stracpy(a[0].label ? a[0].label : (unsigned char *)""); +- if (!anonymous) msg_box(ses->term, getml(m1, m2, NULL), TEXT(T_WHAT_TO_DO), AL_CENTER | AL_EXTD_TEXT, TEXT(T_CONTEN_TYPE_IS), " ", m1, ".\n", TEXT(T_DO_YOU_WANT_TO_OPEN_FILE_WITH), " ", m2, ", ", TEXT(T_SAVE_IT_OR_DISPLAY_IT), NULL, ses, 4, TEXT(T_OPEN), tp_open, B_ENTER, TEXT(T_SAVE), tp_save, 0, TEXT(T_DISPLAY), tp_display, 0, TEXT(T_CANCEL), tp_cancel, B_ESC); +- else msg_box(ses->term, getml(m1, m2, NULL), TEXT(T_WHAT_TO_DO), AL_CENTER | AL_EXTD_TEXT, TEXT(T_CONTEN_TYPE_IS), " ", m1, ".\n", TEXT(T_DO_YOU_WANT_TO_OPEN_FILE_WITH), " ", m2, ", ", TEXT(T_SAVE_IT_OR_DISPLAY_IT), NULL, ses, 3, TEXT(T_OPEN), tp_open, B_ENTER, TEXT(T_DISPLAY), tp_display, 0, TEXT(T_CANCEL), tp_cancel, B_ESC); ++ if (!anonymous) msg_box(ses->term, getml(m1, m2, NULL), TEXT(T_WHAT_TO_DO), AL_CENTER | AL_EXTD_TEXT, TEXT(T_CONTEN_TYPE_IS), " ", m1, ".\n", TEXT(T_DO_YOU_WANT_TO_OPEN_FILE_WITH), " ", m2, ", ", TEXT(T_SAVE_IT_OR_DISPLAY_IT), NULL, ses, 4, TEXT(T_OPEN), tp_open, BTN_ENTER, TEXT(T_SAVE), tp_save, 0, TEXT(T_DISPLAY), tp_display, 0, TEXT(T_CANCEL), tp_cancel, BTN_ESC); ++ else msg_box(ses->term, getml(m1, m2, NULL), TEXT(T_WHAT_TO_DO), AL_CENTER | AL_EXTD_TEXT, TEXT(T_CONTEN_TYPE_IS), " ", m1, ".\n", TEXT(T_DO_YOU_WANT_TO_OPEN_FILE_WITH), " ", m2, ", ", TEXT(T_SAVE_IT_OR_DISPLAY_IT), NULL, ses, 3, TEXT(T_OPEN), tp_open, BTN_ENTER, TEXT(T_DISPLAY), tp_display, 0, TEXT(T_CANCEL), tp_cancel, BTN_ESC); + } + if (n)mem_free(a); + if (ct)mem_free(ct); +@@ -2546,7 +2546,7 @@ + ses_destroy_defered_jump(ses); + if ((fn = get_external_protocol_function(url))) { + if (proxies.only_proxies && url_bypasses_socks(url)) { +- msg_box(ses->term, NULL, TEXT(T_ERROR), AL_CENTER, TEXT(T_NO_PROXY), NULL, 1, TEXT(T_CANCEL), NULL, B_ENTER | B_ESC); ++ msg_box(ses->term, NULL, TEXT(T_ERROR), AL_CENTER, TEXT(T_NO_PROXY), NULL, 1, TEXT(T_CANCEL), NULL, BTN_ENTER | BTN_ESC); + return; + } + fn(ses, url); +@@ -2718,7 +2718,7 @@ + add_to_list(sessions, ses); + if (first_use) { + first_use = 0; +- msg_box(term, NULL, TEXT(T_WELCOME), AL_CENTER | AL_EXTD_TEXT, TEXT(T_WELCOME_TO_LINKS), "\n\n", TEXT(T_BASIC_HELP), NULL, NULL, 1, TEXT(T_OK), NULL, B_ENTER | B_ESC); ++ msg_box(term, NULL, TEXT(T_WELCOME), AL_CENTER | AL_EXTD_TEXT, TEXT(T_WELCOME_TO_LINKS), "\n\n", TEXT(T_BASIC_HELP), NULL, NULL, 1, TEXT(T_OK), NULL, BTN_ENTER | BTN_ESC); + } + return ses; + } +diff -urN links-2.3pre2-orig/svgalib.c links-2.3pre2/svgalib.c +--- links-2.3pre2-orig/svgalib.c 2011-04-19 15:17:50.000000000 +0000 ++++ links-2.3pre2/svgalib.c 2011-05-13 09:04:16.565182464 +0000 +@@ -1889,80 +1889,80 @@ + /* Test movement without buttons */ + if (!(mouse_buttons & BUTTON_MASK) && moved) { + mouse_aggregate_flag=1; +- mouse_aggregate_action=B_MOVE; ++ mouse_aggregate_action=BTN_MOVE; + } + + /* Test presses */ + if ((button&MOUSE_LEFTBUTTON)&&!(mouse_buttons&MOUSE_LEFTBUTTON)){ + mouse_aggregate_flush(); +- if (mh) mh(cd,mouse_x, mouse_y,B_LEFT|B_DOWN); ++ if (mh) mh(cd,mouse_x, mouse_y,BTN_LEFT|BTN_DOWN); + } + if ((button&MOUSE_MIDDLEBUTTON)&&!(mouse_buttons&MOUSE_MIDDLEBUTTON)){ + mouse_aggregate_flush(); +- if (mh) mh(cd,mouse_x, mouse_y,B_MIDDLE|B_DOWN); ++ if (mh) mh(cd,mouse_x, mouse_y,BTN_MIDDLE|BTN_DOWN); + } + if ((button&MOUSE_RIGHTBUTTON)&&!(mouse_buttons&MOUSE_RIGHTBUTTON)){ + mouse_aggregate_flush(); +- if (mh) mh(cd,mouse_x, mouse_y,B_RIGHT|B_DOWN); ++ if (mh) mh(cd,mouse_x, mouse_y,BTN_RIGHT|BTN_DOWN); + } + if ((button&MOUSE_FOURTHBUTTON)&&!(mouse_buttons&MOUSE_FOURTHBUTTON)){ + mouse_aggregate_flush(); +- if (mh) mh(cd,mouse_x, mouse_y,B_RIGHT|B_FOURTH); ++ if (mh) mh(cd,mouse_x, mouse_y,BTN_RIGHT|BTN_FOURTH); + } + if ((button&MOUSE_FIFTHBUTTON)&&!(mouse_buttons&MOUSE_FIFTHBUTTON)){ + mouse_aggregate_flush(); +- if (mh) mh(cd,mouse_x, mouse_y,B_RIGHT|B_FIFTH); ++ if (mh) mh(cd,mouse_x, mouse_y,BTN_RIGHT|BTN_FIFTH); + } + if ((button&MOUSE_SIXTHBUTTON)&&!(mouse_buttons&MOUSE_SIXTHBUTTON)){ + mouse_aggregate_flush(); +- /*if (mh) mh(cd,mouse_x, mouse_y,B_RIGHT|B_SIXTH);*/ ++ /*if (mh) mh(cd,mouse_x, mouse_y,BTN_RIGHT|BTN_SIXTH);*/ + switch_virtual_device(VD_NEXT); + } + + /* Test releases */ + if (!(button&MOUSE_LEFTBUTTON)&&(mouse_buttons&MOUSE_LEFTBUTTON)){ + mouse_aggregate_flush(); +- if (mh) mh(cd,mouse_x, mouse_y,B_LEFT|B_UP); ++ if (mh) mh(cd,mouse_x, mouse_y,BTN_LEFT|BTN_UP); + } + if (!(button&MOUSE_MIDDLEBUTTON)&&(mouse_buttons&MOUSE_MIDDLEBUTTON)){ + mouse_aggregate_flush(); +- if (mh) mh(cd,mouse_x, mouse_y,B_MIDDLE|B_UP); ++ if (mh) mh(cd,mouse_x, mouse_y,BTN_MIDDLE|BTN_UP); + } + if (!(button&MOUSE_RIGHTBUTTON)&&(mouse_buttons&MOUSE_RIGHTBUTTON)){ + mouse_aggregate_flush(); +- if (mh) mh(cd,mouse_x, mouse_y,B_RIGHT|B_UP); ++ if (mh) mh(cd,mouse_x, mouse_y,BTN_RIGHT|BTN_UP); + } + if (!(button&MOUSE_FOURTHBUTTON)&&(mouse_buttons&MOUSE_FOURTHBUTTON)){ + mouse_aggregate_flush(); +- if (mh) mh(cd,mouse_x, mouse_y,B_FOURTH|B_UP); ++ if (mh) mh(cd,mouse_x, mouse_y,BTN_FOURTH|BTN_UP); + } + if (!(button&MOUSE_FIFTHBUTTON)&&(mouse_buttons&MOUSE_FIFTHBUTTON)){ + mouse_aggregate_flush(); +- if (mh) mh(cd,mouse_x, mouse_y,B_FIFTH|B_UP); ++ if (mh) mh(cd,mouse_x, mouse_y,BTN_FIFTH|BTN_UP); + } + if (!(button&MOUSE_SIXTHBUTTON)&&(mouse_buttons&MOUSE_SIXTHBUTTON)){ + mouse_aggregate_flush(); +- /*if (mh) mh(cd,mouse_x, mouse_y,B_SIXTH|B_UP);*/ ++ /*if (mh) mh(cd,mouse_x, mouse_y,BTN_SIXTH|BTN_UP);*/ + } + +- if (drx < 0 && mh) mh(cd, mouse_x, mouse_y, B_MOVE | B_WHEELUP); +- if (drx > 0 && mh) mh(cd, mouse_x, mouse_y, B_MOVE | B_WHEELDOWN); ++ if (drx < 0 && mh) mh(cd, mouse_x, mouse_y, BTN_MOVE | BTN_WHEELUP); ++ if (drx > 0 && mh) mh(cd, mouse_x, mouse_y, BTN_MOVE | BTN_WHEELDOWN); + +- if (dry < 0 && mh) mh(cd, mouse_x, mouse_y, B_MOVE | B_WHEELLEFT); +- if (dry > 0 && mh) mh(cd, mouse_x, mouse_y, B_MOVE | B_WHEELRIGHT); ++ if (dry < 0 && mh) mh(cd, mouse_x, mouse_y, BTN_MOVE | BTN_WHEELLEFT); ++ if (dry > 0 && mh) mh(cd, mouse_x, mouse_y, BTN_MOVE | BTN_WHEELRIGHT); + + /* Test drag */ + if (! ((button^mouse_buttons) & BUTTON_MASK ) && moved && (button & + BUTTON_MASK)){ + mouse_aggregate_flag=1; + mouse_aggregate_action=( +- button&MOUSE_LEFTBUTTON?B_LEFT: +- button&MOUSE_RIGHTBUTTON?B_RIGHT: +- button&MOUSE_MIDDLEBUTTON?B_MIDDLE: +- button&MOUSE_FOURTHBUTTON?B_FOURTH: +- button&MOUSE_FIFTHBUTTON?B_FIFTH: +- /*button&MOUSE_SIXTHBUTTON?B_SIXTH:*/ +- 0) | B_DRAG; ++ button&MOUSE_LEFTBUTTON?BTN_LEFT: ++ button&MOUSE_RIGHTBUTTON?BTN_RIGHT: ++ button&MOUSE_MIDDLEBUTTON?BTN_MIDDLE: ++ button&MOUSE_FOURTHBUTTON?BTN_FOURTH: ++ button&MOUSE_FIFTHBUTTON?BTN_FIFTH: ++ /*button&MOUSE_SIXTHBUTTON?BTN_SIXTH:*/ ++ 0) | BTN_DRAG; + } + mouse_buttons=button; + } +diff -urN links-2.3pre2-orig/types.c links-2.3pre2/types.c +--- links-2.3pre2-orig/types.c 2011-04-19 15:17:50.000000000 +0000 ++++ links-2.3pre2/types.c 2011-05-13 09:04:16.599523328 +0000 +@@ -342,11 +342,11 @@ + d->items[p].data = (unsigned char *)&new->accept_ftp; + d->items[p++].dlen = sizeof(int); + d->items[p].type = D_BUTTON; +- d->items[p].gid = B_ENTER; ++ d->items[p].gid = BTN_ENTER; + d->items[p].fn = ok_dialog; + d->items[p++].text = TEXT(T_OK); + d->items[p].type = D_BUTTON; +- d->items[p].gid = B_ESC; ++ d->items[p].gid = BTN_ESC; + d->items[p].text = TEXT(T_CANCEL); + d->items[p++].fn = cancel_dialog; + d->items[p++].type = D_END; +@@ -660,11 +660,11 @@ + d->items[1].data = ct; + d->items[1].fn = check_nonempty; + d->items[2].type = D_BUTTON; +- d->items[2].gid = B_ENTER; ++ d->items[2].gid = BTN_ENTER; + d->items[2].fn = ok_dialog; + d->items[2].text = TEXT(T_OK); + d->items[3].type = D_BUTTON; +- d->items[3].gid = B_ESC; ++ d->items[3].gid = BTN_ESC; + d->items[3].text = TEXT(T_CANCEL); + d->items[3].fn = cancel_dialog; + d->items[4].type = D_END; +diff -urN links-2.3pre2-orig/view.c links-2.3pre2/view.c +--- links-2.3pre2-orig/view.c 2011-04-19 15:17:50.001048576 +0000 ++++ links-2.3pre2/view.c 2011-05-13 09:04:16.624164864 +0000 +@@ -2037,7 +2037,7 @@ + *data = NULL; + m1 = stracpy(sv->value); + m2 = stracpy(strerror(errno)); +- msg_box(ses->term, getml(m1, m2, NULL), TEXT(T_ERROR_WHILE_POSTING_FORM), AL_CENTER | AL_EXTD_TEXT, TEXT(T_COULD_NOT_GET_FILE), " ", m1, ": ", m2, NULL, ses, 1, TEXT(T_CANCEL), NULL, B_ENTER | B_ESC); ++ msg_box(ses->term, getml(m1, m2, NULL), TEXT(T_ERROR_WHILE_POSTING_FORM), AL_CENTER | AL_EXTD_TEXT, TEXT(T_COULD_NOT_GET_FILE), " ", m1, ": ", m2, NULL, ses, 1, TEXT(T_CANCEL), NULL, BTN_ENTER | BTN_ESC); + } + + void reset_form(struct f_data_c *f, int form_num) +@@ -2878,7 +2878,7 @@ + if (!ses->search_word) { + if (!ses->last_search_word) { + no: +- msg_box(ses->term, NULL, TEXT(T_SEARCH), AL_CENTER, TEXT(T_NO_PREVIOUS_SEARCH), NULL, 1, TEXT(T_CANCEL), NULL, B_ENTER | B_ESC); ++ msg_box(ses->term, NULL, TEXT(T_SEARCH), AL_CENTER, TEXT(T_NO_PREVIOUS_SEARCH), NULL, 1, TEXT(T_CANCEL), NULL, BTN_ENTER | BTN_ESC); + return; + } + ses->search_word = stracpy(ses->last_search_word); +@@ -2910,7 +2910,7 @@ + p -= f->yw; + } + } while ((c += f->yw ? f->yw : 1) < f->f_data->y + f->yw); +- msg_box(ses->term, NULL, TEXT(T_SEARCH), AL_CENTER, TEXT(T_SEARCH_STRING_NOT_FOUND), NULL, 1, TEXT(T_CANCEL), NULL, B_ENTER | B_ESC); ++ msg_box(ses->term, NULL, TEXT(T_SEARCH), AL_CENTER, TEXT(T_SEARCH_STRING_NOT_FOUND), NULL, 1, TEXT(T_CANCEL), NULL, BTN_ENTER | BTN_ESC); + } + + void find_next_back(struct session *ses, struct f_data_c *f, int a) +@@ -3081,12 +3081,12 @@ + x = 1; + fd->vs->current_link = l - fd->f_data->links; + fd->vs->orig_link = fd->vs->current_link; +- if (l->type == L_LINK || l->type == L_BUTTON || l->type == L_CHECKBOX || l->type == L_SELECT) if ((ev->b & BM_ACT) == B_UP) { ++ if (l->type == L_LINK || l->type == L_BUTTON || l->type == L_CHECKBOX || l->type == L_SELECT) if ((ev->b & BM_ACT) == BTN_UP) { + fd->active = 1; + draw_to_window(ses->win, (void (*)(struct terminal *, void *))draw_doc_c, fd); + change_screen_status(ses); + print_screen_status(ses); +- if ((ev->b & BM_BUTT) < B_MIDDLE) x = enter(ses, fd, 0); ++ if ((ev->b & BM_BUTT) < BTN_MIDDLE) x = enter(ses, fd, 0); + else link_menu(ses->term, NULL, ses); + } + +@@ -3485,13 +3485,13 @@ + } + } + if (ev->ev == EV_MOUSE) { +- if (ev->b == (B_DOWN | B_FOURTH)) { ++ if (ev->b == (BTN_DOWN | BTN_FOURTH)) { + go_back(ses); + goto x; + } + #ifdef G + if (ses->locked_link) { +- if ((ev->b & BM_ACT) != B_MOVE) { ++ if ((ev->b & BM_ACT) != BTN_MOVE) { + ses->locked_link = 0; + #ifdef JS + /* process onblur handler of current link */ +@@ -3514,7 +3514,7 @@ + } else return; + } + #endif +- if (ev->y < gf_val(1, G_BFU_FONT_SIZE) && (ev->b & BM_ACT) == B_DOWN) { ++ if (ev->y < gf_val(1, G_BFU_FONT_SIZE) && (ev->b & BM_ACT) == BTN_DOWN) { + #ifdef G + if (F && ev->x < ses->back_size) { + go_back(ses); +@@ -3792,7 +3792,7 @@ + struct f_data_c *f; + if (!(f = current_frame(ses)) || !f->f_data) return; + if ((h = create_download_file(ses, ses->term->cwd, file, 0, 0)) < 0) return; +- if (dump_to_file(f->f_data, h)) msg_box(ses->term, NULL, TEXT(T_SAVE_ERROR), AL_CENTER, TEXT(T_ERROR_WRITING_TO_FILE), NULL, 1, TEXT(T_CANCEL), NULL, B_ENTER | B_ESC); ++ if (dump_to_file(f->f_data, h)) msg_box(ses->term, NULL, TEXT(T_SAVE_ERROR), AL_CENTER, TEXT(T_ERROR_WRITING_TO_FILE), NULL, 1, TEXT(T_CANCEL), NULL, BTN_ENTER | BTN_ESC); + close(h); + } + +@@ -4173,7 +4173,7 @@ + int l = 0; + unsigned char *a; + if (!lo || !frame || !frame->vs || !frame->f_data) { +- msg_box(term, NULL, TEXT(T_INFO), AL_LEFT, TEXT(T_YOU_ARE_NOWHERE), NULL, 1, TEXT(T_OK), NULL, B_ENTER | B_ESC); ++ msg_box(term, NULL, TEXT(T_INFO), AL_LEFT, TEXT(T_YOU_ARE_NOWHERE), NULL, 1, TEXT(T_OK), NULL, BTN_ENTER | BTN_ESC); + return; + } + s = init_str(); +@@ -4239,7 +4239,7 @@ + add_to_str(&s, &l, a); + mem_free(a); + } +- msg_box(term, getml(s, NULL), TEXT(T_INFO), AL_LEFT, s, NULL, 1, TEXT(T_OK), NULL, B_ENTER | B_ESC); ++ msg_box(term, getml(s, NULL), TEXT(T_INFO), AL_LEFT, s, NULL, 1, TEXT(T_OK), NULL, BTN_ENTER | BTN_ESC); + } + + void state_msg(struct session *ses) +@@ -4254,7 +4254,7 @@ + unsigned char *s, *ss; + int len; + if (list_empty(ses->history)) { +- msg_box(ses->term, NULL, TEXT(T_HEADER_INFO), AL_LEFT, TEXT(T_YOU_ARE_NOWHERE), NULL, 1, TEXT(T_OK), NULL, B_ENTER | B_ESC); ++ msg_box(ses->term, NULL, TEXT(T_HEADER_INFO), AL_LEFT, TEXT(T_YOU_ARE_NOWHERE), NULL, 1, TEXT(T_OK), NULL, BTN_ENTER | BTN_ESC); + return; + } + if (!find_in_cache(cur_loc(ses)->url, &ce)) { +@@ -4265,6 +4265,6 @@ + while ((ss = strstr(s, "\r\n"))) memmove(ss, ss + 1, strlen(ss)); + while (*s && s[strlen(s) - 1] == '\n') s[strlen(s) - 1] = 0; + } +- msg_box(ses->term, getml(s, NULL), TEXT(T_HEADER_INFO), AL_LEFT, s, NULL, 1, TEXT(T_OK), NULL, B_ENTER | B_ESC); ++ msg_box(ses->term, getml(s, NULL), TEXT(T_HEADER_INFO), AL_LEFT, s, NULL, 1, TEXT(T_OK), NULL, BTN_ENTER | BTN_ESC); + } + } +diff -urN links-2.3pre2-orig/view_gr.c links-2.3pre2/view_gr.c +--- links-2.3pre2-orig/view_gr.c 2011-04-19 15:17:50.000000000 +0000 ++++ links-2.3pre2/view_gr.c 2011-05-13 09:10:56.174325760 +0000 +@@ -800,7 +800,7 @@ + void g_text_mouse(struct f_data_c *fd, struct g_object_text *a, int x, int y, int b) + { + int e; +- g_set_current_link(fd, a, x, y, (b == (B_UP | B_LEFT))); ++ g_set_current_link(fd, a, x, y, (b == (BTN_UP | BTN_LEFT))); + + #ifdef JS + if (fd->vs&&fd->f_data&&fd->vs->current_link>=0&&fd->vs->current_linkf_data->nlinks) +@@ -809,16 +809,16 @@ + + struct link *l=&(fd->f_data->links[fd->vs->current_link]); + +- if (l->js_event&&l->js_event->up_code&&(b&BM_ACT)==B_UP) ++ if (l->js_event&&l->js_event->up_code&&(b&BM_ACT)==BTN_UP) + jsint_execute_code(fd,l->js_event->up_code,strlen(l->js_event->up_code),-1,-1,-1, NULL); + +- if (l->js_event&&l->js_event->down_code&&(b&BM_ACT)==B_DOWN) ++ if (l->js_event&&l->js_event->down_code&&(b&BM_ACT)==BTN_DOWN) + jsint_execute_code(fd,l->js_event->down_code,strlen(l->js_event->down_code),-1,-1,-1, NULL); + + } + #endif + +- if (b == (B_UP | B_LEFT)) { ++ if (b == (BTN_UP | BTN_LEFT)) { + int ix = ismap_x, iy = ismap_y, il = ismap_link; + ismap_x = x; + ismap_y = y; +@@ -835,7 +835,7 @@ + if (e == 2) fd->f_data->locked_on = (struct g_object *)a; + return; + } +- if (b == (B_UP | B_RIGHT)) { ++ if (b == (BTN_UP | BTN_RIGHT)) { + if (fd->vs->current_link != -1) link_menu(fd->ses->term, NULL, fd->ses); + } + } +@@ -994,15 +994,15 @@ + if (!fd->f_data) return 0; + switch (ev->ev) { + case EV_MOUSE: +- if ((ev->b & BM_BUTT) == B_WHEELUP) goto up; +- if ((ev->b & BM_BUTT) == B_WHEELDOWN) goto down; +- if ((ev->b & BM_BUTT) == B_WHEELUP1) goto up1; +- if ((ev->b & BM_BUTT) == B_WHEELDOWN1) goto down1; +- if ((ev->b & BM_BUTT) == B_WHEELLEFT) goto left; +- if ((ev->b & BM_BUTT) == B_WHEELRIGHT) goto right; +- if ((ev->b & BM_BUTT) == B_WHEELLEFT1) goto left1; +- if ((ev->b & BM_BUTT) == B_WHEELRIGHT1) goto right1; +- if ((ev->b & BM_ACT) == B_MOVE) ses->scrolling = 0; ++ if ((ev->b & BM_BUTT) == BTN_WHEELUP) goto up; ++ if ((ev->b & BM_BUTT) == BTN_WHEELDOWN) goto down; ++ if ((ev->b & BM_BUTT) == BTN_WHEELUP1) goto up1; ++ if ((ev->b & BM_BUTT) == BTN_WHEELDOWN1) goto down1; ++ if ((ev->b & BM_BUTT) == BTN_WHEELLEFT) goto left; ++ if ((ev->b & BM_BUTT) == BTN_WHEELRIGHT) goto right; ++ if ((ev->b & BM_BUTT) == BTN_WHEELLEFT1) goto left1; ++ if ((ev->b & BM_BUTT) == BTN_WHEELRIGHT1) goto right1; ++ if ((ev->b & BM_ACT) == BTN_MOVE) ses->scrolling = 0; + if (ses->scrolling == 1) process_sb_move(fd, ses->scrolltype ? ev->x : ev->y); + if (ses->scrolling == 2) { + fd->vs->view_pos = -ev->y + ses->scrolloff; +@@ -1010,31 +1010,31 @@ + fd->vs->orig_view_pos = fd->vs->view_pos; + fd->vs->orig_view_posx = fd->vs->view_posx; + draw_graphical_doc(fd->ses->term, fd, 1); +- if ((ev->b & BM_ACT) == B_UP) { ++ if ((ev->b & BM_ACT) == BTN_UP) { + ses->scrolling = 0; + } + break; + } + if (ses->scrolling) { +- if ((ev->b & BM_ACT) == B_UP) { ++ if ((ev->b & BM_ACT) == BTN_UP) { + ses->scrolling = 0; + } + break; + } + + +- if ((ev->b & BM_ACT) == B_DOWN && fd->f_data->vsb && ev_in_rect(ev, fd->xw - G_SCROLL_BAR_WIDTH, 0, fd->xw, fd->yw - fd->f_data->hsb * G_SCROLL_BAR_WIDTH)) { ++ if ((ev->b & BM_ACT) == BTN_DOWN && fd->f_data->vsb && ev_in_rect(ev, fd->xw - G_SCROLL_BAR_WIDTH, 0, fd->xw, fd->yw - fd->f_data->hsb * G_SCROLL_BAR_WIDTH)) { + process_sb_event(fd, ev->y, 0); + break; + } +- if ((ev->b & BM_ACT) == B_DOWN && fd->f_data->hsb && ev_in_rect(ev, 0, fd->yw - G_SCROLL_BAR_WIDTH, fd->xw - fd->f_data->vsb * G_SCROLL_BAR_WIDTH, fd->yw)) { ++ if ((ev->b & BM_ACT) == BTN_DOWN && fd->f_data->hsb && ev_in_rect(ev, 0, fd->yw - G_SCROLL_BAR_WIDTH, fd->xw - fd->f_data->vsb * G_SCROLL_BAR_WIDTH, fd->yw)) { + process_sb_event(fd, ev->x, 1); + break; + } + if (fd->f_data->vsb && ev_in_rect(ev, fd->xw - G_SCROLL_BAR_WIDTH, 0, fd->xw, fd->yw)) return 0; + if (fd->f_data->hsb && ev_in_rect(ev, 0, fd->yw - G_SCROLL_BAR_WIDTH, fd->xw, fd->yw)) return 0; + +- if ((ev->b & BM_ACT) == B_DOWN && (ev->b & BM_BUTT) == B_MIDDLE) { ++ if ((ev->b & BM_ACT) == BTN_DOWN && (ev->b & BM_BUTT) == BTN_MIDDLE) { + scrll: + ses->scrolltype = ev->x + fd->vs->view_posx; + ses->scrolloff = ev->y + fd->vs->view_pos; +@@ -1047,7 +1047,7 @@ + fd->vs->g_display_link = 0; + if (fd->vs->current_link >= 0 && fd->vs->current_link < fd->f_data->nlinks) redraw_link(fd, fd->vs->current_link); + } +- if (!(ev->b == (B_LEFT | B_UP) && fd->f_data->hlt_len && fd->f_data->start_highlight_x == -1)) { ++ if (!(ev->b == (BTN_LEFT | BTN_UP) && fd->f_data->hlt_len && fd->f_data->start_highlight_x == -1)) { + fd->vs->current_link = -1; + fd->vs->orig_link = fd->vs->current_link; + fd->f_data->root->mouse_event(fd, fd->f_data->root, ev->x + fd->vs->view_posx, ev->y + fd->vs->view_pos, ev->b); +@@ -1057,14 +1057,14 @@ + } + + /* highlight text */ +- if ((ev->b & BM_ACT) == B_DOWN && (ev->b & BM_BUTT) == B_LEFT) { /* start highlighting */ ++ if ((ev->b & BM_ACT) == BTN_DOWN && (ev->b & BM_BUTT) == BTN_LEFT) { /* start highlighting */ + fd->f_data->start_highlight_x = ev->x; + fd->f_data->start_highlight_y = ev->y; + fd->f_data->hlt_len = 0; + fd->f_data->hlt_pos = -1; + return 1; + } +- if (((ev->b & BM_ACT) == B_DRAG || (ev->b & BM_ACT) == B_UP) && (ev->b & BM_BUTT) == B_LEFT) { /* stop highlighting */ ++ if (((ev->b & BM_ACT) == BTN_DRAG || (ev->b & BM_ACT) == BTN_UP) && (ev->b & BM_BUTT) == BTN_LEFT) { /* stop highlighting */ + struct g_object_text *t; + if (fd->f_data->start_highlight_x != -1) { + if (abs(ev->x - fd->f_data->start_highlight_x) < 8 && abs(ev->y - fd->f_data->start_highlight_y) < 8) goto skip_hl; +@@ -1088,7 +1088,7 @@ + g_get_search_data(fd->f_data); + end=t->srch_pos+g_find_text_pos(t, ev->x+fd->vs->view_posx); + fd->f_data->hlt_len=end-fd->f_data->hlt_pos; +- if ((ev->b & BM_ACT) == B_UP || (ev->b & BM_ACT) == B_DRAG) { ++ if ((ev->b & BM_ACT) == BTN_UP || (ev->b & BM_ACT) == BTN_DRAG) { + unsigned char *m = memacpy(fd->f_data->srch_string + fd->f_data->hlt_pos + (fd->f_data->hlt_len > 0 ? 0 : fd->f_data->hlt_len), fd->f_data->hlt_len > 0 ? fd->f_data->hlt_len : -fd->f_data->hlt_len); + if (m) { + unsigned char *p = m; +@@ -1118,7 +1118,7 @@ + } + #endif + +- if ((ev->b & BM_ACT) == B_DOWN && (ev->b & BM_BUTT) == B_RIGHT && fd->vs->current_link == -1) goto scrll; ++ if ((ev->b & BM_ACT) == BTN_DOWN && (ev->b & BM_BUTT) == BTN_RIGHT && fd->vs->current_link == -1) goto scrll; + break; + case EV_KBD: + if (ses->locked_link && fd->vs->current_link >= 0 && fd->vs->current_link < fd->f_data->nlinks && (fd->f_data->links[fd->vs->current_link].type == L_FIELD || fd->f_data->links[fd->vs->current_link].type == L_AREA)) { +@@ -1507,7 +1507,7 @@ + g_get_search_data(f->f_data); + g_get_search(f->f_data, f->ses->search_word); + search_word = f->ses->search_word; +- if (!f->f_data->n_search_positions) msg_box(f->ses->term, NULL, TEXT(T_SEARCH), AL_CENTER, TEXT(T_SEARCH_STRING_NOT_FOUND), NULL, 1, TEXT(T_CANCEL), NULL, B_ENTER | B_ESC); ++ if (!f->f_data->n_search_positions) msg_box(f->ses->term, NULL, TEXT(T_SEARCH), AL_CENTER, TEXT(T_SEARCH_STRING_NOT_FOUND), NULL, 1, TEXT(T_CANCEL), NULL, BTN_ENTER | BTN_ESC); + + highlight_positions = f->f_data->search_positions; + highlight_lengths = f->f_data->search_lengths; +diff -urN links-2.3pre2-orig/x.c links-2.3pre2/x.c +--- links-2.3pre2-orig/x.c 2011-04-19 15:17:50.000000000 +0000 ++++ links-2.3pre2/x.c 2011-05-13 09:04:16.722993152 +0000 +@@ -571,28 +571,28 @@ + #endif + gd=x_find_gd(&(last_event.xmotion.window)); + if (!gd)break; +- a=B_LEFT; +- b=B_MOVE; ++ a=BTN_LEFT; ++ b=BTN_MOVE; + if ((last_event.xmotion.state)&Button1Mask) + { +- a=B_LEFT; +- b=B_DRAG; ++ a=BTN_LEFT; ++ b=BTN_DRAG; + #ifdef X_DEBUG + MESSAGE("left button/drag\n"); + #endif + } + if ((last_event.xmotion.state)&Button2Mask) + { +- a=B_MIDDLE; +- b=B_DRAG; ++ a=BTN_MIDDLE; ++ b=BTN_DRAG; + #ifdef X_DEBUG + MESSAGE("middle button/drag\n"); + #endif + } + if ((last_event.xmotion.state)&Button3Mask) + { +- a=B_RIGHT; +- b=B_DRAG; ++ a=BTN_RIGHT; ++ b=BTN_DRAG; + #ifdef X_DEBUG + MESSAGE("right button/drag\n"); + #endif +@@ -718,15 +718,15 @@ + switch(event.xbutton.button) + { + case 1: +- a=B_LEFT; ++ a=BTN_LEFT; + break; + + case 3: +- a=B_RIGHT; ++ a=BTN_RIGHT; + break; + + case 2: +- a=B_MIDDLE; ++ a=BTN_MIDDLE; + break; + + default: +@@ -735,7 +735,7 @@ + } + x_clip_number(&(event.xmotion.x),gd->size.x1,gd->size.x2); + x_clip_number(&(event.xmotion.y),gd->size.y1,gd->size.y2); +- gd->mouse_handler(gd,event.xbutton.x,event.xbutton.y,a|B_UP); ++ gd->mouse_handler(gd,event.xbutton.x,event.xbutton.y,a|BTN_UP); + r_xx:; + } + break; +@@ -757,31 +757,31 @@ + switch(event.xbutton.button) + { + case 1: +- a=B_LEFT; ++ a=BTN_LEFT; + break; + + case 3: +- a=B_RIGHT; ++ a=BTN_RIGHT; + break; + + case 2: +- a=B_MIDDLE; ++ a=BTN_MIDDLE; + break; + + case 4: +- a=B_WHEELUP; ++ a=BTN_WHEELUP; + break; + + case 5: +- a=B_WHEELDOWN; ++ a=BTN_WHEELDOWN; + break; + + case 6: +- a=B_WHEELLEFT; ++ a=BTN_WHEELLEFT; + break; + + case 7: +- a=B_WHEELRIGHT; ++ a=BTN_WHEELRIGHT; + break; + + default: +@@ -789,7 +789,7 @@ + } + x_clip_number(&(event.xmotion.x),gd->size.x1,gd->size.x2); + x_clip_number(&(event.xmotion.y),gd->size.y1,gd->size.y2); +- gd->mouse_handler(gd,event.xbutton.x,event.xbutton.y,a|(a != B_WHEELDOWN && a != B_WHEELUP && a != B_WHEELLEFT && a != B_WHEELRIGHT ? B_DOWN : B_MOVE)); ++ gd->mouse_handler(gd,event.xbutton.x,event.xbutton.y,a|(a != BTN_WHEELDOWN && a != BTN_WHEELUP && a != BTN_WHEELLEFT && a != BTN_WHEELRIGHT ? BTN_DOWN : BTN_MOVE)); + p_xx:; + } + break; +@@ -858,28 +858,28 @@ + #endif + gd=x_find_gd(&(last_event.xmotion.window)); + if (!gd)goto ret; +- a=B_LEFT; +- b=B_MOVE; ++ a=BTN_LEFT; ++ b=BTN_MOVE; + if ((last_event.xmotion.state)&Button1Mask) + { +- a=B_LEFT; +- b=B_DRAG; ++ a=BTN_LEFT; ++ b=BTN_DRAG; + #ifdef X_DEBUG + MESSAGE("left button/drag\n"); + #endif + } + if ((last_event.xmotion.state)&Button2Mask) + { +- a=B_MIDDLE; +- b=B_DRAG; ++ a=BTN_MIDDLE; ++ b=BTN_DRAG; + #ifdef X_DEBUG + MESSAGE("middle button/drag\n"); + #endif + } + if ((last_event.xmotion.state)&Button3Mask) + { +- a=B_RIGHT; +- b=B_DRAG; ++ a=BTN_RIGHT; ++ b=BTN_DRAG; + #ifdef X_DEBUG + MESSAGE("right button/drag\n"); + #endif diff --git a/www-client/netsurf/netsurf-2.1.bep b/www-client/netsurf/netsurf-2.1.bep index 28d699620..f1fd077b1 100644 --- a/www-client/netsurf/netsurf-2.1.bep +++ b/www-client/netsurf/netsurf-2.1.bep @@ -18,30 +18,30 @@ BUILD { cd libparserutils echo 'CFLAGS += -DWITH_ICONV_FILTER' > Makefile.config.override make - make install PREFIX=/boot/common + make install PREFIX=`finddir B_COMMON_DIRECTORY` cd ../libwapcaplet make - make install PREFIX=/boot/common + make install PREFIX=`finddir B_COMMON_DIRECTORY` cd ../hubbub make - make install PREFIX=/boot/common + make install PREFIX=`finddir B_COMMON_DIRECTORY` cd ../libcss make - make install PREFIX=/boot/common + make install PREFIX=`finddir B_COMMON_DIRECTORY` cd ../libnsgif make - make install PREFIX=/boot/common + make install PREFIX=`finddir B_COMMON_DIRECTORY` cd ../libnsbmp make - make install PREFIX=/boot/common + make install PREFIX=`finddir B_COMMON_DIRECTORY` cd ../librosprite make - make install PREFIX=/boot/common + make install PREFIX=`finddir B_COMMON_DIRECTORY` cd ../libsvgtiny make - make install PREFIX=/boot/common + make install PREFIX=`finddir B_COMMON_DIRECTORY` cd .. - ./configure --prefix=/boot/common + ./configure --prefix=`finddir B_COMMON_DIRECTORY` make } diff --git a/www-client/netsurf/netsurf-2.6.bep b/www-client/netsurf/netsurf-2.6.bep index 463eb5d59..8285bec06 100644 --- a/www-client/netsurf/netsurf-2.6.bep +++ b/www-client/netsurf/netsurf-2.6.bep @@ -1,10 +1,10 @@ DESCRIPTION="NetSurf is a multi-platform web browser" HOMEPAGE="http://www.netsurf-browser.org/" -SRC_URI="http://www.netsurf-browser.org/downloads/development/netsurf-r10808.tar.gz" +SRC_URI="http://www.netsurf-browser.org/downloads/releases/netsurf-2.6-src.tar.gz" REVISION="1" STATUS_HAIKU="stable" DEPEND="" -CHECKSUM_MD5="4700e911ac79accd14b6fdd5e9197a1a" +CHECKSUM_MD5="8653789d2ede6dbbfe79882afc7538fc" BUILD { cd netsurf svn co svn://svn.netsurf-browser.org/trunk/libparserutils @@ -18,29 +18,29 @@ BUILD { cd libparserutils echo 'CFLAGS += -DWITH_ICONV_FILTER' > Makefile.config.override make - make install PREFIX=/boot/common + make install PREFIX=`finddir B_COMMON_DIRECTORY` cd ../libwapcaplet make - make install PREFIX=/boot/common + make install PREFIX=`finddir B_COMMON_DIRECTORY` cd ../hubbub make - make install PREFIX=/boot/common + make install PREFIX=`finddir B_COMMON_DIRECTORY` cd ../libcss make - make install PREFIX=/boot/common + make install PREFIX=`finddir B_COMMON_DIRECTORY` cd ../libnsgif make - make install PREFIX=/boot/common + make install PREFIX=`finddir B_COMMON_DIRECTORY` cd ../libnsbmp make - make install PREFIX=/boot/common + make install PREFIX=`finddir B_COMMON_DIRECTORY` cd ../libsvgtiny make - make install PREFIX=/boot/common + make install PREFIX=`finddir B_COMMON_DIRECTORY` cd ../librosprite - patch -p0 -ui ../../../patches/librosprite.patch +# patch -p0 -ui ../../../patches/librosprite.patch make - make install PREFIX=/boot/common + make install PREFIX=`finddir B_COMMON_DIRECTORY` cd .. make beos } diff --git a/www-client/netsurf/netsurf-2.7-svn.bep b/www-client/netsurf/netsurf-2.7-svn.bep index 31d5efd1b..fd2d8c123 100644 --- a/www-client/netsurf/netsurf-2.7-svn.bep +++ b/www-client/netsurf/netsurf-2.7-svn.bep @@ -3,9 +3,15 @@ HOMEPAGE="http://www.netsurf-browser.org/" SRC_URI="svn+svn://svn.netsurf-browser.org/trunk/netsurf" REVISION="1" STATUS_HAIKU="stable" -DEPEND="" +DEPEND="dev-util/gperf >= 3.0.4 + media-libs/libmng > 1.0.10 + dev-libs/pkgconfig >= 0.25 + net-misc/curl >= 7.21.6" BUILD { cd netsurf-2.7-svn + + sed -i 's/B_TOOLTIP_/B_TOOL_TIP_/g' beos/system_colour.cpp + svn co svn://svn.netsurf-browser.org/trunk/libparserutils svn co svn://svn.netsurf-browser.org/trunk/libwapcaplet svn co svn://svn.netsurf-browser.org/trunk/hubbub @@ -38,7 +44,7 @@ BUILD { make install PREFIX=`finddir B_COMMON_DIRECTORY` cd ../librosprite make CFLAGS="" - make install PREFIX=/boot/common + make install PREFIX=`finddir B_COMMON_DIRECTORY` cd .. make beos } diff --git a/www-client/netsurf/netsurf-2.7.bep b/www-client/netsurf/netsurf-2.7.bep new file mode 100644 index 000000000..8394fd42d --- /dev/null +++ b/www-client/netsurf/netsurf-2.7.bep @@ -0,0 +1,59 @@ +DESCRIPTION="NetSurf is a multi-platform web browser" +HOMEPAGE="http://www.netsurf-browser.org/" +SRC_URI="http://www.netsurf-browser.org/downloads/releases/netsurf-2.7-src.tar.gz" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="dev-util/gperf >= 3.0.4 + media-libs/libmng > 1.0.10 + dev-libs/pkgconfig >= 0.25 + net-misc/curl >= 7.21.6" +CHECKSUM_MD5="52939f2e2319269d7d758ec665f6cb8e" + +BUILD { + cd netsurf + sed -i 's/B_TOOLTIP_/B_TOOL_TIP_/g' beos/system_colour.cpp + svn co svn://svn.netsurf-browser.org/trunk/libparserutils -r12456 + svn co svn://svn.netsurf-browser.org/trunk/libwapcaplet -r12456 + svn co svn://svn.netsurf-browser.org/trunk/hubbub -r12456 + svn co svn://svn.netsurf-browser.org/trunk/libcss -r12456 + svn co svn://svn.netsurf-browser.org/trunk/libnsgif -r12456 + svn co svn://svn.netsurf-browser.org/trunk/libnsbmp -r12456 + svn co svn://svn.netsurf-browser.org/trunk/librosprite -r12456 + svn co svn://svn.netsurf-browser.org/trunk/libsvgtiny -r12456 + cd libparserutils + echo 'CFLAGS += -DWITH_ICONV_FILTER' > Makefile.config.override + make + make install PREFIX=`finddir B_COMMON_DIRECTORY` + cd ../libwapcaplet + make + make install PREFIX=`finddir B_COMMON_DIRECTORY` + cd ../hubbub + make + make install PREFIX=`finddir B_COMMON_DIRECTORY` + cd ../libcss + make + make install PREFIX=`finddir B_COMMON_DIRECTORY` + cd ../libnsgif + make + make install PREFIX=`finddir B_COMMON_DIRECTORY` + cd ../libnsbmp + make + make install PREFIX=`finddir B_COMMON_DIRECTORY` + cd ../libsvgtiny + make + make install PREFIX=`finddir B_COMMON_DIRECTORY` + cd ../librosprite + make CFLAGS="" + make install PREFIX=`finddir B_COMMON_DIRECTORY` + cd .. + make beos +} + +INSTALL { + cd netsurf + make install +} + +LICENSE="MIT + GNU GPL v2" +COPYRIGHT="2003 - 2011 The NetSurf Developers" diff --git a/www-client/netsurf/netsurf-2.9.bep b/www-client/netsurf/netsurf-2.9.bep new file mode 100644 index 000000000..95d70633f --- /dev/null +++ b/www-client/netsurf/netsurf-2.9.bep @@ -0,0 +1,28 @@ +DESCRIPTION="NetSurf is a multi-platform web browser" +HOMEPAGE="http://www.netsurf-browser.org/" +SRC_URI="http://download.netsurf-browser.org/netsurf/releases/source-full/netsurf-2.9-full-src.tar.gz" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="dev-util/gperf >= 3.0.4 + media-libs/libmng > 1.0.10 + dev-libs/pkgconfig >= 0.25 + net-misc/curl >= 7.21.6 + media-libs/libpng >= 1.5.7 + media-libs/jpeg >= 8d + media-libs/libwebp >= 0.1.3 + media-libs/lcms >= 2.1" +CHECKSUM_MD5="cfc2789997b356f2ea9d9f7694c4c909" + +BUILD { + cd netsurf-2.9 + make +} + +INSTALL { + cd netsurf-2.9 + make install +} + +LICENSE="MIT + GNU GPL v2" +COPYRIGHT="2003 - 2012 The NetSurf Developers" diff --git a/www-client/netsurf/netsurf-2.HEAD.bep b/www-client/netsurf/netsurf-2.HEAD.bep new file mode 100644 index 000000000..c13cdb423 --- /dev/null +++ b/www-client/netsurf/netsurf-2.HEAD.bep @@ -0,0 +1,34 @@ +DESCRIPTION="NetSurf is a multi-platform web browser" +HOMEPAGE="http://www.netsurf-browser.org/" +SRC_URI="git://git.netsurf-browser.org/netsurf.git" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="dev-util/gperf >= 3.0.4 + media-libs/libmng > 1.0.10 + dev-libs/pkgconfig >= 0.25 + net-misc/curl >= 7.21.6 + media-libs/libpng >= 1.5.7 + media-libs/jpeg >= 8d + media-libs/libwebp >= 0.1.3 + media-libs/lcms >= 2.1 + media-libs/libsvgtiny >= 0.HEAD + media-libs/libnsbmp >= 0.0.3 + media-libs/libnsgif >= 0.0.3 + dev-libs/libcss >= 0.1.2 + dev-libs/libwapcaplet >= 0.1.1-HEAD + net-libs/libdom >= 0 + " + +BUILD { + cd netsurf-2.HEAD + make +} + +INSTALL { + cd netsurf-2.HEAD + make install +} + +LICENSE="MIT + GNU GPL v2" +COPYRIGHT="2003 - 2012 The NetSurf Developers" diff --git a/www-client/netsurf/netsurf-9799.bep b/www-client/netsurf/netsurf-9799.bep index 2d2f5b525..5870ed123 100644 --- a/www-client/netsurf/netsurf-9799.bep +++ b/www-client/netsurf/netsurf-9799.bep @@ -20,28 +20,28 @@ BUILD { cd libparserutils echo 'CFLAGS += -DWITH_ICONV_FILTER' > Makefile.config.override make - make install PREFIX=/boot/common + make install PREFIX=`finddir B_COMMON_DIRECTORY` cd ../libwapcaplet make - make install PREFIX=/boot/common + make install PREFIX=`finddir B_COMMON_DIRECTORY` cd ../hubbub make - make install PREFIX=/boot/common + make install PREFIX=`finddir B_COMMON_DIRECTORY` cd ../libcss make - make install PREFIX=/boot/common + make install PREFIX=`finddir B_COMMON_DIRECTORY` cd ../libnsgif make - make install PREFIX=/boot/common + make install PREFIX=`finddir B_COMMON_DIRECTORY` cd ../libnsbmp make - make install PREFIX=/boot/common + make install PREFIX=`finddir B_COMMON_DIRECTORY` # cd ../librosprite # make -# make install PREFIX=/boot/common +# make install PREFIX=`finddir B_COMMON_DIRECTORY` cd ../libsvgtiny make - make install PREFIX=/boot/common + make install PREFIX=`finddir B_COMMON_DIRECTORY` cd .. make } diff --git a/www-client/netsurf/patches/librosprite.patch b/www-client/netsurf/patches/librosprite.patch deleted file mode 100644 index cbaa2e8b5..000000000 --- a/www-client/netsurf/patches/librosprite.patch +++ /dev/null @@ -1,311 +0,0 @@ -Index: librosprite.c -=================================================================== ---- librosprite.c (revision 10841) -+++ librosprite.c (working copy) -@@ -233,11 +233,14 @@ - - rosprite_error rosprite_load(reader reader, void* ctx, struct rosprite_area** result) - { -+ uint32_t firstSpriteOffset, firstFreeWordOffset; -+ int bytes_read; -+ uint32_t i; -+ - struct rosprite_area* sprite_area = malloc(sizeof(struct rosprite_area)); - - ERRCHK(rosprite_read_word(reader, ctx, &(sprite_area->sprite_count))); - -- uint32_t firstSpriteOffset, firstFreeWordOffset; - ERRCHK(rosprite_read_word(reader, ctx, &firstSpriteOffset)); - ERRCHK(rosprite_read_word(reader, ctx, &firstFreeWordOffset)); /* TODO: use this for some sanity checking? */ - sprite_area->extension_size = 16 - firstSpriteOffset; -@@ -245,14 +248,14 @@ - sprite_area->extension_words = NULL; - if (sprite_area->extension_size > 0) { - sprite_area->extension_words = malloc(sprite_area->extension_size); -- int bytes_read = reader(sprite_area->extension_words, (size_t) (sprite_area->extension_size), ctx); -+ bytes_read = reader(sprite_area->extension_words, (size_t) (sprite_area->extension_size), ctx); - if (bytes_read < (signed long) sprite_area->extension_size) { - return ROSPRITE_EOF; - } - } - - sprite_area->sprites = malloc(sizeof(struct rosprite*) * sprite_area->sprite_count); /* allocate array of pointers */ -- for (uint32_t i = 0; i < sprite_area->sprite_count; i++) { -+ for (i = 0; i < sprite_area->sprite_count; i++) { - struct rosprite* sprite; - ERRCHK(rosprite_load_sprite(reader, ctx, &sprite)); - sprite_area->sprites[i] = sprite; -@@ -265,7 +268,8 @@ - - void rosprite_destroy_sprite_area(struct rosprite_area* sprite_area) - { -- for (uint32_t i = 0; i < sprite_area->sprite_count; i++) { -+ uint32_t i; -+ for (i = 0; i < sprite_area->sprite_count; i++) { - struct rosprite* sprite = sprite_area->sprites[i]; - if (sprite->has_palette) free(sprite->palette); - free(sprite->image); -@@ -279,15 +283,18 @@ - - rosprite_error rosprite_load_palette(reader reader, void* ctx, struct rosprite_palette** result) - { -+ uint32_t c; -+ uint8_t b[6]; -+ unsigned int bytesRead; -+ - /* TODO: currently assume palette has linear entries (2nd byte in is 00, 01, 02 etc) */ - struct rosprite_palette* palette = malloc(sizeof(struct rosprite_palette)); - - palette->palette = malloc(sizeof(uint32_t) * 256); /* allocate 256 whether we need them all or not */ - -- uint32_t c = 0; -- uint8_t b[6]; -+ c = 0; - -- unsigned int bytesRead = reader(b, 6, ctx); -+ bytesRead = reader(b, 6, ctx); - assert(bytesRead % 6 == 0); - while (bytesRead == 6) { - assert(b[0] == 19); /* VDU 19 */ -@@ -360,13 +367,13 @@ - - int rosprite_mem_reader(uint8_t* buf, size_t count, void* ctx) - { -+ size_t copy_size; - struct rosprite_mem_context* memctx = (struct rosprite_mem_context*) ctx; - if (memctx->offset + count > memctx->size) { - return -1; - } - - // if we're asked for more memory than the block contains, only copy as much as we can -- size_t copy_size; - if ((memctx->offset + count) > memctx->size) { - copy_size = memctx->size - memctx->offset; - } else { -@@ -385,11 +392,17 @@ - rosprite_error rosprite_load_sprite(reader reader, void* ctx, struct rosprite** result) - { - uint32_t nextSpriteOffset; -- ERRCHK(rosprite_read_word(reader, ctx, &nextSpriteOffset)); -- -+ uint32_t imageOffset; -+ uint32_t maskOffset, spriteModeWord; -+ uint32_t paletteEntries; -+ uint8_t* image; -+ uint8_t* mask = NULL; -+ - struct rosprite* sprite = malloc(sizeof(struct rosprite)); - struct rosprite_header* header = malloc(sizeof(struct rosprite_header)); - -+ ERRCHK(rosprite_read_word(reader, ctx, &nextSpriteOffset)); -+ - reader(sprite->name, 12, ctx); - sprite->name[12] = '\0'; - -@@ -400,11 +413,9 @@ - ERRCHK(rosprite_read_word(reader, ctx, &(header->first_used_bit))); /* old format only (spriteType = 0) */ - ERRCHK(rosprite_read_word(reader, ctx, &(header->last_used_bit))); - -- uint32_t imageOffset; - ERRCHK(rosprite_read_word(reader, ctx, &imageOffset)); - assert(imageOffset >= 44); /* should never be smaller than the size of the header) */ - -- uint32_t maskOffset, spriteModeWord; - ERRCHK(rosprite_read_word(reader, ctx, &maskOffset)); - ERRCHK(rosprite_read_word(reader, ctx, &spriteModeWord)); - -@@ -431,31 +442,30 @@ - } - - if (sprite->has_palette) { -+ uint32_t j, word1, word2, entry; - assert(sprite->palettesize % 8 == 0); - sprite->palette = malloc(sizeof(uint32_t) * sprite->palettesize); -- uint32_t paletteEntries = sprite->palettesize / 8; -+ paletteEntries = sprite->palettesize / 8; - - /* Each palette entry is two words big - * The second word is a duplicate of the first - * I think this is in case you ever wanted flashing colours - * PRM1-730 - */ -- for (uint32_t j = 0; j < paletteEntries; j++) { -- uint32_t word1, word2; -+ for (j = 0; j < paletteEntries; j++) { - ERRCHK(rosprite_read_word(reader, ctx, &word1)); - ERRCHK(rosprite_read_word(reader, ctx, &word2)); - assert(word1 == word2); /* if they aren't equal, flashing colours are desired, which we don't support */ - - /* swap rr and bb parts -- PRM1-731 */ -- uint32_t entry = ((word1 & 0xff000000) >> 16) | (word1 & 0x00ff0000) | ((word1 & 0x0000ff00) << 16) | 0xff; -+ entry = ((word1 & 0xff000000) >> 16) | (word1 & 0x00ff0000) | ((word1 & 0x0000ff00) << 16) | 0xff; - sprite->palette[j] = entry; - } - } - -- uint8_t* image = malloc(header->image_size); -+ image = malloc(header->image_size); - reader(image, header->image_size, ctx); - -- uint8_t* mask = NULL; - if (sprite->has_mask) { - mask = malloc(header->mask_size); - reader(mask, header->mask_size, ctx); -@@ -547,32 +557,36 @@ - static rosprite_error rosprite_load_high_color(uint8_t* image_in, uint8_t* mask, struct rosprite* sprite, struct rosprite_header* header) - { - struct rosprite_mask_state* mask_state = NULL; -+ uint32_t currentByteIndex = 0; -+ uint32_t j, x, y, x_pixels, pixel; -+ bool has_alpha_pixel_data = false; -+ uint8_t b; -+ bool old_has_alpha; -+ - if (sprite->has_mask) { - ERRCHK(rosprite_init_mask_state(sprite, header, mask, &mask_state)); - } - - sprite->image = malloc(sprite->width * sprite->height * 4); /* all image data is 32bpp going out */ - -- uint32_t currentByteIndex = 0; -+ /* Spec says that there must be no left-hand wastage */ -+ assert(header->first_used_bit == 0); -+ -+ { - const uint32_t bpp = sprite->mode.colorbpp; - const uint32_t bytesPerPixel = bpp / 8; - const uint32_t row_max_bit = header->width_words * 32 - (31 - header->last_used_bit); /* Last used bit in row */ - -- bool has_alpha_pixel_data = false; -- -- /* Spec says that there must be no left-hand wastage */ -- assert(header->first_used_bit == 0); -- -- for (uint32_t y = 0; y < sprite->height; y++) { -- uint32_t x_pixels = 0; -- for (uint32_t x = 0; x < row_max_bit; x += bpp) { -- uint32_t pixel = 0; -- for (uint32_t j = 0; j < bytesPerPixel; j++) { -- uint8_t b = image_in[currentByteIndex++]; -+ for (y = 0; y < sprite->height; y++) { -+ x_pixels = 0; -+ for (x = 0; x < row_max_bit; x += bpp) { -+ pixel = 0; -+ for (j = 0; j < bytesPerPixel; j++) { -+ b = image_in[currentByteIndex++]; - pixel = pixel | (b << (j * 8)); - } - -- bool old_has_alpha = has_alpha_pixel_data; -+ old_has_alpha = has_alpha_pixel_data; - pixel = rosprite_upscale_color(pixel, &(sprite->mode), &has_alpha_pixel_data); - if (old_has_alpha != has_alpha_pixel_data && (y > 0 || x_pixels > 0)) { - rosprite_fix_alpha(sprite->image, (y * sprite->width) + x_pixels - 1); -@@ -590,7 +604,7 @@ - currentByteIndex = (currentByteIndex + 3) & ~3; /* Round up to next multiple of 4 */ - } - } -- -+ } - if (sprite->has_mask) free(mask_state); - return ROSPRITE_OK; - } -@@ -601,7 +615,8 @@ - */ - static inline void rosprite_fix_alpha(uint32_t* image, unsigned long pixels) - { -- for (uint32_t i = 0; i <= pixels; i++) { -+ uint32_t i; -+ for (i = 0; i <= pixels; i++) { - image[i] = image[i] & 0xffffff00; - } - } -@@ -613,6 +628,10 @@ - */ - static rosprite_error rosprite_load_low_color(uint8_t* image_in, uint8_t* mask, struct rosprite* sprite, struct rosprite_header* header) - { -+ uint32_t current_byte_index, currentword; -+ uint32_t x, y, x_pixels, pixel; -+ uint8_t mask_pixel; -+ - struct rosprite_mask_state* mask_state = NULL; - if (sprite->has_mask) { - ERRCHK(rosprite_init_mask_state(sprite, header, mask, &mask_state)); -@@ -620,23 +639,24 @@ - - sprite->image = malloc(sprite->width * sprite->height * 4); /* all image data is 32bpp going out */ - -+ { - const uint32_t bpp = sprite->mode.colorbpp; - const uint32_t row_max_bit = header->width_words * 32 - (31 - header->last_used_bit); /* Last used bit in row */ - const uint32_t bitmask = (1 << bpp) - 1; /* creates a mask of 1s that is bpp bits wide */ -- -- uint32_t current_byte_index = 0; -- uint32_t currentword = BTUINT((image_in + current_byte_index)); -+ -+ current_byte_index = 0; -+ currentword = BTUINT((image_in + current_byte_index)); - current_byte_index += 4; - -- for (uint32_t y = 0; y < sprite->height; y++) { -- uint32_t x_pixels = 0; -- for (uint32_t x = header->first_used_bit; x < row_max_bit ; x += bpp) { -+ for (y = 0; y < sprite->height; y++) { -+ x_pixels = 0; -+ for (x = header->first_used_bit; x < row_max_bit ; x += bpp) { - const uint32_t offset_into_word = x % 32; - -- uint32_t pixel = (currentword & (bitmask << offset_into_word)) >> offset_into_word; -+ pixel = (currentword & (bitmask << offset_into_word)) >> offset_into_word; - pixel = rosprite_palette_lookup(sprite, pixel); /* lookup returns 32bpp */ - if (sprite->has_mask) { -- uint8_t mask_pixel = rosprite_next_mask_pixel(mask, mask_state); -+ mask_pixel = rosprite_next_mask_pixel(mask, mask_state); - pixel = (pixel & 0xffffff00) | mask_pixel; - } - sprite->image[y*sprite->width + x_pixels] = pixel; -@@ -655,7 +675,7 @@ - current_byte_index += 4; - } - } -- -+ } - if (sprite->has_mask) free(mask_state); - - return ROSPRITE_OK; -@@ -759,6 +779,7 @@ - */ - static uint32_t rosprite_upscale_color(uint32_t pixel, struct rosprite_mode* mode, bool* has_alpha_pixel_data) - { -+ uint8_t alpha; - switch (mode->colorbpp) { - case 32: - if (mode->color_model == ROSPRITE_RGB) { -@@ -798,7 +819,7 @@ - assert(false); /* unknown bpp */ - } - -- uint8_t alpha = pixel & 0xff; -+ alpha = pixel & 0xff; - if (alpha == 0x00) { - if (!(*has_alpha_pixel_data)) { - pixel = pixel | 0xff; -Index: Makefile -=================================================================== ---- Makefile (revision 10841) -+++ Makefile (working copy) -@@ -8,13 +8,7 @@ - PKG_CONFIG = pkg-config - - ARFLAGS = -cru --CFLAGS = -g -Wall -Wextra -Wundef -Wpointer-arith -Wcast-align \ -- -Wwrite-strings -Wstrict-prototypes \ -- -Wnested-externs -Werror -pedantic -std=c99 \ -- -Wno-format-zero-length -Wformat-security -Wstrict-aliasing=2 \ -- -Wmissing-format-attribute -Wunused -Wunreachable-code \ -- -Wformat=2 -Werror-implicit-function-declaration \ -- -Wmissing-declarations -Wmissing-prototypes -+CFLAGS = -g - LDFLAGS = -g -L./ - - # Installation prefix, if not already defined (e.g. on command line) diff --git a/www-client/netsurf/patches/netsurf-2.7.patch b/www-client/netsurf/patches/netsurf-2.7.patch new file mode 100644 index 000000000..a7e08f8cc --- /dev/null +++ b/www-client/netsurf/patches/netsurf-2.7.patch @@ -0,0 +1,18 @@ +diff -urN netsurf/Makefile.defaults netsurf-haiku/Makefile.defaults +--- netsurf/Makefile.defaults 2011-03-20 23:32:44.054525952 +0000 ++++ netsurf-haiku/Makefile.defaults 2011-06-04 00:09:37.272105472 +0000 +@@ -179,12 +179,12 @@ + + + # Where to install the netsurf binary +- NETSURF_BEOS_BIN := /boot/apps/netsurf/ ++ NETSURF_BEOS_BIN := $(shell finddir B_APPS_DIRECTORY)/NetSurf/ + + # TODO:HAIKU -- not sure if ~/.netsurf applies in beos + # Where to search for NetSurf's resources after looking in ~/.netsurf and + # $NETSURFRES. It must have a trailing / +- NETSURF_BEOS_RESOURCES := /boot/apps/netsurf/res/ ++ NETSURF_BEOS_RESOURCES := $(shell finddir B_APPS_DIRECTORY)/NetSurf/res/ + + # Enable NetSurf's use of libsvgtiny for displaying SVGs + # Valid options: YES, NO, AUTO diff --git a/www-client/netsurf/patches/netsurf-2.9.patch b/www-client/netsurf/patches/netsurf-2.9.patch new file mode 100644 index 000000000..ff7b69f98 --- /dev/null +++ b/www-client/netsurf/patches/netsurf-2.9.patch @@ -0,0 +1,77 @@ +diff -ur netsurf-2.9/libcss-0.1.2/include/libcss/font_face.h netsurf-2.9-c89/libcss-0.1.2/include/libcss/font_face.h +--- netsurf-2.9/libcss-0.1.2/include/libcss/font_face.h 2011-12-04 21:06:24.023592960 +0000 ++++ netsurf-2.9-c89/libcss-0.1.2/include/libcss/font_face.h 2012-08-30 23:10:26.000000000 +0000 +@@ -33,7 +33,7 @@ + CSS_FONT_FACE_FORMAT_SVG = 0x08, + /* SVG Font; .svg, .svgz */ + +- CSS_FONT_FACE_FORMAT_UNKNOWN = 0x10, ++ CSS_FONT_FACE_FORMAT_UNKNOWN = 0x10 + /* Format specified, but not recognised */ + + /* We don't define CSS_FONT_FACE_SRC_FORMAT_TRUETYPE as might be +@@ -49,7 +49,7 @@ + typedef enum css_font_face_location_type { + CSS_FONT_FACE_LOCATION_TYPE_UNSPECIFIED = 0, + CSS_FONT_FACE_LOCATION_TYPE_LOCAL = 1, +- CSS_FONT_FACE_LOCATION_TYPE_URI = 2, ++ CSS_FONT_FACE_LOCATION_TYPE_URI = 2 + } css_font_face_location_type; + + +diff -ur netsurf-2.9/libcss-0.1.2/include/libcss/properties.h netsurf-2.9-c89/libcss-0.1.2/include/libcss/properties.h +--- netsurf-2.9/libcss-0.1.2/include/libcss/properties.h 2012-01-28 20:25:01.023330816 +0000 ++++ netsurf-2.9-c89/libcss-0.1.2/include/libcss/properties.h 2012-08-30 23:11:48.000000000 +0000 +@@ -287,7 +287,7 @@ + enum css_column_rule_color_e { + CSS_COLUMN_RULE_COLOR_INHERIT = CSS_BACKGROUND_COLOR_INHERIT, + CSS_COLUMN_RULE_COLOR_COLOR = CSS_BACKGROUND_COLOR_COLOR, +- CSS_COLUMN_RULE_COLOR_CURRENT_COLOR = CSS_BACKGROUND_COLOR_CURRENT_COLOR, ++ CSS_COLUMN_RULE_COLOR_CURRENT_COLOR = CSS_BACKGROUND_COLOR_CURRENT_COLOR + }; + + enum css_column_rule_style_e { +diff -ur netsurf-2.9/libcss-0.1.2/src/parse/properties/content.c netsurf-2.9-c89/libcss-0.1.2/src/parse/properties/content.c +--- netsurf-2.9/libcss-0.1.2/src/parse/properties/content.c 2011-01-26 12:49:58.027000832 +0000 ++++ netsurf-2.9-c89/libcss-0.1.2/src/parse/properties/content.c 2012-08-30 23:23:00.000000000 +0000 +@@ -33,7 +33,7 @@ + css_style *result) + { + int orig_ctx = *ctx; +- css_error error; ++ css_error error = 0; + const css_token *token; + bool match; + +diff -ur netsurf-2.9/libcss-0.1.2/src/parse/properties/quotes.c netsurf-2.9-c89/libcss-0.1.2/src/parse/properties/quotes.c +--- netsurf-2.9/libcss-0.1.2/src/parse/properties/quotes.c 2011-01-26 12:49:58.027787264 +0000 ++++ netsurf-2.9-c89/libcss-0.1.2/src/parse/properties/quotes.c 2012-08-30 23:25:08.000000000 +0000 +@@ -32,7 +32,7 @@ + css_style *result) + { + int orig_ctx = *ctx; +- css_error error; ++ css_error error = 0; + const css_token *token; + bool match; + +diff -ur netsurf-2.9/netsurf-2.9/Makefile.defaults netsurf-2.9-c89/netsurf-2.9/Makefile.defaults +--- netsurf-2.9/netsurf-2.9/Makefile.defaults 2012-01-01 21:42:38.027000832 +0000 ++++ netsurf-2.9-c89/netsurf-2.9/Makefile.defaults 2012-08-31 16:45:50.000000000 +0000 +@@ -186,13 +186,13 @@ + ifeq ($(TARGET),beos) + + ++ # HAIKU use finddir + # Where to install the netsurf binary +- NETSURF_BEOS_BIN := /boot/apps/netsurf/ ++ NETSURF_BEOS_BIN := $(shell finddir B_APPS_DIRECTORY)/NetSurf/ + +- # TODO:HAIKU -- not sure if ~/.netsurf applies in beos + # Where to search for NetSurf's resources after looking in ~/.netsurf and + # $NETSURFRES. It must have a trailing / +- NETSURF_BEOS_RESOURCES := /boot/apps/netsurf/res/ ++ NETSURF_BEOS_RESOURCES := $(shell finddir B_APPS_DIRECTORY)/NetSurf/res/ + + # Enable NetSurf's use of libsvgtiny for displaying SVGs + # Valid options: YES, NO, AUTO diff --git a/www-client/netsurf/patches/netsurf-2.HEAD.patch b/www-client/netsurf/patches/netsurf-2.HEAD.patch new file mode 100644 index 000000000..606e567c4 --- /dev/null +++ b/www-client/netsurf/patches/netsurf-2.HEAD.patch @@ -0,0 +1,272 @@ +diff --git a/beos/download.cpp b/beos/download.cpp +index bdd85b5..6927dcb 100644 +--- a/beos/download.cpp ++++ b/beos/download.cpp +@@ -29,6 +29,7 @@ extern "C" { + #include + #include + #include ++#include + #include + + class NSDownloadWindow: public BWindow +@@ -192,12 +193,23 @@ struct gui_download_window *gui_download_window_create(download_context *ctx, + download->window = new NSDownloadWindow(ctx); + + // Also ask the user where to save the file +- // TODO inject the suggested name somehow + BMessage* msg = new BMessage(B_SAVE_REQUESTED); + + BFilePanel* panel = new BFilePanel(B_SAVE_PANEL, + new BMessenger(download->window), NULL, 0, false); + ++ BWindow* win = panel->Window(); ++ ++ win->LockLooper(); ++ ++ BView* background = win->ChildAt(0); ++ BView* nameView = background->FindView("text view"); ++ ++ BTextControl* txt = dynamic_cast(nameView); ++ txt->SetText(download_context_get_filename(ctx)); ++ ++ win->UnlockLooper(); ++ + msg->AddPointer("source", panel); + msg->AddPointer("dw", download); + panel->SetMessage(msg); +diff --git a/beos/gui.cpp b/beos/gui.cpp +index ff9b92d..b2f4043 100644 +--- a/beos/gui.cpp ++++ b/beos/gui.cpp +@@ -378,12 +378,12 @@ static void gui_init2(int argc, char** argv) + /* create an initial browser window */ + error = nsurl_create(addr, &url); + if (error == NSERROR_OK) { +- error = browser_window_create(BROWSER_WINDOW_VERIFIABLE | +- BROWSER_WINDOW_HISTORY, +- url, +- NULL, +- NULL, +- NULL); ++ error = browser_window_create((browser_window_nav_flags) ++ (BROWSER_WINDOW_VERIFIABLE | BROWSER_WINDOW_HISTORY), ++ url, ++ NULL, ++ NULL, ++ NULL); + nsurl_unref(url); + } + if (error != NSERROR_OK) { +@@ -414,7 +414,7 @@ int main(int argc, char** argv) + new NSBrowserApplication; + } + +- char* messages = "/boot/apps/netsurf/res/en/Messages"; ++ const char* messages = "/boot/apps/netsurf/res/en/Messages"; + + /* initialise netsurf */ + netsurf_init(&argc, &argv, options.Path(), messages); +@@ -439,7 +439,7 @@ int gui_init_replicant(int argc, char** argv) + options.Append("x-vnd.NetSurf"); + } + +- char* messages = "/boot/apps/netsurf/res/en/Messages"; ++ const char* messages = "/boot/apps/netsurf/res/en/Messages"; + + /* initialise netsurf */ + netsurf_init(&argc, &argv, options.Path(), messages); +diff --git a/beos/scaffolding.cpp b/beos/scaffolding.cpp +index 873c9e8..7f2b120 100644 +--- a/beos/scaffolding.cpp ++++ b/beos/scaffolding.cpp +@@ -140,7 +140,6 @@ struct replicant_thread_info { + + + static int open_windows = 0; /**< current number of open browsers */ +-static struct beos_scaffolding *current_model; /**< current window for model dialogue use */ + static NSBaseView *replicant_view = NULL; /**< if not NULL, the replicant View we are running NetSurf for */ + static sem_id replicant_done_sem = -1; + +@@ -558,7 +557,7 @@ static void nsbeos_window_destroy_event(NSBrowserWindow *window, nsbeos_scaffold + } + + +-void nsbeos_scaffolding_update_colors(nsbeos_scaffolding *g) ++static void nsbeos_scaffolding_update_colors(nsbeos_scaffolding *g) + { + if (!g->top_view->LockLooper()) + return; +@@ -592,7 +591,6 @@ NSBrowserWindow::activeWindow = NULL; + + void nsbeos_scaffolding_dispatch_event(nsbeos_scaffolding *scaffold, BMessage *message) + { +- int width, height; + struct browser_window *bw; + bw = nsbeos_get_browser_for_gui(scaffold->top_level); + bool reloadAll = false; +@@ -649,32 +647,28 @@ void nsbeos_scaffolding_dispatch_event(nsbeos_scaffolding *scaffold, BMessage *m + } else + url << path.Path(); + +- nsurl *nsurl; +- nserror error; +- +- error = nsurl_create(url.String(), &nsurl); +- if (error == NSERROR_OK) { +- if (/*message->WasDropped() &&*/ i == 0) { +- browser_window_navigate(bw, +- nsurl, +- NULL, +- BROWSER_WINDOW_HISTORY | +- BROWSER_WINDOW_VERIFIABLE, +- NULL, +- NULL, +- NULL); +- } else { +- error = browser_window_create(BROWSER_WINDOW_VERIFIABLE, +- nsurl, +- NULL, +- bw, +- NULL); +- } +- nsurl_unref(nsurl); +- } +- if (error != NSERROR_OK) { +- warn_user(messages_get_errorcode(error), 0); +- } ++ nsurl *nsurl; ++ nserror error; ++ ++ error = nsurl_create(url.String(), &nsurl); ++ if (error == NSERROR_OK) { ++ if (/*message->WasDropped() &&*/ i == 0) { ++ browser_window_navigate(bw, nsurl, NULL, ++ (browser_window_nav_flags) ++ (BROWSER_WINDOW_HISTORY | BROWSER_WINDOW_VERIFIABLE), ++ NULL, NULL, NULL); ++ } else { ++ error = browser_window_create(BROWSER_WINDOW_VERIFIABLE, ++ nsurl, ++ NULL, ++ bw, ++ NULL); ++ } ++ nsurl_unref(nsurl); ++ } ++ if (error != NSERROR_OK) { ++ warn_user(messages_get_errorcode(error), 0); ++ } + } + break; + } +@@ -712,23 +706,23 @@ void nsbeos_scaffolding_dispatch_event(nsbeos_scaffolding *scaffold, BMessage *m + if (message->FindString("be:url", &url) < B_OK) + break; + +- nsurl *nsurl; +- nserror error; +- +- error = nsurl_create(url.String(), &nsurl); +- if (error != NSERROR_OK) { +- warn_user(messages_get_errorcode(error), 0); +- } else { +- browser_window_navigate(bw, +- nsurl, +- NULL, +- BROWSER_WINDOW_HISTORY | +- BROWSER_WINDOW_VERIFIABLE, +- NULL, +- NULL, +- NULL); +- nsurl_unref(nsurl); +- } ++ nsurl *nsurl; ++ nserror error; ++ ++ error = nsurl_create(url.String(), &nsurl); ++ if (error != NSERROR_OK) { ++ warn_user(messages_get_errorcode(error), 0); ++ } else { ++ browser_window_navigate(bw, ++ nsurl, ++ NULL, ++ (browser_window_nav_flags)(BROWSER_WINDOW_HISTORY | ++ BROWSER_WINDOW_VERIFIABLE), ++ NULL, ++ NULL, ++ NULL); ++ nsurl_unref(nsurl); ++ } + break; + } + case B_COPY: +@@ -777,35 +771,35 @@ void nsbeos_scaffolding_dispatch_event(nsbeos_scaffolding *scaffold, BMessage *m + case BROWSER_NAVIGATE_HOME: + case 'home': + { +- nsurl *url; +- nserror error; ++ nsurl *url; ++ nserror error; + + static const char *addr = NETSURF_HOMEPAGE; + + if (nsoption_charp(homepage_url) != NULL) { + addr = nsoption_charp(homepage_url); +- } ++ } + +- error = nsurl_create(addr, &url); +- if (error != NSERROR_OK) { +- warn_user(messages_get_errorcode(error), 0); +- } else { +- browser_window_navigate(bw, ++ error = nsurl_create(addr, &url); ++ if (error != NSERROR_OK) { ++ warn_user(messages_get_errorcode(error), 0); ++ } else { ++ browser_window_navigate(bw, + url, + NULL, +- BROWSER_WINDOW_HISTORY | +- BROWSER_WINDOW_VERIFIABLE, ++ (browser_window_nav_flags)(BROWSER_WINDOW_HISTORY | ++ BROWSER_WINDOW_VERIFIABLE), + NULL, + NULL, + NULL); +- nsurl_unref(url); +- } ++ nsurl_unref(url); ++ } + break; + } + case 'urle': + { +- nsurl *url; +- nserror error; ++ nsurl *url; ++ nserror error; + BString text; + + if (!scaffold->url_bar->LockLooper()) +@@ -822,8 +816,8 @@ void nsbeos_scaffolding_dispatch_event(nsbeos_scaffolding *scaffold, BMessage *m + browser_window_navigate(bw, + url, + NULL, +- BROWSER_WINDOW_HISTORY | +- BROWSER_WINDOW_VERIFIABLE, ++ (browser_window_nav_flags)(BROWSER_WINDOW_HISTORY | ++ BROWSER_WINDOW_VERIFIABLE), + NULL, + NULL, + NULL); +@@ -1034,7 +1028,6 @@ void nsbeos_scaffolding_destroy(nsbeos_scaffolding *scaffold) + + void nsbeos_window_update_back_forward(struct beos_scaffolding *g) + { +- int width, height; + struct browser_window *bw = nsbeos_get_browser_for_gui(g->top_level); + + if (!g->top_view->LockLooper()) diff --git a/www-client/w3m/licenses/W3M b/www-client/w3m/licenses/W3M new file mode 100644 index 000000000..a7e0282f8 --- /dev/null +++ b/www-client/w3m/licenses/W3M @@ -0,0 +1,11 @@ + (C) Copyright 1994-2002 by Akinori Ito + (C) Copyright 2002-2011 by Akinori Ito, Hironori Sakamoto, Fumitoshi Ukai + +Use, modification and redistribution of this software is hereby granted, +provided that this entire copyright notice is included on any copies of +this software and applications and derivations thereof. + +This software is provided on an "as is" basis, without warranty of any +kind, either expressed or implied, as to any matter including, but not +limited to warranty of fitness of purpose, or merchantability, or +results obtained from use of this software. diff --git a/www-client/w3m/patches/w3m-0.5.3.patch b/www-client/w3m/patches/w3m-0.5.3.patch new file mode 100644 index 000000000..b7a47197b --- /dev/null +++ b/www-client/w3m/patches/w3m-0.5.3.patch @@ -0,0 +1,74 @@ +diff -up w3m-0.5.3/acinclude.m4.orig w3m-0.5.3/acinclude.m4 +--- w3m-0.5.3/acinclude.m4.orig 2011-01-04 02:22:18.056885248 -0700 ++++ w3m-0.5.3/acinclude.m4 2012-05-04 23:23:51.741605376 -0600 +@@ -382,7 +382,7 @@ AC_DEFUN([AC_W3M_EXTLIBS], + [lib=$1 + AC_MSG_CHECKING(for -l$lib) + extlib="not found" +- for dir in /lib /usr/lib /usr/local/lib /usr/ucblib /usr/ccslib /usr/ccs/lib /lib64 /usr/lib64 ++ for dir in /lib /usr/lib /usr/local/lib /usr/ucblib /usr/ccslib /usr/ccs/lib /lib64 /usr/lib64 /boot/common/lib /boot/develop/abi/current/lib + do + if test -f $dir/lib$lib.a -o -f $dir/lib$lib.so ; then + LIBS="$LIBS -l$lib" +@@ -420,7 +420,7 @@ AC_ARG_WITH(gc, + [test x"$with_gc" = xno && AC_MSG_ERROR([You can not build w3m without gc])], + [with_gc="yes"]) + AC_MSG_RESULT($with_gc) +- test x"$with_gc" = xyes && with_gc="/usr /usr/local ${HOME}" ++ test x"$with_gc" = xyes && with_gc="/usr /usr/local /boot/common ${HOME}" + unset ac_cv_header_gc_h + AC_CHECK_HEADER(gc.h) + if test x"$ac_cv_header_gc_h" = xno; then +@@ -477,7 +477,7 @@ AC_MSG_RESULT($with_ssl) + if test x"$with_ssl" != xno; then + PKG_CHECK_MODULES(SSL, openssl,,[ + AC_MSG_CHECKING(for SSL library/header) +- test x"$with_ssl" = xyes && with_ssl="/usr/openssl /usr/ssl /usr /usr/local/openssl /usr/local/ssl /usr/local" ++ test x"$with_ssl" = xyes && with_ssl="/usr/openssl /usr/ssl /usr /usr/local/openssl /usr/local/ssl /usr/local /boot/common" + AC_MSG_RESULT($with_ssl) + for dir in $with_ssl + do +diff -up w3m-0.5.3/configure.ac.orig w3m-0.5.3/configure.ac +--- w3m-0.5.3/configure.ac.orig 2011-01-14 20:01:55.044826624 -0700 ++++ w3m-0.5.3/configure.ac 2012-05-04 23:25:37.043778048 -0600 +@@ -82,7 +82,7 @@ AC_W3M_MAILER + AC_W3M_EXT_BROWSER + + dnl Checks for ext libs +-for lib in bsd BSD 44bsd socket nsl dld dl ++for lib in bsd BSD 44bsd socket network nsl dld dl + do + AC_W3M_EXTLIBS($lib) + done +@@ -169,7 +169,14 @@ AC_SUBST(HELP_DIR) + HELP_DIR="$datadir/$PACKAGE" + AC_DEFINE(HELP_DIR, "$HELP_DIR") + AC_SUBST(RC_DIR) +-RC_DIR="~/.$PACKAGE" ++case "$host_os" in ++ *haiku*) ++ RC_DIR="~/config/settings/$PACKAGE" ++ ;; ++ *) ++ RC_DIR="~/.$PACKAGE" ++ ;; ++esac + AC_DEFINE(RC_DIR, "$RC_DIR") + AC_SUBST(DOCDIRS) + DOCDIRS="doc:en_English doc-jp:ja_Japanese" +diff -up w3m-0.5.3/main.c.orig w3m-0.5.3/main.c +--- w3m-0.5.3/main.c.orig 2011-01-04 02:42:19.049807360 -0700 ++++ w3m-0.5.3/main.c 2012-05-04 23:23:51.778305536 -0600 +@@ -833,7 +833,12 @@ main(int argc, char **argv, char **envp) + mySignal(SIGPIPE, SigPipe); + #endif + ++#if GC_VERSION_MAJOR >= 7 && GC_VERSION_MINOR >= 2 ++ orig_GC_warn_proc = GC_get_warn_proc(); ++ GC_set_warn_proc(wrap_GC_warn_proc); ++#else + orig_GC_warn_proc = GC_set_warn_proc(wrap_GC_warn_proc); ++#endif + err_msg = Strnew(); + if (load_argc == 0) { + /* no URL specified */ diff --git a/www-client/w3m/w3m-0.5.3.bep b/www-client/w3m/w3m-0.5.3.bep new file mode 100644 index 000000000..fc8b1b292 --- /dev/null +++ b/www-client/w3m/w3m-0.5.3.bep @@ -0,0 +1,30 @@ +DESCRIPTION="Text based WWW browser, supports tables and frames" +HOMEPAGE="http://w3m.sourceforge.net/" +SRC_URI="http://sourceforge.net/projects/w3m/files/w3m/w3m-0.5.3/w3m-0.5.3.tar.gz/download" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="dev-libs/boehm-gc >= 7.2_alpha6 + sys-libs/ncurses >= 5.9 + dev-libs/openssl >= 0.9.8l + sys-devel/gettext >= 0.17" +CHECKSUM_MD5="1b845a983a50b8dec0169ac48479eacc" +BUILD { + cd w3m-0.5.3 + libtoolize -fci + autoconf + ./configure --prefix="$(finddir B_COMMON_DIRECTORY)" \ + --sysconfdir="$(finddir B_COMMON_SETTINGS_DIRECTORY)" \ + --mandir="$(finddir B_COMMON_DOCUMENTATION_DIRECTORY)/man" \ + --datarootdir="$(finddir B_COMMON_DATA_DIRECTORY)" + make +} + +INSTALL { + cd w3m-0.5.3 + make install +} + +LICENSE="W3M" +COPYRIGHT="1994-2011 Akinori ITO + 2002-2011 Hironori SAKAMOTO + 2002-2011 Fumitoshi UKAI" diff --git a/www-servers/apache/apache-2.2.17.bep b/www-servers/apache/apache-2.2.17.bep index b51ecbfa5..201911275 100644 --- a/www-servers/apache/apache-2.2.17.bep +++ b/www-servers/apache/apache-2.2.17.bep @@ -12,7 +12,7 @@ BUILD { aclocal autoconf ./configure --prefix=`finddir B_COMMON_DIRECTORY` \ - --sbindir=`finddir B_COMMON_SERVERS_DIRECTORY` \ + --sbindir=`finddir B_COMMON_BIN_DIRECTORY` \ --mandir=`finddir B_COMMON_DOCUMENTATION_DIRECTORY`/man \ --sysconfdir=`finddir B_COMMON_SETTINGS_DIRECTORY` make diff --git a/www-servers/apache/apache-2.2.22.bep b/www-servers/apache/apache-2.2.22.bep new file mode 100644 index 000000000..66ac4713a --- /dev/null +++ b/www-servers/apache/apache-2.2.22.bep @@ -0,0 +1,32 @@ +DESCRIPTION="The Apache Web Server." +HOMEPAGE="http://httpd.apache.org" +SRC_URI="http://apache.osuosl.org//httpd/httpd-2.2.22.tar.gz" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="dev-libs/apr >= 1.4 2 + dev-libs/apr-utils >= 1.3.9" +CHECKSUM_MD5="d77fa5af23df96a8af68ea8114fa6ce1" +BUILD { + cd httpd-2.2.22 + libtoolize --force --copy --install + aclocal + autoconf + ./configure --prefix=`finddir B_COMMON_DIRECTORY` \ + --sbindir=`finddir B_COMMON_BIN_DIRECTORY` \ + --mandir=`finddir B_COMMON_DOCUMENTATION_DIRECTORY`/man \ + --sysconfdir=`finddir B_COMMON_SETTINGS_DIRECTORY` + make +} + +INSTALL { + cd httpd-2.2.22 + make install +} + +TEST { + cd httpd-2.2.22 + make test +} + +LICENSE="Apache v2" +COPYRIGHT="2012 The Apache Software Foundation." diff --git a/www-servers/apache/apache-2.4.3.bep b/www-servers/apache/apache-2.4.3.bep new file mode 100644 index 000000000..10bc209c9 --- /dev/null +++ b/www-servers/apache/apache-2.4.3.bep @@ -0,0 +1,33 @@ +DESCRIPTION="The Apache Web Server." +HOMEPAGE="http://httpd.apache.org" +SRC_URI="http://apache.osuosl.org//httpd/httpd-2.4.3.tar.gz" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="dev-libs/apr >= 1.4 2 + dev-libs/apr-util >= 1.3.9" +CHECKSUM_MD5="538dccd22dd18466fff3ec7948495417" +BUILD { + cd httpd-2.4.3 + libtoolize --force --copy --install + aclocal + autoconf + ./configure --prefix=`finddir B_COMMON_DIRECTORY` \ + --sbindir=`finddir B_COMMON_BIN_DIRECTORY` \ + --mandir=`finddir B_COMMON_DOCUMENTATION_DIRECTORY`/man \ + --sysconfdir=`finddir B_COMMON_SETTINGS_DIRECTORY` \ + --with-z=`finddir B_COMMON_LIB_DIRECTORY` + make +} + +INSTALL { + cd httpd-2.4.3 + make install +} + +TEST { + cd httpd-2.4.3 + make test +} + +LICENSE="Apache v2" +COPYRIGHT="2012 The Apache Software Foundation." diff --git a/www-servers/apache/patches/apache-2.2.22.patch b/www-servers/apache/patches/apache-2.2.22.patch new file mode 100644 index 000000000..d615f7fc3 --- /dev/null +++ b/www-servers/apache/patches/apache-2.2.22.patch @@ -0,0 +1,48 @@ +diff -urN httpd-2.2.22/server/mpm_common.c httpd-2.2.22-haiku/server/mpm_common.c +--- httpd-2.2.22/server/mpm_common.c 2010-10-07 16:56:54.055836672 +0000 ++++ httpd-2.2.22-haiku/server/mpm_common.c 2011-02-05 10:58:12.295436288 +0000 +@@ -950,7 +950,7 @@ + + static const char *dash_k_arg; + +-static int send_signal(pid_t pid, int sig) ++static int _send_signal(pid_t pid, int sig) + { + if (kill(pid, sig) < 0) { + ap_log_error(APLOG_MARK, APLOG_STARTUP, errno, NULL, +@@ -1007,7 +1007,7 @@ + printf("%s\n", status); + } + else { +- send_signal(otherpid, SIGTERM); ++ _send_signal(otherpid, SIGTERM); + } + return 1; + } +@@ -1017,7 +1017,7 @@ + printf("httpd not running, trying to start\n"); + } + else { +- *exit_status = send_signal(otherpid, SIGHUP); ++ *exit_status = _send_signal(otherpid, SIGHUP); + return 1; + } + } +@@ -1027,7 +1027,7 @@ + printf("httpd not running, trying to start\n"); + } + else { +- *exit_status = send_signal(otherpid, AP_SIG_GRACEFUL); ++ *exit_status = _send_signal(otherpid, AP_SIG_GRACEFUL); + return 1; + } + } +@@ -1038,7 +1038,7 @@ + printf("%s\n", status); + } + else { +- *exit_status = send_signal(otherpid, AP_SIG_GRACEFUL_STOP); ++ *exit_status = _send_signal(otherpid, AP_SIG_GRACEFUL_STOP); + } + #else + printf("httpd MPM \"" MPM_NAME "\" does not support graceful-stop\n"); diff --git a/www-servers/apache/patches/apache-2.4.3.patch b/www-servers/apache/patches/apache-2.4.3.patch new file mode 100644 index 000000000..714cf4479 --- /dev/null +++ b/www-servers/apache/patches/apache-2.4.3.patch @@ -0,0 +1,172 @@ +diff -urN httpd-2.4.3/modules/proxy/mod_proxy_connect.c httpd-2.4.3-haiku/modules/proxy/mod_proxy_connect.c +--- httpd-2.4.3/modules/proxy/mod_proxy_connect.c 2012-07-28 14:40:23.041680896 +0000 ++++ httpd-2.4.3-haiku/modules/proxy/mod_proxy_connect.c 2012-12-02 06:58:17.131072000 +0000 +@@ -254,7 +254,7 @@ + rv = apr_sockaddr_info_get(&nexthop, connectname, APR_UNSPEC, + connectport, 0, p); + if (rv != APR_SUCCESS) { +- ap_log_rerror(APLOG_MARK, APLOG_ERR, rv, r, APLOGNO() ++ ap_log_rerror(APLOG_MARK, APLOG_ERR, rv, r, + "failed to resolve hostname '%s'", connectname); + return ap_proxyerror(r, HTTP_BAD_GATEWAY, + apr_pstrcat(p, "DNS lookup failure for: ", +diff -urN httpd-2.4.3/modules/slotmem/mod_slotmem_shm.c httpd-2.4.3-haiku/modules/slotmem/mod_slotmem_shm.c +--- httpd-2.4.3/modules/slotmem/mod_slotmem_shm.c 2012-04-03 13:36:55.037224448 +0000 ++++ httpd-2.4.3-haiku/modules/slotmem/mod_slotmem_shm.c 2012-12-02 06:58:40.734265344 +0000 +@@ -33,7 +33,7 @@ + #include /* for getpid() */ + #endif + +-#if HAVE_SYS_SEM_H ++#if HAVE_SYS_SHM_H + #include + #if !defined(SHM_R) + #define SHM_R 0400 +diff -urN httpd-2.4.3/acinclude.m4 httpd-2.4.3-haiku/acinclude.m4 +--- httpd-2.4.3/acinclude.m4 2012-07-23 15:20:48.061341696 +0000 ++++ httpd-2.4.3-haiku/acinclude.m4 2012-12-02 15:18:03.000000000 +0000 +@@ -4,25 +4,25 @@ + dnl AC_HELP_STRING, so let's try to call it if we can. + dnl Note: this define must be on one line so that it can be properly returned + dnl as the help string. +-AC_DEFUN(APACHE_HELP_STRING,[ifelse(regexp(AC_ACVERSION, 2\.1), -1, AC_HELP_STRING($1,$2),[ ]$1 substr([ ],len($1))$2)])dnl ++AC_DEFUN([APACHE_HELP_STRING],[ifelse(regexp(AC_ACVERSION, 2\.1), -1, AC_HELP_STRING($1,$2),[ ]$1 substr([ ],len($1))$2)])dnl + + dnl APACHE_SUBST(VARIABLE) + dnl Makes VARIABLE available in generated files + dnl (do not use @variable@ in Makefiles, but $(variable)) +-AC_DEFUN(APACHE_SUBST,[ ++AC_DEFUN([APACHE_SUBST],[ + APACHE_VAR_SUBST="$APACHE_VAR_SUBST $1" + AC_SUBST($1) + ]) + + dnl APACHE_FAST_OUTPUT(FILENAME) + dnl Perform substitutions on FILENAME (Makefiles only) +-AC_DEFUN(APACHE_FAST_OUTPUT,[ ++AC_DEFUN([APACHE_FAST_OUTPUT],[ + APACHE_FAST_OUTPUT_FILES="$APACHE_FAST_OUTPUT_FILES $1" + ]) + + dnl APACHE_GEN_CONFIG_VARS + dnl Creates config_vars.mk +-AC_DEFUN(APACHE_GEN_CONFIG_VARS,[ ++AC_DEFUN([APACHE_GEN_CONFIG_VARS],[ + APACHE_SUBST(abs_srcdir) + APACHE_SUBST(bindir) + APACHE_SUBST(sbindir) +@@ -112,14 +112,14 @@ + + dnl APACHE_GEN_MAKEFILES + dnl Creates Makefiles +-AC_DEFUN(APACHE_GEN_MAKEFILES,[ ++AC_DEFUN([APACHE_GEN_MAKEFILES],[ + $SHELL $srcdir/build/fastgen.sh $srcdir $ac_cv_mkdir_p $BSD_MAKEFILE $APACHE_FAST_OUTPUT_FILES + ]) + + dnl ## APACHE_OUTPUT(file) + dnl ## adds "file" to the list of files generated by AC_OUTPUT + dnl ## This macro can be used several times. +-AC_DEFUN(APACHE_OUTPUT, [ ++AC_DEFUN([APACHE_OUTPUT], [ + APACHE_OUTPUT_FILES="$APACHE_OUTPUT_FILES $1" + ]) + +@@ -128,7 +128,7 @@ + dnl + dnl If rlim_t is not defined, define it to int + dnl +-AC_DEFUN(APACHE_TYPE_RLIM_T, [ ++AC_DEFUN([APACHE_TYPE_RLIM_T], [ + AC_CACHE_CHECK([for rlim_t], ac_cv_type_rlim_t, [ + AC_TRY_COMPILE([ + #include +@@ -146,7 +146,7 @@ + ]) + + dnl APACHE_MODPATH_INIT(modpath) +-AC_DEFUN(APACHE_MODPATH_INIT,[ ++AC_DEFUN([APACHE_MODPATH_INIT],[ + current_dir=$1 + modpath_current=modules/$1 + modpath_static= +@@ -155,7 +155,7 @@ + > $modpath_current/modules.mk + ])dnl + dnl +-AC_DEFUN(APACHE_MODPATH_FINISH,[ ++AC_DEFUN([APACHE_MODPATH_FINISH],[ + echo "DISTCLEAN_TARGETS = modules.mk" >> $modpath_current/modules.mk + echo "static = $modpath_static" >> $modpath_current/modules.mk + echo "shared = $modpath_shared" >> $modpath_current/modules.mk +@@ -168,7 +168,7 @@ + ])dnl + dnl + dnl APACHE_MODPATH_ADD(name[, shared[, objects [, ldflags[, libs]]]]) +-AC_DEFUN(APACHE_MODPATH_ADD,[ ++AC_DEFUN([APACHE_MODPATH_ADD],[ + if test -z "$3"; then + objects="mod_$1.lo" + else +@@ -214,7 +214,7 @@ + dnl path -- relative path to MPM (default: server/mpm/mpmname) + dnl libs -- libs needed by this MPM + dnl +-AC_DEFUN(APACHE_MPM_MODULE,[ ++AC_DEFUN([APACHE_MPM_MODULE],[ + if ap_mpm_is_enabled $1; then + if test -z "$3"; then + objects="$1.lo" +@@ -291,7 +291,7 @@ + dnl prereq_module's APACHE_MODULE() statement must have been processed + dnl before the current APACHE_MODULE() statement. + dnl +-AC_DEFUN(APACHE_MODULE,[ ++AC_DEFUN([APACHE_MODULE],[ + AC_MSG_CHECKING(whether to enable mod_$1) + define([optname],[--]ifelse($5,yes,disable,enable)[-]translit($1,_,-))dnl + AC_ARG_ENABLE(translit($1,_,-),APACHE_HELP_STRING(optname(),$2),force_$1=$enableval,enable_$1=ifelse($5,,maybe-all,$5)) +@@ -392,7 +392,7 @@ + dnl + dnl APACHE_ENABLE_MODULES + dnl +-AC_DEFUN(APACHE_ENABLE_MODULES,[ ++AC_DEFUN([APACHE_ENABLE_MODULES],[ + module_selection=most + module_default=shared + +@@ -452,7 +452,7 @@ + ]) + ]) + +-AC_DEFUN(APACHE_REQUIRE_CXX,[ ++AC_DEFUN([APACHE_REQUIRE_CXX],[ + if test -z "$apache_cxx_done"; then + AC_PROG_CXX + AC_PROG_CXXCPP +@@ -466,7 +466,7 @@ + dnl Configure for OpenSSL, giving preference to + dnl "--with-ssl=" if it was specified. + dnl +-AC_DEFUN(APACHE_CHECK_OPENSSL,[ ++AC_DEFUN([APACHE_CHECK_OPENSSL],[ + AC_CACHE_CHECK([for OpenSSL], [ac_cv_openssl], [ + dnl initialise the variables we use + ac_cv_openssl=no +@@ -576,14 +576,14 @@ + dnl apache will use while generating scripts like autoconf and apxs and + dnl the default config file. + +-AC_DEFUN(APACHE_SUBST_EXPANDED_ARG,[ ++AC_DEFUN([APACHE_SUBST_EXPANDED_ARG],[ + APR_EXPAND_VAR(exp_$1, [$]$1) + APACHE_SUBST(exp_$1) + APR_PATH_RELATIVE(rel_$1, [$]exp_$1, ${prefix}) + APACHE_SUBST(rel_$1) + ]) + +-AC_DEFUN(APACHE_EXPORT_ARGUMENTS,[ ++AC_DEFUN([APACHE_EXPORT_ARGUMENTS],[ + APACHE_SUBST_EXPANDED_ARG(exec_prefix) + APACHE_SUBST_EXPANDED_ARG(bindir) + APACHE_SUBST_EXPANDED_ARG(sbindir) diff --git a/www-servers/cherokee/cherokee-1.2.101.bep b/www-servers/cherokee/cherokee-1.2.101.bep new file mode 100644 index 000000000..468b11357 --- /dev/null +++ b/www-servers/cherokee/cherokee-1.2.101.bep @@ -0,0 +1,32 @@ +DESCRIPTION="Cherokee is an innovative, feature rich, and yet easy to configure open source web server" +HOMEPAGE="http://www.cherokee-project.com" +SRC_URI="http://cherokee.osuosl.org/1.2/1.2.101/cherokee-1.2.101.tar.gz" +REVISION="1" +STATUS_HAIKU="broken" +DEPEND="" +CHECKSUM_MD5="ef47003355a2e368e4d9596cd070ef23" +BUILD { + cd cherokee-1.2.101 + libtoolize --force --copy --install + aclocal -I m4 + autoheader + automake --add-missing + autoconf + ./configure --prefix=`finddir B_COMMON_DIRECTORY` \ + --enable-nls=no + make +} + +INSTALL { + cd cherokee-1.2.101 + make install +} + +TEST { + cd cherokee-1.2.101 +# make test +# make check +} + +LICENSE="GNU GPL v2" +COPYRIGHT="2001-2011 Alvaro Lopez Ortega" diff --git a/www-servers/cherokee/patches/cherokee-1.2.101.patch b/www-servers/cherokee/patches/cherokee-1.2.101.patch new file mode 100644 index 000000000..71e854259 --- /dev/null +++ b/www-servers/cherokee/patches/cherokee-1.2.101.patch @@ -0,0 +1,21 @@ +diff -urN cherokee-1.2.101/configure.in cherokee-1.2.101-haiku/configure.in +--- cherokee-1.2.101/configure.in 2011-10-18 18:49:42.034865152 +0000 ++++ cherokee-1.2.101-haiku/configure.in 2012-07-19 15:37:24.169869312 +0000 +@@ -109,6 +109,9 @@ + setenv_is_threadsafe="yes" + libdl="-ldl" + ;; ++ *-*-haiku*) ++ libdl="" ++ ;; + *-*-hpux*) + libdl="-ldl" + ;; +@@ -324,6 +327,7 @@ + + AC_CHECK_FUNC(socket, :, [ + AC_CHECK_LIB(socket, main) ++ AC_CHECK_LIB(network, socket) + AC_CHECK_LIB(net, main) + AC_CHECK_LIB(nsl_s, main) + AC_CHECK_LIB(nsl, main) diff --git a/www-servers/haproxy/haproxy-1.4.22.bep b/www-servers/haproxy/haproxy-1.4.22.bep new file mode 100644 index 000000000..fa1d3ce35 --- /dev/null +++ b/www-servers/haproxy/haproxy-1.4.22.bep @@ -0,0 +1,22 @@ +DESCRIPTION="Reliable, high performace TCP/HTTP load balancer" +HOMEPAGE="http://haproxy.1wt.eu/" +SRC_URI="http://haproxy.1wt.eu/download/1.4/src/haproxy-1.4.22.tar.gz" +CHECKSUM_MD5="a0b007c76f6a78524f3b3dd5e704979c" +STATUS_HAIKU="stable" +REVISION="1" +BUILD { + cd haproxy-1.4.22 + make TARGET=haiku PREFIX= SBINDIR=`finddir B_COMMON_BIN_DIRECTORY` \ + MANDIR=`finddir B_COMMON_DOCUMENTATION_DIRECTORY`/man \ + DOCDIR=`finddir B_COMMON_DOCUMENTATION_DIRECTORY` +} + +INSTALL { + cd haproxy-1.4.22 + make install DESTDIR=$DESTDIR PREFIX= SBINDIR=`finddir B_COMMON_BIN_DIRECTORY` \ + MANDIR=`finddir B_COMMON_DOCUMENTATION_DIRECTORY`/man \ + DOCDIR=`finddir B_COMMON_DOCUMENTATION_DIRECTORY` +} + +LICENSE="GNU GPL v2" +COPYRIGHT="2012 Willy Tarreau" \ No newline at end of file diff --git a/www-servers/haproxy/patches/haproxy-1.4.22.patch b/www-servers/haproxy/patches/haproxy-1.4.22.patch new file mode 100644 index 000000000..5f0a50fb8 --- /dev/null +++ b/www-servers/haproxy/patches/haproxy-1.4.22.patch @@ -0,0 +1,47 @@ +diff -ur haproxy-1.4.22/Makefile haproxy-1.4.22-haiku/Makefile +--- haproxy-1.4.22/Makefile 2012-08-14 07:09:31.000000000 +0000 ++++ haproxy-1.4.22-haiku/Makefile 2012-12-28 02:09:24.868483072 +0000 +@@ -176,6 +176,12 @@ + USE_POLL = implicit + USE_TPROXY = implicit + else ++ifeq ($(TARGET),haiku) ++ # For Haiku ++ TARGET_LDFLAGS = -lnetwork ++ USE_POLL = implicit ++ USE_TPROXY = implicit ++else + ifeq ($(TARGET),linux22) + # This is for Linux 2.2 + USE_GETSOCKNAME = implicit +@@ -269,6 +275,7 @@ + endif # linux24e + endif # linux24 + endif # linux22 ++endif # haiku + endif # generic + + +diff -ur haproxy-1.4.22/src/proto_http.c haproxy-1.4.22-haiku/src/proto_http.c +--- haproxy-1.4.22/src/proto_http.c 2012-08-14 07:09:31.000000000 +0000 ++++ haproxy-1.4.22-haiku/src/proto_http.c 2012-12-28 02:09:24.873988096 +0000 +@@ -3973,13 +3973,15 @@ + int http_send_name_header(struct http_txn *txn, struct http_msg *msg, struct buffer *buf, struct proxy* be, const char* srv_name) { + + struct hdr_ctx ctx; +- ++ char *hdr_name = 0; ++ char *hdr_val; ++ int hdr_name_len; + ctx.idx = 0; + +- char *hdr_name = be->server_id_hdr_name; +- int hdr_name_len = be->server_id_hdr_len; ++ hdr_name = be->server_id_hdr_name; ++ hdr_name_len = be->server_id_hdr_len; + +- char *hdr_val; ++ + + while (http_find_header2(hdr_name, hdr_name_len, msg->sol, &txn->hdr_idx, &ctx)) { + /* remove any existing values from the header */ diff --git a/www-servers/nginx/patches/nginx-1.3.0-svn.diff b/www-servers/nginx/patches/nginx-1.3.0-svn.diff new file mode 100644 index 000000000..3d089c92c --- /dev/null +++ b/www-servers/nginx/patches/nginx-1.3.0-svn.diff @@ -0,0 +1,66 @@ +Index: src/os/unix/ngx_errno.c +=================================================================== +--- src/os/unix/ngx_errno.c (revision 4615) ++++ src/os/unix/ngx_errno.c (working copy) +@@ -9,6 +9,8 @@ + #include + + ++#if (NGX_SYS_NERR) ++ + /* + * The strerror() messages are copied because: + * +@@ -85,3 +87,5 @@ + + return NGX_ERROR; + } ++ ++#endif /* NGX_SYS_NERR */ +Index: auto/os/conf +=================================================================== +--- auto/os/conf (revision 4615) ++++ auto/os/conf (working copy) +@@ -59,6 +59,16 @@ + CORE_SRCS="$UNIX_SRCS" + ;; + ++ Haiku:*) ++ # Haiku ++ have=NGX_HAIKU . auto/have_headers ++ CORE_INCS="$UNIX_INCS" ++ CORE_DEPS="$UNIX_DEPS $POSIX_DEPS" ++ CORE_SRCS="$UNIX_SRCS" ++ NGX_PREFIX="${NGX_PREFIX:-`finddir B_COMMON_DIRECTORY`}" ++ NGX_SBIN_PATH="${NGX_SBIN_PATH:-`finddir B_COMMON_BIN_DIRECTORY`/nginx}" ++ ;; ++ + *) + CORE_INCS="$UNIX_INCS" + CORE_DEPS="$UNIX_DEPS $POSIX_DEPS" +@@ -70,7 +80,7 @@ + + case "$NGX_MACHINE" in + +- i386 | i686 | i86pc) ++ i386 | i686 | i86pc | BePC) + have=NGX_HAVE_NONALIGNED . auto/have + NGX_MACH_CACHE_LINE=32 + ;; +Index: auto/unix +=================================================================== +--- auto/unix (revision 4615) ++++ auto/unix (working copy) +@@ -555,9 +555,10 @@ + fi + + +-if [ $ngx_found = no ]; then ++if [ $ngx_found = no -a "$NGX_SYSTEM" != "Haiku" ]; then + +- # Solaris has no sys_nerr ++ # Solaris has no sys_nerr, so test for the maximum ++ # Haiku neither but has negative error codes, so skip this + ngx_feature='maximum errno' + ngx_feature_name=NGX_SYS_NERR + ngx_feature_run=value diff --git a/x11-libs/cairo/cairo-1.10.0.bep b/x11-libs/cairo/cairo-1.10.0.bep index 36c359c48..b23acc8b0 100644 --- a/x11-libs/cairo/cairo-1.10.0.bep +++ b/x11-libs/cairo/cairo-1.10.0.bep @@ -13,7 +13,7 @@ BUILD { aclocal -I build autoconf automake - ./configure --prefix=/boot/common --enable-beos + ./configure --prefix=`finddir B_COMMON_DIRECTORY` --enable-beos make } diff --git a/x11-libs/cairo/cairo-1.8.10.bep b/x11-libs/cairo/cairo-1.8.10.bep index 1fa640d51..69bfa28fd 100644 --- a/x11-libs/cairo/cairo-1.8.10.bep +++ b/x11-libs/cairo/cairo-1.8.10.bep @@ -13,7 +13,7 @@ BUILD { aclocal -I build autoconf automake - ./configure --prefix=/boot/common --enable-beos + ./configure --prefix=`finddir B_COMMON_DIRECTORY` --enable-beos make } diff --git a/x11-libs/libX11/libX11-1.3.3.bep b/x11-libs/libX11/libX11-1.3.3.bep index 6d4c0240c..d5d0199d2 100644 --- a/x11-libs/libX11/libX11-1.3.3.bep +++ b/x11-libs/libX11/libX11-1.3.3.bep @@ -19,7 +19,7 @@ BUILD { cd libX11-1.3.3 libtoolize --force --copy --install autoreconf -i - ./configure --prefix=/boot/common + ./configure --prefix=`finddir B_COMMON_DIRECTORY` make } diff --git a/x11-libs/libXau/libXau-1.0.5.bep b/x11-libs/libXau/libXau-1.0.5.bep index ad41e327a..fd8eee947 100644 --- a/x11-libs/libXau/libXau-1.0.5.bep +++ b/x11-libs/libXau/libXau-1.0.5.bep @@ -10,7 +10,7 @@ BUILD { cd libXau-1.0.5 libtoolize --force --copy --install autoreconf -i - ./configure --prefix=/boot/common + ./configure --prefix=`finddir B_COMMON_DIRECTORY` make } diff --git a/x11-libs/libxcb/libxcb-1.6.bep b/x11-libs/libxcb/libxcb-1.6.bep index 997032721..4ecfc01c2 100644 --- a/x11-libs/libxcb/libxcb-1.6.bep +++ b/x11-libs/libxcb/libxcb-1.6.bep @@ -14,7 +14,7 @@ BUILD { cd libxcb-1.6 libtoolize --force --copy --install ./autogen.sh - ./configure --prefix=/boot/common + ./configure --prefix=`finddir B_COMMON_DIRECTORY` } INSTALL { diff --git a/x11-libs/pango/pango-1.28.1.bep b/x11-libs/pango/pango-1.28.1.bep index 4d9cfe6b1..0f68809d9 100644 --- a/x11-libs/pango/pango-1.28.1.bep +++ b/x11-libs/pango/pango-1.28.1.bep @@ -15,7 +15,7 @@ DEPEND="pkgconfig >= 0.23 BUILD { cd pango-1.28.1 ./autogen.sh - ./configure --prefix=/boot/common + ./configure --prefix=`finddir B_COMMON_DIRECTORY` make } diff --git a/x11-libs/pixman/pixman-0.17.2.bep b/x11-libs/pixman/pixman-0.17.2.bep index 0345029cc..db949ba89 100644 --- a/x11-libs/pixman/pixman-0.17.2.bep +++ b/x11-libs/pixman/pixman-0.17.2.bep @@ -11,7 +11,7 @@ BUILD { aclocal automake autoconf - ./configure --prefix=/boot/common + ./configure --prefix=`finddir B_COMMON_DIRECTORY` make } diff --git a/x11-libs/pixman/pixman-0.18.2.bep b/x11-libs/pixman/pixman-0.18.2.bep index 39367049d..0141d1aef 100644 --- a/x11-libs/pixman/pixman-0.18.2.bep +++ b/x11-libs/pixman/pixman-0.18.2.bep @@ -11,7 +11,7 @@ BUILD { aclocal automake autoconf - ./configure --prefix=/boot/common + ./configure --prefix=`finddir B_COMMON_DIRECTORY` make } diff --git a/x11-libs/pixman/pixman-0.18.4.bep b/x11-libs/pixman/pixman-0.18.4.bep index c31a522b4..8a8d9f5f1 100644 --- a/x11-libs/pixman/pixman-0.18.4.bep +++ b/x11-libs/pixman/pixman-0.18.4.bep @@ -11,7 +11,7 @@ BUILD { aclocal automake autoconf - ./configure --prefix=/boot/common + ./configure --prefix=`finddir B_COMMON_DIRECTORY` make } diff --git a/x11-libs/pixman/pixman-0.19-master.bep b/x11-libs/pixman/pixman-0.19-master.bep index 187ba483f..620b4c6ef 100644 --- a/x11-libs/pixman/pixman-0.19-master.bep +++ b/x11-libs/pixman/pixman-0.19-master.bep @@ -9,7 +9,7 @@ BUILD { cd pixman-master libtoolize --force --copy --install ./autogen.sh - ./configure --prefix=/boot/common + ./configure --prefix=`finddir B_COMMON_DIRECTORY` make } diff --git a/x11-libs/pixman/pixman-0.19.4.bep b/x11-libs/pixman/pixman-0.19.4.bep index 96a1ca754..c97b06ae6 100644 --- a/x11-libs/pixman/pixman-0.19.4.bep +++ b/x11-libs/pixman/pixman-0.19.4.bep @@ -9,7 +9,7 @@ BUILD { cd pixman-0.19.4 libtoolize --force --copy --install ./autogen.sh - ./configure --prefix=/boot/common + ./configure --prefix=`finddir B_COMMON_DIRECTORY` make } diff --git a/x11-libs/pixman/pixman-0.20.0.bep b/x11-libs/pixman/pixman-0.20.0.bep index 869613857..d93ac2db0 100644 --- a/x11-libs/pixman/pixman-0.20.0.bep +++ b/x11-libs/pixman/pixman-0.20.0.bep @@ -10,7 +10,7 @@ BUILD { libtoolize --force --copy --install aclocal autoconf - ./configure --prefix=/boot/common + ./configure --prefix=`finddir B_COMMON_DIRECTORY` make } diff --git a/x11-libs/xtrans/xtrans-1.2.5.bep b/x11-libs/xtrans/xtrans-1.2.5.bep index 7dc2fc7b4..dabe29737 100644 --- a/x11-libs/xtrans/xtrans-1.2.5.bep +++ b/x11-libs/xtrans/xtrans-1.2.5.bep @@ -11,7 +11,8 @@ BUILD { cd xtrans-1.2.5 libtoolize --force --copy --install autoreconf -i - ./configure --prefix=/boot/common + ./configure --prefix=`finddir B_COMMON_DIRECTORY` \ + --datadir=`finddir B_COMMON_DATA_DIRECTORY` } INSTALL { diff --git a/x11-misc/shared-mime-info/shared-mime-info-1.0.bep b/x11-misc/shared-mime-info/shared-mime-info-1.0.bep new file mode 100644 index 000000000..0c61c66ad --- /dev/null +++ b/x11-misc/shared-mime-info/shared-mime-info-1.0.bep @@ -0,0 +1,23 @@ +DESCRIPTION="Freedesktop MIME database specification" +HOMEPAGE="http://freedesktop.org/wiki/Software/shared-mime-info" +SRC_URI="http://freedesktop.org/~hadess/shared-mime-info-1.0.tar.xz" +CHECKSUM_MD5="901b7977dbb2b71d12d30d4d8fb97028" +REVISION="1" +STATUS_HAIKU="untested" +DEPEND="intltool, + glib" +BUILD { + cd shared-mime-info-1.0 + ./configure --prefix="$(finddir B_COMMON_DIRECTORY)" \ + --datarootdir="$(finddir B_COMMON_DATA_DIRECTORY)" \ + --mandir="$(finddir B_COMMON_DOCUMENTATION_DIRECTORY)/man" + make +} + +INSTALL { + cd shared-mime-info-1.0 + make install +} + +LICENSE="GNU GPL v2" +COPYRIGHT=""Freedesktop.org diff --git a/x11-misc/util-macros/util-macros-1.17.0-git.bep b/x11-misc/util-macros/util-macros-1.17.0-git.bep new file mode 100644 index 000000000..ea93fa92c --- /dev/null +++ b/x11-misc/util-macros/util-macros-1.17.0-git.bep @@ -0,0 +1,23 @@ +DESCRIPTION="xorg util-macros" +HOMEPAGE="http://cgit.freedesktop.org/xorg/util/macros/" +COPYRIGHT="2005 Red Hat, Inc. + 2005, 2006, Oracle and/or its affiliates. All rights reserved." +LICENSE="MIT" + +SRC_URI="git://anongit.freedesktop.org/xorg/util/macros" +#CHECKSUM_MD5="" +REVISION="1" +STATUS_HAIKU="untested" +DEPEND="" +BUILD { + cd util-macros-1.17.0-git + ./autogen.sh -V + ./configure --prefix=`finddir B_COMMON_DIRECTORY` \ + --datadir=`finddir B_COMMON_LIB_DIRECTORY` + make +} + +INSTALL { + cd util-macros-1.17.0-git + make install +} diff --git a/x11-misc/util-macros/util-macros-1.7.0.bep b/x11-misc/util-macros/util-macros-1.7.0.bep index be4c04899..13a30101a 100644 --- a/x11-misc/util-macros/util-macros-1.7.0.bep +++ b/x11-misc/util-macros/util-macros-1.7.0.bep @@ -8,7 +8,7 @@ DEPEND="" BUILD { cd util-macros-1.7.0 libtoolize --force --copy --install - ./configure --prefix=/boot/common + ./configure --prefix=`finddir B_COMMON_DIRECTORY` } INSTALL { diff --git a/x11-proto/inputproto/inputproto-2.0.bep b/x11-proto/inputproto/inputproto-2.0.bep index 76620d5e9..8428ac375 100644 --- a/x11-proto/inputproto/inputproto-2.0.bep +++ b/x11-proto/inputproto/inputproto-2.0.bep @@ -10,7 +10,7 @@ BUILD { cd inputproto-2.0 libtoolize --force --copy --install autoreconf -i - ./configure --prefix=/boot/common + ./configure --prefix=`finddir B_COMMON_DIRECTORY` } INSTALL { diff --git a/x11-proto/kbproto/kbproto-1.0.4.bep b/x11-proto/kbproto/kbproto-1.0.4.bep index a7a601771..aa6a56080 100644 --- a/x11-proto/kbproto/kbproto-1.0.4.bep +++ b/x11-proto/kbproto/kbproto-1.0.4.bep @@ -10,7 +10,7 @@ BUILD { cd kbproto-1.0.4 libtoolize --force --copy --install autoreconf -i - ./configure --prefix=/boot/common + ./configure --prefix=`finddir B_COMMON_DIRECTORY` } INSTALL { diff --git a/x11-proto/xcb-proto/xcb-proto-1.6.bep b/x11-proto/xcb-proto/xcb-proto-1.6.bep index 0798f940c..ab77c5e0e 100644 --- a/x11-proto/xcb-proto/xcb-proto-1.6.bep +++ b/x11-proto/xcb-proto/xcb-proto-1.6.bep @@ -10,7 +10,7 @@ BUILD { cd xcb-proto-1.6 libtoolize --force --copy --install autoreconf -i - ./configure --prefix=/boot/common + ./configure --prefix=`finddir B_COMMON_DIRECTORY` make } diff --git a/x11-proto/xextproto/xextproto-7.1.1.bep b/x11-proto/xextproto/xextproto-7.1.1.bep index 2f7b83e86..79bbbd807 100644 --- a/x11-proto/xextproto/xextproto-7.1.1.bep +++ b/x11-proto/xextproto/xextproto-7.1.1.bep @@ -10,7 +10,7 @@ BUILD { cd xextproto-7.1.1 libtoolize --force --copy --install autoreconf -i - ./configure --prefix=/boot/common + ./configure --prefix=`finddir B_COMMON_DIRECTORY` } INSTALL { diff --git a/x11-proto/xproto/patches/xproto-7.0.23-git.patch b/x11-proto/xproto/patches/xproto-7.0.23-git.patch new file mode 100644 index 000000000..04ba8ad82 --- /dev/null +++ b/x11-proto/xproto/patches/xproto-7.0.23-git.patch @@ -0,0 +1,48 @@ +diff --git a/Xos_r.h xproto-7.0.23-git/Xos_r.h +index f963b64..f8b727b 100644 +--- a/Xos_r.h ++++ xproto-7.0.23-git/Xos_r.h +@@ -88,6 +88,10 @@ in this Software without prior written authorization from The Open Group. + # endif + #endif /* _XOS_R_H */ + ++#ifdef __HAIKU__ ++#define _POSIX_THREAD_SAFE_FUNCTIONS ++#endif ++ + #ifndef WIN32 + + #ifdef __cplusplus +diff --git a/configure.ac xproto-7.0.23-git/configure.ac +index c4acf24..b3c82aa 100644 +--- a/configure.ac ++++ xproto-7.0.23-git/configure.ac +@@ -99,6 +99,28 @@ if test "x$fds_bits_found" = xfalse ; then + fi + + if test "x$fds_bits_found" = xfalse ; then ++AC_CHECK_MEMBER(fd_set.bits, ++ [ ++ fds_bits_found=plain_simple ++ USE_FDS_BITS="bits" ++ ],, ++ [ ++ #ifdef HAVE_SYS_PARAM_H ++ #include ++ #endif ++ #ifdef HAVE_SYS_TYPES_H ++ #include ++ #endif ++ #ifdef HAVE_SYS_TIME_H ++ #include ++ #endif ++ #ifdef HAVE_SYS_SELECT_H ++ #include ++ #endif ++ ]) ++fi ++ ++if test "x$fds_bits_found" = xfalse ; then + AC_MSG_ERROR([Could not determine how to access the fds_bits or equivalent + structure in fd_set on your platform.]) + fi diff --git a/x11-proto/xproto/xproto-7.0.16.bep b/x11-proto/xproto/xproto-7.0.16.bep index 5a13c71ed..d3ab77900 100644 --- a/x11-proto/xproto/xproto-7.0.16.bep +++ b/x11-proto/xproto/xproto-7.0.16.bep @@ -9,7 +9,7 @@ BUILD { cd xproto-7.0.16 libtoolize --force --copy --install autoreconf -i - ./configure --prefix=/boot/common + ./configure --prefix=`finddir B_COMMON_DIRECTORY` } INSTALL { diff --git a/x11-proto/xproto/xproto-7.0.23-git.bep b/x11-proto/xproto/xproto-7.0.23-git.bep new file mode 100644 index 000000000..643668b5a --- /dev/null +++ b/x11-proto/xproto/xproto-7.0.23-git.bep @@ -0,0 +1,27 @@ +DESCRIPTION="xproto" +HOMEPAGE="http://cgit.freedesktop.org/xorg/proto/xproto/" +COPYRIGHT="1991, Oracle and/or its affiliates. All rights reserved. + 1985, 1987, 1988, 1990, 1991, 1993-1996, 1998 The Open Group + 1987 by Digital Equipment Corporation, Maynard, Massachusetts. + 1987 by Apollo Computer Inc., Chelmsford, Massachusetts. + 1989 by Hewlett-Packard Company. + 1999 The XFree86 Project Inc." +LICENSE="MIT (no promotion)" + +SRC_URI="git://anongit.freedesktop.org/xorg/proto/xproto" +#CHECKSUM_MD5="" +REVISION="1" +STATUS_HAIKU="untested" +DEPEND="" +BUILD { + cd xproto-7.0.23-git + ./autogen.sh -V + ./configure --prefix=`finddir B_COMMON_DIRECTORY` \ + --datadir=`finddir B_COMMON_LIB_DIRECTORY` + make +} + +INSTALL { + cd xproto-7.0.23-git + make install +}